// width of the waiting message
var waitingMessageWidth = -1;
var waitingMessageHeight = -1;
var popupWindow = null;



var imageWindow = null;

function SetHiddenInputData(InputName,ControlName)
{
	var inputName = GetControl( InputName,0,"input" );
	var selectControl = GetControl( ControlName,0,"select" );	
	
	if ( inputName != null && selectControl != null  )
	{
			inputName.value = selectControl.value;		
	}
}

function SetHiddenInputValue(InputName, Value) {
    var inputName = GetControl(InputName, 0, "input");
        if (inputName != null) {
            inputName.value = Value;
    }
}

function openImagePopup( imageUrl, imageWidth, imageHeight )
{
    var params = "directories=no,height=" + imageHeight + ",width=" + imageWidth + "menubar=false,resizable=false,scrollbars=false,status=false,titlebar=false,toolbar=false";
    if ( imageWindow != null && !imageWindow.closed )
    {
        imageWindow.close();
    }
    if (UsedBrowser == "Gecko")
    			{
    				imageWindow = window.open( imageUrl, "_blank", params );
    			}
    			else
    			{
    				imageWindow = window.open( "", "_blank", params );
			}
    if ( imageWindow.document.body == null )
    {
    }
    else
    {
        imageWindow.document.body.bottomMargin = 0;
        imageWindow.document.body.topMargin = 0;
        imageWindow.document.body.leftMargin = 0;
        imageWindow.document.body.rightMargin = 0;
        imageWindow.document.body.innerHTML = "<html><head></head><body><img src='" + imageUrl + "'></body></html>";
        imageWindow.focus();
    }
}

function MM_openBrWindow(theURL,winName,features)
{ //v2.0
        window.open( theURL, winName, features );
    //  window.open("http://www.happynese.de/"+ theURL,winName,features);
}    
    
function CheckAGB( source, args )
{
    var checkBox = GetControl( "checkboxAGB", 0, "input" )
    args.IsValid = checkBox.checked
}
    
function CheckBirthDateForPerson( source, args )
{

    CheckDate(source, args);
    var messageContainer = GetControl(source.MessageContainerId,0,"div");                                
    if(!args.IsValid)
    {
        messageContainer.innerText = ''
        return;
    }
    

    reDate.exec( args.Value );                
    var year = RegExp.$5.valueOf();
    if ( year < 100 )
    year += 2000;
    var month = RegExp.$3.valueOf()-1;
    var day = RegExp.$1.valueOf();
    
    var birthDate = new Date(year,month,day)
    

   if(( birthDate.getFullYear() < source.MinPersonAgeYear ) ||
        ( birthDate.getFullYear() == source.MinPersonAgeYear
         && 
            birthDate.getMonth() < source.BirthDayMonth ) || 
      ( birthDate.getFullYear() == source.MinPersonAgeYear            
        &&
        birthDate.getMonth() == source.BirthDayMonth 
        &&
        birthDate.getDate() < source.BirthDayDate                    
        ))
    {            
        args.IsValid = false;
        messageContainer.innerText = source.PersonAgeErrorMessage;             
        return;
    }
    
    if(( birthDate.getFullYear() > source.MaxPersonAgeYear) ||
        ( birthDate.getFullYear() == source.MaxPersonAgeYear 
            && 
            birthDate.getMonth() > source.BirthDayMonth ) 
            || 
      ( birthDate.getFullYear() == source.MaxPersonAgeYear            
        &&
        birthDate.getMonth() == source.BirthDayMonth 
        &&
        birthDate.getDate() > source.BirthDayDate                    
        ) )
    {            
        args.IsValid = false;
        messageContainer.innerText = source.PersonAgeErrorMessage;             
        return;
    }
    
        
    args.IsValid = true;
    messageContainer.innerText = '';       
}

function HideFlightsControlContent()
{
    var flightsContent = GetControl("flightsTableControlsContainer",0,"table");
    
    var travelPlanContainer = GetControl("travelPlanContainer",0,"div");
    var acsContactInfo =  GetControl("acsContactInfo",0,"div");

    var messageContainer = GetControl("waitingMessageDiv",0,"div");
    
    waitingMessageWidth = 700;
    waitingMessageHeight = 400;

    var travelPlanHTML = travelPlanContainer.innerHTML;
    var acsContactInfoHTML = acsContactInfo.innerHTML;
    
//    flightsContent.style.display="none";
        
//    messageContainer.innerHTML="<table><tr><td bgcolor='#ebebeb' valign=top>" + travelPlanHTML +  "</td><td  valign=center  align=center rowspan=2><table border='1' class='booking-a' rules='all' width=" + waitingMessageWidth +  " height=" + waitingMessageHeight + "><tr><td align=center><img src='Images/waitscreen/kugel.gif' /></tr><tr><td align=center><b>" + waitingMessage + "</b></td></tr></table></td></tr><tr><td>" + acsContactInfoHTML + "</td></tr></table>";
//    HideHomeReference();
      ShowPopupWindow();  
}

