// JavaScript Document
// Find the X position of an element
// Arguments:
//      0: Object:			HTML element
function findX(objElement) {
	var lngLeft = 0;
	// Not Netscape
	if (objElement.offsetParent) {
		// Add up the horizontal offsets by scrolling through the parent
		// objects and finding each of their offsets
		while (objElement.offsetParent) {
			lngLeft += objElement.offsetLeft;
			objElement = objElement.offsetParent;
		}
	// Netscape
	} else if (objElement.x) {
		// Use Netscape's X property
		lngLeft += objElement.x;
	}
	return lngLeft;
}

// Find the Y position of an element
// Arguments:
//      0: Object:			HTML element
function findY(objElement) {
	var lngTop = 0;
	// Not Netscape
	if (objElement.offsetParent) {
		// Add up the vertical offsets by scrolling through the parent
		// objects and finding each of their offsets
		while (objElement.offsetParent) {
			lngTop += objElement.offsetTop;
			objElement = objElement.offsetParent;
		}
	// Netscape
	} else if (objElement.y) {
		// Use Netscape's Y property
		lngTop += objElement.y;
	}
	return lngTop;
}

// Cross-platform div/layer finder
// Arguments:
//      0: String:			ID/name of the div/layer
function getLayer(strLayer) {
	// XML-based browsers (IE 4+/Netscape 6+/Mozilla/Gecko)
	if (document.getElementById(strLayer)) {
		return document.getElementById(strLayer);
	// IE
	} else if (document.all) {
		return document.all[strLayer];
	// Netscape
	} else if (document.layers) {
		return document.layers[strLayer];
	}
}

// Cross-platform element finder
// Arguments:
//      0: String:			ID/name of the element
function getElement(strElement) {
	// XML-based browsers (IE 4+/Netscape 6+/Mozilla/Gecko)
	if (document.getElementById(strElement)) {
		return document.getElementById(strElement);
	// IE
	} else if (document.all) {
		return document.all[strElement];
	// Netscape
	} else if (document.layers) {
		return document[strElement];
	}
}

// Show a div/layer
// Arguments:
//      0: Object:			HTML element
//      1: String:			ID/name of the div/layer
//		2: Long Integer:	Left offset in pixels relative to the left of the HTML element
//		3: Long Integer:	Top offset in pixels relative to the top of the HTML element
function showLayer(objElement, strLayer, lngOffX, lngOffY) {
	var objLayer = getLayer(strLayer);
	if(objLayer == null)
	    return;
	
	if (objLayer.offsetParent) {
		objLayer.style.left = (findX(objElement) + lngOffX) + "px";
		objLayer.style.top = (findY(objElement) + lngOffY) + "px";
		objLayer.style.visibility = "visible";
	} else if (objLayer.x && objLayer.y) {
		objLayer.x = (findX(objElement) + lngOffX) + "px";
		objLayer.y = (findY(objElement) + lngOffY) + "px";
		objLayer.show();
	}
	objLayer.style.zIndex = 10000;
}

// Hide a div/layer
// Arguments:
//      0: String:			ID/name of the div/layer
function hideLayer(strLayer) {
	var objLayer = getLayer(strLayer);
	if(objLayer == null)
	    return;
	    
	objLayer.style.zIndex = 0;
//	pause(1, strLayer);
	(document.layers) ? objLayer.hide() : objLayer.style.visibility = "hidden";
}

// Pause
// Arguments:
//      0: Long Integer:	Number of milliseconds to wait before hiding layer
//      1: String:			ID/name of the div/layer
function pause(lngMS, strLayer) {
	lngInterval = 100;
	if (lngMS > 0) {
		toTimer = setTimeout("pause(" + (lngMS - lngInterval) + ", '" + strLayer + "')", lngInterval);
	} else {
		clearTimeout(toTimer);
		var objLayer = getLayer(strLayer);
		objLayer.style.zIndex = 0;
		(document.layers) ? objLayer.hide() : objLayer.style.visibility = "hidden";
	}
}


