var arrAreas = new Array();
var arrRows = new Array();
var blnSeats = false;
var arrSelectedSeats = new Array();
var intSeats = 0;
var strSelectedSeats = "";
var intTotalQty;

if(blnIsPaymentPage == undefined)
{
    blnIsPaymentPage == false;
}
if(blnIsPaymentPage == true)
{
    blnSeats = true;
}

function subFillSeatLayout(strData)
{
    try
    {
        var arrTempAreas = new Array();
        var arrTempRows = new Array();
        var arrAreaData = new Array();
        var arrRowData = new Array();
        var arrSeatData = new Array();
        var strAreas = "";
        var strRows = "";
        
        strAreas = strData.split("||")[0];
        strRows = strData.split("||")[1];
        
        arrTempAreas = strAreas.split("|");
        intTotalQty = 0;
        for(var intTempAreaCount = 0;intTempAreaCount < arrTempAreas.length;intTempAreaCount++)
        {
            arrAreaData = new Array();
            arrAreaData.push(arrTempAreas[intTempAreaCount].split(":")[1]);
            arrAreaData.push(arrTempAreas[intTempAreaCount].split(":")[2]);
            arrAreaData.push(arrTempAreas[intTempAreaCount].split(":")[3]);
            arrAreaData.push(arrTempAreas[intTempAreaCount].split(":")[0]);
            arrAreaData.push(arrTempAreas[intTempAreaCount].split(":")[4]);
            arrAreaData.push(arrTempAreas[intTempAreaCount].split(":")[5]);
            intTotalQty += parseInt(arrAreaData[5]);
            arrAreas.push(arrAreaData);
        }

        setCookie("intTQty", intTotalQty);
        arrTempRows = strRows.split("|");
        
        for(var intTempRowCount = 0;intTempRowCount < arrTempRows.length;intTempRowCount++)
        {
            if(arrTempRows[intTempRowCount] != "")
            {
                arrSeatData = new Array();
                arrRowData = arrTempRows[intTempRowCount].split(":");
                for(var intTempSeatCount = 0;intTempSeatCount < arrRowData.length;intTempSeatCount++)
                {
                    arrSeatData.push(isNaN(parseInt(arrRowData[intTempSeatCount])) == false ? parseInt(arrRowData[intTempSeatCount]) :  arrRowData[intTempSeatCount]);
                }
                arrRows.push(arrSeatData)
            }
        }
    } catch(e) {
        subDisplayError("SeatLayoutPageCode.js", "subFillSeatLayout('" + strData + "')", e);
    }
}

function intGetAreaSeats(strAreaCode)
{
    try
    {
        var intMaxSeats = 0;
        var strClassAreaData = "";
        var arrAreaData = new Array();
//        if(strClassAreaData == "")
//        {        
          //strClassAreaData = strGetCookie("strClassAreaData", "");
          strClassAreaData = strGetCookie("strArea", "");
          arrAreaData = strClassAreaData.split("|");
//        }
            
        var arrClassData;
        
        for(var intCount = 0;intCount < arrAreaData.length;intCount++)
        {
            arrClassData = arrAreaData[intCount].split("-");
            
            if(arrClassData[0] == strAreaCode)
            {
                intMaxSeats = parseInt(arrClassData[1]);
                break;
            }
        }
        
        for(var intSeatCount = 0; intSeatCount < arrSelectedSeats.length; intSeatCount++) 
        {
            if(blnIsSeatInArea(arrSelectedSeats[intSeatCount], strAreaCode))
            {
                intMaxSeats--;
            }
        }
        
        return intMaxSeats;
    } catch(e) {
        subDisplayError("SeatLayoutPageCode.js", "intGetAreaSeats('" + strAreaCode + "')", e);
	}
	
	return 0;
}

function blnIsSeatInArea(strSeatId, strAreaCode)
{
    try
    {
        var arrSeatData = strSeatId.split("_");
        
        if(arrSeatData[0] == strAreaCode)
        {
            return true;
        }
    } catch(e) {
        subDisplayError("SeatLayoutPageCode.js", "blnIsSeatInArea('" + strSeatId + "', '" + strAreaCode + "')", e);
	}
    
    return false;
}

