﻿function sack(file){
this.xmlhttp=null;
this.resetData=function(){
this.method="GET";
this.queryStringSeparator="&";
this.argumentSeparator="&";
this.URLString="";
this.encodeURIString=true;
this.execute=false;
this.element=null;
this.elementObj=null;
this.requestFile=file;
this.vars=new Object();
this.responseStatus=new Array(2);
};
this.resetFunctions=function(){
this.onLoading=function(){};
this.onLoaded=function(){};
this.onInteractive=function(){};
this.onCompletion=function(){};
this.onError=function(){};
this.onFail=function(){};
};
this.reset=function(){
this.resetFunctions();
this.resetData();
};
this.createAJAX=function(){
try{
this.xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
}catch(e1){
try{
this.xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}catch(e2){
this.xmlhttp=null;
}
}
if(!this.xmlhttp){
if(typeof XMLHttpRequest!="undefined"){
this.xmlhttp=new XMLHttpRequest();
}else{
this.failed=true;
}
}
};
this.setVar=function(name,value){
this.vars[name]=Array(value,false);
};
this.encVar=function(name,value,returnvars){
if(true==returnvars){
return Array(encodeURIComponent(name),encodeURIComponent(value));
}else{
this.vars[encodeURIComponent(name)]=Array(encodeURIComponent(value),true);
}
}
this.processURLString=function(string,encode){
encoded=encodeURIComponent(this.argumentSeparator);
regexp=new RegExp(this.argumentSeparator+"|"+encoded);
varArray=string.split(regexp);
for(i=0;i<varArray.length;i++){
urlVars=varArray[i].split("=");
if(true==encode){
this.encVar(urlVars[0],urlVars[1]);
}else{
this.setVar(urlVars[0],urlVars[1]);
}
}
}
this.createURLString=function(urlstring){
if(this.encodeURIString&&this.URLString.length){
this.processURLString(this.URLString,true);
}
if(urlstring){
if(this.URLString.length){
this.URLString+=this.argumentSeparator+urlstring;
}else{
this.URLString=urlstring;
}
}
this.setVar("rndval",new Date().getTime());
urlstringtemp=new Array();
for(key in this.vars){
if(false==this.vars[key][1]&&true==this.encodeURIString){
encoded=this.encVar(key,this.vars[key][0],true);
delete this.vars[key];
this.vars[encoded[0]]=Array(encoded[1],true);
key=encoded[0];
}
urlstringtemp[urlstringtemp.length]=key+"="+this.vars[key][0];
}
if(urlstring){
this.URLString+=this.argumentSeparator+urlstringtemp.join(this.argumentSeparator);
}else{
this.URLString+=urlstringtemp.join(this.argumentSeparator);
}
}
this.runResponse=function(){
eval(this.response);
}
this.runAJAX=function(urlstring){
if(this.failed){
this.onFail();
}else{
this.createURLString(urlstring);
if(this.element){
this.elementObj=document.getElementById(this.element);
}
if(this.xmlhttp){
var self=this;
if(this.method=="GET"){
totalurlstring=this.requestFile+this.queryStringSeparator+this.URLString;
this.xmlhttp.open(this.method,totalurlstring,true);
}else{
this.xmlhttp.open(this.method,this.requestFile,true);
try{
this.xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded")
}catch(e){}
}
this.xmlhttp.onreadystatechange=function(){
switch(self.xmlhttp.readyState){
case 1:
self.onLoading();
break;
case 2:
self.onLoaded();
break;
case 3:
self.onInteractive();
break;
case 4:
self.response=self.xmlhttp.responseText;
self.responseXML=self.xmlhttp.responseXML;
self.responseStatus[0]=self.xmlhttp.status;
self.responseStatus[1]=self.xmlhttp.statusText;
if(self.execute){
self.runResponse();
}
if(self.elementObj){
elemNodeName=self.elementObj.nodeName;
elemNodeName.toLowerCase();
if(elemNodeName=="input"
||elemNodeName=="select"
||elemNodeName=="option"
||elemNodeName=="textarea"){
self.elementObj.value=self.response;
}else{
self.elementObj.innerHTML=self.response;
}
}
if(self.responseStatus[0]=="200"){
self.onCompletion();
}else{
self.onError();
}
self.URLString="";
break;
}
};
this.xmlhttp.send(this.URLString);
}
}
};
this.reset();
this.createAJAX();
}
var ajaxBox_offsetX=0;
var ajaxBox_offsetY=0;
var ajax_list_externalFile='/Ajax/GetTopSearch.ashx';
var minimumLettersBeforeLookup=3;
var ajax_list_objects=new Array();
var ajax_list_cachedLists=new Array();
var ajax_list_activeInput=false;
var ajax_list_activeItem;
var ajax_list_optionDivFirstItem=false;
var ajax_list_currentLetters=new Array();
var ajax_optionDiv=false;
var ajax_optionDiv_iframe=false;
var ajax_list_MSIE=false;
if(navigator.userAgent.indexOf('MSIE')>=0&&navigator.userAgent.indexOf('Opera')<0)ajax_list_MSIE=true;
var currentListIndex=0;
function ajax_getTopPos(inputObj)
{
var returnValue=inputObj.offsetTop;
while((inputObj=inputObj.offsetParent)!=null){
returnValue+=inputObj.offsetTop;
}
return returnValue;
}
function ajax_list_cancelEvent()
{
return false;
}
function ajax_getLeftPos(inputObj)
{
var returnValue=inputObj.offsetLeft;
while((inputObj=inputObj.offsetParent)!=null)returnValue+=inputObj.offsetLeft;
return returnValue;
}
function ajax_option_setValue(e,inputObj)
{
if(!inputObj)inputObj=this;
var tmpValue=inputObj.innerHTML;
tmpValue=tmpValue
if(ajax_list_MSIE)tmpValue=inputObj.innerText;
else tmpValue=inputObj.textContent;
if(!tmpValue)tmpValue=inputObj.innerHTML;
ajax_list_activeInput.value=tmpValue.substr(0,tmpValue.lastIndexOf("(")-1);
if(document.getElementById(ajax_list_activeInput.name+'_hidden'))document.getElementById(ajax_list_activeInput.name+'_hidden').value=inputObj.id;
ajax_options_hide();
}
function ajax_options_hide()
{
if(ajax_optionDiv)ajax_optionDiv.style.display='none';
if(ajax_optionDiv_iframe)ajax_optionDiv_iframe.style.display='none';
}
function ajax_options_rollOverActiveItem(item,fromKeyBoard)
{
if(ajax_list_activeItem)ajax_list_activeItem.className='optionDiv';
item.className='optionDivSelected';
ajax_list_activeItem=item;
if(fromKeyBoard){
if(ajax_list_activeItem.offsetTop>ajax_optionDiv.offsetHeight){
ajax_optionDiv.scrollTop=ajax_list_activeItem.offsetTop-ajax_optionDiv.offsetHeight+ajax_list_activeItem.offsetHeight+2;
}
if(ajax_list_activeItem.offsetTop<ajax_optionDiv.scrollTop)
{
ajax_optionDiv.scrollTop=0;
}
}
}
function ajax_option_list_buildList(letters,paramToExternalFile)
{
ajax_optionDiv.innerHTML='';
ajax_list_activeItem=false;
if(ajax_list_cachedLists[paramToExternalFile][letters.toLowerCase()].length<=1){
ajax_options_hide();
return;
}
ajax_list_optionDivFirstItem=false;
var optionsAdded=false;
for(var no=0;no<ajax_list_cachedLists[paramToExternalFile][letters.toLowerCase()].length;no++){
if(ajax_list_cachedLists[paramToExternalFile][letters.toLowerCase()][no].length==0)continue;
optionsAdded=true;
var div=document.createElement('DIV');
var items=ajax_list_cachedLists[paramToExternalFile][letters.toLowerCase()][no].split(/###/gi);
if(ajax_list_cachedLists[paramToExternalFile][letters.toLowerCase()].length==1&&ajax_list_activeInput.value==items[0]){
ajax_options_hide();
return;
}
div.innerHTML=items[items.length-1];
div.id=items[0];
div.className='optionDiv';
div.onmouseover=function(){ajax_options_rollOverActiveItem(this,false)}
div.onclick=ajax_option_setValue;
if(!ajax_list_optionDivFirstItem)ajax_list_optionDivFirstItem=div;
ajax_optionDiv.appendChild(div);
}
if(optionsAdded){
ajax_optionDiv.style.display='block';
if(ajax_optionDiv_iframe)ajax_optionDiv_iframe.style.display='';
}
}
function ajax_option_list_showContent(ajaxIndex,inputObj,paramToExternalFile,whichIndex)
{
if(whichIndex!=currentListIndex)return;
var letters=inputObj.value;
var content=ajax_list_objects[ajaxIndex].response;
var elements=content.split('|');
ajax_list_cachedLists[paramToExternalFile][letters.toLowerCase()]=elements;
ajax_option_list_buildList(letters,paramToExternalFile);
}
function ajax_option_resize(inputObj)
{
ajax_optionDiv.style.top=(ajax_getTopPos(inputObj)+inputObj.offsetHeight+ajaxBox_offsetY)+'px';
ajax_optionDiv.style.left=(ajax_getLeftPos(inputObj)+ajaxBox_offsetX)+'px';
if(ajax_optionDiv_iframe){
ajax_optionDiv_iframe.style.left=ajax_optionDiv.style.left;
ajax_optionDiv_iframe.style.top=ajax_optionDiv.style.top;
}
}
function ajax_showOptions(inputObj,paramToExternalFile,e)
{
if(e.keyCode==13||e.keyCode==9)return;
if(ajax_list_currentLetters[inputObj.name]==inputObj.value)return;
if(!ajax_list_cachedLists[paramToExternalFile])ajax_list_cachedLists[paramToExternalFile]=new Array();
ajax_list_currentLetters[inputObj.name]=inputObj.value;
if(!ajax_optionDiv){
ajax_optionDiv=document.createElement('DIV');
ajax_optionDiv.id='ajax_listOfOptions';
document.body.appendChild(ajax_optionDiv);
if(ajax_list_MSIE){
ajax_optionDiv_iframe=document.createElement('IFRAME');
ajax_optionDiv_iframe.border='0';
ajax_optionDiv_iframe.style.width=ajax_optionDiv.clientWidth+'px';
ajax_optionDiv_iframe.style.height=ajax_optionDiv.clientHeight+'px';
ajax_optionDiv_iframe.id='ajax_listOfOptions_iframe';
document.body.appendChild(ajax_optionDiv_iframe);
}
var allInputs=document.getElementsByTagName('INPUT');
for(var no=0;no<allInputs.length;no++){
if(!allInputs[no].onkeyup)allInputs[no].onfocus=ajax_options_hide;
}
var allSelects=document.getElementsByTagName('SELECT');
for(var no=0;no<allSelects.length;no++){
allSelects[no].onfocus=ajax_options_hide;
}
var oldonkeydown=document.body.onkeydown;
if(typeof oldonkeydown!='function'){
document.body.onkeydown=ajax_option_keyNavigation;
}else{
document.body.onkeydown=function(){
oldonkeydown();
ajax_option_keyNavigation();}
}
var oldonresize=document.body.onresize;
if(typeof oldonresize!='function'){
document.body.onresize=function(){ajax_option_resize(inputObj);};
}else{
document.body.onresize=function(){oldonresize();
ajax_option_resize(inputObj);}
}
}
if(inputObj.value.length<minimumLettersBeforeLookup){
ajax_options_hide();
return;
}
ajax_optionDiv.style.top=(ajax_getTopPos(inputObj)+inputObj.offsetHeight+ajaxBox_offsetY)+'px';
ajax_optionDiv.style.left=(ajax_getLeftPos(inputObj)+ajaxBox_offsetX)+'px';
if(ajax_optionDiv_iframe){
ajax_optionDiv_iframe.style.left=ajax_optionDiv.style.left;
ajax_optionDiv_iframe.style.top=ajax_optionDiv.style.top;
}
ajax_list_activeInput=inputObj;
ajax_optionDiv.onselectstart=ajax_list_cancelEvent;
currentListIndex++;
if(ajax_list_cachedLists[paramToExternalFile][inputObj.value.toLowerCase()]){
ajax_option_list_buildList(inputObj.value,paramToExternalFile,currentListIndex);
}else{
var tmpIndex=currentListIndex/1;
ajax_optionDiv.innerHTML='';
var ajaxIndex=ajax_list_objects.length;
ajax_list_objects[ajaxIndex]=new sack();
var url=ajax_list_externalFile+'?type='+paramToExternalFile+'&searchfor='+inputObj.value.replace(" ","+");
ajax_list_objects[ajaxIndex].requestFile=url;
ajax_list_objects[ajaxIndex].onCompletion=function(){ajax_option_list_showContent(ajaxIndex,inputObj,paramToExternalFile,tmpIndex);};
ajax_list_objects[ajaxIndex].runAJAX();
}
}
function ajax_option_keyNavigation(e)
{
if(document.all)e=event;
if(!ajax_optionDiv)return;
if(ajax_optionDiv.style.display=='none')return;
if(e.keyCode==38){
if(!ajax_list_activeItem)return;
if(ajax_list_activeItem&&!ajax_list_activeItem.previousSibling)return;
ajax_options_rollOverActiveItem(ajax_list_activeItem.previousSibling,true);
}
if(e.keyCode==40){
if(!ajax_list_activeItem){
ajax_options_rollOverActiveItem(ajax_list_optionDivFirstItem,true);
}else{
if(!ajax_list_activeItem.nextSibling)return;
ajax_options_rollOverActiveItem(ajax_list_activeItem.nextSibling,true);
}
}
if(e.keyCode==13||e.keyCode==9){
if(ajax_list_activeItem&&ajax_list_activeItem.className=='optionDivSelected')ajax_option_setValue(false,ajax_list_activeItem);
if(e.keyCode==13)return false;else return true;
}
if(e.keyCode==27){
ajax_options_hide();
}
}
document.documentElement.onclick=autoHideList;
function autoHideList(e)
{
if(document.all)e=event;
if(e.target)source=e.target;
else if(e.srcElement)source=e.srcElement;
if(source.nodeType==3)
source=source.parentNode;
if(source.tagName.toLowerCase()!='input'&&source.tagName.toLowerCase()!='textarea')ajax_options_hide();
}
function CallPrint(strid)
{
var prtContent=document.getElementById(strid);
var WinPrint=
window.open('','','menubar=0,resizable=1,location=1,status=1,scrollbars=0,addressbar=0,height=400,width=500');
WinPrint.document.write('<html><body style="background: white;">');
WinPrint.document.write('<link href="/Styles/Print.css" rel="stylesheet" type="text/css" />');
WinPrint.document.write('<div><a href="javascript:window.print();javascript:window.close();"><img style="vertical-align:middle;" border="0" src="/img/printer.png"/>&#160;Print</a></div>');
WinPrint.document.write('<hr/>');
WinPrint.document.write(prtContent.innerHTML);
WinPrint.document.write('</body></html>');
WinPrint.document.close();
WinPrint.focus();
}
function ShowEmail()
{
var url=window.location.href
window.open('/emailpage.aspx?url='+url,'EmailPage','menubar=0,resizable=0,location=1,status=1,scrollbars=0,addressbar=0,height=300,width=400');
}
function addBookmark(title,url)
{
if(window.sidebar){
window.sidebar.addPanel(title,url,'');
}else if(window.opera){
var a=document.createElement("A");
a.rel="sidebar";
a.target="_search";
a.title=title;
a.href=url;
a.click();
}else if(document.all){
window.external.AddFavorite(url,title);
}
else{
alert('Press Command/Cmd + D to bookmark this page.');
}
}
