/* Zip/Postal Code : Start */

function chkZip (event,_fld,_pf) {
	var _val = DOM(_pf+'country',0).value;
	switch (_val) {
		case 'CA': return postalCode(event,_fld,d.form.remLen,7); 	break; // ANA NAN
		case 'US': return zipCode(event,_fld,d.form.remLen,10); 	break; // 99999 or 99999-9999
  		  default: return true; break;
	}
}

function zipCode (event,field,countfield,maxlimit) { // US Only
	maxlimit -= 1;
	len = field.value.length;
	// Numbers Only [0-9]		
	if (len > maxlimit || event.keyCode == 45) { // 32 = space
		event.returnValue = false;
	} else if ((event.keyCode < 48 || event.keyCode > 57) && event.keyCode != 45) { 
		event.returnValue = false;
	} else {
		countfield.value  = maxlimit - len;
	}
	field.value = field.value.toUpperCase(); 	
	if (len == 5) { field.value = field.value + "-"; }
}

function postalCode (event,field,countfield,maxlimit) { // Canada Only
	maxlimit -= 1;
	len = field.value.length;
	// Odd - Letters [A-Z|a-z]
	if (len == 0 || len == 2 || len == 5) {
		if ((event.keyCode < 65 || event.keyCode > 90) && (event.keyCode < 97 || event.keyCode > 122) && event.keyCode != 32) {
			//alert('MUST enter a Letter [A-Z]');	
			event.returnValue = false;
		} else if (len > maxlimit || event.keyCode == 32) {  // 32 = space
			event.returnValue = false;
		} else {
			countfield.value = maxlimit - len;
		}
	} 
	// Even - Numbers [0-9]
	else {
		if (len > maxlimit || event.keyCode == 32) { // 32 = space
			event.returnValue = false;
		} else if ((event.keyCode < 48 || event.keyCode > 57) && event.keyCode != 32) { 
			//alert('MUST enter a Number [0-9]. ');	
			event.returnValue = false;
		} else {
			countfield.value  = maxlimit - len;
		}
	}
	field.value = field.value.toUpperCase(); 	
	if (len == 3) { field.value = field.value + " "; }
}
/* Zip/Postal Code : End */


/* Cookie Functions */

function createCookie (_name, _val, _days) {
	if (_days) {
		var date = new Date();
		date.setTime(date.getTime() + (_days*24*60*60*1000));
		var expiry = "; expires="+ date.toGMTString();
	} else {
		var expiry = "";
	}
	document.cookie = _name +"="+ _val + expiry +"; path=/";
}

function readCookie (_name) {
	var nameEQ = _name + "=";
	var ca = document.cookie.split(';');
	for (var i=0; i < ca.length; i++) {
		var c = ca[i];
		while (c.charAt(0) == ' ') {
			c = c.substring(1,c.length);
		}
		if (c.indexOf(nameEQ) == 0) {
			return c.substring(nameEQ.length,c.length);
		}
	}
	return '';
}

function removeCookie (_name) {
	createCookie(_name,'',-1);
}


/* MenuSubmenu */

function swMenu ( objID, path ) {
	if (isAll || isID) {
		var _objID = 'mSec_'+objID;
		if (isDOM(_objID)) {
			var obj = DOM(_objID,1);
			if (obj.display == 'none') { 
				obj.display = 'block'; 
				//remMenu(objID,1); // On
			} else { 
				obj.display = 'none'; 
				//remMenu(objID,0); // Off
			}
		}
	}
	// Non-Compliant Browsers
	else {
		self.location = base + path + '.htm';
	}
	return;
}

// Save Current Memory Section Displays
function remMenu ( objID, swt ) {
	var nStr = "";
	var arr  = new Array();
	var str  = readCookie('dMMenu');
	if (str!='') { 
		_arr = str.split(','); 
		for ( var x in _arr ) { 
			arr[_arr[x]] = 1;
		}
	}
	arr[objID] = swt; // Set var
	for ( var x in arr ) { 
		if (arr[x]==1) {
			nStr += ','+x;
		}
	}
	nStr = nStr.substring(1);
	createCookie('dMMenu',nStr,14);
}

