

var utils={KeyCode_TAB:9,KeyCode_DELETE:46,KeyCode_BACKSPACE:8,KeyCode_LEFT_ARROW:37,KeyCode_RIGHT_ARROW:39,KeyCode_HOME:36,KeyCode_END:35,KeyCode_PAGE_UP:33,KeyCode_PAGE_DOWN:34,KeyCode_UP_ARROW:38,KeyCode_DOWN_ARROW:40,KeyCode_ESC:27,KeyCode_ENTER:13,KeyCode_SPACE:32,KeyCode_SHIFT_KEY:16,KeyCode_CTRL_KEY:17,KeyCode_ALT_KEY:18,KeyCode_LEFT_MS_WINDOWS_KEY:91,KeyCode_RIGHT_MS_WINDOWS_KEY:92,KeyCode_MS_MENU_KEY:93,bIsIe:false/*@cc_on||true@*/,isArray:function(oObj){return this.isObject(oObj)&&oObj.constructor==Array;},isObject:function(oObj){return(oObj&&typeof oObj=='object');},hasClass:function(oEl,className){var regexp=new RegExp("(^|\\s)"+className+"(\\s|$)");return regexp.test(oEl.className);},addClass:function(oEl,className){if(!this.hasClass(oEl,className)){if(oEl.className)oEl.className+=" "+className;else oEl.className=className;}},removeClass:function(oEl,className){var regexp=new RegExp("(^|\\s)"+className+"(\\s|$)");var b=regexp.test(oEl.className);oEl.className=oEl.className.replace(regexp,"$2");return b;},toggleClass:function(oEl,className){if(this.hasClass(oEl,className))this.removeClass(oEl,className);else this.addClass(oEl,className);},createCookie:function(name,value,days,path){if(days){var date=new Date();date.setTime(date.getTime()+(days*24*60*60*1000));var expires='; expires='+date.toGMTString();}else expires='';document.cookie=name+'='+value+expires+'; path='+(path?path:"/");},readCookie:function(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"";},eraseCookie:function(sName,bOnlyInMyDomain){if(bOnlyInMyDomain){this.createCookie(sName,"",-1);}else{var x=sName+"=; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/; domain=";document.cookie=x+"ncbi.nlm.nih.gov";document.cookie=x+"nlm.nih.gov";document.cookie=x+"nih.gov";}},addEvent_guid:1,addEvent:function(oEl,sType,fHandler){if(!fHandler.$$guid)fHandler.$$guid=this.addEvent_guid++;if(!oEl.events)oEl.events={};var handlers=oEl.events[sType];if(!handlers){handlers=oEl.events[sType]={};if(oEl["on"+sType]){handlers[0]=oEl["on"+sType];}}
handlers[fHandler.$$guid]=fHandler;oEl["on"+sType]=handleEvent;function handleEvent(e){var returnValue=true;e=e||fixEvent(window.event);var handlers=this.events[e.type];for(var i in handlers){this.$$handleEvent=handlers[i];if(this.$$handleEvent(e)===false){returnValue=false;}}
return returnValue;};function fixEvent(e){e.preventDefault=fixEvent.preventDefault;e.stopPropagation=fixEvent.stopPropagation;return e;};fixEvent.preventDefault=function(){this.returnValue=false;};fixEvent.stopPropagation=function(){this.cancelBubble=true;};try{}finally{element=null;}
return fHandler.$$guid;},removeEvent:function(oEl,sType,fHandler){if(oEl.events&&oEl.events[sType]){delete oEl.events[sType][fHandler.$$guid];return fHandler.$$guid;}
return null;},preventDefault:function(e){if(e.preventDefault)e.preventDefault();else window.event.returnValue=false;},getRelatedTarget:function(e){if(!e)var e=window.event;if(e.relatedTarget)return e.relatedTarget;else if(e.toElement)return e.toElement;},getTargetObj:function(e){var oTarget;e=e||window.event;if(e==null)return null;if(e.srcElement==null)oTarget=e.target;else oTarget=e.srcElement;while(oTarget&&oTarget.nodeType!=1)oTarget=oTarget.parentNode;return oTarget;},getPageDim:function(oEl){var dim={w:0,h:0};var test1,test2;var x;if(undefined==oEl){x=document.body;}else{x=oEl;}
var test1=parseInt(x.scrollHeight);var test2=parseInt(x.offsetHeight);if(test1>test2){dim.w=parseInt(x.scrollWidth);dim.h=test1;}else{dim.w=parseInt(x.offsetWidth);dim.h=test2;}
return dim;},getWindowDim:function(){var dim={w:0,h:0};if(self.innerHeight){dim.w=self.innerWidth;dim.h=self.innerHeight;}else if(document.documentElement&&document.documentElement.clientHeight){dim.w=document.documentElement.clientWidth;dim.h=document.documentElement.clientHeight;}else if(document.body){dim.w=document.body.clientWidth;dim.h=document.body.clientHeight;}
dim.w=parseInt(dim.w);dim.h=parseInt(dim.h);return dim;},getXY:function(oEl,oParent){var dim={x:0,y:0,w:oEl.offsetWidth,h:oEl.offsetHeight};if(oEl.offsetParent){while(oEl&&oEl!=oParent){dim.x+=oEl.offsetLeft;dim.y+=oEl.offsetTop;oEl=oEl.offsetParent;}}else if(oEl.x){dim.x=oEl.x;dim.y=oEl.y;}
return dim;},getBorders:function(oEl){var res={t:0,b:0,l:0,r:0,isInner:false};res.t=this.getStyle(oEl,"borderTopWidth");if(typeof(res.t)=="string"&&res.t!=""){res.b=this.getStyle(oEl,"borderBottomWidth");res.l=this.getStyle(oEl,"borderLeftWidth");res.r=this.getStyle(oEl,"borderRightWidth");}else{res.t=this.getStyle(oEl,"border-top-width");res.b=this.getStyle(oEl,"border-bottom-width");res.l=this.getStyle(oEl,"border-left-width");res.r=this.getStyle(oEl,"border-right-width");}
if(oEl.currentStyle){res.isInner=true;}
res.b=parseInt(res.b);if(isNaN(res.b))res.b=0;res.t=parseInt(res.t);if(isNaN(res.t))res.t=0;res.l=parseInt(res.l);if(isNaN(res.l))res.l=0;res.r=parseInt(res.r);if(isNaN(res.r))res.r=0;return res;},getPaddings:function(oEl){var res={t:0,b:0,l:0,r:0};res.t=this.getStyle(oEl,"paddingTop");if(typeof(res.t)=="string"&&res.t!=""){res.b=this.getStyle(oEl,"paddingBottom");res.l=this.getStyle(oEl,"paddingLeft");res.r=this.getStyle(oEl,"paddingRight");}else{res.t=this.getStyle(oEl,"padding-top");res.b=this.getStyle(oEl,"padding-bottom");res.l=this.getStyle(oEl,"padding-left");res.r=this.getStyle(oEl,"padding-right");}
res.b=parseInt(res.b);if(isNaN(res.b))res.b=0;res.t=parseInt(res.t);if(isNaN(res.t))res.t=0;res.l=parseInt(res.l);if(isNaN(res.l))res.l=0;res.r=parseInt(res.r);if(isNaN(res.r))res.r=0;return res;},getMargins:function(oEl){var res={t:0,b:0,l:0,r:0};res.t=this.getStyle(oEl,"marginTop");if(typeof(res.t)=="string"&&res.t!=""){res.b=this.getStyle(oEl,"marginBottom");res.l=this.getStyle(oEl,"marginLeft");res.r=this.getStyle(oEl,"marginRight");}else{res.t=this.getStyle(oEl,"margin-top");res.b=this.getStyle(oEl,"margin-bottom");res.l=this.getStyle(oEl,"margin-left");res.r=this.getStyle(oEl,"margin-right");}
res.b=parseInt(res.b);if(isNaN(res.b))res.b=0;res.t=parseInt(res.t);if(isNaN(res.t))res.t=0;res.l=parseInt(res.l);if(isNaN(res.l))res.l=0;res.r=parseInt(res.r);if(isNaN(res.r))res.r=0;return res;},getScrolls:function(){var dim={x:0,y:0};if(self.pageYOffset){dim.x=self.pageXOffset;dim.y=self.pageYOffset;}else if(document.documentElement){dim.x=document.documentElement.scrollLeft;dim.y=document.documentElement.scrollTop;}else if(document.body){dim.x=document.body.scrollLeft;dim.y=document.body.scrollTop;}
dim.x=parseInt(dim.x);dim.y=parseInt(dim.y);return dim;},insertAfter:function(parent,node,referenceNode){parent.insertBefore(node,referenceNode.nextSibling);},moveAfter:function(item1,item2){var parent=item1.parentNode;parent.removeChild(item1);parent.insertBefore(item1,item2?item2.nextSibling:null);},moveBefore:function(item1,item2){var parent=item1.parentNode;parent.removeChild(item1);parent.insertBefore(item1,item2);},removeChildren:function(oObj){if(!oObj||typeof oObj!="object")return;while(oObj&&oObj.hasChildNodes()){var x=oObj.removeChild(oObj.firstChild);this.removeChildren(x);x=null;}},removeAllChildren:function(oObj){this.removeChildren(oObj);},getParent:function(oEl){if(oEl){var result=oEl.parentNode;while(result&&result.nodeType!=1)result=result.nextSibling;if(result)return result;}
return null;},getFirstChild:function(oEl){if(oEl){var result=oEl.firstChild;while(result&&result.nodeType!=1)result=result.nextSibling;if(result)return result;}
return null;},getNextSibling:function(oEl,sTagName){if(oEl){var result=oEl.nextSibling;if(sTagName){var tn=sTagName.toUpperCase();while(result&&result.tagName!=tn)result=result.nextSibling;}else{while(result&&result.nodeType!=1)result=result.nextSibling;}
return result;}
return null;},getPreviousSibling:function(oEl,sTagName){if(oEl){var result=oEl.previousSibling;if(sTagName){var tn=sTagName.toUpperCase();while(result&&result.tagName!=tn)result=result.previousSibling;}else{while(result&&result.nodeType!=1)result=result.previousSibling;}
return result;}
return null;},nextItem:function(oEl,sNodeName){if(oEl==null)return null;var next=oEl.nextSibling;while(next!=null){if(next.nodeName==sNodeName)return next;next=next.nextSibling;}
return null;},previousItem:function(oEl,sNodeName){var previous=oEl.previousSibling;while(previous!=null){if(previous.nodeName==sNodeName)return previous;previous=previous.previousSibling;}
return null},containsNode:function(oEl,oContainer){if(oEl==null)
return false;if(oEl==oContainer)
return true;else
return this.containsNode(this.getParent(oEl));},getDocument:function(oFrame){if(oFrame.contentDocument)return oFrame.contentDocument;else if(oFrame.contentWindow)return oFrame.contentWindow.document;else if(oFrame.document)return oFrame.document;return null;},getStyle:function(oEl,sStyleProp){if(oEl.currentStyle){return oEl.currentStyle[sStyleProp];}else if(document.defaultView&&document.defaultView.getComputedStyle){return document.defaultView.getComputedStyle(oEl,'').getPropertyValue(sStyleProp);}},getSelection:function(){var text="";if(window.getSelection){text+=window.getSelection();}else if(document.getSelection){text+=document.getSelection();}else if(document.selection){text+=document.selection.createRange().text;}
return text;},selectRange:function(oEl,iStart,iLength){if(!(oEl&&oEl.value))return;if(oEl.createTextRange){var oRange=oEl.createTextRange();oRange.moveStart("character",iStart);oRange.moveEnd("character",iLength-oEl.value.length);oRange.select();}else if(oEl.setSelectionRange){oEl.setSelectionRange(iStart,iLength);}
oEl.focus();},getTextContent:function(oEl){/*@cc_on return oEl.innerText;@*/return oEl.textContent;},getPlural:function(iN,sSuffix){if(undefined==sSuffix){return(iN>1?"s":"");}else if("y"==sSuffix){return(iN>1?"ies":"y");}else{return(iN>1?sSuffix+"s":sSuffix);}},getPeriodToString:function(iDelta){var x="Error, cannot convert '"+iDelta+"'";var sDir;iDelta=parseInt(iDelta);if(iDelta<0){sDir=" before";iDelta=-iDelta;}else
sDir=" ago";var iS=parseInt(iDelta/1000);var iM,iH,iD;if(iS<60){x=iS+" second"+this.getPlural(iS);}else{iM=parseInt(iS/60);if(iM<60){x=iM+" minute"+this.getPlural(iM);}else{iH=parseInt(iM/60);if(iH<24){iM=iM-iH*60;x=iH+" hour"+this.getPlural(iH)+" and "+iM+" minute"+this.getPlural(iM);}else{iD=parseInt(iH/24);iH-=iD*24;x=iD+" day"+this.getPlural(iD)+" and "+iH+" hour"+this.getPlural(iH);}}}
return x+sDir;},isEmail:function(sAddress){var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;return(filter.test(sAddress))},getParams:function(sStr,sDelim){var res={};if(undefined==sStr)return res;var a;if(sDelim){a=sStr.split(sDelim);}else{if(sStr.indexOf("&amp;")==-1){a=sStr.split("&");}else{a=sStr.split("&amp;");}}
for(var i=0;i<a.length;i++){var b=a[i].split("=");if(b[0]=="")continue;if(b[1]==""){res[b[0]]=true;}else{res[b[0]]=unescape(b[1]);}}
return res;},Dump:function(oObj,iDepth){if(iDepth==null)iDepth=1;var s='';if(typeof(oObj)=="object"){s+=typeof(oObj)+" {\n";for(var k in oObj){for(var i=0;i<iDepth;i++)s+="  ";s+=k+": "+this.Dump(oObj[k],iDepth+1);}
for(var i=0;i<iDepth-1;i++)s+="  ";s+="}\n"}else{s+=""+oObj+"\n";}
return s;},jsLoader:{load:function(aScripts){var oS=document.getElementsByTagName("script");for(var j=0;j<oS.length;j++){if(oS[j].src=="")continue;this.oLoaded.push(oS[j].src);}
var sHost=document.location.protocol+"/"+"/"+document.location.host;var sPath=document.location.pathname;sPath=sPath.substring(0,sPath.lastIndexOf("/"))+"/";var oHead=document.getElementsByTagName("head")[0];for(var i=0;i<aScripts.length;i++){var sNewSrc=this.sBase+aScripts[i];if(sNewSrc.indexOf(":/"+"/")==-1){if(sNewSrc.indexOf("/")==0){sNewSrc=sHost+sNewSrc;}else{sNewSrc=sHost+sPath+sNewSrc;}}
var oS=document.getElementsByTagName("script");var b=true;for(var j=0;j<this.oLoaded.length;j++){if(sNewSrc==this.oLoaded[j]){b=false;}}
if(b){document.write("<script src='"+sNewSrc+"' type='text/javascript'></script>");this.oLoaded.push(sNewSrc);}}},sBase:"",oLoaded:[]},insertInHtml:function(text,obj){if(document.all){obj.innerHTML+=text;}else{var range=document.createRange();range.setStartAfter(obj);var docFrag=range.createContextualFragment(text);obj.appendChild(docFrag);}},replaceInHtml:function(text,obj){if(document.all){obj.innerHTML=text;}else{while(obj.hasChildNodes())obj.removeChild(obj.firstChild);var range=document.createRange();range.setStartAfter(obj);var docFrag=range.createContextualFragment(text);obj.appendChild(docFrag);}},drawText:function(sText,sId,add){if(!sId)sId="debug";var obj=document.getElementById(sId);if(obj){if(add)
obj.innerHTML="<br/>"+sText;else
obj.innerHTML+=sText;}}};String.prototype.trimSpaces=function(trimMode){var str=this;switch(trimMode){case 1:return ltrim(str);case 2:return rtrim(str);default:return trim(str);}
function ltrim(str){for(var k=0;k<str.length&&isWhitespace(str.charAt(k));k++);return str.substring(k,str.length);}
function rtrim(str){for(var j=str.length-1;j>=0&&isWhitespace(str.charAt(j));j--);return str.substring(0,j+1);}
function trim(str){return ltrim(rtrim(str));}
function isWhitespace(charToCheck){var whitespaceChars=" \t\n\r\f";return(whitespaceChars.indexOf(charToCheck)!=-1);}}
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;}
function $C(attrValue,attrName,node,tag){if("*"==attrValue){return $AN(attrName,node,tag);}
var oElements=new Array();if(!node)node=document;if(!tag)tag='*';if(!attrName)attrName='class';var els=node.getElementsByTagName(tag);var elsLen=els.length;var pattern=new RegExp("(^|\\s)"+attrValue+"(\\s|$)");var j=0;for(i=0;i<elsLen;i++){if(attrName=="class"&&pattern.test(els[i].className)){oElements[j++]=els[i];}else if(pattern.test(els[i].getAttribute(attrName))){oElements[j++]=els[i];}}
return oElements;}
function $AN(attrName,node,tag){var oElements=new Array();if(node==null)node=document;if(tag==null)tag='*';var els=node.getElementsByTagName(tag);for(i=0;i<els.length;i++){if(els[i].getAttribute(attrName)>""){oElements[oElements.length]=els[i];}}
return oElements;}
function $N(name,node){var oElements=[];if(node==null)node=document;var els=node.getElementsByName(name);for(i=0;i<els.length;i++){oElements[oElements.length]=els[i];}
return oElements;}