function popit(strURL, lngWidth, lngHeight) {
	window.open(strURL,'poppy',"toolbar=no,location=no,directories=no,status=no,menubar=no,scrolling=no;resizable=no,width=" + lngWidth + ",height=" + lngHeight);
}

function checkForm(strForm) {
	var f = document.forms[strForm];
	var fld = f.elements;
	for (var i = 0; i < fld.length; ++i) {
		if (fld[i].required == "true" && fld[i].value == "") {
			alert("The " + fld[i].name + " field is required.");
			fld[i].focus();
			return false;
		}
		if (fld[i].name == "email") {
			objRegExp = new RegExp("^(([^<>;()[\\]\\\\.,;:@\"]+(\\.[^<>()[\\]\\\\.,;:@\"]+)*)|(\".+\"))@((([a-z]([-a-z0-9]*[a-z0-9])?)|(#[0-9]+)|(\\[((([01]?[0-9]{0,2})|(2(([0-4][0-9])|(5[0-5]))))\\.){3}(([01]?[0-9]{0,2})|(2(([0-4][0-9])|(5[0-5]))))\\]))\\.)*(([a-z]([-a-z0-9]*[a-z0-9])?)|(#[0-9]+)|(\\[((([01]?[0-9]{0,2})|(2(([0-4][0-9])|(5[0-5]))))\\.){3}(([01]?[0-9]{0,2})|(2(([0-4][0-9])|(5[0-5]))))\\]))$");
			if (!fld[i].value.match(objRegExp)) {
				alert("Please enter a valid e-mail address.");
				fld[i].focus();
				return false;
			}
		}
	}
	f.submit;
	return true;
}

function checkSignUpForm() {
	var f = document.forms["signup"];
	var fld = f.elements;
	for (var i = 0; i < fld.length; i++) {
		if (fld[i].required == "true" && fld[i].value == "") {
			alert("The " + fld[i].name + " field is required.");
			fld[i].focus();
			return false;
		}
		if (fld[i].name == "email") {
			objRegExp = new RegExp("^(([^<>;()[\\]\\\\.,;:@\"]+(\\.[^<>()[\\]\\\\.,;:@\"]+)*)|(\".+\"))@((([a-z]([-a-z0-9]*[a-z0-9])?)|(#[0-9]+)|(\\[((([01]?[0-9]{0,2})|(2(([0-4][0-9])|(5[0-5]))))\\.){3}(([01]?[0-9]{0,2})|(2(([0-4][0-9])|(5[0-5]))))\\]))\\.)*(([a-z]([-a-z0-9]*[a-z0-9])?)|(#[0-9]+)|(\\[((([01]?[0-9]{0,2})|(2(([0-4][0-9])|(5[0-5]))))\\.){3}(([01]?[0-9]{0,2})|(2(([0-4][0-9])|(5[0-5]))))\\]))$");
			if (!fld[i].value.match(objRegExp)) {
				alert("Please enter a valid e-mail address.");
				fld[i].focus();
				return false;
			}
		}
		if (fld[i].name == "confirm password") {
			if (fld[i].value != fld["password"].value) {
				alert("Your passwords do not match.");
				fld["password"].value = "";
				fld[i].value = "";
				fld["password"].focus();
				return false;
			}
		}
	}
	f.submit;
	return true;
}

//pops up the gallery slide viewer pages
var win = null;
function newWindow(mypage,myname,w,h,features) {
  var winl = (screen.width-w)/2;
  var wint = (screen.height-h)/2;
  if (winl < 0) winl = 0;
  if (wint < 0) wint = 0;
  var settings = 'height=' + h + ',';
  settings += 'width=' + w + ',';
  settings += 'top=' + wint + ',';
  settings += 'left=' + winl + ',';
  settings += features;
  win = window.open(mypage,myname,settings);
  win.window.focus();
}