var hdField;
var hdInfant;

function MouseOut(obj, passengerRowCss, passengerRowSelectedCss) {
    if (obj) {
        var idname = obj.id.split("_");
        var rowID = BuildRowName(idname, idname.length - 1);
        var colID = BuildRowName(idname, idname.length - 3);
        var rowControl = document.getElementById(rowID);
        var colControl = document.getElementById(colID);

        colControl.style.backgroundColor = '';
        rowControl.style.backgroundColor = '';
        ChangeCssTable(obj.getAttribute("seat"), passengerRowCss, passengerRowSelectedCss);
    }
}

function MouseOver(obj, passengerRowCss, passengerRowSelectedCss) {
    if (obj) {
        var idname = obj.id.split("_");
        var rowID = BuildRowName(idname, idname.length - 1);
        var colID = BuildRowName(idname, idname.length - 3);
        var rowControl = document.getElementById(rowID);
        var colControl = document.getElementById(colID);

        colControl.style.backgroundColor = '#fed684';
        rowControl.style.backgroundColor = '#fed684';
        ChangeCssTable(obj.getAttribute("seat"), passengerRowCss, passengerRowSelectedCss);
    }
}

function BuildRowName(controlName, numPosition) {
    var newID = "";
    var isFirst = true;
    for (var i = 0; i < controlName.length; i++) {
        if (isFirst) {
            newID = controlName[i];
            isFirst = false;
        }
        else if (i == numPosition)
            newID = newID + "_0";
        else
            newID = newID + "_" + controlName[i];
    }
    return newID;
}

function BuildControlName(controlName, numWord) {
    var newID = "";
    var isFirst = true;
    for (var i = 0; i < controlName.length - numWord; i++) {
        if (isFirst) {
            newID = controlName[i];
            isFirst = false;
        }
        else
            newID = newID + "_" + controlName[i];
    }
    return newID;
}

function SeatOnClick(obj, baseCss, hdFieldName, seatLimit, hdInfantName, infants, selectedCss, passengerRowCss, passengerRowSelectedCss
        , blockFlag, errorMessageBlockChildren, errorMessageBlockInfant) {

    var idname = obj.id.split("_");
    var patternID = BuildControlName(idname, 4);
    hdField = document.getElementById(patternID + '_' + hdFieldName);
    hdInfant = document.getElementById(patternID + '_' + hdInfantName);


    if (baseCss != obj.className) {
        obj.className = baseCss;
        var passengerID = GetPassengerID(obj.getAttribute("seat"), false);
        hdField.value = ValidateValue(hdField.value, obj.getAttribute("flightID") + "," + obj.getAttribute("row") + "," + obj.getAttribute("col") + "," + obj.getAttribute("seat")
             + "," + passengerID + "," + obj.getAttribute("feeRcd"));
        ChangeCssTable(obj.getAttribute("seat"), passengerRowCss, passengerRowSelectedCss);

        passengerID = GetPassengerID(obj.getAttribute("seat"), true);
        DeleteAttributeValue(obj.getAttribute("seat"));

        hdInfant.value = UnSelectSeat(hdInfant.value, obj.getAttribute("flightID") + "," + obj.getAttribute("row") + "," + obj.getAttribute("col") + "," + obj.getAttribute("seat")
            + "," + passengerID + "," + obj.getAttribute("feeRcd"));
    }
    else {

        if (!CheckSeatLimit(hdInfant.value, infants)) {
            // Validate Block Seat map infants
            if (blockFlag.charAt(1) == '1' || blockFlag.charAt(0) == '1') {
                alert(errorMessageBlockInfant);
                return false;
            }
            // ********************************* //

            var passengerID = GetPassengerID('', true);
            hdInfant.value = ValidateValue(hdInfant.value, obj.getAttribute("flightID") + "," + obj.getAttribute("row") + "," + obj.getAttribute("col") + "," + obj.getAttribute("seat")
                + "," + passengerID + "," + obj.getAttribute("feeRcd"));
        }


        if (!CheckSeatLimit(hdField.value, seatLimit)) {
            // Validate Block Seat map children
            var table = document.getElementById('passenger');
            var seat = obj.getAttribute("seat");
            for (var i = 0; i < table.rows.length - 1; i++) {
                if (table.rows[i + 1].getAttribute("seat") == null || table.rows[i + 1].getAttribute("seat") == '') {
                    if (table.rows[i + 1].cells[3].innerHTML == 'CHD' && (blockFlag.charAt(0) == '1' || blockFlag.charAt(1) == '1')) {
                        alert(errorMessageBlockChildren);
                        return false;
                    }
                    break;
                }
            }
            // ********************************* //

            obj.className = selectedCss; //baseCss + "P";
            var passengerID = GetPassengerID('', false);
            hdField.value = ValidateValue(hdField.value, obj.getAttribute("flightID") + "," + obj.getAttribute("row") + "," + obj.getAttribute("col") + "," + obj.getAttribute("seat")
                + "," + passengerID + "," + obj.getAttribute("feeRcd"));
            SetAttributeValue(obj.getAttribute("seat"));
            ChangeCssTable(obj.getAttribute("seat"), passengerRowCss, passengerRowSelectedCss);
        }

    }

}

