<!--

function is_email(item)
{
	var mhkos = item.value.length
        var papaki = item.value.indexOf("@")
        var teleia = item.value.lastIndexOf(".")

        if (mhkos>4 && papaki>0 && teleia>papaki+1)
        {
                var space = item.value.indexOf(" ");
                if (space >= 0) {
                    alert("Your email contains white spaces. Please remove them and resubmit the form");
                    return false
                }
                return true
        }

        alert("Please fill in a proper e-mail so we can contact you");
        return false
}

function is_number(item, msg){
	if (isFinite(item.value)) { // the value is a Finite number
		return true;
	}
	else {
		alert("Please provide a valid number for the " + msg);
		return false;
	}
}

function is_not_empty(item, msg)
{
        if (item.value.length > 0) return true
        else
        {
                alert("Please fill in " + msg);
                return false
        }
}

function is_selected(item, msg)
{
        if (item.options[item.selectedIndex].value  != "0") return true
        else
        {
                alert("Please select " + msg);
                return false
        }
}

function form_ok(f)
{
	f.Phone.value = f.IntCode1.value + " " + f.phone_num.value;
	f.Fax.value = f.IntCode2.value + " " + f.fax_num.value;

 if ( is_number(f.Delegates_No_Main_Conference_Room, "Number Of Delegates in Main Conference Room") && 
      is_number(f.Days_No_Main_Conference_Room, "Number Of Days Main Conference Room Is Needed") && 
      is_number(f.Syndicate_Rooms, "Number Of Syndicate Rooms") && 
      is_number(f.Delegates_No_Syndicate_Room, "Number Of Persons / Delegates Per Syndicate Room") && 
      is_number(f.Days_No_Syndicate_Rooms, "Number Of Days Syndicate Rooms Are Needed") && 
      is_number(f.Delegates_No, "Number Of Persons / Delegates") && 
      is_number(f.Nights_No, "Number Of Nights Required") && 
      is_number(f.Single_Rooms, "Single Rooms Required") && 
      is_number(f.Double_Rooms, "Double Rooms Required") && 
      is_number(f.Suites, "Suites Required") && 
      is_not_empty(f.FirstName, "your First Name") && is_not_empty(f.LastName, "your Last Name") && 
      is_email(f.submit_by) && 
      is_not_empty(f.Address, "your Address") && 
      is_not_empty(f.City, "the name of your City") && 
      is_not_empty(f.Zip_Code, "the Postal Code of your City") && 
      is_selected(f.Country, "the name of your Country") && 
      is_not_empty(f.phone_num, "your Phone Number") && 
      is_not_empty(f.fax_num, "your Fax Number") ) {
              	 return true;
 }
 else return false;
}

    
var astrMonthName = new Array("Unknown","January","February","March","April","May","June","July","August","September","October","November","December");
var TIME_UNITS_PER_DAY = 86400000;


//function CreateCalendar(selMonth, selDay, selYear, strInOut) {
//	if (!blnBrowserIsSupported()) {
//		alert("Your browser appears to be outdated and does not support this feature.")
// 		return;
//	}
//	if (navigator.appVersion.indexOf("Mac",0) != -1) {
//	   winCalendar = window.open("","Calendar","width=280,height=380,resizable=yes,scrollbars=no");
//	  } else {
//	   winCalendar = window.open("","Calendar","width=280,height=470,resizable=yes,scrollbars=no");
//  	}
//	GenerateCalendar(winCalendar,intSelValue(selYear),intSelIndex(selMonth)+1,strInOut)
//	winCalendar.focus();
//}


//Form Validator
function validateCheckReservationForm(frm) {
      // Get the current date without any time portion
      dtmCurrentDate = TodayDate;
	var intMonth = dtmCurrentDate.getMonth() + 1;
	var intDay = dtmCurrentDate.getDate();
	var intYear = dtmCurrentDate.getFullYear();
      dtmCurrentDate = new Date(intYear, intMonth-1, intDay);
      // Get Arrival Date
	intMonth = intSelIndex(frm.ArrivalMonth) + 1;
	intDay = intSelValue(frm.ArrivalDay);
	intYear = intSelValue(frm.ArrivalYear);
	var dtmInDate = new Date(intYear,intMonth-1,intDay);
      // Get Departure Date
	intMonth = intSelIndex(frm.DepartureMonth) + 1;
	intDay = intSelValue(frm.DepartureDay);
	intYear = intSelValue(frm.DepartureYear);
	var dtmOutDate = new Date(intYear,intMonth-1,intDay);
      // Check for Arrival before today
      if (dtmInDate.getTime() < dtmCurrentDate.getTime()) {
      	alert (dtmInDate+"<<<<"+dtmCurrentDate);
        alert("You may not make an enquiry for a date that has already occurred.");
        return false;
      }
      // Check for a Departure date that is not later than the arrival date
      if (dtmInDate.getTime() >= dtmOutDate.getTime()) {
        alert("The Conference End Date must me greater than the Conference Start Date.");
        return false;
      }
      // Check for a Last Minute Arrival
      if (dtmInDate.getTime() < (dtmCurrentDate.getTime() + 3*TIME_UNITS_PER_DAY)) {
        alert("This is a last minute request. We are sorry but we don't process last minute requests.\nPlease Contact Us.");
        return false;
      }
      // Check for a stay that is less than 3 days.
	//if (Math.round((dtmOutDate.getTime() - dtmInDate.getTime()) / TIME_UNITS_PER_DAY) < 3) {
	//alert("You are making an one or two days enquiry.\nWe are sorry but we don't process one or two-night requests.");
	//return false;
	//}
      if (!form_ok(frm)) {
        return false;
      }

      // Get Arrival Date
      intMonth = intSelIndex(frm.ArrivalMonth) + 1;
      intDay = intSelValue(frm.ArrivalDay);
      intYear = intSelValue(frm.ArrivalYear);
      var ardate = intMonth +"/"+intDay+"/"+intYear;
      // Populate hidden fields
      frm.armonth.value=intMonth;
      frm.arday.value=intDay;
      frm.aryear.value=intYear;
      // Get Departure Date
      intMonth = intSelIndex(frm.DepartureMonth)+1;
      intDay = intSelValue(frm.DepartureDay);
      intYear = intSelValue(frm.DepartureYear);
      var depdate = intMonth +"/"+intDay+"/"+intYear;
      // Populate hidden fields
      frm.depmonth.value=intMonth;
      frm.depday.value=intDay;
      frm.depyear.value=intYear;

	return true;
}


    
function blnBrowserIsSupported() {
    	// Get the version of the browser
    	version = parseFloat(navigator.appVersion);
    	if ( ( version >= 2.0 ) && ( version < 2.1 ) && ( navigator.appName.indexOf( "Netscape" ) != -1 ) ) {
    		return false;
    	   } else {
    		return true;
    	}
}
    
    
function intDaysInMonth(intMonth, intYear) {
    
    	// Assume 31
    	var intDays=31
    
    	// expect Feb. (of course)
    	if (intMonth==2) {
    		if (blnIsLeapYear(intYear)) intDays=29; else intDays=28;
    	   } else {
    		if (intMonth==4 || intMonth==6 || intMonth==9 || intMonth==11) {
    			intDays=30;
    		}
    	}
    	return intDays;
}
    
    
    // Return true if year is a leap year (good till 2100)
    
