// Jeff LaPlante Photography Global Website Functions

// Global variables:
		var gBehaviorsArray = [];
		
		function init(){
			reactToQueryString();
			resizePage();
		}
		
		function reactToQueryString(){
			var qs = window.location.search;
			qs = qs.substr(1);
			qsArray = new Array();
			qsArray = qs.split('&');
			
			switch(qsArray[0]){
				case "splash":
					splash();
				break;
				case "ipod":
					click_ipod();
				break;
				case "referrals":
					click_referrals();
				break;
				case "slideshows":
					click_slideshow();
					if(qsArray[1]){
						startShow(qsArray[1]);
					}
				break;
				case "slideshow":
					click_slideshow();
					if(qsArray[1]){
						startShow(qsArray[1]);
					}
				break;
				case "clients":
					click_clients();
				break;
				case "rates":
					click_rates();
				break;
				case "packages":
					click_showRates();
				break;
				case "products":
					click_products();
				break;
				case "contact":
					click_contact();
				break;
				case "map":
					click_map();
				break;
				case "about":
					click_about();
				break;	
				case "affiliations":
					click_affiliations();
				break;	
				case "gear":
					click_gear();
				break;
				case "visitors":
					click_visitors();
				break;
				case "testfade":
					test_fade();
				break;
				default:
					doDefaultLayout();	
			}
		}
		
		function doDefaultLayout(){
			displayOn("splash");
		}
		
		// Set Opacity to Zero for named element and turn it on
		function setOpacityZero(element){
			gBehaviorsArray[element] = new Spry.Effect.AppearFade(element,{duration: 100,from: 100,to: 0, finish: 
	        			function(){
	        				gBehaviorsArray[element] = null;
	        				displayOn(element); 
	        			}
	        		});
		}
		
		function randomizeImage(){
			index = Math.floor(Math.random() * images.length);
			return images[index];
		}	
		
		// Cancel the animation behavior of the object with the given id.
		function CancelBehavior(id)
		{
		  if (gBehaviorsArray[id])
		  {
		    gBehaviorsArray[id].cancel();
		    gBehaviorsArray[id] = null;
		  }
		}
		//======================================================================
		
		// Cycle through images on main page (sets background image on the main div)
		function changeMainImage(inc){
			if(inc == 0){
				photoIndex--;
				if(photoIndex < 0){photoIndex = 0;}
			}else{
				photoIndex++;
				if(photoIndex >= images.length){
					photoIndex = 0;
				}
			}
			
			getElement('mainImageCount').innerHTML = photoIndex;
			set_photo(images[photoIndex]);
		}
		
		function resizePage(){
			var winW = 1000;
			var winH = 750;
			var mainW = 900;
			var mainH = 600;
			var gap = 115;
			var navW = 900;
			var navH = 20;
			var offsetW = 20;
			var offsetH = 20;
			
			// Center the Splash Page
			centerSplash();
			
			if (window.innerWidth) {
			  winW = window.innerWidth;
			  winH = window.innerHeight;
			}else if (document.body.offsetWidth) {
			  winW = document.body.offsetWidth;
			  winH = document.body.offsetHeight;
		 	}
			
			// combined space used by the overall layout
			var usedSpace = parseInt(mainH + gap + navH);
			
			offsetW = (winW - mainW)/2;
			offsetH = (winH - mainH - gap - navH)/2;
			
			if(offsetW < 0) offsetW = 0;
			if(offsetH < 0) offsetH = 0;
			
			// If the viewport height is not large enough then scale down the main div height
			var overUnder = winH - usedSpace;
			if(overUnder > 0) overUnder = 0;
			
			var adjustedMainH = mainH + overUnder;
			
			setInfo("");
			//setInfo("<br>h:" + winH + "  w:" + winW + " us:" + usedSpace );
			
			if(winH < usedSpace){
				document.getElementById('main').style.height = (winH - navH - gap) + 'px';
			}else{
				document.getElementById('main').style.height = mainH + 'px';
			}
			
			// move main, nav and logo
			if(document.getElementById('main')){
				document.getElementById('main').style.top = offsetH + 'px';
				document.getElementById('main').style.left = offsetW + 'px';
			}
			
			if(document.getElementById('nav')){
				document.getElementById('nav').style.top = (offsetH + adjustedMainH + gap) + 'px';
				document.getElementById('nav').style.left = offsetW + 'px';
			}
			
			if(document.getElementById('logo')){
				document.getElementById('logo').style.top = (offsetH + 20) + 'px';
				document.getElementById('logo').style.left = (offsetW + 20) + 'px';
			}
		}
		
		function centerSplash(){
			var winW = 1000;
			var winH = 700;
			
			var splashW = 900;
			var splashH = 600;
			
			if (window.innerWidth) {
			  winW = window.innerWidth;
			  winH = window.innerHeight;
			}else if (document.body.offsetWidth) {
			  winW = document.body.offsetWidth;
			  winH = document.body.offsetHeight;
		 	}

			// move/resize
			var splash = document.getElementById('splash')
			if(splash){
				splashW = parseInt(splash.style.width);				
				splashH = parseInt(splash.style.height);
				
				offsetW = (winW/2) - splashW/2; 
				offsetH = (winH/2) - splashH/2;
				if(offsetW < 0) offsetW = 0;
				if(offsetH < 0) offsetH = 0;
							
				document.getElementById('splash').style.top = offsetH + 'px';
				document.getElementById('splash').style.left = offsetW + 'px';
			}
		}
		
		function makeRed(item){
			document.getElementById(item).style.color = "red";
		}
		
		function makeWhite(item){
			document.getElementById(item).style.color = "#ffffff";
		}
		
		function setInfo(text){
			document.getElementById('info').innerHTML = text;
		}
		
		function getInfo(){
			return document.getElementById('info').innerHTML;
		}
		
		function popImage(img_src){
			var i = new Image();
			
			i.onload = function(){
				document.getElementById('pop').style.width = i.width;
				document.getElementById('pop').style.height = i.height;
				document.getElementById('pop').innerHTML = "<img src='" + img_src + "'>";
				
				// Fade OUT pop div so we can fade it in nicely on mouse over
				gBehaviorsArray["pop"] = new Spry.Effect.AppearFade('pop', {duration: 100,from: 100,to: 0, finish: 
		        			function(){
		    					displayOn("pop");
							
							// Fade in Front Page News
							gBehaviorsArray["pop"] = new Spry.Effect.AppearFade('pop', {duration: 600,from: 0,to: 100, finish: 
					        			function(){
					        				gBehaviorsArray["pop"] = null; 
			
					        			}
							});
		        			}	
				});
				
			};

			// Load the image			
			i.src = img_src;
		}
		
		function popText(pop_text){
			document.getElementById('pop').innerHTML = pop_text;
			displayOn("pop");
		}
		
		function getElement(aID){
         	var rv = (document.getElementById) ? document.getElementById(aID) : document.all[aID];
         	//alert("id:" + aID + " value:" +  rv);
         	rv = document.getElementById(aID);
         	return rv;
       	}
		
		function allOff(){
			displayOff('referralSplash');
			displayOff('affiliations');
			displayOff('affiliationLogos');
			displayOff('ipodImage');
			displayOff('ipodText');
			displayOff('ipodSlideshowDiv');			
			displayOff('slideshows');
			displayOff('slideshowAperture');
			displayOff('aboutJeff');
			displayOff("joinMailingList");
			displayOff('contact');
			displayOff('clients');
			displayOff('events');
			displayOff("frontPageNews");
			displayOff("galleryControls");
			displayOff("gear");
			displayOff("pop");
			displayOff("photoBySusieHamidi");
			displayOff("clusterMap");
			displayOff("splash");
		}
		
		function splash(){
			allOff();
			centerSplash();
			displayOn("splash");
		}
		
		function click_visitors(){
			allOff();
			displayOn("logo");
			displayOn("main");
			displayOn("nav");
			displayOn("clusterMap");
			set_photo(randomizeImage());
		}
		
		function click_ipod(){
			getElement("ipod_url").style.color = "#ff0000";
			allOff();
			displayOn("ipodImage");
			displayOn("ipodText");
			displayOn("ipodSlideshowDiv");	
			displayOn("logo");
			displayOn("main");
			displayOn("nav");					
			//set_photo("none");
			setMainDivColor("#000");
		}
		
		function click_referrals(){
			getElement("referrals_url").style.color = "#ff0000";
			allOff();
			set_photo("img/embrace.jpg");
			
			setOpacityZero("main");
			setOpacityZero("logo");
			setOpacityZero("referrals");
			setOpacityZero("referralSplash");
									
			setTimeout("retrieveURL('referrals.htm', 'referrals')", 1000);
			
			// Fade In behavior For Main Image
			gBehaviorsArray["main"] = new Spry.Effect.AppearFade('main',{duration: 1000,from: 0,to: 100, finish: 
	        			function(){
	        				
        					gBehaviorsArray["logo"] = new Spry.Effect.AppearFade('logo',{duration: 700,from: 0,to: 100, finish: 
				        			function(){
				        				// Fade in referrals
									gBehaviorsArray["referralSplash"] = new Spry.Effect.AppearFade('referralSplash', {duration: 1000,from: 0,to: 90, finish: 
							        			function(){
							        				setTimeout("gBehaviorsArray['referralSplash'] = new Spry.Effect.AppearFade('referralSplash', {duration: 3000,from: 100,to: 0})", 5000);
							        				// Fade in referrals
												gBehaviorsArray['referrals'] = new Spry.Effect.AppearFade('referrals', {duration: 12000,from: 0,to: 85, finish: 
										        			function(){
										        				gBehaviorsArray['referrals'] = null; 
						
										        			}
												});
							        				gBehaviorsArray["referralsSplash"] = null; 
			
							        			}
									});
				        				
				        				gBehaviorsArray["logo"] = null;
				        			}	
				        	});
				        	
						gBehaviorsArray["main"] = null; 
	        			}
	        		});
			
			displayOn("nav");
		}
		
		function click_slideshow(){
			getElement("slideshow_url").style.color = "#ff0000";
			allOff();
			displayOn('slideshowAperture');
			
			displayOn("nav");
			//set_photo("img/shoes.jpg");
			setMainDivColor("#000");
			
			setOpacityZero("main");
			setOpacityZero("logo");
			setOpacityZero("slideshows");
																		
			// Fade In behavior For Main Image
			gBehaviorsArray["main"] = new Spry.Effect.AppearFade('main',{duration: 1000,from: 0,to: 100, finish: 
	        			function(){
        					gBehaviorsArray["logo"] = new Spry.Effect.AppearFade('logo',{duration: 700,from: 0,to: 100, finish: 
				        			function(){
				        				// Fade Clients
									gBehaviorsArray["slideshows"] = new Spry.Effect.AppearFade('slideshows', {duration: 1000,from: 0,to: 100, finish: 
							        			function(){
							        				gBehaviorsArray["slideshows"] = null; 
							        			}
									});
				        				
				        				gBehaviorsArray["logo"] = null;
				        			}	
				        	});
				        	
						gBehaviorsArray["main"] = null; 
	        			}
	        		});
	        		
		}
		
		function click_about(){
			getElement("about_url").style.color = "#ff0000";
			allOff();
			displayOn('aboutJeff');
			set_photo("img/jeff.jpg");
			
			setOpacityZero("main");
			setOpacityZero("logo");
			
			displayOn("photoBySusieHamidi");
			displayOn("nav");
			displayOn("joinMailingList");
			retrieveURL('about.htm', 'aboutJeff');
			
			// Fade In behavior
			gBehaviorsArray["aboutImage"] = new Spry.Effect.AppearFade('main',{duration: 1000,from: 0,to: 100, finish: 
	        			function(){
	        				gBehaviorsArray["aboutImage"] = null; 
	        				gBehaviorsArray["logo"] = new Spry.Effect.AppearFade('logo', {duration: 700,from: 0,to: 100, finish: 
				        			function(){
				        				gBehaviorsArray["logo"] = null; 
									gBehaviorsArray["aboutText"] = new Spry.Effect.AppearFade('aboutJeff',{duration: 1500,from: 0,to: 75, finish: 
							        			function(){
							        				gBehaviorsArray["aboutText"] = null; 
							        			}
					        			});
				        			}
						});
	        			}
	        		});
			
				
		}
		
		function click_affiliations(){
			getElement("affiliations_url").style.color = "#ff0000";
			allOff();
			displayOn('affiliations');
			displayOn('affiliationLogos');
			set_photo("img/peeking.jpg");
			displayOn("logo");
			
			//displayOn("main");
			
			//Turn the opacity to 0 so we can fade in nicely
			gBehaviorsArray["main"] = new Spry.Effect.AppearFade('main',{duration: 100,from: 100,to: 0, finish: 
	        			function(){
	        				gBehaviorsArray["main"] = null;
	        				displayOn("main"); 
	        			}
	        		});
	        		
	        gBehaviorsArray["affiliations"] = new Spry.Effect.AppearFade('affiliations',{duration: 100,from: 100,to: 0, finish: 
	        			function(){
	        				gBehaviorsArray["affiliations"] = null;
	        				displayOn("main"); 
	        			}
	        		});
	        		
	        		
	        // Fade In behavior
			gBehaviorsArray["main"] = new Spry.Effect.AppearFade('main',{duration: 1000,from: 0,to: 100, finish: 
	        			function(){
	        				gBehaviorsArray["main"] = null; 
	        				gBehaviorsArray["affiliations"] = new Spry.Effect.AppearFade('affiliations',{duration: 2000,from: 0,to: 75, finish: 
		        			function(){
		        				gBehaviorsArray["main"] = null; 
		        			}
		        		});
	        			}
	        		});
	        		
			displayOn("nav");
		}
		
		function click_gear(){
			getElement("gear_url").style.color = "#ff0000";
			allOff();
			set_photo("img/gear.jpg");
			setTimeout("retrieveURL('gear.htm', 'gear')",1000);
			
			displayOn("nav");
			
			setOpacityZero("main");
			setOpacityZero("logo");
			setOpacityZero('gear');
			
			// Fade In behavior
			gBehaviorsArray["main"] = new Spry.Effect.AppearFade('main',{duration: 1000,from: 0,to: 100, finish: 
	        			function(){
	        				gBehaviorsArray["main"] = null; 
	        				gBehaviorsArray["logo"] = new Spry.Effect.AppearFade('logo', {duration: 700,from: 0,to: 100, finish: 
				        			function(){
				        				gBehaviorsArray["logo"] = null; 
									gBehaviorsArray["gear"] = new Spry.Effect.AppearFade('gear',{duration: 1500,from: 0,to: 75, finish: 
							        			function(){
							        				gBehaviorsArray["gear"] = null; 
							        			}
					        			});
				        			}
						});
	        			}
	        		});
		}
		
		function click_contact(){
			getElement("contact_url").style.color = "#ff0000";
			set_photo("img/wagon.jpg");
			allOff();
			
			displayOn("nav");
			
			setOpacityZero("main");
			setOpacityZero("logo");
			//setOpacityZero('contact');
			
			// Fade In behavior
			gBehaviorsArray["main"] = new Spry.Effect.AppearFade('main',{duration: 1000,from: 0,to: 100, finish: 
	        			function(){
	        				gBehaviorsArray["main"] = null; 
	        				gBehaviorsArray["logo"] = new Spry.Effect.AppearFade('logo', {duration: 1000,from: 0,to: 100, finish: 
				        			function(){
				        				gBehaviorsArray["logo"] = null; 
									displayOn("logo");
									displayOn("contact");
				        			}
						});
	        			}
	        		});
		}
		
		function click_map(){
			allOff();
			set_photo("img/wagon.jpg");
			window.frames['iFrameContact'].location = 'map.htm';
			displayOn('contact');
			displayOn("logo");
			displayOn("main");
			displayOn("nav");
		}
		
		function click_clients(){
			getElement("clients_url").style.color = "#ff0000";
			allOff();
			set_photo("img/mainslides/hitch.jpg");
			retrieveURL('event_links.php', 'events');
			
			setOpacityZero("main");
			setOpacityZero("logo");
			setOpacityZero("events");
			
			// setTimeout is required to get AJAX to complete second retrieveURL request
			// setTimeout("retrieveURL('events.htm', 'clients')",1000);
																		
			// Fade In behavior For Main Image
			gBehaviorsArray["main"] = new Spry.Effect.AppearFade('main',{duration: 1000,from: 0,to: 100, finish: 
	        			function(){
        					gBehaviorsArray["logo"] = new Spry.Effect.AppearFade('logo',{duration: 700,from: 0,to: 100, finish: 
				        			function(){
				        				// Fade Clients
									gBehaviorsArray["events"] = new Spry.Effect.AppearFade('events', {duration: 1000,from: 0,to: 100, finish: 
							        			function(){
			   									
							        				gBehaviorsArray["events"] = null; 
							        			}
									});
				        				
				        				gBehaviorsArray["logo"] = null;
				        			}	
				        	});
				        	
						gBehaviorsArray["main"] = null; 
	        			}
	        		});
			
			displayOn("nav");
		}
		
		function click_rates(){
			allOff();	
			//displayOn('rate_links');
			//displayOn('rates');
			//displayOn('rateText');
			displayOn("startingFee");
			displayOn("logo");
			displayOn("main");
			displayOn("nav");
			set_photo("img/blueskychairs.jpg");
			//retrieveURL('packages.htm', 'rateText');
		}
		
		function click_showRates(){
			allOff();	
			displayOn('rate_links');
			displayOn('rates');
			displayOn('rateText');
			displayOn("logo");
			displayOn("main");
			displayOn("nav");
			set_photo("img/blueskychairs.jpg");
			retrieveURL('packages.htm', 'rateText');
		}
		
		function click_products(){
			allOff();
			setTimeout("retrieveURL('products.htm', 'rateText')", 1000);
			displayOn('rate_links');
			displayOn('rates');
			displayOn('rateText');
			displayOn("logo");
			displayOn("main");
			displayOn("nav");
			set_photo("img/blueskychairs.jpg");
		}
		
		
		// Load slideshow iFrame with a new slideshow url
		function startShow(show){
			window.frames['iFrameSlideshow'].location = 'slideshows/' + show + '/index.htm';
		}
		
		// Toggle display of DIV
		function toggleDisplay(me){
			if (me.style.display=="inline" || me.style.display=="block"){
				me.style.display="none";
			}
			else {
				me.style.display="block";
			}
		}
		
		// Turn on a DIV
		function displayOn(me){
			var elem = getElement(me);
			if(elem){
				elem.style.display="block";
			}
		}
		
		// Turn off a DIV
		function displayOff(me){
			var elem = getElement(me);
			if(elem){
				elem.style.display="none";
			}
		}
		
		// Fade Off an element
		function displayFadeOff(me){
			var elem = getElement(me);
			if(elem){
				gBehaviorsArray["fadeOffElement"] = new Spry.Effect.AppearFade(me, {duration: 200,from: 100,to: 0, finish: 
		        			function(){
		        				gBehaviorsArray["fadeOffElement"] = null; 
							elem.style.display="none";
		        			}
				});
			}
		}
		
		function getCoordX(event)
		{
			x=event.clientX
			return x;
		}
		
		function getCoordsY(event){
			y=event.clientY
			return y;
		}
	
		
		// Sets the background image on the main DIV
		function set_photo(img_path){
			gImageLoaded = 0;
			
			img = new Image();
			img.src = img_path;
			
			img.onload = function(){
				if(img_path){
					getElement("main").style.background='url('+ img_path +')';			
				}else{
					getElement("main").style.background='none';
				}	
			}
			
			/* 
			if(img_path){
				getElement("main").style.background='url('+ img_path +')';			
			}else{
				getElement("main").style.background='none';
			}
			*/
			
		}
		
		// Sets the background image on the main DIV
		function set_slide_photo(img_path){
			img = new Image();
			img.src = img_path;
			
			img.onload = function(){
				//getElement("main").style.background='url(' + img.src + ')';
				
				getElement("mainImage").src = img_path;
				
				// Fade In behavior
				gBehaviorsArray["main"] = new Spry.Effect.AppearFade('main',{duration: 1000,from: 0,to: 100, finish: 
	        			function(){
	        				gBehaviorsArray["main"] = null; 
	        			}
	        		});
			}
			
		}
		
		// Sets the background color on the main DIV
		function setMainDivColor(hexColor){
			getElement("main").style.background=hexColor;
		}
		
		// Function to fix PNG transparency problems in IE
		var arVersion = navigator.appVersion.split("MSIE")
		var version = parseFloat(arVersion[1])
		
		function fixPNG(myImage) 
		{
		    if ((version >= 5.5) && (version < 7) && (document.body.filters)) 
		    {
		       var imgID = (myImage.id) ? "id='" + myImage.id + "' " : ""
			   var imgClass = (myImage.className) ? "class='" + myImage.className + "' " : ""
			   var imgTitle = (myImage.title) ? 
				             "title='" + myImage.title  + "' " : "title='" + myImage.alt + "' "
			   var imgStyle = "display:inline-block;" + myImage.style.cssText
			   var strNewHTML = "<span " + imgID + imgClass + imgTitle
		                  + " style=\"" + "width:" + myImage.width 
		                  + "px; height:" + myImage.height 
		                  + "px;" + imgStyle + ";"
		                  + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
		                  + "(src=\'" + myImage.src + "\', sizingMethod='scale');\"></span>"
			   myImage.outerHTML = strNewHTML	  
		    }
		}


		// AJAX FUNCTIONS
		function retrieveURL(url, element) {
		    if (window.XMLHttpRequest) { // Non-IE browsers
		      req = new XMLHttpRequest();
		      nesbit = element;
		      req.onreadystatechange = processStateChange;
		      try {
		      	// alert("get " + url);
		        req.open("GET", url, true);
		      } catch (e) {
		        alert(e);
		      }
		      req.send(null);
		    } else if (window.ActiveXObject) { // IE
		      req = new ActiveXObject("Microsoft.XMLHTTP");
		      if (req) {
		        nesbit = element;
		        req.onreadystatechange = processStateChange;
		        req.open("GET", url, true);
		        req.send();
		      }
		    }
		}
		 
		function processStateChange() {
		  	//alert("readyState " + req.readyState);
		    if (req.readyState == 4) { // Complete
		      if (req.status == 200) { // OK response
		        getElement(nesbit).innerHTML = req.responseText;
		        //alert("response ok.  --> " + req.responseText );
		      } else {
		        alert("Problem: " + req.statusText + ": " + req.status);
		      }
		    }
		}