function HideBookingGeneralControlContent()
{
    var contentControl = GetControl("clientBookingContainer",0,"table");
    var leftColumnContainer = GetControl("leftColumnContainer",0,"table");
    var operatorInfoTable = GetControl("operatorInfoTable",0,"table");

    var acsContactInfo =  GetControl("acsContactInfo",0,"div");
        
    var waitingMessageContainer = GetControl("waitingMessageDiv",0,"div");

    waitingMessageWidth = 700;
    waitingMessageHeight = 400;
    
    var leftColumnWidth = leftColumnContainer.clientWidth;
    var acsContactInfoHTML = acsContactInfo.innerHTML;    
    var operatorInfoHeight = 15;
 
//    contentControl.style.display = "none";
    
//    waitingMessageContainer.innerHTML="<table><tr><td colspan=2 height=" + operatorInfoHeight +  "/></tr><tr><td valign=top width=" + leftColumnWidth + ">" + acsContactInfoHTML + "</td><td><table class='booking-a' border=1 rules='groups' width=" + waitingMessageWidth +  " height=" + waitingMessageHeight + "><tr valign=center width=100% height=100%><td width=100% height=100% align=center><img src='Images/waitscreen/kugel.gif' /></tr><tr><td align=center><b>" + waitingMessage + "</b></td></tr></table></td></tr></table>";
    ShowPopupWindow();


//    HideHomeReference();
}

function ShowPopupWindow()
{
    var l = window.self.screenLeft + (window.document.body.clientWidth  - 100)/2;
    var t = window.screenTop + (window.document.body.clientHeight - 80)/2;
    popupWindow = window.open("waitscreen.htm","newwindow","width="+180+",height=" +100+",left="+l+",top="+t+",status=no, location=no, titlebar=no,scrollbars=no,menubar=no,resizable=no,toolbar=no"  );
    popupWindow.focus();

}

function OnPage_LoadAscAgency()
{
    HidePopupWindow();
}


function PageUnload()
{
    HidePopupWindow();
}

function HidePopupWindow()
{    

    if(popupWindow!=null)
    {
        popupWindow.close();    
        popupWindow = null;
    }
    
}

  function BabiesNumber_Changed()
  {
    var containerControl = GetControl("babiesNumberContainer",0,"input");
    if(containerControl == null)
        return;
    var babiesNumberList =  GetControl("babiesNumberList",0,"select");  
    if(babiesNumberList == null)
        return;
    containerControl.value = babiesNumberList.value;    
  }
  

function HideHomeReference()
{
    var divHomePage = GetControl("divHomePage",0,"div");
    var aHomePage = GetControl("homePageReference",0,"a");
    
    if(aHomePage == null)
        return;
    
    var aInnerHTML = aHomePage.innerHTML;
    divHomePage.innerHTML=aInnerHTML;
}


var backClicked = 0;

function GoBack()
{
    if(backClicked == 0)
    {

        backClicked = 1;
        return;
    }
    if(backClicked == 1)
    {
        history.back();    
    }
}

function ReadMore ( pCount )
{
 for ( var i = 2; i <= pCount; i++ )
     {
		var pTable = document.getElementById( 'pTable' + i );
		if ( pTable != null )
			if ( pTable.style.display == 'none')
				pTable.style.display = 'inline';
			else
				pTable.style.display = 'none';
     }
}

function cleartxtbox()
{
document.DefaultForm.newsLettertxt.value = '';
}

function reWriteIntxtbox()
{
document.DefaultForm.newsLettertxt.value = 'Enter E-Mail Address';
}

function sortingParams()
{
		var sortXpath = document.DefaultForm.sortby.value ;
			switch (sortXpath) 
			{
				case "alphabetically": 
					var sortParameterType = "string"
					var sortAscending = true
					break
				case "grsPicks": 
					var sortParameterType = "string"
					var sortAscending = true
					break
				case "stars": 
					var sortParameterType = "int"
					var sortAscending = true
					break
			}
}

// persons Visa Scrolling area Function
/*
Extension developed by David G. Miles (www.z3roadster.net/dreamweaver)
Original Scrollable Area code developed by Thomas Brattli 
To add more shock to your site, visit www.DHTML Shock.com
*/

