function ValidateAddSubscriberForm()
{
	var emailEl = getEl('add_subscriber_email');
	
	var errorsArr = new Array();
	
	if (emailEl.value == ""){
		errorsArr.push("Please provide the email address");
	}
	else{
		if (echeck(emailEl.value) == false){
			errorsArr.push("The email address is invalid.  Please enter a valid email address");
		}
	}
	
	if (errorsArr.length > 0)
	{
		getEl('error_box').style.display = 'block';
		getEl('error_box').innerHTML = errorsArr.join("<br />");
		return false;
	}
	return true;
}

function ValidateAddUserForm()
{
	var loginEl = getEl('add_user_login');
	var passwordEl = getEl('add_user_password');
	var emailEl = getEl('add_user_email');
	
	var errorsArr = new Array();
	
	if (loginEl.value.replace(/ /gi,"").length == 0)
	{
		errorsArr.push('Login field is empty');
	}
	if (passwordEl.value.length == 0)
	{
		errorsArr.push('Password field is empty');
	}
	
	if (emailEl.value == ""){
		errorsArr.push("Please provide the email address");
	}
	else{
		if (echeck(emailEl.value) == false){
			errorsArr.push("The email address is invalid.  Please enter a valid email address");
		}
	}
	
	if (errorsArr.length > 0)
	{
		getEl('error_box').style.display = 'block';
		getEl('error_box').innerHTML = errorsArr.join("<br />");
		return false;
	}
	return true;
}

function ValidateUpdateUserForm()
{
	var loginEl = getEl('update_user_login');
	var passwordEl = getEl('update_user_password');
	var emailEl = getEl('update_user_email');
	
	var errorsArr = new Array();
	
	if (loginEl.value.replace(/ /gi,"").length == 0)
	{
		errorsArr.push('Login field is empty');
	}
	if (passwordEl.value.length == 0)
	{
		errorsArr.push('Password field is empty');
	}
	
	if (emailEl.value == ""){
		errorsArr.push("Please provide the email address");
	}
	else{
		if (echeck(emailEl.value) == false){
			errorsArr.push("The email address is invalid.  Please enter a valid email address");
		}
	}
	
	if (errorsArr.length > 0)
	{
		getEl('error_box').style.display = 'block';
		getEl('error_box').innerHTML = errorsArr.join("<br />");
		return false;
	}
	return true;
}

function getEl(id)
{
	if (!id)
		return false;
	var element = document.getElementById(id); 
	if (undefined != element)
		return element;
	return false;
}

