<!--

/*
help topic function
*/


var offsetfromcursorX=12 //Customize x offset of tooltip
var offsetfromcursorY=10 //Customize y offset of tooltip

var offsetdivfrompointerX=10 //Customize x offset of tooltip DIV relative to pointer image
var offsetdivfrompointerY=14 //Customize y offset of tooltip DIV relative to pointer image. Tip: Set it to (height_of_pointer_image-1).

document.write('<div id="dhtmltooltip"></div>') //write out tooltip DIV
document.write('<img id="dhtmlpointer" width="0" height="0" src="/Images/spacer.gif">') //write out pointer image

var ie=document.all
var ns6=document.getElementById && !document.all
var enabletip=false
if (ie||ns6)
var tipobj=document.all? document.all["dhtmltooltip"] : document.getElementById? document.getElementById("dhtmltooltip") : ""

var pointerobj=document.all? document.all["dhtmlpointer"] : document.getElementById? document.getElementById("dhtmlpointer") : ""

function ietruebody(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function ddrivetip(thetext, thewidth, thecolor){
if (ns6||ie){
if (typeof thewidth!="undefined") tipobj.style.width=thewidth+"px"
if (typeof thecolor!="undefined" && thecolor!="") tipobj.style.backgroundColor=thecolor
tipobj.innerHTML=thetext
enabletip=true
return false
}
}

function positiontip(e){
if (enabletip){
var nondefaultpos=false
var curX=(ns6)?e.pageX : event.clientX+ietruebody().scrollLeft;
var curY=(ns6)?e.pageY : event.clientY+ietruebody().scrollTop;
//Find out how close the mouse is to the corner of the window
var winwidth=ie&&!window.opera? ietruebody().clientWidth : window.innerWidth-20
var winheight=ie&&!window.opera? ietruebody().clientHeight : window.innerHeight-20

var rightedge=ie&&!window.opera? winwidth-event.clientX-offsetfromcursorX : winwidth-e.clientX-offsetfromcursorX
var bottomedge=ie&&!window.opera? winheight-event.clientY-offsetfromcursorY : winheight-e.clientY-offsetfromcursorY

var leftedge=(offsetfromcursorX<0)? offsetfromcursorX*(-1) : -1000

//if the horizontal distance isn't enough to accomodate the width of the context menu
if (rightedge<tipobj.offsetWidth){
//move the horizontal position of the menu to the left by it's width
tipobj.style.left=curX-tipobj.offsetWidth+"px"
nondefaultpos=true
}
else if (curX<leftedge)
tipobj.style.left="5px"
else{
//position the horizontal position of the menu where the mouse is positioned
tipobj.style.left=curX+offsetfromcursorX-offsetdivfrompointerX+"px"
pointerobj.style.left=curX+offsetfromcursorX+"px"
}

//same concept with the vertical position
if (bottomedge<tipobj.offsetHeight){
tipobj.style.top=curY-tipobj.offsetHeight-offsetfromcursorY+"px"
nondefaultpos=true
}
else{
tipobj.style.top=curY+offsetfromcursorY+offsetdivfrompointerY+"px"
pointerobj.style.top=curY+offsetfromcursorY+"px"
}
tipobj.style.visibility="visible"
if (!nondefaultpos)
pointerobj.style.visibility="visible"
else
pointerobj.style.visibility="hidden"
}
}

function hideddrivetip(){
if (ns6||ie){
enabletip=false
tipobj.style.visibility="hidden"
pointerobj.style.visibility="hidden"
tipobj.style.left="-1000px"
tipobj.style.backgroundColor=''
tipobj.style.width=''
}
}

document.onmousemove=positiontip




// -----------------------------------------------------------------------------

function CheckAllBoxes(formname){
	var fform=eval("document." + formname);
	for (var i=0;i<fform.elements.length;i++) { 
		if (fform.elements[i].type=="checkbox") {
			fform.elements[i].checked=true; 
		}
	}
	return true;
}

function UnCheckAllBoxes(formname) {
	var fform=eval("document." + formname);
	for (var i=0;i<fform.elements.length;i++) { 
		if (fform.elements[i].type=="checkbox") {
			fform.elements[i].checked=false;
		}
	}
	return true;
}


/***********************************************
* Bookmark site script- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
***********************************************/

/* Modified to support Opera */
function bookmarksite(title,url){
if (window.sidebar) // firefox
	window.sidebar.addPanel(title, url, "");
else if(window.opera && window.print){ // opera
	var elem = document.createElement('a');
	elem.setAttribute('href',url);
	elem.setAttribute('title',title);
	elem.setAttribute('rel','sidebar');
	elem.click();
} 
else if(document.all)// ie
	window.external.AddFavorite(url, title);
}








function highlight(field) {
  field.focus();
  field.select();
}




function changeImages(strName, strSrc) {
	if (document.images) {
		document.images[strName].src= strSrc;
	}
	return true;
}
	


function openCategories(url) {
  popupWin = window.open(url,'740x680','toolbar=no,status=no,scrollbars=yes,location=no,menubar=no,directories=no,width=400,height=500');
}



function validateForm (form) {
	for (var e = 0; e < form.elements.length; e++) {
		var el = form.elements[e];
		if (el.type == 'checkbox') {
			var group = form[el.name];
			if (group.length) {
				var checked = false;
				for (var r = 0; r < group.length; r++) {
					if ((checked = group[r].checked)) {
						break;
					}
					if (!checked) {
						alert('Please check one of the checkboxes.');
						el.focus();
						return false;
					}
				}
			}
		}   
	}
	if (confirm('Are you sure you want to delete this?')) { return true; } else { return false; }
}

// -->


function Confirm(){
var msg = confirm("Are you sure you want to delete???");
	if (msg == true) {return true;} else {return false;}
}
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.0
  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 && document.getElementById) x=document.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];}
}
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
function displayPopup(url, height, width) {
	properties = "toolbar=0,location=0,scrollbars=1,height=" + height;
	properties = properties + ",width=" + width;
	properties = properties + ",left=0,top=0";
	popupHandle = open(url, "disppopup", properties);
}
myPopup = '';
function openCatPopup(url, newwin) {
	//	if (opener && !opener.closed) opener.focus();
	myPopup = window.open(url,newwin,"scrollbars=yes, height=600, width=600");
	if (!myPopup.opener) { myPopup.opener = self; }
	myPopup.focus();
}

