// greenhouse public CUSTOM JavaScript configuration - unique to site , 'jquery'
// to use full prototype 'lib/prototype.js''moo/moo.fx','moo/moo.fx.pack',,'scriptaculous/prototype'
// COMBINED ALL 
	var aCustomBaseIncludes = ['x_core','tween', 'OpacityTween'];
		Loader.load(aCustomBaseIncludes, 'includes/client/');

	var aCustomIncludes = ['sos','sifr'];  //mootools-release-1.11-ajax
		Loader.load(aCustomIncludes, 'custom/public/includes/client/');
	
	var sFullPath = String(document.location);
	var SITEBASE = sFullPath.substr(0,sFullPath.lastIndexOf('/')+1 );
	
		function _initPage(){
			if(typeof loadGoogleMap == "function") loadGoogleMap();
			if(typeof sIFR == "function" && !bolPrint){
					// Main Header
					sIFR.replaceElement(named({sSelector:".header>h1", sFlashSrc:"custom/flash/fonts/frutiger57Cn.swf", sColor:"#0B3D91", sLinkColor:"#0B3D91", sBgColor:"none", sHoverColor:"#111111", nPaddingTop:0, nPaddingBottom:0, sFlashVars:"textalign=left&offsetTop=0", sWmode:"transparent"}));
				};

			  return true;
		};

		// --------------
		// GOOGLE RELATED
		function trackFileDownload(sUrl, sName, w, h){
				urchinTracker(sUrl);// may want to strip file extension
			var sWinName = (null != sName)? sName : 'Download ' ;
			var sW = (null != w)? w : '200';
			var sH = (null != h)? h : '200';
				_newWindow(sUrl,sWinName,sW,sH,1,0,0,0,0,1,1);

		}
		
		function openNode(bol, id) {
			outerDiv = document.getElementById('list_'+id);
			innerDiv = document.getElementById('holder_'+id);
			button = document.getElementById('button_'+id);
			var nodeH = xHeight(innerDiv);
			var curH = xHeight(outerDiv);
			//button.className = (curH != 0)? 'open' : 'close';
			var start = (curH != 0)? nodeH : 0;
		  var end = (curH != 0)? 0 : nodeH;
			//alert(bol+', '+nodeH+', '+start+', '+end);
		  var nodeTween = new Tween(outerDiv.style,'height',Tween.strongEaseOut,start,end,0.3,'px');
		  var a = new Object();
			a.onMotionFinished = function(){
				// ? change display to hidden?
				//node.style.display = none;

			};									
			nodeTween.addListener(a);

			nodeTween.start();

			return false;
		}
	
		function printSearchResults(sExtraParams){
			sExtraParams = (String(sExtraParams) == "undefined" ? "default.asp?" :  sExtraParams);

			var strPrintLink = sExtraParams + "&print=1";//
			//alert("New window:"+strPrintLink);
			_newWindow(strPrintLink,'printWindow',780,600,0,1,1,1,1,1,1,0,0);
		}	

