/* jquery.navActives version 0.1.1.1 alpha 10/17/2008 stephen rushing copyright 2008 "each" is alterElements.element keyword for each item in the object's selector */ jQuery.fn.navActives = function(options, callback){ var settings = { matchUrl: "http://url/", defaultPages: ["default.aspx", "default.html", "default.htm", "index.html", "zzz.php"], ignorePageAnchors:true, ignoreQueryStrings:true, alterElements: [{element:"each", className:"className"}], rigidity:[1,2], callback:null }; if (options) { jQuery.extend(settings, options); } var jQueryParent = jQuery(this); var activeLinks = []; var highestMatch=0; var objIdx = 0; this.each(function(){ jQueryChild = jQuery(this); var tmpLinkRef = { link:this, rigidity: -1, alterElements:[] }; //get link and highest rigidity match var checkHref; for(r=0;r= highestMatch){ highestMatch = tmpLinkRef.rigidity; } //console.log(this); //console.log(tmpLinkRef.rigidity + " : " +highestMatch); }else{ break; } } if(tmpLinkRef.rigidity>-1){ activeLinks.push(tmpLinkRef); //set elements that need to be altered var tmpAlterEl; for(var ae=0; ae-1){ url1 = url1.replace(settings.defaultPages[dp],"");} if(url2.indexOf(settings.defaultPages[dp])>-1){ url2 = url2.replace(settings.defaultPages[dp],"");} } //remove anchors if specified if(settings.ignorePageAnchors){ var pathRemoveAnchors = /\#.*$/; url1 = url1.replace(pathRemoveAnchors, ""); url2 = url2.replace(pathRemoveAnchors, ""); } //remove query strings if specified if(settings.ignoreQueryStrings){ var pathRemoveQueryStrings = /\?.*$/; url1 = url1.replace(pathRemoveQueryStrings, ""); url2 = url2.replace(pathRemoveQueryStrings, ""); } //split the urls into an array for comparison var pathSplitter = /\/|\?|\#|http:|https:|file:|www\./; url1 = url1.split(pathSplitter); url2 = url2.split(pathSplitter); //remove empty items from urls while(url1.indexOf("")>-1){ url1.remove(url1.indexOf("")); } while(url2.indexOf("")>-1){ url2.remove(url2.indexOf("")); } //console.log(url1 + " : " + url2); //url1 = url1.splice(0, rigidity); //url2 = url2.splice(0, rigidity); if(url1.length<=rigidity || url2<=rigidity){ return false; } //compare and return //console.log((url1[rigidity]==url2[rigidity]) + "\nurl1: " + url1 + "\nurl2: " + url2 + "\nRigidity: "+ rigidity + "\n---------------------------------"); for(var r=rigidity;r>0;r--){ if(url1[r]!=url2[r]){ return false; } } return true; } return(this); }; // Array Remove - By John Resig (MIT Licensed) Array.prototype.remove = function(from, to) { var rest = this.slice((to || from) + 1 || this.length); this.length = from < 0 ? this.length + from : from; return this.push.apply(this, rest); }; /* * Toolbelt Javascript Library * http://toolbelt.js * Created by Stephen Rushing, eSiteful * Compiled Wed 04/01/2009, 15:03:55.14 */ var debugMode=0;var j=jQuery.noConflict();if(!Array.indexOf){Array.prototype.indexOf=function(B){for(var A=0;Athis.length-1){return str}return this.substr(0,A)+B+this.substr(A+1)};if(document.__defineGetter__&&!HTMLElement.outerHTML){HTMLElement.prototype.__defineGetter__("outerHTML",function(){var B=this.parentNode;var A=document.createElement("span");A.appendChild(this);var C=A.innerHTML;B.appendChild(this);delete A;return C})}if(!console){var console={log:function(A){if(debugMode>0){if(document.getElementById("consoleLog")){document.getElementById("consoleLog").value+="\n"+A;document.getElementById("consoleLog").scrollTop=document.getElementById("consoleLog").scrollHeight-document.getElementById("consoleLog").clientHeight}}}};if(!document.getElementById("consoleLog") && debugMode>0){j(document).ready(function(){j("body").append("")})}}function trace(B,A){if(A==null){A=1}if(debugMode>=A){console.log(B)}}function tbelt(){var A=this}window.tb=new tbelt();tbelt.typeOf=tbelt.prototype.typeOf=function(C){var B={Null:function(D){return D===null},Undefined:function(D){return D===undefined},nt:function(D){return(D===null||D===undefined)},Function:function(D){return(typeof (D)==="function")?D.constructor.toString().match(/Function/)!==null:false},String:function(D){return(typeof (D)==="string")?true:(typeof (D)==="object")?D.constructor.toString().match(/string/i)!==null:false},Array:function(D){return(typeof (D)==="object")?D.constructor.toString().match(/array/i)!==null||D.length!==undefined:false},Boolean:function(D){return(typeof (D)==="boolean")?true:(typeof (D)==="object")?D.constructor.toString().match(/boolean/i)!==null:false},Date:function(D){return(typeof (D)==="date")?true:(typeof (D)==="object")?D.constructor.toString().match(/date/i)!==null:false},HTML:function(D){return(typeof (D)==="object")?D.constructor.toString().match(/html/i)!==null:false},Number:function(D){return(typeof (D)==="number")?true:(typeof (D)==="object")?D.constructor.toString().match(/Number/)!==null:false},Object:function(D){return(typeof (D)==="object")?D.constructor.toString().match(/object/i)!==null:false},RegExp:function(D){return(typeof (D)==="object"||typeof (D)==="function")?D.constructor.toString().match(/regexp/i)!==null:false}};for(var A in B){if(B[A](C)){return A.toLowerCase()}}};tbelt.queryString=tbelt.prototype.queryString=function(D,A){if(A==null){A=window.location.href}var B=(/\?(.[^\#]*)\#?/).exec(A);if(B&&B.length>0){B=B[1];if(D&&D.length>0){var C=new RegExp("&?"+D+"=(.[^&$]*)");B=C.exec(B);if(B&&B.length>0){B=B[1]}else{B=""}}}else{B=""}return unescape(B)};tbelt.string=tbelt.prototype.string=function(){};tbelt.string.translate=tbelt.string.prototype.translate=function(F,E,A){var D=F;for(var C=0;C-1){D=D.setCharAt(C,A.charAt(B))}}return D};tbelt.string.multiply=tbelt.string.prototype.multiply=function(C,B){if(B<=0){return""}var A=C;while(B>0){A+=C;B--}return A};tbelt.array=tbelt.prototype.array=function(){};tbelt.array.clean=tbelt.array.prototype.clean=function(B){var C=[];for(var A=0;A0)?D:false};tbelt.object=tbelt.prototype.object=function(){};tbelt.object.queryList=tbelt.object.prototype.queryList=function(C,A){var B=[];for(var E=0;E-1){C=B.replace(window.location.protocol+"//"+window.location.host,"")}else{if(D){C=B.replace(/\/{2,5}/,"/").split("/");C=C.slice(2,C.length).join("/")}}}return C};tbelt.ui=tbelt.prototype.ui=function(B){var A=this;A.defaults={};A.options=j.extend({},A.defaults,B)};tbelt.ui.prototype.Popup=tbelt.ui.Popup=function(C){var A=this;A.defaults={url:"",element:j(""),position:{top:"center",left:"center"},overlay:{element:j(".popup-overlay"),opacity:0.7,color:"",showSpeed:300,hideSpeed:150},zIndex:2000,autoDisplay:false,easyClose:true,newWindow:false};A.options=j.extend(true,{},A.defaults,C);A.content=j("");A.overlay=j("");A.ID="P"+Math.floor(Math.random()*50000);A.create=function(){if(A.options.overlay.element.selector.length==0||j(A.options.overlay.element.selector).length==0){if(j("div.popup-overlay").length==0){j("body").append("")}A.options.overlay.element=j("div.popup-overlay")}else{if(A.options.overlay.element.length==0){A.options.overlay.element=j(A.options.overlay.element.selector)}}A.overlay=A.options.overlay.element;if(A.options.url.length>0){j.ajax({url:A.options.url,data:"",method:"get",error:function(F){},success:function(F){var G=document.createElement("div");G.id=A.ID;G.innerHTML=F;j("body").append(G);A.content=j("div#"+A.ID);A.content.width(A.content.contents().outerWidth());A.content.height(A.content.contents().outerHeight());E();if(A.options.autoDisplay){A.open()}}})}else{if(A.options.element.selector.length>0){if(A.options.element.length>0){A.content=A.options.element}else{A.content=j(A.options.element.selector)}E();if(A.options.autoDisplay){A.open()}}}function E(){A.content.css({display:"none",zIndex:A.options.zIndex+1});A.content.find("a[href*='close(']").each(function(F,G){j(G).attr("confirm",(G.href.indexOf("close(true)")>-1)?true:false);G.href="javascript:void(0)";j(G).click(function(I){var H=(j(I.target).attr("confirm")=="true")?true:false;A.close(H)})})}j(A).trigger("created")};A.close=function(E){if(E!=true){E=false}A.content.css({display:"none"});A.overlay.animate({opacity:0},A.options.overlay.hideSpeed,function(){A.overlay.css({display:"none"});B(true)});A.overlay.unbind("click",A.close);j(window).unbind("keydown",D);j(window).unbind("scroll",A.position);j(A).trigger("closed");if(!E){j(A).trigger("canceled")}else{j(A).trigger("confirmed")}};function D(E){if(E.keyCode==27){A.close(false)}else{if(E.keyCode==13){A.close(true)}}}A.open=function(E){if(E!=null&&E.target!=null){j(E.target).blur()}B(false);A.overlay.css({opacity:0,display:"block"}).animate({opacity:A.options.overlay.opacity},A.options.overlay.showSpeed);A.content.css({display:"block"});if(A.options.easyClose){A.overlay.bind("click",A.close)}j(window).bind("keydown",D);j(A).trigger("opened");A.position()};function B(E){j("embed,object,select").each(function(F,G){if(!E&&j(G).parents(A.content.selector).length==0){j(G).css("visibility","hidden")}else{j(G).css("visibility","visible")}})}A.position=function(G){G=j.extend(A.options.position,G);var E={position:"fixed",top:0,left:0,zIndex:(A.options.zIndex+1)};var F={position:"fixed",top:0,left:0,backgroundColor:A.options.overlay.color,zIndex:A.options.zIndex};A.options.overlay.element.css(F);if(G.top=="center"){E.top=(j(window).height()-A.content.outerHeight())/2}else{if(G.top=="bottom"){E.top=(j(window).height()-A.content.outerHeight())}else{if(G.top=="top"){E.top=0}else{E.top=G.top}}}if(G.left=="center"){E.left=(j(window).width()-A.content.outerWidth())/2}else{if(G.left=="right"){E.left=(j(window).width()-A.content.outerWidth())}else{if(G.left=="left"){E.left=0}else{E.left=G.left}}}if(j.browser.msie&&j.browser.version.indexOf("6.")>-1){E.position="absolute";F.position="absolute";E.top+=j(window).scrollTop();F.top+=j(window).scrollTop();F.height=j(window).height();j(window).scroll(A.position)}if(!G.animate){A.content.css(E);A.overlay.css(F)}else{}j(A).trigger("positioned",A)};A.init=function(){A.create()};j(document).ready(A.init);return A};tbelt.form=tbelt.prototype.form=function(B){var A=this;A.defaults={};A.options=j.extend({},A.defaults,B)};tbelt.form.Handler=tbelt.prototype.form.Handler=function(B){var A=this;A.defaults={form:j(""),fields:[],fieldClassDefault:"input-text",fieldClassError:"input-error",labelClassDefault:"",labelClassError:"",errorMsgContainer:j(""),error:function(C){C.options.errorMsgContainer.css({display:"block"});C.options.errorMsgContainer.html(C.errorMsg)},success:function(C){C.options.form.submit()}};A.options=j.extend({},A.defaults,B);A.form=j("");A.getField=function(D,F){if(F==null){F="name"}var C=new Object();C[F]=D;var E=tbelt.queryList(A.options.fields,C);return tbelt.typeOf(E)=="array"&&E.length>1?E:E[0]};A.addField=function(C){C=j.extend({name:"",expression:null,msg:"",required:false,initValue:null,defaultValue:"",revertTrigger:"blur"},C);C.element=A.form.find("[name='"+C.name+"']");if(C.element.length>0){if(C.element.attr("type")!="radio"&&C.element.attr("type")!="checkbox"){if(C.initValue==null){C.initValue=C.element.val()}else{C.element.val(C.initValue)}C.element.attr("initValue",C.initValue);C.element.focus(function(D){if(j(D.target).val()==j(D.target).attr("initValue")){j(D.target).val("")}});if(C.revertTrigger=="blur"){C.element.blur(function(D){if(j(D.target).val()==""){j(D.target).val(j(D.target).attr("initValue"))}})}}A.options.fields.push(C)}};A.validateField=function(G){var C=true;var F="";if(G.element.attr("type")=="radio"||G.element.attr("type")=="checkbox"){var D=j("input[name='"+G.element.attr("name")+"']:checked");D.each(function(H,I){F+=(H==0)?j(I).val():","+j(I).val()})}else{F=G.element.val()}if(F==G.initValue||F==""||F==null){if(F!=G.initValue){G.element.val(F)}F=(G.defaultValue&&G.defaultValue.length>0)?G.defaultValue:""}if(tbelt.typeOf(G.expression)=="string"&&G.expression.length>0){if(G.expression=="creditcard"){C=A.isCreditCard(F)}else{if(G.expression=="date"){C=A.isDate(F)}else{if(G.expression=="email"){C=A.isEmail(F)}else{if(G.expression=="phone"){C=A.isPhone(F)}else{C=(F==G.expression)}}}}}else{if(tbelt.typeOf(G.expression)=="regexp"){C=G.expression.test(F)}else{if(tbelt.typeOf(G.expression)=="function"){C=G.expression(G.element,G)}}}if(G.required&&C){if(G.element.attr("type")=="checkbox"||G.element.attr("type")=="radio"){C=(G.element[0].checked)?true:false}else{C=(F.length>0)?true:false}}var E=A.form.find("label[for='"+G.element.attr("id")+"']");if(!C){G.element.addClass(A.options.fieldClassError);G.element.removeClass(A.options.fieldClassDefault);E.addClass(A.options.labelClassError);E.removeClass(A.options.labelClassDefault);if(G.msg&&G.msg.length>0){A.errorMsg+="
  • "+G.msg+"
  • "}isValid=false}else{G.element.removeClass(A.options.fieldClassError);G.element.addClass(A.options.fieldClassDefault);E.removeClass(A.options.labelClassError);E.addClass(A.options.labelClassDefault)}return C};A.toQueryString=function(E,C){if(E==null){E=A.form[0]}if(C==null){C=true}var D="";j(E).find("input[type='text'],input[type='hidden'],input[type='radio']:checked,input[type='checkbox']:checked,select,textarea").each(function(F,G){D+=((D.length==0)?"?":"&")+j(G).attr("name")+"="+((C)?escape(j(G).val()):j(G).val())});return D};A.fromQueryString=function(D,C){if(formToConvert==null){formToConvert=A.form[0]}if(escapeResult==null){escapeResult=true}};A.validate=function(){var E=true;A.errorMsg="";for(var D=0;D0){E=false}if(E){A.checkpointField.remove();A.options.success(A)}else{A.errorMsg="
      "+A.errorMsg+"
    ";A.options.error(A)}return E};A.submit=function(){A.form.submit()};A.reset=function(){A.form[0].reset();A.errorMsg="";A.options.errorMsgContainer.html("").css({display:"none"});if(A.options.fieldClassError.length>0){var D=A.form.find("."+A.options.fieldClassError);if(D.length>0){D.removeClass(A.options.fieldClassError)}}if(A.options.labelClassError.length>0){var C=A.form.find("."+A.options.labelClassError);if(C.length>0){C.removeClass(A.options.labelClassError)}}};A.init=function(){A.form=j(A.options.form.selector);if(A.options.errorMsgContainer.selector!=A.defaults.errorMsgContainer.selector){A.options.errorMsgContainer=j(A.options.errorMsgContainer.selector)}else{A.options.errorMsgContainer=j("nothing")}A.reset();A.form.append("");A.checkpointField=A.form.find("input[name='checkpoint']");A.errorMsg="";var D=A.options.fields;A.options.fields=[];for(var C=0;C-1){ var splitUrl = currentUrl.split(/\?|\&|\#/); splitUrl.shift(); for(var qs=0;qs 0 ) { currentPageUrl = j('.tmpNav')[0].href; } //handle the html list in siteNav handleNavigation(); }); function handleNavigation(){ //move the third level j("div#tertiaryNav > div").empty().append(j("div#siteNav ul > li > ul > li > ul,div.utility-nav ul > li > ul").css("display","none")); //move second level j("div#subNav > div").empty().append(j("div#siteNav ul > li > ul").css("display","none")); //higlight main nav var mainNavHighlight = { matchUrl:currentPageUrl, alterElements: [{element:"each", className:"active"}], rigidity:[1,2] }; j("div#siteHeader div.utility-nav a,div#siteNav a").navActives(mainNavHighlight); //higlight secondary nav var subNavHighlight = { matchUrl:currentPageUrl, alterElements: [{element:"each", className:"active"}], rigidity:[2,3] }; j("div#subNav a").navActives(subNavHighlight); //higlight tertiary nav var tertiaryNavHighlight = { matchUrl:currentPageUrl, alterElements: [{element:"each", className:"active"}], rigidity:[3,4,5,6] }; if(j("div.utility-nav a.active").length>0){ tertiaryNavHighlight.rigidity.unshift(2); } j("div.page-left > div.left-inner").prepend(j("div#tertiaryNav")); j("div#tertiaryNav a").navActives(tertiaryNavHighlight); positionSubNavLists(); function positionSubNavLists(){ var subNavDims = {width:j("div#siteNav").outerWidth(), left:j("div#siteNav").offset().left}; j("div#siteNav ul > li").each(function(i,n){ var navItem = j(n); var navItemMid = navItem.offset().left + (navItem.outerWidth()/2); var assSecNav = j("div#subNav ul#sub-"+n.id); var assSecNavWidth = assSecNav.outerWidth(); var mL = Math.floor((navItemMid-subNavDims.left)-(assSecNavWidth/2)); mL-=20; //manual offset; var max = Math.floor((subNavDims.width)-assSecNavWidth); //this value has not been tested properly //trace("\t"+mL + " : " +max); if(mL<0) mL=0; if(mL>max) mL=max; assSecNav.css({marginLeft:mL}); }); } var activeSecondaryList; showActiveSecondaryList(); function showActiveSecondaryList(){ j("div#siteNav a.active").each(function(i,n){ activeSecondaryList = j("ul#sub-"+n.parentNode.id); if(activeSecondaryList.css("display")!="block" || activeSecondaryList.css("opacity")<1){ activeSecondaryList.fadeIn(300); } }); if(activeSecondaryList==null || activeSecondaryList.length==0) activeSecondaryList=j(""); } var activeTertiaryList; showActiveTertiaryList(); function showActiveTertiaryList(){ j("div#subNav a.active,div.utility-nav a.active").each(function(i,n){ activeTertiaryList = j("ul#sub-"+n.parentNode.id); if(activeTertiaryList.length>0){ activeTertiaryList.css("display","block"); j("div#tertiaryNav > div").prepend("

    "+j(n).text()+":

    "); j("div#tertiaryNav").fadeIn(300); } }); } //only do the nav hovers if there is no main nav highlighted if(j("div#siteNav a.active").length==0){ function navRollOver(evt){ var associatedSecondaryNav = j("div#subNav ul#sub-"+evt.target.parentNode.id); hideAllSubNav(associatedSecondaryNav[0]); navResetTimerClear(); if(associatedSecondaryNav.css("display")!="block"){ associatedSecondaryNav.fadeIn(300); } j(evt.target).addClass("hover"); } function navRollOut(evt){ navResetTimerStart(); } var navResetTimer; function navResetTimerStart(){ navResetTimer = setTimeout(navResetTimerFinish, 600); } function navResetTimerClear(){ clearTimeout(navResetTimer); } function navResetTimerFinish(){ hideAllSubNav(activeSecondaryList[0]); showActiveSecondaryList(); } function hideAllSubNav(excludeItem){ j("div#siteNav a,div.utility-nav a").removeClass("hover"); j("div#subNav ul").each(function(i,n){ if(n!=excludeItem){ j(n).hide(0); } }); } j("div#siteNav a,div.utility-nav a").hover(navRollOver, navResetTimerStart); j("div#subNav").hover(navResetTimerClear, navResetTimerStart); } }