/* 
  SMH Custom extension 
      VERSION: 1.0  
    CHANGELOG: 
      20071207 - Updated to Mootools v1.2 syntax 
               - Removed need for countless plugins by creating custom versions. 
               - Compressed file 
      20080111 - Updated Fader to use a display:none class on the li rather than scroll the whole ul left or right. 
      20080310 - Added Advertisement Metadata 
      20080507 - Removed Advertisement Metadata 
	  20080722 - Added routines for comment form (validation, display toggle) 
	  20080930 - Added functions for poll 
	  20081112 - Added filter to not add hooks to static version of cN-groupNavigator 
	  20081117 - Added toggler code for manually initiated horizontal toggle wofs (Europa skin) 
	  20081217 - Added generic rotator code 
	  20090123 - Added stylesheet switcher 
	  20090206 - Added function 'resetToggler' as supplied by Behrang 
	  20090309 - Added function '_initSearchBox' for masthead search box 
	  20090312 - Fix rotateList function 
	  20090319 - Added function '_initWofToggle' 
	  20090330 - Updated 'Low vision' to 'High contrast' 
	  20090501 - Added function '_initTagCloud' 
	  20090514 - Added function '_initSocialCommenting' 
	  20090528 - Updated 'initSearchBox' to attach to elements with classes instead of ids 
	  20090602 - Removed function '_initShareLinks' 
*/ 
var siteAdvertDesc={redir:"/adredirect.html?ad="};if(window.FD){if(window.Fx&&Fx.Styles){Fx.Morph=Fx.Styles}if(!window.Client&&window.Browser){Client=Browser}FD.smhage=new Class({options:{aSHeight:366,duration:250,classCurrent:"current"},initialize:function(){this._initSearchBox();this._initSlider();this._initQuotes();this._initAllSections();this._initTabs();this._initFormValidation();this._initShowCommentForm();this._initNavigators();this._initMatchingSections();this._initPoll();this._initToggler();
this._initRotator(".rotator");this._initStylesheetSwitcher();this._initWofToggle();this._initTagCloud();this._initSocialCommenting()},_initSearchBox:function(){var C=$$("ul.ddown");if(!C){return }for(var B=0,A=C.length;B<A;B++){C[B].addEvent("click",this.ddown.bindWithEvent(this,C[B]));C[B].addEvent("mouseleave",this.closeDdown.bindWithEvent(this,C[B]))}},ddown:function(E,D){if(E&&E.target){var A=$(E.target);E.stop();if(A.get("href")){A=A.getParent()}var B=A.getElement("ul");if(B){if(B.getStyle("display")=="block"){D.removeClass("open")
}else{D.addClass("open")}return }var C=A.getChildren("a").get("text");A.getParent().getParent().getChildren("a").set("text",C);D.removeClass("open");D.getParent().getChildren("input[name='ss']").set("value",C)}},closeDdown:function(B,A){A.removeClass("open");return },_initQuotes:function(){var A=$("masthead");if(A){A=A.getElements("blockquote");var B=(A.length>1)?Math.floor(Math.random()*(A.length)+1)-1:0;if(A[B]){A[B].setStyles({display:"block",visibility:"visible"})}}},_initAllSections:function(){var A=$("allSections");
var C=$("allSectionsWrap");var B=$("allSectionsContent");if(A&&C&&B){this.options.aSOpenText=A.innerHTML;A.addEvent("click",this.toggleAllSections.bindWithEvent(this));C.empty().innerHTML=B.innerHTML}},getASW:function(){return $("allSectionsWrap")},toggleAllSections:function(B){new Event(B).stop();var A=this.getASW();if(A&&!this.asChanging){if(A.getStyle("height").toInt()==0){this.openAllSections(A)}else{this.closeAllSections(A)}}},openAllSections:function(B){this.asChanging=true;B.setStyle("border-width","1px 1px 1px 1px");
var A=new Fx.Morph(B,$extend(this.options,{onComplete:this.allSectionsComplete.bind(this)}));A.start({height:[0,this.options.aSHeight]})},closeAllSections:function(B){this.asChanging=true;var A=new Fx.Morph(B,$extend(this.options,{onComplete:this.allSectionsComplete.bind(this,B)}));A.start({height:[this.options.aSHeight,0]})},allSectionsComplete:function(A){if(A){this.asChanging=false;var B=A.innerHTML;if(A.getStyle("height").toInt()!=this.options.aSHeight){A.empty().innerHTML=B.replace(/Hide/ig,"Show");
A.setStyle("border-width","1px 0 0 0")}else{A.empty().innerHTML=B.replace(/Show/ig,"Hide")}}},_initSlider:function(){this.sliderPos=0;var A=$("woffRotator_parent");if(A){this.slCount=A.getElements("li").length;this.addSliderTimeout();A.addEvent("mouseover",function(){$clear(this.sliderTimeout)}.bind(this));A.addEvent("mouseleave",this.addSliderTimeout.bind(this));A.getElements("a.fdScrollPrevItem").addEvent("click",this._moveSlider.bind(this,-1));A.getElements("a.fdScrollNextItem").addEvent("click",this._moveSlider.bind(this,1))
}},_moveSlider:function(A){if(!this.sliding&A){this.sliding=true;var B=new Fx.Morph($("woffRotator_holder"),$merge(this.options,{duration:550,onComplete:this._moveSliderComplete.bind(this,A)})).start({opacity:0})}},_moveSliderComplete:function(B){var C=this.sliderPos+B;var F=0;var E=$("woffRotator");var A=E.getElements("li");A[this.sliderPos].removeClass(this.options.classCurrent);if(C==this.slCount){C=0}else{if(C<0){C=this.slCount-1}}this.sliderPos=C;A[this.sliderPos].addClass(this.options.classCurrent);
var D=new Fx.Morph($("woffRotator_holder"),$merge(this.options,{duration:450,onComplete:this._setFadeComplete.bind(this)})).start({opacity:1})},_setFadeComplete:function(){this.sliding=false},addSliderTimeout:function(){this.sliderTimeout=this._moveSlider.periodical(7000,this,1)},_initToggler:function(){var B=$$(".woffToggler");this.aTogglers=[];if(B){for(var A=0,C=B.length;A<C;A++){B[A].addEvent("click",this._toggleList.create({bind:this,event:true,arguments:B[A]}));this.aTogglers.push(B[A].id);
B[A].removeClass("accessibleToggler");B[A].left=0;B[A].elementsPerScreen=3;B[A].liCount=B[A].getElements("div ul").getElements("li")[0].length;B[A].width=291}}},_toggleList:function(C,B){if(C&&C.target&&$(B.id)){var A=$(C.target);if(A.href&&A.href.test("#$")){new Event(C).stop()}if(!A.href){A=A.getFirst()}if(!A){return }var E=A.getParent().className;var D=$(B.id).getElement("div ul");if(E.test("previous")){A.getParent().getParent().getElements("li.next").removeClass("hidden");B.left+=B.width;if(B.left>=0){A.getParent().addClass("hidden")
}else{A.getParent().removeClass("hidden")}}if(E.test("next")){A.getParent().getParent().getElements("li.previous").removeClass("hidden");B.left-=B.width;if(B.left<=-((Math.ceil(B.liCount/B.elementsPerScreen)-1)*B.width)){A.getParent().addClass("hidden")}else{A.getParent().removeClass("hidden")}}new Fx.Morph(D,{duration:550}).start({left:B.left})}},_initRotator:function(B){var C=$$(B);this.aTogglers=[];if(C){for(var A=0,D=C.length;A<D;A++){C[A].addEvent("click",this._rotateList.create({bind:this,event:true,arguments:C[A]}));
this.aTogglers.push(C[A].id);C[A].removeClass("accessibleRotator");C[A].liCount=C[A].getElements("[class*='tab']").length;C[A].currentElement=1}}},_rotateList:function(D,C){if(D&&D.target){var A=$(D.target);if(A.href&&A.href.test("#$")){new Event(D).stop()}if(!A.getParent().className.test("previous")&&!A.getParent().className.test("next")){return }var E=A.getParent().className;var B=C.currentElement;if(E.test("previous")){C.currentElement-=1;if(C.currentElement==0){C.currentElement=C.liCount}}if(E.test("next")){C.currentElement+=1;
if(C.currentElement>C.liCount){C.currentElement=1}}C.getElement(".tab"+C.currentElement).addClass("selected");C.getElement(".tab"+B).removeClass("selected")}},_initTabs:function(){var B=$$("ul.cN-tabBox");this.tabIDs=[];if(B){for(var A=0,C=B.length;A<C;A++){B[A].addEvent("click",this._swapTab.create({bind:this,event:true,arguments:B[A].id}));this.tabIDs.push(B[A].id);B[A].removeClass("accessibleTab")}}},_swapTab:function(C,D){if(C&&C.target&&$(D)){var A=$(C.target);if(A.href.test("#$")){new Event(C).stop()
}if(!A.href){A=A.getFirst()}if(!A||A.getParent().tagName!="H4"){return }var B=$(D).getChildren().removeClass("selected");A.getParent().getParent().addClass("selected")}},_initFormValidation:function(){var C=$$("form.validate-form");if(C){for(var E=0,G=C.length;E<G;E++){var B=C[E].getElements(".validate");for(var D=0,A=B.length;D<A;D++){this.assignEvent(B[D])}var F=C[E].getElement("li.submit").getElements(".valDisabled");for(var D=0,A=F.length;D<A;D++){F[D].disabled=true}C[E].removeClass("accessibleComment")
}}},assignEvent:function(A){A.addEvent("blur",this.validate.bind(this,A));A.isValid=false},validate:function(H){var A=H.className.split(" ");myregexp=/^val\w+/;var B=new Array();for(var C=0,E=A.length;C<E;C++){if(A[C].test(myregexp)){B.push(A[C])}}var F=["valRequired","valAlpha","valNumber","valEmail"];var I=true;var G=false;H.valRequired=(B.indexOf("valRequired")==-1)?false:true;for(var D=0,E=F.length;D<E;D++){if(B.indexOf(F[D])!=-1){G=this[F[D]](H);I=(I&&G)}}if((H.valRequired==false)&&(this.valRequired(H)==false)){I=true
}H.isValid=I;this.toggleErrorMessage(H,I)},valRequired:function(A){if(A.value==""||A.value==null){A.isEmpty=true;return false}return true},valAlpha:function(A){var B=/^([\w\xc0-\xff](\s)?)+$/;if(!A.value.test(B)){return false}return true},valNumber:function(A){var C=A.value;if(isNaN(C)||C==""){return false}var B=/^([0-9])+$/;if(!C.test(B)){return false}return true},valEmail:function(B){var D=B.value;if(D.length>0){var G=D.indexOf("@");if(G>0){var H=D.lastIndexOf("@");if(G==H){var C=D.substr(0,H+1);
var F=/^([a-zA-Z0-9_\.\-\+])+\@/;if(!F.test(C)){return false}}else{return false}}else{return false}var E=D.substr(D.indexOf("@")+1,D.length);var A=/^(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})$/;if(!A.test(E)){return false}return true}else{return false}},toggleErrorMessage:function(D,B){var F=D.getParent().getElement("span.error");if(F){if(B==true){F.removeClass("errorSelected")}else{F.addClass("errorSelected")}}var G=D.getParent().getParent().getElement("li.submit").getElement(".valDisabled");var C=D.getParent("form").getElements("input.validate");
var A=true;for(var E=0,H=C.length;E<H;E++){A=(A&&C[E].isValid)}G.disabled=(!A)},_initShowCommentForm:function(){var A=$("comments");if(A){A.addEvent("click",this.toggleForm.bindWithEvent(this))}},toggleForm:function(C){var B=$(C.target);if(C&&B){if(B.hasClass("showForm")){var A=$("makeComment");if(A){A.removeClass("hide");$("comments").getElements("a.remove").addClass("hide")}}}},_initNavigators:function(){var C=$$("div.cN-groupNavigator");if(C){for(var A=0,B=C.length;A<B;A++){if(C[A].className.indexOf("static")==-1){C[A].addEvent("click",this._toggleNavigator.create({bind:this,event:true,arguments:C[A]}));
C[A].removeClass("accessible")}}}},_toggleNavigator:function(C,B){if(C&&C.target&&B){var A=$(C.target);if(A&&(((A.tagName=="A")&&(A.getParent().tagName=="H4"))||((A.tagName=="SPAN")&&(A.getParent().getParent().tagName=="H4")))){new Event(C).stop();if(B.className.indexOf("open")==-1){B.addClass("open")}else{B.removeClass("open")}window.fireEvent("expandingNavigator");return }if(A&&(A.getParent().className.indexOf("more")!=-1)){new Event(C).stop();this.toggleLI(A)}if(A&&(A.getParent().getParent().tagName=="OL")){new Event(C).stop();
A.getParent("ol.selected").addClass("hide");A.getParent("div").addClass("open")}window.fireEvent("expandingNavigator")}},toggleLI:function(A){var B=A.getParent("ul").getElements("li.hide");if(B.length>0){B.removeClass("hide");B.addClass("show");this.toggleHTML(A);A.getParent().addClass("less");return }B=A.getParent("ul").getElements("li.show");if(B.length>0){B.removeClass("show");B.addClass("hide");this.toggleHTML(A);A.getParent().removeClass("less")}},resetToggler:function(A){A.liCount=A.getElements("div ul").getElements("li")[0].length;
var B=$(A.id).getElement("div ul");B.setStyle("left","0");A.left=0;if(A.liCount<A.elementsPerScreen){A.getElement("ul.nav").addClass("hidden")}else{A.getElement("ul.nav").removeClass("hidden")}A.getElement("li.previous").addClass("hidden");A.getElement("li.next").removeClass("hidden")},toggleHTML:function(A){var B=A.innerHTML;if(B.indexOf("More")!=-1){A.innerHTML=B.replace("More","Less");return }if(B.indexOf("Less")!=-1){A.innerHTML=B.replace("Less","More");return }if(B.indexOf("more")!=-1){A.innerHTML=B.replace("more","less");
return }if(B.indexOf("less")!=-1){A.innerHTML=B.replace("less","more");return }if(B.indexOf("Set")!=-1){A.innerHTML=B.replace("Set","Close");return }if(B.indexOf("Close")!=-1){A.innerHTML=B.replace("Close","Set");return }},_initMatchingSections:function(){var C=$$("div.cT-matchingSections");if(C){for(var A=0,B=C.length;A<B;A++){C[A].addEvent("click",this._toggleNavigator.create({bind:this,event:true,arguments:C[A]}));C[A].removeClass("accessible")}}},_initPoll:function(){var A=$$("div.cS-poll form");
if(A){for(var B=0,C=A.length;B<C;B++){A[B].addEvent("submit",this.verifyPollForm.create({bind:this,event:true,arguments:A[B]}));A[B].removeClass("accessible")}}},verifyPollForm:function(B,C){var D=false;for(var A=0;A<C.length;A++){if(C[A].checked){D=true}}if(!D){alert("Please select an answer before voting.");new Event(B).stop()}},_initStylesheetSwitcher:function(){var A=$("vision");if(A){A.addEvent("click",this._swapCSS.bind(this))}},_swapCSS:function(G){if(G&&G.target){var A=$(G.target);G.stop();
if(A.get("href")){A=A.getParent()}var B=A.getFirst();var D="High contrast";var C=$$("head link");var F=(B.get("text")==D)?false:true;var E;for(i=0;(o=C[i]);i++){if("alternate stylesheet"===o.getAttribute("rel")&&(E=o.getAttribute("title"))){o.disabled=true;if(F==false){o.disabled=(E!==D);B.set("text","Normal contrast")}else{o.disabled=(E==D);B.set("text","High contrast")}}}}},_initWofToggle:function(){var A=$$("div.fdVideoWof");var B=A.length;if(B>0){for(var C=0;C<B;C++){var D=A[C].getElement("h4").getElement("span");
if(D){D.innerHTML='<a href="#">'+D.innerHTML+"</a>";D.addEvent("click",this._showWoff.bindWithEvent(this,A[C]))}A[C].removeClass("accessibleWof")}}},_showWoff:function(C,B){if(C&&C.target){C.stop();var A=B.getElement("p").getStyle("position");if(A=="absolute"){B.getElement("p").setStyle("position","static")}else{B.getElement("p").setStyle("position","absolute")}}},_initTagCloud:function(){var A=$$(".cS-tagCloud");if(A.length<1){return }A.each(function(F){var C=F.getElements(".cloud");if(C.length<1){var H=new Array();
F.getElements("ol li").each(function(J,I){H.push(J.clone().addClass("weight-"+(I+1)))});H.sort(function(J,I){aa=String(J.get("text")).toLowerCase();bb=String(I.get("text")).toLowerCase();if(aa>bb){return 1}else{if(aa<bb){return -1}else{return 0}}});var D=new Element("ul",{"class":"cloud"});H.each(function(I){D.appendChild(I)});F.appendChild(D)}var E=new Element("a",{href:"javascript:void(0);",text:"Tag cloud",events:{click:function(){this.getParent(".cS-tagCloud").removeClass("display-list").addClass("display-cloud")
}}});var G=E.clone().set("text","List").addEvent("click",function(){this.getParent(".cS-tagCloud").removeClass("display-cloud").addClass("display-list")});var B=new Element("ul",{"class":"controller"});B.appendChild(new Element("li",{"class":"cCloud"})).appendChild(E);B.appendChild(new Element("li",{"class":"cList"})).appendChild(G);B.inject(F.getElements("h3")[0],"after")})},_initSocialCommenting:function(){var E=$$("div.cT-socialCommenting");if(E.length==0){return }for(var C=0,B=E.length;C<B;C++){E[C].removeClass("accessibleSocialComment");
var A=E[C].getElement("h4");if(A){A.addEvent("click",this._toggleElem.create({bind:this,event:true,arguments:[E[C],"ol"]}));this._addCloseButton(E[C],"ol")}var D=E[C].getElement("p.tellFriends");if(D){D.addEvent("click",this._toggleElem.create({bind:this,event:true,arguments:[E[C],"ul"]}));this._addCloseButton(E[C],"ul")}}},_toggleElem:function(D,C,B){var A=C.getElement(B);if(A.getStyle("left")=="0px"){A.removeClass("show")}else{A.addClass("show");var E=A.getElement(".close");E.addEvent("click",function(F){F.stop();
A.removeClass("show")})}},_addCloseButton:function(C,B){var D=new Element("a",{href:"javascript:void(0);",text:"Close"});var A=C.getElement(B);A.appendChild(new Element("li",{"class":"close"})).appendChild(D)}});var smhage;function initSMHAGE(){smhage=new FD.smhage()}FD.register("SMHAGE")};
