var timerlen = 5;
var slideAniLen = 250;

var timerID = new Array();
var startTime = new Array();
var obj = new Array();
var endHeight = new Array();
var moving = new Array();
var dir = new Array();

var iframe_loc = "";
var re_open = false;

var final_height = 0;

function slidedown(objname){
        if(moving[objname])
                return;

        if(document.getElementById(objname).style.display != "none")
                return; // cannot slide down something that is already visible

		document.getElementById(objname).innerHTML = '<div class="ajax_loading">Loading... Please wait.</div>';


        moving[objname] = true;
        dir[objname] = "down";
        startslide(objname);
        
        
}

function slideup(objname){

        if(moving[objname])
                return;

        if(document.getElementById(objname).style.display == "none")
                return; // cannot slide up something that is already hidden

        moving[objname] = true;
        dir[objname] = "up";
        startslide(objname);
}

function startslide(objname){

        if(dir[objname] == "down"){
        
            slideAniLen = final_height + 200;

            document.getElementById(objname).style.height = final_height + "px";
            //document.getElementById("product_action_frame").style.height = (final_height-10) + "px";
        }

        obj[objname] = document.getElementById(objname);

        endHeight[objname] = parseInt(obj[objname].style.height);
        startTime[objname] = (new Date()).getTime();

        if(dir[objname] == "down"){
                obj[objname].style.height = "1px";
        }

        obj[objname].style.display = "block";

        timerID[objname] = setInterval('slidetick(\'' + objname + '\');',timerlen);
}

function slidetick(objname){
        var elapsed = (new Date()).getTime() - startTime[objname];

        if (elapsed > slideAniLen)
                endSlide(objname)
        else {
                var d =Math.round(elapsed / slideAniLen * endHeight[objname]);
                if(dir[objname] == "up")
                        d = endHeight[objname] - d;

                obj[objname].style.height = d + "px";
        }

        return;
}

function endSlide(objname){
        clearInterval(timerID[objname]);


        if(dir[objname] == "up")
                obj[objname].style.display = "none";

        obj[objname].style.height = endHeight[objname] + "px";

        if(dir[objname] != "up"){
            // DIV Loaded, can load ajax.
            if(iframe_loc != ""){
                load_content(iframe_loc, objname);
            }
        }
        

        delete(moving[objname]);
        delete(timerID[objname]);
        delete(startTime[objname]);
        delete(endHeight[objname]);
        delete(obj[objname]);
        delete(dir[objname]);

        if(re_open){
            //alert("aaa");
            slidedown(objname);
            re_open = false;
        }

        
        return;
}

function nothing(){
    return;
}

function toggleSlide(objname, height, iframe_location){

    final_height = height;
    
    if(screen.height <= 800){
        var loc_t = window.location + ".";
        if(loc_t.indexOf("#product_actions") > -1){
            window.location = window.location
        }else{
            window.location = window.location + "#product_actions";
        }
    }
    
    //if(screen.height <= 1000){
    
    //}
    
    //window.location = window.location + "#product_actions";

    if(iframe_loc != ""){
        if(iframe_location != iframe_loc){
            
            if(document.getElementById(objname).style.display == "none"){
                // div is hidden, so let's slide down
                slidedown(objname);
            }else{
                //alert("reopen");
                slideup(objname);
                re_open = true;
            }
            
        }else{

            if(document.getElementById(objname).style.display == "none"){
                // div is hidden, so let's slide down
                slidedown(objname);
            }else{
                // div is not hidden, so slide up
                slideup(objname);
            }

        }
    }else{

        if(document.getElementById(objname).style.display == "none"){
            // div is hidden, so let's slide down
            slidedown(objname);
        }else{
            // div is not hidden, so slide up
            slideup(objname);
        }

    }


    iframe_loc = iframe_location;

}


