//scripts initialization



window.addEvent('domready', function() {

	$("calEventsDetails").fade("out");

	elDate = new Date();

	mpaCalendar.curCalDay = $("d" + elDate.getDate());

	

	var sID = $("featured_event_details").className.substr(6);

	

	$("featured_event_details").addEvents({

		mouseenter: function(){

			this.tween("background-color", "#e5eaef");

		},

		mouseleave: function(){

			this.tween("background-color", "#ffffff");

		}

	});

	

	if($("detailsPage")) {

		$("featured_event_details").addEvents({					

			click: function() {

				mpaCalendar.fetchDetails(sID);

			}

		});				 

	} else {

		$("featured_event_details").addEvents({					

			click: function() {

				document.location = "/eventDetails.php?x=" + sID;

			}

		});

	}

	

	toggleText.pair();

});



/////////////////////////////////////////

//

// Toggle Text sections

//





toggleText = {

	

	pair: function () {

		

		var tGroup = $("left").getElements("div[class=toggle_group]");



		tGroup.each(function(item,index) {

			var groupEl = item.getElements("div");

			

			var fxSlide = new Fx.Slide(groupEl[1], {duration: 1000});

			fxSlide.hide();

			

			groupEl[0].addEvents({

				click: function() {

					fxSlide.toggle();

					

					if(groupEl[0].hasClass("toggle_title")) { 

						var fxMorph = new Fx.Morph(item, {duration: 1000});

						fxMorph.start('.toggle_group_active');

					}

				}

			});

		});

	}

}



/////////////////////////////////////////

//

// Main navigation functions

//

function pointerOn(name)

{

	//console.log(name);

	$('pointer').className = "pos_" + name;

}



function pointerOff()

{

	$('pointer').className = "no_pos";

}



function emptyme(e){ e.value == ""; }



function goHome()

{	

	document.location = '/';

}



function swapnav(name)

{

	var e = $("nav_" + name);

	var server = "";//"http://pharm.visioncreative.net"

	var path = server  + "/images/"; 

	var overstate = path + e.id + "_over.png";

	if(e.src == overstate){

		e.src = path + e.id + ".png";

	} else {

		e.src = overstate;

	}

}



function navState(name, state)

{

	var e = $("nav_" + name);

	var server = "";//"http://pharm.visioncreative.net"

	var path = server  + "/images/"; 

	

	if(e.src != path + e.id + "_active.png"){

		switch (state) {

			case 'up' :

				e.src = path + e.id + ".png";

			break;

			case 'over' :

				e.src = path + e.id + "_over.png";

			break;

			case 'active' :

				e.src = path + e.id + "_active.png";

			break;

		}

	}

}



var menuActive = false



function showDropdown(e)

{

	mopen(e);

}



function hideDropdown(e)

{

	mclosetime();

}



var timeout	= 100;

var closetimer	= 0;

var ddmenuitem	= 0;

var ddtab = 0;



// open hidden layer

function mopen(id)

{	

	// cancel close timer

	mcancelclosetime();



	// close old layer

	if(ddmenuitem){ddmenuitem.style.display = 'none'};

	if(ddtab){navState(ddtab, 'up')}



	// get new layer and show it

	ddmenuitem = $('dropdown_' + id);

	ddmenuitem.style.display = 'block';

	ddtab = id;

	navState(ddtab, 'over');



}

// close showed layer

function mclose()

{

	if(ddmenuitem){ddmenuitem.style.display = 'none'};

	if(ddtab){navState(ddtab, 'up')}

}



// go close timer

function mclosetime()

{

	closetimer = window.setTimeout(mclose, timeout);

}



// cancel close timer

function mcancelclosetime()

{

	if(closetimer)

	{

		window.clearTimeout(closetimer);

		closetimer = null;

	}

}





/////////////////////////////////////////

//

// MPA Calendar Module

//

