var strWebServiceURL = "";
var strAppCode = "WEB";
var lngTransId = 0;
var strSelectedVenue = strGetQueryVariable("cid");
var strSelectedSessionId = strGetQueryVariable("sid");
var strSelectedTicketType = "";
var intSelectedQuantity = 0;
var strSelectedClassData = "";
var intClassDataPosition = -1;
var arrClass;
var strBookingId = "";
var strSeatInfo = "";
var curTicketsAmt = 0;
var curFoodAmt = 0;
var curBookingFee = 0;
var curDiscountAmt = 0;
var curTotalAmt = 0;

var strOfferDetails = "";
var blnShowLayout = true;

function subInitTrans(strVenueCode, lngSessionId, arrClassData, strOfferData, blnShowSeatLayout)
{
    try
    {
        subDisableSchedule();
        var objtblClass = document.getElementById("tblClass");
        objtblClass.style.display = "none";
        intClassDataPosition = -1;
        strSelectedVenue = strVenueCode;
        //blnSetCookie("strVenueCode", strSelectedVenue);
        strSelectedSessionId = lngSessionId;
        //strSelectedClassData = strClassData;
        arrClass = arrClassData;
        strOfferDetails = strOfferData;
        blnShowLayout = blnShowSeatLayout;
        if(blnShowLayout == false)
        {
            blnSetCookie("sl", "N", false);
        }
        else
        {
            blnSetCookie("sl", "", false);
        }
        subGetDataAndExecuteEx(strAppCode, strSelectedVenue, 0, "INITTRANS", "", "", "", "", "", "", "", "", "", "", strWebServiceURL, "subAddSeats", "subEnableSchedule")
    } catch(e) {
        subDisplayError("TransCode.js", "subInitTrans('" + strVenueCode + "', " + lngSessionId + ", '" + strOfferData + "')", e);
    }
}

function subAddSeats(strData)
{
    try
    {
        intClassDataPosition++;
        strSelectedTicketType = arrClass[intClassDataPosition][0];
        intSelectedQuantity = arrClass[intClassDataPosition][1];
        var strCallBackCommand = "";
        if(intClassDataPosition == 0)
        {
            lngTransId = strGetData("TRANSACTIONID", strData);
            blnSetCookie("lngTransId", lngTransId, false);
        }
        if(intClassDataPosition < arrClass.length - 1)
        {
            strCallBackCommand = "subAddSeats";
        }
        else
        {
            strCallBackCommand = "subGetSeatLayout";
        }
        subGetDataAndExecuteEx(strAppCode, strSelectedVenue, lngTransId, "ADDSEATS", strSelectedSessionId, strSelectedTicketType, intSelectedQuantity, strGetCookie("strRef", ""), strOfferDetails, "", "", "", "", "", strWebServiceURL, strCallBackCommand, "subEnableSchedule")
    } catch(e) {
        subDisplayError("TransCode.js", "subAddSeats('" + strData + "')", e);
    }
}

function subGetSeatLayout(strData)
{
    try
    {
        if(strData != "")
        {
            strBookingId = strGetData("BOOKINGID", strData)
            strSeatInfo = strGetData("SEATINFO", strData)
            curTicketsAmt = strGetData("TICKETSAMT", strData)
            curFoodAmt = strGetData("FOODAMT", strData)
            curBookingFee = strGetData("BOOKINGFEE", strData)
            curDiscountAmt = strGetData("DISCOUNTAMT", strData)
            curTotalAmt = strGetData("TOTALAMT", strData)
            blnSetCookie("BOOKINGID", strBookingId, false);
            if(strEventType != "CT")
            {
                subDisplayBookingInfo(strBookingId, "", curTicketsAmt, curFoodAmt, curBookingFee, curDiscountAmt, curTotalAmt);
            }
        }
        else
        {
            //strSelectedVenue = strGetQueryVariable("cid");
            //strSelectedSessionId = strGetQueryVariable("sid");
            lngTransId = strGetCookie("lngTransId", "");
        }
        
        if(blnShowLayout == true)
        {
            subGetDataAndExecuteEx(strAppCode, strSelectedVenue, lngTransId, "GETSEATLAYOUT", strSelectedSessionId, "WEB", "", "", "", "", "", "", "", "", strWebServiceURL, "subCreateSeatLayout", "subCancelTrans");
        }
        else
        {
            if(strEventType != "CT")
            {
                subUpdateSeatInfo(strData, true);
            }
            else
            {
                subGoToURL("Payment.aspx?cid=" + strSelectedVenue + "&sid=" + strSelectedSessionId + "&strEventType=" + strEventType);
            }
        }
    } catch(e) {
        subDisplayError("TransCode.js", "subGetSeatLayout('" + strData + "')", e);
    }
}

