
    function toggleDiv(divid){
	    if(document.getElementById(divid).style.display == 'none'){
	      document.getElementById(divid).style.display = 'block';
	    }else{
	      document.getElementById(divid).style.display = 'none';
	    }
	  }
	  
   function isBroswerCompatibleQS(qs){
   	var isCompatible = true;
   	var browserName = "Internet Explorer";
	var browserVersion = "MSIE 8";
	//alert("navigator.name: " + navigator.appName + " navigator.version: " + navigator.appVersion + " navigator.codeName: " + navigator.appCodeName);
	//alert("navigator.appName.indexOf(browserName): " + navigator.appName.indexOf(browserName));
	//alert("navigator.appVersion.indexOf(browserVersion): " + navigator.appVersion.indexOf(browserVersion));
	
		if (navigator.appName.indexOf(browserName) > -1){
			if (navigator.appVersion.indexOf(browserVersion) == -1){
				if (qs.length > 2080){
					isCompatible = false;
				}
			}
		}
	return 	isCompatible;
   }
	  
   function toggleDivText(text, divid){
   	  var _div = document.getElementById(divid);
   	  _div.innerHTML = text;
	}
	function resetText(elem){
		if (elem != null){
			if (elem.value != ""){
				elem.value = "";
			}
		}
	}
	
   function toggleLinkCSSClass(emId, className1,prefix, className2 ){
  		replaceCSSClass(emId, className1);
  	
	  	for (var i = 0; i < document.links.length; i++){
	  		var link = document.links[i];
	  		//alert("document link: " + link.id);
	  		if ((link.id.length > 0) && (link.id != emId)){
	  				if (link.id.indexOf(prefix) > -1){
	  					//alert("document link: " + link.id + " className");
	  					replaceCSSClass(link.id, className2)
	  				}
	  			
	  			
	  		}
	  	}
  	}
  	
  	function formatFormDt(dt){
  	
		var dd = dt.getDate();
		var mm = dt.getMonth()+1;
		var yyyy = dt.getFullYear();
		if(dd<10){dd='0'+dd;}
		if(mm<10){mm='0'+mm;}
	
		return mm+'/'+dd+'/'+yyyy;

  	}
  	
  	function toggleDisable(frm, _name, _type, _disabled){
  		for (var i = 0; i < frm.elements.length; i++){
			var frmElement = frm.elements[i];
			if (frmElement.type == _type){
				
				if (frmElement.name == _name){
					//window.alert("type: " + _type + ", frmElement.type: " + frmElement.type + "; name: " + _name + " frmElement.name: " + frmElement.name);
					frmElement.disabled = _disabled;
					//window.alert(_name + " disabled = " + frmElement.disabled);
				}
			}
		}
  	}
  	
  	function toggleGridLinkElementCSSStyle(prefix, id){
  		//window.alert("document.links.size = " + document.links.length);
  		for (var i = 0; i < document.links.length; i++){
  			var link = document.links[i];
  			if (link.id.indexOf(prefix) > -1){
  				//alert ("link id = " + link.id);
  				var selectedLinkId = prefix + id;
  				if (link.id == selectedLinkId){
  					link.className = "global_link_selected";
  				}else{
  					link.className = "global_link";
  				}
  			}
  			
  		}
  	}
  	
  function toggleGridRowCSSStyle(prefix, tagName, id){
  		//alert("document.links.size = " + document.links.length);
  		var elems = document.getElementsByTagName(tagName)
  		var selectedElemId = prefix + id;
  		for (var i = 0; i < elems.length; i++){
				var elem = elems[i];
				if (elem.id == selectedElemId){
					elem.className = "grid_row_selected";
				}else{
					elem.className = "grid_row_list";
				}
				 			
  			}
  	}
  	
  	function toggleGridRowCSSStyleBold(prefix, tagName, id){
  		//alert("document.links.size = " + document.links.length);
  		var elems = document.getElementsByTagName(tagName)
  		var selectedElemId = prefix + id;
  		for (var i = 0; i < elems.length; i++){
				var elem = elems[i];
				var elemId = new String(elem.id);
				if (elemId.indexOf(prefix) > -1){
					var className = new String(elem.className);
				
					if (elem.id == selectedElemId){
						if (className.indexOf("_bold") == -1){
							className += "_bold";
						}
						elem.className = className;
					}else{
						if (className.indexOf("_bold") > -1){
							className = className.substr(0, (className.length - 5));
						}
						elem.className = className;
					}
				}
				 			
  			}
  	}
  	
  	function toggleFormEditElementsCSSStyle(prefix,tagName, cssClassName){

  			var elems = document.getElementsByTagName(tagName)
  			for (var i = 0; i < elems.length; i++){
				var elem = elems[i];
				if (elem.id.indexOf(prefix) > -1){
					elem.className = cssClassName;
				}
				 			
  			}

  	}
  	
  	function displayTabData(url, elemId){
  		//alert(url);
  		var urlStoreElem = document.getElementById('f_returnUrl');
  		//alert(" urlStoreElem.value = " + urlStoreElem.value);
  		if (urlStoreElem != null)
  			urlStoreElem.value = url;
  		//alert("reset urlStoreElem.value = " + urlStoreElem.value);
  		doAJAXQuery_GET(url, elemId);
  	}
  	
  	function setSearchDisplayContent(html){
  		var searchDiv = document.getElementById('display_search_parameters');
  		if (html == null)
  			html = getSearchDisplay_Empty('','');
  			
  		searchDiv.innerHTML = html;
  		//alert(searchDiv.innerHTML);
  		return;
  	}
  	
  	function getSearchDisplay_Empty(action, returnURL){
  		var html = "<form name=\"search_form\" id=\"search_form\" >" + 
			"<table class=\"table_search_empty\">" + 
			"<input type=\"hidden\" name=\"action\" value=\"" + action + "\"/>" + 
			"<input type=\"hidden\" name=\"f_returnUrl\" id=\"f_returnUrl\" value=\"" + returnURL + "\"/>" + 
			"<tr>" + 
				"<td align=\"right\"><img src=\"img/sep_transparent.gif\" width=\"50\" height=\"50\"/></td>" + 
			"</tr>" + 
			"</table>" + 
			"</form>" 
		return html		
  	}

	function replaceCSSClass(emId, className){
	
		var elem = document.getElementById(emId);
  		//alert("found element:" + elem.innerHTML);
  		var attributes = elem.attributes;
  		for (var i = 0; i < attributes.length;i++){
  		//alert("attribute: " + attributes[i].nodeName + " = " + attributes[i].nodeValue);
  			if (attributes[i].nodeName == "class"){
  				attributes[i].nodeValue = className;
  			}
  		}
	}
	
	function doAJAXQuery_GET_WITH_RETURN_URL(url){
		var returnURL = document.getElementById("f_returnUrl");
		var qs = "&f_returnUrl=";
		qs += escape(returnURL.value);
		//alert("qs = " + qs);
		url += qs;
		doAJAXQuery_GET(url, null);
	}
	
	function saveData(page, form){
		//alert("page: " + page + ", form method: " + form.method + ", elemId: " + elemId);
		
		var qs = getQSFromForm(form);
		var returnURL = document.getElementById("f_returnUrl");
		qs += "&f_returnUrl=";
		qs += escape(returnURL.value);
		//alert("qs = " + qs);
		var url = page + "?" + qs;
		
		
		/* 
			not nessessery since form submission should pass container id thru header		
		var token = document.getElementById("f_token");
		var formContainerIdPrefix = document.getElementById("f_formContainerIdPrefix");
		var elemId = formContainerIdPrefix + token;
		*/
		
		doAJAXQuery_GET(url, null);
	}
	function resetReturnURL(url){
		var returnURL = document.getElementById("f_returnUrl");
		if (returnURL != null){
			returnURL.value = url;
			//alert("set return url to " + returnURL.value);
		}	
	}
	function getQSFromFormElementArray(elemArray){
		var qs = "";
		for (var i = 0; i < elemArray.length; i++){
			var elem = document.getElementById(elemArray[i]);
			if (undefined != elem){
				
				if (isCheckableElem(elem)){
					if (elem.checked){
						qs += elemArray[i];
						qs += "=";
						qs += elem.value;
					}
				}else 
					if(isSelectMultiple(elem)){
						var val = "";
						qs += elemArray[i];
						qs += "=";
						for (var j = 0; j < elem.options.length; j++){
							val += elem.options[j].value;
							if (j < (elem.options.length - 1)){
								val +=",";
							}
						}
						qs += encodeURIComponent(val) 
					}else{
						qs += elemArray[i];
						qs += "=";
						qs += encodeURIComponent(elem.value);
					}
				
				if (i < (elemArray.length - 1)){
					qs +="&";
				}
			}
		}
		return qs;
	}
	
	function getQSFromForm(form){
		var qs = "";
		if (form != null){
			var _len = form.elements.length;
			
			for (var i = 0; i < _len; i++){
				var elem = form.elements[i];
				
					
				if (isCheckableElem(elem)){
					if (elem.checked){
						qs += elem.name;
						qs += "=";
						qs += escape(elem.value);
						if (i < (_len-1)){
							qs += "&";
						}
						
					}
				}else 
					if (isSelectMultiple(elem)){
						//alert("select-multiple name = " + elem.name + ", value = " + elem.value);
						for (var j = 0; j < elem.options.length; j++){
							if (elem.options[j].selected){
								qs += elem.name;
								qs += "=";
								qs += elem.options[j].value;
								if (i < (_len-1)){
									qs += "&";
								}
							}
						}
				}else{
					if (elem.name.indexOf("f_temp_") == -1){
						qs += elem.name;
						qs += "=";
						//qs += replaceSpecialChars(elem.value);
						qs += encodeURIComponent(elem.value);
						//qs += escape(replaceSpecialChars(elem.value));
						if (i < (_len-1)){
							qs += "&";
						}
					}
					
					
				}
			}
		}	
		return qs;
	}
	
	function getQSFromForm_ExcludedElements(form){
		
		if (undefined == form) return;
		var qs = "";
		var _len = form.elements.length;
		
		for (var i = 0; i < _len; i++){
			var elem = form.elements[i];
			if (isExcludedElement(elem) == false){
				if (isCheckableElem(elem)){
						if (elem.checked){
							qs += elem.name;
							qs += "=";
							qs += escape(elem.value);
							if (i < (_len-1)){
								qs += "&";
							}
							
						}
					}else 
						if (isSelectMultiple(elem)){
							//alert("select-multiple name = " + elem.name + ", value = " + elem.value);
							for (var j = 0; j < elem.options.length; j++){
								if (elem.options[j].selected){
									qs += elem.name;
									qs += "=";
									qs += elem.options[j].value;
									if (i < (_len-1)){
										qs += "&";
									}
								}
							}
					}else{
						//if (elem.name.indexOf("f_temp_") == -1){
							qs += elem.name;
							qs += "=";
							//qs += replaceSpecialChars(elem.value);
							qs += encodeURIComponent(elem.value);
							//qs += escape(replaceSpecialChars(elem.value));
							if (i < (_len-1)){
								qs += "&";
							}
						//}
					}
				}
				
			
		}
	
		return qs;
	}
	
	function isExcludedElement(elem){
		if (undefined == elem) return true;
		if (trim(elem.name).length == 0) return true;
		if (elem.name.indexOf("f_temp_") > -1) return true;
		if (elem.name.indexOf("action") > -1) return true;
		if (elem.name.indexOf("f_returnUrl") > -1) return true;
		if (elem.name.indexOf("submitButton") > -1) return true;
		if (elem.name.indexOf("f_incPageLoaded") > -1) return true;
		if (elem.name.indexOf("f_module") > -1) return true;
		return false;
	}
	
	
	// not used
	function replaceSpecialChars(str){
		if (trim(str).length == 0) return str;
		else{
			str = str.replace(/\\</gi, '&lt;');
			str = str.replace(/\\>/gi, '&gt;');
			str = str.replace(/\\%/gi, '&37;');
			window.alert("str: " + str);
			return str;
		}
	}
	function isSelectMultiple(elem){
		if (elem.type == 'select-multiple') return true;
		return false;
	}
	function isCheckableElem(elem){
		if (elem.type == 'checkbox') return true;
		if (elem.type == 'radio') return true;
		return false;
	}
	function getFormElement(frm, elemName){
		var frmElem = null;
		for (var i = 0; i < frm.elements.length; i++){
			var elem = frm.elements[i];
			if (elem.name == elemName){
				//alert("found form element = " + elemName);
				frmElem = elem;
				break;
			}
				
		}
		return frmElem;
	}
	
	function resetElements(elemId, type, prefix){
		var _elems = document.getElementsByTagName(type);
		
		for (var i = 0; i < _elems.length; i++){
			var _elem = _elems[i];
			//alert("found element type: " + type + " id: " + _elem.id);
			if (_elem.id.indexOf(prefix) > -1){
				//alert("found matching element: " + type + " id: " + _elem.id);
				if (_elem.id != elemId){
					//alert("found \"OTHER\" element: " + type + " id: " + _elem.id + " innerHtml: " + _elem.innerHTML);
					_elem.innerHTML = "";
				}
			}
		}
	}
	
	function doAJAXQuery_GET_RESET(url, token, type, prefix){
		var elemId = prefix + token;
		resetElements(elemId, type, prefix);
		var confirmMessage = document.getElementById("attention_message");
		
		if (confirmMessage != null){
			//alert("confirmMessage = " + confirmMessage)
			//alert("confirmMessage.nodeValue = " + confirmMessage.firstChild.nodeValue)
			confirmMessage.firstChild.nodeValue = "";
		}
			
		var errorMessage = document.getElementById("error_message");
		if (errorMessage != null)
			errorMessage.firstChild.nodeValue = "";
		
		doAJAXQuery_GET(url, elemId);
		
	}
	
	function searchContent(url, form, elemId){
		var qs = getQSFromForm(form);
		//alert("search qs = " + qs);
		url += "?";
		url += qs;
		//alert("url = " + url + "\nform = " + form + "\nelemId = " + elemId);
		doAJAXQuery_GET(url, elemId)
	}

	function closeElem(elemId){
		var elem = document.getElementById(elemId);
		if (undefined != elem){
			elem.innerHTML = "";
		}
	}
	
	function setElemHidden(elemId){
		var elem = document.getElementById(elemId);
		if (undefined != elem){
			elem.style.visibility = 'hidden';
		}
	}
	
	function setElemVisible(elem){
		elem.style.visibility = 'visible';
	}
	
	function resetPassword(url, elemId){
		if (confirm(" User password will be reset!    ")){
			doAJAXQuery_GET(url, elemId);
		}
	}
	
	function resetAdviseAccess(url, returnUrl, disable){
		//alert("url: " + url + "\nreturnUrl: " + returnUrl + "\ndisable: " + disable);
		var message;
		var oDisable = new Boolean(disable);
		//alert("oDisable = " + oDisable);
		if (oDisable == true){
			message = "User access to Advise application will be revoked!";
		}else{
			message = "User will be granted access to Advise application!";
		}
		//alert(message);
		if (confirm(message)){
			url += "&f_returnUrl=";
			url += escape(returnUrl);
			url += "&f_disable="
			url += disable;
			doAJAXQuery_GET(url, null);
		}
	}
	
	function createNewUser(url, roleId, elemId, hrefId){
		//alert(url + " " + roleId + " " + elemId + " hrefId = " + hrefId);
		var hrefElem = document.getElementById(hrefId);
		//alert("href text = " + hrefElem.firstChild.nodeValue);
		url += "&f_roleId=";
		url += roleId;
		//alert("create user url = " + url);
		doAJAXQuery_GET(url, elemId);
	}
	
	function getAJAXRequestObject(){
		var ajaxRequest;  // The variable that makes Ajax possible!
	
		 try{
		   // Opera 8.0+, Firefox, Safari
		   ajaxRequest = new XMLHttpRequest();
		 }catch (e){
		   // Internet Explorer Browsers
		   try{
		      ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
		      //alert("Msxml2.XMLHTTP");
		   }catch (e) {
		      try{
		         ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
		         //alert("Microsoft.XMLHTTP");
		      }catch (e){
		         // Something went wrong
		         window.alert("Your browser does not support this operation! \n " + 
		         "Please use newer version of browser.");
		         return false;
		      }
		   	}
 		  }
 		 return ajaxRequest;
	}
	
	function doAJAXQuery_GET(url, elemId){
			
		 var ajaxRequest = getAJAXRequestObject();
 		  //alert("got random = " + getRandom());
 		  
 		  ajaxRequest.onreadystatechange = function(){
 		  	//alert("ajaxRequest.readyState = " + ajaxRequest.readyState + "ajaxRequest.status= " + ajaxRequest.status)
			   if(ajaxRequest.readyState == 4){
			   	  
			   	  //window.alert("RENDER_ELEMENT_ID Header = " + ajaxRequest.getResponseHeader("RENDER_ELEMENT_ID"));	
			   	  var headerElemId = ajaxRequest.getResponseHeader("RENDER_ELEMENT_ID");
			   	  if ((headerElemId != null) && (headerElemId.length > 0)){
			   	  	elemId = headerElemId;
			   	  }
			   	  //if (elemId == null){	
			   	  		//alert("elemId is null");		   	  
			   	  		//elemId = ajaxRequest.getResponseHeader("RENDER_ELEMENT_ID");
			   	  		//alert("elemId value is set from response: " + elemId);
			   	  //}
			   	  
			      var ajaxDisplay = document.getElementById(elemId);
			      //alert("ajaxRequest.responseText = " + ajaxRequest.responseText);
			      	
			      
			      if (ajaxRequest.status == 200){
			      	ajaxDisplay.innerHTML = ajaxRequest.responseText;
			      	removeDivErrorMessage(ajaxDisplay);
			      } else{
			      		ajaxDisplay.innerHTML = "<span class=\"error_message\"> Errors occured. Please reload this page.</span>";
			      		}
			      				
			   }else{
			   		if (elemId != null){
			   			 var ajaxDisplay = document.getElementById(elemId);
			   			 if (ajaxDisplay != null){
			   				ajaxDisplay.innerHTML = "<span class=\"attention_message\"> Processing request. Please wait...</span>";
			   				}
			   		}
			   }
 			}
 			
 		url += "&requestId=" + getRandom();
 		//alert("url = " + url);
 		ajaxRequest.open("GET", url, true);
 		ajaxRequest.send(null); 

			
	}
	
	function doAJAXQuery_GET_Silent(url, ajaxDisplay){
		//window.alert("ajaxDisplay.innerHTML: " + ajaxDisplay.innerHTML);
		var ajaxRequestObject = getAJAXRequestObject();
		//window.alert("ajaxRequestObject.readyState: " + ajaxRequestObject.readyState);
	         ajaxRequestObject.onreadystatechange = function(){
	           
			   if(ajaxRequestObject.readyState == 4){
			      if (ajaxRequestObject.status == 200){
			      		//window.alert("ajaxRequestObject.responseText: " + ajaxRequestObject.responseText);
			      		ajaxDisplay.innerHTML = ajaxRequestObject.responseText;
			      		//window.alert("ajaxDisplay.innerHTML: " + ajaxDisplay.innerHTML);
			      } else{
		      			ajaxDisplay.innerHTML = "<span class=\"error_message\"> Errors occured. Please reload this page.</span>";
		      		}
			      				
			   }
	 		}
	 			
	
 		ajaxRequestObject.open("GET", url, true);
 		ajaxRequestObject.send(null);
	}
	
	
	
	function removeDivErrorMessage(ajaxDisplay){
		if (undefined != ajaxDisplay){
			if (ajaxDisplay.id != "div_error_message"){
				var divErrorMessage = document.getElementById("div_error_message");
				if (divErrorMessage != null){
					divErrorMessage.innerHTML = "<span></span>";
				}
				
			}
		}
	}
	
	function getRandom(){
		var rand = 1 + Math.floor((Math.random()*1000000000));
		return rand;
	}
	

	function moveAccounts(frm, add){
		var all_accounts = frm.f_all_accounts;
		var sel_accounts = frm.f_selected_accounts;
		//alert("all accounts length = " + all_accounts.options.length);
		//add selected accounts
		if (add){
			//remove "None" option
			if ((sel_accounts.options.length == 1)
				&& (sel_accounts.options[0].value == "0")){
					//alert("selected options value = " + sel_accounts.options[0].value);
					sel_accounts.options.length = 0;
				}
			//add new selected options from all accounts
			var j = 0;
			if (sel_accounts.options.length > 0){
				j = sel_accounts.options.length;
			}
			for (var i = 0; i < all_accounts.options.length; i++){
				if (all_accounts.options[i].selected){
					//alert("option selected value: " + all_accounts.options[i].value + ", text: " + all_accounts.options[i].text);
					var isAdded = false;
					for (var k = 0; k < sel_accounts.options.length; k ++){
						if (sel_accounts.options[k].value == all_accounts.options[i].value){
							isAdded = true;
							break;
						}
					}
					if (!isAdded){
						sel_accounts.options[j] = new Option(all_accounts.options[i].text, all_accounts.options[i].value, false, false);
						j++;
					}
				}
			}
			//alert("j = " + j);
			//check if anything added
			if (sel_accounts.options.length == 0){
				sel_accounts.options[0] = new Option("-- None --", 0, false, false);
			}	
		}//end add options 
		else {
			//alert ("remove selected options....");
			for (var i = 0; i < sel_accounts.options.length; i++){
				if (sel_accounts.options[i].selected){
					sel_accounts.options[i] = null;
				}
			}
			if (sel_accounts.options.length == 0){
				sel_accounts.options[0] = new Option("-- None --", 0, false, false);
			}	
		}
	}
	
	function updateMultipleSelect(elem, isSelected){
		//alert("form = " + frm.name);
		//var elem = frm.selectName
		//alert("elem = " + elem.name + " options = " + elem.options.length);
		for (var i = 0; i < elem.options.length; i++){
			elem.options[i].selected = isSelected;
		}
		return true;
	}

	function checkTextareaLength(text_area, len){
		if (text_area.value.length > len){
			alert("Text is too long. Maximum " + len + " characters are allowed. Excess characters will be truncated.");
			text_area.focus();
		}
	}
	
	function trim(str) {
	str = str.replace(/^\s+/, '');
	for (var i = str.length - 1; i >= 0; i--) {
		if (/\S/.test(str.charAt(i))) {
			str = str.substring(0, i + 1);
			break;
		}
	}
	return str;
	}

	function isNumeric(str){
	   if (trim(str).length == 0) return false;
	   var validChars = "0123456789.";
	   var isNumber=true;
	   var _char;
	
	 
	   for (i = 0; i < str.length && isNumber == true; i++) 
	      { 
	      _char = str.charAt(i); 
	      if (validChars.indexOf(_char) == -1) 
	         {
	         isNumber = false;
	         }
	      }
	   return isNumber;
   
   }
   
   function checkEnter(_event, functionName){
	//window.alert("keyCode: " + _event.keyCode);
		var keyCode = _event.keyCode;
		if (undefined != keyCode){
			if (keyCode == 13){
				eval(functionName);
			}
		}
	}
	
	function splitStr(_str, separator){
		if (_str != null){
			var str = new String(_str);
			if (str == "") return new Array(str);
			else if (str.indexOf(separator) == -1) return new Array(str);
			else return str.split(separator);
		}else{
			return null;
		}
		
	}
	
	 function findPosX(obj)
		  {
		    var curleft = 0;
		    if(obj.offsetParent)
		        while(1) 
		        {
		          curleft += obj.offsetLeft;
		          if(!obj.offsetParent)
		            break;
		          obj = obj.offsetParent;
		        }
		    else if(obj.x)
		        curleft += obj.x;
		    return curleft;
		  }

	  function findPosY(obj)
		  {
		    var curtop = 0;
		    if(obj.offsetParent)
		        while(1)
		        {
		          curtop += obj.offsetTop;
		          if(!obj.offsetParent)
		            break;
		          obj = obj.offsetParent;
		        }
		    else if(obj.y)
		        curtop += obj.y;
		    return curtop;
		  }
		  
		  function replaceQuotes(str){
		  	if (undefined == str) return;
		  	str = str.replace("/\'/g", "&#39;");
		  	str = str.replace("/\"/g", "&#34;");
		  	return str;
		  }
		  
		function getElemAttributeValue(attributeName, elem){
				var value = "";
				for (var i = 0; i < elem.attributes.length; i++){
					//window.alert("elem.attributes[" + i + "].name: " + elem.attributes[i].name)
					if (elem.attributes[i].name == attributeName){
							value = elem.attributes[i].value;
							break;
						}
				}
			return value;	
		}
	
	
	function getBrowserName(){
		var browser=navigator.appName;
		return browser;
	}
	
	function getBrowserVersion(){
		var b_version=navigator.appVersion;
		var version=parseFloat(b_version);
		return version
	}
	
	function getMSIEVersion(){
	//note: userAgent in IE7 WinXP returns: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727)

	if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){ //test for MSIE x.x;
	 var ieversion=new Number(RegExp.$1) // capture x.x portion and store as a number
	 if (ieversion>=8)
	  	return 8;
	 else if (ieversion>=7)
	  return 7;
	 else if (ieversion>=6)
	  return 6
	 else if (ieversion>=5)
	  return 5;
	}
	else
	 return 0;
	
	}
	
	function hidePopup(){
		var elem = document.getElementById("div_popup");
		if (undefined != elem){
			elem.style.visibility = 'hidden';
		}
		
	}
	
	function reservedKeyCode(keyCode){
		var reservedCodes = new Array(40, 38, 13);
		for (var i = 0; i < reservedCodes.length; i++){
			if (keyCode == reservedCodes[i]){
				return true;
			}
		}
		return false;
	}
	



	