function ValidateQuote(frmQuote){
	var strMsg;
	
	if (frmQuote.name.value == ""){
		strMsg = "Please provide your name.";
		alert(strMsg);
		frmQuote.name.focus();
		return false;
	}
	if (frmQuote.companyname.value == ""){
		strMsg = "Please provide the company name.";
		alert(strMsg);
		frmQuote.companyname.focus();
		return false;
	}
	if (frmQuote.address.value == ""){
		strMsg = "Please provide the address";
		alert(strMsg);
		frmQuote.address.focus();
		return false;
	}
	if (frmQuote.city.value == ""){
		strMsg = "Please provide the city.";
		alert(strMsg);
		frmQuote.city.focus();
		return false;
	}
	if (frmQuote.provincestate.value == ""){
		strMsg = "Please provide the province or state.";
		alert(strMsg);
		frmQuote.provincestate.focus();
		return false;
	}
	if (frmQuote.country.value == ""){
		strMsg = "Please provide the country.";
		alert(strMsg);
		frmQuote.country.focus();
		return false;
	}
	if (frmQuote.postalzip.value == ""){
		strMsg = "Please provide the postal or zip code.";
		alert(strMsg);
		frmQuote.postalzip.focus();
		return false;
	}
	if (frmQuote.tel.value == ""){
		strMsg = "Please provide the telephone number.";
		alert(strMsg);
		frmQuote.tel.focus();
		return false;
	}
	if (frmQuote.fax.value == ""){
		strMsg = "Please provide the fax number.";
		alert(strMsg);
		frmQuote.fax.focus();
		return false;
	}
	if (frmQuote.email.value == ""){
		strMsg = "Please provide the email address.";
		alert(strMsg);
		frmQuote.email.focus();
		return false;
	}
	else{
		if (echeck(frmQuote.email.value)==false){
			strMsg = "The email address is invalid.  Please enter a valid email address.";
			alert(strMsg);
			frmQuote.email.focus();
			return false;
		}
	}
	if (frmQuote.title.value == ""){
		strMsg = "Please provide the title of the conference / training.";
		alert(strMsg);
		frmQuote.title.focus();
		return false;
	}
	if (frmQuote.attendees.value == ""){
		strMsg = "Please provide the number of attendees.";
		alert(strMsg);
		frmQuote.attendees.focus();
		return false;
	}
	else{
		if (IsNumeric(frmQuote.attendees.value) == false){
			strMsg = "The number of attendees must be numeric.";
			alert(strMsg);
			frmQuote.attendees.value = "";
			frmQuote.attendees.focus();
			return false;
		}
	}
	if (frmQuote.arrival.value == ""){
		strMsg = "Please provide an arrival date.";
		alert(strMsg);
		frmQuote.arrival.focus();
		return false;
	}
	else{
		if (isDate(frmQuote.arrival.value) == false){
			strMsg = "Please provide a valid date (mm/dd/yyyy).";
			alert(strMsg);
			frmQuote.arrival.focus();
			return false;
		}
		else{
			//check to see if the arrival date is less than today's date
			var dtToday = new Date();
			if (Date.parse(frmQuote.arrival.value) < Date.parse(dtToday)){
				strMsg = "The arrival date is less than today's date.";
				alert(strMsg);
				frmQuote.arrival.focus();
				return false;
			}
		}
	}
	if (frmQuote.departure.value == ""){
		strMsg = "Please provide a departure date.";
		alert(strMsg);
		frmQuote.departure.focus();
		return false;
	}
	else{
		if (isDate(frmQuote.departure.value) == false){
			strMsg = "Please provide a valid date (mm/dd/yyyy).";
			alert(strMsg);
			frmQuote.departure.focus();
			return false;
		}
		else{
			//check to see if the departure date is less than today's date
			var dtToday = new Date();
			if (Date.parse(frmQuote.departure.value) < Date.parse(dtToday)){
				strMsg = "The departure date is less than today's date.";
				alert(strMsg);
				frmQuote.departure.focus();
				return false;
			}
			if (Date.parse(frmQuote.arrival.value) > Date.parse(frmQuote.departure.value)){
				strMsg = "The departure date is less than the arrival date.";
				alert(strMsg);
				frmQuote.departure.focus();
				return false;
			}
		}
	}
	if (frmQuote.flexible[0].checked == false && frmQuote.flexible[1].checked == false ){
		strMsg = "Please identify if the dates are flexible.";
		alert(strMsg);
		frmQuote.flexible[0].focus();
		return false;
	}
	if (frmQuote.single.value == ""){
		strMsg = "Please provide the number of single rooms.";
		alert(strMsg);
		frmQuote.single.focus();
		return false;
	}
	else{
		if (IsNumeric(frmQuote.single.value) == false){
			strMsg = "The number of single rooms must be numeric.";
			alert(strMsg);
			frmQuote.single.focus();
			return false;
		}
	}
	if (frmQuote.double.value == ""){
		strMsg = "Please provide the number of double rooms.";
		alert(strMsg);
		frmQuote.double.focus();
		return false;
	}
	else{
		if (IsNumeric(frmQuote.double.value) == false){
			strMsg = "The number of double rooms must be numeric.";
			alert(strMsg);
			frmQuote.double.focus();
			return false;
		}
	}
	if (frmQuote.suites.value == ""){
		strMsg = "Please provide the number of suites.";
		alert(strMsg);
		frmQuote.suites.focus();
		return false;
	}
	else{
		if (IsNumeric(frmQuote.suites.value) == false){
			strMsg = "The number of suites must be numeric.";
			alert(strMsg);
			frmQuote.suites.value = "";
			frmQuote.suites.focus();
			return false;
		}
	}
	
	if (frmQuote.mainmeetingroom[0].checked == false && frmQuote.mainmeetingroom[1].checked == false ){
		strMsg = "Please identify if there is a requirement for a main meeting room.";
		alert(strMsg);
		frmQuote.mainmeetingroom[0].focus();
		return false;
	}
	
	//if they choose a main meeting room then the following needs to be validated
	if (frmQuote.mainmeetingroom[0].checked == true){
		if (frmQuote.peoplemeet.value == ""){
			strMsg = "Please provide the number of people.";
			alert(strMsg);
			frmQuote.peoplemeet.focus();
			return false;
		}
		else{
			if (IsNumeric(frmQuote.peoplemeet.value) == false){
				strMsg = "The number of people must be numeric.";
				alert(strMsg);
				frmQuote.peoplemeet.focus();
				return false;
			}
		}

		if (frmQuote.mainmeetroomtype.selectedIndex < 0){
			strMsg = "Please select a setup type.";
			alert(strMsg);
			frmQuote.mainmeetroomtype.focus();
			return false;
		}
		if (frmQuote.mainstartdate.value == ""){
			strMsg = "Please provide a start date.";
			alert(strMsg);
			frmQuote.mainstartdate.focus();
			return false;
		}
		else{
			if (isDate(frmQuote.mainstartdate.value) == false){
				strMsg = "Please provide a valid date (mm/dd/yyyy).";
				alert(strMsg);
				frmQuote.mainstartdate.focus();
				return false;
			}
			else{
				//check to see if the start date is less than today's date
				var dtToday = new Date();
				if (Date.parse(frmQuote.mainstartdate.value) < Date.parse(dtToday)){
					strMsg = "The start date is less than today's date.";
					alert(strMsg);
					frmQuote.mainstartdate.focus();
					return false;
				}
			}
		}
		if (frmQuote.mainenddate.value == ""){
			strMsg = "Please provide an end date.";
			alert(strMsg);
			frmQuote.mainenddate.focus();
			return false;
		}
		else{
			if (isDate(frmQuote.mainenddate.value) == false){
				strMsg = "Please provide a valid date (mm/dd/yyyy).";
				alert(strMsg);
				frmQuote.mainenddate.focus();
				return false;
			}
			else{
				//check to see if the departure date is less than today's date
				var dtToday = new Date();
				if (Date.parse(frmQuote.mainenddate.value) < Date.parse(dtToday)){
					strMsg = "The end date is less than today's date.";
					alert(strMsg);
					frmQuote.mainenddate.focus();
					return false;
				}
				if (Date.parse(frmQuote.mainstartdate.value) > Date.parse(frmQuote.mainenddate.value)){
					strMsg = "The end date is less than the start date.";
					alert(strMsg);
					frmQuote.mainenddate.focus();
					return false;
				}
			}
		}
		if (frmQuote.maindeparture.value == ""){
			strMsg = "Please provide a departure date.";
			alert(strMsg);
			frmQuote.maindeparture.focus();
			return false;
		}
		else{
			if (isDate(frmQuote.maindeparture.value) == false){
				strMsg = "Please provide a valid date (mm/dd/yyyy).";
				alert(strMsg);
				frmQuote.maindeparture.focus();
				return false;
			}
			else{
				//check to see if the start date is less than today's date
				var dtToday = new Date();
				if (Date.parse(frmQuote.maindeparture.value) < Date.parse(dtToday)){
					strMsg = "The departure date is less than today's date.";
					alert(strMsg);
					frmQuote.maindeparture.focus();
					return false;
				}
			}
		}
	}
	
	if (frmQuote.breakoutroom[0].checked == false && frmQuote.breakoutroom[1].checked == false ){
		strMsg = "Please identify if there is a requirement for any breakout rooms.";
		alert(strMsg);
		frmQuote.breakoutroom[0].focus();
		return false;
	}
	
	//if they select breakout rooms then the following needs to be validated
	if (frmQuote.breakoutroom[0].checked == true){
		if (frmQuote.numbreakoutrooms.value == ""){
			strMsg = "Please provide the number of breakout rooms.";
			alert(strMsg);
			frmQuote.numbreakoutrooms.focus();
			return false;
		}
		else{
			if (IsNumeric(frmQuote.numbreakoutrooms.value) == false){
				strMsg = "The number of breakout rooms must be numeric.";
				alert(strMsg);
				frmQuote.numbreakoutrooms.focus();
				return false;
			}
		}
		if (frmQuote.breakoutroomtype.selectedIndex < 0){
			strMsg = "Please select a setup type.";
			alert(strMsg);
			frmQuote.breakoutroomtype.focus();
			return false;
		}
		if (frmQuote.breakoutstartdate.value == ""){
			strMsg = "Please provide a start date.";
			alert(strMsg);
			frmQuote.breakoutstartdate.focus();
			return false;
		}
		else{
			if (isDate(frmQuote.breakoutstartdate.value) == false){
				strMsg = "Please provide a valid date (mm/dd/yyyy).";
				alert(strMsg);
				frmQuote.breakoutstartdate.focus();
				return false;
			}
			else{
				//check to see if the start date is less than today's date
				var dtToday = new Date();
				if (Date.parse(frmQuote.breakoutstartdate.value) < Date.parse(dtToday)){
					strMsg = "The start date is less than today's date.";
					alert(strMsg);
					frmQuote.breakoutstartdate.focus();
					return false;
				}
			}
		}
		if (frmQuote.breakoutenddate.value == ""){
			strMsg = "Please provide a end date.";
			alert(strMsg);
			frmQuote.breakoutenddate.focus();
			return false;
		}
		else{
			if (isDate(frmQuote.breakoutenddate.value) == false){
				strMsg = "Please provide a valid date (mm/dd/yyyy).";
				alert(strMsg);
				frmQuote.breakoutenddate.focus();
				return false;
			}
			else{
				//check to see if the end date is less than today's date
				var dtToday = new Date();
				if (Date.parse(frmQuote.breakoutenddate.value) < Date.parse(dtToday)){
					strMsg = "The end date is less than today's date.";
					alert(strMsg);
					frmQuote.breakoutenddate.focus();
					return false;
				}
				if (Date.parse(frmQuote.breakoutstartdate.value) > Date.parse(frmQuote.breakoutenddate.value)){
					strMsg = "The end date is less than the start date.";
					alert(strMsg);
					frmQuote.breakoutenddate.focus();
					return false;
				}
			}
		}
		if (frmQuote.avgpeoplebreakout.value == ""){
			strMsg = "Please provide the average number of people.";
			alert(strMsg);
			frmQuote.avgpeoplebreakout.focus();
			return false;
		}
		else{
			if (IsNumeric(frmQuote.avgpeoplebreakout.value) == false){
				strMsg = "The average number of people must be numeric.";
				alert(strMsg);
				frmQuote.avgpeoplebreakout.focus();
				return false;
			}
		}
	}
	
	//if either meetings rooms are selected then the needs comments need to be filled in
	if (frmQuote.breakoutroom[0].checked == true || frmQuote.mainmeetingroom[0].checked == true ){
		if (frmQuote.needs.value == ""){
			strMsg = "Please describe any special needs for these meetings rooms.";
			alert(strMsg);
			frmQuote.needs.focus();
			return false;
		}
	}
	if (frmQuote.foodandbev[0].checked == false && frmQuote.foodandbev[1].checked == false && frmQuote.foodandbev[2].checked == false && frmQuote.foodandbev[3].checked == false){
		strMsg = "Please check all food and beverages that apply.";
		alert(strMsg);
		frmQuote.foodandbev[0].focus();
		return false;
	}
	if (frmQuote.foodneeds.value == ""){
		strMsg = "Please provide any other information regarding food and beverages.";
		alert(strMsg);
		frmQuote.foodneeds.focus();
		return false;
	}
}

