﻿function getFilterParams()
{
    var _aFilterParams = new Array();
    for(var i=0;i<paramdata.param.length;i++)
    {
        _aFilterParams.push(paramdata.param[i].paramName);
    }
    _aFilterParams.push("sort","seoctl00_Body_dvw_Items","txtkey");
    return _aFilterParams;
}
function sortQueryString(query)
{
    var _aQueryString = query.split('&');
    var _aFilterParams = getFilterParams();
    var _sortedFilterParams = new Array();
    for(var i=0;i<_aFilterParams.length;i++)
    {
        for(var j=0;j<_aQueryString.length;j++)
        {
            var paramName = _aQueryString[j].split('=')[0].toLowerCase();
            if(paramName === _aFilterParams[i].toLowerCase())
            {
                _sortedFilterParams.push(_aQueryString[j]);
                break;
            }
        }
    }
    return _sortedFilterParams.join('&').toLowerCase();
}

var JsURL = GetURLParams();
function GetURLParams()
{
    var url = unescape(location.search);
    return url.replace('?','').toLowerCase();
}

function showDetailItems(result)
{
    var id = result.substring(0,result.indexOf("|"));  
    var content = result.substring( result.indexOf("|") + 1, result.length );  
    var eleId = id.replace("Head","Detail");

    getObj(eleId).innerHTML = content;
}
//在GroupSelect中显示选择项的值
function showSingleSelectItem(paramField,result, selectRequired, ChildGroups, ownSelf)
{
    var eleId = "div_Group_" +paramField+"_Sel";
    var ele = getObj(eleId);
    if(selectRequired == "F")
    {  
        var desc = filteredParamValues[result];
        result = desc + "<img id='img_"+result.replace(new RegExp(" ","g"),"_")+"' title='"+result+"' class='imgDelete' src='/Images/icons/icon_remove_small.png' onclick='deleteURLParams( \"" + paramField + "\", \""+ result.replace(new RegExp(" ","g"),"_") +"\" );' />";
        $(ownSelf).live("click",function()
        {
             $(this).closest(".div_Group_Detail").hide();
        });
    }
    ele.innerHTML = "<div>"+result +"</div>";
    ele.style.display = 'block';

    if(ChildGroups.length > 0)
    {
        var arrayChild = new Array();
        arrayChild = ChildGroups.split(",");
        for(var i=0;i<arrayChild.length-1;i++)
        {
            var childEle = getObj("div_Group_" +arrayChild[i]);
            if(childEle)
            {
                if(childEle.style.display != 'block')
                {
                    childEle.style.display = 'block';
                }
            }
        }
    }
}

function checkOnclick(key,value,isMulti)
{
    var allvalues = unescape(request(key));
    var myValue = value.toLowerCase().replace(new RegExp("_","g")," ");
    var has = 0;    
    if(allvalues.indexOf(myValue) > -1)
    {
        var obj = allvalues.split(';');
        for(var i=0; i < obj.length; i++)
        {
            if(obj[i] == myValue)
            {
                has++;
                break;
            }
        }
    }
    if(has > 0)
    {
        deleteURLParams("paramName_" + key.toLowerCase(),value.toLowerCase());
    }
    else
    {
        updateURLParams(key,value,isMulti);
    }
}

function showMultiSelectItemCheckBox(paramField,result)
{
    var eleId = "div_Group_" +paramField+"_Sel";  
    var ele = getObj(eleId);
    if(ele)
    {    
        ele.style.display = 'block';
        ele.innerHTML = "";
    
        var thisCode = result.split(";");
        for(var i=0; i<thisCode.length; i++)
        {
            var thisDesc = filteredParamValues[thisCode[i]];
            ele.innerHTML += "<div>" + thisDesc + "<img id='img_" + thisCode[i].toLowerCase().replace(new RegExp(" ", "g"), "_") + "' title='" + thisCode[i].toLowerCase() + "' class='imgDelete' src='/Images/icons/icon_remove_small.png' onclick='deleteURLParams( \"" + paramField + "\", \"" + thisCode[i] + "\" );' /></div>";
        }    
    }
}

function showMultiSelectItemImg(paramField,code)
{
    var eleId = "div_Group_" +paramField+"_Sel";
    var ele = getObj(eleId);
    //删除选择项
    if(ele)
    {
        ele.style.display = 'block';
        ele.innerHTML = "";
        
        var thisCode = code.split(";");
        for(var i=0; i<thisCode.length; i++)
        {
            ele.innerHTML += "<div><img src='/Images/Custom/Filter/Colors/"+ thisCode[i] +"_Sel.gif' /><img  title='" + thisCode[i] + "' class='imgDelete' src='/Images/icons/icon_remove_small.png' onclick='deleteURLParams(\"" + paramField + "\", \""+thisCode[i] +"\" );' /></div>";
        }
    }
}

