

rangeForm = "closed";
var rangeHeight;
var filterHeight;
var rangeHeight;
var btnArray;
var data;
var maxCompare = 4;
var totalCompare = 0;
var cboArray;
var currentFormName = "frmHelpMeChoose";
var runSearch = false;

/*
To turn on the auto form update on/off (runs the product filter ajax when you tick a feature box). 
On = true, Off = false
*/
var autoUpdate = true;

function pageInit(){	
	if($("frmHelpMeChoose_Filter")){
        // Hide the loading bar
        if($('loadBar')){
            $('loadBar').hide();
            $('loadBar').removeClassName('hide');
        }
        
        // SUBMIT BUTTONS
        // ------------------------------
        if ($('frmHelpMeChoose_Container')){
            btnArray = $('frmHelpMeChoose_Container').getElementsByTagName("input");
            for (var i=0; i < btnArray.length; i++) {
                if (btnArray[i].type == "submit"){
                    if(btnArray[i].name.toLowerCase() == "reset"){
                        btnArray[i].onclick = function(){
                            this.name = "reset";
                            
                            /*
                            var currentForm = this.id;
                            currentFormArray = currentForm.split("_");
                            currentFormName = currentFormArray[0];
                            pageTracker._trackEvent('Help Me Choose', 'Search', currentFormName);
                            */
                            
                            //pageTrackerExternal._trackEvent('Help Me Choose', 'Search', currentFormName);
                            performSearch("reset");
                            return(false);
                        }
                    }else{ 
                    	if(autoUpdate == true){
                            if($(btnArray[i].id.toLowerCase()).id == "btnsubmit"){
                                btnArray[i].addClassName("hide");
                            }  
                        }
                                        
                        btnArray[i].onclick = function(){
                            $("reset").name = "";
                            var currentForm = this.id;
        
                            currentFormArray = currentForm.split("_");
                            //currentFormName = currentFormArray[0];
        
                            pageTracker._trackEvent('Help Me Choose', 'Search', currentFormName);
                            //pageTrackerExternal._trackEvent('Help Me Choose', 'Search', currentFormName);
                            
                            performSearch("search");
                            return(false);
                        }
                    }
                }

                
                if(btnArray[i].type == "checkbox"){
                	if(autoUpdate == true){
                        btnArray[i].onclick = function(){
                            $("reset").name = "";					
                            performSearch("search");
                        }
                    }
                    
                    if(btnArray[i].checked == true){
                        runSearch = true;	
                    }
                }
            }
        }
        
        if(runSearch == true){
            $("reset").name = "";
            performSearch("search");
        }
    
        showSort();
        addCompare("","");
        //Hide the product features	
        setupProductAdditionalContent();
 	}
    
    if($$(".back")){
    	setBackButton();
    }
}

function setBackButton(){
	var btnBack = $$(".back");
    
    for(var i = 0; i < btnBack.length; i++){
    	if(btnBack[i].getElementsByTagName("a")){
        	var aTag = btnBack[i].getElementsByTagName("a");
            aTag[0].setAttribute("href","javascript:history.back();");
        }else{
        	btnBack[i].setAttribute("href","javascript:history.back();");
        }
    }

}

function setCompareLinks(){
	if($('compareBtn')){
	    $('compareBtn').disabled = true;
    }
    
    cboArray = $('productResultsContainer').getElementsByTagName("input");
    
    for (var i=0; i < cboArray.length; i++) {
        if (cboArray[i].type == "checkbox"){  
            if(cboArray[i].checked){
                compareCheckFormatting(cboArray[i].id, cboArray[i].checked);
            }
            cboArray[i].onclick = function(){
                addCompare(this.id,this.checked);
            }
        }
    }
}


// Shows the Compare button if applicable and displays the number of machines in the comparison
// If the total is greater than 4 it cancels the last one off and displays a message
function addCompare(cboID,cboChecked){

    var copyCompare = "COMPARER"
    var copyMachine = "APPAREILS"
    var copyMachinePl = "APPAREILS"
    
    // Set Copy Text
    if($('copy_Compare')){
        copyCompare = $('copy_Compare').value;
        copyMachine = $('copy_Machine').value;
        copyMachinePl = $('copy_MachinesPl').value;
    }


    totalCompare = 0
    //var machinePl = "";
    var buttonText = "";
    // get the total number of machines being compared
    for (var i=0; i < cboArray.length; i++) {
        if ($(cboArray[i]).checked){
            totalCompare = parseInt(totalCompare)+1;
        }
    }
    
    if (totalCompare > maxCompare) {
        try{alert($('maximumComparePre').value + maxCompare + $('maximumComparePost').value);}
        catch(err){alert("Vous ne pouvez pas comparer plus de "+maxCompare+" produits");}
        
        $(cboID).checked = false;
		cboChecked = false;
    }else{
        if(totalCompare > 1){
            $('compareBtn').removeClassName("hide");
			$('compareBtn').removeClassName("colour1");
            
            if (totalCompare>1){
                machineText = copyMachinePl;
                $('compareBtn').disabled = false;
            }else{
                machineText = copyMachine;
                $('compareBtn').disabled = true;
            }
            buttonText = copyCompare + " " + totalCompare + " " + machineText;
        }else if(totalCompare == 1){            
            $('compareBtn').disabled = true;
            $('compareBtn').addClassName("hide");
            $('compareBtn').addClassName("colour1");
            buttonText = copyCompare + " " + totalCompare + " " + copyMachine;
        }else{
        	$('compareBtn').addClassName("hide");
            $('compareBtn').disabled = true;
        }
        $('compareBtn').value = buttonText;
	}
	compareCheckFormatting(cboID, cboChecked);
}

