
var currentReq='';var currentDeleteJob='';var currentlyHighlightedLookupElement=null;function showCommentWidget(){var editingElement=document.getElementById('commentEditWidget');if(editingElement){return;}
showEl('commentAddWidget');var textEl=document.getElementById('commentContent');textEl.focus();textareaCounter('commentContent','commentCounter',0,1000)
scrollToAnchor('submitBtn',450);}
function hideCommentWidget(){hideEl('commentAddWidget');}
function previewEntry(objType,editType){var formEl=document.getElementById('add'+objType+'Form');var oldAction=formEl.action;formEl.action='/preview'+objType;formEl.target='_blank';formEl.submit();formEl.action=oldAction;formEl.target='';}
function hideEl(elOrId){if(typeof elOrId=='string'){elOrId=document.getElementById(elOrId);}
elOrId.style.display='none';elOrId.style.visibility='hidden';}
function showEl(elOrId){if(typeof elOrId=='string'){elOrId=document.getElementById(elOrId);}
elOrId.style.display='block';elOrId.style.visibility='visible';}
function showElInline(elOrId){if(typeof elOrId=='string'){elOrId=document.getElementById(elOrId);}
elOrId.style.display='inline';elOrId.style.visibility='visible';}
function textareaCounter(formElId,resElId,minSize,maxSize){var formEl=document.getElementById(formElId);var resEl=document.getElementById(resElId);if(!formEl||!resEl){return;}
var content=trimString(formEl.value);var contentLength=content.length;var spanClass='textareaLengthGood';if(contentLength<minSize||contentLength>maxSize){spanClass='textareaLengthBad';}
result='<span class="'+spanClass+'">'+contentLength+' characters entered (';if(minSize>0){result+='min allowed: '+minSize+', ';}
result+='max allowed: '+maxSize+')</span>';resEl.innerHTML=result;}
function checkTip(isEditing){if(!checkField('tipTitle',1,100,'Sorry, but a Title is required','The Title you entered is too long')){return false;}
if(!checkField('tipDesc',0,10000,'','The Description you entered is too long')){return false;}
if(!checkField('tipLink',0,200,'','The Link you entered is too long')){return false;}
if(!isEditing){if(!checkCaptcha()){return false;}}
var cat0Entered=checkField('tipCat0',1,20,'','');var cat1Entered=checkField('tipCat1',1,20,'','');var cat2Entered=checkField('tipCat2',1,20,'','');var cat3Entered=checkField('tipCat3',1,20,'','');var cat4Entered=checkField('tipCat4',1,20,'','');if(!cat0Entered&&!cat1Entered&&!cat2Entered&&!cat3Entered&&!cat4Entered){alert('You must enter at least one category');return false;}
if(cat0Entered&&!checkField('tipCat0',3,20,'Categories must be at least 3 characters long','')){return false;}
if(cat1Entered&&!checkField('tipCat1',3,20,'Categories must be at least 3 characters long','')){return false;}
if(cat2Entered&&!checkField('tipCat2',3,20,'Categories must be at least 3 characters long','')){return false;}
if(cat3Entered&&!checkField('tipCat3',3,20,'Categories must be at least 3 characters long','')){return false;}
if(cat4Entered&&!checkField('tipCat4',3,20,'Categories must be at least 3 characters long','')){return false;}
return true;}
function checkComment(isEditing){if(!isEditing){var commentFieldId='commentContent';}else{var commentFieldId='editingCommentContent';}
if(!checkField(commentFieldId,1,1000,'Um... you need to enter a comment first','Um... only 1000 characters are allowed')){return false;}
if(!isEditing){return checkCaptcha();}else{return true;}}
function checkImage(){if(!checkField('imageFile',1,300,'You need to select an image first','Sorry, but the name of this image is too long')){return false;}
var fileName=document.getElementById('imageFile').value;var tempIndex=fileName.lastIndexOf('.');if(tempIndex==-1){alert('Unknown image type. Valid types are: .jpg, .gif, and .png');return false;}
var type=fileName.slice(tempIndex+1).toLowerCase();if(!type||(type!='jpeg'&&type!='jpg'&&type!='gif'&&type!='png')){alert('Unknown image type. Valid types are: .jpg, .gif, and .png');return false;}
hideEl('tipAddWidget');showEl('processing');return true;}
function checkVideo(){if(!checkField('videoId',1,11,'You need to enter a Video ID','The Video ID you entered is too long')){return false;}
hideEl('tipAddWidget');hideEl('tipFormError');showEl('processing');var videoId=document.getElementById('videoId').value;var req=getReqObj();if(req){req.open('GET','/checkVideo?type=yt&videoId='+videoId,false);req.send(null);if(req.responseText=='OK'){window.opener.insertAtCursor(window.opener.document.addTip.description,'[[[VideoId::'+videoId+' Type::yt]]]');window.opener.textareaCounter('tipDesc','tipDescCounter',0,10000);window.opener.showVideoUploadSuccess();self.close();return false;}}
hideEl('processing');showEl('tipAddWidget');showEl('tipFormError');return false;}
function checkCaptcha(){var msg='Humanity verification failed!\n\nAre you sure you are a real person?'
return checkField('captcha',6,6,msg,msg);}
function checkField(elId,minLen,maxLen,minErrMsg,maxErrMsg){var el=document.getElementById(elId);var value=trimString(el.value);var len=value.length
if(len<minLen){if(minErrMsg){alert(minErrMsg);}
return false;}else if(len>maxLen){if(maxErrMsg){alert(maxErrMsg);}
return false;}
return true;}
function getReqObj(){if(window.XMLHttpRequest){var req=new XMLHttpRequest();}else if(window.ActiveXObject){var req=new ActiveXObject("Microsoft.XMLHTTP");}
return req;}
function addTip(){window.location='/addTip';}
function trimString(inString){inString=inString.replace(/^\s+/g,'');return inString.replace(/\s+$/g,'');}
function postSearch(){var criteriaEl=document.getElementById('searchCriteria');if(!criteriaEl){return;}
var criteriaValue=trimString(criteriaEl.value);if(!criteriaEl.value||criteriaEl.value=='*'){return;}
var filterEl=document.getElementById('searchFilter');if(!filterEl){return;}
var filter=filterEl[filterEl.selectedIndex].value;criteriaValue=criteriaValue.replace(/&/g,'{{amp}}');criteriaValue=criteriaValue.replace(/\//g,'{{slash}}');criteriaValue=criteriaValue.replace(/\+/g,'{{plus}}');window.location='/search/'+filter+'/'+encodeURIComponent(criteriaValue);}
function escapeHtml(inString){inString=inString.replace(/&/g,'&amp;');inString=inString.replace(/</g,'&lt;');inString=inString.replace(/</g,'&gt;');inString=inString.replace(/\"/g,'&quot;');inString=inString.replace(/\'/g,'&#039;');return inString;}
function findPos(el){var curLeft=el.offsetLeft;var curTop=el.offsetTop;while(el=el.offsetParent){curLeft+=el.offsetLeft;curTop+=el.offsetTop;}
return[curLeft,curTop];}
function findSize(el){var result=new Array(2);result[0]=el.offsetWidth;if(result[0]==null||result[0]==0){if(el.className.width&&el.className.width!=null){result[0]=parseInt(el.className.width);}else{var tempWidth=getComputedStyleFullproof(el).width;if(tempWidth!=null&&tempWidth!=0){result[0]=parseInt(tempWidth);}}}
result[1]=el.offsetHeight;if(result[1]==null||result[1]==0){if(el.className.height&&el.className.height!=null){result[1]=parseInt(el.className.height);}else{var tempHeight=getComputedStyleFullproof(el).height;if(tempHeight!=null&&tempHeight!=0){result[1]=parseInt(tempHeight);}}}
return(result);}
function tipVote(tipId,vote){var url='/tipVote?tipId='+tipId+'&vote='+vote;var req=getReqObj();if(req){req.onreadystatechange=function(){if(req.readyState==4){var resEl=document.getElementById('tipDetailsContainer');if(resEl&&req.responseText){resEl.innerHTML=req.responseText;Nifty('div.mainContainer,div.outerContainer');}}}
req.open('GET',url,true);req.send(null);}}
function bookmark(id,action,type){var ucType=type.charAt(0).toUpperCase()+type.substring(1);var url='/bookmark'+ucType+'?'+type+'Id='+id+'&action='+action;var req=getReqObj();if(req){req.onreadystatechange=function(){if(req.readyState==4){var resEl=document.getElementById(type+'BookmarkInfo');if(resEl&&req.responseText){resEl.innerHTML=req.responseText;}}}
req.open('GET',url,true);req.send(null);}}
function editTip(tipId){window.location='/editTip?tipId='+tipId;}
function editComment(tipCommentId){var editingElement=document.getElementById('commentEditWidget');if(editingElement){return;}
var addingElement=document.getElementById('commentAddWidget');if(addingElement&&addingElement.style.display=='block'){return;}
var url='/editComment?tipCommentId='+tipCommentId;var req=getReqObj();if(req){req.onreadystatechange=function(){if(req.readyState==4){var resEl=document.getElementById('tipComment'+tipCommentId);if(resEl&&req.responseText){resEl.innerHTML=req.responseText;textareaCounter('editingCommentContent','editingCommentCounter',0,1000);}}}
req.open('GET',url,true);req.send(null);}}
function submitCommentEdit(performEdit){if(performEdit&&!checkComment(true)){return false;}
var idEl=document.getElementById('hiddentTipCommentId')
var id=idEl.value;var commentEl=document.getElementById('editingCommentContent')
var comment=commentEl.value;var url='/editComment2?tipCommentId='+id+'&performEdit='+performEdit+'&comment='+encodeURIComponent(comment);var req=getReqObj();if(req){req.onreadystatechange=function(){if(req.readyState==4){var resEl=document.getElementById('tipComment'+id);if(resEl&&req.responseText){resEl.innerHTML=req.responseText;}}}
req.open('GET',url,true);req.send(null);}}
function getCatOptions(){var optEls=document.getElementsByName('catOption');if(optEls.length>0){return optEls;}
var divEls=document.getElementsByTagName('div');var length=divEls.length
var result=new Array();for(var i=0;i<length;i++){if(divEls[i].name=='catOption'){result.push(divEls[i]);}}
return result;}
function scrollCat(keyPress){var optEls=getCatOptions();var length=optEls.length;if(length==0){return;}
if(currentlyHighlightedLookupElement!=null){optEls[currentlyHighlightedLookupElement].className='opt';}else{currentlyHighlightedLookupElement=-1;}
if(keyPress==38){currentlyHighlightedLookupElement-=1;if(currentlyHighlightedLookupElement<0){currentlyHighlightedLookupElement=length-1;}}else{currentlyHighlightedLookupElement+=1;if(currentlyHighlightedLookupElement>=length){currentlyHighlightedLookupElement=0;}}
optEls[currentlyHighlightedLookupElement].className='optHovered';if(currentlyHighlightedLookupElement>5){optEls[currentlyHighlightedLookupElement-6].scrollIntoView();}else{document.getElementById('catLookupClose').scrollIntoView();}}
function selectCat(){if(currentlyHighlightedLookupElement==null){return;}
var optEls=getCatOptions();var length=optEls.length;if(length==0){return}
var eventText=String(optEls[currentlyHighlightedLookupElement].onclick).replace(/\n/g,' ');var matches=String(eventText).match(/(\{)(.+)(\})/);if(matches&&matches.length==4){currentlyHighlightedLookupElement=null;eval(matches[2]);}}
function clearCatScrollAsNeeded(){if(currentlyHighlightedLookupElement!=null){var optEls=getCatOptions();optEls[currentlyHighlightedLookupElement].className='opt';currentlyHighlightedLookupElement=null;}}
function hideCatLookup(){currentlyHighlightedLookupElement=null;hideEl('catLookupResults');}
function catLookup(el,event){var keyCode=null;if(window.event){keyCode=window.event.keyCode;}else if(event){keyCode=event.which;}
if(keyCode==37&&currentlyHighlightedLookupElement!=null){selectCat();return;}
if(keyCode==40||keyCode==38){scrollCat(keyCode);return;}
var value=trimString(el.value);currentlyHighlightedLookupElement=null;if(value.length>1){performCatLookup(el);}else{hideCatLookup();}}
function catLookupSelect(catId,name){var catEl=document.getElementById(catId);catEl.value=name;catLookup(catEl,null);catEl.focus();}
function catAssocSelect(name){hideCatLookup()
var catEl=document.getElementById('tipCat0');var index=0;while(catEl){if(trimString(catEl.value)==''){catEl.value=name;return;}
index++;catEl=document.getElementById('tipCat'+index);}
alert('There are no empty categories!');}
function hideLookup(){currentDeleteJob=window.setTimeout("hideCatLookup()",500);}
function performCatLookup(el){if(currentDeleteJob){window.clearTimeout(currentDeleteJob);}
if(currentReq){currentReq.abort();hideCatLookup()}
var url='/lookupCat?id='+el.id+'&catFrag='+encodeURIComponent(el.value);var req=getReqObj();if(req){currentReq=req;req.onreadystatechange=function(){if(req.readyState==4){var resultObj=document.getElementById('catLookupResults');if(resultObj){resultObj.innerHTML=req.responseText;showEl(resultObj);positionCatLookup(resultObj,el);}
currentReq='';}}
req.open('GET',url,true);req.send(null);}}
function positionCatLookup(resultEl,catEl){var inputLoc=findPos(catEl);var inputSize=findSize(catEl);var left=inputLoc[0]+inputSize[0]+10;resultEl.style.top=inputLoc[1]+'px';resultEl.style.left=left+'px';}
function addImage(){window.open('/addImage','addImage','width=650, height=200, resizable=yes');return false;}
function addVideo(){window.open('/addVideo','addVideo','width=650, height=200, resizable=yes');return false;}
function insertAtCursor(field,value){if(document.selection){field.focus();var sel=document.selection.createRange();sel.text=value;}else if(field.selectionStart||field.selectionStart=='0'){var startPos=field.selectionStart;var endPos=field.selectionEnd;field.value=field.value.substring(0,startPos)+value+field.value.substring(endPos,field.value.length);}else{field.value+=value;}}
function showImageUploadFailure(){showElInline('hiddenFailure');fadeEl('hiddenFailure',0,5000,100);}
function showImageUploadSuccess(){showElInline('hiddenSuccess');fadeEl('hiddenSuccess',0,5000,100);}
function showVideoUploadSuccess(){showElInline('hiddenVideoSuccess');fadeEl('hiddenVideoSuccess',0,5000,100);}
function fadeEl(elId,step,duration,numSteps){var el=document.getElementById(elId);el.style.opacity=1.0*(numSteps-step)/numSteps+0.25;if(step<numSteps){step++;setTimeout("fadeEl('"+elId+"', "+step+", "+duration+", "+numSteps+")",duration/numSteps);}else{hideEl(el);}}
var niftyOk=(document.getElementById&&document.createElement&&Array.prototype.push);String.prototype.find=function(what){return(this.indexOf(what)>=0?true:false);}
var oldonload=window.onload;if(typeof(NiftyLoad)!='function')NiftyLoad=function(){};if(typeof(oldonload)=='function')
window.onload=function(){oldonload();NiftyLoad()};else window.onload=function(){NiftyLoad()};function Nifty(selector,options){if(niftyOk==false)return;var i,v=selector.split(","),h=0;if(options==null)options="";if(options.find("fixed-height"))
h=getElementsBySelector(v[0])[0].offsetHeight;for(i=0;i<v.length;i++)
Rounded(v[i],options);if(options.find("height"))SameHeight(selector,h);}
function Rounded(selector,options){var i,top="",bottom="",v=new Array();if(options!=""){options=options.replace("left","tl bl");options=options.replace("right","tr br");options=options.replace("top","tr tl");options=options.replace("bottom","br bl");options=options.replace("transparent","alias");if(options.find("tl")){top="both";if(!options.find("tr"))top="left";}
else if(options.find("tr"))top="right";if(options.find("bl")){bottom="both";if(!options.find("br"))bottom="left";}
else if(options.find("br"))bottom="right";}
if(top==""&&bottom==""&&!options.find("none")){top="both";bottom="both";}
v=getElementsBySelector(selector);for(i=0;i<v.length;i++){FixIE(v[i]);if(top!="")AddTop(v[i],top,options);if(bottom!="")AddBottom(v[i],bottom,options);}}
function AddTop(el,side,options){var d=CreateEl("b"),lim=4,border="",p,i,btype="r",bk,color;d.style.marginLeft="-"+getPadding(el,"Left")+"px";d.style.marginRight="-"+getPadding(el,"Right")+"px";if(options.find("alias")||(color=getBk(el))=="transparent"){color="transparent";bk="transparent";border=getParentBk(el);btype="t";}
else{bk=getParentBk(el);border=Mix(color,bk);}
d.style.background=bk;d.className="niftycorners";p=getPadding(el,"Top");if(options.find("small")){d.style.marginBottom=(p-2)+"px";btype+="s";lim=2;}
else if(options.find("big")){d.style.marginBottom=(p-10)+"px";btype+="b";lim=8;}
else d.style.marginBottom=(p-5)+"px";for(i=1;i<=lim;i++)
d.appendChild(CreateStrip(i,side,color,border,btype));el.style.paddingTop="0";el.insertBefore(d,el.firstChild);}
function AddBottom(el,side,options){var d=CreateEl("b"),lim=4,border="",p,i,btype="r",bk,color;d.style.marginLeft="-"+getPadding(el,"Left")+"px";d.style.marginRight="-"+getPadding(el,"Right")+"px";if(options.find("alias")||(color=getBk(el))=="transparent"){color="transparent";bk="transparent";border=getParentBk(el);btype="t";}
else{bk=getParentBk(el);border=Mix(color,bk);}
d.style.background=bk;d.className="niftycorners";p=getPadding(el,"Bottom");if(options.find("small")){d.style.marginTop=(p-2)+"px";btype+="s";lim=2;}
else if(options.find("big")){d.style.marginTop=(p-10)+"px";btype+="b";lim=8;}
else d.style.marginTop=(p-5)+"px";for(i=lim;i>0;i--)
d.appendChild(CreateStrip(i,side,color,border,btype));el.style.paddingBottom=0;el.appendChild(d);}
function CreateStrip(index,side,color,border,btype){var x=CreateEl("b");x.className=btype+index;x.style.backgroundColor=color;x.style.borderColor=border;if(side=="left"){x.style.borderRightWidth="0";x.style.marginRight="0";}
else if(side=="right"){x.style.borderLeftWidth="0";x.style.marginLeft="0";}
return(x);}
function CreateEl(x){return(document.createElement(x));}
function FixIE(el){if(el.currentStyle!=null&&el.currentStyle.hasLayout!=null&&el.currentStyle.hasLayout==false)
el.style.display="inline-block";}
function SameHeight(selector,maxh){var i,v=selector.split(","),t,j,els=[],gap;for(i=0;i<v.length;i++){t=getElementsBySelector(v[i]);els=els.concat(t);}
for(i=0;i<els.length;i++){if(els[i].offsetHeight>maxh)maxh=els[i].offsetHeight;els[i].style.height="auto";}
for(i=0;i<els.length;i++){gap=maxh-els[i].offsetHeight;if(gap>0){t=CreateEl("b");t.className="niftyfill";t.style.height=gap+"px";nc=els[i].lastChild;if(nc.className=="niftycorners")
els[i].insertBefore(t,nc);else els[i].appendChild(t);}}}
function getElementsBySelector(selector){var i,j,selid="",selclass="",tag=selector,tag2="",v2,k,f,a,s=[],objlist=[],c;if(selector.find("#")){if(selector.find(" ")){s=selector.split(" ");var fs=s[0].split("#");if(fs.length==1)return(objlist);f=document.getElementById(fs[1]);if(f){v=f.getElementsByTagName(s[1]);for(i=0;i<v.length;i++)objlist.push(v[i]);}
return(objlist);}
else{s=selector.split("#");tag=s[0];selid=s[1];if(selid!=""){f=document.getElementById(selid);if(f)objlist.push(f);return(objlist);}}}
if(selector.find(".")){s=selector.split(".");tag=s[0];selclass=s[1];if(selclass.find(" ")){s=selclass.split(" ");selclass=s[0];tag2=s[1];}}
var v=document.getElementsByTagName(tag);if(selclass==""){for(i=0;i<v.length;i++)objlist.push(v[i]);return(objlist);}
for(i=0;i<v.length;i++){c=v[i].className.split(" ");for(j=0;j<c.length;j++){if(c[j]==selclass){if(tag2=="")objlist.push(v[i]);else{v2=v[i].getElementsByTagName(tag2);for(k=0;k<v2.length;k++)objlist.push(v2[k]);}}}}
return(objlist);}
function getParentBk(x){var el=x.parentNode,c;while(el.tagName.toUpperCase()!="HTML"&&(c=getBk(el))=="transparent")
el=el.parentNode;if(c=="transparent")c="#FFFFFF";return(c);}
function getBk(x){var c=getStyleProp(x,"backgroundColor");if(c==null||c=="transparent"||c.find("rgba(0, 0, 0, 0)"))
return("transparent");if(c.find("rgb"))c=rgb2hex(c);return(c);}
function getPadding(x,side){var p=getStyleProp(x,"padding"+side);if(p==null||!p.find("px"))return(0);return(parseInt(p));}
function getStyleProp(x,prop){if(x.currentStyle)
return(x.currentStyle[prop]);if(document.defaultView.getComputedStyle)
return(document.defaultView.getComputedStyle(x,'')[prop]);return(null);}
function rgb2hex(value){var hex="",v,h,i;var regexp=/([0-9]+)[, ]+([0-9]+)[, ]+([0-9]+)/;var h=regexp.exec(value);for(i=1;i<4;i++){v=parseInt(h[i]).toString(16);if(v.length==1)hex+="0"+v;else hex+=v;}
return("#"+hex);}
function Mix(c1,c2){var i,step1,step2,x,y,r=new Array(3);if(c1.length==4)step1=1;else step1=2;if(c2.length==4)step2=1;else step2=2;for(i=0;i<3;i++){x=parseInt(c1.substr(1+step1*i,step1),16);if(step1==1)x=16*x+x;y=parseInt(c2.substr(1+step2*i,step2),16);if(step2==1)y=16*y+y;r[i]=Math.floor((x*50+y*50)/100);r[i]=r[i].toString(16);if(r[i].length==1)r[i]="0"+r[i];}
return("#"+r[0]+r[1]+r[2]);}
var scrollInt;var scrTime,scrSt,scrDist,scrDur,scrInt;function findPosY(obj){var curtop=0;if(obj.offsetParent)
while(1){curtop+=obj.offsetTop;if(!obj.offsetParent)
break;obj=obj.offsetParent;}
else if(obj.y)
curtop+=obj.y;return curtop;}
function replaceAnchorLinks(){var anchors,i,targ,targarr;if(!document.getElementById)
return;anchors=document.getElementsByTagName("a");for(i=0;i<anchors.length;i++){if(anchors[i].href.indexOf("#")!=-1){targ=anchors[i].href.substring(anchors[i].href.indexOf("#")+1);targarr=document.getElementById(targ);if(targarr){anchors[i].id="__"+targ;anchors[i].onclick=function(){scrollToAnchor(this.id.substring(2));return false;};}}}}
function scrollPage(){scrTime+=scrInt;if(scrTime<scrDur){window.scrollTo(0,easeInOut(scrTime,scrSt,scrDist,scrDur));}else{window.scrollTo(0,scrSt+scrDist);clearInterval(scrollInt);}}
function scrollToAnchor(aname,offset){var anchors,i,ele,elePosY,heightCorrection;if(offset==null){offset=0;}
if(!document.getElementById)
return;ele=document.getElementById(aname);if(!ele)
return;elePosY=findPosY(ele);heightCorrection=30;if(typeof(window.pageYOffset)=='number'){scrSt=window.pageYOffset;scrDist=elePosY-heightCorrection-scrSt;scrDur=500;}else if(document.documentElement){scrSt=document.documentElement.scrollTop;scrDist=elePosY-scrSt;if(window.XMLHttpRequest){scrDur=500;}else{scrDur=1500;}}else if(document.body&&(document.body.scrollLeft||document.body.scrollTop)){scrSt=document.body.scrollTop;scrDist=elePosY-scrSt;scrDur=500;}
scrDist-=offset;scrTime=0;scrInt=10;clearInterval(scrollInt);scrollInt=setInterval(scrollPage,scrInt);}
function easeInOut(t,b,c,d){return c/2*(1-Math.cos(Math.PI*t/d))+b;}