//EVENT LOADER
function addLoadEvent(func) {
    var oldonload = window.onload;
    if (typeof window.onload != 'function') {
        window.onload = func;
    } else {
        window.onload = function() {
            oldonload();
            func();
        }
    }
}



//Photo Gallery Image Swap

function showPic(whichpic) {
	if (window.timer) {
		clearTimeout(window.timer);
		document.getElementById("slideShowLabel").style.visibility = "hidden";
		document.getElementById("pauseBtn").style.display = "none";
		document.getElementById("playBtn").style.display = "none";
	}
	var placeholder = document.getElementById("galleryImage");
  var source = whichpic.getAttribute("href");
  placeholder.setAttribute("src",source);
  return false;
}

// Photo slideshow

function slideSwap(x) {
	var dir = "/photos/gallery/";
	var setLength = window.set.length;
	var galleryImage = document.getElementById("galleryImage");
	var imgSource = dir + window.set[n];
	var label = document.getElementById("slideShowLabel");
	if (x < setLength) {
		galleryImage.setAttribute("src",imgSource);
		label.firstChild.nodeValue = (x+1)+" of "+setLength;
		label.style.visibility = "visible";
		window.n++;
		//window.timer = setTimeout("slideSwap(window.n)", 4500);
		window.timer = setTimeout("fadeIn()", 50);
	} else {
		window.n = 0;
		window.timer = setTimeout("slideSwap(window.n)", 50);
	}
	return false;
}

function fadeOut() {
	window.fadeState = 0;
	var galleryImage = document.getElementById("galleryImage");
		new Effect.Opacity('galleryImage',
	    { duration: 0.4, 
	      transition: Effect.Transitions.linear, 
	      from: 1.0, to: 0.0 });
	window.timer = setTimeout("slideSwap(window.n)", 500);
}

function fadeIn() {
	window.fadeState = 1;
	var galleryImage = document.getElementById("galleryImage");
	new Effect.Opacity('galleryImage',
    { duration: 0.7, 
      transition: Effect.Transitions.linear, 
      from: 0.0, to: 1.0 });
	window.timer = setTimeout("fadeOut()", 5000);
}

function crtlPPStat(state) {
	if (state == "pause") {
		clearTimeout(window.timer);
		document.getElementById("pauseBtn").style.display = "none";
		document.getElementById("playBtn").style.display = "inline";
		//alert (state);
	} else if (state == "next") {
		clearTimeout(window.timer);
		window.timer = setTimeout("fadeOut()", 0);
		document.getElementById("pauseBtn").style.display = "inline";
		document.getElementById("playBtn").style.display = "none";
	} else if (state == "play") {
		document.getElementById("pauseBtn").style.display = "inline";
		document.getElementById("playBtn").style.display = "none";
		if (window.fadeState == 0) {
			slideSwap(window.n);
		} else {
			fadeOut();
		}
	}
}

function loadPicts(num) {
	var dir = "/photos/gallery/";
	var setLength = window.set.length;
	if (num < setLength) {
		var imgSrc = dir + window.set[num];
		pict= new Image(); 
	  pict.src=imgSrc;
	  num++;
	  loadPicts(num);
	} else {
		//slideSwap(window.n);
		window.timer = setTimeout("fadeOut()", 1000);
	}
}

function preloadPicts() {
	var dir = "/photos/gallery/";
	var i = 0;
	// create object
	imageObj = new Image();
	// set image list
	images = new Array("photo45_lg.jpg","photo56_lg.jpg","photo7_lg.jpg","photo8_lg.jpg","photo33_lg.jpg","photo50_lg.jpg","photo22_lg.jpg","photo16_lg.jpg","photo35_lg.jpg","photo15_lg.jpg");
// start preloading
	for(i=0; i<images.length; i++) {
		imageObj.src=dir + images[i];
	}
}

//addLoadEvent(preloadPicts);

