<!--

function $id(obj_id) {return document.getElementById(obj_id);}
function show_element(element_id) {$id(element_id).style.display = "";}
function hide_element(element_id) {$id(element_id).style.display = "none";}

function check_number()
{
	if(isNaN(event.srcElement.value)== true)
		{
			alert("You have entered not numeric value into numeric field")
			event.srcElement.value = ""
			//alert("true")
		}
	//else{alert("false")}	
}

function open_modal_dialog(file_name, width, height)
{

	//window.open(file_name,"content","height=" + height + ", width=" + width + ", scrollbars=yes,status=yes,toolbar=yes,menubar=yes,location=yes,top=7");
	window.showModalDialog(file_name, window ,"dialogHeight:" + height + "px; dialogWidth:" + width + "px; dialogTop: px; dialogLeft: px; edge: Raised; center: Yes; help: No; resizable: yes; status: No;");	
	//this function has to be present in all files that use carrent function to be able to use return parameters from modal dialog
	after_modal_close()
}

function open_window(url, width, height, scrolling)
{
	var x = window.open(url,"content","height=" + height + ", width=" + width + ", scrollbars=" + scrolling + ",status=no,toolbar=no,menubar=no,location=no,top=7");
	
	if (window.focus) 
	{ x.focus();
	}
}
		
function show(name)
{ current = name;
	var tip = eval('document.all.' + name);

	if (tip)
	{ //var flyimg = eval('document.all.img' + name);
		tip.style.visibility = "visible";
	}
}

function showN(name, reference, parameterTop, parameterLeft)
{ current = name;
  var tip = eval('document.all.' + name);
  
  if (tip)
  { tip.style.visibility = "visible";
    if(reference != "")
    { tip.style.top = DL_GetElementTop(reference) + parameterTop;
      tip.style.left = DL_GetElementLeft(reference) + parameterLeft;
    }
  }
}

function hide(name)
{ var tip = eval('document.all.' + name);
	var parentName = eval('document.all.' + name);
  
  if (tip)
  { tip.style.visibility = "hidden";
  }
}

function DL_GetElementLeft(eElement)
{ var nLeftPos = eElement.offsetLeft;      
  var eParElement = eElement.offsetParent;
  
  while (eParElement != null)
  { nLeftPos += eParElement.offsetLeft;     
    eParElement = eParElement.offsetParent; 
  }
  return nLeftPos;                             
}

function DL_GetElementTop(eElement)
{ var nTopPos = eElement.offsetTop;
  var eParElement = eElement.offsetParent;
  
  while (eParElement != null)
  { nTopPos += eParElement.offsetTop;
    eParElement = eParElement.offsetParent;
  }
  return nTopPos;
}

/***************************************
* Will allow showing and hiding of data.
* objToShow is the first element, it is set to the obj you want to see
* objToHide is an array of elements, it is set to the obj/objs you want to hide. It can be empty
* Set the id attribute to the name of the obj you want to show
*
* Examples: 
* showHide('table1','table2','table3') - this will show table1 and hide 2 and 3
* showHide('table2','table1','table3') - this will show table2 and hide 1 and 3
* showHide('table2') - this will show table2, will not hide any other tables, if exist
***************************************/

function showHide(objToShow, objToHide)
{ var arrShowValues    = showHide.arguments
  var intShowValuesLen = showHide.arguments.length
  
  if(document.getElementById)
  { var objShow = document.getElementById(arrShowValues[0]);
    if(objShow == null)
    { alert("Please supply an element id name");
      return;
    }
    
    if (objShow.style.display == "none") objShow.style.display = "block";
    else objShow.style.display = "none";
  
    if(intShowValuesLen > 1)
    { for(var i = 1; i < intShowValuesLen; i++)
      { var objHide = document.getElementById(arrShowValues[i]);
        objHide.style.display = "none";
      }
    }
  }
  else
  { alert("Cannont find object");
  }
}
//******************************************************* End of Function