function blnIsLeapYear(intYear) {
    	return intYear%4 == 0 ? true : false;
}
    
    
    // Get the integer value of the passed selections index
    
function intSelIndex(selChoice) {
    	return selChoice.selectedIndex;
}
    
    
    // Set a selection to a specific value, return true if successful.
    
function blnSelIndexSet(selChoice, intValue) {
    	if (intValue >= 0 && intValue < selChoice.length) {
    	   selChoice.selectedIndex = intValue;
    	   return true;
    	  } else {
    	   return false;
          }
    	return false;
}
    
    
    // Get the integer value of the passed selection
    
function intSelValue(selChoice) {
    	return parseInt(strSelValue(selChoice));
}
    
    
    // Get the string value of the passed selection
    
function strSelValue(selChoice) {
    	return selChoice.options[selChoice.selectedIndex].value;
}
    
    
    // Set a selection to a specific value, return true if successful.
    
function blnSelValueSet(selChoice, intValue) {
    
    var intIndex;
    
    	var intOptionCount = selChoice.length;
    
    	for (intIndex = 0 ; intIndex < intOptionCount ; intIndex++) {
    	   if (parseInt(selChoice.options[intIndex].value) == intValue) {
    		selChoice.selectedIndex = intIndex;
    		return true;
    	   }
    	}
    	return false;
}
    
    
    /*
       Process date changes
    */
     
    // This changes the day of the month to the last day if it is past the end.
    
function blnDateFixDay(selMonth, selDay, selYear) {
    
    	var intMonth = intSelIndex(selMonth) + 1;
    	var intDay = intSelValue(selDay);
    	var intYear = intSelValue(selYear);
    
    	var intMonthDays = intDaysInMonth(intMonth, intYear);
    
    	if (intDay > intMonthDays) {
    	   blnSelValueSet(selDay, intMonthDays);
    	   return true;
    	 } else {
    	   return false;
    	}
}
        
   
    
function InDateChange(selInMonth, selInDay, selInYear, selOutMonth, selOutDay, selOutYear) {

    	blnDateFixDay(selInMonth, selInDay, selInYear);
    
      	theDate = TodayDate;
    
    	var currentMonth = (theDate.getMonth()) + 1;
      	var currentDay = theDate.getDate();
      	var currentYear = theDate.getYear();

    	// Get numeric dates
    	var intInMonth = intSelIndex(selInMonth) + 1;
     	var intInDay = intSelValue(selInDay);
      	var intInYear = intSelValue(selInYear);
    	var intOutMonth = intSelIndex(selOutMonth) + 1;
    	var intOutDay = intSelValue(selOutDay);
    	var intOutYear = intSelValue(selOutYear);
       
    	// Make sure OutDate > InDate
    	var theDate = TodayDate;
    	var dtmInDate = new Date(intInYear,intInMonth-1,intInDay);
    	var dtmOutDate = new Date(intOutYear,intOutMonth-1,intOutDay);
    	var dtmCurDate = new Date(currentYear,currentMonth-1,currentDay);
       
    	if (dtmInDate.getTime() >= dtmOutDate.getTime()) {
    	   dtmOutDate.setTime(dtmInDate.getTime()+TIME_UNITS_PER_DAY+(TIME_UNITS_PER_DAY/2));
    	   intOutMonth = dtmOutDate.getMonth() + 1;
    	   intOutDay = dtmOutDate.getDate();
    	   intOutYear = dtmOutDate.getFullYear();
    	   blnSelIndexSet(selOutMonth, intOutMonth-1);
    	   blnSelValueSet(selOutDay, intOutDay);
    	   if (! blnSelValueSet(selOutYear, intOutYear)) {
    		blnSelIndexSet(selOutMonth, intInMonth-1);
    		blnSelValueSet(selOutDay, intInDay);
    		blnSelValueSet(selOutYear, intInYear);
    	   }
    	}
}
    
    
function OutDateChange(selInMonth, selInDay, selInYear, selOutMonth, selOutDay, selOutYear) {
    	blnDateFixDay(selOutMonth, selOutDay, selOutYear);
}

-->
