<!--
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-->

function SetDest()
{
	var ddlFrom = document.forms["aspnetForm"].ddlFrom;
	var ddlTo = document.forms["aspnetForm"].ddlTo;
	
	ddlTo.options.length = 0;
	if(ddlFrom.options[ddlFrom.selectedIndex].value != "ACC")
	{		
		ddlTo.options[0] = new Option("Accra", "ACC");
	}
	else
	{
		ddlTo.options[0] = new Option("Kumasi", "KMS");
		ddlTo.options[1] = new Option("Takoradi", "TDI");
		ddlTo.options[2] = new Option("Sunyani", "NYI");
		ddlTo.options[3] = new Option("Tamale", "TML");
	}	
}

function resetValues() 
{
	var rdoType = document.forms["aspnetForm"].ctl00$ContentSection$Booking$rdoType;
    var ddlFrom = document.forms["aspnetForm"].ddlFrom;
    var ddlTo = document.forms["aspnetForm"].ddlTo;
    
    rdoType[1].checked = false;
	rdoType[0].checked = true;
    
    ddlFrom.selectedIndex = 0;

    ddlTo.options.length = 0;
    ddlTo.options[0] = new Option("Kumasi", "KMS");
	ddlTo.options[1] = new Option("Takoradi", "TDI");
	ddlTo.options[2] = new Option("Sunyani", "NYI");
	ddlTo.options[3] = new Option("Tamale", "TML");
}

function HideDate(status)
{
	if(status)
		document.getElementById("trReturn").style.display = "none";
	else
		document.getElementById("trReturn").style.display = "block";
}


function PopulateChildrenAndInfants() 
{
	var ddlAdults = document.forms["aspnetForm"].ddlAdults;
	var ddlChildren = document.forms["aspnetForm"].ddlChildren;
	var ddlInfants = document.forms["aspnetForm"].ddlInfants;
	
	var noOfAdults = parseInt(ddlAdults.value);
	var noOfChildrenOptions = 12 - noOfAdults;
	var noOfInfantsOptions = 12 - noOfAdults;
	
	ddlChildren.options.length = 0;	
	if(noOfChildrenOptions > 0)
	{
		ddlChildren.options[0] = new Option("Children", "");
		
		for(var a = 0; a < noOfChildrenOptions; a++) 
		{
			if(a == 0)
				ddlChildren.options[a + 1] = new Option(a+1 + " Child", a+1);
			else
				ddlChildren.options[a + 1] = new Option(a+1 + " Children", a+1);			
		}
	}
	
	ddlInfants.options.length = 0;	
	if(noOfInfantsOptions > 0)
	{
		ddlInfants.options[0] = new Option("Infant", "");
		
		for(var a = 0; a < noOfInfantsOptions; a++) 
		{
			if(a == 0)
				ddlInfants.options[a + 1] = new Option(a+1 + " Infant", a+1);
			else
				ddlInfants.options[a + 1] = new Option(a+1 + " Infants", a+1);			
		}
	}	
}

function PopulateChildren() 
{
	var ddlAdults = document.forms["aspnetForm"].ddlAdults;
	var ddlChildren = document.forms["aspnetForm"].ddlChildren;
	var ddlInfants = document.forms["aspnetForm"].ddlInfants;
		
	if(ddlChildren.value == "")
	{
		var noOfAdults = parseInt(ddlAdults.value);
		var noOfInfants = ddlInfants.value != "" ? parseInt(ddlInfants.value) : 0;
		var noOfChildrenOptions = 12 - (noOfAdults + noOfInfants);
					
		ddlChildren.options.length = 0;	
		if(noOfChildrenOptions > 0)
		{
			ddlChildren.options[0] = new Option("Children", "");
			
			for(var a = 0; a < noOfChildrenOptions; a++) 
			{
				if(a == 0)
					ddlChildren.options[a + 1] = new Option(a+1 + " Child", a+1);
				else
					ddlChildren.options[a + 1] = new Option(a+1 + " Children", a+1);			
			}
		}
	}
}

