// JavaScript Document
<!--
//
function changeLargePic(imgsrc){
		var img=document.getElementById("LargeImage")
		img.src=imgsrc;
		}

function trimString (str) {
  while (str.charAt(0) == ' ')
    str = str.substring(1);
  while (str.charAt(str.length - 1) == ' ')
    str = str.substring(0, str.length - 1);
  return str;
}

var userAgent = window.navigator.userAgent;
var is_ns = ((userAgent.indexOf('compatible') == -1) && (userAgent.indexOf('mozilla') != -1) && (!is_opera) && (!is_webtv)&& (!is_saf));

function setInnerHtml( element, html )
{
try
{
if( is_ns )
{
var r = element.ownerDocument.createRange();
r.selectNodeContents(element);
r.deleteContents();
var df = r.createContextualFragment(html);
element.appendChild(df);
}
else
{
element.innerHTML = html;
}
}
catch( err )
{
//alert( err );
}
}

function limitInputLength(elem, length){
		var elemObj=MM_findObj(elem);
		if (elemObj.length>length){
				alert('This input is limited to ' + length + ' characters.');}
}
				

function checkDocumentExtension(elem, filename, type){
		var msg;
		var elemObj=document.getElementById(elem).value;
		if (type=='document'){
				if ((filename.indexOf('.doc')!=-1)||(filename.indexOf('.pdf')!=-1)||(filename.indexOf('.xls')!=-1)){}
				else{
					msg='You are trying to upload an image or other file type as a document.\n';
					msg+='You may only upload document files using this form.';
					alert(msg);
					elemObj='';
					return false;}}
		else if (type=='image'){
				if ((filename.indexOf('.jpg')!=-1)||(filename.indexOf('.gif')!=-1)||(filename.indexOf('.bmp')!=-1)){}
				else{
					msg='You are trying to upload a document or other file type as an image.\n';
					msg+='You may only upload image files using this form.';
					alert(msg);
					elemObj='';
					return false;}}
}

var popUpWin=0;
function popUpWindow(URLStr, left, top, width, height)
{
  if(popUpWin)
  {
    if(!popUpWin.closed) popUpWin.close();
  }
  popUpWin = open(URLStr, 'popUpWin', 'toolbar=no,location=no,directories=no,status=no,menub ar=no,scrollbar=yes,resizable=yes,copyhistory=yes,width='+width+',height='+height+',left='+left+', top='+top+',screenX='+left+',screenY='+top+'');
}


function evaluateCheckBox(elID, hideID, theForm){
		var el=MM_findObj(elID);
		if (el.checked==true){blocking(hideID, 'block', theForm);}
		else{blocking(hideID, 'none', theForm);}
}

function confirmDelete()
{
	var msg;
	msg="You are about to delete this item.\n";
	msg+="Do you wish to continue?";
	if (confirm(msg)){return true;}
	else{return false;}
}

function messageWindow(title, msg)
{
  var width="400", height="250";
  var left = (screen.width/2) - width/2;
  var top = (screen.height/2) - height/2;
  var styleStr = 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbar=no,resizable=no,copyhistory=yes,width='+width+',height='+height+',left='+left+',top='+top+',screenX='+left+',screenY='+top;
  var msgWindow = window.open("","msgWindow", styleStr);
  var head = '<head><title>'+title+'</title>'
  var linkstyle = '<link rel="stylesheet" type="text/css" media="screen" href="/includes/default.css"/>';
  var head = head + linkstyle + '</head>';
  var body = '<div class="error">'+msg+'<br><br><form><input type="button" value="   Done   " onClick="self.close()"></form></div>';
  msgWindow.document.write(head + body);
}