//----------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------
function createXMLHttp(){
	var myobj;
	try {myobj = new ActiveXObject("Msxml2.XMLHTTP.4.0");}
	catch (ex){ try {myobj = new ActiveXObject("Msxml2.XMLHTTP.3.0");}
	catch (ex){ try {myobj = new ActiveXObject("Msxml2.XMLHTTP");}
	catch (ex){ try {myobj = new ActiveXObject("Microsoft.XMLHTTP");}
	catch (ex){ try {myobj = new XMLHttpRequest();}
	catch (ex){ myobj = false; alert("Could not load XMLHTTP component");}}}}}
	return myobj;
}
//----------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------
function load_content(path, var_obj)
{
//    if(load_secondary_data){
  //      var t = setTimeout("show_loading()", 200)
//    }

    var uniqueid = new Date().getTime()
    
    path = path + "&ts=" + uniqueid;
    //last_obj = var_obj
    
	var xmlhttp = createXMLHttp();
	//xmlhttp.onreadystatechange=stateChanged;
	xmlhttp.onreadystatechange=function(){ stateChanged(xmlhttp, var_obj); };

	xmlhttp.open("GET",path,true);
	xmlhttp.send(null);
	
}
//----------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------
function stateChanged(xmlhttp, var_obj){

//alert(xmlhttp.status);

	if (xmlhttp.readyState!=4)
		return;

	//if (xmlhttp.readyState==4 && xmlhttp.status == 200){ 
		//obj_loading.style.display = "none";
		obj = document.getElementById(var_obj);
		obj.innerHTML = xmlhttp.responseText
//alert(xmlhttp.responseText);
		//clearTimeout(t);
		
	//}

}

//----------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------
function load_content_2(path, var_obj, type, product_id)
{
//    if(load_secondary_data){
  //      var t = setTimeout("show_loading()", 200)
//    }

    var uniqueid = new Date().getTime()
    
    path = path + "&ts=" + uniqueid;
    //last_obj = var_obj
    
	var xmlhttp2 = createXMLHttp();
	//xmlhttp.onreadystatechange=stateChanged;
	xmlhttp2.onreadystatechange=function(){ stateChanged_2(xmlhttp2, var_obj, type, product_id); };

	xmlhttp2.open("GET",path,true);
	xmlhttp2.send(null);
	
}
//----------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------
function stateChanged_2(xmlhttp2, var_obj, type, product_id){

//alert(xmlhttp.status);

	if (xmlhttp2.readyState!=4)
		return;

	//if (xmlhttp.readyState==4 && xmlhttp.status == 200){ 
		//obj_loading.style.display = "none";
		
    if (xmlhttp2.readyState==4 && xmlhttp2.status == 200){ 		
		obj = document.getElementById(var_obj);
		obj.innerHTML = xmlhttp2.responseText
		
		//alert(xmlhttp2.responseText);
		
		if(var_obj == "div_product_action_ilike"){
    	    toggleSlide("div_action_content", 95, "/products/recommend.php?product_id="+ product_id +"&type=" + type);
    	}
		
		if(var_obj == "div_product_action_alert"){
		    toggleSlide("div_action_content", 110, "/products/set_alert.php?product_id="+ product_id +"&type=" + type);
		}
		
		if(var_obj == "div_product_action_favourite"){
		    toggleSlide("div_action_content", 110, "/products/save_fav.php?product_id="+ product_id +"&type=" + type);
		}
		
		
		//setTimeout(function() { slideup("div_action_content") },5000);
		
		
//alert(xmlhttp.responseText);
		//clearTimeout(t);
		
	//}
	}

}


function Submit(url){
    //alert(url);
    document.getElementById("p_action_button").disabled = true;
    document.getElementById("p_action_button").value = "Saving...";
    load_content(url, 'div_action_content');

}

function close_action(){
	setTimeout("close()", 100);
}
function close(){
	slideup('div_action_content');
}


function action_asknow(){

    var obj = document.getElementById("action_asknow_form");
    var url = "/products/asknow_process.php?store_id="+escape(obj.store_id.value)+"&product_id="+ escape(obj.product_id.value) +"&name=" + escape(obj.ask_name.value) + "&email=" + escape(obj.ask_email.value) + "&question=" + escape(obj.question.value);

    var err = "";
    if(!IsEmail(obj.ask_email.value))
        err += "* Invalid Email Address\n";
    
    if(obj.ask_name.value.length <= 2)
        err += "* Invalid Name\n";

    if(obj.question.value.length <= 2)
        err += "* Invalid Question\n";

    if(err.length > 0){
        alert("There was a problem processing your request:\n\n" + err);
    }else{
        load_content(url, 'div_action_content');
    }
    
}

function featured_action_asknow(){

    var obj = document.getElementById("action_asknow_form");
    var url = "/merchants/store_directory/asknow_process.php?store_id="+escape(obj.store_id.value)+"&name=" + escape(obj.ask_name.value) + "&email=" + escape(obj.ask_email.value) + "&question=" + escape(obj.question.value);

    var err = "";
    if(!IsEmail(obj.ask_email.value))
        err += "* Invalid Email Address\n";
    
    if(obj.ask_name.value.length <= 2)
        err += "* Invalid Name\n";

    if(obj.question.value.length <= 2)
        err += "* Invalid Question\n";

    if(err.length > 0){
        alert("There was a problem processing your request:\n\n" + err);
    }else{
        load_content(url, 'div_action_content');
    }
}

