
/** AJAX Library by Shajeeb PK **/
String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}
var debug = false; //2 enable debugging....

function GetXmlHttp() {
  var xmlhttp = false;
  if (window.XMLHttpRequest)
  {
    xmlhttp = new XMLHttpRequest()
  }
  else if (window.ActiveXObject)// code 4 IE
  {
    try
    {
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP")
    } catch (e) {
      try
      {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP")
      } catch (E) {
        xmlhttp=false
      }
    }
  }
  return xmlhttp;
}



function CallAJAX(url, ajxFunction, params)
{
  var xmlhttp = new GetXmlHttp();
  if (xmlhttp)
  {
    xmlhttp.onreadystatechange = 
            function ()
            {
              if (xmlhttp && xmlhttp.readyState==4)
              {//we got something back..
                if (xmlhttp.status==200)
                {
                  var response = xmlhttp.responseText;
                  var functionToCall = ajxFunction + '(response,'+params+')';
                  if(debug)
                  {
                    //alert(response);
                    alert(functionToCall);
                  }
                  eval(functionToCall);
                } else if(debug){
                  document.write(xmlhttp.responseText);
                }
              }
              
            }
            
    xmlhttp.open("GET",url,true);
    xmlhttp.send(null);
  }
}



function GetResponse(url, obj_id)
{
  var xmlhttp = new GetXmlHttp();
  //now we got the XmlHttpRequest object, send the request.
  //alert(url);
  if (xmlhttp)
  {
			xmlhttp.onreadystatechange = 
            function (){
				if (xmlhttp && xmlhttp.readyState==4){//we got something back..
					
					if (xmlhttp.status==200){
						if(debug){
							//alert(xmlhttp.responseText);
						}
						if(typeof obj_id == 'object'){
							
							obj_id.innerHTML = xmlhttp.responseText;
						}else{
							document.all(obj_id).innerHTML = xmlhttp.responseText;
							//document.all(obj_id).innerHTML="replied..";
						}
					}else if(debug){
						document.Write(xmlhttp.responseText);
					}
				}else{
					document.getElementById(obj_id).innerHTML = "<img src='loading2.gif'>";
				}
			}
			
			xmlhttp.open("GET",url,true);
			xmlhttp.send(null);
	}		
}
  