function subSetSelectedSeats(strSelectedSeats)
{
    try
    {
        strSelectedSeats = "|" + strSelectedSeats;
        //strSelectedSeats = "|" + strGetCookie("intTotalQty", "0") + strSelectedSeats;
        strSelectedSeats = "|" + strGetCookie("intTQty", "0") + strSelectedSeats;
        strSelectedSeats = strReplace(strSelectedSeats, "_", "|");
        subGetDataAndExecuteEx(strAppCode, strSelectedVenue, lngTransId, "SETSELECTEDSEATS", strSelectedSessionId, strSelectedSeats, "", "", "", "", "", "", "", "", strWebServiceURL, "subUpdateSeatInfo", "subCancelTrans");
    } catch(e) {
        subDisplayError("TransCode.js", "subSetSelectedSeats('" + strSelectedSeats + "')", e);
    }
}

function subSetPromotionCode(strVenueCode, lngTransactionId, strPromoCode)
{
    try
    {
        subGetDataAndExecuteEx(strAppCode, strVenueCode, lngTransactionId, "SETPROMOTIONCODE", strPromoCode, "", "", "", "", "", "", "", "", "", strWebServiceURL, "subShowPromoDesc");
    } catch(e) {
        subDisplayError("TransCode.js", "subSetPromotionCode('" + strVenueCode + "', " + lngTransactionId + ", '" + strPromoCode + "')", e);
    }
}

function subRedeemGiftVoucher(lngTransactionId, strVoucherCode)
{
    try
    {
        subGetDataAndExecuteEx(strAppCode, "", lngTransactionId, "REDEEMVOUCHER", strGetCookie("BOOKINGID", ""), strVoucherCode, "", "", "", "", "", "", "", "", strWebServiceURL, "subUpdateVoucherValue");
    } catch(e) {
        subDisplayError("TransCode.js", "subRedeemGiftVoucher(" + lngTransactionId + ", '" + strVoucherCode + "')", e);
    }
}

function subSetBOGOOffer(lngTransactionId, strCardNo)
{
    try
    {
        subGetDataAndExecuteEx(strAppCode, "", lngTransactionId, "SETBOGOOFFER", strCardNo, "BMSICICI", "", "", "", "", "", "", "", "", strWebServiceURL, "subShowBOGODesc");
    } catch(e) {
        subDisplayError("TransCode.js", "subSetBOGOOffer(" + lngTransactionId + ", '" + strCardNo + "')", e);
    }
}

function subCommitTrans(strVenueCode, lngTransactionId, strCardDetails, strContactDetails)
{
    try
    {
        subGetDataAndExecuteEx(strAppCode, strVenueCode, lngTransactionId, "COMMITTRANS", strCardDetails, strContactDetails, "", "", "", "", "", "", "", "", strWebServiceURL, "subShowConfirmation", "subDeleteBookingInfo");
    } catch(e) {
        subDisplayError("TransCode.js", "subCommitTrans('" + strVenueCode + "', " + lngTransactionId + ", '" + strCardDetails + "', '" + strContactDetails + "')", e);
    }
}

function subContinueTrans()
{
    try
    {
        lngTransId = lngTransId == 0 ? strGetCookie("lngTransId", "") : lngTransId;
        subGetDataAndExecuteEx(strAppCode, strSelectedVenue, lngTransId, "CONTINUETRANS", "", "", "", "", "", "", "", "", "", "", strWebServiceURL, "subEnablePayment", "subCancelTrans");
    } catch(e) {
        subDisplayError("TransCode.js", "subCancelTrans()", e);
    }
}

function subCancelTrans()
{
    try
    {
        //strSelectedVenue = strSelectedVenue == "" ? strGetQueryVariable("cid") : strSelectedVenue;
        lngTransId = lngTransId == 0 ? strGetCookie("lngTransId", "") : lngTransId;
        subGetDataAndExecuteEx(strAppCode, strSelectedVenue, lngTransId, "CANCELTRANS", "", "", "", "", "", "", "", "", "", "", strWebServiceURL, "subEnableSchedule")
        var objtblSeatLayout = document.getElementById("tblSeatLayout");
        objtblSeatLayout.style.display = 'none';
    } catch(e) {
        subDisplayError("TransCode.js", "subCancelTrans()", e);
    }
}

function subCancelTransEx()
{
    try
    {
        //strSelectedVenue = strSelectedVenue == "" ? strGetQueryVariable("cid") : strSelectedVenue;
        lngTransId = lngTransId == 0 ? strGetCookie("lngTransId", "") : lngTransId;        
        subGetDataAndExecuteEx(strAppCode, strSelectedVenue, lngTransId, "CANCELTRANS", "", "", "", "", "", "", "", "", "", "", strWebServiceURL, "")
        subDeleteBookingInfo();
    } catch(e) {
        subDisplayError("TransCode.js", "subCancelTrans()", e);
    }
}

