function specialHiddenObj(){

var tags = new Array("applet", "select", "object","iframe","embed");
var el = this.element;
for (var k = tags.length; k > 0; ) {
var ar = document.getElementsByTagName(tags[--k]);
var cc = null;

		for (var i = ar.length; i > 0;) {
			cc = ar[--i];
			if (cc.id != 'TblWaiting' && cc.id !='flashpanelwaiting')
			cc.style.visibility = "hidden";
			}
}
}
function specialVisibleObj(){

var tags = new Array("applet", "object", "select","iframe","embed");
var el = this.element;
for (var k = tags.length; k > 0; ) {
var ar = document.getElementsByTagName(tags[--k]);
var cc = null;

		for (var i = ar.length; i > 0;) {
			cc = ar[--i];
			if (cc.id != 'TblWaiting' && cc.id !='flashpanelwaiting')
				cc.style.visibility = "visible";
			
			}
}

}

function getVisib(obj){
		var value = obj.style.visibility;
		if (!value) {
			if (document.defaultView && typeof (document.defaultView.getComputedStyle) == "function") { // Gecko, W3C
				if (!Calendar.is_khtml)
					value = document.defaultView.
						getComputedStyle(obj, "").getPropertyValue("visibility");
				else
					value = '';
			} else if (obj.currentStyle) { // IE
				value = obj.currentStyle.visibility;
			} else
				value = '';
		}
}

function promogest()
{

if (document.getElementById("ResultSearchEngine1_cmbPromo").selectedIndex==0 ){
document.getElementById("ResultSearchEngine1_txtDepartureFrom").value='';
}else{
document.getElementById("ResultSearchEngine1_txtDepartureFrom").value='Qualsiasi';
}
}


// ******************************************
// CALENDARS
// ******************************************

var fromDate = new Date();
var now = new Date();

function disallowDatesFrom(date) {
   if( date.getYear() < now.getYear() ||
       date.getYear() == now.getYear() && date.getMonth() < now.getMonth() ||
       date.getYear() == now.getYear() && date.getMonth() == now.getMonth() && date.getDate() < now.getDate())
        return true;
    return false;
}


function disallowDatesTo(date) {
    fromDate = new Date( 
            document.getElementById( "depDateFrom" ).value.substr( 6 ),
            document.getElementById( "depDateFrom" ).value.substr( 3, 2 ) - 1,
            document.getElementById( "depDateFrom" ).value.substr( 0, 2 ) 
    );
        
    if( date.getYear() < fromDate.getYear() ||
        date.getYear() == fromDate.getYear() && date.getMonth() < fromDate.getMonth() ||
        date.getYear() == fromDate.getYear() && date.getMonth() == fromDate.getMonth() && date.getDate() < fromDate.getDate() )
        return true;
          
    return false;
}

function disallowDatesTo1(date) {
    fromDate = new Date( 
            document.getElementById( "Search_engine1_txtSearchDateFrom" ).value.substr( 6 ),
            document.getElementById( "Search_engine1_txtSearchDateFrom" ).value.substr( 3, 2 ) - 1,
            document.getElementById( "Search_engine1_txtSearchDateFrom" ).value.substr( 0, 2 ) 
    );
        
    if( date.getYear() < fromDate.getYear() ||
        date.getYear() == fromDate.getYear() && date.getMonth() < fromDate.getMonth() ||
        date.getYear() == fromDate.getYear() && date.getMonth() == fromDate.getMonth() && date.getDate() < fromDate.getDate() )
        return true;
          
    return false;
}

function disallowDatesTo2(date) {
    fromDate = new Date( 
            document.getElementById( "ResultSearchEngine1_txtSearchDateFrom" ).value.substr( 6 ),
            document.getElementById( "ResultSearchEngine1_txtSearchDateFrom" ).value.substr( 3, 2 ) - 1,
            document.getElementById( "ResultSearchEngine1_txtSearchDateFrom" ).value.substr( 0, 2 ) 
    );
        
    if( date.getYear() < fromDate.getYear() ||
        date.getYear() == fromDate.getYear() && date.getMonth() < fromDate.getMonth() ||
        date.getYear() == fromDate.getYear() && date.getMonth() == fromDate.getMonth() && date.getDate() < fromDate.getDate() )
        return true;
          
    return false;
}

