﻿  //function to fix radio button issues in the customised repeater
    function UncheckBoxes(){   
		if (!$get("ProductFilter")) return;
		
		var FilterOn = "";
		
		if (typeof(URLFilterSelection) != "undefined")
            FilterOn = URLFilterSelection;
		
        var CheckBoxes = $get("ProductFilter").getElementsByTagName("input");
        for (i = 0; i < CheckBoxes.length; i++)
        {
            if (CheckBoxes[i].type === "checkbox")
            {    
                if (CheckBoxes[i].parentNode.getAttribute("AttributeValue") != FilterOn)
	                CheckBoxes[i].checked = false ;
            }
        }

    }
    
    function BuildAttributes()
    {
        var Attributes = new Array();
        var AdditionalFilters = new Array();
        var Found = false;
        var CheckBoxes = $get("ProductFilter").getElementsByTagName("input");
        for (i = 0; i < CheckBoxes.length; i++)
        {
            if (CheckBoxes[i].type === "checkbox")
            {
                if(CheckBoxes[i].checked)
                {
                    var Name = CheckBoxes[i].parentNode.getAttribute("AttributeName");
                    var Value = CheckBoxes[i].parentNode.getAttribute("AttributeValue");
                    if(CheckBoxes[i].parentNode.getAttribute("IsAdditionalFilter") == "false")
                    {
        	            Found = false;
        	            for(i2 = 0; i2 < Attributes.length; i2++)
        	            {
        	                if (Attributes[i2].AttributeName === Name)
        	                {
        	                    Attributes[i2].AttributeValues[Attributes[i2].AttributeValues.length] = Value;
        	                    Found = true;
        	                    break;
        	                }
        	            }
                	    
        	            if(!Found)
        	            {
        	                Attributes[Attributes.length] = new Object();
        	                Attributes[Attributes.length - 1].AttributeName = Name;
        	                Attributes[Attributes.length - 1].AttributeValues = new Array();
        	                Attributes[Attributes.length - 1].AttributeValues[0] = Value;
        	            }
            	    }
            	    else
            	    {
            	    
            	        Found = false;
        	            for(i2 = 0; i2 < AdditionalFilters.length; i2++)
        	            {
        	                if (AdditionalFilters[i2].AttributeName === Name)
        	                {
        	                    AdditionalFilters[i2].AttributeValues[AdditionalFilters[i2].AttributeValues.length] = Value;
        	                    Found = true;
        	                    break;
        	                }
        	            }
                	    
        	            if(!Found)
        	            {
        	                AdditionalFilters[AdditionalFilters.length] = new Object();
        	                AdditionalFilters[AdditionalFilters.length - 1].AttributeName = Name;
        	                AdditionalFilters[AdditionalFilters.length - 1].AttributeValues = new Array();
        	                AdditionalFilters[AdditionalFilters.length - 1].AttributeValues[0] = Value;
        	            }
            	    
            	    }
        	    }
            }
            
        }
        
        // Update the filtermanager
        FilterMGR.Attributes = Attributes;
        FilterMGR.AdditionalFilters = AdditionalFilters;
        
    }


    function OnClientBeforeValueChange(sender, args)
    {
        var NewValue = args.get_newValue();
        var isFirstHandleActive = GetActiveDragHandle(sender);
        if (isFirstHandleActive)
        {
            $get("PriceFilterStartValue").innerHTML = "&pound;" + NewValue;
            FilterMGR.MinPrice = NewValue;
        }
        else
        {
            $get("PriceFilterEndValue").innerHTML = "&pound;" + NewValue;
            FilterMGR.MaxPrice = NewValue;
        }

    }
    
    function GetActiveDragHandle(slider)
    {
        var dragHandles = slider.get_dragHandles();
        var activeDragHandle = slider.get_activeHandle();

        // The first drag handle is active.
        if(activeDragHandle === dragHandles[0]) return true;
        // The second drag handle is active.
        return false;
    }
    
    
    function OnClientSlideEnd(sender, args)
    {
        ManageFilterExecute();
    }
    
    function CheckBoxClicked(name,value)
    {
         ManageFilterExecute();
    }
    
    var FilterTimeOut;
    var d;
    function ManageFilterExecute()
    {
        d = new Date().format("yyyyMMddhhmmssfff");
        
        //changeOpac(15,"ProductList");
        $get("ProductList").style.display = "none";
        $get("ProductListAjaxLoader").style.display = "block";
        
        if (FilterTimeOut != null)
            clearTimeout(FilterTimeOut);
        FilterTimeOut = setTimeout("GetProducts()",500);
    }
    
    var ProcuessingProducts = false;
    
    function GetProducts()
    {
        d = new Date().format("yyyyMMddhhmmssfff");
        BuildAttributes();
        MainWebService.GetFilter(PageID, FilterMGR, SortBySelection, d, CurrentPorductsPerPage, GetFilter_Response)
    }
    
    
    function GetFilter_Response(ResultSet)
    {   
        if (ResultSet[0] === d)
        {
            if(ResultSet[1] != "[CANCELUPDATE]")
            {
                $get("ProdListHolder").innerHTML = ResultSet[1];
            }   
            $get("ProductListAjaxLoader").style.display = "none";
            $get("ProductList").style.display = "block";
        }
    }
    
    
    
    //change the opacity for different browsers 
    function changeOpac(opacity, id) { 
        var object = document.getElementById(id).style; 
        object.opacity = (opacity / 100); 
        object.MozOpacity = (opacity / 100); 
        object.KhtmlOpacity = (opacity / 100); 
        object.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity=" + opacity + ")"; 
    }