/*window.onload=show;*/

window.onload=noSelect;

function ajax()
{
   //---------------------
   // Private Declarations
   //---------------------
   var _request = null;
   var _this = null;
        
   //--------------------
   // Public Declarations
   //--------------------
   this.GetResponseXML = function()
   {
      return (_request) ? _request.responseXML : null;
   }
        
   this.GetResponseText = function()
   {
      return (_request) ? _request.responseText : null;
   }
        
   this.GetRequestObject = function()
   {
      return _request;
   }
        
   this.InitializeRequest = function(Method, Uri)
   {
      _InitializeRequest();
      _this = this;
                
      switch (arguments.length)
      {
         case 2:
            _request.open(Method, Uri);
            break;
                                
         case 3:
            _request.open(Method, Uri, arguments[2]);
            break;
      }
                
      if (arguments.length >= 4) _request.open(Method, Uri, arguments[2], arguments[3]);
      this.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
   }
        
   this.SetRequestHeader = function(Field, Value)
   {
      if (_request) _request.setRequestHeader(Field, Value);
   }
        
   this.Commit = function(Data)
   {
      if (_request) _request.send(Data);
   }
        
   this.Close = function()
   {
      if (_request) _request.abort();
   }
        
   //---------------------------
   // Public Event Declarations.
   //---------------------------
   this.OnUninitialize = function() { };
   this.OnLoading = function() { };
   this.OnLoaded = function(id) { 
   document.getElementById(id).innerHTML="<table><tr valign='middle'><td width='100%' height='100%' align='center' style='vertical-align:middle'><table><tr><td><img alt='loading.gif' width='32' height='32' src='https://www.cmumed.org/inet/img/loading.gif'></td><td><strong>Loading ...</strong></td></tr></table></td></tr></table>";
   };
   this.OnInteractive = function() { };
   this.OnSuccess = function() { };
   this.OnFailure = function() { };
        
   //---------------------------
   // Private Event Declarations
   //---------------------------
   function _OnUninitialize() { _this.OnUninitialize(); };
   function _OnLoading() { _this.OnLoading(); };
   function _OnLoaded() { _this.OnLoaded(); };
   function _OnInteractive() { _this.OnInteractive(); };
   function _OnSuccess() { _this.OnSuccess(); };
   function _OnFailure() { _this.OnFailure(); };

   //------------------
   // Private Functions
   //------------------
   function _InitializeRequest()
   {
      _request = _GetRequest();
      _request.onreadystatechange = _StateHandler;
   }
        
   function _StateHandler()
   {
      switch (_request.readyState)
      {
         case 0:
            window.setTimeout("void(0)", 100);
            _OnUninitialize();
            break;
                                
         case 1:
            window.setTimeout("void(0)", 100);
            _OnLoading();
            break;
                                
         case 2:
            window.setTimeout("void(0)", 100);
            _OnLoaded();
            break;
                        
         case 3:
            window.setTimeout("void(0)", 100);
            _OnInteractive();
            break;
                                
         case 4:
            if (_request.status == 200)
               _OnSuccess();
            else
               _OnFailure();
                                        
            return;
            break;
      }
   }
        
   function _GetRequest()
   {
      var obj;
                
      try
      {
         obj = new XMLHttpRequest();
      }
      catch (error)
      {
         try
         {
            obj = new ActiveXObject("Microsoft.XMLHTTP");
         }
         catch (error)
         {
            return null;
         }
      }
                
      return obj;
   }
}