function subSelectSeats(objSeat)
{
    var blnStart = false;
    
    var arrSeatData = objSeat.id.split("_");
    
    var intAreaSeats = intGetAreaSeats(arrSeatData[0]);
    intSeats = intAreaSeats;
    
    if(intAreaSeats == 0)
    {
        subClearSelection(arrSeatData[0]);
        intAreaSeats = intGetAreaSeats(arrSeatData[0])
        intSeats = intAreaSeats
    }
    
    try
    {    
        for(var intCount = 0;intCount < objSeat.parentNode.childNodes.length; intCount++) 
        {
            var objLoopSeat = objSeat.parentNode.childNodes[intCount];
            if(objLoopSeat.id == objSeat.id)
            {
                blnStart = true;
                objLoopSeat.firstChild.src='http://content.bookmyshow.com/Images/G_chair.gif';
                arrSelectedSeats.push(objLoopSeat.id)
	            strSelectedSeats += objLoopSeat.id + "|";
                blnSeatsSelected = true;
                intAreaSeats--;
                intSeats--;
                continue;
            }
            if(blnStart > 0 && intSeats > 0)
            {
                if(!objLoopSeat.id) break;
                objLoopSeat.firstChild.src='http://content.bookmyshow.com/Images/G_chair.gif';
                arrSelectedSeats.push(objLoopSeat.id)
	            strSelectedSeats += objLoopSeat.id + "|";
	            intAreaSeats--;
                intSeats--;
            }
        }
    } catch(e) {
        subDisplayError("SeatLayoutPageCode.js", "subSelectSeats('" + objSeat.id + "')", e);
    }

}

function subSetSeats()
{
    if(blnValidateSelectedSeats() == true)
    {
        blnSeats = true;
        subCloseSeatLayout();
        subSetSelectedSeats(strSelectedSeats);
    }
}

function blnValidateSelectedSeats()
{

    try
    {        
        if(blnIsPaymentPage == true && arrSelectedSeats.length == 0)
        {
            return true;
        }
        if(intTotalQty > arrSelectedSeats.length)
        {
	        //intTotalQty = parseInt(strGetCookie("intTotalQty", "0"));
	        intTotalQty = parseInt(strGetCookie("intTQty", "0"));
		    alert("Please select exactly " + intTotalQty + " Seats.");
		    return false;
	    }
	    return true;
    } catch(e) {
        subDisplayError("SeatLayoutPageCode.js", "blnValidateSelectedSeats()", e);
        return false;
    }

}

