/////////////////////////////////////////////////////////////////
// Common functions

function CheckEmail(email)
{
	email = Trim(email);
	re = /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/i;
	if (email.match(re))
		return true;
	else
		return false;
}

// used to check input chars to the input object
// returns false if the char is not digit
function CheckDigitInput(evt)
{
	var key;
	if (window.event)
	{
		key = window.event.keyCode;
		evt = window.event;
	}
	else if (evt && evt.which)
		key = evt.which;
	else
		return true;
		
	if (navigator.userAgent.indexOf('Safari') >= 0)
	{
		if( evt.shiftKey ||
		    (key == 9) || // Tab key
				(key == 63234) || // Left arrow
				(key == 63235) || // Right arrow
				(key == 63272) ) // Del
			return true;
	}
	if(key == 8) // backspace
		return true;
	if(key == 13) // Enter
		return true;

	if(!(/\d/.test(String.fromCharCode(key))))
	{
		evt.returnValue=false;
		evt.cancelBubble=true;
		return false;
	}

	return true;
}

function CheckDigitOnlyInput(evt) {
	var key;
	if (window.event) {
		key = window.event.keyCode;
		evt = window.event;
	}
	else if (evt && evt.which)
		key = evt.which;
	else
		return true;

	if (navigator.userAgent.indexOf('Safari') >= 0) {
		if (evt.shiftKey ||
		    (key == 9) || // Tab key
				(key == 63234) || // Left arrow
				(key == 63235) || // Right arrow
				(key == 63272)) // Del
			return true;
	}
	if (key == 8) // backspace
		return true;

	if (!(/\d/.test(String.fromCharCode(key)))) {
		evt.returnValue = false;
		evt.cancelBubble = true;
		return false;
	}

	return true;
}

function CheckPriceInput(evt, object)
{
	var key;
	if (window.event)
	{
		key = window.event.keyCode;
		evt = window.event;
	}
	else if (evt && evt.which)
		key = evt.which;
	else
		return true;

	if( object == null )
		return true;

	if (navigator.userAgent.indexOf('Safari') >= 0)
	{
		if( evt.shiftKey ||
		    (key == 9) || // Tab key
				(key == 8) || // Backspase
				(key == 63234) || // Left arrow
				(key == 63235) || // Right arrow
				(key == 63272) ) // Del
			return true;
	}

	if (key == 8) // backspace
		return true;

	// Lets to input float value to "Quantity" and "Price" columns
	if( object.value.indexOf(',') >= 0)
		return (/\d/.test(String.fromCharCode(key)));
	
	return (/\d|\,/.test(String.fromCharCode(key)));
}

function CheckDigitAndCommaInput(evt, object)
{
	var key;
	if (window.event)
	{
		key = window.event.keyCode;
		evt = window.event;
	}
	else if (evt && evt.which)
		key = evt.which;
	else
		return true;

	if( object == null )
		return true;

	if (navigator.userAgent.indexOf('Safari') >= 0)
	{
		if( evt.shiftKey ||
		    (key == 9) || // Tab key
				(key == 8) || // Backspase
				(key == 63234) || // Left arrow
				(key == 63235) || // Right arrow
				(key == 63272) ) // Del
			return true;
	}

	if (key == 8) // backspace
		return true;
	
	return (/\d|\,/.test(String.fromCharCode(key)));
}

