// preload menu graphics
menuhome1 = new Image;
menuhome1.src = "images/mhome1.png";
menuhome2 = new Image;
menuhome2.src = "images/mhome2.png";
menuservices1 = new Image;
menuservices1.src = "images/mservices1.png";
menuservices2 = new Image;
menuservices2.src = "images/mservices2.png";
menuphoto1 = new Image;
menuphoto1.src = "images/mphoto1.png";
menuphoto2 = new Image;
menuphoto2.src = "images/mphoto2.png";
menuabout1 = new Image;
menuabout1.src = "images/mabout1.png";
menuabout2 = new Image;
menuabout2.src = "images/mabout2.png";
menuraves1 = new Image;
menuraves1.src = "images/mraves1.png";
menuraves2 = new Image;
menuraves2.src = "images/mraves2.png";
menucontact1 = new Image;
menucontact1.src = "images/mcontact1.png";
menucontact2 = new Image;
menucontact2.src = "images/mcontact2.png";

var section;
var pc = new Object();

function initScripts(page) {
	section = page;
	swapNav(2, section);

	if (page == 'about') {
		pc = document.getElementById('aboutpostcard');
		pc.oper = 0;
		pc.cycle = picCycle;
		pc.picloobj = document.getElementById('lowpc');
		pc.pichiobj = document.getElementById('highpc');
		setTimeout("pc.cycle()", 4000);
	}
}

function swapNav(num, obj) {
  var navobj = eval('document.' + obj);
  if (obj == section) {
    navobj.src = eval('menu' + obj + '2.src');
  }
  else {
    navobj.src = eval('menu' + obj + num + '.src');
  }
}

function picCycle() {
	if (this.oper == 0) {
		this.pichiobj.style.visibility = "visible";
		setOpacity(this.pichiobj, 0);
		setInterval('pc.cycle()', 6000);
	}

	var j = 0;	
	for (var i = 0; i < 21; i++) {
		if (this.oper == 1) {
			j = 20 - i;
		} else {
			j = i;
		}
		setTimeout('setOpacity(pc.pichiobj, '+ j +')',40*i);
	}
	
	if (++this.oper == 3) {
		this.oper = 1;
	}
}

document.getElementsByClassName = function(cl) {
	var retnode = [];
	var myclass = new RegExp('\\b'+cl+'\\b');
	var elem = this.getElementsByTagName('*');
	for (var i = 0; i < elem.length; i++) {
		var classes = elem[i].className;
		if (myclass.test(classes)) {
			retnode.push(elem[i]);
		}
	}
	return retnode;
}; 

var thumbs = new Array();
var thumbdivs = new Array();
var thumborder = new Array(23,22,24,25,26,27,14,13,12,11,15,16,17,18,1,2,3,4,5,6,7,8,9,10,19,20,21,28,29,30);
function initGallery() {
	thumbs = document.getElementsByClassName('thumbnail');
	thumbdivs = document.getElementsByClassName('thumbdiv');
	var height = document.getElementById('thumbblock').offsetHeight;
	var left = 0;

	for (var i = 0; i < thumbs.length; i++) {
		thumbs[i].onmouseover = doGrow;
		thumbs[i].onmouseout = doShrink;
		thumbs[i].onclick = doGallery;
		thumbs[i].growit = function(x) { growIt(x); };
		thumbs[i].shrinkit = function(x) { shrinkIt(x); };
		thumbs[i].intid = 0;
		thumbs[i].image = document.getElementById(thumbs[i].id);
		thumbs[i].origheight = thumbs[i].image.offsetHeight;
		thumbs[i].finalheight = height;
		thumbs[i].index = i;
		thumbs[i].request = thumborder[i];

		thumbdivs[i].style.left = left + 'px';
		thumbdivs[i].style.zIndex = 1000 - i;
		left = left + thumbs[i].image.offsetWidth;
	}
	
	displayPhotos();
}

var leftthumb = 0;

function moveThumbsLt() {
	if (leftthumb > thumbs.length -5) {
		return;
	}
	
	var mvleft = thumbs[leftthumb].image.offsetWidth;
	leftthumb += 1;
	
	for (var i = 0; i < thumbdivs.length; i++) {
		thumbdivs[i].style.left = thumbdivs[i].offsetLeft - mvleft + 'px';
	}
}

function moveThumbsRt() {
	if (leftthumb == 0) {
		return;
	}
	
	leftthumb -= 1;
	var mvright = thumbs[leftthumb].image.offsetWidth;
	
	for (var i = 0; i < thumbdivs.length; i++) {
		thumbdivs[i].style.left = thumbdivs[i].offsetLeft + mvright + 'px';
	}
}