/********************************************************************
* Description: Changes state for any text within a specified table, works with highlight
*							 Works with text within table cells
* Parameters:  object table Id, object cell Id, boolean - whether or not being used in a flyout menus
* Required:		 Table name is 'left_menu', all parameters
*********************************************************************/
function click_change(objTableID, objID, blnIsFlyout)
{ var objTableElementID = eval("document.all." + objTableID);

	if(!objTableElementID)
	{ objTableElementID = eval("parent.parent.document.all." + objTableID);
	}
	
	//Loop through table-row-cell elements - do not turn off help link
	for(var i = 0; i < objTableElementID.rows.length; i++)
	{	for(var j = 0; j < objTableElementID.rows[i].cells.length; j++)
		{	if(objTableElementID.rows[i].cells[j] != document.all.subnav_help)
			{	objTableElementID.rows[i].cells[j].style.color = "#003798";
				objTableElementID.rows[i].cells[j].state = "off";
			}
		}
	}

	// sets cell to active state from calling page
	var objCellElementID = eval("parent.parent.document.all." + objID);
	if(objCellElementID)
	{ objCellElementID.style.color = "#FF7E05";
		objCellElementID.state = "on";
	}
	else // sets clicked cell to active state
	{ if(event.srcElement.id == objID)
		{	event.srcElement.style.color = "#FF7E05";
			event.srcElement.state = "on";
		}
	}
	
	//Is the click state part of a fly out
	if(blnIsFlyout == 1)
	{ objIDElement = eval("document.all." + objID);
		objIDElement.state = "on";
		objIDElement.style.color = "#FF7E05";
	}
}

/********************************************************************
* Description: Highlights text/object
* Parameters:  object Id to change, rollover state
* Required:		 Table name is 'left_menu', all parameters
*********************************************************************/
function highlight(objID, strRoll)
{ objIDElement = eval("document.all." + objID);
	
	if(strRoll == "on" || objIDElement.state == "on")
	{ objIDElement.style.color = "#FF7E05";
	}
	else
	{ objIDElement.style.color = "#003798";
	}
}

// setStyleByClass: given an element type and a class selector,
// style property and value, apply the style.
// args:
//	d - document
//  t - type of tag to check for (e.g., SPAN)
//  c - class name
//  p - CSS property
//  v - value
function setStyleByClass(d,t,c,p,v){
	elements = d.getElementsByTagName(t);
	
	for(var i = 0; i < elements.length; i++){
		var node = elements.item(i);
		for(var j = 0; j < node.attributes.length; j++) {
			if(node.attributes.item(j).nodeName == 'class') {
				if(node.attributes.item(j).nodeValue == c) {
					eval('node.style.' + p + " = '" +v + "'");
				}
			}
		}
	}
}

function show_hide_table_rows(table_name, row_attribute, attribute_value)
{
	rows = document.getElementById(table_name).getElementsByTagName("tr")
	
	if (attribute_value == 0)
	{	for (i = 0; i < rows.length; i++)
		{	rows[i].style.display = "block"
		}
	}
	else
	{	for (i = 0; i < rows.length; i++)
		{	if (rows[i][row_attribute])
			{	if (rows[i][row_attribute] == attribute_value)
				{	rows[i].style.display = "block"
				}
				else
				{	rows[i].style.display = "none"
				}
			}
		}
	}
}

function all_reset(the_form)
{
	// all purpose form reset function
	var query_fields;
	
	query_fields = the_form.getElementsByTagName("input");
	for(var i = 0; i < query_fields.length; i++)
		if(query_fields[i].type == "text") {
			query_fields[i].value = "";
			fireJSEvent(query_fields[i], "change");
		}
		
	query_fields = the_form.getElementsByTagName("select");
	for(var i = 0; i < query_fields.length; i++){
		query_fields[i].value = "";
		query_fields[i].value = "all";
		fireJSEvent(query_fields[i], "change");
	}
}

function fireJSEvent(element,event){
    if (document.createEventObject){
        // dispatch for IE
        var evt = document.createEventObject();
        return element.fireEvent('on'+event,evt)
    }
    else{
        // dispatch for firefox + others
        var evt = document.createEvent("HTMLEvents");
        evt.initEvent(event, true, true ); // event type,bubbling,cancelable
        return !element.dispatchEvent(evt);
    }
}
//-->