﻿
 var lastResponse = "";
 var cachedAutoComplete = new Hashtable();
 
 function Hashtable() {
 
    this.keys = new Array();
    this.values = new Array();
    
    this.put = function(key, value) {
    
        for (var x = 0; x < this.keys.length; x++) {
        
            if (this.keys[x] != null && this.keys[x] == key) {
            
                this.values[x] = value;
                
                if(value == null) {
                
                    this.keys[x] = null;
                
                }
                
                return;
            
            }
        
        }
        
        if (value != null) {
        
            this.keys[this.keys.length] = key;
            this.values[this.values.length] = value;
            
        }
    
    }
    
    this.get = function(key) {
    
        for (var x = 0; x < this.keys.length; x++) {
        
            if (this.keys[x] != null && this.keys[x] == key) {
            
                return this.values[x];
            
            }
        
        }
        
        return null;
    
    }
    
    this.remove = function(key) {
    
        this.put(key, null);

    }

    this.sortByKey = function() {

        for (var x = 0; x < this.keys.length; x++) {

            for (var y = 0; y < this.keys.length - 1; y++) {

                var thisKey = this.keys[y];
                var thisValue = this.values[y];
                var nextKey = this.keys[y + 1];
                var nextValue = this.values[y + 1];

                if (thisKey > nextKey) {

                    var tempKey = this.keys[y];
                    var tempValue = this.values[y];

                    this.keys[y] = this.keys[y + 1];
                    this.values[y] = this.values[y + 1];

                    this.keys[y + 1] = tempKey;
                    this.values[y + 1] = tempValue;

                }

            }

        }

    }
 
 }
 

