var isInitial=false;
var sCurrentid='';
var sFullName='';
var sDateFrom='';
var sDateTo='';
var sisVisible='';

function loadtimetable()
{
  wait();
  tikAEROWebB2E.WebService.Payment.LoadTimeTable(TimeTableResult); 
}

 function loadtimetableinit(Currentid,FullName,DateFrom,DateTo,DateTo)
 {
   wait();
   
    sCurrentid=Currentid;
    sFullName=FullName;
    sDateFrom=DateFrom;
    sDateTo=DateTo;
    sisVisible=DateTo;
   tikAEROWebB2E.WebService.Payment.LoadTimeTable(TimeTableResult2); 
 }
function TimeTableResult(result)
{
successed();
 
  if(result=="session_expired")
    {
         alert("Session has been expired.\n Please login again ");
         loadLogout();
    }
  else
  {
    document.getElementById('content').innerHTML=result;   
   }
}

function TimeTableResult2(result)
{
successed();
 
  if(result=="session_expired")
    {
         alert("Session has been expired.\n Please login again ");
         loadLogout();
    }
  else
  {
    document.getElementById('content').innerHTML=result;
  
    if(isInitial==true)
    {
     schedules(sCurrentid,sFullName,sDateFrom,sDateTo,sisVisible);
     isInitial=false;
    }
   }
}

/*=============== Date Format================================*/
/*Date Format*/
var dateFormat = function () {
	var	token        = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloZ]|"[^"]*"|'[^']*'/g,
		timezone     = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,
		timezoneClip = /[^-+\dA-Z]/g,
		pad = function (value, length) {
			value = String(value);
			length = parseInt(length) || 2;
			while (value.length < length)
				value = "0" + value;
			return value;
		};

	// Regexes and supporting functions are cached through closure
	return function (date, mask) {
		// Treat the first argument as a mask if it doesn't contain any numbers
		if (
			arguments.length == 1 &&
			(typeof date == "string" || date instanceof String) &&
			!/\d/.test(date)
		) {
			mask = date;
			date = undefined;
		}

		date = date ? new Date(date) : new Date();
		if (isNaN(date))
			throw "invalid date";

		var dF = dateFormat;
		mask   = String(dF.masks[mask] || mask || dF.masks["default"]);

		var	d = date.getDate(),
			D = date.getDay(),
			m = date.getMonth(),
			y = date.getFullYear(),
			H = date.getHours(),
			M = date.getMinutes(),
			s = date.getSeconds(),
			L = date.getMilliseconds(),
			o = date.getTimezoneOffset(),
			flags = {
				d:    d,
				dd:   pad(d),
				ddd:  dF.i18n.dayNames[D],
				dddd: dF.i18n.dayNames[D + 7],
				m:    m + 1,
				mm:   pad(m + 1),
				mmm:  dF.i18n.monthNames[m],
				mmmm: dF.i18n.monthNames[m + 12],
				yy:   String(y).slice(2),
				yyyy: y,
				h:    H % 12 || 12,
				hh:   pad(H % 12 || 12),
				H:    H,
				HH:   pad(H),
				M:    M,
				MM:   pad(M),
				s:    s,
				ss:   pad(s),
				l:    pad(L, 3),
				L:    pad(L > 99 ? Math.round(L / 10) : L),
				t:    H < 12 ? "a"  : "p",
				tt:   H < 12 ? "am" : "pm",
				T:    H < 12 ? "A"  : "P",
				TT:   H < 12 ? "AM" : "PM",
				Z:    (String(date).match(timezone) || [""]).pop().replace(timezoneClip, ""),
				o:    (o > 0 ? "-" : "+") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4)
			};

		return mask.replace(token, function ($0) {
			return ($0 in flags) ? flags[$0] : $0.slice(1, $0.length - 1);
		});
	};
}();

// Some common format strings
dateFormat.masks = {
	"default":       "ddd mmm d yyyy HH:MM:ss",
	shortDate:       "m/d/yy",
	mediumDate:      "mmm d, yyyy",
	longDate:        "mmmm d, yyyy",
	fullDate:        "dddd, mmmm d, yyyy",
	shortTime:       "h:MM TT",
	mediumTime:      "h:MM:ss TT",
	longTime:        "h:MM:ss TT Z",
	isoDate:         "yyyy-mm-dd",
	isoTime:         "HH:MM:ss",
	isoDateTime:     "yyyy-mm-dd'T'HH:MM:ss",
	isoFullDateTime: "yyyy-mm-dd'T'HH:MM:ss.lo"
};

// Internationalization strings
dateFormat.i18n = {
	dayNames: [
		"Sun", "Mon", "Tue", "Wed", "Thr", "Fri", "Sat",
		"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
	],
	monthNames: [
		"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
		"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
	]
};

