
function mtValidate(frm)
{
	var i, e;
	var req = "";
	var maxLen = "";
	var sMaskMsg = "";
	var retVal = true;
	for (i = 0; i < frm.length; i++) {
		e = frm.elements[i];

		// Fill in some default values.
		if (e.getAttribute("friendlyName") == null)
			e.friendlyName = (e.name == null || e.name == "") ? e.id : e.name;

		// Remove leading and trailing spaces on text fields.
		if (e.type.search(/text|textarea|password|file/) != -1)
			e.value = Trim(e.value);

		if (e.getAttribute("required") != null) {
			if (e.value == "")
				req += "      " + e.friendlyName + "\n";
		}

		if (e.friendlyName == "Email Address") {
			if (e.value.search(/^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/) == -1)
				sMaskMsg += "      " + e.friendlyName + " as entered is not a valid email address.\n";

		}

		if (e.getAttribute("maxLength") != null && e.maxLength > 0) {
			if (e.value.length > e.getAttribute("maxLength"))
				maxLen = maxLen + "      " + e.friendlyName + " (max length of " + e.getAttribute("maxLength") + ")\n";
		}
	}

	if (req != "") {
		alert("                   Validation Error\n____________________________________\n\nRequired Fields:\n\n" + req);
		retVal = false;
	}

	if (maxLen != "") {
		alert("                   Validation Error\n____________________________________\n\nMaximum Length Exceeded:\n\n" + maxLen);
		retVal = false;
	}
	if (sMaskMsg != "") {
		alert("                   Validation Error\n____________________________________\n\nValidation Error:\n\n" + sMaskMsg);
		retVal = false;
	}

	// If validate succeeded, fix up the values.
	if (retVal == true && frm.getAttribute("meta") != null) {

//alert(frm.length);

//		frm.meta.value = "<meta>";
		for (i = 0; i < frm.length; i++) {
			e = frm.elements[i];

			// Fill in some default values.
			if (e.type.indexOf("select") == -1 && e.friendlyValue == e.undef)
				e.friendlyValue = e.value;
/*
			frm.meta.value = frm.meta.value + "<element>";
			frm.meta.value = frm.meta.value + "<friendlyName>" + e.friendlyName + "</friendlyName>";

			if (e.type == "checkbox") {
				frm.meta.value = frm.meta.value + "<friendlyName>" + e.friendlyName + "|-|value=" + (e.checked ? e.value : "") + "|-|";
			}
			else if (e.type == "radio" && e.checked) {
				frm.meta.value = frm.meta.value + "friendlyName=" + e.friendlyName + "|-|value=" + e.value + "|-|";
			}
			else if (e.type.indexOf("select") == -1) {
				frm.meta.value = frm.meta.value + "friendlyName=" + e.friendlyName + "|-|value=" + e.value + "|-|";
			}
			else {
				frm.meta.value = frm.meta.value + "friendlyName=" + e.friendlyName + "|-|value=" + e.options[e.selectedIndex].value + "|-|" + "friendlyValue=" + e.options[e.selectedIndex].text + "|-|";
			}
			frm.meta.value = frm.meta.value + "</element>";
*/
		} // for
//		frm.meta.value = frm.meta.value + "<meta>";
	}

	return retVal;
}	// mtValidate


function Trim(str)
{
	var objStr = new String(str);
	var pat = /^\s*(\S*(\s+\S+)*)\s*$/;
	return objStr.replace(pat, "$1");
}


function StripRequired(which)
{
	var i;
	for (i=0;i<which.length;i++) {
		var tempobj=which.elements[i];
		if (tempobj.name.substring(0,8)=="required")
			tempobj.name = tempobj.name.substr(8);
	}
	return true;
}


function IsNumeric(str)
{
	var objStr = new String(str);
	return ( objStr.match(/^\d+$/) != null );
}


function IsDate(str)
{
	var l_date = new Date( str );
	return !isNaN( l_date.getDate() );
}


function InitDropDown(dropdown, val)
{
	var i;
	for (i = 0; i < dropdown.options.length; i++) {
		if ( dropdown.options[i].value == val ) {
			dropdown.selectedIndex = i;
			break;
		}
	}
}

function InitRadio(rbtn, val)
{
	var i;
	if ( val != '' ) {
		for (i = 0; i < rbtn.length; i++)
			rbtn[i].checked = ( rbtn[i].value == val );
	}
}

function RadioValue(rbtn)
{
	var i;
	for (i = 0; i < rbtn.length; i++) {
		if ( rbtn[i].checked )
			return rbtn[i].value;
	}
	return '';
}


// returns just the file name (including the extension).
function ExtractFileName(path) {
	var pathSep, pos, pageName;

	if ( path.indexOf( 'file://' ) >= 0 )
		pathSep = '\\';
	else
		pathSep = '/';
	pos = path.lastIndexOf( pathSep );
	if ( pos == -1 )
		pageName = path.substr(0);
	else
		pageName = path.substr(pos + 1);

	return pageName;
}


// Returns ONLY the page name part - NO extension.
function ExtractPageName(path) {
	var pathSep, pos, page, pageName;

	pageName = ExtractFileName(path);
	pageName = pageName.substring(0, pageName.indexOf( '.' ) );
	return pageName;
}


function OpenVerse( vs ) {
	var w = window.open('http://bible.gospelcom.net/cgi-bin/bible?passage=' + vs + '&version=NIV&showfn=yes&showxref=no&language=english', 'verse', "resizable=yes,scrollbars=yes,menubar=yes,location=yes,status=yes,toolbar=yes,left=0,screenX=0,top=0,screenY=0");
	w.focus();
}

function OpenInfoWindow(url, winWidth, winHeigth, winName) {
	// Check if there is a cookie to disable this popup.
	if (GetCookie(url) == "") {
		if (winName == null)
			winName = "infoWin";
		var w = window.open(url, winName, "width=" + winWidth + ",height=" + winHeigth + ",resizable=yes,scrollbars=yes,menubar=no,location=no,status=no,toolbar=no,left=0,screenX=0,top=0,screenY=0");
		w.focus();
	}
	return void(0);
}


function GetCookie(name) {
	return unescape(GetPairValue(document.cookie, name));
}


// Expires is in number of days.  0 means never expire.
function SetCookie (name, value, expires, path, domain, secure) {
	if (!navigator.cookieEnabled)
		alert("Your browser does not allow cookies to be set, this info can not be saved.");

	var sCookie = name + "=" + escape(value);
	if (expires) {
		// convert to milliseconds
		expires = expires * 24 * 60 * 60 * 1000;
		var dtExpire = new Date();
		if (expires == 0)
			dtExpire.setFullYear(dtExpire.getFullYear() + 50);
		else
			dtExpire.setTime(dtExpire.getTime() + expires);
		sCookie  += ";expires=" + dtExpire.toGMTString();
	}
	if (path)
		sCookie  += ";path=" + path;
	if (domain)
		sCookie  += ";domain=" + domain;
	if (secure)
		sCookie  += ";secure=true";

	document.cookie = sCookie;
}


function GetPairValue(pairs, name) {
	var value = "";
	var pos = pairs.indexOf(name + "=");
	if (pos != -1) {
		var start = pos + name.length + 1;
		var end = pairs.indexOf(";", start);
		if (end == -1)
			end = pairs.length;
		value = pairs.substring(start, end);
	}

	return value;
} // end GetPairValue

