var arrCinemas = new Array();
var arrMovies = new Array();
var arrDates = new Array();
var arrTime = new Array();
var arrTT = new Array();
var arrCities = new Array();
var arrStates = new Array();


subGetDataAndExecute("sctState", "jxData.aspx?dt=GTST&v=" + intValue, "subLoadStates();", true);

function setSelection(strValue, strDvSelectName, strDvSelectValue, strComboId, strCall)
{
	var strValueData = strGetCookie(strValue, "");
	if(strValueData.trim().length > 0)
	{
		var objDiv = document.getElementById(strDvSelectName);
		var obj;
		for(var iCount = 0; iCount < objDiv.childNodes[0].childNodes.length; iCount++)
		{
			obj = objDiv.childNodes[0].childNodes[iCount];
			if(obj.childNodes.length > 1)
			{
				if(obj.childNodes[1].innerHTML == strValueData)
				{
					subLoadCombo(document.getElementById(strDvSelectValue), obj.childNodes[0].nodeValue);
					document.getElementById(strDvSelectValue).title = obj.childNodes[0].nodeValue;
					break;
				}
			}
		}
		document.getElementById(strComboId).value = strValueData;
		if(strCall != "")
		{
			if(document.getElementById(strComboId).value == strValueData)
				eval(strCall + "('" + strValueData + "')");
		}
	}
}

function getValue(intQty)
{
    var objQty = document.getElementById('intQty');
    objQty.value = intQty;
    objQty.style.visibility = 'visible';
}

function clearCombo(objCombo)
{
    if(objCombo == null) return;
    objCombo.innerHTML = "";
}

function subAddToImgCombo(objCombo, objUL, strDvSel, strDv, strInput, strSelect, strText, strValue)
{
    try {
        var objLI = document.createElement("li");
        
        //objLI.id = strValue;
        //objLI.setAttribute("alt", strValue);
        objLI.setAttribute("title", strText);
        
        objLI.onclick = function() {setValue(this, strDvSel, strDv, strInput, strSelect);}
        objLI.onmouseover = function(){changeBack(this, true);}
        objLI.onmouseout = function(){changeBack(this, false);}
        objLI.innerHTML = strText;
        if(strText.length > 15)
			blnDefaultWidth = false;
        var objValue = document.createElement('span');
        
        objValue.innerHTML = strValue;
        objValue.style.display = "none";
        objLI.appendChild(objValue);
        objUL.appendChild(objLI);
    } catch(e) {
        subDisplayError("MiscCode.js", "subAddToCombo('" + objCombo.id + "', '" + strText + "', '" + strValue + "', '" + strGroup + "')", e);
    }
}

function subLoadCombo(objDiv, strtext)
{
    objDiv.innerHTML = strtext;
}

function subEmptyImgCombo(strId, strFirstOption)
{
    var objCombo = document.getElementById(strId);
    if(!objCombo) {
        return;
    }
    objCombo.length = 0;
    if(strFirstOption.length > 0) {
        subAddToImgCombo(objCombo, strFirstOption);
    }
}

function subLoadStates()
{
     if(arrStates.length == 0) {
        subDisplayError("selection.js", "States are NOT yet ready !!!", "");
        return;
    }
    var objCombo = document.getElementById('dvState');
    if(!objCombo) {
        subDisplayError("selection.js", "Could not locate State Combo !!!", null);
        return;
    }
    //objCombo.length = 0;
    var objUL = document.createElement("ul");
    subAddToImgCombo(objCombo, objUL, 'dvSelStateD', 'dvState', 'cboState', 'city', "Select State", "");
    for(var intCount = 0; intCount < arrStates.length; intCount++) {
	    if(arrStates[intCount].trim().length > 0)
            subAddToImgCombo(objCombo, objUL, 'dvSelStateD', 'dvState', 'cboState', 'city', arrStates[intCount], arrStates[intCount]);
    }
    setWidth(objCombo, blnDefaultWidth);
    objCombo.appendChild(objUL);
    
    if(blnIsRef)
		setSelection('sState', 'dvState', 'dvSelStateD', 'cboState', 'subCallLoadCities');
	else
		getFavState();
}