function subGetBookingInfo(strBookingID, lngTransactionId)
{
    try
    {
        subGetDataAndExecuteEx(strAppCode, "", lngTransactionId, "GETBOOKINGINFO", strBookingID, "", "", "", "", "", "", "", "", "", strWebServiceURL, "subDisplayConfirmation")
    } catch(e) {
        subDisplayError("TransCode.js", "subGetBookingIfo('" + strBookingID + "', " + lngTransactionId + ")", e);
    }
}

function subDeleteBookingInfo()
{
    blnSetCookie("BOOKINGID", "");
    blnSetCookie("lngTransId", "0");
}


function subUpdateSeatInfo(strData, blnHideSeatLayoutLink)
{
    try
    {
        if(strEventType != "CT")
        {        
            var objspnClass = document.getElementById("spnClass");
            var objaSeatLayout = document.getElementById("aSeatLayout");
            strSeatInfo = strGetData("SEATINFO", strData);
            strSeatdata = strGetData("SEATDATA", strData);
            var objspnSeatInfo = document.getElementById("spnSeatInfo");
            var objspnSeatData = document.getElementById("spnSeatData");
            var tblSeatLayout = document.getElementById("tblSeatLayout");
            var strDisplay = "";
            tblSeatLayout.style.display = "none";
            if(strBrowserType == "ie")
            {
                strDisplay = "inline";
            }
            else
            {
                strDisplay = "table-cell";
            }
            
            if(objspnClass)
            {
                objspnClass.style.display = strDisplay;
            }
            objspnSeatInfo.style.display = strDisplay;
            objspnSeatData.style.display = strDisplay;
            //objspnSeatInfo.innerHTML = strSeatInfo;
            //Code to get SEATDATA instead of SEATINFO
            /* var strSeatData = "";
            if (strData) {
                var SeatData = strGetData("SEATDATA", strData);
                var arrSeatData = SeatData.split(":");
                if (SeatData != "") {
                    for (var cnt = 0; cnt < arrSeatData.length; cnt = cnt + 2) {
                        strSeatData += arrSeatData[cnt + 1] + " x " + arrSeatData[cnt] + " + ";
                    }
                    if (strSeatData != "") {
                        objspnSeatInfo.innerHTML = strSeatData.substring(0, strSeatData.length - 3);
                    }
                }
            }*/
            objspnSeatInfo.innerHTML = strGetData("SEATINFO", strData);
            objspnSeatData.innerHTML = strGetData("SEATDATA", strData);
            
            
            if(blnHideSeatLayoutLink == true)
            {
                objaSeatLayout.style.display = "none";
            }
            else
            {
                objaSeatLayout.style.display = strDisplay;
            }
            
            var objsecPaymentButtons = document.getElementById("secPaymentButtons");
            if(objsecPaymentButtons)
            {
                var objCancelHref = objCreateHyperLink("<img src=\"Common/Images/page2_r38_c32.gif\" alt=\"\" style=\"border-style:none;\" />", "subCancelTrans();", "", "", "", "none");
                var objPayHref = objCreateHyperLink("<img src=\"Common/Images/page2_r38_c41.jpg\" alt=\"\" style=\"border-style:none;\" />", "subGoToURL('Payment.aspx?cid=" + strSelectedVenue + "&sid=" + strSelectedSessionId + "&strEventType=" + strEventType + "');", "", "", "", "none");
                objsecPaymentButtons.innerHTML = "";
                objsecPaymentButtons.appendChild(objCancelHref);
                objsecPaymentButtons.appendChild(objPayHref);
                subDisplayPointer();
            }
        }
        else
        {
            subGoToURL("Payment.aspx?cid=" + strSelectedVenue + "&sid=" + strSelectedSessionId + "&strEventType=" + strEventType);
        }
    } catch(e) {
        subDisplayError("TransCode.js", "subUpdateSeatInfo('" + strData + "')", e);
    }
}

function strGetData(strName, strData)
{
    try
    {
        var arrData = strData.split("|");
        
        for(var intCount = 0;intCount < arrData.length;intCount++)
        {
            if(arrData[intCount].search("=") > 0)
            {
                var arrDataEx = arrData[intCount].split("=")
                if(arrDataEx[0].toUpperCase() == strName.toUpperCase())
                {
                    return arrDataEx[1]
                }
            }
        }
    } catch(e) {
        subDisplayError("TransCode.js", "strGetData('" + strName + "', '" + strData + "')", e);
    }   
    
    return ""
}