// JavaScript Document

function Validator() { 
	var forms = document.getElementsByTagName("form");
	for(var i=0; i<forms.length; i++) {
		if(forms[i].className == "validate") {
			var formobj = forms[i];
			forms[i].onsubmit = function() {
				var ident = document.getElementById('ident');
				if(ident == null) {
					alert("No form ident present. Cannot validate form.");
				} else { 
					switch (ident.value) { 
						case "editprofile":
							var fieldRequired = Array(
													  "user_name", 
													  "user_email"
													  );
							var normalClass = "textfield";
							break;
						case "freetrial":
							var fieldRequired = Array(
													  "trial_company", 
													  "trial_addr1",
													  "trial_postcode",
													  "trial_telephone",
													  "trial_contact",
													  "trial_users"
													  );
							var normalClass = "textfield";
							break;
						case "register":
							var fieldRequired = Array(
													  "user_name", 
													  "user_username",
													  "user_password",
													  "conf_user_password",
													  "user_email",
													  "user_department"
													  );
							var normalClass = "textfield";
							break;
						case "trackweight":
							var fieldRequired = Array(
													  "weight_kg"
													  );
							var normalClass = "textfield";
							break;
					}
					var counter = 0;
					var error = false;
					for (var i = 0; i < fieldRequired.length; i++){
						var obj = formobj.elements[fieldRequired[i]];
						if(obj) {
							obj.className = normalClass;
						}
					}
					for (var i = 0; i < fieldRequired.length; i++){
						var obj = formobj.elements[fieldRequired[i]];
						if (obj){
							switch(obj.type){
								case "select-one":
								if (obj.selectedIndex == 0 || obj.options[obj.selectedIndex].text == "" || obj.options[obj.selectedIndex].value == "-1"){
									obj.className = normalClass+"_invalid";
									error = true;
								}
								break;
								case "select-multiple":
									if (obj.selectedIndex == -1){
									obj.className = normalClass+"_invalid";
									error = true;
								}
								break;
								case "text":
								case "textarea":
								case "password":
								if (obj.value == "" || obj.value == null){
									obj.className = normalClass+"_invalid";
									error = true;
								}
								break;
								default:
							}
							if (obj.type == undefined){
								var blnchecked = false;
								for (var j = 0; j < obj.length; j++){
									if (obj[j].checked){
										blnchecked = true;
									}
								}
								if (!blnchecked){
								}
							}
						}
					}
					if (!error){
						return true;
					} else {
						alert("Please ensure the highlighted mandatory fields are filled in before proceeding.");
						return false;
					}
				}
				return true;
			}
		}
	}
	return true;
}


function expandMenu(listName) {
	var stay = document.getElementById('stay').value;
	var control=document.getElementById(listName);
	var listElements=control.getElementsByTagName("li");
	for(var i=0; i<listElements.length; i++) {
		//EXPAND MENU
		listElements[i].onmouseover=function() {
				var uls=this.getElementsByTagName("ul");
				for(var n=0; n<uls.length; n++) {
					if(n==0) {
						uls[n].style.display="block";
						var idname = uls[n].getAttribute("id");
						if(idname !== stay+"_ul" && stay !== "") { 
							document.getElementById(stay+"_ul").style.display = "none";
						}
					}
					
				}
			}
		//CLOSE MENU	
		listElements[i].onmouseout=function() {
			var uls=this.getElementsByTagName("ul");
				for(var n=0; n<uls.length; n++) {
					if(n==0) {
						uls[n].style.display="none";
						if(stay !== "") { 
							document.getElementById(stay+"_ul").style.display = "block";
						}
					}
					
				}
			
		}
	}
}

function Popups() {
	var links=document.getElementsByTagName("a");
	for(var i=0; i<links.length; i++) {
		if(links[i].className=="chart_height") {
			links[i].onclick=function() {
				var newWin=window.open('/chart.php#height', 'chart', 'width=500, height=400, scrollbars=1');
				newWin;
				return false;
			}
		}
		if(links[i].className=="chart_weight") {
			links[i].onclick=function() {
				var newWin=window.open('/chart.php#weight', 'chart', 'width=500, height=400, scrollbars=1');
				newWin;
				return false;
			}
		}
		if(links[i].className=="prog_foodlabel") {
			links[i].onclick=function() {
				var newWin=window.open('/programme.php?prog=foodlabel', 'chart', 'width=610, height=490, scrollbars=1');
				newWin;
				return false;
			}
		}
		if(links[i].className=="prog_goodhealth") {
			links[i].onclick=function() {
				var newWin=window.open('/programme.php?prog=goodhealth', 'chart', 'width=650, height=490, scrollbars=1');
				newWin;
				return false;
			}
		}
	}
}


//EXECUTES ONLOAD FUNCTIONS
function loadfunctions() {
	
	Popups();
	Validator();
	
}

//LOADS IN MULTIPLE FUNCTIONS ONLOAD
window.onload=loadfunctions;