function getFavState()
{
    var strFavState = strGetCookie("strFavState", "");
    if(strFavState.trim().length > 0)
    {
        var objDiv = document.getElementById("dvState");
        var obj;
        for(var iCount = 0; iCount < objDiv.childNodes[0].childNodes.length; iCount++)
        {
            obj = objDiv.childNodes[0].childNodes[iCount];
            if(obj.childNodes.length > 1)
            {
                if(obj.childNodes[1].innerHTML == strFavState)
                {
                    subLoadCombo(document.getElementById('dvSelStateD'), obj.childNodes[0].nodeValue);
                    document.getElementById('dvSelStateD').title = obj.childNodes[0].nodeValue;
                    break;
                }
            }
        }
        document.getElementById("cboState").value = strFavState;
        document.getElementById("chkFavState").checked = true;
        if(document.getElementById("cboState").value == strFavState)
            subCallLoadCities(strFavState);
    }
}

function subCallLoadCities(strState)
{
    intValue = intValue + 1;
    var objCombo = document.getElementById('dvCity');
    if(!objCombo) {
        subDisplayError("selection.js", "Could not locate City Combo !!!");
        return;
    }
    clearCombo(objCombo);
    subLoadCombo(document.getElementById('dvSelCityD'), "Loading Cities...");
    document.getElementById("cboCity").value = "";
    subGetDataAndExecute("sctMovies", "jxData.aspx?dt=GTCT&stid=" + strState + "&v=" + intValue, "subLoadCities();", true);
}

function subLoadCities()
{
     if(arrCities.length == 0) {
        subDisplayError("selection.js", "Regions are NOT yet ready !!!", "");
        return;
    }
    var objCombo = document.getElementById('dvCity');
    if(!objCombo) {
        subDisplayError("selection.js", "Could not locate Region Combo !!!", null);
        return;
    }
    clearCombo(objCombo);
    subLoadCombo(document.getElementById('dvSelCityD'), "Select City");
    var objUL = document.createElement("ul");
    subAddToImgCombo(objCombo, objUL, 'dvSelCityD', 'dvCity', 'cboCity', 'cinema', "Select City", "");
    for(var intCount = 0; intCount < arrCities.length; intCount++) {
        if(arrCities[intCount].trim().length > 0)
            subAddToImgCombo(objCombo, objUL, 'dvSelCityD', 'dvCity', 'cboCity', 'cinema', arrCities[intCount], arrCities[intCount]); 
    }
    setWidth(objCombo, blnDefaultWidth);
    objCombo.appendChild(objUL);
    
    if(blnIsRef)
		setSelection('sCity', 'dvCity', 'dvSelCityD', 'cboCity', 'subCallLoadCinemas');
	else
		getFavCity();
}

function getFavCity()
{
    var strFavCity = strGetCookie("strFavCity", "");
    if(strFavCity.trim().length > 0)
    {
        
        var objDiv = document.getElementById("dvCity");
        var obj;
        for(var iCount = 0; iCount < objDiv.childNodes[0].childNodes.length; iCount++)
        {
            obj = objDiv.childNodes[0].childNodes[iCount];
            if(obj.childNodes.length > 1)
            {
                if(obj.childNodes[1].innerHTML == strFavCity)
                {
                    subLoadCombo(document.getElementById('dvSelCityD'), obj.childNodes[0].nodeValue);
                     document.getElementById('dvSelCityD').title = obj.childNodes[0].nodeValue;
                    break;
                }
            }
        }
        
        document.getElementById("cboCity").value = strFavCity;
        document.getElementById("chkFavCity").checked = true;
        if(document.getElementById("cboCity").value == strFavCity)
            subCallLoadCinemas(strFavCity);
    }
}

function subLoadCinemas()
{
     if(arrCinemas.length == 0) {
        subDisplayError("selection.js", "Cinemas are NOT yet ready !!!", "");
        return;
    }
    var objCombo = document.getElementById('dvCinema');
    if(!objCombo) {
        subDisplayError("selection.js", "Could not locate Cinema Combo !!!", e);
        return;
    }
    clearCombo(objCombo);
    subLoadCombo(document.getElementById('dvSelCinemaD'), "Select Cinema");
    var objUL = document.createElement("ul");
    subAddToImgCombo(objCombo, objUL, 'dvSelCinemaD', 'dvCinema', 'cboCinema', 'movie', "Select Cinema", "");
    for(var intCount = 0; intCount < arrCinemas.length; intCount++) {
        if(arrCinemas[intCount][0].trim().length > 0)
            subAddToImgCombo(objCombo, objUL, 'dvSelCinemaD', 'dvCinema', 'cboCinema', 'movie', arrCinemas[intCount][1], arrCinemas[intCount][0]); 
    }
    setWidth(objCombo, blnDefaultWidth);
    objCombo.appendChild(objUL);
    
    if(blnIsRef)
		setSelection('cid', 'dvCinema', 'dvSelCinemaD', 'cboCinema', 'subCallLoadMovies');
	else
		getFavCinema();
}