//切换不同状态图片
function changeImg(ele)
{
    if(ele.src.indexOf("_off") > 0){
        $(ele).attr('src',$(ele).attr('src').replace("_off","_on"));
    }
    var elements = $(ele).siblings();
    elements.each(function(){
     
        if(ele.src.indexOf("_on") > 0){
            $(this).attr("src",$(this).attr("src").replace("_on","_off"));
        }
    });
}

//根据过滤条件变量获取值
function getParamValue( url, paras )
{
	var arrParam =url.toLowerCase().split("&");
	var returnValue = "";
	
	for(var i=0; i < arrParam.length; i++ )
	{
	    if( arrParam[i].substring( 0, arrParam[i].indexOf('=') ) ==  paras.toLowerCase() )
	    {
	        returnValue = arrParam[i].substring(arrParam[i].indexOf("=")+1,arrParam[i].length);
	    }
	}
	return returnValue;
}

function filterParamFromURL( url, param )
{
	var arrParam =url.toLowerCase().split("&");
	var returnValue = "";
	
	for(var i=0; i < arrParam.length; i++ )
	{
	    if( arrParam[i].toLowerCase().indexOf(param.toLowerCase() + "=") < 0 )
	    {
	        returnValue += arrParam[i] + "&";
	    }
	}
	if(returnValue.length > 0)
	{
	    returnValue = returnValue.substring( 0, returnValue.length - 1);
	}
	return returnValue;
}

function ShowSelection(url)
{
	var select=getObj("yourselect");
	if(select)
    {
	    var txt= "<li class='viewing'>" + mYouareviewing + "</li>" ;
	
        for(var i=0;i<paramdata.param.length;i++)
	    {
	        var has = request(paramdata.param[i].paramName);	    
	        if ( has == "" )
	        {
	            if ( paramdata.param[i].displaySelected == "T" )
	            {
                    var eleId = "div_Group_" + paramdata.param[i].paramField +"_Sel";
                    var targetEle = getObj(eleId);
                    if(targetEle!=null)
                    {
                        targetEle.innerHTML = "";
                        targetEle.style.display = 'none';
                    }
                }          
	        }
	        else
	        {
	            var thisValue = getParamValue( url, paramdata.param[i].paramName );
    	        var thisDescription = filteredParamValues[thisValue];

	            var key = paramdata.param[i].paramName.toLowerCase().trim();
	            var value = thisValue;
                var description = thisDescription;
	              
	            if( "T" == paramdata.param[i].selectionRequired )
	            {
	                if (typeof (description) != "undefined")
	                    txt = txt + "<li class='viewing' style='text-align:center;'>" + description + "</li>";
	            }		
	            else if( "T" == paramdata.param[i].multipleSelection )
	            {
		            var paras=value.split(";");
		            var j;
		            for(j=0;j<paras.length;j++)
		            {
			            var val=paras[j];
			            var desc = filteredParamValues[val];
			            if (typeof (desc) != "undefined")
                            txt = txt + "<li class='viewing' style='cursor:pointer;' onclick= 'deleteURLParams( \"paramName_" + key + "\",\"" + val.replace(new RegExp(" ","g"),"_") + "\")'><img alt='"+val+"' src='/Images/icons/icon_remove_viewing.gif' />" + desc + "</li>";
		            }
	            }
	            else
	            {
	                if (typeof (description) != "undefined")
	                    txt = txt + "<li class='viewing' style='cursor:pointer;' onclick= 'deleteURLParams( \"paramName_" + key + "\",\"" + value.replace(new RegExp(" ", "g"), "_") + "\")'><img alt='" + value + "' src='/Images/icons/icon_remove_viewing.gif' />" + description + "</li>";
	            }	
	        }	    
	    }	
	    var searchkey = unescape(getParamValue( url, "txtkey"));
	    if(searchkey.length > 0)
	    {
	        txt = txt + "<li class='viewing' style='cursor:pointer;' onclick= 'deleteURLParams( \"paramName_txtkey\",\"" + searchkey.replace(new RegExp(" ","g"),"_") + "\")'><img alt='"+ searchkey +"' src='/Images/icons/icon_remove_viewing.gif' />Search: "+ searchkey.replace(new RegExp("_","g")," ") +"</li>";
	    }	    
	    select.innerHTML = "<ul style='width:auto;'>" + txt + "</ul>";
	}
}

