
var isNN = (navigator.appName.indexOf("Netscape") != -1);
var collapsed = "false";
var componentOldVal = "";
var defaultEnterButton = "";
function toggleErrors() {
	var errorImg = document.getElementById("errorImage");
	var errorDetails = document.getElementById("error-detail");
	if (collapsed == "false") {
		errorImg.src = "images/arrow_collapsed.gif";
		errorDetails.style.display = "none";
		collapsed = "true";
	} else {
		errorImg.src = "images/arrow_expanded.gif";
		errorDetails.style.display = "block";
		collapsed = "false";
	}
}
function toggleInformation() {
	var errorImg = document.getElementById("informationImage");
	var errorDetails = document.getElementById("information-detail");
	if (collapsed == "false") {
		errorImg.src = "images/arrow_collapsed.gif";
		errorDetails.style.display = "none";
		collapsed = "true";
	} else {
		errorImg.src = "images/arrow_expanded.gif";
		errorDetails.style.display = "block";
		collapsed = "false";
	}
}

function focusThroughArrowKeys(obj,event) {
var rowId = obj.id;
var c = keyPress(event);
if(c== 40) {
var components = rowId.split(":");
var component0 = components[0];
var component1 = components[1];
var component2 = (parseInt(components[2])+1);
var component3 = components[3];

var nextRowID = component0 + ":" +component1 +":"+ component2 +":"+ component3;
var nextElement = document.getElementById(nextRowID);
if(nextElement == null || nextElement == 'undefined') {


}else {
nextElement.focus();
}
}else if(c== 38) {
var components = rowId.split(":");
var component0 = components[0];
var component1 = components[1];
var component2 = (parseInt(components[2])-1);
var component3 = components[3];

var nextRowID = component0 + ":" +component1 +":"+ component2 +":"+ component3;
var nextElement = document.getElementById(nextRowID);
if(nextElement == null || nextElement == 'undefined') {


}else {
nextElement.focus();
}
}

}

