/*
 * (c) Dynarch.com 2007 | All rights reserved
 *
 * This file is part of TagForge CMS.  Please do not use nor distribute it
 * separately!
 */
(function(){var UA=navigator.userAgent,w=window;w.is_gecko=/gecko/i.test(UA);w.is_opera=/opera/i.test(UA);w.is_ie=/msie/i.test(UA)&&!is_opera&&!(/mac_powerpc/i.test(UA));w.is_ie5=is_ie&&/msie 5\.[^5]/i.test(UA);w.is_mac_ie=/msie.*mac/i.test(UA);w.is_khtml=/Konqueror|Safari|KHTML/i.test(navigator.userAgent);})();var TF={addEvent:function(el,evname,func){if(el.addEventListener)el.addEventListener(evname,func,true);else if(el.attachEvent)el.attachEvent("on"+evname,func);else el["on"+evname]=func;},addEvents:function(el,evs,func){for(var i=evs.length;--i>=0;)TF.addEvent(el,evs[i],func);},removeEvent:function(el,evname,func){if(el.removeEventListener)el.removeEventListener(evname,func,true);else if(el.detachEvent)el.detachEvent("on"+evname,func);else el["on"+evname]="";},removeEvents:function(el,evs,func){for(var i=evs.length;--i>=0;)TF.removeEvent(el,evs[i],func);},stopEvent:function(ev){ev||(ev=window.event);if(is_ie){ev.cancelBubble=true;ev.returnValue=false;}else{ev.preventDefault();ev.stopPropagation();}return false;},isRelatedEvent:function(el,evt){var related=evt.relatedTarget;if(!related){var type=evt.type;if(type=="mouseover"){related=evt.fromElement;}else if(type=="mouseout"){related=evt.toElement;}}if(is_gecko){try{var foo=related.parentNode;}catch(ex){related=evt.parentNode.parentNode;}}while(related){if(related==el){return true;}related=related.parentNode;}return false;},AC:function(el,ac,dc){if(el){if(dc)TF.DC(el,dc);TF.DC(el,ac);el.className+=" "+ac;}},DC:function(el,c){if(el){if(typeof c=="string"){var a=el.className.split(" "),i=a.length;while(--i>=0)if(a[i]==c)a.splice(i,1);el.className=a.join(" ");}else el.className=el.className.replace(c,"");}},HC:function(el,c){var a=el.className.split(/\s+/),i=a.length;while(--i>=0)if(a[i]==c)return true;return false;},at_onLoad:function(handler){TF.addEvent(window,"load",handler);},at_unload:function(handler){TF.addEvent(window,"unload",handler);},$:function(el){if(typeof el=="string")el=document.getElementById(el);return el;},expandTextarea:function(ta){setTimeout(function(){if(ta.scrollTop>0){if(ta.offsetHeight<500){ta.style.height=ta.offsetHeight+ta.scrollTop+"px";}}},1);},_mkSubject:function(subject){if(!subject)return "";if(/^RE\[([0-9]+)\]:\s*(.*)$/i.test(subject)){subject="RE["+(parseInt(RegExp.$1)+1)+"]: "+RegExp.$2;}else if(/^RE:\s*(.*)$/i.test(subject)){subject="RE[2]: "+RegExp.$1;}else{subject="RE: "+subject;}return subject;},reply:function(id,subject,div){subject=TF._mkSubject(subject);var form=TF.$("add-comment");if(!div)div=TF.$("comment"+id);div.parentNode.insertBefore(form,div.nextSibling);TF.$("f_comment_subject").value=subject;TF.$("f_comment_parent").value=id;setTimeout(function(){var el=TF.$("f_comment_sender_name");if(!el||/\S/.test(el.value))el=TF.$("f_comment_subject");el.focus();el.select();},100);},submit:function(button,form){if(!form)form=button.form;var a=form.elements;var problems=[];var first=null;for(var i=a.length;--i>=0;){var el=a[i];var m=el.getAttribute("matches");if(m){var re=eval(m);if(!re.test(el.value)){first=el;TF.AC(el,"validation-error");problems.unshift(el.getAttribute("error")||("Field "+el.name+" is required"));}else{TF.DC(el,"validation-error");}}}if(problems.length>0){alert("Please correct the following problems:\n\n-- "+problems.join("\n-- "));setTimeout(function(){first.focus();},100);}else{button.disabled=true;button.innerHTML="Sending...";if(form.onsubmit)form.onsubmit();form.submit();}return false;},addComment:function(subject){return TF.reply("",subject,TF.$("add-comment-h3"));},flashElement:function(el,steps){if(!el)return;if(!steps)steps=6;var timer=setInterval(function(){--steps;el.style.visibility=(steps&1)?"hidden":"visible";if(steps==0){clearInterval(timer);el.style.visibility="";}},100);}};(function(){var fs={"-1024":"12px","1025-1280":"12px","1281-1400":"1em","1401-1600":"1em","1601-":"1.3em"},w=screen.width,i,s,a,z;for(i in fs){if(/^([0-9]*)-([0-9]*)$/.test(i)){a=RegExp.$1;z=RegExp.$2;if(s=((!a||w>=a)&&(!z||w<=z)&&fs[i])){document.write("<style type='text/css'>body { font-size: "+s+" }</style>");break;}}}function updateUUID(){if(!this.__tf_submitted){this.__tf_submitted=true;var input=document.createElement("input");input.type="hidden";input.name="comment.jsuuid";input.value=TF.$("f_comment_uuid").value;this.appendChild(input);return true;}return false;};TF.at_onLoad(function(){var el;if(/#(.*)$/.test(document.URL)){el=TF.$(RegExp.$1);if(el){TF.AC(el,"current-by-url");if(el.id=="add-comment")TF.addComment();}}el=TF.$("add-comment");if(el){el.onsubmit=updateUUID;}});})();