d=document;
boolNewFldr=0;

oWNUA=window.navigator.userAgent;

if (oWNUA.indexOf('Gecko/')!=-1||(oWNUA.indexOf('MSIE')!=-1&&oWNUA.indexOf('Mac')==-1)) boolRS=true; 
else boolRS=false;

sEdQS='&updateonly=1';
sDone=(d.doneform)?d.doneform.done.value:location.href;


function addPage() {
var oFormField = d.getElementById('yschadd');
var urlstring ="";
if (oFormField) {
urlstring = oFormField.value;
}
var oForm = d.getElementById('addpageform');
if (!urlstring || urlstring=="http://")  {
var oErrorMsg = d.getElementById('yscherrormsg');
if (!oErrorMsg) {
oErrorMsg = d.createElement('div');
oErrorMsg.className = "error";
oErrorMsg.id = "yscherrormsg";
oErrorMsg.innerHTML = "Error: Please enter a valid URL into the field above. ";
oForm.appendChild(oErrorMsg);
}
} else {
var oErrorMsg = d.getElementById('yscherrormsg');
if (oErrorMsg) {
oForm.removeChild(oErrorMsg);
}
var oWindow = window.open('http://'+ document.domain +'/myresults/bookmarklet?t=none&u='+escape(urlstring),'popup','width=520px,height=420px,status=0,location=0,resizable=1,scrollbars=1,left=100,top=50',0);
}
return false;
}

function hndlClk(poEl,psTitle,psURL,sQueryString) {
var tracking;
boolEdit=false;
if (!sQueryString) sQueryString = '';
if (poEl.href.indexOf('/myresults/block?')!=-1) { //block
return blockResult(poEl);
} else { // save
tracking = 'http://us.rd.yahoo.com/evt=38379/*';
window.open(tracking +'http://'+ document.domain +'/myresults/bookmarklet?t='+escape(psTitle)+'&u='+escape(psURL)+sQueryString,'popup','width=520px,height=420px,status=0,location=0,resizable=1,scrollbars=1,left=100,top=50',0);
return false;
}
return true;
}

function saveResult(poEl, psFldr) {
var oRes=getRes(poEl);
oRes.id=getResIndx(oRes);
oRes.sMode='save';
oRes.sEdUrl=sEdUrl;
oRes.sSaveUrl=poEl.href;
oRes.getAddress=getAddress;
oRes.oAddress=oRes.getAddress();
oRes.getNote=getNote;
oRes.oNote=oRes.getNote();
oRes.oAct=poEl.parentNode.parentNode;
try {oRes.oAct.sOrgDisp=oRes.oAct.currentStyle.display}
catch(e) {oRes.oAct.sOrgDisp=''} // safari weirdness   
oRes.oAct.style.display='none';
oRes.oAct.show=function() {this.style.display = oRes.oAct.sOrgDisp;}
if (!oRes.sFldr)
oRes.sFldr=(psFldr)?psFldr:'';   
oRes.oForm=new PrsForm(oRes.sFldr);      
oRes.insertBefore(oRes.oForm, oRes.oAddress);
if (oRes.oNote) {
oRes.sNote=oRes.oNote.getElementsByTagName('strong')[0].childNodes[0].nodeValue;
oRes.oNote.style.display='none';
oRes.oForm.elements[0].value=oRes.sNote; // TODO: fix IE hack
}
else
oRes.sNote=null;
oRes.oForm.elements[3].onclick=cancelSave; // TODO: fix IE hack
oRes.oForm.elements[0].focus(); /* safari */
if (oRes.oForm.elements[0].select) oRes.oForm.elements[0].select();     
return false;
}

function PrsForm(psFldr) {
var oForm=d.createElement('form');
oForm.onsubmit=hndlSbmt;
var oInput=new Input('ei',d.s.ei.value,'hidden');
var oInput=new Input('d',null,'text',sNoteLbl,'yschinpnote');
var oDiv=d.createElement('div');
oDiv.appendChild(oInput);
oForm.appendChild(oDiv);
var oDiv=d.createElement('div');
var oTags=new Input('tag','','text','Tags','yschintags');
oDiv.appendChild(oTags);
var oInput=new Input('save',sSaveLbl,'submit');
oDiv.appendChild(oInput);   
var oInput=new Input('cancel',sCnclLbl,'button');
oDiv.appendChild(oInput); 
oForm.appendChild(oDiv);
return oForm;
}