function verifyCompatibleBrowser(){ 
    this.ver=navigator.appVersion 
    this.dom=document.getElementById?1:0 
    this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom)?1:0; 
    this.ie4=(document.all && !this.dom)?1:0; 
    this.ns5=(this.dom && parseInt(this.ver) >= 5) ?1:0; 
    this.ns4=(document.layers && !this.dom)?1:0; 
    this.bw=(this.ie5 || this.ie4 || this.ns4 || this.ns5) 
    return this 
} 
bw=new verifyCompatibleBrowser() 
 
 
var speed=50 
 
var loop, timer 
var loop2, timer2
 
function ConstructObject(obj,nest){ 
    nest=(!nest) ? '':'document.'+nest+'.'; 
    this.el=bw.dom?document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?eval(nest+'document.'+obj):0;    
    this.css= bw.dom?document.getElementById(obj).style:bw.ie4?document.all[obj].style:bw.ns4?eval(nest+'document.'+obj):0;
    
    this.scrollHeight=bw.ns4?this.css.document.height:String(this.el.offsetHeight);
    this.clipHeight=bw.ns4?this.css.clip.height:String(this.el.offsetHeight);
    this.up=MoveAreaUp;this.down=MoveAreaDown; 
    this.MoveArea=MoveArea;this.x; this.y; 
    this.obj = obj + "Object"; 
    eval(this.obj + "=this");
    
    
    return this;    
} 
function MoveArea(x,y){
    this.x=x;this.y=y; 
    this.css.left=this.x+"pt"; 
    this.css.top=this.y+"pt"; 
} 
 
function MoveAreaDown(move){ 
	if(this.y>-this.scrollHeight+objContainer.clipHeight){ 
    this.MoveArea(0,this.y-move); 
    if(loop) 
    {
        timer = setTimeout(this.obj+".down("+move+")",speed); 
    }
	} 
} 
function MoveAreaUp(move){ 
	if(this.y<0){ 
    this.MoveArea(0,this.y-move); 
    if(loop) 
    {
        timer = setTimeout(this.obj+".up("+move+")",speed); 
    }
	} 
} 
 
function PerformScroll(speed){ 
	if(initialised){ 
		loop=true; 
		if(speed>0) objScroller.down(speed) 
		else objScroller.up(speed); 
	} 
} 
 
function CeaseScroll(){
    loop=false 
    if(timer) clearTimeout(timer) 
} 
var initialised; 
function InitialiseScrollableArea(){
    
    objContainer=new ConstructObject('divContainer'); 
    objScroller=new ConstructObject('divContent','divContainer');
    objScroller.MoveArea(0,0);
    objContainer.css.visibility='visible';
    initialised=true;
} 

/*** silly copy of the code above ******** to be rewritten ***/
var objContainer2;
var objScroller2;

var objContainer;
var objScroller;

function ConstructObject2(obj,nest){ 
    nest=(!nest) ? '':'document.'+nest+'.' 
    this.el2=bw.dom?document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?eval(nest+'document.'+obj):0; 
    this.css2=bw.dom?document.getElementById(obj).style:bw.ie4?document.all[obj].style:bw.ns4?eval(nest+'document.'+obj):0; 
    this.scrollHeight2=bw.ns4?this.css2.document.height:this.el2.offsetHeight ;
    this.clipHeight2=bw.ns4?this.css2.clip.height:this.el2.offsetHeight; 
    this.up2=MoveAreaUp2;this.down2=MoveAreaDown2; 
    this.MoveArea2=MoveArea2;this.x2; this.y2; 
    this.obj2 = obj + "Object"; 
    eval(this.obj2 + "=this"); 
    return this;
} 
function MoveArea2(x,y){ 
    this.x2=x;this.y2=y; 
    this.css2.left=this.x2+"pt"; 
    this.css2.top=this.y2+"pt"; 
} 
 
function MoveAreaDown2(move){ 
	if(this.y2>-this.scrollHeight2+objContainer2.clipHeight2){ 
    this.MoveArea2(0,this.y2-move); 
    if(loop2) 
    {
        timer2 = setTimeout(this.obj2+".down2("+move+")",speed) 
    }
	} 
} 
function MoveAreaUp2(move){ 
	if(this.y2<0){ 
    this.MoveArea2(0,this.y2-move) 
    if(loop2) 
    {
        timer2 = setTimeout(this.obj2+".up2("+move+")",speed) 
    }
	} 
} 
 
