// JavaScript Document

function init() {
	if(document.leForm && document.leForm.process) document.leForm.process.value = 1;
}


window.addEvents({
	'domready': function() {	
		nav.init();
		nav.initImageFaders();
		emailInput.init();
	}
});

nav = {
	aFaders: null,
	curFeature: 0,
	maxFeature: 0,
	timer: null,

	init: function () 
	{
		if($('nav')) this.addEvents();
	},
	addEvents: function ()
	{
		var navItems = $('nav').getElements('img.nav_image');
		navItems.each(function(item,index) {
			var up = item.src;
			var pre = item.src.substring(0, up.length-4);
			item.addEvents({
				mouseenter: function () {
					item.src = pre + "_over.png";
				},
				mouseout: function () {
					item.src = up;	
				}
			});
						
		});
	},
	
	initImageFaders: function() {
		if($("top_pic_home")) {
			nav.aFaders = $("top_pic_home").getElements("img");
			nav.maxFeature = nav.aFaders.length - 1;
	
			nav.aFaders.each(function(feature,i) {
				feature.set("tween",{duration: 2000});
				if(i > 0) {
					feature.set("opacity",0);
					feature.setStyle("display","block");
				}
			});
			
			nav.timer = nav.fadeth.periodical(6000);
		}
	},
	
	fadeth: function() {
		if(nav.curFeature == nav.maxFeature) {
			nav.aFaders.each(function(feature,i) {
				if(i == nav.maxFeature) {
					feature.fade("out");
				} else if(i > 0) {
					feature.set("opacity",0);
				}
			});	

			nav.curFeature = 0;
		} else {
			nav.curFeature++;
			nav.aFaders[nav.curFeature].fade("in");
		}
	}

}


emailInput = {
	el: '',
	init: function () {
		if($('emailinput')) {
			el = $('emailinput');
			this.addEvents();
		};
	},
	addEvents: function () {
		var initValue = $('emailinput').value;
		$('emailinput').addEvents({
					focus: function () {
						$('emailinput').style.fontStyle = "normal";
						if($('emailinput').value == initValue){
							$('emailinput').value = "";
						}
					}
					});
		
	}
}