function Input(psName,psVal,psType,psLbl,psClass) {
var oInput=d.createElement('input');
oInput.type=psType;
oInput.name=psName;
if (psVal) oInput.value=psVal;
if (psClass) oInput.className=psClass;      
if (psLbl) {
var oLbl=new Label(psLbl);
oLbl.appendChild(oInput);
return oLbl;
}
return oInput;
}

function Label(psLbl) {
var oLbl=d.createElement('label');
var oEm=d.createElement('em');
oEm.appendChild(d.createTextNode(psLbl));
oLbl.appendChild(oEm);
return oLbl;
}

function Select(psName,paOpt,psLbl,psSelected) {
var oSel=d.createElement('select');
oSel.name=psName;
oSel.onchange=newFolder;    
for (i=0;i<paOpt.length;i++) {
oOpt=d.createElement('option');
oOpt.appendChild(d.createTextNode(paOpt[i][0]));
oOpt.value=paOpt[i][1];
if (paOpt[i][0]==psSelected)
oOpt.selected=1;
oSel.appendChild(oOpt);
}
if (psLbl) {
oLbl=new Label(psLbl);
oLbl.appendChild(oSel);
return oLbl;
}   
return oSel;
}

function getAddress() {
var aEl=this.getElementsByTagName('em');
for (i=0;i<aEl.length;i++) {
if (aEl[i].className=='yschurl')
return aEl[i];
}
return false;   
}

function getNote() {
var aEl=this.getElementsByTagName('span');
for (i=0;i<aEl.length;i++) {
if (aEl[i].className.indexOf('yschnote')!=-1)
return aEl[i];
}
return false;
}

function blockResult(poEl) {
var oRes=getRes(poEl);
oRes.id=getResIndx(oRes);
oRes.sMode='block';
oRes.sUnblkUrl=poEl.href.replace(/block\?/,'unblock\?');
sendData(poEl.href+'&jsc='+oRes.id+'&js=1');
return false;
}

function getRes(poEl) {
while (poEl.tagName!='LI')
poEl=poEl.parentNode;
return poEl;
}

function getResIndx(poRes) {
var aRes=poRes.parentNode.getElementsByTagName('li');
for (i=0;i<aRes.length;i++) {
if (aRes[i]==poRes)
return 'yschprsres'+i;
}
return false;
}

function hndlSbmt(poEvt) {
try {
var oEvt=(poEvt)?poEvt:((window.event)?window.event:"");
if (!oEvt) return false;
var oForm=getEventTarget(oEvt);
if (oForm.tagName!='FORM') oForm=oForm.form; // gecko enter key on button
var oRes=oForm.parentNode;
oRes.sNote=oRes.oForm.elements[0].value; // TODO: fix this IE hack
if (!oRes.sNote && oRes.oNote) {
oRes.oNote.parentNode.removeChild(oRes.oNote);
oRes.oNote=0;
} else if (oRes.sNote)
oRes.oNote=1;
sQS=getQS(oForm);
if (boolEdit) sQS+=sEdQS;
if (!boolRS || boolNewFldr) {
location.replace(oRes.sSaveUrl+sQS);   
return false;
}
sQS+='&jsc='+oRes.id+'&js=1';
oForm.parentNode.removeChild(oForm);
oRes.oForm=0;
showFdbk(oRes,sTmpSave);
sendData(oRes.sSaveUrl+sQS);
return false;
}
catch(e) {alert(e)}
}

function newFolder(poEvt) {
var oEvt=(poEvt)?poEvt:((window.event)?window.event:"");
if (!oEvt) return false;
var oSel=getEventTarget(oEvt);
var oRes=getRes(oSel);
if (oSel.value=='--') {
if (!oRes.oFldr) {
oSel.options[0].selected=1;
return false;
}
for (i=0;i<oSel.options.length;i++) {
if (oSel.options[i].text==oRes.sFldr)
oSel.options[i].selected=1;
}
return false;
}
else if (oSel.options[oSel.selectedIndex].text!=sNewFldr)
return false;
var sFName=window.prompt(sNewFldrPrmpt,'');
if (sFName==''||sFName==null) {
if (oRes.sFldr) {
for (i=0;i<oSel.options.length;i++) {
if (oSel.options[i].text==oRes.sFldr)
oSel.options[i].selected=1;
}
} else
oSel.options[0].selected=1;
return false;
}
oSel.options[oSel.selectedIndex].text=sFName;
oInput=new Input('ft',sFName,'hidden');
oRes.oForm.appendChild(oInput);
boolNewFldr=1;      
}