function PerformScroll2(speed){ 
	if(initialised2){ 
		loop2=true; 
		if(speed>0) objScroller2.down2(speed) 
		else objScroller2.up2(speed) 
	} 
} 
 
function CeaseScroll2(){ 
    loop=false 
    if(timer2) clearTimeout(timer2) 
} 
var initialised2; 
function InitialiseScrollableArea2(){ 
    objContainer2=new ConstructObject2('divContainer2'); 
    objScroller2=new ConstructObject2('divContent2','divContainer2'); 
    objScroller2.MoveArea2(0,0); 
    objContainer2.css2.visibility='visible'; 
    initialised2=true; 
} 

// end absolutely positioned scrollable area object scripts 

function controlExistsInTheCollection( control,collection )
{
	for( var i=0;i<collection.length;i++ )
	{			
		if( collection[i].id == control.id )
			return true;				
	}
	
	return false;	
}

function ADDNationalityValidators()
{	
	var validator = GetControl( "NationalityValidator0", 0, "span" );
	var i=0;
	
	while( validator != null )
	{
		i++;
			
		if( controlExistsInTheCollection( validator,Page_Validators ) != true )
		{
			Page_Validators.push(validator);
			validator = GetControl( "NationalityValidator"+i, 0, "span" );		
		}
		else		
			validator = null;		
	}
	
	ValidatorOnLoad();
}

function AdjustLayerPosition(x,y, visibility)
{	
	var myLayer = GetControl("Dot",0,"div");
	myLayer.style.left = x;
	myLayer.style.top = y;
	myLayer.style.visibility = visibility;	
}

function chkdate(objName) {
//var strDatestyle = "US"; //United States date style
var strDatestyle = "EU";  //European date style
var strDate;
var strDateArray;
var strDay;
var strMonth;
var strYear;
var intday;
var intMonth;
var intYear;
var booFound = false;
var datefield = objName;
var strSeparatorArray = new Array("-"," ","/",".");
var intElementNr;
var err = 0;
var strMonthArray = new Array(12);
strMonthArray[0] = "Jan";
strMonthArray[1] = "Feb";
strMonthArray[2] = "Mar";
strMonthArray[3] = "Apr";
strMonthArray[4] = "May";
strMonthArray[5] = "Jun";
strMonthArray[6] = "Jul";
strMonthArray[7] = "Aug";
strMonthArray[8] = "Sep";
strMonthArray[9] = "Oct";
strMonthArray[10] = "Nov";
strMonthArray[11] = "Dec";
strDate = datefield.value;
if (strDate.length < 1) {
return true;
}
for (intElementNr = 0; intElementNr < strSeparatorArray.length; intElementNr++) {
if (strDate.indexOf(strSeparatorArray[intElementNr]) != -1) {
strDateArray = strDate.split(strSeparatorArray[intElementNr]);
if (strDateArray.length != 3) {
err = 1;
return false;
}
else {
strDay = strDateArray[0];
strMonth = strDateArray[1];
strYear = strDateArray[2];
}
booFound = true;
   }
}
if (booFound == false) {
if (strDate.length>5) {
strDay = strDate.substr(0, 2);
strMonth = strDate.substr(2, 2);
strYear = strDate.substr(4);
   }
}
if (strYear.length == 2) {
strYear = '20' + strYear;
}
// US style
if (strDatestyle == "US") {
strTemp = strDay;
strDay = strMonth;
strMonth = strTemp;
}
intday = parseInt(strDay, 10);
if (isNaN(intday)) {
err = 2;
return false;
}
intMonth = parseInt(strMonth, 10);
if (isNaN(intMonth)) {
for (i = 0;i<12;i++) {
if (strMonth.toUpperCase() == strMonthArray[i].toUpperCase()) {
intMonth = i+1;
strMonth = strMonthArray[i];
i = 12;
   }
}
if (isNaN(intMonth)) {
err = 3;
return false;
   }
}
intYear = parseInt(strYear, 10);
if (isNaN(intYear)) {
err = 4;
return false;
}
if (intMonth>12 || intMonth<1) {
err = 5;
return false;
}
if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 1)) {
err = 6;
return false;
}
if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intday > 30 || intday < 1)) {
err = 7;
return false;
}
if (intMonth == 2) {
if (intday < 1) {
err = 8;
return false;
}
if (LeapYear(intYear) == true) {
if (intday > 29) {
err = 9;
return false;
}
}
else {
if (intday > 28) {
err = 10;
return false;
}
}
}
if (strDatestyle == "US") {
//datefield.value = strMonthArray[intMonth-1] + " " + intday+" " + strYear;
}
else {
//datefield.value = intday + " " + strMonthArray[intMonth-1] + " " + strYear;
}
return true;
}
function LeapYear(intYear) {
if (intYear % 100 == 0) {
if (intYear % 400 == 0) { return true; }
}
else {
if ((intYear % 4) == 0) { return true; }
}
return false;
}