// For convenience...
Date.prototype.format = function (mask) {
	return dateFormat(this, mask);
}
/*=============== Date Format================================*/


/*=============== Date Format================================*/
/*Call Web Service Zone*/
/*===== Parameter for call web service ==========*/

//var Origin='';
var Dest='';

var Origin='';
var Distination='';
var IsLoadFromFile=false;
var currentdate='';

function clearHeader(){
var TabDate = document.getElementById("TabDate");
	if(TabDate!=null)
	{
			for(var i=TabDate.rows.length-1;i>=0;i--)
			{
				TabDate.deleteRow(TabDate.rows[i])
			}
	}
}


function CreateAjaxControl()
{
var xmlHttp=null;
try
  {  

     xmlHttp=new XMLHttpRequest();  
     return xmlHttp;
  }
catch (e)
  {  
  try
    {    
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");    
      return xmlHttp;
    }
  catch (e)
    {    try
      {      
		xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");      
		return xmlHttp;
      }
    catch (e)
      {      
         alert("Your browser does not support AJAX!");      
         return null;      
      }    
    } 
  } 
}





var ControlName=null;
var CurrentRoute=0;
function CallWs(parameter,controls)
{
var xmlHttp = CreateAjaxControl();
var ControlName= controls;
//For my local client
//var WS_URL="http://tossapon/FlightsSchedules/AAS/AASSchedule.aspx";

//for flywithstyle
var WS_URL=window.location.href.replace(window.location.href.split('/')[window.location.href.split('/').length-1],'AASSchedule.aspx');
    WS_URL=WS_URL+parameter;

//var WS_URL="http://10.10.8.31/AAS/HTML/AASSchedule.aspx"+parameter;



var objControls =  document.getElementById(ControlName);

	if(xmlHttp!=null)
	{ 
	if(controls=="dvTable")objControls.innerHTML='';
		xmlHttp.onreadystatechange=function(controls)
		{
			if(xmlHttp.readyState==4)
			{		
			
				//var objControls =  document.getElementById(ControlName);
				objControls.innerHTML='';			
				if(xmlHttp.responseText=="")
				{
					objControls.innerHTML="<br /><div class='schedule_not_found'>Schedule date not found</div>";
					//var dvTable=document.getElementById("dvTable");
					//dvTable.innerHTML="";
				}	
				else
				{
					if(objControls.id=="dvTable"){objControls.innerHTML="";}
					
				   var dvCurrenDate = document.getElementById("dvCurrenDate");
					 dvCurrenDate.innerHTML="This below schedule for "+mydateformat(currentdate)+"";
					// alert(currentdate);
					 
					var content = xmlHttp.responseText				
					objControls.innerHTML=content;
					//alert(objControls.id);
					//alert(content);
					//alert(content);
					if(ControlName=="dvHeader")
					{

					    var  objH=document.getElementById("hddinitDate");
					     if(objH!=null)
					     {
					         schedules(CurrentRoute,"",objH.value.split(',')[0],objH.value.split(',')[1],0);
					     }
					}
				}			
					
				
										
			}
		}		

		xmlHttp.open("GET",WS_URL,true);
		xmlHttp.send(null);
	}
}

function  initialTimeTable(Currentid,FullName,DateFrom,DateTo,isVisible)
{
    isInitial=true;
    loadtimetableinit(Currentid,FullName,DateFrom,DateTo,isVisible);
}

