

//------------------Code for form dependencies--------------------------------//

function update_dependencies(val, dep)
{
	//alert("value = " + val);
	for (var z = 0, n = dep[0].length; z < n; ++z) {
		var d = parse_dependency(dep[0][z]);
		var group = document.getElementById(d[0]);
		var show = d[1] !== null ?
			val == d[1] :
			/^yes|true|1$/i.test(val);
		group.style.display = show ? '' : 'none';
	}
	for (var z = 0, n = dep[1].length; z < n; ++z) {
		var d = parse_dependency(dep[1][z]);
		var group = document.getElementById(d[0]);
		var show = d[1] !== null ?
			val != d[1] :
			!/^yes|true|1$/i.test(val);
		group.style.display = show ? '' : 'none';
	}
}

function parse_dependency(dep)
{
	var q = dep.indexOf("?");
	if (q != -1) {
		//alert("evaluating");
		eval("var cond = " + dep.substr(0, q));
		//alert("dep = " + dep.substr(q + 1) + "; cond = " + cond);
		return new Array(dep.substr(q + 1), cond);
	} else {
		//alert("dep = " + dep + "; cond = null");
		return new Array(dep, null);
	}
}

//------------------Code for buttons -----------------------------------------//

function button_mouseover(id)
{
	document.getElementById(id + "_1").src = "../images/button-edge-left-over.png";
	document.getElementById(id + "_2").style.backgroundColor = "#006600";
	document.getElementById(id + "_3").src = "../images/button-edge-top-over.png";
	document.getElementById(id + "_4").style.backgroundColor = "#006600";
	document.getElementById(id + "_5").src = "../images/button-edge-bottom-over.png";
	document.getElementById(id + "_6").src = "../images/button-edge-right-over.png";
}

function button_mouseout(id)
{
	document.getElementById(id + "_1").src = "../images/button-edge-left.png";
	document.getElementById(id + "_2").style.backgroundColor = "#249B6E";
	document.getElementById(id + "_3").src = "../images/button-edge-top.png";
	document.getElementById(id + "_4").style.backgroundColor = "#249B6E";
	document.getElementById(id + "_5").src = "../images/button-edge-bottom.png";
	document.getElementById(id + "_6").src = "../images/button-edge-right.png";
}

//------------------Code for form submission ---------------------------------//

function submit_form(name)
{
	if (name)
		document.forms[0].button_name.value = name;
	submit_if_valid();
	return false;
}

//------------------Code for advancing from field to field-------------------//

function is_tab(e)
{
	var src = e.srcElement;
	var c = window.event ? e.keyCode : e.charCode;
	return c == 9;
}

//------------------Code for date control -----------------------------------//

function format_date(fmt, year, mon, day)
{
	fmt = fmt.replace(/Y/, year);
	fmt = fmt.replace(/y/, year.substr(2, 2));
	fmt = fmt.replace(/m/, mon);
	fmt = fmt.replace(/d/, day);
	return fmt;
}

//------------------Code for state control -----------------------------------//

function is_state(s) { return s != ''; }

//------------------Code for SSN and phone number ----------------------------//

