
var ajaxUrl = "http://www.dohaairport.com/FlightInfo.aspx";

var req = null;
var len = null;
var dataObj = null;
var tableRowLimit = 10;
var currRow = 0;
var last=0;
var page_of = 0;
var clickk = 0;

var first = false;
var last = false;

// check to see if input is alphanumeric
function isAlphaNumeric(val)
{
if (val.match(/^[a-zA-Z0-9\s]+$/))
{
return true;
}
else
{
return false;
} 
}


/* when the user click the search(submit) button- for both quick and adv-search */
function submitForSearch(flag)
{	
    /*
	 *  flag = 0 then quick search
	 *  flag > 0 then advance search
 	 */	 
    if(flag == 0) 
    {
		try {
			 var txt_searchval = document.getElementById("txt_search");
			 //alert("txt_searchval::"+txt_searchval.value);
			if( !isAlphaNumeric(txt_searchval.value)) {				
				alert("Please enter correct Flight Number");
				return ;

			} 			
		} catch(err)
		{		
		}
			 
        var txt_search = document.getElementById("txt_search");
        var s = txt_search.value;
        if( s != null && s != " " )
        {
            //s = s.toLowerCase();
           // if( s.substring(0,5) == "enter" )		  
		    if( s.length > 6 || s.length == 0 )
            {
                // do not submit
            }
            else
            {
                var formId = document.getElementById("form_search");
                formId.action = document.getElementById("hidd_arrival_searchresult_page").value;
                //alert(formId.action + " - " + formId.id + " - " + document.getElementById("hidd_arrival_searchresult_page").value);
                formId.submit();
            }
        }
    }
    
    if(flag > 0)
    {
		 
        var formId;
        
        if( flag == 1 )
        {
			try {
			 var txt_searchval = document.getElementById("txt_pass_search");
			 //alert("txt_searchval::"+txt_searchval.value);
			if(!isAlphaNumeric(txt_searchval.value)) {
				alert("Please enter correct Flight Number")
				return false;
			}
			} catch(err)
			{
			}
            formId = document.getElementById("form_passenger");
        }
        if( flag == 2 )
        {
			alert("flag == 2")
            formId = document.getElementById("form_cargo");
        }
        if( flag == 3 )
        {
			alert("flag == 3")
            formId = document.getElementById("popup_form_passenger"); /* this is for adv search popup */
        }
        if( flag == 4 )
        {   
			alert("flag == 4")
            formId = document.getElementById("popup_form_cargo"); /* this is for adv search popup */
        }
        if( flag == 5 )
        {
			try {
			 var txt_searchval = document.getElementById("LHN_txt_pass_search");
			 //alert("txt_searchval::"+txt_searchval.value);
			if(!isAlphaNumeric(txt_searchval.value)) {
				alert("Please enter correct Flight Number")
				return false;
			}
			} catch(err)
			{
			}
            formId = document.getElementById("LHN_form_passenger");
        }
        if( flag == 6 )
        {
			alert("flag == 6")
            formId = document.getElementById("LHN_form_cargo");
        }
        
        var hidd_travel_type = document.getElementById("hidd_travel_type").value; // arrival or departure
        if( hidd_travel_type == "A" )
        {
            formId.action = document.getElementById("hidd_arrival_searchresult_page").value;
        }
        else
        {
            formId.action = document.getElementById("hidd_departure_searchresult_page").value;
        }
        
        try
        {
            /* this is for closing adv search popup */
            /* closeAdvSearchPopup(); */
        }
        catch(e)
        {
        }

		/* once the form is submitted, then it will redirect to target page. the target page may have onload.
		* if it has onload then customBodyOnload(flag) in ajaxController.js  will be called.
		*/
        formId.submit();
    }
}

