
//-----------------------------------------------------------------------------------------------
// THE JAVASCRIPT IMMEDIATELY BELOW IS COMMONLY GENERATED BY MACROMEDIA
//-----------------------------------------------------------------------------------------------

function MM_swapImage() 
{ 
  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_swapImgRestore() 
{
  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() 
{
 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) 
{
  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_jumpMenu(targ,selObj,restore) 
{
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

function MM_openBrWindow(theURL,winName,features) 
{ 
  window.open(theURL,winName,features);
}

function openNewWindow(URLtoOpen, windowName, windowFeatures) 
{
newWindow=window.open(URLtoOpen, windowName, windowFeatures);
}

//-----------------------------------------------------------------------------------------------
// THE JAVASCRIPT BELOW IS COMMONLY USED IN VALIDATION OF FORM VALUES
//-----------------------------------------------------------------------------------------------

function LengthCheck(val,lengthval) 
{
  var str;
  var val;
  var lengthval;
  str = val.replace(/^\s*|\s*$/g,"");
  val = str.length;
  if(val < lengthval) {return false}
  return true;
}


function isDate(dateString) 
{ 
	if(isNaN(Date.parse(dateString))) return false; 
	dateString = dateString.replace(/(\/|,| )0([1-9])/g,'$1$2'); 
	var date = new Date(dateString).getDate(); 
	var reg = RegExp("(/" + date + "/)|([, ]" + date + 
		"[, ])|^(" + date + "[, ])|([, ]" + date + ")$"); 
	return dateString.match(reg) != null; 
}


//-----------------------------------------------------------------------------------------------
// THE JAVASCRIPT BELOW IS COMMONLY USED IN VALIDATION OF FORM VALUES
//-----------------------------------------------------------------------------------------------

function validEmail(email) 
{
 invalidChars = " /:,;"
		
 for (i=0; i<invalidChars.length; i++) {
	badChar = invalidChars.charAt(i)
	if (email.indexOf(badChar,0)>-1) {
		return false
	}
 }
		
 atPos = email.indexOf("@",1)
 if (atPos == -1) {
	return false
 }
		
 if (email.indexOf("@", atPos+1)>-1) {
	return false
 }
		
 periodPos = email.indexOf(".",atPos)
 if (periodPos == -1) {
 	return false
 }
 if (periodPos+3 > email.length) {
 	return false
 }
 return true

}

// ----------------------------------------------------------------------------------------------
//   THE FOLLOWING FUNCTION IS FOR AUTO-TABBING
//   THE FOLLOWING ARE THE VARIABLES USED
//   obj :         The input object (this)
//   event:      Either 'up' or 'down' depending on the keypress event
//   len  :        Max length of field - tab when input reaches this length
//   next_field: Input object to get focus after this one
// ----------------------------------------------------------------------------------------------

var phone_field_length=0;

function TabNext(obj,event,len,next_field) 
{
	if (event == "down") {
		phone_field_length=obj.value.length;
		}
	else if (event == "up") {
		if (obj.value.length != phone_field_length) {
			phone_field_length=obj.value.length;
			if (phone_field_length == len) {
				next_field.focus();
				}
			}
		}
}

//----------------------------------------------------------------------------------------------
// THE JAVASCRIPT BELOW IS USED TO RESTRICT DATE ENTRY CHARACTERS IN REAL-TIME
//----------------------------------------------------------------------------------------------

function CleanDate(textbox) 
{ 
	textbox.value = textbox.value.replace(/[\-\\\.]+/ig,"/") 
	//  \- equals -
	//	\\ equals \
	//  \. equals .	
				
	textbox.value = textbox.value.replace(/[~!@#$%^&*()_+{}|:"<>?\\\a-z]+/ig,"")
	//	~!@#$%^&*()_+{}|:"<>?  are "as is" (the shift key version of every key)				
								
	textbox.value = textbox.value.replace(/[\;\'\,\.\`\-\=\a-z]+/ig,"") 
	//  \a-z equals a-z 				
	//  \| equals	|
	//  \; equals	;
	//  \: equals	:
	//  \? equals	?
				
} 

//---------------------------------------------------------------------------------------------------
// THE JAVASCRIPT BELOW IS USED TO REDIRECT THE USER OUT OF A PAGE W/ A TIMER DELAY
//---------------------------------------------------------------------------------------------------

function ExitPage()
{
	location.href = "default.asp"
}

function StartTimer(iMilliseconds)
{
	setTimeout("ExitPage()", iMilliseconds)
}


//---------------------------------------------------------------------------------------------------------------
// THE JAVASCRIPT BELOW IS USED WITH SELECT BOXES WHERE THE FORM ALLOWS SELECTING 
// FROM MULTIPLE VALUES AND MOVING THOSE VALUES TO ANOTHER SELECT BOX, FOR INSERT OR UPDATE
//---------------------------------------------------------------------------------------------------------------

function selectAllOptions(obj) 
{
	var iMax = 500;
	var iMaxCounter = obj.options.length;
	if (iMaxCounter > iMax) 
	{
		iMaxCounter = iMax;
	}

	for (var i=0; i<iMaxCounter; i++) 
	{
		obj.options[i].selected = true;
	}
}

function sortSelect(obj) 
{
	var o = new Array();
	for (var i=0; i<obj.options.length; i++) 
	{
		o[o.length] = new Option( obj.options[i].text, obj.options[i].value, obj.options[i].defaultSelected, obj.options[i].selected) ;
	}
	o = o.sort( 
		function(a,b) { 
			if ((a.text+"").toLowerCase() < (b.text+"").toLowerCase()) { return -1; }
			if ((a.text+"").toLowerCase() > (b.text+"").toLowerCase()) { return 1; }
			return 0;
			} 
		);
	for (var i=0; i<o.length; i++) 
	{
		obj.options[i] = new Option(o[i].text, o[i].value, o[i].defaultSelected, o[i].selected);
	}
}

function moveSelectedOptions(from,to) 
{
	// Unselect matching options, if required
	if (arguments.length>3) {
		var regex = arguments[3];
		if (regex != "") {
			unSelectMatchingOptions(from,regex);
			}
		}
	// Move them over
	for (var i=0; i<from.options.length; i++) {
		var o = from.options[i];
		if (o.selected) {
			to.options[to.options.length] = new Option( o.text, o.value, false, false);
			}
		}
	// Delete them from original
	for (var i=(from.options.length-1); i>=0; i--) {
		var o = from.options[i];
		if (o.selected) {
			from.options[i] = null;
			}
		}

	from.selectedIndex = -1;
	to.selectedIndex = -1;
}

function SaveClickHandler(list, hidden) 
{ 
    var hdn = hidden; 
    var listBox = list; 
    var elements = ""; 
    var intCount = listBox.options.length; 

    //store the elements in a hidden input that we can get server side 
    for (i = 0; i < intCount; i++) 
    { 
        //elements += listBox.options(i).text + ','; 
        elements += listBox.options(i).value + ';'; 
    } 

    hdn.value = elements; 
    return true; 
}