function GetValidateResponse(url, obj_id)
{
  var xmlhttp = new GetXmlHttp();
  //now we got the XmlHttpRequest object, send the request.
  //alert(url);
  if (xmlhttp)
  {
			xmlhttp.onreadystatechange = 
            function (){
				if (xmlhttp && xmlhttp.readyState==4){//we got something back..
					
					if (xmlhttp.status==200){
						if(debug){
							//alert(xmlhttp.responseText);
						}
						if(typeof obj_id == 'object'){
								obj_id.innerHTML = xmlhttp.responseText;
						}else
						{
						    
							document.getElementById(obj_id).innerHTML = xmlhttp.responseText;
							
								
							if (xmlhttp.responseText.indexOf("available") > 0)
							{
								document.getElementById("h_valid").value=true;
							}
							else
							{
								document.getElementById("h_valid").value=false;
							}
							
						}
					}else if(debug){
						document.Write(xmlhttp.responseText);
					}
				}else{
					document.getElementById(obj_id).innerHTML = "<img src='../images/loading.gif'>";
				}
			}
			
			xmlhttp.open("GET",url,true);
			xmlhttp.send(null);
	}		
}
function GetFlights()
{

	var org_aircode;
	var des_aircode;
	var dt_start;
	var dt_end;
	var oneway;
	var valid,valid_d,valid_m,valid_y;

	org_aircode = ''+ document.getElementById("hdn_fs_From").value;
	des_aircode = ''+ document.getElementById("hdn_fs_To").value;

	if (org_aircode == '')
	{
		 org_aircode = ''+ document.getElementById("txt_fs_From").value;
	}
	if (des_aircode == '')
	{
		 des_aircode = ''+ document.getElementById("txt_fs_Destination").value;
	}
	
	dt_start =''+ document.getElementById("t_fs_datefrom").value;
	dt_end =''+ document.getElementById("t_fs_dateto").value;
	oneway =''+ document.getElementById("fs_oneway").checked;
	
	
	if (des_aircode =='' || org_aircode =='')
	{
		alert("Please select Origin and Destination !");
		return;
	}
	
	
	if (document.all("fs_oneway").checked == true)
	{
		if (isDate(dt_start)==true){}
		else{
		alert("Please enter valid Start date !");
		return;
		}
		var url;
		//url = 'search.aspx?function=fs&org=' + org_aircode + '&des=' + des_aircode + '&oneway=' + oneway + 
		url = 'flights.aspx?pg=flights&function=fs&org=' + org_aircode + '&des=' + des_aircode + '&oneway=' + oneway + '&dtStart=' + dt_start + '&dtEnd=' + dt_end;
	
		//GetResponse(url,'flights_result');
		window.location =url;
	}
	else
	{
		if (isDate(dt_start)==true && isDate(dt_end)== true){}
		else{
		alert("Please enter valid Start and End dates !");
		return;
		}
		
		valid = checkDate(dt_start,dt_end);
		
		
		

		
		if (valid == 1)
		{
			//alert('Datediff:' + valid + '\nOrg:' + org_aircode + '\nDes:' + des_aircode + '\nStart Date:' + dt_start + '\nEnd Date:' + dt_end + '\nOneWay:' + oneway);
			var url;
			url = 'search.aspx?function=fs&org=' + org_aircode + '&des=' + des_aircode + '&oneway=' + oneway + '&dtStart=' + dt_start + '&dtEnd=' + dt_end;
			//location.reload(url);
			GetResponse(url,'flights_result');
			
		}
		else
		{
			alert("[End Date] should be greater or equal to current date!");
			return;
		}
	}
}	

 function GetFare()
  {
 
  //return 0;
 
	var org_aircode;
	var des_aircode;
	var dt_start;
	var dt_end;
	var oneway;
	var adult,child,pref_airline,aclass,infant,frc_pref,chkDirect;
	
	var valid,valid_d,valid_m,valid_y;
	org_aircode = '';
	des_aircode = '';

	if (org_aircode == '')
	{
		 org_aircode = ''+ document.getElementById("txt_sa_From").value;
	}

	if (des_aircode == '')
	{
		 des_aircode = ''+ document.getElementById("txt_sa_Destination").value;
	}
	

	
	dt_start =''+ document.getElementById("t_sa_datefrom").value;
	
	dt_end =''+ document.getElementById("t_sa_dateto").value;
	
	oneway =''+ document.getElementById("sa_oneway").checked;
	//frc_pref =''+ document.getElementById("force_pref").checked;
	chkDirect=''+ document.getElementById("chkDirect").checked;
	adult=document.getElementById("sa_adult").value;
	child=document.getElementById("sa_child").value;
	infant=document.getElementById("sa_infant").value;
	aclass=document.getElementById("sa_class").value;
	pref_airline="";//document.getElementById("txt_airline").value;
	pref_airline =pref_airline.substring(pref_airline.indexOf(",")+1);
		
	if (des_aircode =='' || org_aircode =='')
	{
		busyBox.Hide();  	
		alert("Please select Origin and Destination !");
		return;
			
	}
	

	if (document.getElementById("sa_oneway").checked == true)
	{
		if (isDate(dt_start)==true){}
		else{
		alert("Please enter valid Start date !");
		return;
		}

			var url;
			url = 'Flights.aspx?pg=flights&function=sbb&org=' + org_aircode + '&des=' + des_aircode + '&oneway=' + oneway + '&dtStart=' + dt_start + '&dtEnd=' + dt_end + '&class=' + aclass + '&adult=' + adult + '&child=' + child + '&prefairline=' + pref_airline + '&infant=' + infant + '&direct=' + chkDirect;
			
			window.location.href=url;
		return ;
			//GetResponse(url,'flights_result');
	}
	else
	{
	
		if (isDate(dt_start)==true && isDate(dt_end)== true){}
		else{
		alert("Please enter valid Start and End dates !");
		return;
		}
		//alert(Date.parse(dt_start) + "  " + Date.parse(dt_end));
		
		
		if(CompareDates(dt_start,dt_end)==false)
		{
			alert("End date should be greater than or equal to Start date.");
			return;
		}
			
	}
	busyBox.Show();  	
	url = 'flights.aspx?pg=flights&function=sbb&org=' + org_aircode + '&des=' + des_aircode + '&oneway=' + oneway + '&dtStart=' + dt_start + '&dtEnd=' + dt_end + '&class=' + aclass + '&adult=' + adult + '&child=' + child + '&prefa=' + pref_airline + '&infant=' + infant + '&direct=' + chkDirect;
		
			
			window.location = url;
			
	
}
function dtChange(s,f)
{
if (f=='fs')
{
	document.getElementById("t_fs_dateto").disabled=s.checked;
}else
{
	document.getElementById("t_sa_dateto").disabled=s.checked;
}


}
/* -- Membership registration and Validation --*/