// ************************************ 
// DIV                                  
// ************************************ 

function findPosX(obj) {
    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 findPosY(obj) {
    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;
}

var simpleSearchId = "navbar_search_menu";


function showSimpleSearch( aTag, destAirport, destName) {

	document.getElementById("toCityLS").value=destAirport;
	document.getElementById("destCity").innerHTML=destName;
    document.getElementById( simpleSearchId ).style.display  = 'block';
    document.getElementById( simpleSearchId ).style.position = 'absolute';
    document.getElementById( simpleSearchId ).style.left     = findPosX( aTag ) + 'px'; 
    document.getElementById( simpleSearchId ).style.top      = (findPosY( aTag )+20) + 'px';
}

function showSimpleSearchVacation( aTag, destination, city, destName) {

	document.getElementById("depFrom").value=destination;
	document.getElementById("city").value=city;
	document.getElementById("destCity").innerHTML=destName;
    document.getElementById( simpleSearchId ).style.display  = 'block';
    document.getElementById( simpleSearchId ).style.position = 'absolute';
    document.getElementById( simpleSearchId ).style.left     = findPosX( aTag ) + 'px'; 
    document.getElementById( simpleSearchId ).style.top      = (findPosY( aTag )+20) + 'px';
}

function showSimpleSearchVacation1( aTag, destination) {

	document.getElementById("depFrom").value=destination;
    document.getElementById( simpleSearchId ).style.display  = 'block';
    document.getElementById( simpleSearchId ).style.position = 'absolute';
    document.getElementById( simpleSearchId ).style.left     = findPosX( aTag ) + 'px'; 
    document.getElementById( simpleSearchId ).style.top      = (findPosY( aTag )+20) + 'px';
}

function showSimpleSearchCharter( aTag, destination, city, destView, cityView,OfferType ) {
	document.getElementById("promoMsg").value=''
	document.getElementById("OfferType").value=OfferType
	document.getElementById("searchField").innerHTML=destView + ' ' + cityView 
	document.getElementById("depFrom").value=destination;
	document.getElementById("city").value=city;
    document.getElementById( simpleSearchId ).style.display  = 'block';
    document.getElementById( simpleSearchId ).style.position = 'absolute';
    document.getElementById( simpleSearchId ).style.left     = (findPosX( aTag )+2) + 'px'; 
    document.getElementById( simpleSearchId ).style.top      = (findPosY( aTag )+4) + 'px';
}

function hideSimpleSearch( destAirport ) {
    document.getElementById( simpleSearchId ).style.display  = 'none';
}

var destinationMenuId  = "destination_menu";
var destinationInputId = "Search_engine1_txtDepartureFrom";
var destinationInputIdFlight = "SearchEngine1_txtDepartureFrom";
var destinationInputFormHomeId = "HomeSearchEngine1_txtDepartureFrom";
var destinationInputFormResId = "ResultSearchEngine1_txtDepartureFrom";

var cityInputId = "Search_engine1_txtDepartureCity";
var cityInputIdFlight = "SearchEngine1_txtDepartureCity";
var cityInputFormHomeId = "HomeSearchEngine1_txtDepartureCity";
var cityInputFormResId = "ResultSearchEngine1_txtDepartureCity";

function showDestinations( theTag ) {
	specialHiddenObj()
	if (document.getElementById('offersHeader')) {
		document.getElementById('offersHeader').style.display='none'
	}

    var divObject = document.getElementById( destinationMenuId );
    divObject.style.display  = 'block';
    divObject.style.position = 'absolute';
    
    divObject.style.left     = (findPosX( theTag )+145) + 'px'; 
    divObject.style.top      = (findPosY( theTag )-107) + 'px';
    
    
    var x1 = findPosX( divObject );
    var y1 = findPosY( divObject );
    var x2 = x1 + divObject.offsetWidth;
    var y2 = y1 + divObject.offsetHeight;
    
    // For IE, adjust position.
	if (document.all) {
			x1 += divObject.offsetParent.clientLeft;
			y1 += divObject.offsetParent.clientTop;
	}
    if (document.getElementById("IMAGESLIDE") != null) {document.getElementById("IMAGESLIDE").style.visibility = 'hidden';}
    if (document.getElementById("_ctl1_ddlDepartureAirport") != null) {document.getElementById("_ctl1_ddlDepartureAirport").style.visibility = 'hidden';}
    
    if (document.all) {
		for(ix=0; ix <document.all.length; ix++) {
			objectid = document.all[ix].id;
			objectx = document.all[ix];
			if (objectid.indexOf("cmb") > 0 ) {
				//
				//	Defines box(area) coordinates of an object
				//	a combo box in this case.
				//
				//	xx = x of top,left
				//	yy = y of top,left
				//	xx2 = x of bottom, right
				//	yy2 = y of bottom, right
				//
				xx = findPosX(objectx);
				yy = findPosY(objectx);
				xx2 = xx + objectx.offsetWidth;
				yy2 = yy + objectx.offsetHeight;
		        
				document.all[ix].style.visibility = 'visible';
				if (xx >= x1 && xx <= x2) {
					if (yy >= y1 && yy <= y2) {	
					
                        document.all[ix].style.visibility = 'hidden';
					}
				}
				if (xx2 >= x1 && xx2 <= x2) {
					if (yy2 >= y1 && yy2 <= y2) {		
							
                        document.all[ix].style.visibility = 'hidden';
					}
				}
                if (xx <= x1 && xx2 >= x2) {
            		if (yy >= y1 && yy2 <= y2) {
            		
            			document.all[ix].style.visibility = 'hidden';
            		}
            	}
			}
		}
	}
}

function hideDestinations() {
specialVisibleObj()
if (document.getElementById("IMAGESLIDE") != null) { document.getElementById("IMAGESLIDE").style.visibility = 'visible';}
if (document.getElementById("_ctl1_ddlDepartureAirport") != null) {document.getElementById("_ctl1_ddlDepartureAirport").style.visibility = 'visible';}
    document.getElementById( destinationMenuId ).style.display  = 'none';
    if (document.getElementById('offersHeader')) {
		document.getElementById('offersHeader').style.display='block'
	}

    
    //
	//	Turn on all 'drop downs' if not visible
	//
	// works for IE ONLY
	//*********************************
	var objectid;
	var ix;
	if (document.all) {
		for(ix=0; ix <document.all.length; ix++) {
			objectid = document.all[ix].id;
			if (objectid.indexOf("cmb") > 0) {
				document.all[ix].style.visibility = 'visible';
	
			}
		}
	}
}

function setDestinationFlight( destVal ) {
if(document.getElementById( destinationInputIdFlight ) != null){
    document.getElementById( destinationInputIdFlight ).value = destVal;
    }
    else if (document.getElementById( destinationInputFormResId ) != null){
    document.getElementById( destinationInputFormResId ).value = destVal;
    }
    else if (document.getElementById( destinationInputFormHomeId ) != null){
    
    document.getElementById( destinationInputFormHomeId ).value = destVal;
    }
    hideDestinations();
}
function setDestinationCity( destVal, cityVal ) {
document.getElementById( "lbCity" ).style.visibility='visible';
if(document.getElementById( destinationInputId ) != null){
	document.getElementById( cityInputId ).style.visibility='visible';
    document.getElementById( destinationInputId ).value = destVal;
	document.getElementById( cityInputId ).value = cityVal;
 
    }
    else if (document.getElementById( destinationInputFormResId ) != null){
	document.getElementById( cityInputFormResId ).style.visibility='visible';
    document.getElementById( destinationInputFormResId ).value = destVal;
    document.getElementById( cityInputFormResId ).value = cityVal;
    }
    else if (document.getElementById( destinationInputFormHomeId ) != null){
    document.getElementById( cityInputFormHomeId ).style.visibility='visible';
    document.getElementById( destinationInputFormHomeId ).value = destVal;
    document.getElementById( cityInputFormHomeId ).value = cityVal;
    }
   
    hideDestinations();
}
function setDestination( destVal ) {
document.getElementById( "lbCity" ).style.visibility='hidden';
if(document.getElementById( destinationInputId ) != null){
	document.getElementById( cityInputId ).style.visibility='hidden';
    document.getElementById( destinationInputId ).value = destVal;
    document.getElementById( cityInputId ).value = '';
    }
    else if (document.getElementById( destinationInputFormResId ) != null){
    document.getElementById( cityInputFormResId ).style.visibility='hidden';
    document.getElementById( destinationInputFormResId ).value = destVal;
       document.getElementById( cityInputFormResId ).value = '';
    }
    else if (document.getElementById( destinationInputFormHomeId ) != null){
      document.getElementById( cityInputFormHomeId ).style.visibility='hidden';
    document.getElementById( cityInputFormHomeId ).value = '';
    document.getElementById( destinationInputFormHomeId ).value = destVal;
    }
    hideDestinations();
}

function changeHome(home_name){
	document.getElementById("switchTo").value=home_name;
	frmSwitch.submit();
}



function check_date(field){
var checkstr = "0123456789";
var DateField = field;
var Datevalue = "";
var DateTemp = "";
var seperator = "/";
var day;
var month;
var year;
var leap = 0;
var err = 0;
var i;
   err = 0;
   DateValue = DateField.value;
   /* Delete all chars except 0..9 */
   for (i = 0; i < DateValue.length; i++) {
	  if (checkstr.indexOf(DateValue.substr(i,1)) >= 0) {
	     DateTemp = DateTemp + DateValue.substr(i,1);
	  }
   }
   DateValue = DateTemp;
   /* Always change date to 8 digits - string*/
   /* if year is entered as 2-digit / always assume 20xx */
   if (DateValue.length == 6) {
      DateValue = DateValue.substr(0,4) + '20' + DateValue.substr(4,2); }
   if (DateValue.length != 8) {
      err = 19;}
   /* year is wrong if year = 0000 */
   year = DateValue.substr(4,4);
   if (year == 0) {
      err = 20;
   }
   /* Validation of month*/
   month = DateValue.substr(2,2);
   if ((month < 1) || (month > 12)) {
      err = 21;
   }
   /* Validation of day*/
   day = DateValue.substr(0,2);
   if (day < 1) {
     err = 22;
   }
   /* Validation leap-year / february / day */
   if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) {
      leap = 1;
   }
   if ((month == 2) && (leap == 1) && (day > 29)) {
      err = 23;
   }
   if ((month == 2) && (leap != 1) && (day > 28)) {
      err = 24;
   }
   /* Validation of other months */
   if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12"))) {
      err = 25;
   }
   if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) {
      err = 26;
   }
   /* if 00 ist entered, no error, deleting the entry */
   if ((day == 0) && (month == 0) && (year == 00)) {
      err = 0; day = ""; month = ""; year = ""; seperator = "";
   }
   /* if no error, write the completed date to Input-Field (e.g. 13.12.2001) */
   if (err == 0) {
      DateField.value = day + seperator + month + seperator + year;
   }
   /* Error-message if err != 0 */
   else {
      alert("La data inserita non è corretta.\n\nI formati supportati sono:\n  - ggmmaa\n  - ggmmaaaa\n  - gg/mm/aa\n  - gg/mm/aaaa\n");
      DateField.select();
	  DateField.focus();
   }
}