function echeck(str) {
	var at = "@";
	var dot = ".";
	var lat = str.indexOf(at);
	var lstr = str.length;
	var ldot = str.indexOf(dot);
	
	if (str.indexOf(at)==-1){
	   return false;
	}

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
	   return false;
	}

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
	    return false;
	}

	 if (str.indexOf(at,(lat+1))!=-1){
	    return false;
	 }

	 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
	    return false;
	 }

	 if (str.indexOf(dot,(lat+2))==-1){
	    return false;
	 }
		
	 if (str.indexOf(" ")!=-1){
	    return false;
	 }
	 return true;				
}

function IsNumeric(strString){
   var strValidChars = "0123456789.-";
   var strChar;
   var blnResult = true;

   if (strString.length == 0) return false;

   //  test strString consists of valid characters listed above
   for (i = 0; i < strString.length && blnResult == true; i++){
      strChar = strString.charAt(i);
      if (strValidChars.indexOf(strChar) == -1)
      {
         blnResult = false;
      }
   }
   return blnResult;
}


var dtCh= "/";
var minYear = 1900;
var maxYear = 2100;

function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag){
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}

function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   } 
   return this;
}

function isDate(dtStr){
	var daysInMonth = DaysArray(12);
	var pos1 = dtStr.indexOf(dtCh);
	var pos2 = dtStr.indexOf(dtCh,pos1+1);
	var strMonth = dtStr.substring(0,pos1);
	var strDay = dtStr.substring(pos1+1,pos2);
	var strYear = dtStr.substring(pos2+1);
	strYr = strYear;
	
	if (strDay.charAt(0)=="0" && strDay.length>1){
		strDay=strDay.substring(1);
	}
	
	if (strMonth.charAt(0)=="0" && strMonth.length>1){
		strMonth=strMonth.substring(1);
	}
	
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1){
			strYr=strYr.substring(1);
		}
	}
	
	month = parseInt(strMonth);
	day = parseInt(strDay);
	year = parseInt(strYr);
	
	if (pos1==-1 || pos2==-1){
		return false;
	}
	if (strMonth.length<1 || month<1 || month>12){
		return false;
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		return false;
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		return false;
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
		return false;
	}
	return true;
}