//********  AJAX Functions ******************

 function CallBack(serverURL, javaScriptHandler, content, asyc) {

   try { disableControls(true); } catch(e) {}
   try { onServerCallBackStart(); } catch (e) {} 
   
   var handler = javaScriptHandler;
   var req = createRequest();
   var serverHandlerName = serverURL;
   var isAsyc = asyc;
   
   this.responseXML = "";
   this.responseText = "";
   
   processRequest(req, handler);

   function handleCallBack(req, handler) {
       if (req.readyState == 4) {
          if (req.status == 200) { 
          	 this.responseXML = req.responseXML;
          	 this.responseText = req.responseText;
          	 lastResponse = this.responseText;
             try { eval(handler + "(req.responseXML);"); } catch (e) {}
          } else {
              alert("An error occurred while processing your request.  Try again later.");
          }
          try { disableControls(false); } catch (e) {}
          try { onServerCallBackEnd(); } catch (e) {} 
       }
   }

   function processRequest(req, handler) {
   
     if (handler != null && isAsyc) {
	     req.onreadystatechange = function() { handleCallBack(req, handler); }
	 }
     req.open("POST", serverHandlerName, isAsyc);
     req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
     req.send(content);
     
     if (!isAsyc) {
        
        lastResponse = req.responseText;
        try { eval(handler + "(req.responseXML);"); } catch (e) { }

     }

   }

   function createRequest() {
     var req = null;
     if(window.XMLHttpRequest) {
         req = new XMLHttpRequest();
     } else { 
        try {
           req = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
           req = new ActiveXObject("Microsoft.XMLHTTP");
        }
     }
     return req;
   }

 } 
 
 //**********  Track active element *************************
 
 var activeEle = null;
 
 function setActiveElement(e) {
    activeEle = getActiveElement(e);
    hideThings(e);
 }
 
 function removeActiveElement(e) {
    activeEle = null;
 }
 
 //********* Main Web Event Bindings ************************
 
 var isIE = navigator.appName == "Microsoft Internet Explorer";
 
 function loadBehaviors() {
	var x = 0;
	
	var popupWindowBound = false;
	
	bindEvent(document.body, "click", hideThings);
	
	var firstElement = null;

	for (var x = 0; x < window.document.forms.length; x++) { 
 	
		for (var y = 0; y < document.forms[x].elements.length; y++) {

            var element = document.forms[x].elements[y];
            
            if (firstElement == null && element.type != 'hidden' && element.type != 'submit' && element.type != 'button') {
                
                firstElement = element;
                
            }
            
          //for (var x = 0; x < document.body.all.length; x++) {
          
            //var element = document.body.all[x];
            
			var attr = getAttr(element, "MASK");

			if (attr != null) {
			    
				bindEvent(element, "keydown", handleKeyEvent);
				bindEvent(element, "keypress", handleMaskEvent);
				bindEvent(element, "focus", handleMaskEvent);				
				bindEvent(element, "blur", handleOnblurMaskEvent);				                             

			}

			attr = getAttr(element, "MAXLENGTH");

			if (attr != null && attr.nodeValue < 20000) {

				bindEvent(element, "keyup", handleMaxAutoTab);

			}
			
			attr = getAttr(element, "TYPE");

			if(attr != null && element.type == "radio"){

				bindEvent(element, "dblclick",uncheckRadio);

			}
			
			attr = getAttr(element, "AUTO-ASSIST");
			
			if (attr != null) {
			
			    bindEvent(element, "keyup", popup);
			
			}
			
			attr = getAttr(element, "POPUP-ASSIST-TEXT");
			
			if (attr != null) {
			
			    bindEvent(element, "mouseover", showPopup);
			    bindEvent(element, "mouseout", hidePopup);
			    bindEvent(element, "focus", showPopup);
			    bindEvent(element, "blur", hidePopup);
			    
			    if(!popupWindowBound) {
			    
             	    bindEvent(window, "resize", showPopup);
             	    //bindEvent(window, "scroll", showPopup);
             	    
             	    popupWindowBound = true;
             	    
             	}
			
			}
			
            bindEvent(element, "focus", setActiveElement);
            bindEvent(element, "blur", removeActiveElement);

		}

 	}
 	
 	if (firstElement != null) {
 	
 	    //alert(firstElement.id);
 	    
 	    try {
 	    
 	        firstElement.focus();
 	        
 	    } catch(e) { }
 	
 	}
 	
 }

 //bindEvent(window, 'load', loadBehaviors);
 
 function getWindowWidth() {
 
    return document.documentElement.clientWidth;
 
 }
 
 function getWindowHeight() {
 
    return document.documentElement.clientHeight;
 
 }
 
 function getScrollXY() {
 
  var scrOfX = 0, scrOfY = 0;
  
  if( typeof( window.pageYOffset ) == 'number' ) {
  
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
    
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
  
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
    
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
  
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
    
  }
  
  //window.status = scrOfX + ":" + scrOfY;
  
  return [ scrOfX, scrOfY ];
  
 }
 
 function alertSize() {
 
  var myWidth = 0, myHeight = 0;
  
  if( typeof( window.innerWidth ) == 'number' ) {
  
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
    
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
  
    myWidth = document.documentElement.clientWidth;
    myHeight = document.documentElement.clientHeight;
    
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
  
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
    
  }
  
  return [myWidth, myHeight];
  
 }
 
 function getScrollTop() {
 
    //return document.documentElement.scrollTop;
    return getScrollXY()[1];
 
 }
 
 function getScrollLeft() {
 
    //return document.documentElement.scrollLeft;
     return getScrollXY()[0];

 }
 
 function bindEvent(element, event, handler) {
 
     try {
     
         if (element.addEventListener) {
            element.addEventListener(event, handler, false);
         } else if (element.attachEvent) {
            element.attachEvent("on" + event, handler);
         } else {
            element.onload += handler;
         } 
     
     } catch (e) { alert(e); }

 }

 function getAttr(e, attrName) {

	try {

		for (var y = 0; y < e.attributes.length; y++) {

			var attr = e.attributes[y];

			if (attr.nodeName.toUpperCase() == attrName.toUpperCase()) {

				return attr;

			}

		}

	} catch (e) { }

	return null;

 }
 
 //*************  Pop window functions *******************************
 
 var popupItem = null;
 
 function showPopup(evt) {
 
    if (popupItem == null) {
    
        popupItem = document.createElement("span");
        popupItem.id = "_popupWindowItem";
        document.forms[0].appendChild(popupItem);
    
    }
 
    var element = getSourceEventElement(evt);
    
    var left = 0;
    var top = 0;
    var width = 0;
    var height = 0;
    var text = "";
    var style = "";
    
    if (element != null) {
    
        var parent = element;
        
        width = element.offsetWidth;
        height = element.offsetHeight;
        
        while(parent != null) {
            left = left + parent.offsetLeft; 
            top = top + parent.offsetTop;
            parent = parent.offsetParent;
        }
    
    }
    
    if (getAttr(element, "POPUP-ASSIST-TEXT") == null) {
    
        return;
    
    }

    var text = getAttr(element, "POPUP-ASSIST-TEXT").nodeValue;
    
    popupItem.innerHTML = text;
    
    var style = getAttr(element, "POPUP-ASSIST-STYLE");
    
    var s = "";
    
    if (style != null) {
    
        s = s + style.nodeValue;
    
    }
        
    popupItem.removeAttribute("style");
    popupItem.setAttribute("style", s);
    popupItem.style.cssText = s;
    
    var className = getAttr(element, "POPUP-ASSIST-CSS-CLASS");
    
    if (className != null) {
    
        popupItem.className = className.nodeValue;
    
    }
        
    var popupItemHeight = popupItem.offsetHeight;
    var popupItemWidth = popupItem.offsetWidth;
    
    var position = "RIGHT";
    
    var positionAttr = getAttr(element, "POPUP-ASSIST-POSITION");
    
    if (positionAttr != null) {
    
        position = positionAttr.nodeValue.toUpperCase();
    
    }
    
    if (position.indexOf("LEFT") > -1) {
    
        if (position.indexOf(":") > -1) {
    
            left -= parseInt(position.substr(5));
        
        } else {
    
            left -= popupItemWidth;
        
        }
        
        if (left < 0) {
        
            left = 0;
        
        }
    
    }
    
    if (position == "RIGHT") {
    
        left += width;
    
    }
    
    if (position.indexOf("ABOVE") > -1) {
    
        if (position.indexOf(":") > -1) {
        
            top -= parseInt(position.substr("6"));
        
        } else {
        
            top -= popupItemHeight;

        }
    
        if (top < 0) {
        
            top = 0;
        
        }
    
    }
    
    if (position == "BELOW") {
    
        top += height;
    
    }
    
    if (position == "TOPLEFT") {
    
        top = 0;
        left = 0;
        //top = getScrollTop();
        //left = getScrollLeft();
    
    }
    
    if (position.indexOf("TOPRIGHT") > -1) {
    
        if (position.indexOf(":") > -1) {
    
            left = getWindowWidth() - parseInt(position.substr(9));
        
        } else {
    
            left = getWindowWidth() - popupItemWidth;
        
        }
        
        if (left < 0) {
        
            left = 0;
        
        }
        
        top = 0;
        //left += getScrollLeft();
        //top = getScrollTop();
    
    }
    
    if (position.indexOf("BOTTOMLEFT") > -1) {
    
        if (position.indexOf(":") > -1) {
    
            top = getWindowHeight() - parseInt(position.substr(11));
        
        } else {
    
            top = getWindowHeight() - popupItemHeight;
        
        }
        
        if (top < 0) {
        
            top = 0;
        
        }
        
        left = 0;
        //left = getScrollLeft();
        //top += getScrollTop();
    
    }
    
    if (position.indexOf("BOTTOMRIGHT") > -1) {
    
        if (position.indexOf(":") > -1) {
    
            left = getWindowWidth() - parseInt(position.substr(12));
        
        } else {
    
            left = getWindowWidth() - popupItemWidth;
        
        }
        
        if (left < 0) {
        
            left = 0;
        
        }
        
        if (position.indexOf(",") > -1) {
    
            top = getWindowHeight() - parseInt(position.indexOf(",") + 1);
        
        } else {
    
            top = getWindowHeight() - popupItemHeight;
        
        }
        
        if (top < 0) {
        
            top = 0;
        
        }
        
        //left += getScrollLeft();
        //top += getScrollTop();
    
    }
        
    s = "left:" + left + "px;top:" + top + "px;position:fixed;z-index:999;";

    var style = getAttr(element, "POPUP-ASSIST-STYLE");
    
    if (style != null) {
    
        s = s + style.nodeValue;
    
    }
        
    popupItem.removeAttribute("style");
    popupItem.setAttribute("style", s);
    popupItem.style.cssText = s;
    
    var className = getAttr(element, "POPUP-ASSIST-CSS-CLASS");
    
    if (className != null) {
    
        popupItem.className = className.nodeValue;
    
    }
  
    popupItem.style.display = "block";
 
 }
 
 function hidePopup(evt) {
 
    if (activeEle != null && activeEle.id == getSourceEventElement(evt).id) {
    
        return;
    
    } 
 
    if(popupItem != null) {
    
        popupItem.style.display = "none";
        popupItem = null;
    
    }
 
 }

 //*************  Text box masking functions *************************

 function handleKeyEvent(evt) {

	var element = evt.srcElement;
 	var keyCode = evt.keyCode;
 	var position = getCursor(element);
  	var mask = getAttr(element, "MASK").nodeValue;
	var maskChar = mask.substr(position, 1);

 	if (keyCode == 46 || keyCode == 8) {

		evt.returnValue = false;

		if (keyCode == 8) {      //backspace

			position--;

			if (position < 0) {

				position = 0;

			}

			maskChar = mask.substr(position, 1);

		}

		if (maskChar != "#" && maskChar != "_") {

			injectChar(element, position, maskChar);

		} else {

			injectChar(element, position, "_");

		}

		setCursor(element, position);

	}

	try {
	
		updateSaveAsyncFlag();
	
	}catch (e) {}
	
 }
 
 function handleMaxAutoTab(evt) {

	var element = evt.srcElement;
	var position = getCursor(element);
 	var keyPressed = String.fromCharCode(evt.keyCode);

	var maxlength = parseInt(getAttr(element, "MAXLENGTH").nodeValue);

	if (position == maxlength) {

		autoTab(evt);

	}

 }

 function handleMaskEvent(evt) {

 	evt.returnValue = false;
 	evt.cancelBubble = true;
 	var element = evt.srcElement;
	var position = getCursor(element);
 	var mask = getAttr(element, "MASK").nodeValue;
 	var keyCode = evt.keyCode;
 	var keyPressed = String.fromCharCode(keyCode);
 	var maskCharPlus1 = mask.substr(position + 1, 1);
 	var maskChar = mask.substr(position, 1);

	if ("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".indexOf(keyPressed) == -1) {

	}

 	//output.innerHTML = "";

	log("------------------------------------------------------------ Start Key: " + keyCode);
	log("Mask: " + mask + " Key Code: " + keyCode);
 	log("Position: " + position + " maskChar: " + maskChar + " maskCharPlus1: " + maskCharPlus1);

	if (element.value.length != mask.length) {

		element.value = replaceString(mask, "#", "_");
		position = 0;

	}

	var appliedChar = "";

	if (maskChar == "#" || maskChar == "_") {

		if (maskChar == "#") {

			if ("0123456789".indexOf(keyPressed) > -1) {

				appliedChar = keyPressed;

			} else {

				//appliedChar = "_";

			}

		} else {

			appliedChar = keyPressed;

		}

	} else {

		appliedChar = maskChar;

	}

	if (appliedChar.length > 0) {

		injectChar(element, position, appliedChar);

	}

	if (maskCharPlus1 != "#" && maskCharPlus1 != "_") {

		position++;
		injectChar(element, position, maskCharPlus1);

	}

	position = position + appliedChar.length;

	setCursor(element, position);

	if (mask.length == position - appliedChar.length) {

		autoTab(evt);

	}

	log("------------------------------------------------------------ Complete Key: " + keyCode);
	
	try {
	
		updateSaveAsyncFlag();
	
	}catch (e) {}
	
	return;

 }
 