/* Restore Menu to Last Help Display */
function refresh_Menu ( ) {
	var str  = readCookie('dMMenu');
	arr = str.split(',');
	for ( var x in arr ) { 
		swMenu(arr[x],'');
	}
}


/* Image Swaping */

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

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 MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}


/* Toggle - DHTML */

function tgl ( objID, swtID ) { // Manual/Auto ON/OFF Version
	var obj = DOM(objID,1);
	if (swtID == -1) { // Auto Detect
		if (obj.display == 'none') { 
			obj.display = 'block'; 
		} else { 
			obj.display = 'none'; 
		}
	} else {			// Set Manually - 0=>Off 1=>On
		if (swtID == 1) { 
			obj.display = 'block'; 
		} else { 
			obj.display = 'none'; 
		}
	}
	return;
}

function tglMN ( objID, swtID ) { // Manual/Auto ON/OFF Version
	tgl('MN_'+objID,-1);
}


/* Number Functions */

function chkDec (field,dnum) {
	if (field.value != "") {
		field.value = chkDecVal(field.value,dnum);
	}
}

function chkDecVal ( fVal , dnum ) {
	if (fVal != "") {
		fVal = roundNum(fVal,dnum); // Round Number
		// Add Decimal Values
		fVal = String(fVal);
		if (fVal.indexOf('.') == -1) {
			if(dnum > 0) {
				decimals = "000000000000";
				decimals = decimals.substring(0,dnum);
				fVal = fVal + "." + decimals;
			}
		} else {
			var fieldArr = fVal.split('.');
			if (dnum != 0) {var period = ".";} else {var period = "";}
			if (fieldArr[0] == "") {fieldArr[0] = '0';}
			if (dnum == 0) {
				fVal = fieldArr[0];
			} else if (fieldArr[1].length > dnum) {
				fieldArr[1] = fieldArr[1].substring(0,dnum);
				fVal = fieldArr[0] + period + fieldArr[1];
			} else {
				decimals = "000000000000";
				decimals = fieldArr[1] + decimals;
				decimals = decimals.substring(0,dnum);
				fVal = fieldArr[0] + period + decimals;
			}
		}
	}
	return fVal;
}

/* OLD - NOT USED */
function roundNum ( fVal , dnum ) { 
	if (dnum>0) {
		if (isNaN(fVal)) { fVal = "0.00"; }
		var v = parseFloat(fVal);
		v = (v*(10*dnum));
		v = Math.round(v);
		fVal = v/(10*dnum);
	}
	return fVal;
}



/* Validate / Required */

function reqVars ( str ) {
	if (str!="") {
		var strArr = str.split(',');
		for ( var x in strArr ) {
			DOM(strArr[x],1).background  = "#FFD9D9";
			DOM(strArr[x],1).borderColor = "#FF0000";
		}
	}
}

function isValidEmail (parmValue) {
	var rex = new RegExp("^[\\w\\+-]+(\\.[\\w\\+-]+)?@((\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})\|([\\w\\+-]+\\.[a-zA-Z]{2,}))$");
	var pos = parmValue.search(rex);
	if (pos < 0) { 
		return false;
	}
	return true;
}

function sbtFrm ( v ) {
	if (v=='' || v==undefined) { v = 'SBT'; }
	DOM('RTN',0).value = v; 
	document.form.submit();
}


/* Phone Number Formats: Start */
function aphTab (event,input) { // Area Code
	return autoTab(input,3,event);
}