function getFavCinema()
{
    var strFavCinema = strGetCookie("strFavCinema", "");
    if(strFavCinema.trim().length > 0)
    {
        var objDiv = document.getElementById("dvCinema");
        var obj;
        for(var iCount = 0; iCount < objDiv.childNodes[0].childNodes.length; iCount++)
        {
            obj = objDiv.childNodes[0].childNodes[iCount];
            if(obj.childNodes.length > 1)
            {
                if(obj.childNodes[1].innerHTML == strFavCinema)
                {
                    subLoadCombo(document.getElementById('dvSelCinemaD'), obj.childNodes[0].nodeValue);
                    document.getElementById('dvSelCinemaD').title = obj.childNodes[0].nodeValue;
                    break;
                }
            }
        }
        
        document.getElementById("cboCinema").value = strFavCinema;
        document.getElementById("chkFavCinema").checked = true;
        if(document.getElementById("cboCinema").value == strFavCinema)
            subCallLoadMovies(strFavCinema);
    }
}

function subCallLoadCinemas(strCity)
{
    var objCombo = document.getElementById('dvCinema');
    intValue = intValue + 1;
    if(!objCombo) {
        subDisplayError("selection.js", "Could not locate Cinema Combo !!!");
        return;
    }
    clearCombo(objCombo);
    subLoadCombo(document.getElementById('dvSelCinemaD'), "Loading Cinemas...");
    document.getElementById("cboCinema").value = "";
    subGetDataAndExecute("sctMovies", "jxData.aspx?dt=GTCN&rid=" + strCity + "&v=" + intValue, "subLoadCinemas();", true);
}

//----------- Start------ Load Movies-----------------
function subCallLoadMovies(strCinemaId)
{
    var objCombo = document.getElementById('dvMovie');
    intValue = intValue + 1;
    if(!objCombo) {
        subDisplayError("selection.js", "Could not locate Cinema Combo !!!");
        return;
    }
    clearCombo(objCombo);
    subLoadCombo(document.getElementById('dvSelMovieD'), "Loading Movies...");
    document.getElementById("cboMovie").value = "";
    subGetDataAndExecute("sctMovies", "jxData.aspx?dt=GTMV&cid=" + strCinemaId + "&v=" + intValue, "subLoadMovies();", true);
}

function subLoadMovies()
{
    var objCombo = document.getElementById('dvMovie');
    objCombo.length = 0;
    if(!objCombo) {
        subDisplayError("selection.js", "Could not locate Movie Combo !!!");
        return;
    }
    clearCombo(objCombo);
    subLoadCombo(document.getElementById('dvSelMovieD'), "Select Movie");
    var objUL = document.createElement("ul");
    subAddToImgCombo(objCombo, objUL, 'dvSelMovieD', 'dvMovie', 'cboMovie', 'showdate', "Select Movie", "");
    for(var intCount = 0; intCount < arrMovies.length; intCount++) {
        if(arrMovies[intCount][0].trim().length > 0)
            subAddToImgCombo(objCombo, objUL, 'dvSelMovieD', 'dvMovie', 'cboMovie', 'showdate', arrMovies[intCount][1], arrMovies[intCount][0]);
    }
    setWidth(objCombo, blnDefaultWidth);
    objCombo.appendChild(objUL);
    clearCombo(document.getElementById('dvShowDate'));
    clearCombo(document.getElementById('dvShowTime'));
    clearCombo(document.getElementById('dvShowClass'));
    if(blnIsRef)
		setSelection('sFilm', 'dvMovie', 'dvSelMovieD', 'cboMovie', 'subCallLoadShowDates');
}

//----------- End------ Load Movies-----------------



//------Start---- For Movie Dates------------------------
function subCallLoadShowDates(strFilmCode)
{
    intValue = intValue + 1;
    var objCombo = document.getElementById('dvShowDate');
    var strCinemaId = document.getElementById("cboCinema").value;
    if(!objCombo) {
        subDisplayError("selection.js", "Could not locate Cinema Combo !!!", e);
        return;
    }
    clearCombo(objCombo);
    subLoadCombo(document.getElementById('dvSelShowDateD'), "Loading Show Dates...");
    document.getElementById("cboShowDate").value = "";
    subGetDataAndExecute("sctMoviesDates", "jxData.aspx?dt=GTDT&cid=" + strCinemaId + '&fid=' + strFilmCode + "&v=" + intValue, "subLoadShowDates();", true);
}

