// JavaScript Document


//Macromedia Functions ****************************************************************************

function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}

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_openBrWindow(theURL,winName,features,w,h) { //v2.0

	if (w > ''){
		if (document.all)
			var xMax = screen.width, yMax = screen.height;
		else
			if (document.layers)
				var xMax = window.outerWidth, yMax = window.outerHeight;
			else
				var xMax = 1024, yMax=768;
	
		var xOffset = (xMax - w)/2, yOffset = (yMax - h)/2;
		
		features = features +",screenX='+xOffset+',screenY='+yOffset+',top='+yOffset+',left='+xOffset+''";
	}
  window.open(theURL,winName,features);
}

function MM_displayStatusMsg(msgStr) { //v1.0
  status=msgStr;
  document.MM_returnValue = true;
}

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_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_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];}
}


//Utility Functions ********************************************************************************

function toggleBB(srcElement, srcArrow) {
		
	if (srcElement.style.display == "none") {
		srcElement.style.display = "";
		srcArrow.src = "/images/expand.gif";
	} else {
		srcElement.style.display = "none"
		srcArrow.src = "/images/collapse.gif";
	}
	
}

function toggleBB1(srcElement) {
		
	if (srcElement.style.display == "none") {
		srcElement.style.display = "";		
	} else {
		srcElement.style.display = "none"		
	}
	
}

//Formatting Functions *****************************************************************************

function PositiveInteger(objName) {
			if (objName.value != "") {
				if (IsPosNumeric(objName.value) == false) {
					objName.value = '';
					objName.focus()
					objName.select()
					return false
				}
				else {
					return true
				}
			}
			return true
		}
		
function FormatAmount(obj) {
			//Purpose: to format a numberic value to currency formating, ie xxxxx.xx
			//		   Values are rounded up. ie. 45.105 = 45.11
			//Pre:	   obj is a textbox object
			//post:    sets obj.value = the formated currency

			var newValue = ""

			if (obj.value == "") {obj.value="0.00"; return}

			obj.value = MoneyChopValue(obj.value);
			if (obj.value < 0) {
				objValue = parseFloat(obj.value) - parseFloat('0.005');
			}
			else {
				objValue = parseFloat(obj.value) + parseFloat('0.005');
			}
			objValue = eval("'" + objValue + "'")
			if (objValue.length > 0) {
				if (objValue.charAt(0) == '.') {objValue = "0" + objValue}
			}
			for (x=0; x < objValue.length; x++) {
				if (objValue.charAt(x) == '.') {
					if (x == (objValue.length - 1)) {
						newValue = newValue + ".00"
					}
					else if (x == (objValue.length - 2)) {
						newValue = newValue + "." + objValue.charAt(x+1) + "0"
					}
					else {
						newValue = newValue + "." + objValue.charAt(x+1) + objValue.charAt(x+2)
					}
					obj.value = newValue
					return;
				}
				newValue = newValue + objValue.charAt(x)
			} 
			obj.value = newValue + ".00"
		}
function FormatAmountValue(value) {
			// Purpose: To format a monetary value.  Like above, except not an obj
			// Stephen McGrath
			this.value = value;
			FormatAmount(this);
			return this.value;
		}
		
		function MoneyChop(Obj) {
			// Purpose: See MoneyChopValue
			// Stephen McGrath
			Obj.value = MoneyChopValue(Obj.value);
		}
		
		reMoney = /^-?[0-9]*\.?[0-9]{0,4}/;
		function MoneyChopValue(value) {
			// Purpose: Chops numbers off to four decimal places to work around the
			//          JavaScript math errors.
			// Comments: Finds 0 or 1 '-' then any digits then 0 or 1 decimal points then 
			//           up to four more digits.
			// Stephen McGrath
			value += "";
			return parseFloat(value.match(reMoney));
		}		
	function IsNumeric(sNumber) {
		// Stephen McGrath
		var decimal = 0;
		sNumber += "";
		if (sNumber.length == 0) return false;
		for (x = 0; x < sNumber.length; x++) {
			if (!(sNumber.charCodeAt(x) >= 48 && sNumber.charCodeAt(x) <= 57)) {
				switch (sNumber.charAt(x)) {
					case ".":
						if (decimal++ != 0) return false;
						break;
					case "-":
						if (x > 0) return false;
						if (sNumber.length == 1) return false;
						break;
					default:
						return false;
				}
			}
		}
		return true;
	}

		
	function IsPosNumeric(sNumber) {
		// Stephen McGrath
		sNumber += "";
		return (sNumber.charAt(0) != "-" && IsNumeric(sNumber));
	}

	function RequireNumericOnly(editBox, defaultValue) {
		if( editBox.value != '' && !IsNumeric(editBox.value) ) {
			editBox.value = defaultValue;
			alert('Please enter only numeric values');
			editBox.focus();
		}
	}



// Textfield counter

function textCounter(field,cntfield,maxlimit) {
if (field.value.length > maxlimit) // if too long...trim it!
field.value = field.value.substring(0, maxlimit);
// otherwise, update 'characters left' counter
else
cntfield.value = maxlimit - field.value.length;
}

/*
<form name="myForm"
action="/articles/articles/javascript/dynamictextareacounter.asp?ID=<%=siteID%>"
method="post">
<b>One Function to Count and Limit Multiple Form Text Areas</b><br>
<textarea name="message1" wrap="physical" cols="28" rows="5"
onKeyDown="textCounter(document.myForm.message1,document.myForm.remLen1,125)"
onKeyUp="textCounter(document.myForm.message1,document.myForm.remLen1,125)"></textarea>
<br>
<input readonly type="text" name="remLen1" size="3" maxlength="3" value="125">
characters left
<br>
<textarea name="message2" wrap="physical" cols="28" rows="5"
onKeyDown="textCounter(document.myForm.message2,document.myForm.remLen2,125)"
onKeyUp="textCounter(document.myForm.message2,document.myForm.remLen2,125)"></textarea>
<br>
<input readonly type="text" name="remLen2" size="3" maxlength="3" value="2500">
characters left
<br>
<input type="Submit" name="Submit" value="Submit">
<br>
</form>
*/

function movesCursor(field,newfield,iCount) {
	if (field.value.length >= iCount) {
		newfield.focus();
	}
}

//check url

function checkUrl(theUrl){

  	if (theUrl.value.length  > 0) {
	  if(theUrl.value.match(/^(http|ftp)\:\/\/\w+([\.\-]\w+)*\.\w{2,4}(\:\d+)*([\/\.\-\?\&\%\#\=]\w+)*\/?$/i) ||
		 theUrl.value.match(/^mailto\:\w+([\.\-]\w+)*\@\w+([\.\-]\w+)*\.\w{2,4}$/i)){
		return true;
	  } else {
		alert("Please enter the full url starting with http or https.");
		theUrl.select();
		theUrl.focus();
		return false;
	  }
	}
}
/*<form onSubmit="return checkUrl(this.URL)">
URL:
<input type=text name="URL" size="45">
<input type=submit value="Save">
</form>*/


//Load images
MM_preloadImages('/images/expand.gif');

