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

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)
                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_selected(item, msg) {
        if (item.selectedIndex == 0) {
                alert(msg)
                return false
        }
		
		return true;
}

function is_more_than(item, val, msg) {
        if (parseInt(item.value) < val) {
                alert(msg);
                item.value = ""
                item.focus();
                return false;
        }
        return true
}

function form_ok(f)
{
        if  ( 
//            is_not_empty(f.Minimum_Budget_in_dollars, "Minimum Budget") &&
//            is_number(f.Minimum_Budget_in_dollars, "Minimum Budget") &&
//            is_more_than(f.Minimum_Budget_in_dollars, 50, "Sorry, we don't accept requests with minimum budget less than $50") &&
//            is_not_empty(f.Maximum_Budget_in_dollars, "Maximum Budget") &&
//            is_number(f.Maximum_Budget_in_dollars, "Maximum Budget") &&
//            is_more_than(f.Maximum_Budget_in_dollars, parseInt(f.Minimum_Budget_in_dollars.value), "The maximum budget must be greater than the minimum") &&
            is_selected(f.Accomodation_Type, "Please select the type of accommodation") && is_not_empty(f.Name, "name") && is_email(f.Email))
                return true

        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;
var TodayDate = new Date(2004,8,30)

/*
   Utility Routines
*/

// This checks to see if the browser is supported.
// We omit Netscape 2.0x since the "select" object's "options" array properties don't work.

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;
	}
}


/*
   Calendar Creation/Updates
*/






var TIME_UNITS_PER_DAY = 86400000;
	
    //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("You may not request a reservation 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 Departure Date must me greater than the Arrival 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\
// You cannot send it via this form.\n For sending a last minute request please advise the 'Last Minute Requests' link.");
//        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("We are sorry but we don't process one or two-night accommodation requests.\nHowever if you would like to make such a reservation please advise the 'One or Two Nights Reservation' link.");
    //    return false;
    //  }
        if (!form_ok(frm)) {
        	return false;
        }

      // Get Arrival Date
      intMonth = intSelIndex(frm.ArrivalMonth) + 1;
      intDay = intSelValue(frm.ArrivalDay);
      intYear = intSelValue(frm.ArrivalYear);
      frm.ArrivalMonth.value=astrMonthName[intMonth];
      frm.ArrivalDay.value=intDay;
      frm.ArrivalYear.value=intYear;
      // Get Departure Date
      intMonth = intSelIndex(frm.DepartureMonth) + 1;
      intDay = intSelValue(frm.DepartureDay);
      intYear = intSelValue(frm.DepartureYear);
      frm.DepartureMonth.value=astrMonthName[intMonth];
      frm.DepartureDay.value=intDay;
      frm.DepartureYear.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);
}

-->