function phTab (event,input) { // Phone Number
	return autoTab(input,8,event);
}

	function autoTab (input,len,e) {
		var keyCode = isLayers ? e.which : e.keyCode; 
		var filter  = isLayers ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
		if (input.value.length >= len && !containsElement(filter,keyCode)) {
			input.value = input.value.slice(0,len);
			input.form[(getIndex(input)+1) % input.form.length].focus();
		}
	}

		function containsElement (arr, ele) { // Currently autoTab Child f{}
			var found = false, index = 0;
			while (!found && index < arr.length)
			if (arr[index] == ele)
				found = true;
			else
				index++;
			return found;
		}
		
		function getIndex (input) { 			// Currently autoTab Child f{}
			var index = -1, i = 0, found = false;
			while (i < form.length && index == -1) {
				if (input.form[i] == input) {
				index = i; return index;
				} else { i++; }
			}
			return true;
		}

function aphFrt (event,_fld) { // Area Code Format
	return fldFrt(event,'phone',_fld,d.form.remLen,3);
}

function phFrt (event,_fld) { // Phone Format
	return fldFrt(event,'phone',_fld,d.form.remLen,8); // Use '-' separator
}

	function fldFrt (event,type,field,countfield,maxlimit) {
		var _num = 45;
		maxlimit -= 1;
		if (type == "phone") {_num = 48;}
		if (type == "num" || type == "phone") {
			if (type == "phone" && field.value.length == 3) { 
				field.value = field.value + "-"; 
				type = "num";
			}
			if (event.keyCode < _num || event.keyCode > 57) {
				event.returnValue = false;
			} else if (field.value.length > maxlimit) {
				event.returnValue = false;
			} else { // event,'num',this,this.remLen,3
				countfield.value = maxlimit - field.value.length;
			}
		} else if (field.value.length > maxlimit) {
			event.returnValue = false;
		} else { // otherwise, update 'characters left' counter 
			countfield.value = maxlimit - field.value.length;
		}
	}
/* Phone Number Formats: End */


var d 		 = document;
var isID   	 = 0;
var isAll 	 = 0;
var isLayers = 0;

if (d.getElementById) { isID = 1; }
else {
	if (d.all) { isAll = 1; }
	else {
		if ((navigator.appName.indexOf('Netscape') != -1) && (parseInt(navigator.appVersion) >= 4)) { isLayers = 1; }
	}
}

function DOM (objID,sty) {
	//	alert(objID);
			 if (isID) 	   { obj  = d.getElementById(objID); } 
	else {   if (isAll)    { obj  = d.all[objID]; } 
		else if (isLayers) { return d.layers[objID]; }
	}
	if (sty) { return obj.style; }
	return obj;
}

function isDOM (objID) {
			 if (isID     && d.getElementById(objID))   { return true;  } 
	else {   if (isAll    && d.all[objID]) 				{ return true;  } 
		else if (isLayers && d.layers[objID]) 			{ return true;  }
		else 											{ return false; }
	}
}



function winOpen(_loc,_wname,_w,_h,_scroll) {
	var _posx = (screen.width-_w)/2; if (_posx < 0) _posx = 0;
	var _posy = (screen.height-_h)/2; if (_posy < 0) _posy = 0;
	var winnew = window.open(_loc,_wname,'width='+_w+',height='+_h+',resizable=no,location=no,toolbar=no,scrollbars='+_scroll+',status=no,left='+_posx+',top='+_posy+',screenX=50,screenY=75')
	winnew.focus();
}

function pophoto ( _loc ) {
	var _w		= 400; 	var _h		= 350;
	var _posx  	= (screen.width  - _w)/2; if (_posx < 0) _posx = 0;
	var _posy  	= (screen.height - _h)/2; if (_posy < 0) _posy = 0;
	var  wnew   = window.open('/opts/fphoto'+_loc,'popup','width='+_w+',height='+_h+',resizable=no,location=no,toolbar=no,scrollbars=no,status=no,left='+_posx+',top='+_posy+',screenX=50,screenY=75')
	wnew.focus();
}


