/*
	display.js
	
	Javascripts for ~~ website
*/
/*
	initRollovers(): Generic image rollover script
	Source:
	Standards Compliant Rollover Script
	Author : Daniel Nolan
	http://www.bleedingego.co.uk/webdev.php
	Modified with info from http://www.wandforge.com/rollover/
	Other modifications per site.
*/
function initRollovers() {
	if (!document.getElementById) { return; }
	var aPreLoad = new Array();
	var sTempSrc;
	var aImages = document.getElementsByTagName('img');
	for (var i = 0; i < aImages.length; i++) {
		if (aImages[i].className.match("rollover")) {
			var src = aImages[i].getAttribute('src');
			var ftype = src.substring(src.lastIndexOf('.'), src.length);
			var hsrc = src.replace(ftype, '_over'+ftype);
			aImages[i].setAttribute('hsrc', hsrc);
			aPreLoad[i] = new Image();
			aPreLoad[i].src = hsrc;
			aImages[i].onmouseover = function() {
				sTempSrc = this.getAttribute('src');
				this.setAttribute('src', this.getAttribute('hsrc'));
			}
			aImages[i].onmouseout = function() {
				if (!sTempSrc) sTempSrc = this.getAttribute('src').replace('_over'+ftype, ftype);
				this.setAttribute('src', sTempSrc);
			}
		}
	}
}
/*
	Source:
	Suckerfish Dropdowns
	Authors : PATRICK GRIFFITHS, DAN WEBB
	http://www.alistapart.com/articles/dropdowns/
	Other modifications per site.
*/
sfHover = function() {
	var sfEls = document.getElementById("nav").getElementsByTagName("LI");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			this.className+=" over";
		}
		sfEls[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" over\\b"), "");
		}
	}
}


// Only activates the 'Submit' button if the required fields are completed.
function forceSubmit() {
	document.getElementById('submit').disabled = true;
	// insert the IDs of any form elements that need to be completed here:
	formlabels = document.getElementsByTagName('label');
	needed = new Array(); b = 0;
	for (a=0;a<formlabels.length;a++) {
		if (formlabels[a].className.match('req')) {
			if (formlabels[a].getElementsByTagName('input').length>0) {
//				alert(formlabels[a].getElementsByTagName('input')[0]);
				needed[b] = formlabels[a].getElementsByTagName('input')[0].getAttribute('id');
				b++;
			} else {
				needed[b] = formlabels[a].getElementsByTagName('textarea')[0].getAttribute('id');
				b++;
			}
		}
	}
//	alert(needed[0].id);
	b = 0;
//	needed = new Array('name','email','subject','message');
	for (a=0;a<needed.length;a++) {
		document.getElementById(needed[a]).onkeyup = function() {
			forceSubmitTest();
			return;
		}
	}
	forceSubmitTest();
	return;
}
// Tests whether the form is ready to submit. Called by certain elements in forcSubmit().
function forceSubmitTest() {
	b = 0;
	for (e=0;e<needed.length;e++) {
		if (document.getElementById(needed[e]).value=='') {
			// do nothing
		} else {
			b++;
		}
	}
	if (b==needed.length) {
		// all the required fields are complete
		document.getElementById('submit').disabled = false;
		document.getElementById('submit').className = document.getElementById('submit').className.replace(new RegExp("nonactive"), "");
	} else {
		document.getElementById('submit').disabled = true;
		if (!document.getElementById('submit').className.match('nonactive')) {
			document.getElementById('submit').className += ' nonactive';
		}
	}
	return;
}


// Tests for MSIE version. Returns version whole number
// assumes that 5 is only wanted as a flag to reject too-old versions of IE.
// otherwise, 0==FALSE== not MSIE.
// This is more reliable than browser testing, because browsers installed with multi-IE hacks can misidentify themselves.
// It will misidentify if somebody's upgraded jscript by hand, but that's an edge case.
function isIE() {
	/*@cc_on
		if (@_jscript_version < 5.6) { return 5; }
		if (@_jscript_version >= 5.6 && @_jscript_version < 5.7) { return 6; }
		if (@_jscript_version >= 5.7 && @_jscript_version < 5.8) { return 7; }
		if (@_jscript_version >= 5.8 && @_jscript_version < 5.9) { return 8; }
	@*/
	return 0;
}
/*
Correctly handle PNG transparency in Win IE 5.5 & 6.
http://homepage.ntlworld.com/bobosola. Updated 18-Jan-2006.
*/
function pngFix(){var arVersion=navigator.appVersion.split("MSIE");var version=parseFloat(arVersion[1]);if((version>=5.5) && (document.body.filters)){for(var i=0;i<document.images.length;i++){var img=document.images[i];var imgName=img.src.toUpperCase();if(imgName.substring(imgName.length-3, imgName.length)=="PNG"){var imgID=(img.id) ? "id='"+img.id+"' " : "";var imgClass=(img.className) ? "class='"+img.className+"' " : "";var imgTitle=(img.title) ? "title='"+img.title+"' " : "title='"+img.alt+"' ";var imgStyle="display:inline-block;"+img.style.cssText;if(img.align=="left"){imgStyle="float:left;"+imgStyle;}if(img.align=="right"){imgStyle="float:right;"+imgStyle;}if(img.parentElement.href){imgStyle="cursor:hand;"+imgStyle;}var strNewHTML="<span "+imgID+imgClass+imgTitle +" style=\""+"width:"+img.width+"px;height:"+img.height+"px;"+imgStyle+";" +"filter:progid:DXImageTransform.Microsoft.AlphaImageLoader" +"(src=\'"+img.src+"\', sizingMethod='scale');\"></span>";img.outerHTML=strNewHTML;i=i-1;}}}return;}

function launchAll() {
	if (isIE() && isIE()<7) { pngFix(); }
	if (document.getElementById('submit')) { forceSubmit(); }
}
window.onload = launchAll;

/* EOF */
