
function openWin( windowURL, windowName, windowFeatures ) {
 window.open( windowURL, windowName, windowFeatures );
}

function CalPop(sInputName,evnt)
{
    var properties = "left=" + (evnt.screenX - 100);
    properties += ",top=" + (evnt.screenY + 10);
    properties += ",toolbar=0,width=186,height=167,resizable=no,scrollbars=no,menubar=no,toolbar=no,status=no,location=no,titlebar=no";
	window.open('../Controls/Calendar/Calendar.asp?tField=' + escape(sInputName) + '&tDate=' + escape(window.eval(sInputName).value), 'CalPop', properties);
}

function CalPopDual(sInputNameFrom,sInputNameTo,evnt)
{
    var properties = "left=" + (evnt.screenX + 20);
    properties += ",top=" + (evnt.screenY + 1);
    properties += ",toolbar=0,width=186,height=167,resizable=no,scrollbars=no,menubar=no,toolbar=no,status=no,location=no,titlebar=no";
	window.open('../Controls/Calendar/Calendar.asp?tFieldFrom=' + escape(sInputNameFrom)  + '&tFieldTo=' +  escape(sInputNameTo) + '&tDate1=' + escape(window.eval(sInputNameFrom).value)  + '&tDate2=' +  escape(window.eval(sInputNameTo).value), 'CalPopDual', properties);
}

function isEmailAddr(email)
{
  var result = false;
  var theStr = new String(email);
  var index = theStr.indexOf("@");
  if (index > 0) {
    var pindex = theStr.indexOf(".",index);
    if ((pindex > index+1) && (theStr.length > pindex+1))
	result = true;
  }
  return result;
}

function validRequired(formField,fieldLabel)
{
	var result = true;
	if (formField.value == "")
	{
		alert('Please enter a value for the "' + fieldLabel +'" field.');
		formField.focus();
		result = false;
	}
	return result;
}

function allDigits(str)
{
	return inValidCharSet(str,"0123456789");
}

function inValidCharSet(str,charset)
{
	var result = true;
	// Note: doesn't use regular expressions to avoid early Mac browser bugs	
	for (var i=0;i<str.length;i++)
		if (charset.indexOf(str.substr(i,1))<0)
		{
			result = false;
			break;
		}
	return result;
}

function validNum(formField,fieldLabel,required)
{
	var result = true;
	var AllowNulls = true;
	if (required.value = "false")
	{
		if (formField.value == "")
		 {
		   AllowNulls = false;
		 }
	 }
	if (AllowNulls &&  !validRequired(formField,fieldLabel))
		result = false;
 	if (result)
 	{
 		if (!allDigits(formField.value))
 		{
 			alert('Please enter a number for the "' + fieldLabel +'" field.');
			formField.focus();		
			result = false;
		}
	} 
	return result;
}

function validInt(formField,fieldLabel,required)
{
	var result = true;
	var AllowNulls = true;
	if (required.value = "false")
	{
		if (formField.value == "")
		 {
		   AllowNulls = false;
		 }
	 }
	if (AllowNulls &&  !validRequired(formField,fieldLabel))
		result = false;
 	if (result)
 	{
 		var num = parseInt(formField.value,10);
 		if (isNaN(num))
 		{
 			alert('Please enter a number for the "' + fieldLabel +'" field.');
			formField.focus();		
			result = false;
		}
	} 
	return result;
}

function validDate(formField,fieldLabel,required)
{
	var result = true;
	if (formField.value == "") { // is this a blank field entry
		if (required == true) { // is this a required field entry 
 			alert('"' + fieldLabel +'" is a required field.  Please make an entry');
			formField.focus();		
			result = false;
		}
 	} else { // validate the field entry
 		var elems = formField.value.split("/");
 		result = (elems.length == 3); // should be three components
 		if (result)	{
 			var month = parseInt(elems[0],10);
  			var day = parseInt(elems[1],10);
 			var year = parseInt(elems[2],10);
			result = allDigits(elems[0]) && (month > 0) && (month < 13) &&
					 allDigits(elems[1]) && (day > 0) && (day < 32) &&
					 allDigits(elems[2]) && ((elems[2].length == 2) || (elems[2].length == 4));
 		}
  		if (!result) {
 			alert('Please enter a date in the format MM/DD/YYYY for the "' + fieldLabel +'" field.');
			formField.focus();		
		}
	} 
	return result;
}

