 
// SRC.js
function SRCAddLoadEvent(F){
 if(window.load_SRCWidgetInit!=null)return;
 window.load_SRCWidgetInit=1;
 var oldF=window.onload;
 window.onload=(typeof oldF=='function') ? function(){oldF();F();} : F;
}
SRCAddLoadEvent(SRCWidgetInit);
var
 IE=document.attachEvent,MOZ=document.addEventListener,WE=window.event,
 SRCSearch,SRCInput,SRCList,SRCOptions,SRCNameCount,SRCSaveText;
function SRCWidgetInit(){
 var i,o;
 SRCSearch=document.getElementById('SRCSearch');if(SRCSearch==null)return;
 SRCInput =document.getElementById('SRCInput' );
 SRCList  =document.getElementById('SRCList'  );
 SRCInput.value='Search Name';
 SRCNameCount=SRCNames.length;
 SRCSaveText='';
 for(i=0;i<SRCNameCount;i++)SRCNames[i][2]=SRCCanonical(SRCNames[i][0]);
 SRCNames.sort(new Function('a,b','var xa=a[2],xb=b[2];return xa>xb?1:xa<xb?-1:0;'));
 SRCNames.unshift(['','','']);SRCNameCount++;
 for(i=0;i<SRCNameCount;i++){o=new Option(SRCNames[i][0],SRCNames[i][1]);o.cname=SRCNames[i][2];SRCList.options[i]=o;}
 SRCOptions=SRCList.getElementsByTagName('option');
 SRCOptions[0].selected=true;
 SRCHandleEvent(SRCSearch,'dblclick',SRCSubmit  );
 SRCHandleEvent(SRCSearch,'click'   ,SRCSelFocus);
 SRCHandleEvent(SRCSearch,'keydown' ,SRCKeyDown );
 SRCHandleEvent(SRCSearch,'keyup'   ,SRCShow    );
 SRCHandleEvent(SRCInput ,'blur'    ,SRCSelBlur );
 SRCHandleEvent(SRCInput ,'focus'   ,SRCSelFocus);
 SRCHandleEvent(SRCList  ,'click'   ,SRCSubmit  );
 SRCHandleEvent(SRCList  ,'keyup'   ,SRCKeyUp   );
}

function SRCSelFocus(){SRCInput.value=SRCSaveText;}
function SRCSelBlur (){SRCSaveText=SRCInput.value;}
function SRCSubmit  (){var i=SRCList.selectedIndex;if(isFinite(i)&&i>0)window.location=SRCList.options[i].value;}
function SRCHandleEvent(elem,type,func){IE?elem.attachEvent('on'+type,func):elem.addEventListener(type,func,false);}
function SRCKeyDown(e){
 SRCInput.focus();
 e=e||WE;
 var kc=e.keyCode||e.charCode;
 if(kc==8)return true;
 if(kc==13)SRCSubmit();
 if(SRCValidKey(String.fromCharCode(kc)))return true;
 if(IE)e.cancelBubble=true;else e.stopPropagation();
 return false;
}
function SRCKeyUp(e){
 e=e||WE;
 var kc=e.keyCode||e.charCode;
 var key=String.fromCharCode(kc);
 if(SRCValidKey(key)){SRCInput.value+=key;SRCShow(SRCInput.value,SRCList)};
 if(IE)e.cancelBubble=true;else e.stopPropagation();
 if(kc==13)SRCSubmit();
}
function SRCValidKey(k){
 if(k==' '&&SRCInput.value=='')return false;
 return k.match(/\w|\d|[ \.\,\/\:\+\-\?\(\)\*\&\^\%\$\#\@\!\~\`\'=]/);
}

function SRCShow(){
 var sc=SRCCanonical(SRCInput.value),len=sc.length;
 for(i=0;i<SRCNameCount;i++)if(SRCOptions[i].cname.substring(0,len)>=sc)break;
 SRCOptions[Math.min(SRCNameCount-1,i+5)].selected=true;
 SRCOptions[Math.min(SRCNameCount-1,i  )].selected=true;
}
function SRCCanonical(s){
 s=s||'';
 s=s.replace(/<[^>]*>/g,'').toLowerCase();
 while(s.match(/([\xC0-\xFF])/))s=s.replace(/([\xC0-\xFF])/,SRCACCENT.charAt(RegExp.$1.charCodeAt(0)-192));
 return s;
}