function handleOnblurMaskEvent(evt) {

	var element = evt.srcElement;	
	var mask = getAttr(element, "MASK").nodeValue;	
	
	var maskValue = replaceString(mask, "#", "_");
			
	if (maskValue == element.value){
			
		element.value = "";
	
	}
				
 }
 

 function injectChar(element, position, appliedChar) {

	log("Text: " + element.value + "First Part: " + element.value.substr(0, position) + " Last Part: " + element.value.substr(position+1) + " Position: " + position);
 	element.value = element.value.substr(0, position) + appliedChar + element.value.substr(position+1);

 }

 function replaceString(original, replaceString, withString) {

 	var retrn = "";

 	for (var x = 0; x < original.length; x ++) {

 		var c = original.substr(x, 1);

 		if (c == replaceString) {

 			retrn = retrn + withString;

 		} else {

 			retrn = retrn + c;

 		}

 	}

 	return retrn;

 }

 function setCursor(textBox, position) {

 	var range = textBox.createTextRange();
	range.collapse(true);
	//range.moveEnd('character', position+1);
	range.moveEnd('character', position);
	range.moveStart('character', position);
	range.select();

 }

 function getCursor(textBox) {

 	var position, r = document.selection.createRange();
 	r.moveEnd("textedit");
 	position = textBox.value.length - r.text.length;
 	return position;

 }

 function log(str) {

 	//output.innerHTML = output.innerHTML + str + "<br/>";

 }

 function autoTab(evt) {

	try {
	
	 	var element = evt.srcElement;
	
	 	if (element.tagName.toUpperCase() == "INPUT") {
	
	 		var index = -1;
	
	 		for (var x = 0; x < element.form.length; x++) {
	
	 			if (element.form[x] == element) {
	
	 				index = x;
	
	 			}
	
	 		}
	
	 		if (index > -1 && index < element.form.length) {
	
	 			element.form[index + 1].focus();
	
	 		}
	
	 	}

	} catch (e) {}
	
 }

  //****************************  Spell Check (needs IE and Word) *************************

  function checkSpelling() {

	var word;
	word = new ActiveXObject("Word.Application");

	for (var x = 0; x < document.all.length; x++) {

		var element = document.all[x];
		var text = "";

		if (element.tagName.toUpperCase() == "INPUT") {

			if (element.type.toUpperCase() == "TEXT") {

				text = element.value;

			}

		}

		if (element.tagName.toUpperCase() == "TEXTAREA") {

			text = element.innerText;

		}
		
		if (element.style.display == "none") {
		
			text = "";
		
		}

		if (text.length > 0) {

			word.Visible = false;
			word.Documents.Add();
			word.ActiveDocument.Range().Text = text;
			word.ActiveDocument.CheckSpelling();
			word.Visible = false;

			if (element.tagName.toUpperCase() == "TEXTAREA") {

				element.innerText = word.ActiveDocument.Range().Text;

			} else {

				element.value = word.ActiveDocument.Range().Text;

			}

		}

	}

	word.visible = false;
	word.quit(0);

	alert("Spell check complete!");

 }
 
 function uncheckRadio(evt) {
 	
 	var element = evt.srcElement;
 
  	if (element.checked) 
   	{
   		element.checked = false; 
   	}
 
}


 function getSourceEventElement(e) {
 
    if (window.event){
        return window.event.srcElement;
    } else if (e != null) {
        return e.target;
    }
    
 
 }

 //****************  Auto Assist Functions ***********************************

 var origEle = null;
 var displayElement = null;
    
 function popup(event) {

    origEle = getSourceEventElement(event);

    if (displayElement == null) {
    
        displayElement = document.createElement("SELECT");
        displayElement.size = 7;
        displayElement.id = "AutoCompleteList";
	    bindEvent(displayElement, "dblclick", selectOption);
	    bindEvent(displayElement, "keypress", handleEnterKey);
	    bindEvent(displayElement, "blur", hideThings);
        bindEvent(displayElement, "focus", setActiveElement);
        bindEvent(displayElement, "blur", removeActiveElement);
	    document.forms[0].appendChild(displayElement);
    
    }
    
    var minLen = getAttr(origEle, "AUTO-ASSIST-MIN-LENGTH");
    
    if (minLen == null) {
    
        minLen = 3;
    
    } else {
    
        minLen = minLen.nodeValue;
    
    }
    
    if (origEle.value.length < minLen) {
        displayElement.style.visibility = "hidden";
        return;
    }
    
    for (var x = displayElement.options.length - 1; x >= 0; x--) {
    
        displayElement.remove(x);
    
     }
    
    var callURL = getAttr(origEle, "AUTO-ASSIST-URL");
    
    var items = null;
    
    var isCached = getAttr(origEle, "AUTO-ASSIST-ENTRIES-CACHED");
    
    if (isCached != null) {
    
//        for (var x = 0; x < cachedResponseKey.length; x++) {
//        
//            if (cachedResponseKey[x] == origEle.id) {
//            
//                items = cachedResponseValue[x];
//            
//            }
//        
//        }  

          items = cachedAutoComplete.get(origEle.id);      
   
    }
    
    var configItems = getAttr(origEle, "AUTO-ASSIST-ITEMS");
    
    var sortItems = getAttr(origEle, "AUTO-ASSIST-SORT-ITEMS");
            
    if (items == null) {
    
        if (configItems != null) {
    
            items = configItems.nodeValue.split("||");
    
        } else if (callURL == null) {
        
            try { items = getAutoAssistItems(origEle); } catch(e) { alert("Unable to get scripted items.  Set AUTO-ASSIST-URL attribute to use server resource."); }
            
        } else {
        
            var ajax = new CallBack(callURL.nodeValue, handleAJAX, "text=" + origEle.value, false);
            var response = lastResponse;
            
            var tag = "Items";
            var startIdx = response.indexOf("<" + tag + ">") + tag.length + 2;
            var endIdx = response.indexOf("</" + tag + ">", startIdx);
            var items = response.substring(startIdx, endIdx).split("||");
            
        
        }
        
        if (sortItems != null) {
        
            items = items.sort();
        
        }
        
        if (isCached != null) {
        
//            cachedResponseKey[cachedResponseKey.length] = origEle.id;
//            cachedResponseValue[cachedResponseValue.length] = items;

              cachedAutoComplete.put(origEle.id, items);
        
        }
    
    }

    if (items == null || items.length == 0) {
    
        displayElement.style.visibility = "hidden";
        return;
    
    }
    
    var autoFilter = getAttr(origEle, "AUTO-ASSIST-APPLY-FILTER");
    
    for (var x = 0; x < items.length; x++) {
    
        if (autoFilter == null) {
        
          displayElement.options[displayElement.options.length] = new Option(items[x], items[x]);
          
        } else {
        
            if (items[x].toUpperCase().indexOf(origEle.value.toUpperCase()) > -1) {
            
                displayElement.options[displayElement.options.length] = new Option(items[x], items[x]);
            
            }
        
        }
    
    }
    
    if (displayElement.options == null || displayElement.options.length == 0) {
    
        displayElement.style.visibility = "hidden";
        return;
    
    }
    
    var keyPressed = event.keyCode;
    
    var srcElement = origEle;
               
    var e = srcElement;
    
    var parent = srcElement;
    
    var left = 0;
    var top = 0;
    var width = srcElement.offsetWidth;
    
    while(parent != null) {
        left = left + parent.offsetLeft; 
        top = top + parent.offsetTop;
        parent = parent.offsetParent;
    }
   
   top = top + srcElement.offsetHeight;
   
   var s = "left:" + left + "px;top:" + top + "px;width:" + width + "px;position:absolute;";
   
   displayElement.removeAttribute("style");
   displayElement.setAttribute("style", s);
   
    displayElement.style.cssText = s;

    if (keyPressed == 40) {   //down arrow
    
        displayElement.focus();

        if (displayElement.options.length > 0)
         {
        
            displayElement.selectedIndex = 0;
            
         }
        
    } else {
    
        if (displayElement.options.length > 0)
         {
        
            displayElement.selectedIndex = -1;
            
         }
    
    }
                   
}