function sendData(psUrl) {
try {
oRS=d.createElement('script');
oRS.src=psUrl;      
d.body.appendChild(oRS);  
}
catch(e) {alert(e)}
}

function cleanup(poRes) {
if (poRes.sMode=='block') {
poRes.innerHTML='';
return;
}
}

function getEventTarget(e) {
return (e.target)?((e.target.nodeType==3)?e.target.parentNode:e.target):e.srcElement;
}

function getQS(poForm) {
var sQS='';
for (i=0;i<poForm.elements.length;i++) {
var oInput=poForm.elements[i];
if (oInput.name=='cancel')
continue;
sQS+='&'+oInput.name+'='+oInput.value.url_escape();
}
return sQS;
}

String.prototype.url_escape = function() {
var sVal=this.replace(/#/g,'%23');
sVal=sVal.replace(/&/g,'%26');
sVal=sVal.replace(/\+/g,'%2B');
return sVal;
}

function cancelSave(poEvt) {
var oEvt=(poEvt)?poEvt:((window.event)?window.event:"");
if (!oEvt) return false; 
var oForm=getEventTarget(oEvt).form;
var oRes=getRes(oForm);
oRes.oAct.show();   
if (oRes.oNote) oRes.oNote.style.display='inline';
oRes.removeChild(oForm);
return false;
}

function hndlRspns(poRes, psMsg) {
svSt();
cleanup(poRes);      
showFdbk(poRes, psMsg);
if (poRes.sNote) {
showNote(poRes);
}
}

function showFdbk(poRes, psMsg) {
if (poRes.oAct) {
poRes.removeChild(poRes.oAct);
poRes.oAct=0;
}
var oAct=d.createElement('div');
oAct.className='yschprs yschfdbk';
oAct.innerHTML=psMsg;
if (poRes.sMode=='save')
poRes.insertBefore(oAct,poRes.oAddress);
else
poRes.appendChild(oAct);
poRes.oAct=oAct;
}

function showNote(poRes) {
var oNote=d.createElement('span');
oNote.className='yschnote';
oNote.innerHTML=sNoteLbl+': <strong>'+poRes.sNote+'</strong>';
var oEdit=d.createElement('em');
oEdit.innerHTML='&nbsp;- <a href='+poRes.sEdUrl+' onclick="return hndlClk(this, \''+poRes.sFldr+'\')">Edit';
poRes.oAct.appendChild(oNote);
poRes.oNote=oNote;
poRes.oAct.appendChild(oEdit);
}

function svSt() {
if (d.doneform&&!d.doneform.restore_state.value) d.doneform.restore_state.value=1;
}

function rstrSt() {
if (d.doneform&&d.doneform.restore_state.value==1) {
location.hash=d.documentElement.scrollTop;
location.reload();  
d.doneform.restore_state.value=2;
}
}

function doScroll() {
var iScrY=location.hash.substr(1);
if (iScrY==0) return false;
window.scrollTo(0,iScrY);
location.hash='0';
}

if (window.addEventListener) {
window.addEventListener('load',rstrSt,false);    
if (location.hash&&!isNaN(location.hash.substr(1))) 
window.addEventListener('load',doScroll,false);     
} else if (window.attachEvent) {
window.attachEvent('onload',rstrSt);
if (location.hash&&!isNaN(location.hash.substr(1))) 
window.attachEvent('onload',doScroll);
}

if (typeof(HTMLElement)!="undefined") {
HTMLElement.prototype.__defineGetter__("currentStyle", function() { return document.defaultView.getComputedStyle(this, null); });
}

function getTargetObj(evt) {
var o = (evt.target) ? ( (evt.target.nodeType == 3) ? evt.target.parentNode : evt.target ) : evt.srcElement;
return o;
}

function hideRcnt() {
tgDisp(d.getElementById('yschrcntdd'),0);
}

function stopBubble(evt) {
var evt = (evt) ? evt : ((window.event) ? window.event : "");
evt.cancelBubble=true;
}




/* SEARCH TAGS */
clearInput_engaged = false;
function myOnTextboxFocus(poThis) {
if (clearInput_engaged) return; 
poThis.style.color="#000";
poThis.value = "";
clearInput_engaged = true;
}


