window.onload=init;

var mainContainer = document.getElementById("mainContainer");
var btnSubmit = document.getElementById("btnSubmit");
var menuNav = document.getElementById("menuNav");
var form = document.forms[0];
var formIsValid=true;

function init() {
	if (document.getElementById("btnSubmit"))
		document.getElementById("btnSubmit").onclick = validateForm;
	if (document.getElementById("menuNav"))
		setupMenuNav();
	if (document.getElementById("imgBtnContainer"))
		setupImageButtons();
}

function setupImageButtons() {
	var prevBtn = document.getElementById("prevBtn");
	var nextBtn = document.getElementById("nextBtn");
	prevBtn.onclick = previousImage;
	nextBtn.onclick = nextImage;
	document.onkeypress=function(e){
		var e=window.event || e
		if (e.charCode==37) previousImage;
		else if (e.charCode==39) nextImage;

	}	
}

function previousImage() {
	if (currentImageNumber==0)
		currentImageNumber=numberOfImages-1;
	else
		currentImageNumber--;
	document.getElementById("galleryImage").src=imageArray[currentImageNumber];
	document.getElementById("galleryImage").alt=eval("image" + currentImageNumber).alt;
	return false;
}

function nextImage() {
	if (currentImageNumber==numberOfImages-1)
		currentImageNumber=0;
	else
		currentImageNumber++;
	document.getElementById("galleryImage").src=imageArray[currentImageNumber];
	return false;
}


function setupMenuNav() {
	var linkArray = document.getElementById("menuNav").getElementsByTagName("a");
	for (var i=0; i<linkArray.length; i++) {
		linkArray[i].onclick = showMenuSection;
		linkArray[i].section = linkArray[i].innerHTML.toLowerCase();
	}
	if (document.images) {
		img1 = new Image(666,215); 
		img1.src="http://theparkdaledrink.com/images/brunch.jpg"; 
		img2 = new Image(666,215); 
		img2.src="http://theparkdaledrink.com/images/appetizers.jpg"; 
		img3 = new Image(666,215); 
		img3.src="http://theparkdaledrink.com/images/dinner.jpg"; 
		img4 = new Image(666,215); 
		img4.src="http://theparkdaledrink.com/images/platters.jpg";       
	}	
}

function showMenuSection() {
	var divToShow = document.getElementById(this.section);
	hide(document.getElementById("brunch"));
	hide(document.getElementById("appetizers"));
	hide(document.getElementById("dinner"));	
	hide(document.getElementById("platters"));
	show(divToShow);
	document.getElementById("menuNav").style.backgroundImage = "url(images/" + this.section + ".jpg)";
	return false;
	//$(this.section).appear();

	//new Effect.toggle(this.section,'appear');
}

//Turn formIsValid to false only if invalidity shows up.  Otherwise, keep it true.
function highlightRow2(row, rowIsValid, optionalLabel, optionalInput) {
	var label = row.getElementsByTagName("label")[0];
	var input = row.getElementsByTagName("input")[0];
	
	//Dropdown case
	if (row.getElementsByTagName("input").length==0)
		input = row.getElementsByTagName("select")[0]
	if (row.getElementsByTagName("label").length==0)
		label = row.getElementsByTagName("p")[0];

	if (optionalLabel) {
		label=optionalLabel;
		input=optionalInput;
	}
		
	if (rowIsValid) {
		label.style.color = "#333";
		input.style.border = "1px solid #999";

	} else {
		label.style.color = "#9f0002";
		input.style.border = "1px solid #9f0002";	
		formIsValid=false;
	}
}

function highlightRow(row, rowIsValid, extraDivToColor) {
	var borderColor;
	var inputClass;
	if (rowIsValid) {
		row.style.color = "#333";
		borderColor = "1px solid #999";
		if (extraDivToColor)
			extraDivToColor.style.color = "#333";
			
		inputClass="noErrorBorder";
	} else {
		row.style.color = "#9f0002";
		borderColor = "1px solid #9f0002";
		formIsValid=false;
		if (extraDivToColor)
			extraDivToColor.style.color = "#9f0002";
			
		inputClass="errorBorder";
	}	
	
	//Color all inputs.
	var inputArray = row.getElementsByTagName("input");
	for (var i=0;i<inputArray.length;i++) {
		if (inputArray[i].type!="checkbox" && inputArray[i].type!="radio") {
			inputArray[i].style.border = borderColor;
			//assignClass(inputArray[i], inputClass);
		}
	}
	
	var textareaArray = row.getElementsByTagName("textarea");
	for (var i=0; i<textareaArray.length;i++)
			textareaArray[i].style.border = borderColor;

	//Color all non-radio & non-checkbox dropdowns
	var dropDownArray = row.getElementsByTagName("select");
	for (var i=0;i<dropDownArray.length;i++) {
		dropDownArray[i].style.border = borderColor;
		//assignClass(dropDownArray[i], inputClass);
	}
}