function openWindow(url) {
  popupWin = window.open(url,'740x680','toolbar=yes,status=no,scrollbars=yes,location=no,menubar=yes,directories=no,width=680');
}

function openHelp(url) {
	window.open(url,'640x480','toolbar=no,status=no,scrollbars=yes,location=no,menubar=no,directories=no,width=300,height=480');
}

var months=new Array(13);
months[1]="January";
months[2]="February";
months[3]="March";
months[4]="April";
months[5]="May";
months[6]="June";
months[7]="July";
months[8]="August";
months[9]="September";
months[10]="October";
months[11]="November";
months[12]="December";
var time=new Date();
var lmonth=months[time.getMonth() + 1];
var date=time.getDate();
var year=time.getYear();

if ((navigator.appName == "Microsoft Internet Explorer") && (year < 2000))		
year="19" + year;
if (navigator.appName == "Netscape")
year=1900 + year;

function ValidatePhone(m){
p=m.value
if(p.length==3){
pp=p;
d4=p.indexOf('(')
d5=p.indexOf(')')
if(d4==-1){pp="("+pp;}
if(d5==-1){pp=pp+")";}
m.value="";
m.value=pp;
}
if(p.length>3){
d1=p.indexOf('(')
d2=p.indexOf(')')
if (d2==-1){
l30=p.length;
p30=p.substring(0,4);
p30=p30+")"
p31=p.substring(4,l30);
pp=p30+p31;
m.value="";
m.value=pp;
}
}
if(p.length>5){
p11=p.substring(d1+1,d2);
if(p11.length>3){
p12=p11;
l12=p12.length;
l15=p.length
p13=p11.substring(0,3);
p14=p11.substring(3,l12);
p15=p.substring(d2+1,l15);
m.value="";
pp="("+p13+")"+p14+p15;
m.value=pp;
}
l16=p.length;
p16=p.substring(d2+1,l16);
l17=p16.length;
if(l17>3&&p16.indexOf('-')==-1){
p17=p.substring(d2+1,d2+4);
p18=p.substring(d2+4,l16);
p19=p.substring(0,d2+1);
pp=p19+" "+p17+"-"+p18;
m.value="";
m.value=pp;
}
}
}
function testphone(obj1){
p=obj1.value
p=p.replace("(","")
p=p.replace(")","")
p=p.replace("-","")
p=p.replace("-","")
if (isNaN(p)==true){
alert("Check phone");
return false;
}
}
// ---------------------------------------------------------------------------------------------------- //
// ---------------------------------------------------------------------------------------------------- //
// ---------------------------------------------------------------------------------------------------- //
// Date   : 07/01/2005
// Creator: Grazia Cipresso (gcipresso.com/netzcart.com)
// Purpose: Array based custom javascript form validation 
//          (created in this manner to eliminate interference with other scripts on the page)
//				( - the dynamic product boxes and html editor.)
//	
// GPU License (keep this entire message intact)
// 
// Details: 
//          Validates the following input types (email, password, phone, string, number, postal code, money,
//           radio, checkbox, select)
// -------------------------------------------- step (1) ---------------------------------------------- //
//			     <form name="login1" onSubmit="initValid();authenticate();return returnVal;">              //
// -------------------------------------------- step (2) ---------------------------------------------- //
/*                **** Add the following to the same page as the form.
	               <script language="JavaScript" type="text/javascript">
	               <!--
	               function initValid(){
	               	  var identify = "";							
		                 identify = new Array(); 
		                 //arrayname = ["fieldname","type","fieldlabel",min,max,document.formname,required(0/1)];
		                 identify[0] = ["Email","email","Email Address",,,"document.login1",1];
		                 identify[1] = ["Password","password","Password",6,15,"document.login1",1];
	               }
	              // -->
	              </script>
*/
//               Notes:
//                      required: 0=no, 1=yes
//								if required is set to 0 then field is not required, but the content is checked and 
//                          any illegal characters are stripped.
//                      if required is set to 1 then field is required and validated.
//
// ---------------------------------------------------------------------------------------------------- //
// ---------------------------------------------------------------------------------------------------- //
// ---------------------------------------------------------------------------------------------------- //
var returnVal			= false; 			// General return value. The validated form will only be submitted if true.
var identify 			= "";		
function authenticate() {
	var errors 			= "";
	var perrors 		= "";
	var debugValid 	= false;  			// Set to true to display debug alert messages.
	
	var ccValid = new Date();
	ccValid.setMonth(ccValid.getMonth() + 1); // Months array 0 to 11
	var ccMonthNum = ccValid.getMonth();
	var ccYearNum  = ccValid.getFullYear();
	
	var fffFlag = 0;					//  First Form Field with Error Flag
	var ffField = "";					//  First Form Field with Errors fieldname
	var ffSpecFlag = 0;

	function setFieldFocus() {
		// Find error field to set focus too.
		if (fffFlag == 0 ) {
			if (arrfield_name != "inpContent1") { // cannot focus on HTMLEditor field
				ffField = arrfield_form + "." + arrfield_name + ".focus()";
			}
		}	
		fffFlag++;
	}
	
	function checkContent (tempVal) {
		var oldtempVal = tempVal;
		// Remove illegal characters from input fields / global replace
		intGoodChars = tempVal.replace(/[^\<\>\{\}]+/g,"");
		intBadChars  = oldtempVal.length - intGoodChars.length;	
		if (intBadChars > 0) { 
			 ffSpecFlag++;
		}
	}

	// ---------------------------------------------------------------------------------------------------------- //
	// --------------------------------------- start - loop through array --------------------------------------- //
	// ---------------------------------------------------------------------------------------------------------- //
	for (var x = 0; x < identify.length; x++) {
		if ( identify[x] != null || identify[x] != undefined ) {
			
			// Populate generic variables from identify array
			arrfield_name 	= identify[x][0]; // field name
			arrfield_type 	= identify[x][1]; // field type
			arrfield_label = identify[x][2]; // label/HTML name
			arrfield_min 	= identify[x][3]; // min length
			arrfield_max 	= identify[x][4]; // max length
			arrfield_form 	= identify[x][5]; // form name (document.form)
			arrfield_req 	= identify[x][6]; // required? (0=no/1=yes)
			
			arrfield_el		= eval(arrfield_form + "." + arrfield_name);					// field descriptor
			if ( arrfield_type != "radio" && arrfield_type != "checkbox" && arrfield_type != "select" ) {
				arrfield_val	= eval(arrfield_form + "." + arrfield_name + ".value");				// field value
				arrfield_len	= eval(arrfield_form + "." + arrfield_name + ".value.length");		// length of field value 
			}
			// ---------------------------------------------------------------------------------------------------------- //
			// ------------------------------ start - check dropdowns and buttons function ------------------------------ //
			// ---------------------------------------------------------------------------------------------------------- //
			if (arrfield_type == "radio" || arrfield_type == "checkbox" || arrfield_type == "select") {
				if ( arrfield_type == "radio" ) {							
					var radioCtr = 0;
					var radioChk = eval(arrfield_form + "." + arrfield_name + ".length");
					for (var i = 0; i < radioChk; i++) {
						if (eval(arrfield_form + "." + arrfield_name + "[" + i + "].checked") == true) { radioCtr++; }
					}
					if ( radioCtr == 0 ) {
						if ( arrfield_req == 1 ) {
							errors += "\n\n\u00BB Radio button for  '" + arrfield_label + "'  was not checked.";
							setFieldFocus();
						} else { errors += ""; }
					}
				}
				if ( arrfield_type == "checkbox" ) {	
					var checkCtr = 0;
					if (eval(arrfield_form + "." + arrfield_name + ".checked") == true) { checkCtr++; }
					if ( checkCtr == 0 ) {
						if ( arrfield_req == 1 ) {
							errors += "\n\n\u00BB Checkbox for  '" + arrfield_label + "'  was not checked.";
							setFieldFocus();
						} else { errors += ""; }
					}	
					
				}	
				if ( arrfield_type == "select" ) {	
					var selectCtr = 0;
					var selectChk = eval(arrfield_form + "." + arrfield_name + ".options[" + arrfield_form + "." + arrfield_name + ".selectedIndex].value.length");
					if ( selectChk > 0) { selectCtr++; }
					if ( selectCtr == 0 ) {
						if ( arrfield_req == 1 ) {
							errors += "\n\n\u00BB Dropdown item for  '" + arrfield_label + "'  was not selected.";
							setFieldFocus();
						} else { errors += ""; }
					}	
				}	
				
			}
			// ---------------------------------------------------------------------------------------------------------- //
			// ------------------------------  end  - check dropdowns and buttons function ------------------------------ //
			// ---------------------------------------------------------------------------------------------------------- //
			// Debug Output string
			aText =  "\nname = " + arrfield_name + "\ntype = " + arrfield_type + "\nlabel = " + arrfield_label + "\nmin = " + arrfield_min;
			aText += "\nmax = " + arrfield_max + "\nform = " + arrfield_form;
			if ( arrfield_type != "radio" && arrfield_type != "checkbox" && arrfield_type != "select" ) {			
			aText += "\nval = " + arrfield_val + "\nlen = " + arrfield_len
			}
			aText += "\nrequired = " + arrfield_req;
			if (debugValid) { alert(aText); }   // Set debugValid to true to view debug output
			
			// ---------------------------------------------------------------------------------------------------------- //
			// ----------------------------------- start - strip whitespace function ------------------------------------ //
			// ---------------------------------------------------------------------------------------------------------- //	
			// Trim Leading and Trailing White Space
			if ( arrfield_type != "radio" && arrfield_type != "checkbox" && arrfield_type != "select" ) {
				if ( arrfield_len > 0 ) {
					var LTrimPattern = /^\s */;
					var RTrimPattern = /\s *$/;
	
					arrfield_val = arrfield_val.replace(/^\s */g, "");
					arrfield_val = arrfield_val.replace(/\s *$/g, "");
					eval(arrfield_form + "." + arrfield_name + ".value = arrfield_val");					// populate field with new value
					arrfield_len = eval(arrfield_form + "." + arrfield_name + ".value.length");		// length of field value

				}
			}
			// ---------------------------------------------------------------------------------------------------------- //
			// -----------------------------------  end  - strip whitespace function ------------------------------------ //
			// ---------------------------------------------------------------------------------------------------------- //
			
			// ---------------------------------------------------------------------------------------------------------- //
			// ----------------------------------- start - min/max validation function ---------------------------------- //
			// ---------------------------------------------------------------------------------------------------------- //	
			if ( arrfield_type != "radio" && arrfield_type != "checkbox" && arrfield_type != "select" ) {	
				if ( arrfield_len > 0 && arrfield_req == 1 ) {			// Check if field is required (1)
					// form field contains data = true
					
					// min > 0 and max > 0 = true
					if ( ( arrfield_min > 0 && arrfield_max > 0 ) && ( arrfield_len < arrfield_min || arrfield_len > arrfield_max ) ) {
						errors += "\n\n\u00F7 " + arrfield_label + " - must be between " + arrfield_min + " and " + arrfield_max + " characters.";
						setFieldFocus();
					}
					// min > 0 and max is empty = true
					else if ( arrfield_len < arrfield_min && !arrfield_max ) {
						errors += "\n\n\u00F7 " + arrfield_label + " - must be at least " + arrfield_min + " characters.";
						setFieldFocus();
					}
					// min is empty and max > 0 = true
					else if ( arrfield_len > arrfield_max && !arrfield_min ) {
						errors += "\n\n\u00F7 " + arrfield_label + " - must be less than " + (arrfield_max + 1) + " characters.";
						setFieldFocus();
					}
				}
				else if ( !arrfield_len && arrfield_req == 1) {
					// form field contains data = false
					errors += "\n\n\u00F7 " + arrfield_label + " - is blank. (required)"; 
					setFieldFocus(); }	
			}
			// ---------------------------------------------------------------------------------------------------------- //
			// -----------------------------------  end  - min/max validation function ---------------------------------- //
			// ---------------------------------------------------------------------------------------------------------- //		
			
			// ---------------------------------------------------------------------------------------------------------- //
			// --------------------------------------- start - pattern validation --------------------------------------- //
			// ---------------------------------------------------------------------------------------------------------- //
			function checkPattern(arrfield_val, arrfield_label, arrfield_type, arrfield_el, perrors) {
				var resultStr 	= "";				// Stores validation pattern matching boolean result
				var patternStr = "";				// Stores regexp pattern to match user input against
				var formatStr 	= "";				// Stores examples of acceptable user input to display in error messages
				
				// Get Pattern to validate user input against
				if ( arrfield_type == "string" ) {							// Regexp pattern for string characters
					patternStr =  /[^\<\>\{\}]+/;
					formatStr = "( script tags not allowed )";	
				}
				else if ( arrfield_type == "text") {
					arrtemp = arrfield_val.replace(/[^\w-]/g,"")			// Regexp pattern for text 
					eval(arrfield_form + "." + arrfield_name + ".value = arrtemp");
				}	
				else if ( arrfield_type == "stext") {
					arrtemp = arrfield_val.replace(/[^\w-\s]/g,"")		// Regexp pattern for text includes (space)
					eval(arrfield_form + "." + arrfield_name + ".value = arrtemp");
				}			
				else if ( arrfield_type == "integer") {					// Regexp pattern for integer, digits only 
					patternStr = /^[0-9]*$/;
					formatStr = "( 0-9 )";	
				}				
				else if ( arrfield_type == "number") {						// Regexp pattern for numbers, includes  ( . ) 
					patternStr = /^[\d]{1,10}[.|]?[\d]{1,3}|(\d)$/;
					formatStr = "( 12345, 123.45 )";	
				}
				/*else if ( arrfield_type == "phone") {						// Regexp pattern for usa & international telphone numbers
					patternStr = new RegExp("(\(?\+?[0-9]*\)?)?[0-9_\-\s\(\)\.]*|(?:(?:[\+]?(?<CountryCode>[\d]{1,3}(?:[ ]+|[\-\.])))?[(]?(?<AreaCode>[\d]{3})[\-\)]?(?:[ ]+)?)?(?<Number>[a-zA-Z2-9][a-zA-Z0-9 \-\.]{6,})(?:(?:[ ]+|[xX]|(i:ext[\.]?)){1,2}(?<Ext>[\d]{1,5}))?");
					formatStr = "( 1(999)123-4567, 1-999-123-4567, + 44 (0) 1234-1234, (+44)(0)20-12341234, etc. )";
				} // Need to work out the kinks - GAC (invalid quantifier - error) */
				else if ( arrfield_type == "zip") {							// Regexp pattern for usa & international zip codes
					patternStr = /^(\d{5}((|-)-\d{4})?)|[\w\d]{2,5}(-|.)? [\w\d]{2,5}|[\w\d]{2,5}[?][\w\d]{2,5}$/;
					formatStr = "( US, Canada, and UK postal codes allowed )";
				}
				else if ( arrfield_type == "email" ) {						// Regexp pattern for email addresses
					patternStr = /[\w_-]+(\.[\w_-]+)*@[\w_-]+(\.[\w_-]+)*\.\w{2,3}/;
					formatStr = "( name@site.com )";
				}
				else if ( arrfield_type == "money" ) {						// Regexp pattern for currency
					patternStr = /^(\d{0,3})*(,\d{0,3})*(,\d{0,3})*\.\d{2,3}|[$]?[\d]*(\d{0,3})*(,\d{0,3})*(,\d{0,3})*\.\d{2,3}$/;
					formatStr = "( $9,999.99 - $9,999.999 - 99.99 - 99.999 - 999 )";							
				}
				//else if ( arrfield_type == "password" ) {					// Regexp pattern for currency
				//patternStr = /\w*(?=\w*\d)(?=\w*[a-zA-z0-9])(?=\w*[a-zA-z0-9])\w*/;
				//formatStr = "( a-zA-Z,0-9,_ )";
				//}
				else if ( arrfield_type == "date" ) {						// Regexp pattern for dates
					patternStr = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/;
					formatStr = "( mm-dd-yyyy )";							
				}	
				if ( patternStr ) {
					resultStr = patternStr.test(arrfield_val);
					if ( !resultStr ) { 
						// Debug Output string
						if (debugValid) { alert("\nlabel = " + arrfield_label + "\nresult = " + resultStr); }		
						if ( arrfield_req == 1 ) {
							perrors = "\n\n\u00F7\u00F7\u00F7 " + arrfield_label + " - " + arrfield_type + " invalid format " + formatStr + ".";
							setFieldFocus();
						} else { perrors = ""; }
						errors = errors + perrors;
					}					
				}
			}	
			function checkOtherTypes(arrfield_val, arrfield_label, arrfield_type, arrfield_el, perrors) {
				if ( arrfield_type == "ccMonth") {					// Regexp pattern for integer, digits only 
					//alert("ccMonth = " + ccMonthNum);
					function checkccMonth() { if ( arrfield_val <= ccMonthNum && arrfield_val < ccYearNum) { return false; } else { return true; } }
					checkccMonth();
					if ( !checkccMonth() ) { 
						if ( arrfield_req == 1 ) {
							errors += "\n\n\u00F7\u00F7\u00F7 " + arrfield_label + " is invalid, it must be at least 1 month in future.\n\u00A0\u00A0\u00A0\u00A0 ( purchase date = 01/01/1900 | expiration date = 02/01/1900 )";	
							setFieldFocus();
						} else { errors += ""; }
					}
				}				
				if ( arrfield_type == "ccYear") {						// Regexp pattern for numbers, includes  ( . ) 
					function checkccYear() { if ( arrfield_val < ccYearNum && arrfield_val <= ccMonthNum ) { return false; } else { return true; } }
					checkccYear();
					if ( !checkccYear() ) { 
						if ( arrfield_req == 1 ) {
							errors += "\n\n\u00F7\u00F7\u00F7 " + arrfield_label + " is invalid, it must be at least equal to current year and 1 month in future.\n\u00A0\u00A0\u00A0\u00A0 ( purchase date = 12/1900 | expiration date = 01/1901 )";	
							setFieldFocus();
						} else { errors += ""; }
					}
				}		
			}
			if ( arrfield_type != "radio" && arrfield_type != "checkbox" && arrfield_type != "select" ) {
				if ( arrfield_len > 0 ) {
					checkPattern(arrfield_val, arrfield_label, arrfield_type, arrfield_el, errors); 			 /* Validates data input */	
					checkOtherTypes(arrfield_val, arrfield_label, arrfield_type, arrfield_el, errors); 		 /* Validates Form Elements input */	
				}
			}
			// ---------------------------------------------------------------------------------------------------------- //
			// ---------------------------------------  end  - pattern validation --------------------------------------- //
			// ---------------------------------------------------------------------------------------------------------- //	
			if ( arrfield_type != "radio" && arrfield_type != "checkbox" && arrfield_type != "select" ) {
				if ( arrfield_len > 0 && arrfield_req == 0) {
					checkContent(arrfield_val);
					if ( ffSpecFlag > 0 ) {
						arrfield_val = arrfield_val.replace(/[\<\>\{\}]+/g, "");
						errors += "\n\n** Illegal characters removed from  '" + arrfield_label + "'  field."
						eval(arrfield_form + "." + arrfield_name + ".value = arrfield_val");					// populate field with new value
						setFieldFocus();
					}	
				}
			}
		}
	}
	// ---------------------------------------------------------------------------------------------------------- //
	// ---------------------------------------  end  - loop through array --------------------------------------- //
	// ---------------------------------------------------------------------------------------------------------- //	
	
	// ---------------------------------------------------------------------------------------------------------- //
	// --------------------------------------- start - display error messages ----------------------------------- //
	// ---------------------------------------------------------------------------------------------------------- //		
	if ( errors ) { 
		errheader ="Please complete the following:";
		alert(errheader + errors);
		identify = "";
		returnVal = false;
		if (arrfield_type != "radio" && arrfield_type != "checkbox" && arrfield_type != "select") {
			eval(ffField);
		}
	} 
	else {  returnVal = true;  }
	// ---------------------------------------------------------------------------------------------------------- //
	// ---------------------------------------  end  - display error messages ----------------------------------- //
	// ---------------------------------------------------------------------------------------------------------- //		
}	

//function allScripts() {
	//preloadImages();
	//if ( window.initTimeout ) { TimeOutAlert( 20, 0 ); } 	//Time Out Alert 
	//setTimeout("dynaBox()",1000);
//}
//window.onload = allScripts;
//  End -->