function ValidateRegForm(ctrl)
{
	var prfx,err,ret;
	prfx = ctrl.id.replace("b_Submit","");
	if (document.all(prfx + 't_Fname').value == '')
	{
		ret = false;
		document.all('spn_Fname').innerHTML="<font color='red'>Required !</font>";
	}
	else
	{
		document.all('spn_Fname').innerHTML="";
	}
	
	if (document.all(prfx + 't_Lname').value == '')
	{
		ret = false;
		document.all('spn_Lname').innerHTML="<font color='red'>Required !</font>"
	}
	else
	{
		document.all('spn_Lname').innerHTML="";
	}
	
	var vErr,u_sts;
	u_sts='';
	if (document.all(prfx + 't_Uname') !=null && document.all(prfx + 't_Uname').value == '')
	{
		u_sts = "<font color='red'>* User Name is Missing !<br></font>";
		ret = false;
	}
	else
	{
	
		if (document.all("h_valid").value == 'true')
		{
		
		}
		else
		{
			ret = false;
		u_sts = "<font color='red'>* Please click <b>Check Availability</b> to confirm your Username<br></font>";
			
		}
	}
		
	if (document.all(prfx + 't_Pwd').value == '' || document.all(prfx + 't_CPwd').value == '')
	{
		ret = false;
		u_sts = u_sts + "<font color='red'>* Please enter Password and Confirm password <br></font>";
	}
	else
	{
	
		if(document.all(prfx + 't_Pwd').value == document.all(prfx + 't_CPwd').value )
		{}else
		{
		ret = false;
		u_sts = u_sts + "<font color='red'>* Passwords doesnt match<br></font>";
		}
		
	}
	
	if (ValidateEmail(document.all(prfx + 't_Email').value)==false)
	{
		ret = false;
		u_sts = u_sts + "<font color='red'>* Please enter a Valid Email<br></font>";
	}
	
	//alert();
	if(u_sts != '')
	{
		document.all('spnValid').innerHTML="<font color='red'>" + u_sts + "</font>";
		ret = false;
	}
	else
	{
		if(document.all(prfx + 'chkConfirm').checked == true)
		{
			ret = true;
		}
		else
		{
			alert("Please Accept the Membership Agreement to continue");
			document.all('spnValid').innerHTML="";
			ret = false;
		}
	}
	
	return ret;
}


function CancelBooking(RecID,ID)
{
	if (confirm('You are about to Cancel this booking!\n Press OK to continue') == true)
	{
 		var url;
		url = 'cancelBooking.aspx?id=' + ID ;
		GetResponse(url,'processResult');
		document.all("sts_" + RecID ).innerHTML="Cancelled";
		document.all("cmd_" + RecID ).style.visibility="hidden";
	}
}


function CheckAvl(ctrl_id,is_admin)
{
	var err,ret,ID;
	
	ID = ctrl_id;
	
	if (document.getElementById(ID) != null && document.getElementById(ID).value.trim().length !=0)
	{
		var url;
		
		url = 'checkAvl.aspx?id=' + document.getElementById(ID).value ;
		if(is_admin==true)
			url ="../../members/" + url
		
		GetValidateResponse(url,'spnValid');
		//alert(document.all('spnValid').innerHTML.indexOf("already"))
		if(document.getElementById('spnValid').innerHTML.indexOf("already")>0)
		{
			return false;
		}
			else
			{
				return true;
			}
	}
	else
	{
			document.getElementById('spnValid').innerHTML ="Please enter a Username";
			return false;
	}
	
}

function ValidateEmail(EmailID)
{

	var filter  =/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
	if (filter.test(EmailID))
	{
		return true;
	}
	else
	{
		return false;
	}
	 
}

function CompareDates(dt1, dt2)
{
	var arrDate1 = dt1.split("/");
	var useDate1 = new Date(arrDate1[2], arrDate1[1],
	arrDate1[0]); // yyyy/mm/dd


	var arrDate2 = dt2.split("/");
	var useDate2 = new Date(arrDate2[2], arrDate2[1],
	arrDate2[0]); // yyyy/mm/dd

	if (useDate2 < useDate1)
	{
		return false;
	}
	else
	{
		return true;
	}
}