function checkSubscribeFields()
{
	var nameEl = document.getElementById('name');
	var emailEl = document.getElementById('email');
	
	var errorFlag = false;
	
	if (nameEl.value.replace(/ /gi, "").length == 0 || nameEl.value == "Please enter your name")
	{
		nameEl.value = "Please enter your name";
		nameEl.setAttribute("class", "errorFields");
		nameEl.setAttribute("className", "errorFields");
		
		errorFlag = true;
	}
	
	if (emailEl.value.replace(/ /gi, "").length == 0 || !emailEl.value.match(/@/))
	{
		emailEl.value = "Please enter your email";
		emailEl.setAttribute("class", "errorFields");
		emailEl.setAttribute("className", "errorFields");
		
		errorFlag = true;
	}
	
	if (errorFlag == true)
	{
		return false;
	}
	
	return true;
}

function clearErrorMsg(obj)
{
	obj.setAttribute("class", "");
	obj.setAttribute("className", "");
	
	if (obj.value == "Please enter your email" || obj.value == "Please enter your name")
	{
		obj.value = "";
	}
}
function menuAnimation(){
	var container = document.getElementById('navigation-column'); 
	var menuItems = container.getElementsByTagName('li');
	
	var length = menuItems.length;
	var activeClass = 'grey-short';
	var centerClass = 'red';
	var mhover = function(n){
		reset();
		if(n - 1 >= 0 && n - 1 < length) menuItems[n - 1].className = activeClass;
		menuItems[n].className = centerClass;
		if(n + 1 >= 0 && n + 1 < length) menuItems[n + 1].className = activeClass;
	}
	var reset = function(e){
		for(var i in menuItems)
		{
			menuItems[i].className = '';
		}
	}
	for(var i = 0; i < length; i++)
	{
		(function(){
			var n = i;
			menuItems[n].onmouseover = function(){mhover(n)};
			menuItems[n].onmouseout = reset;
		})();
	}
}
function initPage () {
	var fMin = document.getElementById("font-min");
	var fNormal = document.getElementById("font-normal");
	var fMax = document.getElementById("font-max");
	var fSize = 64;
	
	var body = document.getElementsByTagName("body")[0];
	body.style.fontSize = "100%";

	fNormal.onclick = function (){
		body.style.fontSize = "100%";
		return false;
	}
	fMin.onclick = function (){
		fSize = body.style.fontSize.replace("%","");
		fSize = parseInt(fSize) - 10;
		if (fSize <= 50) fSize = 50;  
		body.style.fontSize = fSize+"%";
		return false;
	}
	fMax.onclick = function (){
		fSize = body.style.fontSize.replace("%","");
		fSize = parseInt(fSize) + 10;
		if (fSize >= 140) fSize = 140; 
		body.style.fontSize = fSize+"%";
		return false;
	}
	menuAnimation();
}

if (window.addEventListener)
	window.addEventListener("load", initPage, false);
else if (window.attachEvent)
	window.attachEvent("onload", initPage);