function action_tellafriend(){
    var obj = document.getElementById("action_tellfriend_form");
    var url = "/products/tell_a_friend_process.php?product_master_id="+ escape(obj.product_master_id.value) +"&name=" + escape(obj.name.value) + "&email=" + escape(obj.email.value) + "&f_name=" + escape(obj.f_name.value) + "&f_email=" + escape(obj.f_email.value) + "&message=" + escape(obj.message.value);

    var err = "";
    if(!IsEmail(obj.email.value))
        err += "* Invalid Email Address\n";

    if(obj.name.value.length <= 2)
        err += "* Invalid Name\n";

    if(!IsEmail(obj.f_email.value))
        err += "* Invalid Friend's Email Address\n";

    if(obj.f_name.value.length <= 2)
        err += "* Invalid Friend's Name\n";

    if(err.length > 0){
        alert("There was a problem processing your request:\n\n" + err);
    }else{
        load_content(url, 'div_action_content');
    }

}

function set_ilike(objname, product_id, type){
    
    var path = "/products/recommend_process.php?productid="+ product_id +"&groupid=0&type=" + type;
    load_content_2(path, objname, type, product_id);
    
    
}

function set_ilike_matched(objname, product_master_id, type){
    
    var path = "/products/recommend_process.php?product_master_id="+ product_master_id +"&groupid=0&type=" + type;
    //alert(path);
    load_content_2(path, objname, type, product_master_id);
    
}

function set_alert(objname, product_id, type){
    //alert(product_id);
    var path = "/products/set_alert_process.php?productid="+ product_id +"&groupid=0&type=" + type;
    //load_content(path, objname);
    load_content_2(path, objname, type, product_id);
    
}

function set_alert_matched(objname, product_master_id, type){
    //alert(product_id);
    var path = "/products/set_alert_process.php?product_master_id="+ product_master_id +"&groupid=0&type=" + type;
    //load_content(path, objname);
    load_content_2(path, objname, type, product_master_id);
    
}

function set_favourite(objname, product_id, type){
    //alert(product_id);
    var path = "/products/save_fav_process.php?productid="+ product_id +"&groupid=0&type=" + type;
    //load_content(path, objname);
    load_content_2(path, objname, type, product_id);
    
}

function set_favourite_matched(objname, product_master_id, type){
    //alert(product_id);
    var path = "/products/save_fav_process.php?product_master_id="+ product_master_id +"&groupid=0&type=" + type;
    //load_content(path, objname);
    load_content_2(path, objname, type, product_master_id);
    
}


function load_offers(dropdown, product_master_id){

    var order = dropdown[dropdown.selectedIndex].value;
    
    //alert(order);
    
    var offers = document.getElementById("offer_container");
    
    //offers.innerHTML = "<div class='offers_loading'>Loading Offers... Please wait</div>";
    
    var path = "/products/ajax_offers.php?product_master_id="+ product_master_id +"&order=" + order + "&page=1";
    
	var xmlhttp_offers = createXMLHttp();
	xmlhttp_offers.onreadystatechange=function(){ offers_changed(xmlhttp_offers); };

	xmlhttp_offers.open("GET",path,true);
	xmlhttp_offers.send(null);

}

function offers_changed(xmlhttp_offers){


	if (xmlhttp_offers.readyState!=4)
		return;
		
    if (xmlhttp_offers.readyState==4 && xmlhttp_offers.status == 200){ 		
		//obj = document.getElementById(var_obj);
		//obj.innerHTML = xmlhttp2.responseText
		
		//alert(xmlhttp_offers.responseText);
		var offers = document.getElementById("offer_container");
		offers.innerHTML = xmlhttp_offers.responseText;
		
	}

}

function manage_product(product_master_id, action){
   
   var completeURL = "/products/manage.php?action="+ action +"&product_master_id=" + product_master_id;

   var popupWidth = 1000;var popupHeight = 700;
   var screenW = screen.width;var screenH = screen.height;
   var xpos = ((screenW/2)-(popupWidth/2));var ypos = ((screenH/2)-(popupHeight/2));
   x = window.open(completeURL,'preview_window','left='+xpos+',top='+ypos+',width='+popupWidth+',height='+popupHeight+',toolbar=0,resizable=0,scrollbars=1');

}