function ChildParam( paramName)
{
    var Result = "";
    for(var i=0;i<paramdata.param.length;i++)
    {
        if( paramdata.param[i].masterParam.toLowerCase() == paramName.toLowerCase())
        {
	        Result += paramdata.param[i].paramName + ",";	        
        }		
    }    
    return Result;
}

function ChildGroup( paramName)
{
    var Result = "";
    for(var i=0;i<paramdata.param.length;i++)
    {
        if( paramdata.param[i].masterParam == paramName)
        {
	        Result += paramdata.param[i].paramField + ",";	        
        }		
    }    
    return Result;
}

//隐藏子项
function HideChildren(paramField)
{
    var paramName="";
    var children="";
    for(var i=0;i<paramdata.param.length;i++)
    {
        if(paramdata.param[i].paramField == paramField)
        {
            paramName = paramdata.param[i].paramName;
            break;
        }        
    }
    
    for(var i=0;i<paramdata.param.length;i++)
    {
        if(paramdata.param[i].masterParam == paramName){
            children += paramdata.param[i].paramField + ",";
        }
    }
    
    var newChildren = "";
    if(children.trim() != "")
    {
        if(children.indexOf(',') > -1)
        {
            var oldChildren = children.substr(0,children.length - 1).split(',');
            for(var i=0;i<oldChildren.length;i++)
            {
                oldChildren[i] = "#div_Group_" + oldChildren[i];
            }
            newChildren = oldChildren.join(',');
        }
        else{
            newChildren = "#div_Group_" + children;
        }
        $(newChildren).hide();
    }
    else
        return;
    }
    
var Div_Group_Head = $(".div_Group>.div_Group_Head");
var Div_Group_Detail = $(".div_Group>.div_Group_Detail");
var Div_Group_Sel = $(".div_Group>.div_Group_Sel");

var Class_GroupHeader_Collapsed = 'GroupHeader_Collapsed';
var Class_GroupHeader_Expanded = 'GroupHeader_Expanded';

function OperateBox(ele)
{
    var className = $(ele).attr("class");
    if(className.indexOf(Class_GroupHeader_Collapsed) > 0)
    {
        $(ele).removeClass(Class_GroupHeader_Collapsed).addClass(Class_GroupHeader_Expanded);
        getObj(ele.id.replace("_Head","_Detail")).style.display = 'block';
        loadingDetail(ele.id.replace("_Head","_Detail"));
        $(".div_Group_Detail").css("height","auto");
        Callback_GetGroupDetailItems.PerformCallback($(ele).attr("id") + "#" + JsURL ); 
        CloseOtherBox(ele);
    }
    else
    {
        $(ele).removeClass(Class_GroupHeader_Expanded).addClass(Class_GroupHeader_Collapsed);
        getObj(ele.id.replace("_Head","_Detail")).style.display = 'none';
    }
}

function CloseOtherBox(ele)
{
    for(var i=0;i<paramdata.param.length;i++)
    {
        if( paramdata.param[i].startExpanded == "F" && ele.id.toLowerCase().indexOf(paramdata.param[i].paramField.toLowerCase()) < 0  )
        {
            var div = getObj( "div_Group_" + paramdata.param[i].paramField + "_Head" );
	        $(div).removeClass(Class_GroupHeader_Expanded).addClass(Class_GroupHeader_Collapsed);
            getObj("div_Group_" + paramdata.param[i].paramField + "_Detail").style.display = 'none';
        }
    }    
}

function getKeyFromField(paramField){
    var temp = "";
    for(var i=0;i<paramdata.param.length;i++)
    {
        if( paramdata.param[i].paramField == paramField)
        {
	        temp = paramdata.param[i].paramName; 
	        break;
        }		
    }
    return temp;
}