// USER INTERFACE SCRIPTS
// powers Search Utility Switch, Homepage News + Offers Switch
//											Webcam Animation, Email a Friend Form, Drop Down Navigation
// utilizes (OpacityTween, Tween)

		function changeInput(obj,empty, def){
			obj.value = (empty && obj.value == def)? "" : (obj.value.length > 0)? obj.value : def;
		};


		var tweentime = .25;
		var searchtweentime = .15;
		var newstweentime = .35;
		var delayTime = 400;
		var id;
		var timer;
		var webcam = null;
		var webcamtimer;
		var webcamdelayTime = 60000;

		function loadwebcam(wc, url)
		{
			webcam = wc;
			new OpacityTween(wc,Tween.regularEaseIn, 1, 100, .25).start();
			webcamtimer = setTimeout("changewebcamimage('" + url + "');",webcamdelayTime);
		}

		function changewebcamimage(url)
		{
			var ot = new OpacityTween(webcam,Tween.regularEaseOut, 100, 1, .25);
			ot.onMotionFinished = function(){
				var unique = new Date(); 
				webcam.src = url + "?time=" + unique.getTime();		
			}
			ot.start();	
		}

		function sendFriendSuccess()
		{
			document.getElementById("txtFriendsName").value = "Friends Name";
			document.getElementById("txtFriendsEmail").value = "Friends Email";
			document.getElementById("txtComments").value = "Comments";
			document.getElementById("li_email_to_friend").innerHTML = "Your email has been sent.";	
		}

		function sendFriendEmail()
		{
			document.getElementById("li_email_to_friend").innerHTML = "Sending...";
	
			var obj = document.frmEmailFriend;
			var comments = "";
			var yourname = "A friend";
	
			if(obj.txtFriendsEmail.value == "Friends Email" || obj.txtYourEmail.value == "Your Email")
			{
				document.getElementById("li_email_to_friend").innerHTML = "You must enter both valid email addresses!";
				return;
			}
			if(obj.txtComments.value != "Comments")
			{
				comments = obj.txtComments.value;
			}
			if(obj.txtYourName.value != "Your Name")
			{
				yourname = obj.txtYourName.value;
			}
	
	
			new Ajax ('/custom/processors/email_a_friend.asp', {postBody: 'txtFriendsName='+obj.txtFriendsName.value+'&txtFriendsEmail='+obj.txtFriendsEmail.value+'&txtYourName='+yourname+'&txtYourEmail='+obj.txtYourEmail.value+'&txtComments='+comments+'&linkid='+obj.linkid.value+'&eventid='+obj.eventid.value, update: $(''), onComplete: sendFriendSuccess}).request();
			window.setTimeout(showEmailFriend, 3000);
			return;
		}

		function showEmailFriend()
		{
			var dv = document.getElementById('email_to_friend');
			var ul = document.getElementById('email_to_friend').childNodes[0];
			var h1; 
			var h2; 
			if (xHeight(dv) == 0){
				h1 = 0;
				h2 = xHeight(ul) + 20;
			}else{
				h2 = 0;
				h1 = xHeight(ul) + 20;
			}
			new Tween(dv.style,'height',Tween.regularEaseOut,h1,h2,tweentime,'px').start();
		}


		function opensubnav(tempID)
		{
			resetsubnavs();
			id = tempID;
			timer = setTimeout("opensubnav_afterdelay('" + tempID + "');",delayTime);
		}

		function opensubnav_afterdelay(tempID)
		{
			if( id == tempID && document.getElementById('div_'+id).style.height == "0px")
			{		
		
		
				var k = document.getElementById('div_'+id).style;
				k.zIndex = 5000;



				ulHeight = xHeight(document.getElementById('ul_'+id)) + 5;
				//alert("div height = " + xHeight(document.getElementById('div'+id)));
				ulTween = new Tween(document.getElementById('div_'+id).style,'height',Tween.strongEaseOut,40,ulHeight,tweentime,'px');
				ulTween.start();
			}
	
	
		}
	
		function resetsubnavs()
		{
			if(document.getElementById('ulnav') != null)
			{
				for (x=0; x<5; x++)
				{
					if(document.getElementById('ulnav').childNodes[x].childNodes[1] != null)
					{
						document.getElementById('ulnav').childNodes[x].childNodes[1].style.height = "0px";
					}
				}
			}
		}

		//// 
		// SEARCH RELATED

		function showHover(div, show){
			var s = (show)? '<img src="/custom/public/images/search_hover.png" alt="Search Hint" />' : '';
			$(div).innerHTML = s;
		}

		function switchsearch()
		{
			var mt = document.getElementById('sitesearch').style.marginTop;

			if ( mt == 0 || mt == null || mt == "" || mt == "0px" || mt == "18px" )
			{
				new Tween(document.getElementById('sitesearch').style,'marginTop',Tween.regularEaseIn,18,-57,searchtweentime,'px').start();
			}
			else
			{
				new Tween(document.getElementById('sitesearch').style,'marginTop',Tween.regularEaseIn,-57,18,searchtweentime,'px').start();
			}
		}

		function switchnews()
		{
			var mt = document.getElementById('new_switch_img').style.marginTop;

			if ( mt == 0 || mt == null || mt == "" || mt == "0px"|| mt == "0")
			{
				new Tween(document.getElementById('stronghold').style,'marginLeft',Tween.regularEaseOut,0,-345,newstweentime,'px').start();
				document.getElementById('new_switch_img').style.marginTop = "-31px";
			}
			else
			{		
				new Tween(document.getElementById('stronghold').style,'marginLeft',Tween.regularEaseOut,-345,0,newstweentime,'px').start();
				document.getElementById('new_switch_img').style.marginTop = "0px";
			}
		}

		//// SIGNUP FUNCTIONS
			var currentSignUp = "contact";




			function saveSignUp(obj){
				if ( validateSignup(obj) ){ 
					currentSignUp = "newsletter"
					new Ajax ('custom/processors/custom_submitForm.asp', {data:obj, update: $('inputarea'), onComplete: submitSuccessful}).request();
				}
				return;
			};

			function validateSignup(obj){
				var sErr = '';
				if(obj.txtFirstName.value == '' ) sErr += '- Please provide First Name.\n';
				if(obj.txtZip.value == '' ) sErr += '- Please provide Zipcode\n';
				if(!validateEmail(obj.txtEmail) ) sErr += '- Email Not Valid\n';

				if(sErr != ''){
					alert(sErr);return false;
				}else{
					return true;
				}
			}


			function saveContactSignUp(obj){
				if ( validateContactForm(obj) ){ 
					currentSignUp = "contact";
					new Ajax ('custom/processors/custom_submitForm.asp',{data: obj,	update: $('contactinputarea'), onComplete: submitSuccessful}).request();	
				}
			}


			function validateContactForm(obj){
				var sErr = '';
				if(obj.txtFirstName.value == '' ) sErr += '- Please provide First Name.\n';
				if(obj.txtLastName.value == '' ) sErr += '- Please provide Last Name.\n';
				if(obj.txtPhone.value == '' ) sErr += '- Please provide a phone number.\n';
				if(obj.txtZip.value == '' ) sErr += '- Please provide Zipcode\n';
				if(!validateEmail(obj.txtEmail) ) sErr += '- Email Not Valid\n';

				if(sErr != ''){
					alert(sErr);return false;
				}else{
					return true;
				}
			}

		// callbacks
		function submitSuccessful(){
			if (currentSignUp == "contact"){
				scroll(0,0);
			}
		}

		//VALIDATE SUBROUTINES
		function validateEmail(o){
			var str = o.value;
			var at='@'; var dot='.';
			var lat=str.indexOf(at); var lstr=str.length; var ldot=str.indexOf(dot);
				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;	
		};