function compareCheckFormatting(cboID, cboChecked){
// Show or hide the relevant button
	if(cboID !=""){            
		if (cboChecked){
			$(cboID.replace("comp_","lblComp_")).innerHTML = "Inclus";
			$(cboID.replace("comp_","lblComp_")).addClassName("colour2");
            $(cboID.replace("comp_","compBtn_")).removeClassName("hide");
            updateProdCompareButtons();
		}else{
		   //$('compareLink:'+buttonID[1]).addClassName("hide")
		   $(cboID.replace("comp_","lblComp_")).innerHTML = "Comparer";
		   $(cboID.replace("comp_","lblComp_")).removeClassName("colour2");
           $(cboID.replace("comp_","compBtn_")).addClassName("hide");
           updateProdCompareButtons();
		}
	}	
}

function updateProdCompareButtons(){
	var compButtons = $$(".compBtn");
    var noCompButtonsDisplay = 0;
    
    for(var i = 0; i < compButtons.length; i++){
    	compButtons[i].value = $('compareBtn').value;
		compButtons[i].removeClassName("colour1");
        compButtons[i].disabled = false;
        
        if(compButtons[i].className.indexOf("hide") == -1){
	        noCompButtonsDisplay += 1;
        }
    }
    
    if(noCompButtonsDisplay == 1){
    	for(var i = 0; i < compButtons.length; i++){
            if(compButtons[i].className.indexOf("hide") == -1){
                compButtons[i].addClassName("colour1");
                compButtons[i].disabled = true;
            }
        }
    }
}

// Resets all the checkboxes to unchecked
function resetCheckboxes(formID){
    //Get all the checkboxes from the form and set them to unchecked
	
    var cboList = $(formID).getElementsByTagName("input");

    for (var i=0; i < cboList.length; i++) {
        if (cboList[i].type == "checkbox"){ 
            cboList[i].checked = false;
        }
    }
}


function performSearch(type){
	if(type == "reset"){
        resetCheckboxes(currentFormName);
    }
    data = $(currentFormName).serialize(); // gets all forms data
	new Effect.Appear($('loadBar'), {duration:0.1, from:0.1, to:1}); // Show loading bar
    new Effect.Fade($('productResultsContainer'), {duration:0.1, from:1, to:0.1, afterFinish: function(){loadProducts(type)}});
    
}
function loadProducts(type){  
    var searchForm = new Ajax.Updater('productResultsContainer','/store/helpmechoose_ajax.asp',{parameters: data, evalScripts :true, onSuccess: function(){
        Effect.Appear('productResultsContainer', { duration: 0.2 });
        Effect.Fade('loadBar', { duration: 0.2,afterFinish:showSort});
    }, onComplete: function(){addCompare("","");setupProductAdditionalContent();}});
}

// Shows the 'Sort By' drop down
function showSort(){
   if ($('fldSort')){
	   	Effect.Appear('fldSort', { duration: 0.2 });
        $('fldSort').removeClassName('hide');
        if ($('selectionSort')){
        	$('selectionSort').value = $('slSort').value;        
        }
        
        $('selectionSort').onchange = function(){
            // set hidden search field
            $('slSort').value =  $('selectionSort').value;
            
            // Track GA
            //eventTracking('Help Me Choose', 'Sort', dataValArray[1])
            performSearch("search");
        }
    }
    
    // Reset the compare links
    setCompareLinks();
}


function cancelEventBubble(e, id)
{
	var reltg = (e.relatedTarget) ? e.relatedTarget : e.toElement;
	var childItem = false;
    
    try{
        if((typeof (reltg.tagName) != undefined) && (typeof (reltg) != undefined)){
            while (reltg.tagName.toLowerCase() != 'body' && (typeof (reltg) != undefined)){
                if(reltg.id != null){
                    if ((reltg.id == id) && (reltg.id != '') && (id != '')){return childItem = true;}
                    reltg = reltg.parentNode;
                }
            }
      	}
	}catch(err){}
	return childItem = false;
}

function setupProductAdditionalContent(){
	var containerClassName = "holder";
	var productArray = $$("." + containerClassName);
	
	for(var i = 0; i < productArray.length;i++){
		var prodfInfo_Link = productArray[i].getElementsByClassName("productAdditionalInfo_Link");
		var prodfInfo_Copy = productArray[i].getElementsByClassName("productAdditionalInfo_Copy");
		
		for(var j = 0; j < prodfInfo_Link.length;j++){
			var childItem = false;
			
			prodfInfo_Link[j].onmouseover = function(e){
				var gotParentNode = false;
				var currentParent = this.parentNode;
				while(gotParentNode == false){
					
					if(currentParent.className.indexOf(containerClassName) > -1){
						gotParentNode = true;	
						prodfInfo_Copy = currentParent.getElementsByClassName("productAdditionalInfo_Copy");
						for(var k = 0; k < prodfInfo_Copy.length; k++){
							prodfInfo_Copy[k].removeClassName("hide");
						}
					}else{
						currentParent = currentParent.parentNode;
					}
					
				}
			};
			prodfInfo_Link[j].onmouseout = function(e){
				if (!e) var e = window.event;
				childItem = cancelEventBubble(e, this.id);
				if(childItem == false){
					var gotParentNode = false;
					var currentParent= this.parentNode;
					while(gotParentNode == false){
						if(currentParent.className.indexOf(containerClassName) > -1){
							gotParentNode = true;	
							prodfInfo_Copy = currentParent.getElementsByClassName("productAdditionalInfo_Copy");
							for(var k = 0; k < prodfInfo_Copy.length; k++){
								prodfInfo_Copy[k].addClassName("hide");
							}
						}else{
							currentParent = currentParent.parentNode;
						}
					}
				}
			}
		}
	}
}

Event.observe( window, "load", pageInit);