function PopulateInfants() 
{
	var ddlAdults = document.forms["aspnetForm"].ddlAdults;
	var ddlChildren = document.forms["aspnetForm"].ddlChildren;
	var ddlInfants = document.forms["aspnetForm"].ddlInfants;
		
	var noOfAdults = parseInt(ddlAdults.value);
	var noOfChildren = ddlChildren.value != "" ? parseInt(ddlChildren.value) : 0;
	var noOfInfantsOptions = 12 - (noOfAdults + noOfChildren);
	
	ddlInfants.options.length = 0;	
	if(noOfInfantsOptions > 0)
	{
		ddlInfants.options[0] = new Option("Infant", "");
		
		for(var a = 0; a < noOfInfantsOptions; a++) 
		{
			if(a == 0)
				ddlInfants.options[a + 1] = new Option(a+1 + " Infant", a+1);
			else
				ddlInfants.options[a + 1] = new Option(a+1 + " Infants", a+1);			
		}
	}	
	

    document.forms["aspnetForm"].hdfChildren.value = noOfChildren;
}


function ValidateBooking()
{
	var dtDeparture = document.forms["aspnetForm"].dtDeparture;
	var dtReturn = document.forms["aspnetForm"].dtReturn;
	var rdoType = document.forms["aspnetForm"].ctl00$ContentSection$Booking$rdoType;
	var ddlAdults = document.forms["aspnetForm"].ddlAdults;
	var ddlChildren = document.forms["aspnetForm"].ddlChildren;
	var ddlInfants = document.forms["aspnetForm"].ddlInfants;
	
	var noOfAdults = parseInt(ddlAdults.value);
	var noOfChildren = ddlChildren.value != "" ? parseInt(ddlChildren.value) : 0;
	var noOfInfants = ddlInfants.value != "" ? parseInt(ddlInfants.value) : 0;
    
    if(dtDeparture.value == "")
	{
		alert("Choose departure date");
		dtDeparture.focus();
		return false;
	}
	else if(!IsValidDate(dtDeparture.value))
	{
		alert("Departure date is not valid, choose a valid departure date");
		dtDeparture.focus();
		return false;
	}
	else if(dtReturn.value == "" && rdoType[0].checked) 
	{
		alert("Choose return date");
		dtReturn.focus();
		return false;
	}
	else if(!IsValidDate(dtReturn.value) && rdoType[0].checked)
	{
		alert("Return date is not valid, choose a valid return date");
		dtReturn.focus();
		return false;
	}
	else if(!DatesValid(dtDeparture.value, dtReturn.value) && rdoType[0].checked)
	{
		alert("Return date cannot be a date before the departure date");
		return false;
	}
    else if(noOfInfants > noOfAdults)
	{
		alert("Number of infants cannot be more than the number of adults");
		ddlInfants.focus();
		return false;
	}
	
	return true;
}

function IsValidDate(dtDate)
{
	var Day = dtDate.split("/")[0]
	var Mn = dtDate.split("/")[1]
	var Yr = dtDate.split("/")[2]
	
    var DateVal = Mn + "/" + Day + "/" + Yr;
    var dt = new Date(DateVal);
	
	if(dt.getDate()!=Day){
        return false;
        }
    else if(dt.getMonth()!=Mn-1){
    //this is for the purpose JavaScript starts the month from 0
        return false;
        }
    else if(dt.getFullYear()!=Yr){
         return false;
        }
        
    return true;
 }
 
function DatesValid(dtDepDate, dtArrDate)
{
	var depDay = dtDepDate.split("/")[0]
	var depMn = dtDepDate.split("/")[1]
	var depYr = dtDepDate.split("/")[2]	
    var depDate = new Date(depMn + "/" + depDay + "/" + depYr);
	
	var arrDay = dtArrDate.split("/")[0]
	var arrMn = dtArrDate.split("/")[1]
	var arrYr = dtArrDate.split("/")[2]	
    var arrDate = new Date(arrMn + "/" + arrDay + "/" + arrYr);
	
	if(arrDate < depDate)
		return false;
        
    return true;
 }

 function pausescroller(content, divId, divClass, delay){
this.content=content //message array content
this.tickerid=divId //ID of ticker div to display information
this.delay=delay //Delay between msg change, in miliseconds.
this.mouseoverBol=0 //Boolean to indicate whether mouse is currently over scroller (and pause it if it is)
this.hiddendivpointer=1 //index of message array for hidden div
document.write('<div id="'+divId+'" class="'+divClass+'" style="position: relative; overflow: hidden"><div class="innerDiv" style="position: absolute; width: 100%" id="'+divId+'1">'+content[0]+'</div><div class="innerDiv" style="position: absolute; width: 100%; visibility: hidden" id="'+divId+'2">'+content[1]+'</div></div>')
var scrollerinstance=this
if (window.addEventListener) //run onload in DOM2 browsers
window.addEventListener("load", function(){scrollerinstance.initialize()}, false)
else if (window.attachEvent) //run onload in IE5.5+
window.attachEvent("onload", function(){scrollerinstance.initialize()})
else if (document.getElementById) //if legacy DOM browsers, just start scroller after 0.5 sec
setTimeout(function(){scrollerinstance.initialize()}, 500)
}