function UnSelectSeat(valueData, delData) {
    var data = valueData.split("_");
    var returnData = "";
    var isDup = false;
    for (var i = 0; i < data.length; i++) {
        if (data[i] != delData) {
            if (returnData != "")
                returnData = returnData + "_" + data[i];
            else
                returnData = data[i];
        }
    }
    return returnData;
}

function ChangeCssTable(seat, basecss, selectCss) {
    var table = document.getElementById('passenger');
    for (var i = 0; i < table.rows.length - 1; i++) {
        if (seat != null && table.rows[i + 1].getAttribute("seat") == seat) {
            if (table.rows[i + 1].className == basecss)
                table.rows[i + 1].className = selectCss;
            else
                table.rows[i + 1].className = basecss;
            break;

        }
    }

    for (var i = 0; i < table.rows.length - 1; i++) {
        if ((seat != null && table.rows[i + 1].getAttribute("seat") == seat) && (table.rows[i + 1].cells[3].innerHTML == 'INF')) {
            if (table.rows[i + 1].className == basecss)
                table.rows[i + 1].className = selectCss;
            else
                table.rows[i + 1].className = basecss;
            break;
        }
    }
}

function GetPassengerID(seat, isINF) {
    var table = document.getElementById('passenger');
    for (var i = 0; i < table.rows.length - 1; i++) {
        if (!isINF) {
            if (table.rows[i + 1].getAttribute("seat") == null || table.rows[i + 1].getAttribute("seat") == seat) {
                return table.rows[i + 1].getAttribute("passengerId");
            }
        }
        else {
            if ((table.rows[i + 1].getAttribute("seat") == null || table.rows[i + 1].getAttribute("seat") == seat) && (table.rows[i + 1].cells[3].innerHTML == 'INF')) {
                return table.rows[i + 1].getAttribute("passengerId");
            }
        }
    }
}

function SetAttributeValue(seat) {
    var table = document.getElementById('passenger');
    for (var i = 0; i < table.rows.length - 1; i++) {
        if (table.rows[i + 1].getAttribute("seat") == null || table.rows[i + 1].getAttribute("seat") == '') {
            table.rows[i + 1].setAttribute('seat', seat);
            //table.rows[i + 1].cells[4].innerHTML = seat;
            table.rows[i + 1].cells[4].innerHTML = "<div class='displayseat1'>" + seat + "</div>";
            break;
        }
    }

    for (var i = 0; i < table.rows.length - 1; i++) {
        if ((table.rows[i + 1].getAttribute("seat") == null || table.rows[i + 1].getAttribute("seat") == '') && (table.rows[i + 1].cells[3].innerHTML == 'INF')) {
            table.rows[i + 1].setAttribute('seat', seat);
            //table.rows[i + 1].cells[4].innerHTML = seat;
            table.rows[i + 1].cells[4].innerHTML = "<div class='displayseat1'>" + seat + "</div>";
            break;
        }
    }
}

function DeleteAttributeValue(seat) {
    var table = document.getElementById('passenger');

    for (var i = 0; i < table.rows.length - 1; i++) {
        if (table.rows[i + 1].getAttribute("seat") == seat) {
            table.rows[i + 1].setAttribute('seat', '');
            table.rows[i + 1].cells[4].innerHTML = '';
            break;
        }
    }

    for (var i = 0; i < table.rows.length - 1; i++) {
        if ((table.rows[i + 1].getAttribute("seat") == seat) && (table.rows[i + 1].cells[3].innerHTML == 'INF')) {
            table.rows[i + 1].setAttribute('seat', '');
            table.rows[i + 1].cells[4].innerHTML = '';
            break;
        }
    }
}

function ValidateValue(valueData, newData) {
    var data = valueData.split("_");
    var returnData = "";
    var isDup = false;
    for (var i = 0; i < data.length; i++) {
        if (data[i] != newData) {
            if (returnData != "")
                returnData = returnData + "_" + data[i];
            else
                returnData = data[i];
        }
        else
            isDup = true;
    }

    if (!isDup) {
        if (returnData != "")
            returnData = returnData + "_" + newData;
        else
            returnData = newData;
    }

    return returnData;
}

function CheckSeatLimit(valueData, seatLimit) {
    var datalength = 0;
    if (valueData != "") {
        var data = valueData.split("_");
        datalength = data.length;
    }

    if (datalength >= seatLimit)
        return true;
    else
        return false;
}


// WebService Script
function SelectSeat(filghtID) {
    if (hdField != null) {
        tikAEROWebB2E.WebService.SeatService.SelectSeat(filghtID, hdField.value, hdInfant.value, SelectSeatresult);
    }
    else {
        loadstep4();
    }
}
function SelectSeatresult(result) {
    /*if(result=='session_expired')
    {
    loadLogout();
    }
    else
    {
    document.getElementById('content').innerHTML=result;
    }*/
    loadstep4();
}

function SelectFlight(flightID) {
    //document.getElementById('load').style.display = "block";
    wait();
    if (hdField != null) {
        tikAEROWebB2E.WebService.SeatService.SelectFlight(flightID, hdField.value, hdInfant.value, SelectFlightresult);
    }
    else
        tikAEROWebB2E.WebService.SeatService.SelectFlight(flightID, '', '', SelectFlightresult);
}

function SelectFlightresult(result) {
    if (result == 'session_expired') {
        loadLogout();
    }
    else {
        successed();
        //document.getElementById('load').style.display = "none";
        document.getElementById('content').innerHTML = result;
    }
}