function slideShow(slideSet,whichSet) {
	if (window.oldSet) {
		window.oldSet.className = "not-selected";
	}
	window.oldSet = whichSet;
	whichSet.className = "selected";
	var titleImg = whichSet.getElementsByTagName("img");
	var setTitle = titleImg[0].getAttribute("title");
// INTERIOR SETS
	// Livingroom and indoor kiva
	if (slideSet == "setI1") {
  	window.set = new Array("photo45_lg.jpg","photo71_lg.jpg","photo4_lg.jpg","photo93_lg.jpg","photo85_lg.jpg","photo59_lg.jpg","photo49_lg.jpg","photo60_lg.jpg","photo61_lg.jpg");
	}
	// Master Bedroom
	if (slideSet == "setI2") {
  	window.set = new Array("photo56_lg.jpg","photo48_lg.jpg","photo62_lg.jpg","photo55_lg.jpg","photo94_lg.jpg","photo63_lg.jpg");
	}
	// Second Bedroom
	if (slideSet == "setI3") {
  	window.set = new Array("photo7_lg.jpg","photo58_lg.jpg","photo88_lg.jpg","photo89_lg.jpg");
	}
	// Main bathroom
	if (slideSet == "setI4") {
  	window.set = new Array("photo8_lg.jpg","photo86_lg.jpg","photo87_lg.jpg");
	}
	// Extra, lower-level room
	if (slideSet == "setI5") {
  	window.set = new Array("photo33_lg.jpg","photo82_lg.jpg","photo83_lg.jpg","photo31_lg.jpg","photo14_lg.jpg");
	}
// EXTERIOR SETS
	// Approach to front
	if (slideSet == "setE1") {
  	window.set = new Array("photo50_lg.jpg","photo64_lg.jpg","photo41_lg.jpg","photo65_lg.jpg","photo79_lg.jpg","photo80_lg.jpg","photo66_lg.jpg","photo67_lg.jpg","photo11_lg.jpg","photo75_lg.jpg","photo81_lg.jpg");
	}
	// Front porch area
	if (slideSet == "setE2") {
  	window.set = new Array("photo22_lg.jpg","photo44_lg.jpg","photo84_lg.jpg","photo20_lg.jpg","photo92_lg.jpg","photo68_lg.jpg");
	}
	// Outdoor kiva and lounge area
	if (slideSet == "setE3") {
  	window.set = new Array("photo16_lg.jpg","photo17_lg.jpg","photo18_lg.jpg","photo47_lg.jpg","photo42_lg.jpg","photo14_lg.jpg","photo39_lg.jpg","photo77_lg.jpg","photo78_lg.jpg","photo91_lg.jpg");
	}
	// Outdoor shower
	if (slideSet == "setE4") {
  	window.set = new Array("photo35_lg.jpg","photo46_lg.jpg","photo64_lg.jpg","photo53_lg.jpg","photo37_lg.jpg");
	}
	// Surrounding scapes
	if (slideSet == "setE5") {
  	window.set = new Array("photo15_lg.jpg","photo73_lg.jpg","photo29_lg.jpg","photo13_lg.jpg","photo51_lg.jpg","photo52_lg.jpg","photo69_lg.jpg","photo70_lg.jpg","photo74_lg.jpg","photo90_lg.jpg");
	}
	if (window.timer) {
		clearTimeout(window.timer);
	}
	if (!window.timer) {
		// create the node for slide count
		var ss_label = document.createElement("p");
		ss_label.setAttribute("id","slideShowLabel");
		var ss_txt = document.createTextNode(".");
		ss_label.appendChild(ss_txt);
		var slideZone = document.getElementById("slideZone");
		document.getElementById("displayZone").insertBefore(ss_label, slideZone);
	}
	var titleOfSet = document.getElementById("slideShowTitle");
	titleOfSet.style.visibility = "visible";
	titleOfSet.firstChild.nodeValue = setTitle;
	document.getElementById("playBtn").style.display = "none";
	document.getElementById("pauseBtn").style.display = "inline";
	document.getElementById("nextBtn").style.display = "inline";
	window.n = 0;
	loadPicts(n);
	//fadeOut();
}

//Check Form
function checkForm(fName) {
	var userForm = document.forms[fName];
	if (userForm.first.value.length < 1) {
		alert ("Please enter your First Name");
		userForm.first.className ="med required";			
  	userForm.first.focus ();	
		return false;
  }
	if (userForm.last.value.length < 1) {
		alert ("Please enter your Last Name");
		userForm.last.className ="med required";	
  	userForm.last.focus ();
		return false;
  }
	if (userForm.email.value == "" ||
     userForm.email.value.indexOf ('@', 0) == -1 ||
     userForm.email.value.indexOf ('.', 0) == -1) {
		alert ("Please enter a valid email address in the form 'name@domain.com.'");
		userForm.email.className ="required";		
  	userForm.email.focus ();	
		return false;
  }
	if (userForm.email.value.indexOf (' ', 0) !== -1 ||
     userForm.email.value.indexOf ('"', 0) !== -1 ||
     userForm.email.value.indexOf (',', 0) !== -1) {
		alert ("Spaces, commas and quotes are not allowed in email addresses");
		userForm.email.className ="required";	
  	userForm.email.focus ();	
		return false;
  }
	if (userForm.phone.value.length <= 7) {
		alert ("Please enter your phone number in the form '123-123-1234.'");
		userForm.phone.className ="short-med required";	
  	userForm.phone.focus ();	
		return false;
  }
	if (userForm.phone.value == "") {
		alert ("Please enter your phone number in the form '123-123-1234.'");
		userForm.phone.className ="short-med required";			
  	userForm.phone.focus ();	
		return false;
  }
	if (userForm.phone.value.indexOf (' ', 0) !== -1 ||
     userForm.phone.value.indexOf ('(', 0) !== -1 ||
     userForm.phone.value.indexOf (')', 0) !== -1) {
		alert ("Please enter your phone number in the form '123-123-1234.'");
		userForm.phone.className ="short-med required";			
  	userForm.phone.focus ();	
		return false;
  }
	if (userForm.question.value.length < 3) {
		alert ("Please enter your question or dates of interest.");
  	userForm.question.focus ();	
		return false;
  }
  return true;
}
