<!--
// style property and value, apply the style.
// args:
//  t - type of tag to check for (e.g., SPAN)
//  c - class name
//  p - CSS property
//  v - value
var ie = (document.all) ? true : false;

function switch_class(t,c,p,v){
    var elements;
    if(t == '*') {
        // '*' not supported by IE/Win 5.5 and below
        elements = (ie) ? document.all : document.getElementsByTagName('*');
    } else {
        elements = document.getElementsByTagName(t);
    }
    for(var i = 0; i < elements.length; i++){
        var node = elements.item(i);
        found = false;
        var j = 0;
        while(j < node.attributes.length && !found) {
            if(node.attributes.item(j).nodeName == 'class') {
                if(node.attributes.item(j).nodeValue == c) {
                    node.attributes.item(j).nodeValue  = v;
                }
                found=true;
            }
            j++;
        }
    }
}

function switch_request(request_id)
{
	if(request_id == 1)     {
		switch_class('table','table_invisible','display','table_visible');
	}
	else {
		switch_class('table','table_visible','display','table_invisible');
	}
}

function validate_email(theField) {
	var errorChars = ' :;`"+!#$%^&*(){}[]|/'




	for (x=0; x<errorChars.length; x++) {
		if (theField.value.indexOf(errorChars.substring(x,x+1)) != -1) { return false; }
	}
	if (theField.value.indexOf('@') == -1) { return false; }
	if (theField.value.indexOf('.') == -1) { return false; }
	else { return true; }


}

function calculate_date_diff(f, calc_today) { 

	var arrival = new Date(f.year_start.options[f.year_start.selectedIndex].value + '/' + 
					   f.month_start.options[f.month_start.selectedIndex].value + '/' +
					   f.day_start.options[f.day_start.selectedIndex].value);
	var departure = new Date(f.year_end.options[f.year_end.selectedIndex].value + '/' + 
					   f.month_end.options[f.month_end.selectedIndex].value + '/' +
					   f.day_end.options[f.day_end.selectedIndex].value);
					   

	//Set 1 day in milliseconds
	var one_day=1000*60*60*24

	if(calc_today) { 
		var today = new Date();
		diff = Math.ceil((arrival.getTime()-today.getTime())/(one_day));		
	}
	else { 
		diff = Math.ceil((departure.getTime()-arrival.getTime())/(one_day));
	}
//Calculate difference btw the two dates, and convert to days


	return diff;

}

function calculate_num_nights(f) { 

	val = calculate_date_diff(f, 0);
	f.num_nights.value = val;
}

function validate_form(f)
{
	err = '';
	

	
	if(f.full_name.value == '')
	{
		err = err + ERR_FULLNAME;
		f.full_name.focus();
	}
	
	if(f.phone.value.length < 7)
	{
		err = err + ERR_PHONE;
		f.full_name.focus();
	}

	if(f.email.value == '')
	{
		if(err != '')
			f.email.focus();
			
		err = err + ERR_EMAIL_EMPTY;
	}
	else{
		if(!validate_email(f.email)) { 
			err = err + ERR_EMAIL_INVALID;
		}
	}
	
	//reservation
	if(f.request_type.options[f.request_type.selectedIndex].value == 1) { 
		//make sure it's passed today 
		diff = calculate_date_diff(f, 1);
		if(diff < 0) { 
			err = err + ERR_DATE_PAST;
		}

		//make sure departure is > arrival		
		diff = calculate_date_diff(f, 0);
		
		if(diff <= 0) { 
			err = err + ERR_DATE1_DATE2;
		}


		if(getCheckedValue(f.ac_or_fan) == '') { 
			err = err + ERR_AC_OR_FAN;
		}

	}
	else { 
		//needs a comment if it's not to reserve
		if(f.body.value == '')
		{
			if(err != '')
				f.body.focus();
				
			err = err + ERR_COMMENT;
		}	
	}
	

	if(err)
	{
		err = ERR_INTRO + err;
		window.alert(err);
		return false;
	}
	else
		return true;
		
}

function getCheckedValue(radioObj) {
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}

//-->
