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;
        hdField.value = ValidateValue(hdField.value,obj.getAttribute("flightID") + "," + obj.getAttribute("row") + "," + obj.getAttribute("col") + "," + obj.getAttribute("seat"));
        ChangeCssTable(obj.getAttribute("seat"),passengerRowCss,passengerRowSelectedCss);
        DeleteAttributeValue(obj.getAttribute("seat"));

        hdInfant.value = UnSelectSeat(hdInfant.value,obj.getAttribute("flightID") + "," + obj.getAttribute("row") + "," + obj.getAttribute("col") + "," + obj.getAttribute("seat"));

    }
    else
    {
    
        if(!CheckSeatLimit(hdInfant.value,infants))
        {
            // Validate Block Seat map infants
            if (blockFlag.charAt(1) == '1' || blockFlag.charAt(0) == '1')
            {
               alert(errorMessageBlockInfant);
               return false;
            }
            // ********************************* //
            
            hdInfant.value = ValidateValue(hdInfant.value,obj.getAttribute("flightID") + "," + obj.getAttribute("row")  + "," + obj.getAttribute("col")+ "," + obj.getAttribute("seat"));
        }
        
        
        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";
            hdField.value = ValidateValue(hdField.value,obj.getAttribute("flightID") + "," + obj.getAttribute("row")  + "," + obj.getAttribute("col")+ "," + obj.getAttribute("seat"));
            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++)
    {
   // alert(table.rows.length);
        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 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;
            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;
            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"; 
    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
    {
        document.getElementById('load').style.display="none"; 
        document.getElementById('content').innerHTML=result;
       
    }
}