function subCreateSeatLayout(strData)
{
    try
    {
        arrSelectedSeats = new Array();
        arrAreas = new Array();
        arrRows = new Array();
        if(strData != "")
        {
            subFillSeatLayout(strData);
        }
        var objTblArea;
        var objTBody;
        var objTR;
        var objTD;
        var objTDPhyRowId;
        var intRow;
        var objImg;
        var blnShowAvailInArea;
        var strPrevArea = "";
        var strPrevAreaNum = "";
        var strPrevAreaCode = "";
        var tblSeatLayout = document.getElementById("tblSeatLayout");
        var objtblSeatInfo = document.getElementById("tblSeatInfo");
        var intSeatOffSet = 0;
        
        if(objtblSeatInfo.innerHTML != "")
        {
            objtblSeatInfo.innerHTML = "";
        }
        
        //intTotalQty = parseInt(strGetCookie("intTotalQty", "0"));
        intTotalQty = parseInt(strGetCookie("intTQty", "0"));
        strSelectedSeats = "";
        objTBody = document.createElement("tbody");
        objTblArea = document.createElement("table");
        objTblArea.setAttribute("align", "center");

        /*********************************************************************/
        //Uday 17th Dec 2008
        // This code will process packaged tickets and will store it to cookies
        /*********************************************************************/
        if (intTotalQty == 0) {
            alert("Please try again.");
            subEnableSchedule("");
            return;
        }
        var cStrArea = "";
        for (var i = 0; i < arrAreas.length; i++) {
            cStrArea += "|" + arrAreas[i][1] + "-" + arrAreas[i][5];
        }
        cStrArea = cStrArea.substring(0, cStrArea.length);
        setCookie("strArea", cStrArea, false);
        /**********************************************************/

        
        for(var intRowCount = 0; intRowCount < arrRows.length; intRowCount++)
        {
            //alert(arrRows[intRowCount][2])
            if(strPrevArea != arrRows[intRowCount][2].substring(0,1))
            {
                objTR = document.createElement("tr");
                objTD = document.createElement("td");
                objTD.colSpan = "100";
                strPrevArea = arrRows[intRowCount][2].substring(0,1);
                
                for(var intAreaCount = 0;intAreaCount < arrAreas.length;intAreaCount++)
                {
                    if(arrAreas[intAreaCount][0] == strPrevArea)
                    {
                        intSeatOffSet = parseInt(arrAreas[intAreaCount][5]);
                        objTD.innerHTML = arrAreas[intAreaCount][3];
                        strPrevAreaCode = arrAreas[intAreaCount][1];
                        strPrevAreaNum = arrAreas[intAreaCount][2];
                    }
                }
                
                objTD.className = "cssRow";
                objTR.appendChild(objTD);
                objTBody.appendChild(objTR);
            }
        
            objTR = document.createElement("tr");
            objTD = document.createElement("td");
            
            if(arrRows[intRowCount][1].length > 1)
            {
               objTD.style.fontSize = "5pt";
            }
            
            objTD.innerHTML = arrRows[intRowCount][1];
            objTD.className = "cssDot";
            objTD.style.width = "17px";
            objTD.style.height = "17px";            
            objTR.appendChild(objTD);
            
            for(var intSeatCount = 2; intSeatCount < arrRows[intRowCount].length; intSeatCount++)
            {
                objTD = document.createElement("td");
                objTD.style.padding = "2px 2px 2px 2px";
                objImg = document.createElement("img");
                //subDisplayMsg("", arrRows[intRowCount][intSeatCount], arrRows[intRowCount][intSeatCount].substring(1, 2));
                switch(arrRows[intRowCount][intSeatCount].substring(1,2))
                {
                    case "0" :
                        objTD.style.backgroundColor = "#FFFFFF";
                        break;
                    case "1" :
                        objImg.src = "http://content.bookmyshow.com/Images/W_chair.gif";
                        objTD.id = strPrevAreaCode + "_" + strPrevAreaNum + "_" + arrRows[intRowCount][0] + "_" + (arrRows[intRowCount][intSeatCount].substring(2));
                        objTD.onmouseover = function() { subSetCursor(this, "hand") }
                        objTD.onclick = function() { subSelectSeats(this) };
                        objTD.appendChild(objImg);                        
                        break;
                    case "2" :
                        objImg.src = "http://content.bookmyshow.com/Images/R_chair.gif";
                        objTD.appendChild(objImg);
                        break;
                    case "3" :
                        objImg.src = "http://content.bookmyshow.com/Images/Gy_chair.gif";
                        objTD.appendChild(objImg);
                        break;
                    case "4" :
                        objImg.src = "http://content.bookmyshow.com/Images/G_chair.gif";
                        objTD.id = strPrevAreaCode + "_" + strPrevAreaNum + "_" + arrRows[intRowCount][0] + "_" + (arrRows[intRowCount][intSeatCount].substring(2));
                        strSelectedSeats += objTD.id + "|";
                        objTD.onmouseover = function() { subSetCursor(this, "hand") }
                        objTD.onclick = function() { subSelectSeats(this) };
                        objTD.appendChild(objImg); 
                        arrSelectedSeats.push(objTD.id)
                        break;
                }
                objTR.appendChild(objTD);
            }
            objTBody.appendChild(objTR);
            objTblArea.appendChild(objTBody);
        }
        
            //subDisplayMsg("SeatLayoutCode.js", "Over", "Over");
        objtblSeatInfo.appendChild(objTblArea);
        tblSeatLayout.style.top = "110px";
        if(document.body.scrollTop > 0)
        {
            tblSeatLayout.style.top = parseInt(tblSeatLayout.style.top.replace("px", "")) + parseInt(document.body.scrollTop) + "px";
        }
        else if (document.documentElement.scrollTop > 0)
        {
            tblSeatLayout.style.top = parseInt(tblSeatLayout.style.top.replace("px", "")) + parseInt(document.documentElement.scrollTop) + "px";
        }
        tblSeatLayout.style.display = "block";
    } catch(e) {
        subDisplayError("SeatLayoutPageCode.js", "subCreateSeatLayout('" + strData + "')", e);
    }
}

function subCloseSeatLayout()
{
    try
    {
        if(blnSeats == false)
        {
            //intTotalQty = parseInt(strGetCookie("intTotalQty", "0"));
            intTotalQty = parseInt(strGetCookie("intTQty", "0"));
            alert("Please select exactly " + intTotalQty + " Seats.");
            return;
        }
        var tblSeatLayout = document.getElementById("tblSeatLayout");
        tblSeatLayout.style.display = "none";
        
    } catch(e) {
        subDisplayError("SeatLayoutPageCode.js", "subCloseSeatLayout()", e);
    }
}

function subClearSelection(strAreaCode)
{
    var objSeat;
    var arrSeats = new Array();
    for(var intSeatCount = 0; intSeatCount < arrSelectedSeats.length; intSeatCount++)
    {
        objSeat = document.getElementById(arrSelectedSeats[intSeatCount])
        if(objSeat.id.search(strAreaCode) >= 0)
        {
            objSeat.firstChild.src = "http://content.bookmyshow.com/Images/W_chair.gif";
            strSelectedSeats = strSelectedSeats.replace(arrSelectedSeats[intSeatCount] + "|", "");
            intSeats++;
        }
    }
    for(var intCount = 0; intCount < arrSelectedSeats.length; intCount++)
    {
        objSeat = document.getElementById(arrSelectedSeats[intCount])
        if(objSeat.id.search(strAreaCode) >= 0)
        {
            arrSeats.push(intCount);
        }
    }
    for(var intCount = arrSeats.length - 1; intCount >= 0; intCount--)
    {
            arrSelectedSeats.splice(arrSeats[intCount], 1);
    }
}