function updateURLParams( key, value, isMultiChoice) 
{  
    var oldUrl = JsURL;
    value = value.replace(new RegExp("_","g")," ");
    var newUrl = "";
    
    var allValues = oldUrl.split('&');
    for(var i=0;i< allValues.length;i++)
        {
        var paramName = allValues[i].split('=')[0];
        
        if(paramName.toLowerCase() == key.toLowerCase())
    {    
        var params = oldUrl.split('&');
        for(var i=0;i < params.length;i++)
        {
            var param = params[i].split('=');
            var param_Name = param[0];
            var old_Param_Value = param[1];
            
            if(isMultiChoice.toUpperCase() == 'F')
            {
                if(param_Name.toLowerCase() == key.toLowerCase())
                {   
                    newUrl = oldUrl.replace(params[i],key + '=' + value.toLowerCase());
                    var children = ChildParam(param_Name).split(",");
                    for(var t=0;t<children.length;t++)
                    {
                        if(children[t] != "")
                        {
                            newUrl = filterParamFromURL(newUrl,children[t]);
                        }
                    }
                }
            }
            else
            {
                if(param_Name.toLowerCase() == key.toLowerCase())
                {                    
                    var multiValues = old_Param_Value.split(';');
                    var has = 0;
                    for(var j =0; j < multiValues.length; j++)
                    {                                                
                        if ( value.toLowerCase() == multiValues[j].toLowerCase() )
                        {
                            has++;
                            break;
                        }
                    }
                    if( has == 0)
                    {
                        newUrl = oldUrl.replace(params[i],key + '=' + old_Param_Value + ';' + value.toLowerCase());
                        break;
                    }
                }
            }
        }        
            break;
        }
        else
        {
            if (oldUrl.length > 0)
            {
                if(oldUrl.indexOf(key.toLowerCase() + "=") == -1)
                    newUrl = oldUrl + "&" + key + "=" + value.toLowerCase(); 
            }
            else
            {
                newUrl = key + "=" + value.toLowerCase();
            }
        }
    }
    
    if(newUrl != "")
    {
        newUrl = deletePagerParam(newUrl);
        location.search = sortQueryString(newUrl);
    }    
}

function deletePagerParam(url)
{
    if(url.indexOf("seoctl00_body_dvw_items") > -1)
    {
        var arrParams = url.split("&");
        for(var k=0;k<arrParams.length;k++)
        {
            if(arrParams[k].indexOf("seoctl00_body_dvw_items") > -1)
            {   
                if(url.indexOf("&seoctl00_body_dvw_items") > -1)
                {
                    url = url.replace("&" + arrParams[k],"");
                }
                else
                {
                    url = url.replace(arrParams[k] + "&","");
                }
            }
        }
    }
    return url;
}

function deleteURLParams( paramField, value ) 
{    
    var key = "";
    value = value.replace(new RegExp("_","g")," ");
    if(paramField.indexOf("paramName_") < 0 )
    {        
        for(var i=0;i<paramdata.param.length;i++)
	    {
	        if( paramdata.param[i].paramField == paramField)
	        {
		        key = paramdata.param[i].paramName; 
		        break;
	        }
	    }
	}
	else if(paramField.indexOf("txtkey") < 0)	
	{
	    key = paramField.substring( 10, paramField.length );
	}
	else
	{
	    key = "txtkey";
	}
	
    var oldUrl = JsURL;
    var newUrl = "";
    var params = new Array();
    params = oldUrl.split('&');
        
    if (oldUrl.toLowerCase().indexOf(key.toLowerCase()) > -1 ) 
    {    
	    for(var i=0;i< params.length; i++)
	    {
		    var thiskey = params[i].substring(0,params[i].indexOf("="));
		    var thisvalue = params[i].substring(params[i].indexOf("=")+1,params[i].length);
		    if( thiskey.toLowerCase() == key.toLowerCase() && thisvalue.toLowerCase().indexOf(value.toLowerCase()) > -1 )
		    {
		        if( thisvalue.indexOf(";") > 0 )
		        {		        
                    var arr = thisvalue.split(";");
                    var newstr = "";
                    for( var k=0; k<arr.length; k++ )
                    { 
                        if(arr[k].toLowerCase() != value.toLowerCase())
                        {
                            newstr = newstr + arr[k] + ";";
                        }
                    }
                    params[i] = thiskey + "=" + newstr.substring(0,newstr.length-1);
			        break;
		        }
		        else
		        {
			        params[i]="";
			        break;
			    }
		    }		    
	    }
	    newUrl = params.join("&").trimChar();
	}
	
	for(var i=0;i< paramdata.param.length;i++)
	{
	   if(key.toLowerCase() == paramdata.param[i].masterParam.toLowerCase())
	   {
	        var arrParams = newUrl.toLowerCase().split("&");
	        if(arrParams.length > 0)
	        {
	            for(var j=0;j<arrParams.length;j++)
	            {
	                if(arrParams[j].indexOf(paramdata.param[i].paramName.toLowerCase()) > -1)
	                {
	                    newUrl = filterParamFromURL( newUrl, arrParams[j].split("=")[0] );	                    
	                }
	            }
	        }
	   }
	}
	
    if (newUrl != "") {
        newUrl = deletePagerParam(newUrl);
        location.search = sortQueryString(newUrl);
    }
    else
        CleanAllFilter();
}	

function CleanAllFilter()
{ 
    location.href = location.href.replace(location.search,"");
}

function loadingDetail(id)
{
	var h=$("#"+id).height();
	var w=$("#"+id).width();
	$("#"+id).html("<img style='position: relative; left: 45%;' src='/Images/icons/loadingCart.gif' />").height(h).width(w);
}
$(function (){ShowSelection( JsURL );});