function subLoadShowDates()
{
    var objCombo = document.getElementById('dvShowDate');
  
    objCombo.length = 0;
    if(!objCombo) {
        subDisplayError("selection.js", "Could not locate Movie Combo !!!");
        return;
    }
    clearCombo(objCombo);
    subLoadCombo(document.getElementById('dvSelShowDateD'), "Select Show Date");
    var objUL = document.createElement("ul");
    subAddToImgCombo(objCombo, objUL, 'dvSelShowDateD', 'dvShowDate', 'cboShowDate', 'showtime', "Select Show Date", "");
    
    for(var intCount = 0; intCount < arrDates.length; intCount++) {
        if(arrDates[intCount][0].trim().length > 0)
            subAddToImgCombo(objCombo, objUL, 'dvSelShowDateD', 'dvShowDate', 'cboShowDate', 'showtime', arrDates[intCount][1], arrDates[intCount][0]);
    }
    setWidth(objCombo, blnDefaultWidth);
    objCombo.appendChild(objUL);
    clearCombo(document.getElementById('dvShowTime'));
    clearCombo(document.getElementById('dvShowClass'));
    if(blnIsRef)
		setSelection('sDate', 'dvShowDate', 'dvSelShowDateD', 'cboShowDate', 'subCallLoadShowTimes');
}
//------End Of---- For Movie Dates------------------------



//------Start---- For Show Time------------------------
function subCallLoadShowTimes(strShowDate)
{
    intValue = intValue + 1;
    var objCombo = document.getElementById('dvShowTime');
    var strCinemaId = document.getElementById("cboCinema").value
    var strFilmCode = document.getElementById("cboMovie").value
    if(!objCombo) {
        subDisplayError("selection.js", "Could not locate Cinema Combo !!!","");
        return;
    }
    clearCombo(objCombo);
    subLoadCombo(document.getElementById("dvSelShowTimeD"), "Loading Show Times...");
    document.getElementById("cboShowTime").value = "";
    subGetDataAndExecute("sctShowTime", "jxData.aspx?dt=GTTM&sdt=" + strShowDate +"&fid=" + strFilmCode +"&cid=" + strCinemaId + "&v=" + intValue, "subLoadShowTimes();", true);
}

function subLoadShowTimes()
{
    var objCombo = document.getElementById('dvShowTime');
    objCombo.length = 0;
    if(!objCombo) {
        subDisplayError("selection.js", "Could not locate Show Time !!!");
        return;
    }
    clearCombo(objCombo);
    subLoadCombo(document.getElementById('dvSelShowTimeD'), "Select Show Time");
    var objUL = document.createElement("ul");
    subAddToImgCombo(objCombo, objUL, 'dvSelShowTimeD', 'dvShowTime', 'cboShowTime', 'class', "Select Show Time", "");

    for(var intCount = 0; intCount < arrTime.length; intCount++) {
        if(arrTime[intCount][0].trim().length > 0)
            subAddToImgCombo(objCombo, objUL, 'dvSelShowTimeD', 'dvShowTime', 'cboShowTime', 'class', arrTime[intCount][1], arrTime[intCount][0]);
    }
    setWidth(objCombo, blnDefaultWidth);
    objCombo.appendChild(objUL);
    clearCombo(document.getElementById('dvShowClass'));
    if(blnIsRef)
		setSelection('sid', 'dvShowTime', 'dvSelShowTimeD', 'cboShowTime', 'subCallLoadClass');
}
//------End Of---- For Show Time------------------------

//------Start---- For Ticket Type------------------------
function subCallLoadClass(strSessionId)
{
    intValue = intValue + 1;
    var objCombo = document.getElementById('dvClass');
    var strCinemaId = document.getElementById("cboCinema").value
    if(!objCombo) {
        subDisplayError("selection.js", "Could not locate Cinema Combo !!!","");
        return;
    }
    clearCombo(objCombo);
    subLoadCombo(document.getElementById('dvSelClassD'), "Loading Class...");
    document.getElementById("cboClass").value = "";
    subGetDataAndExecute("sctShowTime", "jxData.aspx?dt=GTTT&cid=" + strCinemaId +"&sid=" + strSessionId + "&v=" + intValue, "subLoadClass();", true);
}