function schedules(Currentid,FullName,DateFrom,DateTo,isVisible)
{

var tmpFile = '';
var xmlFooter='';
var xslFooter='';

CurrentRoute=Currentid;



//var  submenu = document.getElementById("submenu");


//if(isVisible==1){submenu.className='';}


 switch(Currentid)
 {
	case 0: Origin='ACI'; Distination='GCI'; tmpFile='Van2Vic1'; FullName='Alderney to Guernsey'; break;
	case 1:Origin='ACI'; Distination='SOU'; FullName='Alderney to Southampton'; tmpFile='Rich2Vic1'; break;
	case 2:Origin='BRS'; Distination='GCI'; FullName='Bristol to Guernsey'; tmpFile='Sech2Nana1'; break;
	case 3:Origin='DNR'; Distination='GCI'; FullName='Dinard to Guernsey'; tmpFile='Sech2jer1';break;
	
	case 4:Origin='GCI'; Distination='ACI'; FullName='Guernsey to Alderney'; tmpFile='Sech2Rich1'; break;
	case 5:Origin='GCI'; Distination='JER'; FullName='Guernsey to Jersey'; tmpFile=''; break;
	case 6:Origin='GCI'; Distination='BRS'; FullName='Guernsey to Bristol'; tmpFile='Nana2Rich1'; break;
	case 7:Origin='GCI'; Distination='DNR'; FullName='Guernsey to Dinard'; tmpFile='Van2Nana1'; break;
	
	case 8:Origin='GCI'; Distination='STN'; FullName='Guernsey to London Stansted'; tmpFile='Sech2Rich1'; break;
	case 9:Origin='GCI'; Distination='MAN'; FullName='Guernsey to Manchester'; tmpFile=''; break;
	//case 10 : Origin='GCI'; Distination='LGW'; FullName='Guernsey to London Gatwick';  break;
	case 10 :Origin='GCI'; Distination='LGW'; FullName='Guernsey to London Gatwick'; break;
	case 11:Origin='JER'; Distination='GCI'; FullName='Jersey to Guernsey'; tmpFile='Van2Nana1'; break;
	
	
	case 12:Origin='LGW'; Distination='GCI'; FullName='London Gatwick to Guernsey'; tmpFile='Sech2Rich1'; break;
	case 13:Origin='STN'; Distination='GCI'; FullName='London Stansted to Guernsey'; tmpFile=''; break;
	case 14:Origin='MAN'; Distination='GCI'; FullName='Manchester to Guernsey'; tmpFile='Nana2Rich1'; break;
	case 15:Origin='SOU'; Distination='ACI'; FullName='Southampton to Alderney'; tmpFile='Van2Nana1'; break;
 }
 
var trContext=document.getElementById('trContext');
if(trContext==null)
{

 initialTimeTable(Currentid,FullName,DateFrom,DateTo,isVisible);
}
else
{

 trContext.style.display="none";
  var dvFullRoute = document.getElementById("dvFullRoute");
	  dvFullRoute.innerHTML="<IMG src='images/yellowHeader.gif' border=0 />"+FullName;		
     var tdCheckIn=document.getElementById("tdCheckIn");
			tdCheckIn.innerHTML="Check-in 30 minutes minimum. ";
     var dvTable=document.getElementById("dvTable");
		 dvTable.innerHTML="";
       initialcalendar();
}

	
	
}
var objHoldSel=null;

//============ Header Action ========================//

function DateHeaderOver(obj){
 obj.className="DateHeaderMouseOver";

}
function DateHeaderOut(obj){
 obj.className='DateHeader';
}
function DateHeaderOut2(){

event.srcElement.className='DateHeader';
}
function HoldingDate(obj){
if(objHoldSel!=null){
objHoldSel.className='DateHeader';
objHoldSel.onmouseout=DateHeaderOut2;
}

obj.className='DateHeaderMouseOver';
objHoldSel=obj;
obj.onmouseout=function(){};
}
function myholding(obj){
}


function FindByDate(DateFrom,DateTo,obj){

var tblHeader=document.getElementById("tblHeader");
if(tblHeader!=null)
{

 if(tblHeader.rows.length>0)
 {
  if(tblHeader.rows[0].cells[0].className=="DateHeaderMouseOver")
  {
     tblHeader.rows[0].cells[0].className="DateHeader";
     tblHeader.rows[0].cells[0].onmouseout=DateHeaderOut2;
     //alert(tblHeader.rows[0].cells[0].className);
  }
 }
}

HoldingDate(obj);
CallWs("?act=Table&ORG="+Origin+"&DEST="+Distination+"&DateFrom="+DateFrom+"&DateTo="+DateTo,"dvTable");	
//alert(DateFrom+","+DateTo);
var dvTable=document.getElementById("dvTable");
					dvTable.innerHTML="";
}
function mydateformat(tcurrentdate){
//20080423
//alert(currentdate);
//tcurrentdate="20081108"
 var yy=parseInt(tcurrentdate.substring(0,4));
 var mm=parseInt(tcurrentdate.substring(4,6));
 var dd=parseInt(tcurrentdate.substring(6,8));

 
 //alert(parseInt(tcurrentdate.substring(4,6))); 
 //alert(tcurrentdate);
 
 if(tcurrentdate.substring(4,6).substring(0,1)==0)mm=parseInt(tcurrentdate.substring(5,6))
 if(tcurrentdate.substring(6,8).substring(0,1)==0)dd=parseInt(tcurrentdate.substring(7,8))
 
 var mymonth = parseInt(mm);
 mymonth=mymonth-1;
 if(mymonth<0)mymonth=0;
 //alert(dd+","+mm+","+yy);
 //alert(mymonth)
 
  
 var TRdate = new Date(yy,mymonth,dd);
  
 return "<b>"+dateFormat(TRdate,"mmm")+" "+dateFormat(TRdate,"dd")+", "+dateFormat(TRdate,"yyyy")+"</b>";  
 //dateFormat(now, "dddd, mmmm d, yyyy, h:MM:ss TT");
 //return(dd+"/"+mm+"/"+yy);
}

//================ Calendar ===============