function validEmail(formField,fieldLabel,required)
{
	var result = true;
	if (formField.value == "") { // is this a blank field entry
		if (required == true) { // is this a required field entry 
 			alert('"' + fieldLabel + '" is a required field.  Please make an entry');
			formField.focus();		
			result = false;
		}
 	} else { // validate the field entry
		if ( ((formField.value.length < 3) || !isEmailAddr(formField.value)) ) {
			alert('"' + fieldLabel + '" requires a complete email address (ex: yourname@yourdomain.com)');
			formField.focus();
			result = false;
		}
   }
   return result;
}

function JavaReplace(argvalue, x, y) 
{
	if ((x == y) || (parseInt(y.indexOf(x)) > -1)) {
	  errmessage = "replace function error: \n";
	  errmessage += "Second argument and third argument could be the same ";
	  errmessage += "../../index.asp.htm";
	  errmessage += "This will create an infinite loop as it's replaced globally.";
	  alert(errmessage);
	  return false;
	}
	while (argvalue.indexOf(x) != -1) {
	  var leading = argvalue.substring(0, argvalue.indexOf(x));
	  var trailing = argvalue.substring(argvalue.indexOf(x) + x.length, argvalue.length);
	  argvalue = leading + y + trailing;
	}
	return argvalue;
}

function textCounter(field, countfield, maxlimit) 
{
	if (field.value.length > maxlimit) // if too long...trim it!
		field.value = field.value.substring(0, maxlimit);
		// otherwise, update 'characters left' counter
	else 
		countfield.value = maxlimit - field.value.length;
}
	
function getIndex (e) { 
  var f = e.form.elements; 
  for (var i = 0; i < f.length; i++) 
    if (e == f[i]) 
      return i; 
  return -1; 
} 

function checkMaxLength (e, l) { 
  if (!l) 
    l = e.maxLength; 
  if (e.value.length == l) { 
    e.form.elements[getIndex(e) + 1].focus(); 
    return true; 
  } 
  else return true; 
} 

function ToggleSection(name) {
	var div = document.getElementById(name);
	if (div.style.display != 'none') {
		div.style.display = 'none';
	} else {
		div.style.display = '';
	}
}

function validPassword(formField1, formField2) 
{
    var result = false;
    if (formField1.value != formField2.value) {
        formField1.value = '';
        formField2.value = '';
        alert('Your passwords do not match');
        formField1.focus();
    } else {     result = true;
    } return result;
}

function checkAll(chkBox, val) { 
    for (var i=0; i<chkBox.length; i++) chkBox[i].checked = val; 
} 

function DualEntry(Parent, Child1, Child2) 
{
		Child1.value = Parent.value;
		Child2.value = Parent.value;
}

function CalculatePercentage(tFieldPC,tFieldAmount,tDenominator) {
	if ( tDenominator > 0 ) { 
	 t = ( parseFloat(JavaReplace(JavaReplace(tFieldAmount.value,"$",""),",","")) / parseFloat(JavaReplace(JavaReplace(tDenominator,"$",""),",","")) ) * 100;
    tFieldPC.value = t + '%';
    } else  { 
    tFieldPC.value = '0.0%';
	}
}

function ApplyPercentage(tFieldAM,tFieldPC,tDenominator) {
	if ( tFieldPC < 1 ) { 
		 t = ( parseFloat(JavaReplace(JavaReplace(tFieldPC.value,"%",""),",","")) * parseFloat(JavaReplace(JavaReplace(tDenominator,"$",""),",","")) );
    } else  { 
		 t = ( parseFloat(JavaReplace(JavaReplace(tFieldPC.value,"%",""),",","")) * parseFloat(JavaReplace(JavaReplace(tDenominator,"$",""),",","")) )/100;
    } 
    tFieldAM.value = (t.toCurrency());
}
		
	
