function element(a){return document.getElementById(a)}function value(b){var a=element(b).value;return a?trim(a):null}function setValue(b,a){element(b).value=a}function formElement(b,a){return a.forms[0][b]}function trim(a){return a.replace(/(^\s+)|($\s+)/g,"")}function empty(a){return !a||trim(a).length==0}function focus(a){setTimeout("element('"+a+"').focus()",0)}function position(c){var b=c.offsetLeft;var a=c.offsetTop;while(c=c.offsetParent){b+=c.offsetLeft;a+=c.offsetTop}return{x:b,y:a}}function eventPosition(a){var c,b;if(a.pageX||a.pageY){c=a.pageX;b=a.pageY}else{if(a.clientX||a.clientY){c=a.clientX+document.body.scrollLeft+document.documentElement.scrollLeft;b=a.clientY+document.body.scrollTop+document.documentElement.scrollTop}}return{x:c,y:b}}function isEmailAddress(a){var b=/^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/;return b.test(a)}function setOnLoad(b){var a=window.onload;if(a){window.onload=function(){a();b()}}else{window.onload=b}};var req;var callback;var result;function sendRequest(a,c,b){if(window.XMLHttpRequest){req=new XMLHttpRequest()}else{if(window.ActiveXObject){req=new ActiveXObject("Microsoft.XMLHTTP")}}callback=b;req.onreadystatechange=handleResponse;req.open("POST",a,true);req.setRequestHeader("Content-type","application/x-www-form-urlencoded");req.send(c)}function handleResponse(){if(req.readyState==4){if((req.status==200)&&req.responseText){result=eval("("+req.responseText+")");setTimeout(callback+"(result)",0)}}};setOnLoad(setupPage);function setupPage(){focus("searchTerms");var a=value("symptomTagsUrl");sendRequest(a,null,"handleLoadSymptoms")}function handleLoadSymptoms(a){var e=[];var d=a.total;for(var b=0;b<d;b++){e.push(a.names[b])}var c=element("searchTerms");enableAutoCompletion(c,e)}function convertSearchTerms(){var a=true;var c=element("searchTerms");var b=c.value;if(empty(b)){a=false;focus("searchTerms")}else{b=b.replace(/(^\s+)|(\s+$)/g,"");b=b.replace(/\s+/g,"_");setValue("searchTermsValue",b)}return a};function login(c){var b=dialogValue("email");var a=dialogValue("password");if(validateLogin(b,a)){var d="email="+escape(b)+"&password="+escape(a);var e=dialogElement("remember");if(e.checked){d+="&remember=on"}sendRequest(c,d,"handleLogin")}}function validateLogin(c,b){var d=true;var a=dialogElement("loginMessages");if(empty(c)||empty(b)){d=false;setDialogMessage(MSG_ERROR,"Enter your email address and password to login",a)}else{d=validateEmail(c,a)}return d}function handleLogin(b){if(b.result=="success"){location.reload(true)}else{var a=dialogElement("loginMessages");setDialogMessage(MSG_ERROR,b.message,a)}}function validateEmail(b,a){var c=true;if(!isEmailAddress(b)){c=false;setDialogMessage(MSG_ERROR,"The email address entered is not valid",a)}return c}function forgotPassword(b){var a=dialogValue("email");if(!a){a=""}location.replace(b+"?email="+escape(a));return false}var hideMenuInterval;function showMenu(b){if(hideMenuInterval){clearInterval(hideMenuInterval)}var a=element("actionMenu");if(b){a.style.top=element("header").clientHeight+2+"px";a.style.left=b.offsetLeft+"px"}a.style.visibility="visible"}function hideMenuAfterDelay(){hideMenuInterval=setInterval(hideMenu,1000)}function hideMenu(){if(hideMenuInterval){clearInterval(hideMenuInterval)}var a=element("actionMenu");a.style.visibility="hidden"}function selectMenu(a){a.className="menuItem menuSelection"}function deselectMenu(a){a.className="menuItem"};function showDialog(b,a){hideDialog();dialog=createDialog(b);dialog.style.maxWidth="30em";setDialogPosition(dialog,a);dialog.style.visibility="visible";setFocus(dialog);return false}function createDialog(c){var b=element(c);var a=document.createElement("DIV");a.id="dialog";a.className="dialog";a.innerHTML=b.innerHTML;fixDialogIds(a);document.body.appendChild(a);return a}function setFocus(a){if(a.tagName=="INPUT"){a.focus();return true}else{var b=a.firstChild;while(b){if(setFocus(b)){return true}b=b.nextSibling}}return false}function fixDialogIds(b){if(b.childNodes){for(var a=0;a<b.childNodes.length;a++){var c=b.childNodes[a];if(c.id){c.id="dialog_"+c.id}fixDialogIds(c)}}}function hideDialog(){var a=element("dialog");if(a){document.body.removeChild(a)}return false}function getDialogX(){var a=element("dialog");return a?a.offsetLeft:-1}function getDialogY(){var a=element("dialog");return a?a.offsetTop+a.scrollHeight:-1}function storeDialogPosition(a){a+="&dialogX="+getDialogX();a+="&dialogY="+getDialogY();return a}function loadDialogPosition(a){var b=new Object();b.pageX=a.dialogX;b.pageY=a.dialogY;return b}function setDialogPosition(a,b){var d;var c;if(b){a.className+=" floatDialog";var f=eventPosition(b);c=f.y-a.scrollHeight;d=f.x}else{a.className+=" headerDialog";var e=element("header");c=e.clientHeight+1;d=e.clientWidth-a.clientWidth-2}a.style.top=c+"px";a.style.left=d+"px"}function dialogElement(a){return element("dialog_"+a)}function dialogValue(a){return value("dialog_"+a)}function setDialogValue(b,a){setValue("dialog_"+b,a)}function dialogFocus(a){setTimeout("dialogElement('"+a+"').focus()",0)}function setDialogMessage(b,c,a){clearMessages(a);addMessage(b,c,false,a);setFocus(a.parentNode)};var MSG_ERROR="messageError";var MSG_WARN="messageWarn";var MSG_INFO="messageInfo";function addMessage(c,d,b,a){if(!a){a=element("messages")}if(a){a.appendChild(createMessage(c,d,b))}}function createMessage(c,d,a){if(typeof a=="undefined"){a=true}var g=document.createElement("DIV");g.className="message "+c;var f=document.createElement("SPAN");f.className="messageText";f.innerHTML=d;g.appendChild(f);if(a){var e=document.createElement("A");e.className="messageClose";e.href="#";e.innerHTML="Close";e.onclick=function(){return closeMessage(this)};g.appendChild(e)}var b=document.createElement("DIV");b.className="clearFloat";g.appendChild(b);return g}function closeMessage(a){a.parentNode.parentNode.removeChild(a.parentNode);if(window.setupPage){setupPage()}return false}function clearMessages(a){if(!a){a=element("messages")}while(a.firstChild){a.removeChild(a.firstChild)}};function CompletionListNode(a){this.value=a;this.completions=[];this.next=null;this.firstChild=null}function CompletionList(){this.firstChild=null}CompletionList.prototype.addToList=function(a,c){if(c==a.value){a.completionCount++}else{if(!a.next){a.next=new CompletionListNode(c);a=a.next}else{if(c<a.next.value){var b=a.next;a.next=new CompletionListNode(c);a.next.next=b;a=a.next}else{a=this.addToList(a.next,c)}}}return a};CompletionList.prototype.addCompletion=function(a){this.addCompletionWord(a,a);var c=a.split(" ");if(c.length>1){for(var b=1;b<c.length;b++){this.addCompletionWord(c[b],a)}}};CompletionList.prototype.addCompletionWord=function(f,c){var e=f.charAt(0).toLowerCase();var a;if(!this.firstChild){this.firstChild=new CompletionListNode(e);a=this.firstChild}else{if(e<this.firstChild.value){var b=this.firstChild;this.firstChild=new CompletionListNode(e);this.firstChild.next=b;a=this.firstChild}else{a=this.addToList(this.firstChild,e)}}for(var d=1;d<f.length;d++){e=f.charAt(d).toLowerCase();if(!a.firstChild){a.firstChild=new CompletionListNode(e);a=a.firstChild}else{if(e<a.firstChild.value){var b=a.firstChild;a.firstChild=new CompletionListNode(e);a.firstChild.next=b;a=a.firstChild}else{a=this.addToList(a.firstChild,f.charAt(d))}}}a.completions.push(c)};CompletionList.prototype.getMatchingCompletions=function(b){var a;if(b&&b.length){b=b.toLowerCase();a=this.getSubtreeForPrefix(this.firstChild,b)}else{a=this.firstChild}return this.getAllCompletions(a,[])};CompletionList.prototype.getSubtreeForPrefix=function(b,d){var a;var c=d.charAt(0);while(b&&(b.value<c)){b=b.next}if(b&&(b.value==c)){if(d.length==1){a=new CompletionListNode(b.value);a.completions=b.completions;a.firstChild=b.firstChild}else{if(d.length>1){a=this.getSubtreeForPrefix(b.firstChild,d.substring(1))}}}return a};CompletionList.prototype.getAllCompletions=function(e,a){var c=new Array();while(e){var f=this.getCompletionsAtNode(e);for(var d=0;d<f.length;d++){var b=f[d];if(!a[b]){c.push(b);a[b]=true}}e=e.next}return c};CompletionList.prototype.getCompletionsAtNode=function(c){var a=new Array();for(var b=0;b<c.completions.length;b++){a.push(c.completions[b])}var d=this.getAllCompletions(c.firstChild,[]);for(var b=0;b<d.length;b++){a.push(d[b])}return a};var lists=[];var boxes=[];var selections=[];function enableAutoCompletion(d,a){if(lists[d.id]){return}d.setAttribute("autocomplete","off");list=new CompletionList();for(var b=0;b<a.length;b++){list.addCompletion(a[b])}var c=document.createElement("DIV");c.className="autoCompleteBox";document.body.appendChild(c);lists[d.id]=list;boxes[d.id]=c;selections[d.id]=0}function autoComplete(a){var d=true;a=a?a:window.event;var c=a.target?a.target:a.srcElement;if(lists[c.id]){var b=a.keyCode;switch(b){case 13:insertCompletion(c);d=false;break;case 27:hideAutoComplete(c.id);d=false;break;case 38:selectAutoCompletion(c,false);d=false;break;case 40:selectAutoCompletion(c,true);d=false;break;default:updateAutoComplete(c,a,b)}}return d}function autoCompleteBlur(a){a=a?a:window.event;var b=a.target?a.target:a.srcElement;setTimeout("hideAutoComplete('"+b.id+"')",250)}function selectAutoCompletion(d,e){var c=boxes[d.id];var b=selections[d.id];var a=c.childNodes;if((e&&(b<(a.length-1)))||(!e&&(b>=0))){if(b>=0){a[b].className="autoCompletion"}b=e?b+1:b-1;if(b>=0){a[b].className="autoCompletionSelected"}selections[d.id]=b}}function insertCompletion(e){var d=boxes[e.id];var c=selections[e.id];if(c>=0){var b=d.childNodes;var a=b[c].innerText?b[c].innerText:b[c].textContent;e.value=a}hideAutoComplete(e.id)}function showAutoComplete(b){var c=position(b);var a=boxes[b.id];a.style.left=c.x+"px";a.style.top=c.y+b.offsetHeight+"px";a.style.visibility="visible"}function hideAutoComplete(a){var b=boxes[a];b.style.visibility="hidden";while(b.firstChild){b.removeChild(b.firstChild)}selections[a]=-1}function updateAutoComplete(g,a,k){var j=g.value;if(!document.all){k=a.which}if((k==16)||(k==17)||(k==18)){return}else{if(k==8){var f=getCursorPosition(g);j=j.substring(0,f-1)+j.substring(f)}else{if(k==46){var f=getCursorPosition(g);j=j.substring(0,f)+j.substring(f+1)}else{var f=getCursorPosition(g);var d=String.fromCharCode(k);d=d.toLowerCase();j=j=j.substring(0,f)+d+j.substring(f)}}}var e=lists[g.id];var h=j.length?e.getMatchingCompletions(j):[];var c=boxes[g.id];if(h.length>0){if(c.firstChild){while(c.hasChildNodes()){c.removeChild(c.firstChild)}}else{showAutoComplete(g)}for(var b=0;b<h.length;b++){addMemberCompletion(c,j,h[b],g.id,b)}selections[g.id]=-1}else{if(c.firstChild){hideAutoComplete(g.id)}}}function addMemberCompletion(e,f,b,a,d){var g=document.createElement("DIV");g.fieldId=a;g.index=d;g.className="autoCompletion";var c=new RegExp("(^"+f+")|(\\b"+f+")","g");b=b.replace(c,'<span class="autoCompletionPrefix">'+f+"</span>");g.innerHTML=b;g.onmouseover=mouseOverCompletion;g.onmouseout=mouseOutCompletion;g.onclick=clickCompletion;e.appendChild(g)}function clickCompletion(a){var b=document.getElementById(this.fieldId);selections[b.id]=this.index;insertCompletion(b);focus(b.id);return false}function mouseOverCompletion(c){var a=selections[this.fieldId];if(a>=0){var b=boxes[this.fieldId].childNodes[a];b.className="autoCompletion"}selections[this.fieldId]=this.index;this.className="autoCompletionSelected"}function mouseOutCompletion(a){selections[this.fieldId]=-1;this.className="autoCompletion"}function getCursorPosition(b){var c=0;if(b.selectionStart){c=b.selectionStart}else{if(document.selection){var a=document.selection.createRange();a.moveStart("character",-b.value.length);c=a.text.length}}return c};