function subLoadClass()
{
    var objCombo = document.getElementById('dvClass');
  
    objCombo.length = 0;
    if(!objCombo) {
        subDisplayError("selection.js", "Could not locate Ticket Type !!!");
        return;
    }
    clearCombo(objCombo);
    subLoadCombo(document.getElementById('dvSelClassD'), "Select Class");
    var objUL = document.createElement("ul");
    subAddToImgCombo(objCombo, objUL, 'dvSelClassD', 'dvClass', 'cboClass', '', "Select Class", "");
    for(var intCount = 0; intCount < arrTT.length; intCount++) {
        if(arrTT[intCount][0].trim().length > 0)
            subAddToImgCombo(objCombo, objUL, 'dvSelClassD', 'dvClass', 'cboClass', '', arrTT[intCount][1] + arrTT[intCount][2], arrTT[intCount][0]);
    }
    setWidth(objCombo, blnDefaultWidth);
    objCombo.appendChild(objUL);
    if(blnIsRef)
    {
		setSelection('tid', 'dvClass', 'dvSelClassD', 'cboClass', '');
		setSelection('qty', 'dvTickets', 'dvSelTicketsD', 'cboTicketsQty', '');
	}
    //getFavClass();
    
}


//------End Of---- For Show Time------------------------

function blnCheckFields()
{
    //check state
    var objState = document.getElementById('cboState');
    if(rightTrim(objState.value) == "")
    {
        alert("Please, select the state!!!");
        //objState.focus();
        return false;
    }
    
    //check city
    var objCity = document.getElementById("cboCity");
    if(rightTrim(objCity.value) == "")
    {
        alert("Please, select the city!!!");
        //objCity.focus();
        return false;
    }

    var objCinema = document.getElementById('cboCinema');
    if(rightTrim(objCinema.value) == '')
    {
        alert('Please, select the cinema!!!');
        //objCinema.focus();
        return false;
    }
    
    var objMovie = document.getElementById('cboMovie');
    if(rightTrim(objMovie.value) == '')
    {
        alert('Please, select the movie!!!');
        //objMovie.focus();
        return false;
    }
    
    var objDate = document.getElementById('cboShowDate');
    if(rightTrim(objDate.value) == '')
    {
        alert('Please, select the date!!!');
        //objDate.focus();
        return false;
    }
    
    var objTime = document.getElementById('cboShowTime');
    if(rightTrim(objTime.value) == '')
    {
        alert('Please, select the showtime!!!');
        //objTime.focus();
        return false;
    }
   
    var objClass = document.getElementById('cboClass');
    if(rightTrim(objClass.value) == '')
    {
        alert('Please, select the class!!!');
        //objClass.focus();
        return false;
    }
    
    var objQty = document.getElementById('cboTicketsQty');
    if(rightTrim(objQty.value) == '')
    {
        alert('Please, enter the seat quantity!!!');
        //objQty.focus();
        return false;
    }

    blnSetCookie("cid", objCinema.value, false);
    blnSetCookie("sid", objTime.value, false);
    blnSetCookie("tid", objClass.value, false);
    blnSetCookie("qty", objQty.value, false);
    return true;
}

//-------- It trim the white spaces
function rightTrim(sString) 
{
    while (sString.substring(sString.length-1, sString.length) == ' ')
    {
        sString = sString.substring(0,sString.length-1);
    }
    return sString;
}

//-----Create cookie
function blnSetCookie(strName, strValue, blnPermanent)
{
    try
    {
        if(!blnPermanent) blnPermanent = false;
        var strCookie = escape(strName) + "=" + escape(strValue)
        if(blnPermanent == true)
        {
            var dtmDate = new Date ();
            dtmDate.setYear((dtmDate.getFullYear() + 1));
            strCookie += "; expires=" + dtmDate.toGMTString();
        }
        strCookie += "; path=/"
        document.cookie = strCookie;
        return true;
    } catch(e) {
        subDisplayError("selection.js", "blnSetCookie('" + strName + "', '" + strValue + "')", e);
    }
    return false;
}

function strGetCookie(strName, strDefault)
{
    var strResult = strDefault;
    try
    {
        var strSearch = strName + "=";
        var strCookie = document.cookie;
        var intStart = -1;
        var intEnd = -1;
        if(strCookie.length > 0)
        {
            intStart = strCookie.indexOf(strSearch);
            if(intStart > -1)
            {
                intStart += strSearch.length;
                intEnd = strCookie.indexOf(";", intStart);
                if(intEnd == -1)
                {
                    intEnd = strCookie.length;
                }
                strResult = unescape(strCookie.substring(intStart, intEnd));         
            }
        }
    } catch(e) {
        subDisplayError("MiscCode.js", "strGetCookie('" + strName + "', '" + strDefault + "')", e);
    }
    return strResult;
}