mecForms = {
	reqFields: new Array(),

	setRequiredFields: function(sFields) {
		mecForms.reqFields = sFields;
	},

	checkFields: function() {
		missingFields = false;
		firstMissing = null;
		
		var aFieldTypes = ["input","textarea","select"];

		aFieldTypes.each(function(fldType) {
			aFields = $$(fldType + "[class=field_required]");
	
			aFields.each(function(fld) {
				fldName = fld.getProperty("name");
				fldType = fld.getProperty("type")
				if(fldType == "checkbox" || fldType == "radio") {
					
					// Checkbox or Radio button
					aChkFields = $$("input[name=" + fldName + "]");
			
					if(aChkFields.length > 0) {
//						aChkFields = $$("input[name=" + fldName + "[]]");
					}
					
					
					var bAnythingChecked = false;
					
					aChkFields.each(function(chkFld) {
						if(chkFld.checked) {
							bAnythingChecked = true;
						}
					});
						
					if(!bAnythingChecked == true) {
						missingFields = true;

						if($("title_" + fldName)) {
							var elTitle = $("title_" + fldName);
							
							if(elTitle.className != "fieldTitleRequired") {
								elTitle.store("originalClass",elTitle.className);
								elTitle.className = "fieldTitleRequired";		
							}

							if(firstMissing == null) {
								firstMissing = $("title_" + fldName);	
							}
						}
					}
				} else {
					if(fld.value == "") {
//						alert("missing field: " + fld.get("name"));
						missingFields = true;

						if($("title_" + fldName)) {
							var elTitle = $("title_" + fldName);
							elTitle.store("originalClass",elTitle.className);
							elTitle.className = "fieldTitleRequired";
								
							if(firstMissing == null) {
								firstMissing = $("title_" + fldName);	
							}
						} else {
							if(fld.get("alt") != null) {
								newName = fld.get("alt");
								var elTitle = $("title_" + newName);
								elTitle.store("originalClass",elTitle.className);
								elTitle.className = "fieldTitleRequired";
									
								if(firstMissing == null) {
									firstMissing = $("title_" + newName);	
								}
							}
						}
					}
				}
			});
		});
		
		if(missingFields) {
			if(firstMissing != null) {
				var myFx = new Fx.Scroll($(document.body), {
					onComplete: function() {
						alert("You forgot some necessary information.  Please fill out the required fields to continue.");
					}
				});
			
				myFx.toElement(firstMissing);
			}
			return false;
		}
		
		if($("password_confirm")) {
			if($("password").value != $("password_confirm").value) {
				$("title_password").className = "fieldTitleRequired";
				$("title_password_confirm").className = "fieldTitleRequired";
				
				alert("The passwords you entered do not match.");
				return false;
			}			
		}

		if($("email_confirm")) {
			if($("email").value != $("email_confirm").value) {
				$("title_email").className = "fieldTitleRequired";
				$("title_email_confirm").className = "fieldTitleRequired";
				
				alert("The email addresses you entered do not match.");
				return false;
			}
		}

		if($("billing_email_confirm")) {
			if($("billing_email").value != $("billing_email_confirm").value) {
				$("title_billing_email").className = "fieldTitleRequired";
				$("title_billing_email_confirm").className = "fieldTitleRequired";
				
				alert("The email addresses you entered do not match.");
				return false;
			}
		}

		return true;
	},
	
	sameAsBilling: function() {
		frmFields = new Array("_firstname","_lastname","_address1","_address2","_city","_state","_zip","_phone","_fax","_email");
		frmFields.each(function(fld) {
			$("shipping" + fld).value = $("billing" + fld).value;
		});
		$("sameAsBilling").checked = false;
	},


	submitForm: function(formID) {
		if(this.checkFields()) {
			$(formID).submit();
//			alert("the form checks out");
		}
	},

	resetRequired: function(sField) {
		if($("title_" + sField)) {
			var elTitle = $("title_" + sField);
			if(elTitle.className == "fieldTitleRequired") {
				elTitle.className = elTitle.retrieve("originalClass");
			}
		}
	},
	
	otherInput: function(e,sTitle) {
		if(e.value == "Other...") {
			$(sTitle).setStyle("display","inline");
		} else {
			$(sTitle).setStyle("display","none");
		}
	},
	
	submitRegForm: function(formID) {
		if(this.checkFields()) {
			$(formID).submit();
		}
	},
	
	
	submitAjaxForm: function(formID,updateDiv) {
		if(this.checkFields()) {
			elDiv = $(updateDiv);
			elDiv.setStyle("height",elDiv.getScrollSize().y);
			
			elDiv.set("tween",{
				duration: "short",
				onComplete: function() {
					$(formID).set("send", {
						method: "post",
						onSuccess: function(responseText) {				
							elDiv.innerHTML = responseText;							
							elDiv.set("tween",{onComplete: function() {}});

							elDiv.fade("in");
							var myFx = new Fx.Scroll($(document.body));
							myFx.toElement(elDiv);
						}
					}).send();
				}
			});

			elDiv.fade("out");
		} 
	},
	
	updateChunk: function(sURL,sUpdateDiv) {
		elDiv = $(sUpdateDiv);
		
		var myHTMLRequest = new Request.HTML({
			url: sURL,
			onSuccess: function(responseTree,responseElements,responseHTML,responseJavaScript) {
				elDiv.set("tween",{
					duration: "short",
					onComplete: function() {	
						elDiv.innerHTML = responseHTML;							
						elDiv.set("tween",{onComplete: function() {}});
						elDiv.fade("in");
					}
				});
				elDiv.fade("out");
			}
		}).send();
	},
	
	fetchRegistrationForm: function(sID) {
		var eRegForm = $("regFormDiv");

		eRegForm.set("tween",{
			duration: "short",
			onComplete: function() {
				new Request.HTML({
					method: "post",
					url: "/registrationFetcher.php",
					data: {eventID: sID},
					onSuccess: function(responseTree,responseElements,responseHTML,responseJavaScript) {			
						eRegForm.innerHTML = responseHTML;							
						eRegForm.set("tween",{onComplete: function() {}});


						var scrollInfo = eRegForm.getScrollSize();

						new Fx.Morph(eRegForm, {
							duration: "normal"
						}).start({
							"height": scrollInfo.y,
							"opacity": 1
						});
					}
				}).send();
			}
		});

		eRegForm.fade("out");
	}
}