/* this method is called by customBodyOnload(flag) in ajaxController.js */
function searchPageOnload()
{
    var queryString = window.location.search.substring(1);	/*this value is taken from address bar of the current window. */
    var params = queryString.split('&');
    
	/* for quick search, only two html elements(including hidden tags) will be inside in the form tag */
    if( params.length == 2 )
    {
        var pos = params[0].indexOf('=');
        if( pos > 0 )
        {
            var key = params[0].substring(0,pos);
            var val = params[0].substring(pos+1);
            document.getElementById("hidd_search_type").value = val;
        }
        pos = params[1].indexOf('=');
        if( pos > 0 )
        {
            var key = params[1].substring(0,pos);
            var val = params[1].substring(pos+1);
            document.getElementById("hidd_search_value").value = val;
        }
    }
    else
    {
        for (var i=0; i<params.length; i++)
        {
            var pos = params[i].indexOf('=');
            if (pos > 0)
            {
                var key = params[i].substring(0,pos);
                var val = params[i].substring(pos+1);
                                
                if(key == "hidd_search_type")
                {
                    document.getElementById("hidd_search_type2").value = val;
                }
                else if( key == "txt_search" )
                {
                    document.getElementById("hidd_search_value").value = val;
                }
                else if(key == "origin")
                {
                    document.getElementById("hidd_origin").value = val;
                }
                else if(key == "airline")
                {
                    document.getElementById("hidd_airline").value = val;
                }
                else if(key == "travel_type")
                {
                    document.getElementById("hidd_travel_type").value = val;
                }
                else if(key == "date")
                {				    
                    document.getElementById("hidd_date").value = val;
                }
                else if(key == "chk_duration")
                {
                    document.getElementById("hidd_chk_duration").value = val;
                }
            }
        }
		
        var chk = document.getElementById("hidd_chk_duration");	
        if( chk.value == 0 || chk.value == "0" )
        {
            chk.value = "0";
        }
        else
        {
            chk.value = "3";
        }
    }	

    var searchType = document.getElementById("hidd_search_type2").value;
    ajaxFetchFlightInfo(searchType);
}

/* for displaying the result, the ajax is called */
function ajaxFetchFlightInfo(flag)
{	
    len = 0;
    var param = "";
    var url = ajaxUrl;
	
    if( flag == 0 )/* for quick search */
    {
		try {
			 var txt_searchval = document.getElementById("txt_search");
			if( isAlphaNumeric(txt_searchval)) {
			} else {
				alert("Please enter only alphanumeric")
				return false;
			}
		} catch(err)
		{
		}
        var hidd = document.getElementById("hidd_search_value");
        var txtSearch = document.getElementById("txt_search");
        txtSearch.value = hidd.value;
        
        var fieldId = txtSearch.value;
        
        if(fieldId.length !=0 && fieldId != " ")
        {
            var s = fieldId;
            //s = s.toLowerCase();
            //if( s.substring(0, 5) == "enter" )			
			if( s.length > 6  || s.length == 0)
            {
                param = "";
            }
            else
            {
                param = "FlightNo=" + fieldId + "&Status=A&FlightType=P";
            }
        }
    }
    
    if( flag > 0 )/* for advance search */
    {
		try {
			 var txt_searchval = document.getElementById("hidd_search_value");
			if( isAlphaNumeric(txt_searchval)) {
			} else {
				alert("Please enter only alphanumeric")
				return false;
			}
		} catch(err)
		{
		}
        var passOrCargo;
        if( flag == 1 || flag == 3 || flag == 5 )
        {
            passOrCargo = "P";
        }
        if( flag == 2 || flag == 4 || flag == 6)
        {
            passOrCargo = "C";
        }
        
        var searchValue = document.getElementById("hidd_search_value").value;
        var s = searchValue.toLowerCase();
        
        //if( s.substring(0,6) == "flight" )		
		if( s.length > 6  || s.length == 0)
        {
            searchValue = "";
        }
        
        var origin = document.getElementById("hidd_origin").value;
        var arrivalOrDep = document.getElementById("hidd_travel_type").value; // arrival or departure
        var airline =  document.getElementById("hidd_airline").value;
        var date = document.getElementById("hidd_date").value;

        var duration = document.getElementById("hidd_chk_duration").value;
        
        param =  "FlightNo=" + searchValue + "&" ;
        param += "Origin=" + origin + "&";
        param += "Airline=" + airline + "&";
        param += "Date=" + date + "&";
        param += "FlightType=" + passOrCargo + "&";
        param += "Status=" + arrivalOrDep + "&" ;
        param += "Duration=" + duration ;
    }
    
    if( param.length > 0 )
    {
        url = url + "?" + param;
        //alert(url);
        try
        {
            document.getElementById("print_to_pdf").href = url + "&DownloadPDF=true";
            //alert(url + "&DownloadPDF=true");
        }
        catch(e)
        {}
        req = getXmlHttpObject();
        if ( req != null )
        {
            req.onreadystatechange = stateChanged2;
            req.open("POST", url, true)
            req.send(null)
        }
    }
}