function getParent(el){
	var strParent = (el.parentNode || el.parentElement)
	return strParent
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function highlightActiveRow(theField, theColor){
		var thisObj=MM_findObj(theField);
		do{
				parentObj=getParent(thisObj);
				thisObj=parentObj;
			} while (parentObj.tagName.toLowerCase()!='tr')
		parentObj.bgColor=theColor;}		
		
function blocking(nr, condition, theForm)
{
	if (document.layers){
		document.layers[nr].display=condition;}
	else if (document.all){
		document.all[nr].style.display=condition;}
	else if (document.getElementById){
		document.getElementById(nr).style.display=condition;}
}

// Strip Numbers entered for Phone Number and Re-Format
//*****************************************************
function formatPhone(objPhone) {
	var basePhone = "";
	var newPhone = "";
	objPhone=MM_findObj(objPhone);
	if (objPhone.value.length > 0) {
		var intAllowed = "0123456789";
		for (var i=0;i<objPhone.value.length;i++) {
			for (var j=0;j<intAllowed.length;j++) {
				if (objPhone.value.charAt(i) == intAllowed.charAt(j)) {
					basePhone += objPhone.value.charAt(i);
					break;
				}
			}
		}
		if (basePhone.length != 10) {
			return false;
		} else {
			newPhone += "(" + basePhone.substr(0,3) + ")"; // area code
			newPhone += " " + basePhone.substr(3,3); // prefix
			newPhone += "-" + basePhone.substr(6,4); // suffix
			objPhone.value = newPhone;
			return true;
		}
	}
}

// Validate Phone Number
//************************
function validatePhone(InValue) {
	var objRegExp = /^\([1-9]\d{2}\)\s\d{3}\-\d{4}$/;
	return objRegExp.test(InValue)
}

// Validate Email Address
//************************
function validateEmail(inValue) {
	var objRegExp = "^([a-zA-Z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,4}\$";
	var objEmailRegExp = new RegExp(objRegExp);
	return objEmailRegExp.test(inValue);
}

function validateForm(theForm) {
	var msg = '',isVisible,isDivVisible;
	var formObj, elemObj, condElemObj, parentObj,useObj;
	var iIsReq, blnIsCond;
	var intPos,Count=0,rdoCount=0,msgCount=0;
	var strPrevElemName='';
	//Get Form Object
	formObj = MM_findObj(theForm);
	//alert(formObj.name + ' ' + theForm);
	//Validate Contact Information
	for (var i=0; i<formObj.length; i++){
		isVisible=true;
		elemObj = formObj.elements[i];
		blnIsCond = elemObj.id.indexOf("cond");
		if (blnIsCond > -1){
			useObj=elemObj;
			do{
				parentObj=getParent(useObj);
				useObj=parentObj;
			} while (parentObj.tagName.toLowerCase()!='div')
			isDivVisible=parentObj.style.display;
			if (isDivVisible=='none'){isVisible=false;}
		}
		blnIsReq = elemObj.id.indexOf("req");
		if ((blnIsReq > -1)&&(isVisible)){
			switch (elemObj.type){
				case 'file':
					if (elemObj.value.length == 0){msg+="-- <font class='error'>"+elemObj.title+"</font> is required and cannot be left blank.<br>";}
				case 'text':
					if (elemObj.value.length == 0){msg+="-- <font class='error'>"+elemObj.title+"</font> is required and cannot be left blank.<br>";}
					else{
						if (elemObj.value.length > 0){
							if (elemObj.id.toLowerCase().indexOf("email") > -1){
								var isValidEmail = validateEmail(elemObj.value);
								if (!isValidEmail){
									msg+="-- <font class='error'>"+elemObj.title+"</font> does not contain a valid email address (EXAMPLE: someone@internet.com).<br>";}}
							else if ((elemObj.id.toLowerCase().indexOf("phone") != -1)||(elemObj.id.toLowerCase().indexOf("fax") != -1)){
								var isValidPhone = formatPhone(elemObj.id)
								if (!isValidPhone){
									msg+="-- <font class='error'>"+elemObj.title+"</font> does not contain a valid phone or fax number (EXAMPLE: (000) 000-0000).<br>";}}
							else if (elemObj.id.toLowerCase().indexOf("_isnum_") != -1){
									if (isNaN(elemObj.value)){
											msg+="-- <font class='error'>"+elemObj.title+"</font> must be a valid number.<br>";}
							}
							
						}}					
					break;
				case 'textarea':
					if (elemObj.value.length == 0){
					msg += "-- <font class='error'>"+elemObj.title+"</font> is required and cannot be left blank.<br>";}
					break;
				case 'radio':
					if (elemObj.name!=strPrevElemName){
						rdoCount=0;
						var theRdoGroup = eval('document.forms["'+formObj.id+'"].' + elemObj.name);
						//alert(theRdoGroup);
						for (var j=0;j<theRdoGroup.length;j++){
							if (theRdoGroup[j].checked){
								rdoCount=1;
								break;}}
						if (rdoCount==0){
							msg += "-- You must select one of the options available for <font class='error'>"+elemObj.title+"</font>.<br>";}}
					strPrevElemName=elemObj.name;
					break;
				case 'checkbox':
					if (!elemObj.checked){msg+="-- <font class='error'>"+elemObj.title+"</font> is required.<br>";}
					break;
				case 'select-one':
					if (elemObj.options[elemObj.selectedIndex].value == ""){
						msg+="-- <font class='error'>"+elemObj.title+"</font> is required and must contain a valid selection.<br>";}
					break;
				default:;}
		}
		else if ((elemObj.type=='text')&&(isVisible)){
			if (elemObj.value.length > 0){
				if (elemObj.id.toLowerCase().indexOf("email") != -1){
					var isValidEmail = validateEmail(elemObj.value);
					if (!isValidEmail){
						msg+="-- <font class='error'>"+elemObj.title+"</font> does not contain a valid email address (EXAMPLE: someone@internet.com).<br>";}}
				else if ((elemObj.id.toLowerCase().indexOf("phone") != -1)||(elemObj.id.toLowerCase().indexOf("fax") != -1)){
					var isValidPhone = formatPhone(elemObj.id)
					if (!isValidPhone){
						msg+="-- <font class='error'>"+elemObj.title+"</font> does not contain a valid phone or fax number (EXAMPLE: (000) 000-0000).<br>";}}}
		}
	}
	if (msg.length > 0) {
		msg='The following errors occured:<br><br>'+msg;
		messageWindow('Error(s) in Form', msg);
		return false;}
	else {return true;}
}

function findRequired(color){
	var arrHTML = new Array();
	var d=document.forms;
	var formObj, elemObj, parentObj, useObj;
	var i=0, x=0, z=0, y=0;
	for (i=0;i<d.length;i++){
			formObj=document.forms[i];
			for (x=0;x<formObj.elements.length;x++){
				elemObj=formObj.elements[x];
				if (elemObj.id.length>4){
						if (elemObj.id.indexOf('req_')>-1){
							arrHTML[z]=elemObj.id;
							z+=1;
						}
				}
			}
	}
	for (y=0;y<z;y++){
		elemObj=MM_findObj(arrHTML[y]);
		parentObj=getParent(elemObj);
		parentObj.innerHTML=trimString(parentObj.innerHTML)+'<font class="Required">*</font>';
	}
}
/* Generic Get Object Script */
var tempX=0,tempY=0;var IE=document.all?true:false;
function getObj(oId){var d=document,el=d.getElementById?d.getElementById(oId):d.all?d.all[oId]:d[oId];if(el){return el;}}
function doCaption(txt){if(txt.length > 0){if(!IE)document.captureEvents(Event.MOUSEMOVE);document.onmousemove=getMouseXY;fillCaption(txt);}}
function clearCaption(){if(!IE)document.releaseEvents(Event.MOUSEMOVE);document.onmousemove=null;setCaption(false);return true;}
function getMouseXY(e){if(IE){if(document.compatMode=='CSS1Compat'){tempX=event.clientX+document.documentElement.scrollLeft;tempY=event.clientY+document.documentElement.scrollTop;}else{tempX=event.clientX+document.body.scrollLeft;tempY=event.clientY+document.body.scrollTop;}}else{tempX=e.pageX;tempY=e.pageY;}if(tempX < 0){tempX=0;}if(tempY<0){tempY=0;}setCaption(true);return true;}
function setCaption(b){var caption=getObj('ThumbCaption');if(caption){if(b){caption.style.display='block';caption.style.top=(tempY+12)+'px';caption.style.left = (tempX + 12)+'px';}else{caption.style.display='none';}}return true;}
function fillCaption(txt){var caption=getObj('ThumbCaption');if(caption){caption.innerHTML=txt}return true;}