function doGrow() {
	clearInterval(this.intid);
	this.intid = setInterval('thumbs[' + this.index + '].growit(' + this.index + ')', 10);
}

function doShrink() {
	clearInterval(this.intid);
	this.intid = setInterval('thumbs[' + this.index + '].shrinkit(' + this.index + ')', 10);
}

function growIt(index) {
	obj = thumbs[index].image;
	if (obj.offsetHeight >= obj.finalheight) {
		clearInterval(obj.intid);
		return;
	}
	obj.style.height = obj.offsetHeight + 1 + 'px';
}

function shrinkIt(index) {
	obj = thumbs[index].image;
	if (obj.offsetHeight <= obj.origheight) {
		clearInterval(obj.intid);
		return;
	}
	obj.style.height = obj.offsetHeight - 1 + 'px';
}

var before;
var after;

function displayPhotos() {
	before = document.getElementById('beforephoto');
	var btall = before.offsetHeight;
	var bwide = before.offsetWidth;
	after = document.getElementById('afterphoto');
	var atall = after.offsetHeight;
	var awide = after.offsetWidth;
	var block = document.getElementById('photoblock');
	var xtall = block.offsetHeight;
	var xwide = block.offsetWidth;
	
	before.style.left = (xwide - bwide) / 2 + 'px';
	before.style.top = (xtall - btall - 10) / 2 + 'px';
	after.style.left = (xwide - awide) / 2 + 'px';
	after.style.top = (xtall - atall - 10) / 2 + 'px';
	
	setOpacity(before, 0);
	before.style.visibility = 'visible';
	setOpacity(after, 0);
	after.style.visibility = 'visible';
	doFadeIn();
}

function doFadeIn() {
	var i = 0;
	if (before.offsetWidth > 1) {
		for (i = 0; i < 21; i++) {
			setTimeout('setOpacity(before, ' + i + ')', (40 * i));
		}
	}
	for (var j = 0; j < 21; j++) {
		setTimeout('setOpacity(after, ' + j + ')', (40 * (j + i)));
	}
	
	setTimeout('clearGalleryBusy()', (40 * (i + j)));
}

function setOpacity(obj, alpha) {
	var ostyle = obj.style;
	if( ostyle.MozOpacity != undefined ) { //Moz and older
		ostyle.MozOpacity = alpha/20;
	}
	else if( ostyle.filter != undefined ) { //IE
		ostyle.filter = "alpha(opacity=' + alpha * 5 + ')";
		obj.filters.alpha.opacity = ( alpha * 5 );
	}
	else if( ostyle.opacity != undefined ) { //Opera
		ostyle.opacity = alpha/20;
	}
}

var galhiobj;
var galloobj;
var gallerybusy;
var afterloaded;
var beforeloaded;

function clearGalleryBusy() {
	gallerybusy = 0;
}

function checkPicLoad(pic) {
	if (pic == 'after') {
		afterloaded = 1;
	} else if (pic == 'before') {
		beforeloaded = 1;
	}
	
	if (afterloaded && beforeloaded) {
		afterloaded = 0;
		beforeloaded = 0;
		gallerybusy = 1;
	
		displayPhotos();
	} 
}

function doGallery() {
	if (gallerybusy) {
		return;
	}
		
	document.getElementById('beforephoto').style.visibility = 'hidden';
	document.getElementById('afterphoto').style.visibility = 'hidden';

	makeRequest('gallery/gallery' + this.request + '.html');
}

function makeRequest(url) {
	var http_request = false;

	if (window.XMLHttpRequest) { // Mozilla, Safari, ...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
		}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}

	if (!http_request) {
		alert('Trouble with XMLHTTP instance');
		return false;
	}

	http_request.onreadystatechange = function() { changeContents(http_request); };
	http_request.open('GET', url, true);
	http_request.send(null);
}

function changeContents(http_request) {
	try {
		if (http_request.readyState == 4) {
			if (http_request.status == 200) {
				document.getElementById('photoblock').innerHTML = http_request.responseText;
				
				var afterpic = document.getElementById('afterphoto');
				var beforepic = document.getElementById('beforephoto');
				setOpacity(afterpic, 0);
				setOpacity(beforepic, 0);
				afterpic.onload = function() { checkPicLoad('after'); };
				beforepic.onload = function() { checkPicLoad('before'); };
			} else {
				alert(http_request.status + ': Sorry, there was a problem with your request. Please try again.');
			}
		}
	}
	catch( e ) {
		alert('Caught Exception: ' + e.description);
	}
}