/* this  will create a new xmlhttp object for ajax */
function getXmlHttpObject()
{
    try
    {
        req = new XMLHttpRequest();
    }
    catch (e)
    {
        try
        {
            req = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e)
        {
            req = new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    return req;
}

/* this is the callback method of ajax  */
function stateChanged2()
{
    if ( req.readyState == 4 && req.status==200 )
    {
        //var xmlText = req.responseText ;
        //alert(req.responseText);
        var xml = req.responseXML;
		if( xml == null)
		{
			var text = req.responseText;      
            if (window.DOMParser)
			{
				parser=new DOMParser();
				xml=parser.parseFromString(text,"text/xml");
			}
		}
        
        var itemRow = xml.documentElement.getElementsByTagName("ItemRow");
        dataObj = itemRow;
        len = dataObj.length;
        
        page_of = (len / tableRowLimit).toString();
        var index = page_of.indexOf(".");
        if( index != -1 )
        {
            page_of = ((len / tableRowLimit)+1).toString();
            page_of = page_of.substring(0, index);
        }

        var serverCurrDate = getNodeText( dataObj[0].getElementsByTagName("CurrentDate")[0] );
	    document.getElementById("server_current_date").innerHTML = serverCurrDate;


        var f = getNodeText( dataObj[0].getElementsByTagName("Origin")[0] );
		var empty = false;
        if( ( len <= 1 && f=="&nbsp;" ) || ( len <= 1 &&  f=="" ) )
		{
            empty = true;
		}
       
	    if( !empty )
		{
		  fillDataRight(true, len, dataObj, 0);
		}

        if( len <= 10 )
        {
            enableRight(false);
            document.getElementById("page_number").style.visibility = "hidden";
        }
        else
        {
            document.getElementById("page_number").style.visibility = "visible";
        }
        
		
        if( empty )
        {

	    enableLeft(false);
            var noResultFound =document.getElementById("hidd_no_flight_found").value;
            var tableid = document.getElementById("details");
            var row = tableid.insertRow(1);
            row.height = 25;
            
            var tdd = row.insertCell(0);
            tdd.className = "white_colum grey_colum";
            tdd.colSpan = "8";
            tdd.innerHTML = "<small class='status'>" + noResultFound + "</small>";
        }

		var searchLabel = getNodeText( dataObj[0].getElementsByTagName("Criteria")[0] );

		var index = searchLabel.indexOf(":");
		if( index == -1 )
		{
		  searchLabel = "";
		}
		else
		{
		  searchLabel = searchLabel.substring(index+1);		
		}
		document.getElementById("span_search").innerHTML = searchLabel;
    }
}

/* this is used for adv search popup. this will close the popup if it is in open state. */
function closeAdvSearchPopup()
{
	try
	{
		document.getElementById('light').style.display='none';
		document.getElementById('fade').style.display='none';
	}
	catch(e)
	{
	}
}


function getNodeText(node)
{
    try
    {
        return node.firstChild.nodeValue;
    }
    catch(e)
    {
        return "&nbsp;";
    }
}

/* this will fill the values in the table, when Next navigation button is clicked in the search result*/
function fillDataRight(isFirst, len, dataObj, start)
{
    var end = start + tableRowLimit;
    
    if( ! isFirst )
    {
        start = currRow;
    }
    
    if( clickk == -1 )
    {
        start = start + tableRowLimit;
        end = end + tableRowLimit;
    }
    
    
    if( end >= len )
    {
        end = len;
        enableRight(false);
    }
    else
    {
        enableRight(true);
    }
    
    if( len > tableRowLimit && start > 1)
    {
        enableLeft(true);
    }
    else
    {
        enableLeft(false);
    }
    
    var tableid = document.getElementById("details");
    var rowLen = tableid.rows.length;
	var r=0;
    for(r=rowLen-1; r>0; r--)
    {
        tableid.deleteRow(r);
    }
    
    for(i=start,last=0,r=1; i<end; i++,last++,r++)
    {
        
        var row = tableid.insertRow(r);
        row.height = 22;
        
		var icon = row.insertCell(0);
        var airline = row.insertCell(1);
        var flight = row.insertCell(2);
        var origin = row.insertCell(3);
        var date = row.insertCell(4);
        var schTime = row.insertCell(5);
        var actTime = row.insertCell(6);
        var status = row.insertCell(7);
        
        icon.width="5%";
        airline.width="17%";
        flight.width="10%";
        origin.width="26%";
        date.width="11%";
        schTime.width="10%";
        actTime.width="11%";
        status.width="10%";
		                 
        var airlineImage = getNodeText( dataObj[i].getElementsByTagName("ImageURL")[0] );
        var airlineName = getNodeText( dataObj[i].getElementsByTagName("Airline")[0] );
       
        var status2 = "";
        

		if( airlineImage.length == 0 || airlineImage=="&nbsp;")
        {
            airlineImage = "<small>&nbsp;</small>" ;
        }
        else
        {
            airlineImage = "<img src='" + airlineImage + "' alt='' class='brand'  width='50' height='21'/>" ;
        }

        status2 = "<small class='status'>" + getNodeText( dataObj[i].getElementsByTagName("Status")[0] ) + "</small>";
        
		icon.innerHTML = airlineImage;
        airline.innerHTML = airlineName;
        flight.innerHTML = getNodeText( dataObj[i].getElementsByTagName("Flight")[0] );
        origin.innerHTML = getNodeText( dataObj[i].getElementsByTagName("Origin")[0] );
        date.innerHTML = getNodeText( dataObj[i].getElementsByTagName("Date")[0] );
        schTime.innerHTML = getNodeText( dataObj[i].getElementsByTagName("ScheduleTime")[0] );
        actTime.innerHTML = getNodeText( dataObj[i].getElementsByTagName("ActualTime")[0] );
        status.innerHTML = status2;

        if( r%2 == 0 )
        {
			icon.className = "left_border grey_colum";
            airline.className = "white_colum grey_colum";
            flight.className = "white_colum grey_colum";
            origin.className = "white_colum grey_colum";
            date.className = "white_colum grey_colum";
            schTime.className = "white_colum grey_colum";
            actTime.className = "white_colum grey_colum";
            status.className = "right_border grey_colum";
        }
        else
        {
			icon.className = "left_border";
            airline.className = "white_colum";
            flight.className = "white_colum";
            origin.className = "white_colum";
            date.className = "white_colum";
            schTime.className = "white_colum";
            actTime.className = "white_colum";
            status.className = "right_border";
        }
    }
	if( (r+1)%2 == 1 )
	{
		 var row = tableid.insertRow(r);	
		 var first = row.insertCell(0);
		 first.colSpan = "8";  //style='padding-left: 30px'
		 first.innerHTML = "<div style='padding: 6px 0 0 0 ; background:#e9e9e9'></div> ";
		 //first.className = "white_colum grey_colum";
	}
    
    currRow = end;
    clickk = 1;
    
    var page = (Math.ceil(currRow/tableRowLimit)).toString();
    document.getElementById("page").innerHTML = page;
    document.getElementById("of").innerHTML = page_of;
    
}


/* this will fill the values in the table, when Previous navigation button is clicked in the search result */
function fillDataLeft(isFirst, len, dataObj, start)
{
    
    enableRight(true);
    var end = currRow;
    
    if( clickk == 1 )
    {
        start = start - tableRowLimit;
        end = end - tableRowLimit;
    }
    
    if( last < 10 )
    {
        end = currRow - last;
        last = 10;
    }
    
    var start = end - tableRowLimit;
    
    if( start <= 0 )
    {
        start = 0 ;
        enableLeft(false);
    }
    
    var tableid = document.getElementById("details");
    var rowLen = tableid.rows.length;
    for(r=rowLen-1; r>0;r--)
    {
        tableid.deleteRow(r);
    }
    
    for(i=start, r=1; i<end; i++, r++)
    {
        var row = tableid.insertRow(r);			
				
        row.height = 22;
        
		var icon = row.insertCell(0);
        var airline = row.insertCell(1);
        var flight = row.insertCell(2);
        var origin = row.insertCell(3);
        var date = row.insertCell(4);
        var schTime = row.insertCell(5);
        var actTime = row.insertCell(6);
        var status = row.insertCell(7);
        
        icon.width="5%";
        airline.width="17%";
        flight.width="10%";
        origin.width="26%";
        date.width="11%";
        schTime.width="10%";
        actTime.width="11%";
        status.width="10%";
        
        var airlineImage = getNodeText( dataObj[i].getElementsByTagName("ImageURL")[0] );
        var airlineName = getNodeText( dataObj[i].getElementsByTagName("Airline")[0] );
       
        if( airlineImage.length == 0 || airlineImage=="&nbsp;")
        {
            airlineImage = "<small>&nbsp;</small>" ;
        }
        else
        {
            airlineImage = "<img src='" + airlineImage + "' alt='' class='brand'  width='50' height='21'/>" ;
        }

        icon.innerHTML = airlineImage;
		airline.innerHTML = airlineName;
        flight.innerHTML = getNodeText( dataObj[i].getElementsByTagName("Flight")[0] );
        origin.innerHTML = getNodeText( dataObj[i].getElementsByTagName("Origin")[0] );
        date.innerHTML = getNodeText( dataObj[i].getElementsByTagName("Date")[0] );
        schTime.innerHTML = getNodeText( dataObj[i].getElementsByTagName("ScheduleTime")[0] );
        actTime.innerHTML = getNodeText( dataObj[i].getElementsByTagName("ActualTime")[0] );
        status.innerHTML = "<small class='status'>" + getNodeText( dataObj[i].getElementsByTagName("Status")[0] ) + "</small>";
        
        if( r%2 == 0 )
        {
            icon.className = "left_border grey_colum";
            airline.className = "white_colum grey_colum";
            flight.className = "white_colum grey_colum";
            origin.className = "white_colum grey_colum";
            date.className = "white_colum grey_colum";
            schTime.className = "white_colum grey_colum";
            actTime.className = "white_colum grey_colum";
            status.className = "right_border grey_colum";
        }
        else
        {
            icon.className = "left_border";
            airline.className = "white_colum";
            flight.className = "white_colum";
            origin.className = "white_colum";
            date.className = "white_colum";
            schTime.className = "white_colum";
            actTime.className = "white_colum";
            status.className = "right_border";
        }
    }
    
    currRow = end - tableRowLimit;
    clickk = -1;
    
    var page =((currRow/tableRowLimit)+1).toString();
    document.getElementById("page").innerHTML = page;
    document.getElementById("of").innerHTML = page_of;
    
}


/* when the left navigation button is clicked */
function navigateLeft(e)
{
    if( back )
    {
        fillDataLeft(false, len, dataObj, currRow);
    }
}

/* when the right navigation button is clicked */
function navigateRight(e)
{
    if( forward )
    {
        fillDataRight(false, len, dataObj, currRow);
    }
}

/* this will enable/disable left navigation button */
function enableLeft(flag)
{
    flag = !flag;
    var navLeft = document.getElementById("nav_left");
    if( flag )
    {
        //hide
        navLeft.style.visibility = "hidden";
        back = false;
    }
    else
    {
        //show
        navLeft.style.visibility = "visible";
        back = true;
    }
}

/* this will enable/disable right navigation button */
function enableRight(flag)
{
    flag = !flag;
    var navRight = document.getElementById("nav_right");
    if( flag )
    {
        //hide
        navRight.style.visibility = "hidden";
        forward = false;
    }
    else
    {
        //show
        navRight.style.visibility = "visible";
        forward = true;
    }
}

var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-22022950-2']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();