function is_phone(s) { return /^\(\d{3}\)\d{3}-\d{4}(#\d{1,5})?$/.test(s); }
function is_two_digits(i) { return /^\d{2}$/.test(i); }
function is_three_digits(i) { return /^\d{3}$/.test(i); }
function is_four_digits(i) { return /^\d{4}$/.test(i); }
function is_seven_digits(i) { return /^\d{7}$/.test(i); }
function is_all_digits(i) { return /^\d+$/.test(i); }

//------------------Code for numeric text input-------------------------------//

function is_digit(e)
{
	var src = e.srcElement;
	var c = window.event ? e.keyCode : e.charCode;
	return c <= 20 || c >= 48 && c < 58;
}

function advance_cursor(elt, e)
{
	var last = e.keyCode - 48;
	var val = elt.value;
	var maxLength = elt.maxLength;
	if (val.length == maxLength && val.charAt(maxLength - 1) == last) {
		var inputs = document.getElementsByTagName('input');
		for (var z = 0, n = inputs.length - 1; z < n; ++z)
			if (inputs[z] == elt)
				inputs[z + 1].focus();
	}
}

function last_digit(e, val)
{
	var c = window.event ? e.keyCode : e.charCode;
	alert("c = " + c + "; val = " + val)
	return c - 48;
}

function ascii_value(val)
{
	return val + 48;
}

//------------------Code for bkfilenumber text input-------------------------------//

function is_bkfilenumber(e)
{
	var src = e.srcElement;
	var c = window.event ? e.keyCode : e.charCode;
	return c <= 20 || c >= 48 && c < 58 || c == 45;
}

//------------------Code for money text input-------------------------------//

function is_money(e)
{
	var src = e.srcElement;
	var c = window.event ? e.keyCode : e.charCode;
	return c <= 20 || c >= 48 && c < 58 || c == 46;
}

//------------------Code for monetary text input------------------------------//

var isIE;
var isNS;

/*
Function to detect the Browser type.
*/
function detectBrowser()
{

	//browser detection
	var strUserAgent = navigator.userAgent.toLowerCase();
	isIE = strUserAgent.indexOf("msie") > -1;
	isNS = strUserAgent.indexOf("netscape") > -1;

}

/*
This function will fire when the control leaves the Text Box.
The function is responsible for formating the numbers to amount type.
*/
function FormatAmtControl(ctl){
//	alert ('inside FormatAmtControl: '+document.getElementById(ctl).value);
	var vMask ;
	var vDecimalAfterPeriod ;
	var ctlVal;
	var iPeriodPos;
	var sTemp;
	var iMaxLen
	var ctlVal;
	var tempVal;
	ctlVal = document.getElementById(ctl).value;
	vDecimalAfterPeriod  = 2
	//iMaxLen  = ctl.maxLength;

	if (isNaN(ctlVal) || ctlVal == ' ' || ctlVal == '')
	{
		if (ctlVal.length == 0) {
			document.getElementById(ctl).value="0.00"
			return;
		}

		for (var i = 0; i < ctlVal.length; ++i)
			if (isNaN(ctlVal.charAt(i)) && ctlVal.charAt(i) != '.') {
				document.getElementById(ctl).value="0.00"
				return;
			}

	}


	//ctlVal =  ctl.value;
	iPeriodPos =ctlVal.indexOf(".");
	tempVal = ctlVal;
	if (iPeriodPos<0)
	{
		tempVal = tempVal + ".00"
	}
	else{
		if ((ctlVal.length - iPeriodPos -1)==1)
		tempVal = tempVal + "0"
		if ((ctlVal.length - iPeriodPos -1)==0)
		tempVal = tempVal + "00"
		if ((ctlVal.length - iPeriodPos -1)==2)
		tempVal = tempVal;
		if ((ctlVal.length - iPeriodPos -1)>2){
			tempVal = tempVal.substring(0,iPeriodPos+3);
		}
		if (iPeriodPos == 0) {
			tempVal = "0" + tempVal
		}


	}
	document.getElementById(ctl).value=tempVal;
}

/*
This function is responsible for filtering the keys pressed and the maintain the amount format of the
value in the Text box
*/
function HandleAmountFiltering(ctl){
	var iKeyCode, objInput;
	var iMaxLen
	var reValidChars = /[0-9.]/;
	var strKey;
	var sValue;
	var event = window.event || arguments.callee.caller.arguments[0];
	iMaxLen  = ctl.maxLength;
	sValue = ctl.value;
	detectBrowser();

	if (isIE) {
		iKeyCode = event.keyCode;
			objInput = event.srcElement;
	} else {
		iKeyCode = event.which;
		objInput = event.target;
	}

	strKey = String.fromCharCode(iKeyCode);

	if (reValidChars.test(strKey))
	{
		if(iKeyCode==46)
		{
			if(objInput.value.indexOf('.')!=-1)
				if (isIE)
					event.keyCode= 0;
				 else
				 {
				 	 if(event.which!=0 && event.which!=8)
					return false;
				 }
		}
		else
		{
			if(objInput.value.indexOf('.')==-1)
			{

				if (objInput.value.length>=(iMaxLen-3))
				{
					if (isIE)
						event.keyCode= 0;
					 else
					 {
					 	 if(event.which!=0 && event.which!=8)
						return false;
					 }

				}
			}
			if ((objInput.value.length==(iMaxLen-3)) && (objInput.value.indexOf('.')==-1))
			{
				objInput.value = objInput.value +'.';

			}


		}

	}
	else{
		if (isIE)
			event.keyCode= 0;
		 else
		 {
		 	 if(event.which!=0 && event.which!=8)
			 return false;
		 }
	}

}

// Ensure that no names have commas in them

function validate_name (val) {
	return (/^[-'a-zA-Z .,_]*$/.test(val))
}

// Validate birthday value

function validate_date(val) {
  return (/^\d\d\/\d\d\/\d\d\d\d$/.test(val) || /^\d\d\/\d\d(\d\d)?$/.test(val));
}

// Validate the bk case number
function validate_case_number_old(val) {
  var d = new Date();

  var curYear = d.getFullYear();
  var lastYear = d.getFullYear() - 1;

  curYear = curYear.toString().substring(2,4);
  lastYear = lastYear.toString().substring(2,4);

  return (((/^\d\d-\d\d\d\d\d$/.test(val)) || (/^\d\d\d\d\d\d\d$/.test(val))) && val.length < 9 && ( val.substring(0,2) == curYear || val.substring(0,2) == lastYear ));
}

//New validate case number
function validate_case_number(val) {
  var d = new Date();

  var curYear = d.getFullYear();
  var lastYear = d.getFullYear() - 1;

  startYear  = 02;   // mark hinds 05/01/2007 for Request Detail: 94357
  curYear = curYear.toString().substring(2,4);
  lastYear = lastYear.toString().substring(2,4);
  nextYear = curYear +1;


  return (((/^\d\d-\d\d\d\d\d$/.test(val)) || (/^\d\d\d\d\d\d\d$/.test(val))) && val.length < 9 && ( val.substring(0,2) == curYear || val.substring(0,2) > startYear && val.substring(0,2) < nextYear ));

}







// Validate email address

function validate_email(val) {
	return (/^[a-zA-Z0-9][\-a-zA-Z_0-9\.]*@[a-zA-Z0-9][\-a-zA-Z_0-9\.]+$/.test(val));
}

// Validate zip code
function validate_zip(val) {
	return (/^[0-9]{5}$/.test(val));
}