// JavaScript Document
// Common Validation Functions

// Function Returns True if the String has a value
// Other Wise Returns False
function BlankField( stringValue ){
	if( stringValue.replace(/(^\s+)|(\s+$)/g, '').length < 1 )
		return true;
	else
		return false;
}

// Uses Regular Expressions to check for a valid E-mail Address
// If valid returns true
// Other Wise it returns false
function ValidEmail(strValue){
    var valid = true;
    var regExp = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/;
    var regExp2 = /(\s+)|(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/;

    if ( (strValue.search(regExp)) == -1 || strValue.search(regExp2) != -1)
            valid = false;

    return valid;
}

function validateForm( frm ) {

	var delimiter = "/";
	var returnValue = false;
/*
	// values from the form
    var noa = frm.noa.value;  // Number of Adults
	var noc = frm.noc.value;  // Number of Children
	
	if (noc == "") {
		noc = 0;	
	}
*/
	var date = new Date();
	var d  = date.getDate();
	var day = (d < 10) ? '0' + d : d;
	var m = date.getMonth() + 1;
	var month = (m < 10) ? '0' + m : m;
	var yy = date.getYear();
	var year = (yy < 1000) ? yy + 1900 : yy;

	var today = month + "/" + day + "/" + year;
	today = today.toString();

	if ( BlankField( frm.arrive.value ) ) {
		alert ( "Please enter your arrival date." );
		frm.arrive.focus();
		return false;
	} else if ( BlankField( frm.depart.value ) ) {
		alert ( "Please enter your departure." );
		frm.depart.focus();
		return false;
	} else if (frm.depart.value.length < 10 || frm.depart.value.length < 10) 	{
		alert("Please enter the date in the format: mm/dd/yyyy");
		return false;
	} else if (frm.arrive.value < today ) 	{
		alert("Invalid Arrival Date");
		frm.barArrival.value = today;
		return false;		
	} else if (frm.arrive.value >= frm.depart.value) 	{
		alert("Departure Date must be post Arrival");
		return false;
	} else if ( BlankField( frm.adult.value ) ) {
		alert ( "Please enter the number of adults." );
		frm.adult.focus();	
		return false;
	} else {
		returnValue = true;
	/*	document.getElementById( "submit" ).disabled = "true";*/
	}
	
	return returnValue;


/*
    var date_arrive = frm.barArrival.value.split(delimiter);
	var date_depart = frm.barDeparture.value.split(delimiter);
	var bam = date_arrive[0]; 	// arrive month
	var bad = date_arrive[1];	// arrive day
	var bay = date_arrive[2];	// arrive year
	var bdm = date_depart[0];	// depart month
	var bdd = date_depart[1];	// depart day
	var bdy = date_depart[2];	// depart year

	// build the URL;
	var full_url = "https://reservations.synxis.com/LBE/rez.aspx?Hotel=16080&Chain=6158&checkAvailability=true"
					+ "&bam=" + bam
					+ "&bad=" + bad
					+ "&bay=" + bay
					+ "&bdm=" + bdm
					+ "&bdd=" + bdd
					+ "&bdy=" + bdy
					+ "&noa=" + noa
					+ "&noc=" + noc;

   wOptions = 'status=yes,location=yes,menubar=yes,scrollbars=yes,resizable=yes,toolbar=yes';
   wOptions = wOptions + ',width=' + (screen.availWidth - 10).toString();
   wOptions = wOptions + ',height=' + (screen.availHeight - 192).toString();
   wOptions = wOptions + ',screenX=0,screenY=0,left=0,top=0';

    window.open(full_url,'reservations',wOptions);
	return false;
*/	
}


function displayDetails() {
	packages = document.getElementsByClassName("expandWrapper");
	details = document.getElementsByClassName("expandDetails");
	togglers = document.getElementsByClassName("expandLink");

	for ( var i=0; i<packages.length; i++ ) {
		Effect.BlindUp(details[i]);
		togglers[i].firstChild.onclick = function() {
			
			divs = this.parentNode.parentNode.getElementsByTagName("DIV");
			for ( var j=0; j<divs.length; j++ ) {
				if (divs[j].className == "expandDetails")
					Effect.BlindUpAndDown(divs[j]);
			}
	
			return false;
		}
	}
}

function displayMore() {
	packages = document.getElementsByClassName("expandWrapper");
	details = document.getElementsByClassName("expandDetails");
	togglers = document.getElementsByClassName("expandLink");

	for ( var i=0; i<packages.length; i++ ) {
		Effect.BlindUp(details[i]);
		togglers[i].firstChild.onclick = function() {
			
			divs = this.parentNode.parentNode.getElementsByTagName("DIV");
			for ( var j=0; j<divs.length; j++ ) {
				if (divs[j].className == "expandDetails")
					Effect.BlindUpAndDown(divs[j]);
			}
	
			if ( this.lastChild.nodeValue == "Read More" ) {
				this.lastChild.nodeValue = 'Close';
			}
			else {
				this.lastChild.nodeValue = 'Read More';
			}
			return false;
		}
	}
}

function WindowOnload(f) {
	var prev=window.onload;
	window.onload=function(){ if(prev)prev(); f(); }
}

function onDomReady(func) {
	var t = setInterval( function() {
		if ( typeof document.getElementsByTagName != "undefined" && typeof document.getElementById != "undefined" && ( document.getElementsByTagName( "body" )[0] != null || document.body != null ) ) {
			if ( typeof func == "function" ) {
				func();
				clearInterval(t);
			}
		}
	}, 250 );
}


/*
activateActiveX : Activates ActiveX content for Internet Explorer 6.0+ to avoid requiring a user to click before using an object

Source : <http://sixtwothree.org/blog/archives/2006/05/20/activateactivex-11/>
*/

function activateActiveX() {
	if ( !document.getElementsByTagName || !document.body.outerHTML || !document.compatMode ) return false;
	var elems = new Array( "object", "applet" );
	for ( i = 0, j = elems.length; i < j; i++ ) {
		var objects = document.getElementsByTagName(elems[i]);
		for ( k = 0, l = objects.length; k < l; k++ ) {
			var params = "";
			for ( m = 0, n = objects[k].childNodes.length; m < n; m++ ) {
				params += objects[k].childNodes[m].outerHTML;
			}
			objects[k].outerHTML = objects[k].outerHTML.replace( "</" + elems[i].toUpperCase() + ">", params + "</" + elems[i].toUpperCase() + ">" );
		}
	}
}

onDomReady(activateActiveX);