function entityAjaxSearchAction(textComponentId, entitySearchLinkId) {
	var strFormId = document.forms[0].id;
	var strValueSupplied = document.getElementById(strFormId + ":" + textComponentId).value;
	if (strValueSupplied != null && strValueSupplied.length > 0) {
		document.getElementById(strFormId + ":" + entitySearchLinkId).onclick();
	} 
}
function linkClickAction(entityLinkId) {
	var strFormId = document.forms[0].id;
	document.getElementById(strFormId + ":" + entityLinkId).onclick();
}
function customLinkClickAction(entityLinkId) {
	var strFormId = document.forms[0].id;
	document.getElementById(strFormId + ":" + entityLinkId).click();
}
function showHideComponent(componentId, linkId) {
	var table1 = document.getElementById(componentId);
	var linkDiv = document.getElementById(linkId);
//	alert(table1);
//	alert(linkDiv);
	if (table1.style.display == "none") {
		linkDiv.style.display = "none";
		table1.style.display = "block";
	} else {
		linkDiv.style.display = "block";
		table1.style.display = "none";
	}
}
function showHideHtmlComponent(componentId) {
	var component = document.getElementById(componentId);
	if (component.style.display == "none") {
		component.style.display = "block";
	} else {
		component.style.display = "none";
	}
}
function buttonOver(buttonID) {
	var strFormId = document.forms[0].id;
	var button = document.getElementById(strFormId + ":" + buttonID);
	button.style.background = "url(images/btn_bg_rev.png) repeat-x";
}
function buttonOut(buttonID) {
	var strFormId = document.forms[0].id;
	var button = document.getElementById(strFormId + ":" + buttonID);
	button.style.background = "url(images/btn_bg.png) repeat-x";
}
function htmlButtonOver(buttonID) {
	var button = document.getElementById(buttonID);
	button.style.background = "url(images/btn_bg_rev.png) repeat-x";
}
function htmlButtonOut(buttonID) {
	var strFormId = document.forms[0].id;
	var button = document.getElementById(buttonID);
	button.style.background = "url(images/btn_bg.png) repeat-x";
}
function htmlButtonMouseOver(button) {
	button.style.background = "url(images/btn_bg_rev.png) repeat-x";
}
function htmlButtonMouseOut(button) {
	button.style.background = "url(images/btn_bg.png) repeat-x";
}
function autoTab(input, e) {
	len = input.maxLength;
	var keyCode = (isNN) ? e.which : e.keyCode;
	var filter = (isNN) ? [0, 8, 9] : [0, 8, 9, 16, 17, 18, 37, 38, 39, 40, 46];
	if (input.value.length >= len && !containsElement(filter, keyCode)) {
		input.value = input.value.slice(0, len);
    //input.form[(getIndex(input)+1) % input.form.length].focus();
		setNextReadyInputFocus(input);
	}
	function setNextReadyInputFocus(input) {
		var varType = input.form[(getIndex(input) + 1) % input.form.length].type;
		if (varType != "text") {
			input.form[(getIndex(input) + 1) % input.form.length].select();
			return;
		} else {
			if (varType == "text") {
				var isDisabled = input.form[(getIndex(input) + 1) % input.form.length].disabled;
				if (isDisabled) {
					setNextReadyInputFocus(input.form[(getIndex(input) + 1) % input.form.length]);
				} else {
					input.form[(getIndex(input) + 1) % input.form.length].select();
				}
			}
		}
	}
	function containsElement(arr, ele) {
		var found = false, index = 0;
		while (!found && index < arr.length) {
			if (arr[index] == ele) {
				found = true;
			} else {
				index++;
			}
		}
		return found;
	}
	function getIndex(input) {
		var index = -1, i = 0, found = false;
		while (i < input.form.length && index == -1) {
			if (input.form[i] == input) {
				index = i;
			} else {
				i++;
			}
		}
		return index;
	}
	function getNextComponent(input) {
		var index = getIndex(input);
		var component = input.form[(getIndex(input) + 1) % input.form.length];
		if (component.disabled == true) {
			getNextComponent(component);
		} else {
			alert(component.id);
			return component;
		}
	}
	return true;
}
function autoTabWithDel(input, e) {
	len = input.maxLength;
	var keyCode = (isNN) ? e.which : e.keyCode;
	var filter = (isNN) ? [0, 8, 9] : [0, 8, 9, 16, 17, 18, 37, 38, 39, 40, 46, 110];
	if (keyCode == 110 || keyCode == 46 || (input.value.length >= len && !containsElement(filter, keyCode))) {
		input.value = input.value.slice(0, len);
		input.form[(getIndex(input) + 1) % input.form.length].focus();
	}
	function containsElement(arr, ele) {
		var found = false, index = 0;
		while (!found && index < arr.length) {
			if (arr[index] == ele) {
				found = true;
			} else {
				index++;
			}
		}
		return found;
	}
	function getIndex(input) {
		var index = -1, i = 0, found = false;
		while (i < input.form.length && index == -1) {
			if (input.form[i] == input) {
				index = i;
			} else {
				i++;
			}
		}
		return index;
	}
	function getNextComponent(input) {
		var index = getIndex(input);
		var component = input.form[(getIndex(input) + 1) % input.form.length];
		if (component.disabled == true) {
			getNextComponent(component);
		} else {
			return component;
		}
	}
	return true;
}
function linkButtonOver(tdId) {
	var button = document.getElementById(tdId);
	button.style.background = "url(images/btn_bg_rev.png) repeat-x";
}
function linkButtonOut(tdId) {
	var button = document.getElementById(tdId);
	button.style.background = "url(images/btn_bg.png) repeat-x";
}
function trapEnter(componentId, event) {
	var strFormId = document.forms[0].id;
	var htmlComponent = document.getElementById(strFormId + ":" + componentId);
	var keycode;
	if (event) {
	} else {
		if (window.event) {
			event = window.event;
		} else {
			if (event) {
				event = event;
			} else {
				return true;
			}
		}
	} 
	
	//alert(event.srcElement.id);
	if (event.charCode) {
		keycode = event.charCode;
	} else {
		if (event.keyCode) {
			keycode = event.keyCode;
		} else {
			if (event.which) {
				keycode = event.which;
			} else {
				keycode = 0;
			}
		}
	}
	if (keycode == 13) { 
	//alert("parent trapEnter");
		event.returnValue = false;  
		event.cancel = true;
		if (defaultEnterButton != null && defaultEnterButton != "") {
	//alert("going for Child Enter button");
			document.getElementById(defaultEnterButton).click();
			defaultEnterButton = "";
		} else {
			htmlComponent.click();
			defaultEnterButton = ""; 
	//alert("going for Parent Enter button");
		}
		return true;
	}
	return false; 
}