function selectOption(event) {
    
    if (origEle != null) {
    
        var src = getSourceEventElement(event);
        if (src.text) {
            origEle.value = src.text;
        } else {
            if (src.selectedIndex > -1) {
                origEle.value = src.options[src.selectedIndex].text;
            }
        }
                   
        displayElement.style.visibility = "hidden";
        
    }
    
}

function getEventKeyCode(event) {

        if (window.event){
            return window.event.keyCode;
        } else if (event != null) {
            return event.which;
        }

}

function handleEnterKey(e) {

    if (getEventKeyCode(e) == 13) {   //enter key
    
        selectOption(e);
    
    }

}

function getActiveElement(event) {

    if (document.activeElement) {
        return document.activeElement;
    } else {
        return activeEle;
    }

}

function hideThings(event) {

    if (displayElement == null) {
    
        return;
    
    }
    
    if (getActiveElement(event) == null || getActiveElement(event).id != displayElement.id) {
    
        displayElement.style.visibility = "hidden";
    
    }

}
        
function getTestItems(textBox) {

    var s = "Michael Clark,Jack Clark,Christina Clark,Patty Clark,John Clark".split(",");
    
    var array = new Array();
    var count = 0;
    
    for(var x = 0; x < s.length; x++) {
    
        if (s[x].toUpperCase().indexOf(textBox.value.toUpperCase()) > -1) {
        
            array[count] = s[x];
            count++;
        
        }
    
    }
    
    return array;

}

function handleAJAX() {

}

function setCookie(name, value, expire) {

    var dt = new Date();

    if (expire) {

        dt.setTime(dt.getTime - 1000);

    } else {

        dt.setFullYear(9999, 12, 31);
    }

    document.cookie = name + "=" + value + "; expires=" + dt.toGMTString() + "; path=/";

}

function getCookie(name) {

    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') c = c.substring(1, c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
    }
    return null;

}

function handleEnterKeyButtonClick(e, button) {

    if (getEventKeyCode(e) == 13) {   //enter key

        //button.fireEvent("onclick");
        button.click();
        return false;


    }

    return true;

}







