function savingpercentage(rrp,saving,output){if(rrp=='Call'){document.getElementById(output).innerHTML='Call ';}
else{var a=rrp;var b=saving;var c=(b/a)*100;var d=Math.round(c);document.getElementById(output).innerHTML=d;}}
function show(id){var d=document.getElementById(id);if(d.style.display=='none'){var elem=document.getElementsByTagName("div");var arr=new Array();for(i=0,iarr=0;i<elem.length;i++){att=elem[i].getAttribute("name");if(att=="menu_item"){elem[i].style.display='none';}}
if(d){d.style.display='block';}}
else if(d.style.display=='block'){d.style.display='none';};}
function enableLink(linkName){allLinks=document.links;for(i=0;i<allLinks.length;i++){if(allLinks[i].name==linkName){allLinks[i].onclick=null;}}}
function disableLink(linkName){allLinks=document.links;for(i=0;i<allLinks.length;i++){if(allLinks[i].name==linkName){allLinks[i].onclick=function(){return false};}}}
function FormOff()
{var selNodes=document.getElementsByTagName('select')
var i=0;if(!selNodes.item(0))
{return false;}
else
{do{selNodes.item(i).style.visibility='hidden';}
while(++i<selNodes.length);}}
function FormOn()
{var selNodes=document.getElementsByTagName('select')
var i=0;if(!selNodes.item(0))
{return false;}
else
{do{selNodes.item(i).style.visibility='visible';}
while(++i<selNodes.length);}}
var tabFlag=0;function changeDetailPageTab(imgIndex,tabCount){createCookie(location.href,imgIndex,1);for(var i=0;i<tabCount;i++){document.getElementById('tab'+i).className="taboff";document.getElementById('div'+i).style.display="none";}
document.getElementById('tab'+imgIndex).className="tabon";document.getElementById('div'+imgIndex).style.display="block";tabFlag=imgIndex;}
function tabenter(id){if(document.getElementById(id).className=="taboff"){document.getElementById(id).className="taboff2";}}
function tableave(id){if(document.getElementById(id).className=="taboff2"){document.getElementById(id).className="taboff";}}
var jumpURL;function MM_preloadImages(){var d=document;if(d.images){if(!d.MM_p)d.MM_p=new Array();var i,j=d.MM_p.length,a=MM_preloadImages.arguments;for(i=0;i<a.length;i++)
if(a[i].indexOf("#")!=0){d.MM_p[j]=new Image;d.MM_p[j++].src=a[i];}}}
MM_preloadImages();function MM_swapImgRestore(){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){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 MM_swapImage(){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_reloadPage(init){if(init==true)with(navigator){if((appName=="Netscape")&&(parseInt(appVersion)==4)){document.MM_pgW=innerWidth;document.MM_pgH=innerHeight;onresize=MM_reloadPage;}}
else if(innerWidth!=document.MM_pgW||innerHeight!=document.MM_pgH)location.reload();}
MM_reloadPage(true);function MM_jumpMenu(targ,selObj,restore){eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");if(restore)selObj.selectedIndex=0;}
function MM_openBrWindow(theURL,winName,features){window.open(theURL,winName,features);return false;}
function MM_jumpMenu(targ,selObj,restore){eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");if(restore)selObj.selectedIndex=0;}
function toggle(id,objName,on,off){el=document.getElementById(id);var display=el.style.display?'':'none';el.style.display=display;if(display==''){MM_setTextOfLayer(objName,'',on);}
if(display=='none'){MM_setTextOfLayer(objName,'',off);}}
function MM_setTextOfLayer(objName,x,newText){if((obj=MM_findObj(objName))!=null)with(obj)
if(document.layers){document.write(unescape(newText));document.close();}
else innerHTML=unescape(newText);}
function lMenv(obj){obj.style.overflow='visible';}
function lMent(obj){obj.style.overflow='hidden';}
function urlJump(){if(jumpURL){window.location=jumpURL;}}
function lMover(obj,lBg,winLoc){obj.style.backgroundColor=lBg;jumpURL=winLoc;}
function lMout(obj,lBg){obj.style.backgroundColor=lBg;jumpURL='';}
function textCounter(field,countfield,maxlimit){if(field.value.length>maxlimit)
field.value=field.value.substring(0,maxlimit);else
countfield.value=maxlimit-field.value.length;}
function createCookie(name,value,days)
{if(days)
{var date=new Date();date.setTime(date.getTime()+(days*24*60*60*1000));var expires="; expires="+date.toGMTString();}
else var expires="";document.cookie=name+"="+value+expires+"; path=/";}
function readCookie(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 eraseCookie(name)
{createCookie(name,"",-1);}
addEvent(window,"load",sortables_init);var SORT_COLUMN_INDEX;function sortables_init(){if(!document.getElementsByTagName)return;tbls=document.getElementsByTagName("table");for(ti=0;ti<tbls.length;ti++){thisTbl=tbls[ti];if(((' '+thisTbl.className+' ').indexOf("sortable")!=-1)&&(thisTbl.id)){ts_makeSortable(thisTbl);}}}
function ts_makeSortable(table){if(table.rows&&table.rows.length>0){var firstRow=table.rows[0];}
if(!firstRow)return;for(var i=0;i<firstRow.cells.length;i++){var cell=firstRow.cells[i];var txt=ts_getInnerText(cell);cell.innerHTML='<a href="#" class="sortheader" onclick="ts_resortTable(this);return false;">'+txt+'<span class="sortarrow"></span></a>';}}
function ts_getInnerText(el){if(typeof el=="string")return el;if(typeof el=="undefined"){return el};if(el.innerText)return el.innerText;var str="";var cs=el.childNodes;var l=cs.length;for(var i=0;i<l;i++){switch(cs[i].nodeType){case 1:str+=ts_getInnerText(cs[i]);break;case 3:str+=cs[i].nodeValue;break;}}
return str;}
function ts_resortTable(lnk){var span;for(var ci=0;ci<lnk.childNodes.length;ci++){if(lnk.childNodes[ci].tagName&&lnk.childNodes[ci].tagName.toLowerCase()=='span')span=lnk.childNodes[ci];}
var spantext=ts_getInnerText(span);var td=lnk.parentNode;var column=td.cellIndex;var table=getParent(td,'TABLE');if(table.rows.length<=1)return;var itm=ts_getInnerText(table.rows[1].cells[column]);sortfn=ts_sort_caseinsensitive;if(itm.match(/^\d\d[\/-]\d\d[\/-]\d\d\d\d$/))sortfn=ts_sort_date;if(itm.match(/^\d\d[\/-]\d\d[\/-]\d\d$/))sortfn=ts_sort_date;if(itm.match(/^[£$]/))sortfn=ts_sort_currency;if(itm.match(/^[\d\.]+$/))sortfn=ts_sort_numeric;SORT_COLUMN_INDEX=column;var firstRow=new Array();var newRows=new Array();for(i=0;i<table.rows[0].length;i++){firstRow[i]=table.rows[0][i];}
for(j=1;j<table.rows.length;j++){newRows[j-1]=table.rows[j];}
newRows.sort(sortfn);if(span.getAttribute("sortdir")=='down'){ARROW='';newRows.reverse();span.setAttribute('sortdir','up');}else{ARROW='';span.setAttribute('sortdir','down');}
for(i=0;i<newRows.length;i++){if(!newRows[i].className||(newRows[i].className&&(newRows[i].className.indexOf('sortbottom')==-1)))table.tBodies[0].appendChild(newRows[i]);}
for(i=0;i<newRows.length;i++){if(newRows[i].className&&(newRows[i].className.indexOf('sortbottom')!=-1))table.tBodies[0].appendChild(newRows[i]);}
var allspans=document.getElementsByTagName("span");for(var ci=0;ci<allspans.length;ci++){if(allspans[ci].className=='sortarrow'){if(getParent(allspans[ci],"table")==getParent(lnk,"table")){allspans[ci].innerHTML='';}}}
span.innerHTML=ARROW;}
function getParent(el,pTagName){if(el==null)return null;else if(el.nodeType==1&&el.tagName.toLowerCase()==pTagName.toLowerCase())
return el;else
return getParent(el.parentNode,pTagName);}
function ts_sort_date(a,b){aa=ts_getInnerText(a.cells[SORT_COLUMN_INDEX]);bb=ts_getInnerText(b.cells[SORT_COLUMN_INDEX]);if(aa.length==10){dt1=aa.substr(6,4)+aa.substr(3,2)+aa.substr(0,2);}else{yr=aa.substr(6,2);if(parseInt(yr)<50){yr='20'+yr;}else{yr='19'+yr;}
dt1=yr+aa.substr(3,2)+aa.substr(0,2);}
if(bb.length==10){dt2=bb.substr(6,4)+bb.substr(3,2)+bb.substr(0,2);}else{yr=bb.substr(6,2);if(parseInt(yr)<50){yr='20'+yr;}else{yr='19'+yr;}
dt2=yr+bb.substr(3,2)+bb.substr(0,2);}
if(dt1==dt2)return 0;if(dt1<dt2)return-1;return 1;}
function ts_sort_currency(a,b){aa=ts_getInnerText(a.cells[SORT_COLUMN_INDEX]).replace(/[^0-9.]/g,'');bb=ts_getInnerText(b.cells[SORT_COLUMN_INDEX]).replace(/[^0-9.]/g,'');return parseFloat(aa)-parseFloat(bb);}
function ts_sort_numeric(a,b){aa=parseFloat(ts_getInnerText(a.cells[SORT_COLUMN_INDEX]));if(isNaN(aa))aa=0;bb=parseFloat(ts_getInnerText(b.cells[SORT_COLUMN_INDEX]));if(isNaN(bb))bb=0;return aa-bb;}
function ts_sort_caseinsensitive(a,b){aa=ts_getInnerText(a.cells[SORT_COLUMN_INDEX]).toLowerCase();bb=ts_getInnerText(b.cells[SORT_COLUMN_INDEX]).toLowerCase();if(aa==bb)return 0;if(aa<bb)return-1;return 1;}
function ts_sort_default(a,b){aa=ts_getInnerText(a.cells[SORT_COLUMN_INDEX]);bb=ts_getInnerText(b.cells[SORT_COLUMN_INDEX]);if(aa==bb)return 0;if(aa<bb)return-1;return 1;}
function addEvent(elm,evType,fn,useCapture)
{if(elm.addEventListener){elm.addEventListener(evType,fn,useCapture);return true;}else if(elm.attachEvent){var r=elm.attachEvent("on"+evType,fn);return r;}else{alert("Handler could not be removed");}}
var gAutoPrint=true;function printSpecial()
{if(document.getElementById!=null)
{var html='<HTML>\n<HEAD>\n';if(document.getElementsByTagName!=null)
{var headTags=document.getElementsByTagName("head");if(headTags.length>0)
html+=headTags[0].innerHTML;}
html+='\n</HE'+'AD>\n<BODY>\n';var printReadyElem=document.getElementById("printReady");if(printReadyElem!=null)
{html+=printReadyElem.innerHTML;}
else
{alert("Could not find the printReady section in the HTML");return;}
html+='\n</BO'+'DY>\n</HT'+'ML>';var printWin=window.open("","printSpecial");printWin.document.open();printWin.document.write(html);printWin.document.close();if(gAutoPrint)
printWin.print();}
else
{alert("Sorry, the print ready feature is only available in modern browsers.");}}
isMac=(navigator.appVersion.indexOf("Mac")!=-1)?true:false;NS4=(document.layers)?true:false;IEmac=((document.all)&&(isMac))?true:false;IE4plus=(document.all)?true:false;IE4=((document.all)&&(navigator.appVersion.indexOf("MSIE 4.")!=-1))?true:false;IE5=((document.all)&&(navigator.appVersion.indexOf("MSIE 5.")!=-1))?true:false;ver4=(NS4||IE4plus)?true:false;NS6=(!document.layers)&&(navigator.userAgent.indexOf('Netscape')!=-1)?true:false;var gSafeOnload=new Array();function SafeAddOnload(f)
{if(IEmac&&IE4)
{window.onload=SafeOnload;gSafeOnload[gSafeOnload.length]=f;}
else if(window.onload)
{if(window.onload!=SafeOnload)
{gSafeOnload[0]=window.onload;window.onload=SafeOnload;}
gSafeOnload[gSafeOnload.length]=f;}
else
window.onload=f;}
function SafeOnload()
{for(var i=0;i<gSafeOnload.length;i++)
gSafeOnload[i]();}
function getSuggestions(keyword,usePaging,pageIndex,pageSize,callbackMethod)
{new Ajax.Request('auto_complete_product_name2.php?qu='+keyword,{method:'get',onSuccess:function(transport)
{var response=transport.responseText||"no response text";ajaxresult=response;var jsonData=ajaxresult;callbackMethod(jsonData);},onFailure:function()
{alert('Something went wrong...')}});}
function ajax_it(ajaxdiv,pagetoload)
{new Ajax.Updater(ajaxdiv,pagetoload,{asynchronous:true});}
function add_email_alert2(postpage,formname)
{var params=Form.serialize($(formname));new Ajax.Updater('stock_email_alert_div',postpage,{asynchronous:true,parameters:params});};if(typeof deconcept=="undefined"){var deconcept=new Object();}
if(typeof deconcept.util=="undefined"){deconcept.util=new Object();}
if(typeof deconcept.SWFObjectUtil=="undefined"){deconcept.SWFObjectUtil=new Object();}
deconcept.SWFObject=function(_1,id,w,h,_5,c,_7,_8,_9,_a,_b){if(!document.getElementById){return;}
this.DETECT_KEY=_b?_b:"detectflash";this.skipDetect=deconcept.util.getRequestParameter(this.DETECT_KEY);this.params=new Object();this.variables=new Object();this.attributes=new Array();if(_1){this.setAttribute("swf",_1);}
if(id){this.setAttribute("id",id);}
if(w){this.setAttribute("width",w);}
if(h){this.setAttribute("height",h);}
if(_5){this.setAttribute("version",new deconcept.PlayerVersion(_5.toString().split(".")));}
this.installedVer=deconcept.SWFObjectUtil.getPlayerVersion();if(c){this.addParam("bgcolor",c);}
var q=_8?_8:"high";this.addParam("quality",q);this.setAttribute("useExpressInstall",_7);this.setAttribute("doExpressInstall",false);var _d=(_9)?_9:window.location;this.setAttribute("xiRedirectUrl",_d);this.setAttribute("redirectUrl","");if(_a){this.setAttribute("redirectUrl",_a);}};deconcept.SWFObject.prototype={setAttribute:function(_e,_f){this.attributes[_e]=_f;},getAttribute:function(_10){return this.attributes[_10];},addParam:function(_11,_12){this.params[_11]=_12;},getParams:function(){return this.params;},addVariable:function(_13,_14){this.variables[_13]=_14;},getVariable:function(_15){return this.variables[_15];},getVariables:function(){return this.variables;},getVariablePairs:function(){var _16=new Array();var key;var _18=this.getVariables();for(key in _18){_16.push(key+"="+_18[key]);}
return _16;},getSWFHTML:function(){var _19="";if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","PlugIn");}
_19="<embed type=\"application/x-shockwave-flash\" src=\""+this.getAttribute("swf")+"\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\"";_19+=" id=\""+this.getAttribute("id")+"\" name=\""+this.getAttribute("id")+"\" ";var _1a=this.getParams();for(var key in _1a){_19+=[key]+"=\""+_1a[key]+"\" ";}
var _1c=this.getVariablePairs().join("&");if(_1c.length>0){_19+="flashvars=\""+_1c+"\"";}_19+="/>";}else{if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","ActiveX");}
_19="<object id=\""+this.getAttribute("id")+"\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\">";_19+="<param name=\"movie\" value=\""+this.getAttribute("swf")+"\" />";var _1d=this.getParams();for(var key in _1d){_19+="<param name=\""+key+"\" value=\""+_1d[key]+"\" />";}
var _1f=this.getVariablePairs().join("&");if(_1f.length>0){_19+="<param name=\"flashvars\" value=\""+_1f+"\" />";}_19+="</object>";}
return _19;},write:function(_20){if(this.getAttribute("useExpressInstall")){var _21=new deconcept.PlayerVersion([6,0,65]);if(this.installedVer.versionIsValid(_21)&&!this.installedVer.versionIsValid(this.getAttribute("version"))){this.setAttribute("doExpressInstall",true);this.addVariable("MMredirectURL",escape(this.getAttribute("xiRedirectUrl")));document.title=document.title.slice(0,47)+" - Flash Player Installation";this.addVariable("MMdoctitle",document.title);}}
if(this.skipDetect||this.getAttribute("doExpressInstall")||this.installedVer.versionIsValid(this.getAttribute("version"))){var n=(typeof _20=="string")?document.getElementById(_20):_20;n.innerHTML=this.getSWFHTML();return true;}else{if(this.getAttribute("redirectUrl")!=""){document.location.replace(this.getAttribute("redirectUrl"));}}
return false;}};deconcept.SWFObjectUtil.getPlayerVersion=function(){var _23=new deconcept.PlayerVersion([0,0,0]);if(navigator.plugins&&navigator.mimeTypes.length){var x=navigator.plugins["Shockwave Flash"];if(x&&x.description){_23=new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split("."));}}else{try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");}
catch(e){try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");_23=new deconcept.PlayerVersion([6,0,21]);axo.AllowScriptAccess="always";}
catch(e){if(_23.major==6){return _23;}}try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");}
catch(e){}}if(axo!=null){_23=new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));}}
return _23;};deconcept.PlayerVersion=function(_27){this.major=_27[0]!=null?parseInt(_27[0]):0;this.minor=_27[1]!=null?parseInt(_27[1]):0;this.rev=_27[2]!=null?parseInt(_27[2]):0;};deconcept.PlayerVersion.prototype.versionIsValid=function(fv){if(this.major<fv.major){return false;}
if(this.major>fv.major){return true;}
if(this.minor<fv.minor){return false;}
if(this.minor>fv.minor){return true;}
if(this.rev<fv.rev){return false;}return true;};deconcept.util={getRequestParameter:function(_29){var q=document.location.search||document.location.hash;if(q){var _2b=q.substring(1).split("&");for(var i=0;i<_2b.length;i++){if(_2b[i].substring(0,_2b[i].indexOf("="))==_29){return _2b[i].substring((_2b[i].indexOf("=")+1));}}}
return"";}};deconcept.SWFObjectUtil.cleanupSWFs=function(){if(window.opera||!document.all){return;}
var _2d=document.getElementsByTagName("OBJECT");for(var i=0;i<_2d.length;i++){_2d[i].style.display="none";for(var x in _2d[i]){if(typeof _2d[i][x]=="function"){_2d[i][x]=function(){};}}}};deconcept.SWFObjectUtil.prepUnload=function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){};if(typeof window.onunload=="function"){var _30=window.onunload;window.onunload=function(){deconcept.SWFObjectUtil.cleanupSWFs();_30();};}else{window.onunload=deconcept.SWFObjectUtil.cleanupSWFs;}};if(typeof window.onbeforeunload=="function"){var oldBeforeUnload=window.onbeforeunload;window.onbeforeunload=function(){deconcept.SWFObjectUtil.prepUnload();oldBeforeUnload();};}else{window.onbeforeunload=deconcept.SWFObjectUtil.prepUnload;}
if(Array.prototype.push==null){Array.prototype.push=function(_31){this[this.length]=_31;return this.length;};}
var getQueryParamValue=deconcept.util.getRequestParameter;var FlashObject=deconcept.SWFObject;var SWFObject=deconcept.SWFObject;;var Prototype={Version:'1.4.0',ScriptFragment:'(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)',emptyFunction:function(){},K:function(x){return x}}
var Class={create:function(){return function(){this.initialize.apply(this,arguments);}}}
var Abstract=new Object();Object.extend=function(destination,source){for(property in source){destination[property]=source[property];}
return destination;}
Object.inspect=function(object){try{if(object==undefined)return'undefined';if(object==null)return'null';return object.inspect?object.inspect():object.toString();}catch(e){if(e instanceof RangeError)return'...';throw e;}}
Function.prototype.bind=function(){var __method=this,args=$A(arguments),object=args.shift();return function(){return __method.apply(object,args.concat($A(arguments)));}}
Function.prototype.bindAsEventListener=function(object){var __method=this;return function(event){return __method.call(object,event||window.event);}}
Object.extend(Number.prototype,{toColorPart:function(){var digits=this.toString(16);if(this<16)return'0'+digits;return digits;},succ:function(){return this+1;},times:function(iterator){$R(0,this,true).each(iterator);return this;}});var Try={these:function(){var returnValue;for(var i=0;i<arguments.length;i++){var lambda=arguments[i];try{returnValue=lambda();break;}catch(e){}}
return returnValue;}}
var PeriodicalExecuter=Class.create();PeriodicalExecuter.prototype={initialize:function(callback,frequency){this.callback=callback;this.frequency=frequency;this.currentlyExecuting=false;this.registerCallback();},registerCallback:function(){setInterval(this.onTimerEvent.bind(this),this.frequency*1000);},onTimerEvent:function(){if(!this.currentlyExecuting){try{this.currentlyExecuting=true;this.callback();}finally{this.currentlyExecuting=false;}}}}
function $(){var elements=new Array();for(var i=0;i<arguments.length;i++){var element=arguments[i];if(typeof element=='string')
element=document.getElementById(element);if(arguments.length==1)
return element;elements.push(element);}
return elements;}
Object.extend(String.prototype,{stripTags:function(){return this.replace(/<\/?[^>]+>/gi,'');},stripScripts:function(){return this.replace(new RegExp(Prototype.ScriptFragment,'img'),'');},extractScripts:function(){var matchAll=new RegExp(Prototype.ScriptFragment,'img');var matchOne=new RegExp(Prototype.ScriptFragment,'im');return(this.match(matchAll)||[]).map(function(scriptTag){return(scriptTag.match(matchOne)||['',''])[1];});},evalScripts:function(){return this.extractScripts().map(eval);},escapeHTML:function(){var div=document.createElement('div');var text=document.createTextNode(this);div.appendChild(text);return div.innerHTML;},unescapeHTML:function(){var div=document.createElement('div');div.innerHTML=this.stripTags();return div.childNodes[0]?div.childNodes[0].nodeValue:'';},toQueryParams:function(){var pairs=this.match(/^\??(.*)$/)[1].split('&');return pairs.inject({},function(params,pairString){var pair=pairString.split('=');params[pair[0]]=pair[1];return params;});},toArray:function(){return this.split('');},camelize:function(){var oStringList=this.split('-');if(oStringList.length==1)return oStringList[0];var camelizedString=this.indexOf('-')==0?oStringList[0].charAt(0).toUpperCase()+oStringList[0].substring(1):oStringList[0];for(var i=1,len=oStringList.length;i<len;i++){var s=oStringList[i];camelizedString+=s.charAt(0).toUpperCase()+s.substring(1);}
return camelizedString;},inspect:function(){return"'"+this.replace('\\','\\\\').replace("'",'\\\'')+"'";}});String.prototype.parseQuery=String.prototype.toQueryParams;var $break=new Object();var $continue=new Object();var Enumerable={each:function(iterator){var index=0;try{this._each(function(value){try{iterator(value,index++);}catch(e){if(e!=$continue)throw e;}});}catch(e){if(e!=$break)throw e;}},all:function(iterator){var result=true;this.each(function(value,index){result=result&&!!(iterator||Prototype.K)(value,index);if(!result)throw $break;});return result;},any:function(iterator){var result=true;this.each(function(value,index){if(result=!!(iterator||Prototype.K)(value,index))
throw $break;});return result;},collect:function(iterator){var results=[];this.each(function(value,index){results.push(iterator(value,index));});return results;},detect:function(iterator){var result;this.each(function(value,index){if(iterator(value,index)){result=value;throw $break;}});return result;},findAll:function(iterator){var results=[];this.each(function(value,index){if(iterator(value,index))
results.push(value);});return results;},grep:function(pattern,iterator){var results=[];this.each(function(value,index){var stringValue=value.toString();if(stringValue.match(pattern))
results.push((iterator||Prototype.K)(value,index));})
return results;},include:function(object){var found=false;this.each(function(value){if(value==object){found=true;throw $break;}});return found;},inject:function(memo,iterator){this.each(function(value,index){memo=iterator(memo,value,index);});return memo;},invoke:function(method){var args=$A(arguments).slice(1);return this.collect(function(value){return value[method].apply(value,args);});},max:function(iterator){var result;this.each(function(value,index){value=(iterator||Prototype.K)(value,index);if(value>=(result||value))
result=value;});return result;},min:function(iterator){var result;this.each(function(value,index){value=(iterator||Prototype.K)(value,index);if(value<=(result||value))
result=value;});return result;},partition:function(iterator){var trues=[],falses=[];this.each(function(value,index){((iterator||Prototype.K)(value,index)?trues:falses).push(value);});return[trues,falses];},pluck:function(property){var results=[];this.each(function(value,index){results.push(value[property]);});return results;},reject:function(iterator){var results=[];this.each(function(value,index){if(!iterator(value,index))
results.push(value);});return results;},sortBy:function(iterator){return this.collect(function(value,index){return{value:value,criteria:iterator(value,index)};}).sort(function(left,right){var a=left.criteria,b=right.criteria;return a<b?-1:a>b?1:0;}).pluck('value');},toArray:function(){return this.collect(Prototype.K);},zip:function(){var iterator=Prototype.K,args=$A(arguments);if(typeof args.last()=='function')
iterator=args.pop();var collections=[this].concat(args).map($A);return this.map(function(value,index){iterator(value=collections.pluck(index));return value;});},inspect:function(){return'#<Enumerable:'+this.toArray().inspect()+'>';}}
Object.extend(Enumerable,{map:Enumerable.collect,find:Enumerable.detect,select:Enumerable.findAll,member:Enumerable.include,entries:Enumerable.toArray});var $A=Array.from=function(iterable){if(!iterable)return[];if(iterable.toArray){return iterable.toArray();}else{var results=[];for(var i=0;i<iterable.length;i++)
results.push(iterable[i]);return results;}}
Object.extend(Array.prototype,Enumerable);Array.prototype._reverse=Array.prototype.reverse;Object.extend(Array.prototype,{_each:function(iterator){for(var i=0;i<this.length;i++)
iterator(this[i]);},clear:function(){this.length=0;return this;},first:function(){return this[0];},last:function(){return this[this.length-1];},compact:function(){return this.select(function(value){return value!=undefined||value!=null;});},flatten:function(){return this.inject([],function(array,value){return array.concat(value.constructor==Array?value.flatten():[value]);});},without:function(){var values=$A(arguments);return this.select(function(value){return!values.include(value);});},indexOf:function(object){for(var i=0;i<this.length;i++)
if(this[i]==object)return i;return-1;},reverse:function(inline){return(inline!==false?this:this.toArray())._reverse();},shift:function(){var result=this[0];for(var i=0;i<this.length-1;i++)
this[i]=this[i+1];this.length--;return result;},inspect:function(){return'['+this.map(Object.inspect).join(', ')+']';}});var Hash={_each:function(iterator){for(key in this){var value=this[key];if(typeof value=='function')continue;var pair=[key,value];pair.key=key;pair.value=value;iterator(pair);}},keys:function(){return this.pluck('key');},values:function(){return this.pluck('value');},merge:function(hash){return $H(hash).inject($H(this),function(mergedHash,pair){mergedHash[pair.key]=pair.value;return mergedHash;});},toQueryString:function(){return this.map(function(pair){return pair.map(encodeURIComponent).join('=');}).join('&');},inspect:function(){return'#<Hash:{'+this.map(function(pair){return pair.map(Object.inspect).join(': ');}).join(', ')+'}>';}}
function $H(object){var hash=Object.extend({},object||{});Object.extend(hash,Enumerable);Object.extend(hash,Hash);return hash;}
ObjectRange=Class.create();Object.extend(ObjectRange.prototype,Enumerable);Object.extend(ObjectRange.prototype,{initialize:function(start,end,exclusive){this.start=start;this.end=end;this.exclusive=exclusive;},_each:function(iterator){var value=this.start;do{iterator(value);value=value.succ();}while(this.include(value));},include:function(value){if(value<this.start)
return false;if(this.exclusive)
return value<this.end;return value<=this.end;}});var $R=function(start,end,exclusive){return new ObjectRange(start,end,exclusive);}
var Ajax={getTransport:function(){return Try.these(function(){return new ActiveXObject('Msxml2.XMLHTTP')},function(){return new ActiveXObject('Microsoft.XMLHTTP')},function(){return new XMLHttpRequest()})||false;},activeRequestCount:0}
Ajax.Responders={responders:[],_each:function(iterator){this.responders._each(iterator);},register:function(responderToAdd){if(!this.include(responderToAdd))
this.responders.push(responderToAdd);},unregister:function(responderToRemove){this.responders=this.responders.without(responderToRemove);},dispatch:function(callback,request,transport,json){this.each(function(responder){if(responder[callback]&&typeof responder[callback]=='function'){try{responder[callback].apply(responder,[request,transport,json]);}catch(e){}}});}};Object.extend(Ajax.Responders,Enumerable);Ajax.Responders.register({onCreate:function(){Ajax.activeRequestCount++;},onComplete:function(){Ajax.activeRequestCount--;}});Ajax.Base=function(){};Ajax.Base.prototype={setOptions:function(options){this.options={method:'post',asynchronous:true,parameters:''}
Object.extend(this.options,options||{});},responseIsSuccess:function(){return this.transport.status==undefined||this.transport.status==0||(this.transport.status>=200&&this.transport.status<300);},responseIsFailure:function(){return!this.responseIsSuccess();}}
Ajax.Request=Class.create();Ajax.Request.Events=['Uninitialized','Loading','Loaded','Interactive','Complete'];Ajax.Request.prototype=Object.extend(new Ajax.Base(),{initialize:function(url,options){this.transport=Ajax.getTransport();this.setOptions(options);this.request(url);},request:function(url){var parameters=this.options.parameters||'';if(parameters.length>0)parameters+='&_=';try{this.url=url;if(this.options.method=='get'&&parameters.length>0)
this.url+=(this.url.match(/\?/)?'&':'?')+parameters;Ajax.Responders.dispatch('onCreate',this,this.transport);this.transport.open(this.options.method,this.url,this.options.asynchronous);if(this.options.asynchronous){this.transport.onreadystatechange=this.onStateChange.bind(this);setTimeout((function(){this.respondToReadyState(1)}).bind(this),10);}
this.setRequestHeaders();var body=this.options.postBody?this.options.postBody:parameters;this.transport.send(this.options.method=='post'?body:null);}catch(e){this.dispatchException(e);}},setRequestHeaders:function(){var requestHeaders=['X-Requested-With','XMLHttpRequest','X-Prototype-Version',Prototype.Version];if(this.options.method=='post'){requestHeaders.push('Content-type','application/x-www-form-urlencoded');if(this.transport.overrideMimeType)
requestHeaders.push('Connection','close');}
if(this.options.requestHeaders)
requestHeaders.push.apply(requestHeaders,this.options.requestHeaders);for(var i=0;i<requestHeaders.length;i+=2)
this.transport.setRequestHeader(requestHeaders[i],requestHeaders[i+1]);},onStateChange:function(){var readyState=this.transport.readyState;if(readyState!=1)
this.respondToReadyState(this.transport.readyState);},header:function(name){try{return this.transport.getResponseHeader(name);}catch(e){}},evalJSON:function(){try{return eval(this.header('X-JSON'));}catch(e){}},evalResponse:function(){try{return eval(this.transport.responseText);}catch(e){this.dispatchException(e);}},respondToReadyState:function(readyState){var event=Ajax.Request.Events[readyState];var transport=this.transport,json=this.evalJSON();if(event=='Complete'){try{(this.options['on'+this.transport.status]||this.options['on'+(this.responseIsSuccess()?'Success':'Failure')]||Prototype.emptyFunction)(transport,json);}catch(e){this.dispatchException(e);}
if((this.header('Content-type')||'').match(/^text\/javascript/i))
this.evalResponse();}
try{(this.options['on'+event]||Prototype.emptyFunction)(transport,json);Ajax.Responders.dispatch('on'+event,this,transport,json);}catch(e){this.dispatchException(e);}
if(event=='Complete')
this.transport.onreadystatechange=Prototype.emptyFunction;},dispatchException:function(exception){(this.options.onException||Prototype.emptyFunction)(this,exception);Ajax.Responders.dispatch('onException',this,exception);}});Ajax.Updater=Class.create();Object.extend(Object.extend(Ajax.Updater.prototype,Ajax.Request.prototype),{initialize:function(container,url,options){this.containers={success:container.success?$(container.success):$(container),failure:container.failure?$(container.failure):(container.success?null:$(container))}
this.transport=Ajax.getTransport();this.setOptions(options);var onComplete=this.options.onComplete||Prototype.emptyFunction;this.options.onComplete=(function(transport,object){this.updateContent();onComplete(transport,object);}).bind(this);this.request(url);},updateContent:function(){var receiver=this.responseIsSuccess()?this.containers.success:this.containers.failure;var response=this.transport.responseText;if(!this.options.evalScripts)
response=response.stripScripts();if(receiver){if(this.options.insertion){new this.options.insertion(receiver,response);}else{Element.update(receiver,response);}}
if(this.responseIsSuccess()){if(this.onComplete)
setTimeout(this.onComplete.bind(this),10);}}});Ajax.PeriodicalUpdater=Class.create();Ajax.PeriodicalUpdater.prototype=Object.extend(new Ajax.Base(),{initialize:function(container,url,options){this.setOptions(options);this.onComplete=this.options.onComplete;this.frequency=(this.options.frequency||2);this.decay=(this.options.decay||1);this.updater={};this.container=container;this.url=url;this.start();},start:function(){this.options.onComplete=this.updateComplete.bind(this);this.onTimerEvent();},stop:function(){this.updater.onComplete=undefined;clearTimeout(this.timer);(this.onComplete||Prototype.emptyFunction).apply(this,arguments);},updateComplete:function(request){if(this.options.decay){this.decay=(request.responseText==this.lastText?this.decay*this.options.decay:1);this.lastText=request.responseText;}
this.timer=setTimeout(this.onTimerEvent.bind(this),this.decay*this.frequency*1000);},onTimerEvent:function(){this.updater=new Ajax.Updater(this.container,this.url,this.options);}});document.getElementsByClassName=function(className,parentElement){var children=($(parentElement)||document.body).getElementsByTagName('*');return $A(children).inject([],function(elements,child){if(child.className.match(new RegExp("(^|\\s)"+className+"(\\s|$)")))
elements.push(child);return elements;});}
if(!window.Element){var Element=new Object();}
Object.extend(Element,{visible:function(element){return $(element).style.display!='none';},toggle:function(){for(var i=0;i<arguments.length;i++){var element=$(arguments[i]);Element[Element.visible(element)?'hide':'show'](element);}},hide:function(){for(var i=0;i<arguments.length;i++){var element=$(arguments[i]);element.style.display='none';}},show:function(){for(var i=0;i<arguments.length;i++){var element=$(arguments[i]);element.style.display='';}},remove:function(element){element=$(element);element.parentNode.removeChild(element);},update:function(element,html){$(element).innerHTML=html.stripScripts();setTimeout(function(){html.evalScripts()},10);},getHeight:function(element){element=$(element);return element.offsetHeight;},classNames:function(element){return new Element.ClassNames(element);},hasClassName:function(element,className){if(!(element=$(element)))return;return Element.classNames(element).include(className);},addClassName:function(element,className){if(!(element=$(element)))return;return Element.classNames(element).add(className);},removeClassName:function(element,className){if(!(element=$(element)))return;return Element.classNames(element).remove(className);},cleanWhitespace:function(element){element=$(element);for(var i=0;i<element.childNodes.length;i++){var node=element.childNodes[i];if(node.nodeType==3&&!/\S/.test(node.nodeValue))
Element.remove(node);}},empty:function(element){return $(element).innerHTML.match(/^\s*$/);},scrollTo:function(element){element=$(element);var x=element.x?element.x:element.offsetLeft,y=element.y?element.y:element.offsetTop;window.scrollTo(x,y);},getStyle:function(element,style){element=$(element);var value=element.style[style.camelize()];if(!value){if(document.defaultView&&document.defaultView.getComputedStyle){var css=document.defaultView.getComputedStyle(element,null);value=css?css.getPropertyValue(style):null;}else if(element.currentStyle){value=element.currentStyle[style.camelize()];}}
if(window.opera&&['left','top','right','bottom'].include(style))
if(Element.getStyle(element,'position')=='static')value='auto';return value=='auto'?null:value;},setStyle:function(element,style){element=$(element);for(name in style)
element.style[name.camelize()]=style[name];},getDimensions:function(element){element=$(element);if(Element.getStyle(element,'display')!='none')
return{width:element.offsetWidth,height:element.offsetHeight};var els=element.style;var originalVisibility=els.visibility;var originalPosition=els.position;els.visibility='hidden';els.position='absolute';els.display='';var originalWidth=element.clientWidth;var originalHeight=element.clientHeight;els.display='none';els.position=originalPosition;els.visibility=originalVisibility;return{width:originalWidth,height:originalHeight};},makePositioned:function(element){element=$(element);var pos=Element.getStyle(element,'position');if(pos=='static'||!pos){element._madePositioned=true;element.style.position='relative';if(window.opera){element.style.top=0;element.style.left=0;}}},undoPositioned:function(element){element=$(element);if(element._madePositioned){element._madePositioned=undefined;element.style.position=element.style.top=element.style.left=element.style.bottom=element.style.right='';}},makeClipping:function(element){element=$(element);if(element._overflow)return;element._overflow=element.style.overflow;if((Element.getStyle(element,'overflow')||'visible')!='hidden')
element.style.overflow='hidden';},undoClipping:function(element){element=$(element);if(element._overflow)return;element.style.overflow=element._overflow;element._overflow=undefined;}});var Toggle=new Object();Toggle.display=Element.toggle;Abstract.Insertion=function(adjacency){this.adjacency=adjacency;}
Abstract.Insertion.prototype={initialize:function(element,content){this.element=$(element);this.content=content.stripScripts();if(this.adjacency&&this.element.insertAdjacentHTML){try{this.element.insertAdjacentHTML(this.adjacency,this.content);}catch(e){if(this.element.tagName.toLowerCase()=='tbody'){this.insertContent(this.contentFromAnonymousTable());}else{throw e;}}}else{this.range=this.element.ownerDocument.createRange();if(this.initializeRange)this.initializeRange();this.insertContent([this.range.createContextualFragment(this.content)]);}
setTimeout(function(){content.evalScripts()},10);},contentFromAnonymousTable:function(){var div=document.createElement('div');div.innerHTML='<table><tbody>'+this.content+'</tbody></table>';return $A(div.childNodes[0].childNodes[0].childNodes);}}
var Insertion=new Object();Insertion.Before=Class.create();Insertion.Before.prototype=Object.extend(new Abstract.Insertion('beforeBegin'),{initializeRange:function(){this.range.setStartBefore(this.element);},insertContent:function(fragments){fragments.each((function(fragment){this.element.parentNode.insertBefore(fragment,this.element);}).bind(this));}});Insertion.Top=Class.create();Insertion.Top.prototype=Object.extend(new Abstract.Insertion('afterBegin'),{initializeRange:function(){this.range.selectNodeContents(this.element);this.range.collapse(true);},insertContent:function(fragments){fragments.reverse(false).each((function(fragment){this.element.insertBefore(fragment,this.element.firstChild);}).bind(this));}});Insertion.Bottom=Class.create();Insertion.Bottom.prototype=Object.extend(new Abstract.Insertion('beforeEnd'),{initializeRange:function(){this.range.selectNodeContents(this.element);this.range.collapse(this.element);},insertContent:function(fragments){fragments.each((function(fragment){this.element.appendChild(fragment);}).bind(this));}});Insertion.After=Class.create();Insertion.After.prototype=Object.extend(new Abstract.Insertion('afterEnd'),{initializeRange:function(){this.range.setStartAfter(this.element);},insertContent:function(fragments){fragments.each((function(fragment){this.element.parentNode.insertBefore(fragment,this.element.nextSibling);}).bind(this));}});Element.ClassNames=Class.create();Element.ClassNames.prototype={initialize:function(element){this.element=$(element);},_each:function(iterator){this.element.className.split(/\s+/).select(function(name){return name.length>0;})._each(iterator);},set:function(className){this.element.className=className;},add:function(classNameToAdd){if(this.include(classNameToAdd))return;this.set(this.toArray().concat(classNameToAdd).join(' '));},remove:function(classNameToRemove){if(!this.include(classNameToRemove))return;this.set(this.select(function(className){return className!=classNameToRemove;}).join(' '));},toString:function(){return this.toArray().join(' ');}}
Object.extend(Element.ClassNames.prototype,Enumerable);var Field={clear:function(){for(var i=0;i<arguments.length;i++)
$(arguments[i]).value='';},focus:function(element){$(element).focus();},present:function(){for(var i=0;i<arguments.length;i++)
if($(arguments[i]).value=='')return false;return true;},select:function(element){$(element).select();},activate:function(element){element=$(element);element.focus();if(element.select)
element.select();}}
var Form={serialize:function(form){var elements=Form.getElements($(form));var queryComponents=new Array();for(var i=0;i<elements.length;i++){var queryComponent=Form.Element.serialize(elements[i]);if(queryComponent)
queryComponents.push(queryComponent);}
return queryComponents.join('&');},getElements:function(form){form=$(form);var elements=new Array();for(tagName in Form.Element.Serializers){var tagElements=form.getElementsByTagName(tagName);for(var j=0;j<tagElements.length;j++)
elements.push(tagElements[j]);}
return elements;},getInputs:function(form,typeName,name){form=$(form);var inputs=form.getElementsByTagName('input');if(!typeName&&!name)
return inputs;var matchingInputs=new Array();for(var i=0;i<inputs.length;i++){var input=inputs[i];if((typeName&&input.type!=typeName)||(name&&input.name!=name))
continue;matchingInputs.push(input);}
return matchingInputs;},disable:function(form){var elements=Form.getElements(form);for(var i=0;i<elements.length;i++){var element=elements[i];element.blur();element.disabled='true';}},enable:function(form){var elements=Form.getElements(form);for(var i=0;i<elements.length;i++){var element=elements[i];element.disabled='';}},findFirstElement:function(form){return Form.getElements(form).find(function(element){return element.type!='hidden'&&!element.disabled&&['input','select','textarea'].include(element.tagName.toLowerCase());});},focusFirstElement:function(form){Field.activate(Form.findFirstElement(form));},reset:function(form){$(form).reset();}}
Form.Element={serialize:function(element){element=$(element);var method=element.tagName.toLowerCase();var parameter=Form.Element.Serializers[method](element);if(parameter){var key=encodeURIComponent(parameter[0]);if(key.length==0)return;if(parameter[1].constructor!=Array)
parameter[1]=[parameter[1]];return parameter[1].map(function(value){return key+'='+encodeURIComponent(value);}).join('&');}},getValue:function(element){element=$(element);var method=element.tagName.toLowerCase();var parameter=Form.Element.Serializers[method](element);if(parameter)
return parameter[1];}}
Form.Element.Serializers={input:function(element){switch(element.type.toLowerCase()){case'submit':case'hidden':case'password':case'text':return Form.Element.Serializers.textarea(element);case'checkbox':case'radio':return Form.Element.Serializers.inputSelector(element);}
return false;},inputSelector:function(element){if(element.checked)
return[element.name,element.value];},textarea:function(element){return[element.name,element.value];},select:function(element){return Form.Element.Serializers[element.type=='select-one'?'selectOne':'selectMany'](element);},selectOne:function(element){var value='',opt,index=element.selectedIndex;if(index>=0){opt=element.options[index];value=opt.value;if(!value&&!('value'in opt))
value=opt.text;}
return[element.name,value];},selectMany:function(element){var value=new Array();for(var i=0;i<element.length;i++){var opt=element.options[i];if(opt.selected){var optValue=opt.value;if(!optValue&&!('value'in opt))
optValue=opt.text;value.push(optValue);}}
return[element.name,value];}}
var $F=Form.Element.getValue;Abstract.TimedObserver=function(){}
Abstract.TimedObserver.prototype={initialize:function(element,frequency,callback){this.frequency=frequency;this.element=$(element);this.callback=callback;this.lastValue=this.getValue();this.registerCallback();},registerCallback:function(){setInterval(this.onTimerEvent.bind(this),this.frequency*1000);},onTimerEvent:function(){var value=this.getValue();if(this.lastValue!=value){this.callback(this.element,value);this.lastValue=value;}}}
Form.Element.Observer=Class.create();Form.Element.Observer.prototype=Object.extend(new Abstract.TimedObserver(),{getValue:function(){return Form.Element.getValue(this.element);}});Form.Observer=Class.create();Form.Observer.prototype=Object.extend(new Abstract.TimedObserver(),{getValue:function(){return Form.serialize(this.element);}});Abstract.EventObserver=function(){}
Abstract.EventObserver.prototype={initialize:function(element,callback){this.element=$(element);this.callback=callback;this.lastValue=this.getValue();if(this.element.tagName.toLowerCase()=='form')
this.registerFormCallbacks();else
this.registerCallback(this.element);},onElementEvent:function(){var value=this.getValue();if(this.lastValue!=value){this.callback(this.element,value);this.lastValue=value;}},registerFormCallbacks:function(){var elements=Form.getElements(this.element);for(var i=0;i<elements.length;i++)
this.registerCallback(elements[i]);},registerCallback:function(element){if(element.type){switch(element.type.toLowerCase()){case'checkbox':case'radio':Event.observe(element,'click',this.onElementEvent.bind(this));break;case'password':case'text':case'textarea':case'select-one':case'select-multiple':Event.observe(element,'change',this.onElementEvent.bind(this));break;}}}}
Form.Element.EventObserver=Class.create();Form.Element.EventObserver.prototype=Object.extend(new Abstract.EventObserver(),{getValue:function(){return Form.Element.getValue(this.element);}});Form.EventObserver=Class.create();Form.EventObserver.prototype=Object.extend(new Abstract.EventObserver(),{getValue:function(){return Form.serialize(this.element);}});if(!window.Event){var Event=new Object();}
Object.extend(Event,{KEY_BACKSPACE:8,KEY_TAB:9,KEY_RETURN:13,KEY_ESC:27,KEY_LEFT:37,KEY_UP:38,KEY_RIGHT:39,KEY_DOWN:40,KEY_DELETE:46,element:function(event){return event.target||event.srcElement;},isLeftClick:function(event){return(((event.which)&&(event.which==1))||((event.button)&&(event.button==1)));},pointerX:function(event){return event.pageX||(event.clientX+
(document.documentElement.scrollLeft||document.body.scrollLeft));},pointerY:function(event){return event.pageY||(event.clientY+
(document.documentElement.scrollTop||document.body.scrollTop));},stop:function(event){if(event.preventDefault){event.preventDefault();event.stopPropagation();}else{event.returnValue=false;event.cancelBubble=true;}},findElement:function(event,tagName){var element=Event.element(event);while(element.parentNode&&(!element.tagName||(element.tagName.toUpperCase()!=tagName.toUpperCase())))
element=element.parentNode;return element;},observers:false,_observeAndCache:function(element,name,observer,useCapture){if(!this.observers)this.observers=[];if(element.addEventListener){this.observers.push([element,name,observer,useCapture]);element.addEventListener(name,observer,useCapture);}else if(element.attachEvent){this.observers.push([element,name,observer,useCapture]);element.attachEvent('on'+name,observer);}},unloadCache:function(){if(!Event.observers)return;for(var i=0;i<Event.observers.length;i++){Event.stopObserving.apply(this,Event.observers[i]);Event.observers[i][0]=null;}
Event.observers=false;},observe:function(element,name,observer,useCapture){var element=$(element);useCapture=useCapture||false;if(name=='keypress'&&(navigator.appVersion.match(/Konqueror|Safari|KHTML/)||element.attachEvent))
name='keydown';this._observeAndCache(element,name,observer,useCapture);},stopObserving:function(element,name,observer,useCapture){var element=$(element);useCapture=useCapture||false;if(name=='keypress'&&(navigator.appVersion.match(/Konqueror|Safari|KHTML/)||element.detachEvent))
name='keydown';if(element.removeEventListener){element.removeEventListener(name,observer,useCapture);}else if(element.detachEvent){element.detachEvent('on'+name,observer);}}});Event.observe(window,'unload',Event.unloadCache,false);var Position={includeScrollOffsets:false,prepare:function(){this.deltaX=window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0;this.deltaY=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;},realOffset:function(element){var valueT=0,valueL=0;do{valueT+=element.scrollTop||0;valueL+=element.scrollLeft||0;element=element.parentNode;}while(element);return[valueL,valueT];},cumulativeOffset:function(element){var valueT=0,valueL=0;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;element=element.offsetParent;}while(element);return[valueL,valueT];},positionedOffset:function(element){var valueT=0,valueL=0;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;element=element.offsetParent;if(element){p=Element.getStyle(element,'position');if(p=='relative'||p=='absolute')break;}}while(element);return[valueL,valueT];},offsetParent:function(element){if(element.offsetParent)return element.offsetParent;if(element==document.body)return element;while((element=element.parentNode)&&element!=document.body)
if(Element.getStyle(element,'position')!='static')
return element;return document.body;},within:function(element,x,y){if(this.includeScrollOffsets)
return this.withinIncludingScrolloffsets(element,x,y);this.xcomp=x;this.ycomp=y;this.offset=this.cumulativeOffset(element);return(y>=this.offset[1]&&y<this.offset[1]+element.offsetHeight&&x>=this.offset[0]&&x<this.offset[0]+element.offsetWidth);},withinIncludingScrolloffsets:function(element,x,y){var offsetcache=this.realOffset(element);this.xcomp=x+offsetcache[0]-this.deltaX;this.ycomp=y+offsetcache[1]-this.deltaY;this.offset=this.cumulativeOffset(element);return(this.ycomp>=this.offset[1]&&this.ycomp<this.offset[1]+element.offsetHeight&&this.xcomp>=this.offset[0]&&this.xcomp<this.offset[0]+element.offsetWidth);},overlap:function(mode,element){if(!mode)return 0;if(mode=='vertical')
return((this.offset[1]+element.offsetHeight)-this.ycomp)/element.offsetHeight;if(mode=='horizontal')
return((this.offset[0]+element.offsetWidth)-this.xcomp)/element.offsetWidth;},clone:function(source,target){source=$(source);target=$(target);target.style.position='absolute';var offsets=this.cumulativeOffset(source);target.style.top=offsets[1]+'px';target.style.left=offsets[0]+'px';target.style.width=source.offsetWidth+'px';target.style.height=source.offsetHeight+'px';},page:function(forElement){var valueT=0,valueL=0;var element=forElement;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;if(element.offsetParent==document.body)
if(Element.getStyle(element,'position')=='absolute')break;}while(element=element.offsetParent);element=forElement;do{valueT-=element.scrollTop||0;valueL-=element.scrollLeft||0;}while(element=element.parentNode);return[valueL,valueT];},clone:function(source,target){var options=Object.extend({setLeft:true,setTop:true,setWidth:true,setHeight:true,offsetTop:0,offsetLeft:0},arguments[2]||{})
source=$(source);var p=Position.page(source);target=$(target);var delta=[0,0];var parent=null;if(Element.getStyle(target,'position')=='absolute'){parent=Position.offsetParent(target);delta=Position.page(parent);}
if(parent==document.body){delta[0]-=document.body.offsetLeft;delta[1]-=document.body.offsetTop;}
if(options.setLeft)target.style.left=(p[0]-delta[0]+options.offsetLeft)+'px';if(options.setTop)target.style.top=(p[1]-delta[1]+options.offsetTop)+'px';if(options.setWidth)target.style.width=source.offsetWidth+'px';if(options.setHeight)target.style.height=source.offsetHeight+'px';},absolutize:function(element){element=$(element);if(element.style.position=='absolute')return;Position.prepare();var offsets=Position.positionedOffset(element);var top=offsets[1];var left=offsets[0];var width=element.clientWidth;var height=element.clientHeight;element._originalLeft=left-parseFloat(element.style.left||0);element._originalTop=top-parseFloat(element.style.top||0);element._originalWidth=element.style.width;element._originalHeight=element.style.height;element.style.position='absolute';element.style.top=top+'px';;element.style.left=left+'px';;element.style.width=width+'px';;element.style.height=height+'px';;},relativize:function(element){element=$(element);if(element.style.position=='relative')return;Position.prepare();element.style.position='relative';var top=parseFloat(element.style.top||0)-(element._originalTop||0);var left=parseFloat(element.style.left||0)-(element._originalLeft||0);element.style.top=top+'px';element.style.left=left+'px';element.style.height=element._originalHeight;element.style.width=element._originalWidth;}}
if(/Konqueror|Safari|KHTML/.test(navigator.userAgent)){Position.cumulativeOffset=function(element){var valueT=0,valueL=0;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;if(element.offsetParent==document.body)
if(Element.getStyle(element,'position')=='absolute')break;element=element.offsetParent;}while(element);return[valueL,valueT];}};function XUtils()
{}
var g_elementTypes=new Array();XUtils.createElement=function(elementType)
{if(!g_elementTypes[elementType])
g_elementTypes[elementType]=document.createElement(elementType);return g_elementTypes[elementType].cloneNode(true);}
XUtils.deleteNode=function(node)
{node.parentNode.removeChild(node);}
XUtils.isAncestorNode=function(ancestorNode,childNode)
{var node=childNode.parentNode;while(node!=null)
{if(node==ancestorNode)
return true;node=node.parentNode;}
return false;}
XUtils.addEventListener=function(object,eventType,notifyFunction)
{TRACE("XUtils.addEventListener eventType="+eventType);if(XUtils.isIE())
object.attachEvent("on"+eventType,notifyFunction);else
object.addEventListener(eventType,notifyFunction,false);}
XUtils.removeEventListener=function(object,eventType,notifyFunction)
{if(XUtils.isIE())
object.detachEvent("on"+eventType,notifyFunction);else
object.removeEventListener(eventType,notifyFunction,false);}
XUtils.getEventPosition=function(evt)
{var posx=0;var posy=0;if(!evt)
evt=window.event;if(evt.pageX||evt.pageY)
{posx=evt.pageX;posy=evt.pageY;}
else if(evt.clientX||evt.clientY)
{posx=evt.clientX+document.body.scrollLeft
+document.documentElement.scrollLeft;posy=evt.clientY+document.body.scrollTop
+document.documentElement.scrollTop;}
TRACE("XUtils.getEventPosition "+posx+", "+posy);var pos=new Array();pos[0]=posx;pos[1]=posy;return pos;}
XUtils.getEventKey=function(evt)
{if(!evt)
evt=window.event;var code=(evt.charCode)?evt.charCode:((evt.keyCode)?evt.keyCode:((evt.which)?evt.which:0));return code;}
XUtils.isPointInDiv=function(x,y,div)
{TRACE("XUtils.isPointInDiv x="+x+", y="+y);TRACE("XUtils.isPointInDiv div.offsetLeft="+div.offsetLeft+", div.offsetWidth="+div.offsetWidth);TRACE("XUtils.isPointInDiv div.offsetTop="+div.offsetTop+", div.offsetHeight="+div.offsetHeight);if(((x>=div.offsetLeft)&&(x<=div.offsetLeft+div.offsetWidth))&&((y>=div.offsetTop)&&(y<=div.offsetTop+div.offsetHeight)))
return true;else
return false;}
XUtils.getAbsoluteLeft=function(obj)
{var left=obj.offsetLeft;while(obj.offsetParent!=null)
{obj=obj.offsetParent;left=left+obj.offsetLeft;}
return left;}
XUtils.getAbsoluteTop=function(obj)
{var top=obj.offsetTop;while(obj.offsetParent!=null)
{obj=obj.offsetParent;top=top+obj.offsetTop;}
return top;}
XUtils.overlayIFrame=function(div)
{TRACE("XUtils.overlayIFrame");div.style.zIndex=div.style.zIndex+1;var iFrame=XUtils.createElement("IFRAME");iFrame.setAttribute("src","");iFrame.style.position="absolute";iFrame.style.left=div.style.left;iFrame.style.top=div.style.top;iFrame.style.width=div.offsetWidth+'px';iFrame.style.height=div.offsetHeight+'px';div.parentNode.appendChild(iFrame);return iFrame;}
XUtils.combineWithIFrame=function(div)
{var divContainer=XUtils.createElement("div");divContainer.style.position="absolute";divContainer.style.left=div.style.left;divContainer.style.top=div.style.top;divContainer.style.width=div.clientWidth+'px';divContainer.style.height=div.clientHeight+'px';var iFrame=XUtils.createElement("IFRAME");iFrame.setAttribute("src","");iFrame.style.position="absolute";iFrame.style.left="0px";iFrame.style.top="0px";iFrame.style.width='100%';iFrame.style.height='100%';divContainer.appendChild(iFrame);var parentNode=div.parentNode;parentNode.removeChild(div);divContainer.appendChild(div);div.style.left="0px";div.style.top="0px";div.style.width="100%";div.style.height="100%";parentNode.appendChild(divContainer);return divContainer;}
XUtils.getIncludeScriptDir=function(fileName)
{var scripts=document.getElementsByTagName("script");var path;var regExp=new RegExp(fileName+"\\.js(\\?.*)?$");for(var i=0;i<scripts.length;i++)
{path=scripts[i].getAttribute("src");if(path&&path.match(regExp))
{var dir=path.replace(regExp,'');return dir;}}
return null;}
XUtils.isIE=function()
{return(navigator.appName=="Microsoft Internet Explorer");}
XUtils.isFireFox=function()
{return(navigator.appName=="Netscape");}
function TRACE(sText)
{var txtTrace=document.getElementById("txtTrace");if(txtTrace!=null)
txtTrace.value=txtTrace.value+sText+"\n";}
function $1(elementID)
{return document.getElementById(elementID);}
var g_monthNames=new Array('January','February','March','April','May','June','July','August','September','October','November','December');var g_dayNames=new Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');XUtils.padLeft=function(text,length,padChar)
{var numPadChars=length-text.toString().length
var result="";for(count=0;count<numPadChars;count++)
{result=result+padChar;}
result=result+text;return result;}
XUtils.formatDateTime=function(date,format)
{var result="";result=format.replace(/(ampm|yyyy|mmmm|mmm|mm|dddd|ddd|dd|hh|nn|ss\/p)/gi,function($1)
{var text;switch($1.toLowerCase())
{case'ampm':text=date.getHours()<12?'am':'pm';break;case'yyyy':text=date.getFullYear();break;case'mmmm':text=g_monthNames[date.getMonth()];break;case'mmm':text=g_monthNames[date.getMonth()].substr(0,3);break;case'mm':text=(date.getMonth()+1);text=Utils.padLeft(text,2,'0');break;case'dddd':text=g_dayNames[date.getDay()];break;case'ddd':text=g_dayNames[date.getDay()]
text=Utils.padLeft(text,3,'0');break;case'dd':text=date.getDate();text=XUtils.padLeft(text,2,'0');break;case'hh':text=(h=date.getHours()%12)?h:12;text=XUtils.padLeft(text,2,'0');break;case'nn':text=date.getMinutes();text=XUtils.padLeft(text,2,'0');break;case'ss':text=date.getSeconds();text=XUtils.padLeft(text,2,'0');break;}
return text;});return result;}
XUtils.cleanTime=function(dt)
{var newTime=new Date(Date.parse("1/1/1900"));newTime.setHours(dt.getHours());newTime.setMinutes(dt.getMinutes());return newTime;}
XUtils.setSelectedOption=function(ddl,selValue)
{var optionValue;for(var count=0;count<ddl.length;count++)
{optionValue=ddl.options[count].value;if(optionValue==selValue)
{ddl.options[count].selected=true
break;}}}
XUtils.getSelectedRadioValue=function(radioButtonList)
{var options=radioButtonList.getElementsByTagName('input');var opt;for(i=0;i<options.length;i++)
{var opt=options[i];if(opt.checked)
{return opt.value;}}
return null;}
XUtils.getSelectedOptionValue=function(ddl)
{return ddl.options[ddl.selectedIndex].value;}
XUtils.copyDDLValue=function(fromID,toID)
{ddlFrom=$1(fromID);ddlTo=$1(toID);selValue=XUtils.getSelectedOptionValue(ddlFrom);XUtils.setSelectedOption(ddlTo,selValue);}
XUtils.copyTextBoxValue=function(fromTextBoxID,toTextBoxID)
{$1(toTextBoxID).value=$1(fromTextBoxID).value;}
XUtils.checkAll=function(ctrlID,checked)
{var checkBox;var checkBoxID;var count=0;while(true)
{checkBoxID=ctrlID+"_"+count;checkBox=$1(checkBoxID);if(checkBox==null)
break;checkBox.checked=checked;count=count+1;}}
XUtils.removeElementAt=function(array,index)
{array=array.splice(index,1);}
XUtils.getScreenResolution=function()
{return(screen.width+" x "+screen.height)}
if(typeof(Sys)!=="undefined")
Sys.Application.notifyScriptLoaded();;function AutoSuggestMenu()
{var REFRESH_TYPE_COMPLETE="Complete";var REFRESH_TYPE_NEXT_PAGE="Next Page";var REFRESH_TYPE_PREVIOUS_PAGE="Previous Page";var self=this;self.id=null;self.textBoxID=null;self.hiddenSelectedValueID=null;self.minSuggestChars=1;self.maxSuggestChars=80;self.keyPressDelay=300;self.usePaging=false;self.pageSize=10;self.maxHeight=200;self.cssClass="asmMenu";self.menuItemCssClass="asmMenuItem";self.selMenuItemCssClass="asmSelMenuItem";self.navigationLinkCssClass="asmNavigationLink";self.useIFrame=true;self.updateTextBoxOnUpDown=true;self.resourceDir=null;self.menuItems=new Array();self.onGetMenuItems=null;self.onTextBoxUpdate=null;var _dom=null;var _oldTextBoxValue="";var _selMenuItemIndex=null;var _cancelSubmit=false;var _iFrame=null;var _keyPressTimer=null;var _onBlurTimer=null
var _cancelOnBlur=false;var _hasVerticalScrollbar=false;var _pageIndex=0;var _totalResults=0;var _refreshType;function getTextBoxCtrl()
{return document.getElementById(self.textBoxID);}
function getMenuItemsCount()
{return self.menuItems.length;}
function ensureMenuItemVisible(menuItemIndex)
{TRACE("AutoSuggestMenu.ensureMenuItemVisible menuItemIndex="+menuItemIndex+", _hasVerticalScrollbar="+_hasVerticalScrollbar);if(!_hasVerticalScrollbar)
return;var menuStartY=_dom.scrollTop;var menuEndY=_dom.scrollTop+_dom.offsetHeight;var menuItem=self.menuItems[menuItemIndex];var menuItemDiv=menuItem.getDOM();var menuItemStartY=menuItemDiv.offsetTop;var menuItemEndY=menuItemDiv.offsetTop+menuItemDiv.offsetHeight;TRACE("AutoSuggestMenu.ensureMenuItemVisible menuStartY="+menuStartY+", menuEndY="+menuEndY);TRACE("AutoSuggestMenu.ensureMenuItemVisible menuItemStartY="+menuItemStartY+", menuItemEndY="+menuItemEndY);if(menuItemStartY<menuStartY)
_dom.scrollTop=menuItemStartY;if(menuItemEndY>menuEndY)
_dom.scrollTop=_dom.scrollTop+(menuItemEndY-menuEndY);}
function moveUp()
{TRACE("AutoSuggestMenu.moveUp _selMenuItemIndex="+_selMenuItemIndex);if(_selMenuItemIndex==null)
itemIndex=getMenuItemsCount()-1;else
itemIndex=_selMenuItemIndex-1;if(itemIndex>=0)
{selectMenuItem(itemIndex,self.updateTextBoxOnUpDown);ensureMenuItemVisible(itemIndex);}}
function moveDown()
{TRACE("AutoSuggestMenu.moveDown _selMenuItemIndex="+_selMenuItemIndex);var itemIndex;if(_selMenuItemIndex==null)
itemIndex=0;else
itemIndex=_selMenuItemIndex+1;if(itemIndex<getMenuItemsCount())
{selectMenuItem(itemIndex,self.updateTextBoxOnUpDown);ensureMenuItemVisible(itemIndex);}}
function highlightMenuItem(itemIndex)
{if(_selMenuItemIndex!=null)
{if(_selMenuItemIndex==itemIndex)
return;var menuItem=self.menuItems[_selMenuItemIndex];menuItem.unhighlight();}
var menuItem=self.menuItems[itemIndex];menuItem.highlight();}
function selectMenuItem(itemIndex,updateTextBox)
{TRACE("AutoSuggestMenu.selectMenuItem itemIndex="+itemIndex);highlightMenuItem(itemIndex);_selMenuItemIndex=itemIndex;if((updateTextBox==null)||(updateTextBox==true))
{updateTextBoxValue();}}
function updateTextBoxValue()
{var menuItem=self.getSelectedMenuItem();self.setSelectedValue(menuItem.value);var preventUpdate=false;if(self.onTextBoxUpdate)
{var evt=new TextBoxUpdateEvent();evt.source=self;evt.selMenuItem=menuItem;eval(self.onTextBoxUpdate+"(evt);");preventUpdate=evt.getPreventDefault();}
if(!preventUpdate)
{var textBox=getTextBoxCtrl();textBox.value=menuItem.label;}}
function getTextBoxValue()
{var textBox=getTextBoxCtrl();return(textBox.value);}
function focusOnTextBox()
{window.clearTimeout(_onBlurTimer);_onBlurTimer=null;var textBox=getTextBoxCtrl();if(XUtils.isIE())
{var value=textBox.value;var textRange=textBox.createTextRange();textRange.moveStart('character',value.length);textRange.select();}
textBox.focus();}
function isPreviousPageLinkEnabled()
{var enabled=(_pageIndex!=0);return enabled;}
function isNextPageLinkEnabled()
{var numMenuItems=(_pageIndex*self.pageSize)+self.menuItems.length;TRACE("AutoSuggestMenu.isNextPageLinkEnabled numMenuItems="+numMenuItems+", _totalResults="+_totalResults);if(numMenuItems<_totalResults)
return true;else
return false;}
function renderNavigationControlsMenuItem()
{var showPrev=isPreviousPageLinkEnabled();var showNext=isNextPageLinkEnabled();TRACE("AutoSuggestMenu.renderNavigationControlsMenuItem showPrev="+showPrev+", showNext="+showNext);if(!showPrev&&!showNext)
return;var div=XUtils.createElement("div");var table=XUtils.createElement("table");table.width="50px"
var tbody=XUtils.createElement("tbody");var tr=XUtils.createElement("tr");var td=XUtils.createElement("td");td.width="20px";td.align="left";if(showPrev)
{var link=XUtils.createElement("a");link.className=self.navigationLinkCssClass;link.href="";link.innerHTML="&lt;&lt;"
link.onclick=self.onPreviousPage;td.appendChild(link);}
tr.appendChild(td);td=XUtils.createElement("td");td.width="10px";tr.appendChild(td);td=XUtils.createElement("td");td.width="20px";td.align="right";if(showNext)
{var link=XUtils.createElement("a");link.className=self.navigationLinkCssClass;link.href="";link.innerHTML="&gt;&gt;"
link.onclick=self.onNextPage;td.appendChild(link);}
tr.appendChild(td);tbody.appendChild(tr);table.appendChild(tbody);div.appendChild(table);_dom.appendChild(div);}
function createIFrame()
{TRACE("AutoSuggestMenu.createIFrame");var iFrame=XUtils.createElement("IFRAME");var blankPage=self.resourcesDir+"/Blank.html";TRACE("AutoSuggestMenu.createIFrame blankPage="+blankPage);iFrame.setAttribute("src",blankPage);iFrame.style.position="absolute";iFrame.style.visibility="hidden";iFrame.style.left=0;iFrame.style.top=0;iFrame.style.width="0px";iFrame.style.height="0px";return iFrame;}
function renderMenuItems()
{TRACE("AutoSuggestMenu.renderMenuItems");while(_dom.childNodes[0])
{_dom.removeChild(_dom.childNodes[0]);}
var menuItem;var menuItemDiv;var func;for(count=0;count<self.menuItems.length;count++)
{menuItem=self.menuItems[count];if(!menuItem.cssClass)
menuItem.cssClass=self.menuItemCssClass
if(!menuItem.selCssClass)
menuItem.selCssClass=self.selMenuItemCssClass;menuItem.index=count;menuItem.menu=self;menuItemDiv=menuItem.render();_dom.appendChild(menuItemDiv);}
if(self.usePaging)
{renderNavigationControlsMenuItem();}
_hasVerticalScrollbar=false;if(self.maxHeight)
{var maxHeight=parseInt(self.maxHeight);_dom.style.height=null;TRACE("AutoSuggestMenu.renderMenuItems _dom.offsetHeight="+_dom.offsetHeight+", maxHeight="+maxHeight);if(_dom.offsetHeight>maxHeight)
{_dom.style.height=maxHeight+"px";_dom.scrollTop=0;_hasVerticalScrollbar=true;}
TRACE("AutoSuggestMenu.renderMenuItems _dom.style.height="+_dom.style.height);}}
function refreshMenuItems(refreshType)
{if(!refreshType)
_refreshType=REFRESH_TYPE_COMPLETE;else
_refreshType=refreshType;TRACE("AutoSuggestMenu.refreshMenuItems _refreshType="+_refreshType);if(self.isVisible())
self.hide();if(self.onGetMenuItems==null)
throw"Handler of AutoSuggestMenu.onGetMenuItems was not specified."
var value=getTextBoxValue();value=value.replace(/\"/,"\\\"");switch(_refreshType)
{case REFRESH_TYPE_COMPLETE:_pageIndex=0;break;case REFRESH_TYPE_NEXT_PAGE:_pageIndex++;break;case REFRESH_TYPE_PREVIOUS_PAGE:_pageIndex--;break;}
var func=self.onGetMenuItems+"(\""+value+"\", "+
self.usePaging+", "+
_pageIndex+", "+
self.pageSize+", self.refreshMenuItemsCallback)";TRACE("AutoSuggestMenu.refreshMenuItems func="+func);eval(func);}
self.refreshMenuItemsCallback=function(jsonData)
{TRACE("AutoSuggestMenu.refreshMenuItemsCallback");var json=eval("("+jsonData+")");var jsonMenuItem;var menuItem;self.menuItems=new Array();for(count=0;count<json.menuItems.length;count++)
{jsonMenuItem=json.menuItems[count];menuItem=new AutoSuggestMenuItem();menuItem.label=jsonMenuItem.label;menuItem.value=jsonMenuItem.value;if(jsonMenuItem.isSelectable!=null)
menuItem.isSelectable=jsonMenuItem.isSelectable;if(jsonMenuItem.cssClass!=null)
menuItem.cssClass=jsonMenuItem.cssClass;addMenuItem(menuItem);}
TRACE("AutoSuggestMenu.refreshMenuItemsCallback getMenuItemsCount()="+getMenuItemsCount());if(getMenuItemsCount()>0)
{if((_refreshType==REFRESH_TYPE_COMPLETE)&&self.usePaging)
{_totalResults=json.totalResults;}
renderMenuItems();self.show();}}
function addMenuItem(menuItem)
{self.menuItems[self.menuItems.length]=menuItem;}
self.setSelectedValue=function(value)
{TRACE("AutoSuggestMenu.setSelectedValue value="+value);var hdnSelectedValue=document.getElementById(self.hiddenSelectedValueID);hdnSelectedValue.value=value;}
self.getSelectedValue=function()
{TRACE("AutoSuggestMenu.getSelectedValue");var hdnSelectedValue=document.getElementById(self.hiddenSelectedValueID);return hdnSelectedValue.value;}
self.getSelectedMenuItem=function()
{TRACE("AutoSuggestMenu.getHighlightedMenuItem _selMenuItemIndex="+_selMenuItemIndex);if(_selMenuItemIndex!=null)
return self.menuItems[_selMenuItemIndex];else
return null;}
self.isVisible=function()
{if(!_dom)
return false;if(_dom.style.visibility=='hidden')
return false;else
return true;}
function updateIFrame()
{_iFrame.style.left=_dom.style.left;_iFrame.style.top=_dom.style.top;_iFrame.style.width=_dom.offsetWidth+"px";_iFrame.style.height=_dom.offsetHeight+"px";}
self.show=function()
{TRACE("AutoSuggestMenu.show _dom="+_dom);if(_dom==null)
self.render();var textBox=getTextBoxCtrl();_dom.style.left=XUtils.getAbsoluteLeft(textBox)+"px";_dom.style.top=XUtils.getAbsoluteTop(textBox)+textBox.offsetHeight+"px";if(_iFrame)
{updateIFrame();_iFrame.style.visibility="visible";}
_dom.style.visibility="visible";}
self.hide=function()
{TRACE("AutoSuggestMenu.hide");if(!self.isVisible())
{TRACE("AutoSuggestMenu.Hide already hidden");return;}
_selMenuItemIndex=null;_dom.style.visibility="hidden";if(_iFrame)
_iFrame.style.visibility="hidden";}
self.render=function()
{TRACE("AutoSuggestMenu.render");if(self.id==null)
throw"id is required.";if(self.textBoxID==null)
throw"textBoxID is required.";if(self.hiddenSelectedValueID==null)
throw"hiddenSelectedValueID is required.";var textBox=getTextBoxCtrl();var menuDiv;menuDiv=XUtils.createElement('div');menuDiv.id=self.id;menuDiv.className=self.cssClass;menuDiv.sourceObject=self;XUtils.addEventListener(menuDiv,"scroll",self.onMenuScroll);TRACE("AutoSuggestMenu.render absoluteLeft="+XUtils.getAbsoluteLeft(textBox)+", absoluteTop="+XUtils.getAbsoluteTop(textBox));menuDiv.style.left=XUtils.getAbsoluteLeft(textBox)+"px";menuDiv.style.top=XUtils.getAbsoluteTop(textBox)+textBox.offsetHeight+"px";menuDiv.style.visibility='hidden';XUtils.addEventListener(textBox,"keydown",self.onTextBoxKeyDown);XUtils.addEventListener(textBox,"keypress",self.onTextBoxKeyPress);XUtils.addEventListener(textBox,"keyup",self.onTextBoxKeyUp);XUtils.addEventListener(textBox,"blur",self.onTextBoxBlur);textBox.setAttribute("autocomplete","off");TRACE("AutoSuggestMenu.render Moving to menuDiv.style.left="+menuDiv.style.left+", "+menuDiv.style.top);_dom=menuDiv;if(XUtils.isIE()&&self.useIFrame)
{_iFrame=createIFrame();if(_dom.style.zIndex==null)
_dom.style.zIndex=0;_iFrame.style.zIndex=_dom.style.zIndex;document.body.appendChild(_iFrame);_dom.style.zIndex=_dom.style.zIndex+1;}
TRACE("AutoSuggestMenu.render  _dom.style.zIndex="+_dom.style.zIndex);document.body.appendChild(_dom);}
self.onMenuItemClick=function(itemIndex)
{TRACE("AutoSuggestMenu.onMenuItemClick  itemIndex="+itemIndex);selectMenuItem(itemIndex);self.hide();focusOnTextBox();}
self.onMenuItemMouseOver=function(itemIndex)
{selectMenuItem(itemIndex,false);}
self.onTextBoxKeyDown=function(evt)
{TRACE("AutoSuggestMenu.OnTextBoxKeyDown  "+XUtils.getEventKey(evt)+", "+self.textBoxID);_oldTextBoxValue=getTextBoxValue();TRACE("AutoSuggestMenu.OnTextBoxKeyDown  old text box value='"+_oldTextBoxValue+"'");var key=XUtils.getEventKey(evt);TRACE("AutoSuggestMenu.OnTextBoxKeyDown  Key is "+key);if(key==38)
{moveUp();}
else if(key==40)
{moveDown();}
else if(key==13)
{TRACE("AutoSuggestMenu.OnTextBoxKeyDown : isVisible - "+self.isVisible());if(self.isVisible())
{if(!self.updateTextBoxOnUpDown)
updateTextBoxValue();self.hide();_cancelSubmit=true;}
else
{_cancelSubmit=false;}}
return true;}
self.onTextBoxKeyPress=function(evt)
{TRACE("AutoSuggestMenu.onTextBoxKeyPress : "+XUtils.getEventKey(evt));if((XUtils.getEventKey(evt)==13)&&(_cancelSubmit))
{if(!evt)
evt=window.event;evt.cancelBubble=true;evt.returnValue=false;if(evt.stopPropagation)
{evt.preventDefault();evt.stopPropagation();}}
return true;}
self.onTextBoxKeyUp=function(evt)
{var key=XUtils.getEventKey(evt);TRACE("AutoSuggestMenu.onTextBoxKeyUp "+key);var newValue=getTextBoxValue();if((key!=38)&&(key!=40)&&(key!=13))
{if((newValue.length>0)&&(newValue.length>=self.minSuggestChars)&&(newValue.length<=self.maxSuggestChars))
{var divMenu=_dom;if(_keyPressTimer!=null)
window.clearTimeout(_keyPressTimer);TRACE("AutoSuggestMenu.OnTextBoxKeyUp newValue="+newValue+", self.keyPressDelay="+self.keyPressDelay);_keyPressTimer=window.setTimeout(self.onTextBoxKeyUpTimer,self.keyPressDelay);}
else
{if(self.isVisible())
self.hide();}
TRACE("AutoSuggestMenu.onTextBoxKeyUp self.oldTextBoxValue="+_oldTextBoxValue+", newValue="+newValue);if(_oldTextBoxValue!=newValue)
self.setSelectedValue("");}}
self.onTextBoxKeyUpTimer=function()
{TRACE("AutoSuggestMenu.onTextBoxKeyUpTimer");refreshMenuItems();}
self.onTextBoxBlur=function()
{TRACE("AutoSuggestMenu.onTextBoxBlur");if(_cancelOnBlur)
focusOnTextBox();else
_onBlurTimer=window.setTimeout(self.hide,500);_cancelOnBlur=false;}
self.onNextPage=function()
{TRACE("AutoSuggestMenu.onNextPage");focusOnTextBox();refreshMenuItems(REFRESH_TYPE_NEXT_PAGE);return false;}
self.onPreviousPage=function()
{TRACE("AutoSuggestMenu.onNextPage");focusOnTextBox();refreshMenuItems(REFRESH_TYPE_PREVIOUS_PAGE);return false;}
self.onMenuScroll=function()
{TRACE("AutoSuggestMenu.onMenuScrol");focusOnTextBox();_cancelOnBlur=true;}}
AutoSuggestMenu.getMenu=function(menuID)
{var div=$(menuID);if(div==null)
throw"AutoSuggestMenu (ID: '"+menuID+"') doesn't exist";var menu=div.sourceObject;return menu;}
if(typeof(Sys)!=="undefined")
Sys.Application.notifyScriptLoaded();;function AutoSuggestMenuItem(label,value)
{var self=this;self.label=label;self.value=value;self.isSelectable=true;self.cssClass=null;self.selCssClass=null;self.index=null;self.menu=null;var _dom;self.render=function()
{TRACE("AutoSuggestMenuItem.render self.label="+self.label+", self.value="+self.value+", self.cssClass="+self.cssClass);var div=XUtils.createElement('div');div.className=self.cssClass;div.innerHTML=self.label;if(self.isSelectable)
{div.onmouseover=self.onMouseOver;div.onclick=self.onClick;}
_dom=div;return _dom;}
self.highlight=function()
{_dom.className=self.selCssClass;}
self.unhighlight=function()
{_dom.className=self.cssClass;}
self.getDOM=function()
{return _dom;}
self.onMouseOver=function()
{TRACE("AutoSuggestMenuItem.onMouseOver");self.menu.onMenuItemMouseOver(self.index);}
self.onClick=function()
{TRACE("AutoSuggestMenuItem.onClick");self.menu.onMenuItemClick(self.index);}}
if(typeof(Sys)!=="undefined")
Sys.Application.notifyScriptLoaded();