function CheckDigitAndOctothorpInput(evt, object)
{
	var key;
	if (window.event)
	{
		key = window.event.keyCode;
		evt = window.event;
	}
	else if (evt && evt.which)
		key = evt.which;
	else
		return true;

	if( object == null )
		return true;

	if (navigator.userAgent.indexOf('Safari') >= 0)
	{
		if( evt.shiftKey ||
		    (key == 9) || // Tab key
				(key == 8) || // Backspase
				(key == 63234) || // Left arrow
				(key == 63235) || // Right arrow
				(key == 63272) ) // Del
			return true;
	}

	if (key == 8) // backspace
		return true;
	
	if (object.value == '')
		return (/\d|\#/.test(String.fromCharCode(key)));
	
	if (object.value.indexOf('#') >= 0)
		return false;
		
	return (/\d/.test(String.fromCharCode(key)));
}

function CheckNegativeDigitInput(evt, object)
{
	var key;
	if (window.event)
	{
		key = window.event.keyCode;
		evt = window.event;
	}
	else if (evt && evt.which)
		key = evt.which;
	else
		return true;

	if( object == null )
		return true;

	if (navigator.userAgent.indexOf('Safari') >= 0)
	{
		if( evt.shiftKey ||
		    (key == 9) || // Tab key
				(key == 8) || // Backspase
				(key == 63234) || // Left arrow
				(key == 63235) || // Right arrow
				(key == 63272) ) // Del
			return true;
	}

	if (key == 8) // backspace
		return true;

	// Lets to input float value to "Quantity" and "Price" columns
	if (object.value.indexOf('-') >= 0)
		return (/\d/.test(String.fromCharCode(key)));
		
	return (/\d|\-/.test(String.fromCharCode(key)));
}

function CheckPriceWithSpecifiedDecimalsInput(evt, object, decimalsCount, integersCount)
{
	var key;
	if (window.event)
	{
		key = window.event.keyCode;
		evt = window.event;
	}
	else if (evt && evt.which)
		key = evt.which;
	else
		return true;

	if( object == null )
		return true;

	if (navigator.userAgent.indexOf('Safari') >= 0)
	{
		if( evt.shiftKey ||
		    (key == 9) || // Tab key
				(key == 8) || // Backspase
				(key == 63234) || // Left arrow
				(key == 63235) || // Right arrow
				(key == 63272) ) // Del
			return true;
	}

	if (key == 8) // backspace
		return true;
		
	if (String.fromCharCode(key) != ',')
	{
	  var text = object.value;
	  var selectionStart = getSelectionStart(object);
	  var selectionEnd = getSelectionEnd(object);
	  var beforeCaretText = text.substring(0, selectionStart).replace(/ /g, '\xa0') || '\xa0';
	  if (beforeCaretText.indexOf(',') >= 0)
	  {
	    var decimalText = text.substring(text.indexOf(',') + 1, text.length);
	    if (decimalText.length >= decimalsCount)
	      return false;
	  }
	  else
	  {
	    var integerText = object.value;
	    if (text.indexOf(',') >= 0)
	      integerText = text.substring(0, text.indexOf(',') - 1);
  	  
	    if (integerText.length >= integersCount)
	      return false;
	  }
	}

	// Lets to input float value to "Quantity" and "Price" columns
	if( object.value.indexOf(',') >= 0)
		return (/\d/.test(String.fromCharCode(key)));
	
	return (/\d|\,/.test(String.fromCharCode(key)));
}		

function getSelectionStart(o) 
{
  if (o.createTextRange) 
  {
    var r = document.selection.createRange().duplicate();
    r.moveEnd('character', o.value.length);
    if (r.text == '') 
      return o.value.length;
    return o.value.lastIndexOf(r.text);
  } 
  else 
    return o.selectionStart;
}

function getSelectionEnd(o) 
{
  if (o.createTextRange) 
  {
    var r = document.selection.createRange().duplicate();
    r.moveStart('character', -o.value.length);
    return r.text.length;
  } 
  else 
    return o.selectionEnd;
}		

function GetParentByTag(obj, tagName)
{
	while ((obj != null) && (obj.tagName != tagName))
		obj = obj.parentNode;

	return obj;
}

function GetElementsByTagNameEx(obj, tagName, elements)
{
	if (obj == null)
		return;
	
	for (obj = obj.firstChild; (obj != null); obj = obj.nextSibling)
	{
		if (obj.tagName == tagName)
			elements[elements.length] = obj;
		GetElementsByTagNameEx(obj, tagName, elements);
	}
}

function GetElementsByTagName(obj, tagName)
{
	var elements = new Array();
	GetElementsByTagNameEx(obj, tagName, elements);
	return elements;
}

function GetControlObject(textObj)
{
	if (textObj == null)
		return null;
		
	if (textObj.attributes["ControlText"] != null && textObj.attributes["ControlText"].value == "1")
	{
		var lastIndex = textObj.id.lastIndexOf("_text");
		if (lastIndex != -1)
		{
			var controlId = textObj.id.substr(0, lastIndex);
			return document.getElementById(controlId);
		}
	}
	
	return textObj;
}

// Radio buttons
function radioOnClick(oControl)
{
	oControl = GetControlObject(oControl);
	if (!radioIsChecked(oControl))
		radioSetChecked(oControl);
}
function radioIsChecked(oControl)
{
	oControl = GetControlObject(oControl);
	var classState = getLastClassName(oControl);
	if (classState == "radioOn")
		return true;
	
	return false;
}
function radioSetChecked(oControl)
{
	oControl = GetControlObject(oControl);
	oControl.className = "radio radioOn btn";
	
	if (oControl.name == null)
		return;
	
	var elements = document.getElementsByTagName("SPAN");
	for (var i = 0; i < elements.length; i++)
	{
		if ((elements[i] != oControl) && (elements[i].name == oControl.name))
			elements[i].className = "radio btn";
	}
}

// Helpers
function getLastClassName(oElement)
{
	var pos = oElement.className.lastIndexOf(" ");
	if (pos == -1)
		return "";
		
	return oElement.className.substring(pos+1, oElement.className.length);
}


var imgPath = "Images";

var IE = document.all?true:false;  // Test for browser

var cbStatesImg = new Array(5);
cbStatesImg[0] = "indeterminate.gif";
cbStatesImg[1] = "unchecked.gif";
cbStatesImg[2] = "checked.gif";
cbStatesImg[3] = "disabled_unchecked.gif";
cbStatesImg[4] = "disabled_checked.gif";

// Get status of control (enabled or disabled).
// Param: string objID - ID of control
// Return: true or false
function GetControlStatus(obj)
{
	obj = GetControlObject(obj);
//	var obj = document.getElementById(objID);
	if (IE) {
		if (obj.disabled) {
			return(false);
		}
	} else {
		if ((obj.getAttribute("disabled") == "true") || (obj.getAttribute("disabled") == "disabled")) {
			return(false);
		}
	}
	
	return(true);
}

// Event function, caused on click checkbox
// Param: object obj - checkbox control
// Return: nothing
function CheckboxOnClick(obj)
{
	obj = GetControlObject(obj);
	if (GetControlStatus(obj)) {
		var cbHiddenID = obj.id + "_state";
		var cbHidden = document.getElementById(cbHiddenID);
		var state = cbHidden.value;

		if (state != 0) {
			CheckboxSetState(obj, 0);
		} else {
			CheckboxSetState(obj, 1);
		}
	}
}

// Set state for checkbox
// Param: object obj - checkbox control
//        int state  - state (
//								-1: indeterminate
//							   0: unchecked
//							   1: checked
//							   2: disabled unchecked
//							   3: disabled checked )
// Return: nothing
function CheckboxSetState(obj, state)
{
	obj = GetControlObject(obj);
	var cbHiddenID = obj.id + "_h";
	var cbHiddenIDState = obj.id + "_state";
	var cbHidden = document.getElementById(cbHiddenID);
	var cbHiddenState = document.getElementById(cbHiddenIDState);
	
	var re = /(.*)\/(.*\.gif)/;
	var src = obj.src;
	obj.src = src.replace(re,"$1/" + cbStatesImg[state + 1]);
	
	//obj.src = imgPath + "/checkbox/" + cbStatesImg[state + 1];
	var value_h;
	var value_state;
	if ((state == 0) || (state == 2)) {
			value_h = "";
		value_state = 0;
	}	else {
		value_h = "on";
		value_state = 1;
	}
	cbHidden.value = value_h;
	cbHiddenState.value = value_state;
}

function CheckboxGetState(oChkBox)
{
	oChkBox = GetControlObject(oChkBox);
  if(oChkBox == null)
    return;

	var cbHiddenID = oChkBox.id + "_state";
	var cbHiddenState = document.getElementById(cbHiddenID);

  return cbHiddenState.value;
}
// Set checkbox to disabled mode
// Param: object obj - checkbox control
// Return: nothing
function CheckboxSetToDisabled(obj) {
	obj = GetControlObject(obj);
	var cbHiddenID = obj.id + "_state";
	var cbHidden = document.getElementById(cbHiddenID);
	var state = parseInt(cbHidden.value);
	
	obj.setAttribute("disabled", true);
	if (state < 2)
	{
		cbHidden.value = state + 2;
		if (state != -1)
			obj.src = getPathByFullFileName(obj.src) + "/" + cbStatesImg[state + 3];
	}
//		obj.src = imgPath + "/checkbox/" + cbStatesImg[state + 3];
}
function IsCheckboxEnabled(obj)
{
	obj = GetControlObject(obj);
	var cbHiddenID = obj.id + "_state";
	var cbHidden = document.getElementById(cbHiddenID);
	var state = parseInt(cbHidden.value);
	return (state < 2);
}
// Set checkbox to enabled mode
// Param: object obj - checkbox control
// Return: nothing
function CheckboxSetToEnabled(obj) {
	obj = GetControlObject(obj);
	var cbHiddenID = obj.id + "_state";
	var cbHidden = document.getElementById(cbHiddenID);
	var state = parseInt(cbHidden.value);

	obj.setAttribute("disabled", false);
	if (state > 1)
	{
		cbHidden.value = state - 2;
		obj.src = getPathByFullFileName(obj.src) + "/" + cbStatesImg[state - 1];
	}
//		obj.src = imgPath + "/checkbox/" + cbStatesImg[state + 1];
}
//get checkbox checked state
function IsCheckboxChecked(obj)
{
	obj = GetControlObject(obj);
	var cbHiddenID = obj.id + "_state";
	var cbHidden = document.getElementById(cbHiddenID);
	var state = parseInt(cbHidden.value);
	if (state != 1)
		return false;
	else
		return true;
}

function IsCheckboxIndeterminate(obj)
{
	obj = GetControlObject(obj);
	var cbHiddenID = obj.id + "_state";
	var cbHidden = document.getElementById(cbHiddenID);
	var state = parseInt(cbHidden.value);
	if (state != -1)
		return false;
	else
		return true;
}
// Event function, caused on click radiobutton
// Param: object obj - radiobutton control
// Return: nothing
function RadioOnClick(obj)
{
	obj = GetControlObject(obj);
	if (GetControlStatus(obj)) {
		var rbHiddenID = obj.name;
		re = /:/g;
		rbHiddenID = rbHiddenID.replace(re, "_");
		var rbHiddenName = obj.name;
		var rbHidden = document.getElementById(rbHiddenID);
		var rbGroup = document.getElementsByName(rbHiddenName);
	
		for (var i = 0; i < rbGroup.length; i++) {
			var item = rbGroup.item(i);
			if (item.tagName == "IMG") {
				var pattern = /disabled_/;
				if (item.src.match(pattern)) {
					item.src = getPathByFullFileName(item.src) + "/disabled_unchecked.gif";
				} else {
					item.src = getPathByFullFileName(item.src) + "/unchecked.gif";
				}
				
				if (obj == item) {
					obj.src = getPathByFullFileName(obj.src) + "/checked.gif";
					rbHidden.value = obj.getAttribute("value");
				}
			}
		}
	}
}

function RadioIsChecked(obj)
{
	obj = GetControlObject(obj);
	var pattern = /unchecked.gif/;
	if (obj.src.match(pattern))
		return false;
	else
		return true;
}

// Set radiobutton group to disabled mode
// Param: string groupName - name of radiobutton group
// Return: nothing
function RadioGroupSetToDisabled(groupName)
{
	var rbHiddenID = groupName;
	var rbHiddenName = groupName;
	var rbHidden = document.getElementById(rbHiddenID);
	var rbGroup = document.getElementsByName(rbHiddenName);
	
	for (var i = 0; i < rbGroup.length; i++) {
		var item = rbGroup.item(i);
		if (item.tagName == "IMG") {
			RadioSetToDisabled(item);
		}
	}
}

// Set radiobutton group to enabled mode
// Param: string groupName - name of radiobutton group
// Return: nothing
function RadioGroupSetToEnabled(groupName)
{
	var rbHiddenID = groupName;
	var rbHiddenName = groupName;
	var rbHidden = document.getElementById(rbHiddenID);
	var rbGroup = document.getElementsByName(rbHiddenName);
	
	for (var i = 0; i < rbGroup.length; i++) {
		var item = rbGroup.item(i);
		if (item.tagName == "IMG") {
			RadioSetToEnabled(item);
		}
	}
}

// Set radiobutton to disabled mode
// Param: object obj - checkbox control
// Return: nothing
function RadioSetToDisabled(obj) {
	obj = GetControlObject(obj);
	obj.setAttribute("disabled", true);
	var pattern = /unchecked.gif/;
	if (obj.src.match(pattern)) {
		obj.src = getPathByFullFileName(obj.src) + "/disabled_unchecked.gif"
	} else {
		obj.src = getPathByFullFileName(obj.src) + "/disabled_checked.gif"
	}	
}

// Set radiobutton to enabled mode
// Param: object obj - checkbox control
// Return: nothing
function RadioSetToEnabled(obj) {
	obj = GetControlObject(obj);
	obj.setAttribute("disabled", false);
	var pattern = /unchecked.gif/;
	if (obj.src.match(pattern)) {
		obj.src = getPathByFullFileName(obj.src) + "/unchecked.gif"
	} else {
		obj.src = getPathByFullFileName(obj.src) + "/checked.gif"
	}
}

//
//	Combobox control
//
function Combobox(cid)
{
	this.CID = cid;
	this.Timer = null;
	this.Lister = getEl(cid + "Lister");
	this.ArrowImg = getEl(cid + "Arrow");
	this.Text = getEl(cid + "Text");
	this.HF = getEl(cid + "HF");
	this.ItemsTable = getEl(cid + "ItemsTable");
	this.StatusLister = false;
	this.Left;
	this.Top;
	this.Width;
	this.Height;
	
	this.Lister.style.width = 10;
	
	// Open items list
	// Param: object obj - combobox control
	// Return: nothing
	this.openLister = function(obj)
	{
		if (this.IsEnabled()) {
		
			if (this.Lister.offsetHeight > this.ItemsTable.offsetHeight) {
				this.Lister.style.height = this.ItemsTable.offsetHeight + 3;
			}
			
			if (this.StatusLister) {
				this.StatusLister = false;
				this.hideLister();
			} else {
	//			alert(this.Lister.ofsetLeft);
	//			this.Lister.left = window.event.x;
				
				this.Left = getPosLeft(obj);
				this.Top = getPosTop(obj) - 1;
				this.Height = obj.offsetHeight;
				this.Width = obj.offsetWidth;
				if (!IE) this.Width -= 2;

				
				this.StatusLister = true;
				this.showLister();
			}
		}
	}
	
	// Show items list
	// Param: nothing
	// Return: nothing
	this.showLister = function()
	{
		if (this.IsEnabled()) {
	
			if (this.StatusLister) {		
				window.clearTimeout(this.Timer);
				this.Timer = null;
				
				this.Lister.left = this.Left;
	//			alert(this.Top + this.Height);
				this.Lister.top = this.Top + this.Height;
	//			alert(this.Lister.style.top + " " + this.Top + " " + this.Height);
				this.Lister.style.width = this.Width;

	//			alert("Width: " + this.Width + "\nHeight: " + this.Height + "\nLeft: " + this.Left + "\nTop: " + this.Top);
	//			alert("Left: " + getPosLeft(this.Lister) + "\nTop: " + getPosTop(this.Lister));

				this.Lister.style.visibility = "visible";
				this.ArrowImg.src = getPathByFullFileName(this.ArrowImg.src) + "/arrow2.gif";
			}
		}
	}
	
	// Close items list
	// Param: nothing
	// Return: nothing
	this.closeLister = function()
	{
		window.clearTimeout(this.Timer);
		this.Timer = window.setTimeout(this.CID+".hideLister();", 1000);
	}
	
	// Hide item list
	// Param: nothing
	// Return: nothing
	this.hideLister = function()
	{
		this.Lister.style.visibility = "hidden";
		this.ArrowImg.src = getPathByFullFileName(this.ArrowImg.src) + "/arrow.gif";
		this.StatusLister = false;
	}
	
	this.setActiveItem = function(item)
	{
		item.className = "cbActiveItem";
	
	}

	this.setInactiveItem = function(item)
	{
		item.className = "cbInactiveItem";
	}
	
	// Select item
	// Param: object item
	// Return: nothing
	this.selectItem = function(item)
	{
		var cbItemHidden = getEl(item.id + "_h");
		this.Text.childNodes[0].nodeValue = item.childNodes[0].nodeValue;
		this.HF.setAttribute("value", cbItemHidden.getAttribute("value"));
		this.hideLister();
	}
	
	// Set control to enable mode
	// Param: object item
	// Return: nothing
	this.ToEnabled = function()
	{
		this.Text.setAttribute("disabled", false);
	}

	// Set control to disable mode	
	// Param: object item
	// Return: nothing
	this.ToDisabled = function()
	{
		this.Text.setAttribute("disabled", true);
	}
	
	// 
	// Param: object item
	// Return: true/false
	this.IsEnabled = function()
	{
		var a = GetControlStatus(this.Text);
		return(a);
	}
}

// Get object by name
// Param: string objName - object name
// Result: object
function getEl(objName)
{
	var obj = document.getElementById(objName);
	return(obj);
}

// Get obsolute X-position of object
// Param: object obj - element
// Result: int - number of pixels
function getPosLeft(obj)
{
	var left = obj.offsetLeft;
	var par = obj.offsetParent;
	while (par != null)
	{
		left += par.offsetLeft;
		par = par.offsetParent;
	}
	
	return(left);
}

// Get obsolute Y-position of object
// Param: object obj - element
// Result: int - number of pixels
function getPosTop(obj)
{
	var top = obj.offsetTop;
	var par = obj.offsetParent;
	while (par != null)
	{
		top += par.offsetTop;
		par = par.offsetParent;
	}
	
	return(top);
}

function getPathByFullFileName(FName)
{
	var start = FName.lastIndexOf("/");
	if (start != -1) {
		return(FName.substr(0, start));
	}
}
var StartButtonImages = null;
var OrderButtonImages = null;
function InitializeButtonImages()
{
	StartButtonImages = new Array(5);
	StartButtonImages[0] = new Array(3);
	StartButtonImages[1] = new Array(3);
	StartButtonImages[2] = new Array(3);
	StartButtonImages[3] = new Array(3);
	StartButtonImages[4] = new Array(3);
	for (var i = 0; i < 3; i++)
	{
		StartButtonImages[0][i] = new Image();
		StartButtonImages[0][i].src = imgPath + "/StartButtons/button_top_" + i + ".gif";

		StartButtonImages[1][i] = new Image();
		StartButtonImages[1][i].src = imgPath + "/StartButtons/button_angle_" + i + ".gif";

		StartButtonImages[2][i] = new Image();
		StartButtonImages[2][i].src = imgPath + "/StartButtons/button_bottom_" + i + ".gif";

		StartButtonImages[3][i] = new Image();
		StartButtonImages[3][i].src = imgPath + "/StartButtons/button_left_" + i + ".gif";

		StartButtonImages[4][i] = new Image();
		StartButtonImages[4][i].src = imgPath + "/StartButtons/button_right_" + i + ".gif";
	}

	OrderButtonImages = new Array(5);
	OrderButtonImages[0] = new Array(3);
	OrderButtonImages[1] = new Array(3);
	OrderButtonImages[2] = new Array(3);
	OrderButtonImages[3] = new Array(3);
	OrderButtonImages[4] = new Array(3);
	for (var i = 0; i < 3; i++)
	{
		OrderButtonImages[0][i] = new Image();
		OrderButtonImages[0][i].src = imgPath + "/OrderButtons/button_top_" + i + ".gif";

		OrderButtonImages[1][i] = new Image();
		OrderButtonImages[1][i].src = imgPath + "/OrderButtons/button_angle_" + i + ".gif";

		OrderButtonImages[2][i] = new Image();
		OrderButtonImages[2][i].src = imgPath + "/OrderButtons/button_bottom_" + i + ".gif";

		OrderButtonImages[3][i] = new Image();
		OrderButtonImages[3][i].src = imgPath + "/OrderButtons/button_left_" + i + ".gif";

		OrderButtonImages[4][i] = new Image();
		OrderButtonImages[4][i].src = imgPath + "/OrderButtons/button_right_" + i + ".gif";
	}

}


function ChangeShadowStartButton(id, state, className, imgDir)
{
	if (StartButtonImages == null || OrderButtonImages == null)
		InitializeButtonImages();
	var tbl = document.getElementById(id);
	if (GetControlStatus(tbl)) {
		if (null == state)
		{
			state = 0;
		}
/*		tbl.rows[0].cells[0].childNodes[0].src = imgPath + "/" + imgDir + "/button_top_" + state + ".gif";
		tbl.rows[1].cells[0].childNodes[0].src = imgPath + "/" + imgDir + "/button_left_" + state + ".gif";
		tbl.rows[1].cells[2].childNodes[0].src = imgPath + "/" + imgDir + "/button_right_" + state + ".gif";
		tbl.rows[2].cells[0].childNodes[0].src = imgPath + "/" + imgDir + "/button_bottom_" + state + ".gif";
		tbl.rows[1].cells[1].style.backgroundImage = "url(" + imgPath + "/" + imgDir + "/button_angle_" + state + ".gif)";
*/
		if (imgDir == "orderbuttons")
		{
			tbl.rows[0].cells[0].childNodes[0].src = OrderButtonImages[0][state].src;
			tbl.rows[1].cells[0].childNodes[0].src = OrderButtonImages[3][state].src;
			tbl.rows[1].cells[2].childNodes[0].src = OrderButtonImages[4][state].src;
			tbl.rows[2].cells[0].childNodes[0].src = OrderButtonImages[2][state].src;
			tbl.rows[1].cells[1].childNodes[0].rows[0].cells[1].childNodes[0].src = OrderButtonImages[1][state].src;
		}
		else
		{
			tbl.rows[0].cells[0].childNodes[0].src = StartButtonImages[0][state].src;
			tbl.rows[1].cells[0].childNodes[0].src = StartButtonImages[3][state].src;
			tbl.rows[1].cells[2].childNodes[0].src = StartButtonImages[4][state].src;
			tbl.rows[2].cells[0].childNodes[0].src = StartButtonImages[2][state].src;
			tbl.rows[1].cells[1].childNodes[0].rows[0].cells[1].childNodes[0].src = StartButtonImages[1][state].src;
		}

		tbl = document.getElementById(id + "Text");
		tbl.className = className;
	}
}

function IsPageValid()
{
	var isValid = true;
	for (var i = 0; i < ValFields.length; i++)
	{
		var field = document.getElementById(ValFields[i]);
		var errLabel = document.getElementById(ValFields[i] + "_errLabel");
		if (field == null || errLabel == null)
			continue;
		if (Trim(field.value).length == 0)
		{
			isValid = false;
			errLabel.style.display = "inline";
		}
		else
		{
			errLabel.style.display = "none";
		}
	}
	
	return isValid;
}

function Trim(TRIM_VALUE){
	if (TRIM_VALUE.length < 1)
	{
		return "";
	}
	var TRIM_VALUE = RTrim(TRIM_VALUE);
	var TRIM_VALUE = LTrim(TRIM_VALUE);
	if (TRIM_VALUE=="")
	{
		return "";
	}
	else
	{
		return TRIM_VALUE;
	}
} //End Function

function RTrim(VALUE){
	var w_space = String.fromCharCode(32);
	var v_length = VALUE.length;
	var strTemp = "";
	if(v_length < 0)
	{
		return"";
	}
	var iTemp = v_length -1;

	while (iTemp > -1){
		if (VALUE.charAt(iTemp) == w_space)
		{
		}
		else
		{
			strTemp = VALUE.substring(0,iTemp +1);
			break;
		}
		iTemp = iTemp-1;

	} //End While
	return strTemp;

} //End Function

function LTrim(VALUE){
	var w_space = String.fromCharCode(32);
	if (v_length < 1)
	{
		return"";
	}
	var v_length = VALUE.length;
	var strTemp = "";

	var iTemp = 0;

	while (iTemp < v_length)
	{
		if (VALUE.charAt(iTemp) == w_space)
		{
		}
		else
		{
			strTemp = VALUE.substring(iTemp,v_length);
			break;
		}
		iTemp = iTemp + 1;
	} //End While
	return strTemp;
} //End Function

function ValidateDate( inputControlID ) {
	inputControl = document.getElementById( inputControlID );
	date = inputControl.value;
	message = "";
	if( /^(\d{4})-(\d{2})-(\d{2})$/.test( date ) ) {
		exYear = Number( RegExp.$1 );
		exMonth = Number( RegExp.$2 );
		exDay = Number( RegExp.$3 );
		if( ( exYear < 1900 ) || ( exYear > 2078 ) ) {
			message = "Year should be between 1900 and 2078.";
		} else {
			if(( exMonth < 1 ) || ( exMonth > 12 )) {
				message = "Month should be between 01 and 12";
			} else {
				if( ( exDay < 1 ) || ( exDay > 31 ) ) {
					message = "Day should be between 1 and 31";
				}
			}
		}
	} else {
		message = "Date should be in yyyy-mm-dd format.";
	}
	if( message != "" ) {
		inputControl.focus();
		inputControl.select();
		alert( message );
		return false;
	}
	return true;
}

function encodeHTML(str)
{
  if (null != str)
  {
	  str = str.replace(/</g, "&lt;");
	  str = str.replace(/>/g, "&gt;");
	  var ch = '"';
		str = str.replace(new RegExp(ch, "g"), "&quot;");
	  return str;
	}
	return "";
}

function DecodeString(val)
{
	if (null != val)
	{
		val = val.replace(/&lt;/g, "<");
		val = val.replace(/&gt;/g, ">");
		val = val.replace(/&quot;/g, "\"");
	  val = val.replace(/&nbsp;/g, " ");
		return val;
	}
	else
		return "";
}

function printAndClose()
{
  window.print();
  window.close();
}

function FocusField(fieldId)
{
  var field = document.getElementById(fieldId);

	try {
		if(field != null)
			field.focus();
	}catch(e){}
}