// -------------------------------------------------------------------
// initialize()- Initialize scroller method.
// -Get div objects, set initial positions, start up down animation
// -------------------------------------------------------------------

pausescroller.prototype.initialize=function(){
this.tickerdiv=document.getElementById(this.tickerid)
this.visiblediv=document.getElementById(this.tickerid+"1")
this.hiddendiv=document.getElementById(this.tickerid+"2")
this.visibledivtop=parseInt(pausescroller.getCSSpadding(this.tickerdiv))
//set width of inner DIVs to outer DIV's width minus padding (padding assumed to be top padding x 2)
this.visiblediv.style.width=this.hiddendiv.style.width=this.tickerdiv.offsetWidth-(this.visibledivtop*2)+"px"
this.getinline(this.visiblediv, this.hiddendiv)
this.hiddendiv.style.visibility="visible"
var scrollerinstance=this
document.getElementById(this.tickerid).onmouseover=function(){scrollerinstance.mouseoverBol=1}
document.getElementById(this.tickerid).onmouseout=function(){scrollerinstance.mouseoverBol=0}
if (window.attachEvent) //Clean up loose references in IE
window.attachEvent("onunload", function(){scrollerinstance.tickerdiv.onmouseover=scrollerinstance.tickerdiv.onmouseout=null})
setTimeout(function(){scrollerinstance.animateup()}, this.delay)
}


// -------------------------------------------------------------------
// animateup()- Move the two inner divs of the scroller up and in sync
// -------------------------------------------------------------------

pausescroller.prototype.animateup=function(){
var scrollerinstance=this
if (parseInt(this.hiddendiv.style.top)>(this.visibledivtop+5)){
this.visiblediv.style.top=parseInt(this.visiblediv.style.top)-5+"px"
this.hiddendiv.style.top=parseInt(this.hiddendiv.style.top)-5+"px"
setTimeout(function(){scrollerinstance.animateup()}, 50)
}
else{
this.getinline(this.hiddendiv, this.visiblediv)
this.swapdivs()
setTimeout(function(){scrollerinstance.setmessage()}, this.delay)
}
}

// -------------------------------------------------------------------
// swapdivs()- Swap between which is the visible and which is the hidden div
// -------------------------------------------------------------------

pausescroller.prototype.swapdivs=function(){
var tempcontainer=this.visiblediv
this.visiblediv=this.hiddendiv
this.hiddendiv=tempcontainer
}

pausescroller.prototype.getinline=function(div1, div2){
div1.style.top=this.visibledivtop+"px"
div2.style.top=Math.max(div1.parentNode.offsetHeight, div1.offsetHeight)+"px"
}

// -------------------------------------------------------------------
// setmessage()- Populate the hidden div with the next message before it's visible
// -------------------------------------------------------------------

pausescroller.prototype.setmessage=function(){
var scrollerinstance=this
if (this.mouseoverBol==1) //if mouse is currently over scoller, do nothing (pause it)
setTimeout(function(){scrollerinstance.setmessage()}, 100)
else{
var i=this.hiddendivpointer
var ceiling=this.content.length
this.hiddendivpointer=(i+1>ceiling-1)? 0 : i+1
this.hiddendiv.innerHTML=this.content[this.hiddendivpointer]
this.animateup()
}
}

pausescroller.getCSSpadding=function(tickerobj){ //get CSS padding value, if any
if (tickerobj.currentStyle)
return tickerobj.currentStyle["paddingTop"]
else if (window.getComputedStyle) //if DOM2
return window.getComputedStyle(tickerobj, "").getPropertyValue("padding-top")
else
return 0
}