function customTrapEnter(componentId, event) {
	// var strFormId = document.forms[0].id;
	var htmlComponent = document.getElementById(componentId);
	var keycode;
	if (event) {
	} else {
		if (window.event) {
			event = window.event;
		} else {
			if (event) {
				event = event;
			} else {
				return true;
			}
		}
	} 
	
	//alert(event.srcElement.id);
	if (event.charCode) {
		keycode = event.charCode;
	} else {
		if (event.keyCode) {
			keycode = event.keyCode;
		} else {
			if (event.which) {
				keycode = event.which;
			} else {
				keycode = 0;
			}
		}
	}
	if (keycode == 13) { 
	//alert("parent trapEnter");
		event.returnValue = false;
		event.cancel = true;
		if (defaultEnterButton != null && defaultEnterButton != "") {
	//alert("going for Child Enter button");
			document.getElementById(defaultEnterButton).click();
			defaultEnterButton = "";
		} else {
			htmlComponent.click();
			defaultEnterButton = ""; 
	//alert("going for Parent Enter button");
		}
		return true;
	}
	return false;
}

function setKeyStroke(componentId, event) {
	var strFormId = document.forms[0].id;
	var htmlComponent = strFormId + ":" + componentId;
	var keycode;
	if (event) {
	} else {
		if (window.event) {
			event = window.event;
		} else {
			if (event) {
				event = event;
			} else {
				return true;
			}
		}
	}
	if (event.charCode) {
		keycode = event.charCode;
	} else {
		if (event.keyCode) {
			keycode = event.keyCode;
		} else {
			if (event.which) {
				keycode = event.which;
			} else {
				keycode = 0;
			}
		}
	}
	if (keycode == 13) {
		defaultEnterButton = htmlComponent;
	//alert("Child trapEnter for "+defaultEnterButton);	
		return true;
	}
	return false;
}
function uppercaseText(component) {
	var evt = (evt) ? evt : ((event) ? event : null);
	var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
	if ((evt.keyCode >= 65 && evt.keyCode <= 90) || (evt.keyCode >= 97 && evt.keyCode <= 122)) {
		component.value = component.value.toUpperCase();
	}
}
function saveComponentValue(component, event) {
	var componentValue = component.value;
	if(componentValue.length == component.maxLength) {
	componentOldVal = componentValue;
	}
}
function spryAutoTab(component, event) {
	len = component.maxLength;
	if (component.value.length >= len) {
		if (componentOldVal != component.value) {
			if (getLastIndex(componentOldVal) != getLastIndex(component.value)) {
				autoTab(component, event);
			}
		}
	}
}
function getLastIndex(str) {
	return str.charAt(str.length - 1);
}
function setFocus(component) {
	var strFormId = document.forms[0].id;
	var element = document.getElementById(strFormId + ":" + component);
	if (element != null) {
		element.focus();
	}
}
function validateSpryFormManually() {
	var ret = Spry.Widget.Form.validate(document.forms[0]);
	//alert(ret);
	return ret;
}
function getKeyPressed() { 

//http://www.snwebs.20m.com/scripts/keycode.htm
	var keyCode;
	if (Spry.is.ie) {
		keyCode = window.event.keyCode;
	} else {
		keyCode = -10000;
	}
//	alert(keyCode);
	return keyCode;
}
function textAreaCounter(field, maxlimit) {
	if (field.value.length > maxlimit) {
		field.value = field.value.substring(0, maxlimit);
	}
}

function checkAll()
{
  var checkBoxes = new Array();
  checkBoxes = document.getElementsByTagName('input');
  for (var i = 0; i < checkBoxes.length; i++)
  {
    if (checkBoxes[i].type == 'checkbox')
    {
      checkBoxes[i].checked = true;
    }
  }
}
function unCheckAll()
{
  var checkBoxes = new Array();
  checkBoxes = document.getElementsByTagName('input');
  for (var i = 0; i < checkBoxes.length; i++)
  {
    if (checkBoxes[i].type == 'checkbox')
    {
      checkBoxes[i].checked = false;
    }
  }
}
