﻿function onLoadControl(isClick)
{   
    if(!isClick) 
    {
        if(document.URL.indexOf("OrderFilmSearch")>0)
        document.getElementById("checkboxOrder").checked=(getUrlParameter("all")=="0"?true:false);
        else if(document.URL.indexOf("/plan/")>0)
        document.getElementById("checkboxOrder").checked=false;
        else
        document.getElementById("checkboxOrder").checked=true;
    }
    var i=0;
    if(document.getElementById("checkboxOrder").checked) i=4;
        
    var arrayData=getArrayItems();    
    setArrayItemsToControl("selectFilm"  ,arrayData[i+0],getUrlParameter("film"));
    setArrayItemsToControl("selectArea"  ,arrayData[i+1],getUrlParameter("area"));
    setArrayItemsToControl("selectCinema",arrayData[i+2],getUrlParameter("cinema"));
    setArrayItemsToControl("selectDate"  ,arrayData[i+3],getUrlParameter("date"));
}
function onLoadControlNull()
{
    var i=0;
    if(document.getElementById("checkboxOrder").checked) i=4;
    
    var arrayData=getArrayItems();
    setArrayItemsToControl("selectFilm"  ,arrayData[i+0],"");
    setArrayItemsToControl("selectArea"  ,arrayData[i+1],"");
    setArrayItemsToControl("selectCinema",arrayData[i+2],"");
    setArrayItemsToControl("selectDate"  ,arrayData[i+3],"");
}
function onSelectChange(control)
{
    var arrayData=getArrayPlans();        
    if(control.id=="selectFilm")
    {       
        if(document.getElementById("selectFilm").value=="all") onLoadControlNull();
        else 
        {
            arrayData=getArrayFilter(arrayData,document.getElementById("selectFilm").value,null,null);
            setArrayDistinctToControl("selectArea",arrayData);
            setArrayDistinctToControl("selectDate",arrayData);
            setArrayDistinctToControl("selectCinema",arrayData);
        }
    }    
    if(control.id=="selectArea")
    {            
        arrayData=getArrayFilter(arrayData,document.getElementById("selectFilm").value,document.getElementById("selectArea").value,null);            
        setArrayDistinctToControl("selectDate",arrayData);
        setArrayDistinctToControl("selectCinema",arrayData);
    }    
    if(control.id=="selectCinema")
    {            
        arrayData=getArrayFilter(arrayData,document.getElementById("selectFilm").value,document.getElementById("selectArea").value,document.getElementById("selectCinema").value);            
        setArrayDistinctToControl("selectDate",arrayData);        
    }            
}
function onSearchClick()
{   
    if(""==document.getElementById("selectFilm").value
     ||""==document.getElementById("selectArea").value
     ||""==document.getElementById("selectDate").value
     ||""==document.getElementById("selectCinema").value) 
     {
        alert("请重新选择有数据的电影");return;
     }    
     
     var selresult=""; // 什么都没选
     if("all" != document.getElementById("selectFilm").value)
     {
       //alert(document.getElementById("selectFilm").value);
        selresult ="|选电影";
     }
     
     if("all" != document.getElementById("selectArea").value)
     {
        selresult += "|选城区";
     }
     
     if("all" != document.getElementById("selectCinema").value)
     {
        selresult += "|选影院";
     }
     
     if("all" != document.getElementById("selectDate").value)
     {
        selresult += "|选择时间";
     }
     
     //alert(selresult);
     
     if(selresult == "")
     {
       selresult = "没选搜索条件";
     }
     
     //alert(selresult);
     pageTracker._setVar(selresult);
     
    var url= document.getElementById("ViewStateAppUrl").value 
           +"/V4/Search.aspx?"
           +"film="+document.getElementById("selectFilm").value
           +"&area="+document.getElementById("selectArea").value
           +"&date="+document.getElementById("selectDate").value
           +"&cinema="+document.getElementById("selectCinema").value
           +"&all="+(document.getElementById("checkboxOrder").checked?"0":"1");
    window.location.href=url;
}
function getArrayPlans()
{
    var viewStateClientID=document.getElementById("ViewStateClientID").value;
    if(null==viewStateClientID) return;
    var array0=new Array();        
    var array1=trimx(document.getElementById(viewStateClientID).value).split("++");
    for(var i=0;i<array1.length;i++)
    array0.push(array1[i].split("__"));
    return array0;
}
function getArrayItems()
{
    var viewStateClientID=document.getElementById("ViewStateClientID").value;
    if(null==viewStateClientID) return;
    var array0=new Array();        
    var array1=document.getElementById(viewStateClientID.replace("ViewStatePlans","ViewStateItems")).value.split("@@");
    for(var i=0;i<array1.length;i++)
    array0.push(array1[i].split("++"));
    return array0;
}
function getArrayFilter(arrayToFilter,selectFilmValue,selectAreaValue,selectCinemaValue)
{
    var array1=new Array();
    if(selectFilmValue=="all") selectFilmValue=null;
    if(selectAreaValue=="all") selectAreaValue=null;
    if(selectCinemaValue=="all") selectCinemaValue=null;          
    if(null==selectFilmValue&&null==selectAreaValue&&null==selectCinemaValue&&(!document.getElementById("checkboxOrder").checked))
        return arrayToFilter;
    for(var i=0;i<arrayToFilter.length;i++)
        if((document.getElementById("checkboxOrder").checked&&arrayToFilter[i][4]!="2")||(!document.getElementById("checkboxOrder").checked))
        if(dataIsEqual(selectFilmValue,selectAreaValue,selectCinemaValue,arrayToFilter[i][0],arrayToFilter[i][2],arrayToFilter[i][1]))
        array1.push(arrayToFilter[i]);        
    arrayToFilter=null;
    return array1;        
}   
function setArrayItemsToControl(objectName,arrayFilter,selectedValue)
{
    clearOptions(objectName);        
    var selectObject = document.getElementById(objectName);
    if(null==selectObject) return;        
    var optionsObject=selectObject.options;
    for(var i=0;i<arrayFilter.length;i++)
    {
        var newOption=new Option(unescape(arrayFilter[i].split("__")[1]),arrayFilter[i].split("__")[0]);            
        if(arrayFilter[i].split("__")[0]==selectedValue) newOption.selected=true;
        optionsObject.add(newOption);
    }
}     
function setArrayDistinctToControl(objectName,arrayFilter,selectedValue)
{
    clearOptions(objectName);       
    for(var i=0;i<arrayFilter.length;i++)
    {
        if("selectFilm"==objectName) dataIsInControl("selectFilm",arrayFilter[i][0],selectedValue);
        else if("selectArea"==objectName) dataIsInControl("selectArea",arrayFilter[i][2],selectedValue);
        else if("selectDate"==objectName) dataIsInControl("selectDate",arrayFilter[i][3],selectedValue);
        else if("selectCinema"==objectName) dataIsInControl("selectCinema",arrayFilter[i][1],selectedValue);
    }
}
function dataIsInControl(objectName,dataValue,selectedValue)
{
    var selectObject = document.getElementById(objectName); 
    if(null==selectObject) return;        
    var optionsObject=selectObject.options;
    if(!dataIsInArray(selectObject.options,dataValue))
    {
        var newOption=new Option(getItemsDataName(objectName,dataValue),dataValue);
        if(selectedValue==dataValue) newOption.selected=true;
        optionsObject.add(newOption);
    }
}
function dataIsInArray(array,dataValue)
{
    for(var i=0;i<array.length;i++)
    if(array[i].value==dataValue) return true;
    return false;
}
function dataIsEqual(selectFilmValue,selectAreaValue,selectCinemaValue,filmValue,areaValue,cinemaValue)
{
    if(selectFilmValue==null) filmValue=null;
    if(selectAreaValue==null) areaValue=null;
    if(selectCinemaValue==null) cinemaValue=null;          
    if(selectFilmValue==filmValue&&selectAreaValue==areaValue&&selectCinemaValue==cinemaValue)
    return true;
    else 
    return false;
}
function getItemsDataName(objectName,dataValue)
{
    var arrayData=getArrayItems();
    var array0=new Array();
    if("selectFilm"==objectName) array0=arrayData[0];
    else if("selectArea"==objectName) array0=arrayData[1];
    else if("selectDate"==objectName) array0=arrayData[3];
    else if("selectCinema"==objectName) array0=arrayData[2];
    for(var i=0;i<array0.length;i++)                    
        if(array0[i].split("__")[0]==dataValue)
        return unescape(array0[i].split("__")[1]);        
    return "";
}
function clearOptions(objectName)
{
    var selectObject = document.getElementById(objectName);        
    var optionsObject=selectObject.options;
    optionsObject.length=0;
    if(objectName.indexOf("Film")>0)  optionsObject.add(new Option("请选择电影","all"));
    if(objectName.indexOf("Area")>0)  optionsObject.add(new Option("请选择城区","all"));        
    if(objectName.indexOf("Cine")>0)  optionsObject.add(new Option("请选择影院","all"));        
    if(objectName.indexOf("Date")>0)  optionsObject.add(new Option("请选择时间","all")); 
}
function getUrlParameter(paraName)
{
    var strUrl=document.URL;
    if(strUrl.indexOf("?")>0)
    strUrl="&"+strUrl.substring(strUrl.indexOf("?")+1);
    if(strUrl.indexOf("&"+paraName)<0) return null;
    strUrl=strUrl.substring(strUrl.indexOf("&"+paraName)).replace("&"+paraName+"=","");
    if(strUrl.indexOf("&")<0) return strUrl;
    strUrl=strUrl.substr(0,strUrl.indexOf("&"));
    return strUrl;
}
function  trimx(str)
{
    for(var i=0;i<str.length && str.charAt(i)=="+";i++);
    for(var j=str.length;j>0 && str.charAt(j-1)=="+";j--);
    if(i>j)  return  "";  
    return  str.substring(i,j);  
}