function GetOffsetLeft( obj1 )
{
    var obj = obj1;
    var curleft = 0;
    if (obj.offsetParent)
       while (1)
         {
            curleft += obj.offsetLeft;
            if (!obj.offsetParent)
                break;
            obj = obj.offsetParent;
          } 
    else if (obj.x)
        curleft += obj.x;
        
    return curleft;        
}

function writeFlashObject()
{
    document.write(obHTML);
}

function GetOffsetTop( obj1 )
{
    var obj = obj1;
    var curtop = 0;
    if(obj.offsetParent)
       while(1)
          { 
             curtop += obj.offsetTop;
              if(!obj.offsetParent)
                  break;
              obj = obj.offsetParent;
           }
     else if(obj.y)
              curtop += obj.y;
              
    return curtop; 
}

// Simple follow the mouse script

var divName = 'PleaseWait'; // div that is to follow the mouse
var offX = -195;          // X offset from mouse position
var offY = -90;          // Y offset from mouse position

function mouseX(evt) {if (!evt) evt = window.event; if (evt.pageX) return evt.pageX; else if (evt.clientX)return evt.clientX + (document.documentElement.scrollLeft ?  document.documentElement.scrollLeft : document.body.scrollLeft); else return 0;}
function mouseY(evt) {if (!evt) evt = window.event; if (evt.pageY) return evt.pageY; else if (evt.clientY)return evt.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop); else return 0;}

function follow(evt) {if (document.getElementById) {var obj = document.getElementById(divName).style; obj.visibility = 'visible';
obj.left = (parseInt(mouseX(evt))+offX) + 'px';
obj.top = (parseInt(mouseY(evt))+offY) + 'px';}}

function fnSetMouseCursorToHand(obj)
{
    obj.style.cursor = (UsedBrowser == "Gecko")?"pointer":"hand";
}

var postBackElement = null;

function InitializeRequest(sender, args)
{           
    //document.body.style.cursor = 'wait';
    var pleaseWait = GetControl( "PleaseWait",0,"div" );
    pleaseWait.style.display = "";
    disableElement('SELECT');
    disableElement('Input');
    
    postBackElement = args.get_postBackElement();
}
var requestUrl = null;
function EndRequestHandler(sender, args)
    {
        CallBackEndRequest(sender, args);       
    }
    
    function CallBackEndRequest(sender, args)
    {
        if (args.get_error() == undefined)
       {
            //document.body.style.cursor = 'auto';
            var pleaseWait = GetControl( "PleaseWait",0,"div" );
            pleaseWait.style.display = "none";            
            enableElement('SELECT');
            enableElement('Input');
//            if(GetControl("dropDownListAdultsR1", 0, "select"))
//            {
//                showCalendarElement( 'SELECT' );
//		        showCalendarElement( 'APPLET' );
//		    }
	   }
       
       // Needed to keep AJAX running from 2nd to 3rd AJAX request 
       document.forms[0].action = requestUrl; 
       document.forms[0]._initialAction = requestUrl;

       if(postBackElement.id.indexOf("pagingControl") != -1) 
       {
            window.scroll(0,0);
       }        
    }
    
    function load() {
       requestUrl = document.forms[0].action;
       if(Sys.WebForms != null)
       {
       Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(InitializeRequest); 
       Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
       }
       enableElement('SELECT');
       enableElement('INPUT');
    }
    
    function fnHandleMove(e){
    var pleaseWait = GetControl( "PleaseWait",0,"div" );
    if(pleaseWait != null || pleaseWait == "")
    {
        if(!e) 
            e = window.event;
        pleaseWait.style.top = e.clientY - 5;
        pleaseWait.style.left = e.clientX - 140;
    }   
}

function disableElement( tagName )
{
    var elements = document.getElementsByTagName(tagName);
    for(var i = 0; i < elements.length; i++)
    {
        var obj = elements[i];
        obj.disabled = true;
    }  
}

function enableElement( tagName )
{
    var elements = document.getElementsByTagName(tagName);
    for(var i = 0; i < elements.length; i++ )
    {
        var obj = elements[i];
        obj.disabled = false;
    }
}

  function DoNavigation(Url)
  {
      document.location.href = Url;
  }

  function OpenWindow(Url) {
      window.open(Url);
  }
