function isBrowserIE(){
	var browser=navigator.appName;
	return (browser=="Microsoft Internet Explorer");
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
function openWin(theURL,winName,features) {
  	window.open(theURL,winName,features);
}

function checkFieldInput(fieldObj,allowedChars)
{
	var checkValue = fieldObj.value;
	var fieldOk = true;
	var sAllowedString = "";
	for (i = 0; i < checkValue.length; i++) 
	{
		var charOk = false;
		var oneChar = checkValue.charAt(i);
		for (j = 0; j < allowedChars.length; j++)
		{
			if (oneChar == allowedChars.charAt(j)) 
			{
				sAllowedString += allowedChars.charAt(j).toString();
			}
		}
	}
	if (checkValue != sAllowedString) fieldObj.value = sAllowedString;
}

function showHideRow(rowID, OpenerID, ClassOn, ClassOff){
	var obj=(document.all) ? document.all[rowID] : document.getElementById(rowID);
	var objOpener=(document.all) ? document.all[OpenerID] : document.getElementById(OpenerID);
	
    obj.style.display=(obj.style.display=="none"? 
					   ((isBrowserIE()) ? "block" : "table-row") :"none");
	objOpener.className=(objOpener.className==ClassOff?ClassOn:ClassOff);
}

function verifyRowClassChange(parentID, childID, targetClass) {
	var objChild =(document.all) ? document.all[childID] : document.getElementById(childID);
	var objParent =(document.all) ? document.all[parentID] : document.getElementById(parentID);
	
	if (objChild.style.display == "none") {
		objParent.className = targetClass;
	}
}
function showHideObject(objectID) {
	var obj=(document.all) ? document.all[objectID] : document.getElementById(objectID);
    obj.style.display=(obj.style.display==""?"none":"");
}

function toggleItem(id,onclass,offclass) {
	var objItemDisplay = document.getElementById('info' + id);
	var objItemInfo =  document.getElementById('details' + id);
	var objOpener =  document.getElementById('opener_' + id) ? document.getElementById('opener_' + id) : false;
	var objItemDisplayRow =  document.getElementById('row' + id) ? document.getElementById('row' + id) : false;
	var str = "";
	
	if (objItemDisplay.innerHTML == "")
	{
		str = objItemInfo.innerHTML;
		objItemDisplay.innerHTML = str;
		if (objOpener) objOpener.className = onclass;
		if (objItemDisplayRow) objItemDisplayRow.className = onclass;
		if (objItemDisplay.innerHTML == str) objItemInfo.innerHTML = "";
	} else {
		str = objItemDisplay.innerHTML;
		objItemInfo.innerHTML = str;
		if (objItemInfo.innerHTML == str) objItemDisplay.innerHTML = "";
		if (objOpener) objOpener.className = offclass;
		if (objItemDisplayRow) objItemDisplayRow.className = "search_result_row";
	}
}
function toggleItemMouseOut(id,className) {
	var objItemDisplay = document.getElementById('info' + id);
	var objOpener =  document.getElementById('opener_' + id);
	
	if (objItemDisplay.innerHTML == "")
	{
		objOpener.className = className;
	}
}

// Function to fix URL paths
function FixURL(strURL, strPathToRoot)
{
	// If there's a need for optimization
	if (strURL.indexOf("/") != 0 && strURL.indexOf("http://") != 0)
	{	
		// Fix URLs beginning with www (misuse of full path URL)
		if (strURL.indexOf("www.") == 0)
		{
			strURL = "http://" + strURL;
		} 
		// Fix URLs attempting to make use of relative URLs
		else if (strURL.value != "")
		{
			strURL = strPathToRoot + strURL;
		}
	}
	
	// Return optimized URL
	return strURL;
}

// Function to return an XmlHttpObject for Ajax scripts
function GetXmlHttpObject()
{
var xmlHttp=null;
try
  {
  // Firefox, Opera 8.0+, Safari
  xmlHttp=new XMLHttpRequest();
  }
catch (e)
  {
  // Internet Explorer
  try
    {
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
  catch (e)
    {
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
return xmlHttp;
}
// Function to return an XmlDOM object for XML parsing
function loadXML(xml,isString)
{
	var xmlDoc;
	// code for IE
	if (window.ActiveXObject)
	{
		xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async=false;
		xmlDoc.load(xml);
		return xmlDoc;
	}
	// code for Mozilla, Firefox, Opera, etc.
	else if (document.implementation && document.implementation.createDocument)
	{
		var isLoaded;
		if (isString)
		{
			var parser = new DOMParser();
			xmlDoc = parser.parseFromString(xml,"text/xml");
			isLoaded = true;
		} else {
			xmlDoc = document.implementation.createDocument("","",null);
			isLoaded = xmlDoc.load(xml);
		}
		if (isLoaded == true)
			return xmlDoc;
		else
		{
			alert("xml not loaded!");
			return;
		}
	}
	else
	{
		alert('Your browser cannot handle this script.\nPlease update your browser or change the security settings.');
		return;
	}
}