function assignClass(element, newClassName) {
	var currentClass = element.className;
	currentClass.replace(/ /i,"");
	currentClass.replace(/errorBorder/i,"");
	currentClass.replace(/errorColor/i,"");
	currentClass.replace(/noErrorBorder/i,"");
	currentClass.replace(/noErrorColor/i,"");
	element.className = currentClass + " " + newClassName;
}

function ensureOnlyOneCheckboxChecked() {
	document.getElementById("question6Yes").checked=false;	
	document.getElementById("question6No").checked=false;
	this.checked=true;
}

function resetForm() {
	//check all dropdowns
	var dropDownArray = document.getElementsByTagName("select");
	for (var i=0; i<dropDownArray.length;i++) {
		if (dropDownArray[i].selectedIndex!=0)
			highlightRow(dropDownArray[i].parentNode, true);
	}	
	
	//Color all non-radio inputs grey.
	var inputArray = document.getElementsByTagName("input");
	for (var i=0; i<inputArray.length;i++) {
		//if (inputArray[i].className!="radio")
			highlightRow(inputArray[i].parentNode, true);
	}
	
	var textareaArray = document.getElementsByTagName("textarea");
	for (var i=0; i<textareaArray.length;i++)
			highlightRow(textareaArray[i].parentNode, true);
	
	//Reset rows where inputs are nested.
	if (document.getElementById("question1Yes"))
		highlightRow(document.getElementById("question1Yes").parentNode.parentNode, 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 "";
}

function validateForm() {
	formIsValid=true;
	resetForm();
	var errorString="";
	
	if (document.getElementById("fullName").value=="")
		//errorString+="<li>Name</li>";//
		highlightRow(document.getElementById("fullName").parentNode, false);
	if (document.getElementById("email").value=="") {
		errorString+="<li>Email</li>";
		highlightRow(document.getElementById("email").parentNode, false);
	} else {
		if (checkEmail(document.getElementById("email").value)!=true)
			highlightRow(document.getElementById("email").parentNode, false);
	}
	if (document.getElementById("desc").value=="")
		highlightRow(document.getElementById("desc").parentNode, false);
		//errorString+="<li>Description</li>";		
		
	if (formIsValid) {	
		document.getElementById("errorMessage").style.display="none";
		//document.getElementById("myForm").submit();
		sendData();
	} else {
		//document.getElementById("errorMessage").innerHTML = "The following fields are incorrect or empty:<ul>" + errorString + "</ul>";
		document.getElementById("errorMessage").innerHTML = "The following fields are incorrect or empty:";		
		document.getElementById("errorMessage").style.display="block";
	}
}

function sendData() {
	xho = GetXmlHttpObject();
	if (xho==null) {
		alert("AJAX is not happening dude");
		return;
	}
	url = "reservationsHandler.php?fullName=" + escape(encodeURI(document.getElementById("fullName").value)) + "&email=" + escape(encodeURI(document.getElementById("email").value)) + "&desc=" + escape(encodeURI(document.getElementById("desc").value));

	xho.onreadystatechange = retrieveData;
	xho.open("GET",url,true);
	xho.send(null); 
	//closePopUp("dialog");
	document.getElementById("confirmation").innerHTML = "Sending...";
}

function retrieveData() {
	if (xho.readyState=="4" || xho.readyState=="completed")
		document.getElementById("confirmation").innerHTML = "Thank you for your interest.  We will contact you shortly.";//"" + xho.responseText;
	
	//disableForm(false);
	//goThroughFormAndChangeAll("button", "enable");
	//switchToView();
}

	/*
	//Validate all non-radio inputs for being blank
	var inputArray = document.getElementsByTagName("input");
	for (var i=0; i<inputArray.length;i++) {
		if (inputArray[i].className!="radio") {
			//Deal with rows that have more than one input and are blank
			if (inputArray[i].id=="city" && inputArray[i].value=="") {
				//alert(inputArray[i].id);
				highlightRow(inputArray[i].parentNode, false, document.getElementById("lblCity"), inputArray[i]);
			}
			if ((inputArray[i].id=="postal1" && inputArray[i].value=="") || (inputArray[i].id=="postal2" && inputArray[i].value=="")) {
				highlightRow(inputArray[i].parentNode, false, document.getElementById("lblPostal"), inputArray[i]);
			}
			if (inputArray[i].value=="") {
				highlightRow(inputArray[i].parentNode, false);
			}
		}
	}*/