function ProcAjax(url, doFunc, id)
{
xmlhttp=null;
// code for Mozilla, etc.
if (window.XMLHttpRequest)
  {
  xmlhttp=new XMLHttpRequest();
  }
// code for IE
else if (window.ActiveXObject)
  {
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
if (xmlhttp!=null)
  {
  xmlhttp.onreadystatechange=function() { 
  		
  		if (xmlhttp.readyState==2)
            document.getElementById(id).innerHTML="<table><tr valign='middle'><td width='100%' height='100%' align='center' style='vertical-align:middle'><table><tr><td><img alt='loading.gif' width='32' height='32' src='https://www.cmumed.org/inet/img/loading.gif'></td><td><strong>Loading ...</strong></td></tr></table></td></tr></table>";
        if (xmlhttp.readyState==4)
            if (xmlhttp.status==200) doFunc(xmlhttp, id);
			else alert("Problem retrieving data: " + xmlhttp.statusText + "\nError Code " + xmlhttp.status);
			
    }
  xmlhttp.open("POST",url,true);
  xmlhttp.send(null);
  }
else
  {
  alert("Your browser does not support XMLHTTP.");
  }
}

function InnerHTMLAjax(url, id)
{
xmlhttp=null;
// code for Mozilla, etc.
if (window.XMLHttpRequest)
  {
  xmlhttp=new XMLHttpRequest();
  }
// code for IE
else if (window.ActiveXObject)
  {
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
if (xmlhttp!=null)
  {
  xmlhttp.onreadystatechange=function() { 
  		
  		if (xmlhttp.readyState==2)
            document.getElementById(id).innerHTML="<table><tr valign='middle'><td width='100%' height='100%' align='center' style='vertical-align:middle'><table><tr><td><img alt='loading.gif' width='32' height='32' src='https://www.cmumed.org/inet/img/loading.gif'></td><td><strong>Loading ...</strong></td></tr></table></td></tr></table>";
        if (xmlhttp.readyState==4)
            if (xmlhttp.status==200) document.getElementById(id).innerHTML=xmlhttp.responseText; 
			else alert("Problem retrieving data: " + xmlhttp.statusText + "\nError Code " + xmlhttp.status);
			
    }
  xmlhttp.open("POST",url,true);
  xmlhttp.send(null);
  }
else
  {
  alert("Your browser does not support XMLHTTP.");
  }
}

 function getajaxstr(obj) {
      var ajaxstr = "&";
      for (i=0; i<obj.elements.length; i++) {
         if (obj.elements[i].tagName == "INPUT") {
            if (obj.elements[i].type == "text") {
               ajaxstr += obj.elements[i].name + "=" + obj.elements[i].value + "&";
            }
			if (obj.elements[i].type == "hidden") {
               ajaxstr += obj.elements[i].name + "=" + obj.elements[i].value + "&";
            }
			if (obj.elements[i].type == "password") {
               ajaxstr += obj.elements[i].name + "=" + obj.elements[i].value + "&";
            }
            if (obj.elements[i].type == "checkbox") {
               if (obj.elements[i].checked) {
                  ajaxstr += obj.elements[i].name + "=" + obj.elements[i].value + "&";
               } else {
                  ajaxstr += obj.elements[i].name + "=&";
               }
            }
            if (obj.elements[i].type == "radio") {
               if (obj.elements[i].checked) {
                  ajaxstr += obj.elements[i].name + "=" + obj.elements[i].value + "&";
               }
            }
         }   
         if (obj.elements[i].tagName == "SELECT") {
            var sel = obj.elements[i];
            ajaxstr += sel.name + "=" + sel.options[sel.selectedIndex].value + "&";
         }
         
      }
	  return ajaxstr;
 }
 
function show(id) {
	var d = document.getElementById(id);
	document.getElementById('quicklinks-links').style.display='none';
	if (d) {d.style.display='block';}
}

function showhide(id){ 
     ID = document.getElementById(id); 
     
     if(ID.style.display == "") 
          ID.style.display = "none"; 
     else 
          ID.style.display = ""; 
      }

var omitformtags=["input", "textarea", "select"]

function disableselect(e){
	for (i = 0; i < omitformtags.length; i++)
		if (omitformtags[i]==(e.target.tagName.toLowerCase()))
	return;
	return false
}

function reEnable(){
	return true
}

function noSelect(){
	if (typeof document.onselectstart!="undefined"){
	document.onselectstart=new Function ("return false")
	if (document.getElementsByTagName){
	tags=document.getElementsByTagName('*')
	for (j = 0; j < tags.length; j++){
		for (i = 0; i < omitformtags.length; i++)
		if (tags[j].tagName.toLowerCase()==omitformtags[i]){
		tags[j].onselectstart=function(){
		document.onselectstart=new Function ('return true')
	}
	if (tags[j].onmouseup!==null){
	var mUp=tags[j].onmouseup.toString()
	mUp='document.onselectstart=new Function (\'return false\');\n'+mUp.substr(mUp.indexOf('{')+2,mUp.lastIndexOf('}')-mUp.indexOf('{')-3);
	tags[j].onmouseup=new Function(mUp);
	}
	else{
	tags[j].onmouseup=function(){
	document.onselectstart=new Function ('return false')
	}
	}
	}
	}
	}
	}
	else{
	document.onmousedown=disableselect
	document.onmouseup=reEnable
	}
}


function validate_email(form)
{
	  var goodEmail = form.email.value.match(/\b(^(\S+@).+((\.com)|(\.net)|(\.edu)|(\.mil)|(\.gov)|(\.org)|(\..{2,2}))$)\b/gi); 
	 if (!goodEmail)
	  {alert("Please enter a valid email address!");
		form.email.focus();
		return(false);
	   }
	   
   //form.submit();
  return(true);
}

function validate_search_form(form)
{
	  
	 if (form.search_query.value.length <3)
	   {
		alert("Please enter the search query!");
		form.search_query.focus();
		return(false);
	   }
	   
   //form.submit();
  return(true);
}
 

<!--BEGINNING OF SEARCH HIGHLIGHT-->
var CatchJSErrors = true;

function catcherror() { return true; }
if (CatchJSErrors)
{
    window.onerror = catcherror;
}

function QueryString(key)
{
    var value = null;
    for (var i=0;i<QueryString.keys.length;i++)
    {
        if (QueryString.keys[i]==key)
        {
            value = QueryString.values[i];
            break;
        }
    }
    return value;
}

function QueryString_Parse()
{
    var query = window.location.search.substring(1);
    var pairs = query.split("&");

    for (var i=0;i<pairs.length;i++)
    {
        var pos = pairs[i].indexOf('=');
        if (pos >= 0)
        {
            var argname = pairs[i].substring(0,pos);
            var value = pairs[i].substring(pos+1);
            QueryString.keys[QueryString.keys.length] = argname;
            QueryString.values[QueryString.values.length] = value;
        }
    }
}

QueryString.keys = new Array();
QueryString.values = new Array();

QueryString_Parse();

function GEId(id)
{
    if (document.getElementById)
        return(document.getElementById(id));
    else if (document.all)
        return(document.all[id]);
}



function findPosY(obj)
{
    var curtop = 0;
    if (obj.offsetParent)
    {
        while (obj.offsetParent)
        {
            curtop += obj.offsetTop
            obj = obj.offsetParent;
        }
    }
    else if (obj.y)
        curtop += obj.y;
    return curtop;
}


// regular expression version
function SearchHiLite(text)
{
    var SearchAsSubstring = 0;
    var hl;

    hl = QueryString("search");
    if (hl == "" || hl == null)
    {
        hl = QueryString("search_sub");
        if (hl == "" || hl == null)
            return false;
        else
            SearchAsSubstring = 1;
    }
    hl = unescape(hl);
    hl = hl.toLowerCase();
                
    // create array of terms        
    //var term = hl.split("+"); 
    var re = /\"(.*?)\"|[^\\+\"]+/g;
    var term = hl.match(re);    
   
    // convert terms in regexp patterns
    for (var i=0;i<term.length;i++) // take each term in turn
    {       
        if(term[i] != "")
        {                   
            if (term[i].indexOf("\"") != -1)
            {
                // contains double quotes               
                term[i]=term[i].replace(/\"/g,"");
                term[i]=term[i].replace(/\+/g," "); 
            }
            else
            {
                term[i]=term[i].replace(/\+/g,"");  
            }                           

            if (term[i].indexOf("*") != -1 || term[i].indexOf("?") != -1)
            {
                // convert wildcard pattern to regexp
                term[i] = term[i].replace(/\\/g, " ");
                term[i] = term[i].replace(/\^/g, " ");

                //term[i] = term[i].replace(/\+/g, " "); // split on this so no point in looking

                term[i] = term[i].replace(/\#/g, " ");
                term[i] = term[i].replace(/\$/g, " ");
                term[i] = term[i].replace(/\./g, " ");
                
                // check if search term only contains only wildcards
                // if so, we will not attempt to highlight this term
                var wildcards = /\w/;
                if (wildcards.test(term[i]))
                {
                	term[i] = term[i].replace(/\*/g, "[^\\s]*");
                	term[i] = term[i].replace(/\?/g, "[^\\s]"); // insist upon one non whitespace
                }                
                else                
                	term[i] = "";                
            }
			
			if (term[i] != "")
			{
	            if (SearchAsSubstring == 0)
	            {
	                term[i] = "(>|>[^<]+[\\b\\W])("+term[i]+")(<|[\\b\\W][^>]*<)";
	            }
	            else
	            {
	                // if term leads with wildcard then allow it to match preceeding text in word
	                var strWB="";
	                if(term[i].substr(0,7)=="[^\\s]*") strWB="\\b";
	                term[i] = "(>|>[^<]+)"+strWB+"("+term[i]+")([^>]*<)";
	            }
	        }	        
        }
    }

    text=text.replace(/&amp;/ig, '&');
    text=text.replace(/&nbsp;/ig, '');

    for (var i=0;i<term.length;i++) // take each term in turn
    {
        if(term[i] != "")
        {        	        	
            // we need a loop for the main search to catch all between ><
            // and we add  before each found to ignore those done etc
            // todo: develop reliable single pass regexp and dispose of loop
            var l = 0;
            re = new RegExp(term[i], "gi");
            var count = 0; // just incase
            text = ">" + text + "<"; // temporary tag marks
            do 
            {
                l=text.length;
                text=text.replace(re, '$1<span class="highlight" id="highlight" name="highlight">$2</span id="highlight">$3');
                count++;
            }
            //while(re.lastIndex>0 && count<100); lastIndex not set properly under netscape
            while(l!=text.length && count<100);
            text = text.substring(1, text.length-1); // remove temporary tags
        }
    }        
    text = text.replace(eval("//g"), '');        
    text = text.replace(eval("//g"), '&nbsp;');    
       
    return(text);
}

function jumpHL()
{
    var d=GEId("highlight");
    if(d)
    {
        var y=findPosY(d);
        // if element near top of page
        if(y < 100)
            window.scrollTo(0,0); // go to top of page
        else
            window.scrollTo(0,y-50); // show space of 50 above
    }
}

function highlight()
{	
    var x = document.getElementById("main-content");
    if (x)
    {
        var strHTML=SearchHiLite(x.innerHTML);
        if (strHTML!=false) x.innerHTML = strHTML;
        jumpHL();
    }
}

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 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_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 IsDecimal(str)
{
    mystring = str;
    if (mystring.match(/^\d+$|^\d+\.\d{2}$/ ) ) 
    {
        return true;
    }
    else
    {
        return false;
    }
}
<!--GOOGLE AUTOFILL FIX-->
/*if(window.attachEvent)
    window.attachEvent("onload",setListeners);

  function setListeners(){
    inputList = document.getElementsByTagName("INPUT");
    for(i=0;i<inputList.length;i++){
      inputList[i].attachEvent("onpropertychange",restoreStyles);
      inputList[i].style.backgroundColor = "";
    }
    selectList = document.getElementsByTagName("SELECT");
    for(i=0;i<selectList.length;i++){
      selectList[i].attachEvent("onpropertychange",restoreStyles);
      selectList[i].style.backgroundColor = "";
    }
  }

  function restoreStyles(){
    if(event.srcElement.style.backgroundColor != "")
      event.srcElement.style.backgroundColor = "";
  }*/