/*Call Web Service Zone*/
/*===== Parameter for call web service ==========*/
var current_cell=null;

function clearHeader(){
var TabDate = document.getElementById("TabDate");
	if(TabDate!=null)
	{
			for(var i=TabDate.rows.length-1;i>=0;i--)
			{
				TabDate.deleteRow(TabDate.rows[i])
			}
	}
}


function CreateAjaxControl()
{
var xmlHttp=null;
try
  {  
  //alert(xmlHttp)
    //Firefox, Opera 8.0+, Safari  
     xmlHttp=new XMLHttpRequest();  
     return xmlHttp;
  }
catch (e)
  {  
  try
    {    
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");    
      return xmlHttp;
    }
  catch (e)
    {    try
      {      
		xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");      
		return xmlHttp;
      }
    catch (e)
      {      
         alert("Your browser does not support AJAX!");      
         return null;      
      }    
    } 
  } 
}

var ControlName;
var CurrentRoute=0;


function initialcalendar()
{

 //Create Calendar 1
  CalendarCallWsTimeTable("?df=1&i=1&type=datefrom","divFrom",1);  
 //Create Calendar 2
  CalendarCallWsTimeTable("?df=0&i=1&type=dateto&nm=1","divTo",0);
}
function monthAct(m,y,ctrl)
{
//('5','2008','ctr_datefrom');
 //CalendarCallWs("?df=1&i=1&type=datefrom","divFrom");
 var hdd_defCell=document.getElementById("hdd_defCell");
 switch(ctrl)
 {
  case "ctr_datefrom":
		CalendarCallWsTimeTable("?df=0&i=1&type=datefrom"+"&m="+m+"&y="+y,"divFrom",0);
		CalendarCallWsTimeTable("?df=0&i=1&type=dateto&nm=1&m="+m+"&y="+y,"divTo",0);
		break;
  case "ctr_dateto":
		if(lessthanfrom(m,y)==true) return; 
		CalendarCallWsTimeTable("?df=0&i=1&type=dateto&m="+m+"&y="+y,"divTo",0);
		break;
 }
}
function lessthanfrom(m,y)
{
//yyyymmdd
 var hdd_ctr_none="";
 var hdd_ctr_datefrom = document.getElementById("hdd_ctr_datefrom");
 var valdatefrom = hdd_ctr_datefrom.value;
 
 var mm=m.toString();
 if(m.toString().length<=1){mm="0"+m.toString();}
 //alert(parseInt(y.toString()+mm+"01"))
 //alert(valdatefrom);
 //alert(parseInt(valdatefrom)<= parseInt(y.toString()+mm+"01"))
 if(parseInt(valdatefrom)>= parseInt(y.toString()+mm+"01"))
 {
	return true;
 }
 else
 {
   return false;
 }
}

//yyyymmdd

function showBelow(ccdate)
{
 var dvCurrenDate = document.getElementById("dvCurrenDate");
  dvCurrenDate.innerHTML="This below schedule for "+mydateformat(ccdate)+"";  
					  
}
function animation()
{
  var dvTable=document.getElementById("dvTable");	    
	    dvTable.innerHTML="<img src='loading.gif' border=0 />";
}
function CalendarCallWsTimeTable(parameter,controls,isinitial)
{
var xmlHttp = CreateAjaxControl();
var ControlName= controls;
var WS_URL=window.location.href.replace(window.location.href.split('/')[window.location.href.split('/').length-1],'uxcCalendar.aspx');
WS_URL=WS_URL+parameter;

var objControls =  document.getElementById(ControlName);
//if(objControls.innerHTML!=""){objControls.innerHTML="<img src='loading.gif' border=0 />";}

	if(xmlHttp!=null)
	{ 
		xmlHttp.onreadystatechange=function(controls)
		{
			if(xmlHttp.readyState==4)
			{									
				objControls.innerHTML="";
				if(xmlHttp.responseText=="")
				{
					objControls.innerHTML="<div class='schedule_not_found'>Schedule date not found </div>";				
				}	
				else
				{
				
					var content = xmlHttp.responseText									
					objControls.innerHTML=content;	
					
					if(isinitial==1){
					 showinitial_schedule();
					}								
				}			
			}
		}		
		
		xmlHttp.open("GET",WS_URL,true);
		xmlHttp.send(null);
	}
}
function showinitial_schedule(){
var hdd_defCell=document.getElementById("hdd_defCell");
var defDay = hdd_defCell.value;
var cDefDay = defDay.split("_");
var DateFrom=cDefDay[2];
currentdate=cDefDay[2];
var DateTo=''; 
 
  CallWs("?act=Table&ORG="+Origin+"&DEST="+Distination+"&DateFrom="+DateFrom+"&DateTo="+DateTo,"dvTable");	
}