mpaCalendar = {

	curCalDay: null,

	curDate: null,



	monthPrev: function(leDate) {

		new Request({

			method: "post",

			url: "/monthFetcher.php",

			data: {dir: "prev", date: leDate},

			onSuccess: function(responseText) {

				$("calendarContainer").innerHTML = responseText;

			}

		}).send();

	},



	monthNext: function(leDate) {

		new Request({

			method: "post",

			url: "/monthFetcher.php",

			data: {dir: "next", date: leDate},

			onSuccess: function(responseText) {

				$("calendarContainer").innerHTML = responseText;

			}

		}).send();

	},

	

	goDay: function(e,theDate) {

		this.fetchEvents(theDate);

	},

	

	toggleClickyDay: function(e) {

		var nombre = String(e.className);

		var dayPos = nombre.substr(11);

		var dayClass = nombre.substr(0,10);

		e.className = (dayClass == "dayClicker") ? "dayCurrent " + dayPos : "dayClicker " + dayPos;

	},

	

	fetchEvents: function(leDate) {

		new Request({

			method: "post",

			url: "/eventFetcher.php",

			data: {date: leDate},

			onSuccess: function(responseText) {

				$("calEventsDetails").innerHTML = responseText;

				var scrollInfo = $("calEventsContainer").getScrollSize();

				$("calEventsDetails").setStyle("height", scrollInfo.y - 30);	//adjust for padding on details div

				$("calEventsDetails").fade("in");

				

				mpaCalendar.setEventFaders();

			}

		}).send();

	},



	fetchDetails: function(sID) {

		var eDetails = $("detailsPage");



		eDetails.set("tween",{

			duration: "short",

			onComplete: function() {

				new Request({

					method: "post",

					url: "/eventDetailsFetcher.php",

					data: {eventID: sID},

					onSuccess: function(responseText) {				

						eDetails.innerHTML = responseText;							

						eDetails.set("tween",{onComplete: function() {}});



						eDetails.fade("in");

					}

				}).send();

			}

		});



		eDetails.fade("out");

	},



	fadeDetails: function() {

		$("calEventsDetails").fade("out");

	},

	

	setEventFaders: function() {

		var aEvents = $("calEventsDetails").getElements("div[class=calEvent]");



		aEvents.each( function(item,index) {

			var sID = item.get("id").substr(6);



			item.addEvents({

				mouseenter: function(){

					this.tween("background-color", "#EEEEEE");

				},

				mouseleave: function(){

					this.tween("background-color", "#ffffff");

				}

			});

			

			if($("detailsPage")) {

				item.addEvents({					

					click: function() {

						mpaCalendar.fetchDetails(sID);

					}

				});				 

			} else {

				item.addEvents({					

					click: function() {

						document.location = "/eventDetails.php?x=" + sID;

					}

				});

			}

		});

	},

	

	doLogin: function() {

		if($("user").value != "" && $("pass").value != "") {

			elModule = $("member_login");

			

			elModule.set("tween",{

				duration: "short",

				onComplete: function() {

					$("moduleLoginForm").set("send", {

						method: "post",

						url: "/doModuleLogin.php",

						onSuccess: function(responseText) {				

							elModule.innerHTML = responseText;							

							elModule.set("tween",{onComplete: function() {}});



							//update page if successful login

							if(elModule.getElementById("theMan")) {

								mpaCalendar.updateLeftCol();	

							}



							elModule.fade("in");

						}

					}).send();

				}

			});



			elModule.fade("out");



		} else {

			$("errorBox").innerHTML = "A Username and Password are required.";	

		}

	},



	getForgotPassForm: function() {

		elModule = $("member_login");

		

		elModule.set("tween",{

			duration: "short",

			onComplete: function() {

				new Request({

					method: "post",

					url: "/doForgotPass.php",

					onSuccess: function(responseText) {				

						elModule.innerHTML = responseText;							

						elModule.set("tween",{onComplete: function() {}});

						elModule.fade("in");

					}

				}).send();

			}

		});



		elModule.fade("out");

		

	},



	doForgotPass: function() {

		if($("forgotpass").value != "") {

			elModule = $("member_login");

			

			elModule.set("tween",{

				duration: "short",

				onComplete: function() {

					$("forgotPassForm").set("send", {

						method: "post",

						url: "/doForgotPass.php",

						onSuccess: function(responseText) {				

							elModule.innerHTML = responseText;							

							elModule.set("tween",{onComplete: function() {}});

							elModule.fade("in");

						}

					}).send();

				}

			});



			elModule.fade("out");



		} else {

			$("errorBox").innerHTML = "An email address is required.";	

		}

	},



	doLogout: function() {

		elModule = $("member_login");

		

		elModule.set("tween",{

			duration: "short",

			onComplete: function() {

				new Request({

					method: "post",

					url: "/doModuleLogout.php",

					onSuccess: function(responseText) {				

						elModule.innerHTML = responseText;							

						elModule.set("tween",{onComplete: function() {}});



						mpaCalendar.updateLeftCol();	



						elModule.fade("in");

					}

				}).send();

			}

		});



		elModule.fade("out");

	},





	updateLeftCol: function() {

		var sURL = unescape(document.location.href);

		var eLeft = $("left");



		var myHTMLRequest = new Request.HTML({

			url: sURL,

			evalScripts: false,

			onSuccess: function(responseTree,responseElements,responseHTML,responseJavaScript) {

				responseElements.each(function (el) {

					if(el.get("id") == "left") {

						eLeft.set("tween",{

							duration: "short",

							onComplete: function() {	

								eLeft.innerHTML = el.innerHTML							

								eLeft.set("tween",{onComplete: function() {}});

								eLeft.fade("in");

							}

						});

						eLeft.fade("out");

					}

				});

			}

		}).send();

	}



}





mpaForms = {

	reqFields: new Array(),



	setRequiredFields: function(sFields) {

		mpaForms.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");

	}

}



mpaNews = {	

	init: function () {

		var tGroup = $("left").getElements("div[class=newsCategory]");



		tGroup.each(function(newsCat,index) {

			var scrollInfo = newsCat.getScrollSize();

			newsCat.store("originalHeight",scrollInfo.y);

			newsCat.setStyle("height",scrollInfo.y);

		});

	},

	

	showCategory: function(sCatTitle,sDiv) {

		var elDiv = $("news_" + sDiv);

		elDiv.set("tween",{

			duration: "short",

			onComplete: function() {

				new Request({

					method: "post",

					url: "/newsFetcher.php",

					data: {cat: sCatTitle},

					onSuccess: function(responseText) {

						var elDiv = $("news_" + sDiv);

						elDiv.innerHTML = responseText;	

						var scrollInfo = elDiv.getScrollSize();						



						elDiv.set("tween",{onComplete: function() {}});



						new Fx.Morph(elDiv, {

							duration: 1000

						}).start({

							"height": scrollInfo.y,

							"opacity": 1

						});

					}

				}).send();

			}

		});



		elDiv.fade("out");

	}

}


















