/** * Global scripts * * @Henry Postulart * @1.0 */ /* Save the developer some typing :) */ var $D = YAHOO.util.Dom; var $E = YAHOO.util.Event; var $M = YAHOO.util.Motion; var $A = YAHOO.util.Anim; var $ = $D.get; // store font size in httpsession. function setFontSize(newSize) { var url = getURIToSetFont() + "?fontSize=" + newSize; YAHOO.util.Connect.asyncRequest('GET', url, null, null); } function buildContactLinks() { if (typeof linkURL != "undefined") { var contactLinks = $D.getElementsByClassName("contactLink","a"); for (var i = 0; i < contactLinks.length; i++) { contactLinks[i].href = linkURL; } } } function buildCustomerServiceLinks() { if (typeof customerServiceURL != "undefined") { var customerServiceLinks = $D.getElementsByClassName("customerServiceLink","a"); for (var i = 0; i < customerServiceLinks.length; i++) { customerServiceLinks[i].href = customerServiceURL; } } } function buildFaqLinks() { if (typeof faqURL != "undefined") { var faqLinks = $D.getElementsByClassName("faqLink","a"); for (var i = 0; i < faqLinks.length; i++) { faqLinks[i].href = faqURL; } } } function initHeaderFooter() { br.header.init(); br.footer.init(); br.header.Forms.init(); } var br = {}; br.footer = { init : function() { // add classname to last element in fat footer var features = $D.getElementsByClassName('features', 'ul'); if (features && features.length>0) { var last = features[features.length - 1].getElementsByTagName('li'); $D.addClass(last[last.length - 1], 'last'); } var boingImages = $D.getElementsByClassName('increase'); for(var i = 0; i < boingImages.length; i++){ var origW = boingImages[i].width; var origH = boingImages[i].height; } this.bodyDIV = document.getElementById("bd"); this.theImages = $D.getElementsByClassName('increase', 'img'); this.boingFactor = 1.5; this.width = origW; this.height = origH; $E.addListener(this.theImages, "mouseover", this.brBoingOver); $E.addListener(this.theImages, "mouseout", this.brBoingOut); }, /*brBoingHelper : function(oEl, dir, amt){ alert(oEl.width); var r = $D.getRegion(oEl); var w = r.right - r.left; var h = r.bottom - r.top; switch (dir.toLowerCase()) { case "up": w *= amt; h *= amt; break; case "dn": w /= amt; h /= amt; break; default: break; } var attributes = { width : {to : w}, height : {to : h} }; return attributes; },*/ brBoingHelper1 : function(oEl, amt, origW, origH){ var r = $D.getRegion(oEl); var attributes = { width : {to : 165}, height : {to : 90} }; return attributes; oEl.clear(); }, brBoingHelper2 : function(oEl, amt,origW, origH){ var r = $D.getRegion(oEl); var attributes = { width : {to : 138}, height : {to : 82} }; return attributes; oEl.clear(); }, brBoingOver : function (e){ var attributes = br.footer.brBoingHelper1(this, br.footer.boingFactor, br.footer.width, br.footer.height); var anim = new YAHOO.util.Anim(this, attributes, 0.5, YAHOO.util.Easing.backOut); anim.animate(); }, brBoingOut : function (e){ var attributes = br.footer.brBoingHelper2(this, br.footer.boingFactor, br.footer.width, br.footer.height); var anim = new YAHOO.util.Anim(this, attributes, 0.5, YAHOO.util.Easing.backOut); anim.animate(); } } br.header = { defaultTextSize : 11, init : function() { this.linkTextLarger = $("textLarger"); this.linkTextNormal = $("textNormal"); this.linkTextSmaller = $("textSmaller"); this.linkPrint = $("triggerPrint"); this.linkPrintForMiddle = $("triggerPrintForMiddle"); $E.addListener(this.linkTextLarger,"click", this.makeTextLarger); $E.addListener(this.linkTextNormal,"click", this.makeTextNormal); $E.addListener(this.linkTextSmaller,"click", this.makeTextSmaller); $E.addListener(this.linkPrint,"click", this.invokePrint); $E.addListener(this.linkPrintForMiddle,"click", this.invokePrint); }, makeTextLarger : function(e) { var currSize = parseInt($D.getStyle(document.body,"fontSize"),10); // IE hack if (isNaN(currSize) && $D.getStyle(document.body,"fontSize").indexOf("small")!=-1) currSize=br.header.defaultTextSize; $D.setStyle(document.body, "fontSize", currSize+1 + "px"); setFontSize(currSize+1); }, makeTextSmaller : function(e) { var currSize = parseInt($D.getStyle(document.body,"fontSize"),10); // IE hack if (isNaN(currSize) && $D.getStyle(document.body,"fontSize").indexOf("small")!=-1) currSize=br.header.defaultTextSize; $D.setStyle(document.body, "fontSize", (currSize-1) + "px"); setFontSize(currSize-1); }, makeTextNormal : function(e) { $D.setStyle(document.body, "fontSize", br.header.defaultTextSize + "px"); setFontSize(br.header.defaultTextSize); }, invokePrint : function(e) { window.print(); $E.stopEvent(e); } } br.header.Forms = { init : function(e){ var wrapper = $('topFormWrap'); var searchBox = $('layerSearch'); var loginBox = $('layerLogin'); var langBox = $('layerLang'); if($D.hasClass(searchBox, 'hide') && $D.hasClass(loginBox, 'hide')&&$D.hasClass(langBox, 'hide')){ $D.addClass(wrapper, 'hide'); } else{ $D.removeClass(wrapper, 'hide'); } this.triggers = $D.getElementsByClassName('trigger', 'a'); $E.addListener(this.triggers,"click", this.brTriggerAction); }, brTriggerAction : function(e){ var wrapper = $('topFormWrap'); var searchBox = $('layerSearch'); var loginBox = $('layerLogin'); var langBox = $('layerLang'); var loginTrigger = $('triggerLogin'); var searchTrigger = $('triggerSearch'); var langTrigger = $('triggerLang'); var uInfo = $('layerLoggedin'); if(this.id == 'triggerSearch'){ if($D.hasClass(searchBox, 'hide')){ $D.removeClass(searchBox, 'hide'); $D.removeClass(wrapper, 'hide'); $D.addClass(searchTrigger, 'arwUp'); $D.addClass(searchBox, 'showing'); if($D.hasClass(loginBox, 'showing') || $D.hasClass(langBox, 'showing')){ $D.replaceClass(loginBox, 'showing', 'hide'); $D.replaceClass(langBox, 'showing', 'hide'); $D.removeClass(loginTrigger, 'arwUp'); $D.removeClass(langTrigger, 'arwUp'); } //$D.addClass(uInfo, 'shiftDown'); } else{ $D.addClass(searchBox, 'hide'); $D.removeClass(searchTrigger, 'arwUp'); $D.removeClass(uInfo, 'shiftDown'); } } if(this.id == 'triggerLogin'){ if($D.hasClass(loginBox, 'hide')){ $D.removeClass(loginBox, 'hide'); $D.removeClass(wrapper, 'hide'); $D.addClass(loginTrigger, 'arwUp'); $D.addClass(loginBox, 'showing'); if($D.hasClass(searchBox, 'showing') || $D.hasClass(langBox, 'showing')){ $D.replaceClass(searchBox, 'showing', 'hide'); $D.replaceClass(langBox, 'showing', 'hide'); $D.removeClass(langTrigger, 'arwUp'); $D.removeClass(searchTrigger, 'arwUp'); } } else{ $D.addClass(loginBox, 'hide'); $D.removeClass(loginTrigger, 'arwUp'); } } if(this.id == 'triggerLang'){ if($D.hasClass(langBox, 'hide')){ $D.removeClass(langBox, 'hide'); $D.removeClass(wrapper, 'hide'); $D.addClass(langTrigger, 'arwUp'); $D.addClass(langBox, 'showing'); if($D.hasClass(loginBox, 'showing') || $D.hasClass(searchBox, 'showing')){ $D.replaceClass(loginBox, 'showing', 'hide'); $D.replaceClass(searchBox, 'showing', 'hide'); $D.removeClass(loginTrigger, 'arwUp'); $D.removeClass(searchTrigger, 'arwUp'); } } else{ $D.addClass(langBox, 'hide'); $D.removeClass(langTrigger, 'arwUp'); } } if($D.hasClass(searchBox, 'hide') && $D.hasClass(loginBox, 'hide')&& $D.hasClass(langBox, 'hide')){ $D.addClass(wrapper, 'hide'); } } }; function resizeProgressBarContainer() { var container = $('progressBarContainer'); var mask = $('progressBarMask'); var bar = $('xpbar_frame'); if (container && mask && bar) { // reset sizes so doc measurements don't include masking elements $D.setStyle(container, 'height', 0 + 'px'); $D.setStyle(container, 'width', 0 + 'px'); $D.setStyle(mask, 'top', 0 + 'px'); $D.setStyle(mask, 'height', 0 + 'px'); $D.setStyle(mask, 'width', 0 + 'px'); // calc doc sizes var pbct = $D.getDocumentScrollTop(); var pbch = $D.getDocumentHeight(); var pbcl = $D.getDocumentScrollLeft(); var pbcw = $D.getDocumentWidth(); // resize masking elements $D.setStyle(container, 'height', pbch + 'px'); $D.setStyle(container, 'width', pbcw + 'px'); $D.setStyle(mask, 'height', pbch + 'px'); $D.setStyle(mask, 'width', pbcw + 'px'); // reposition progress bar container to center of visible page var h = parseInt($D.getStyle(bar,'height'), 10); var w = parseInt($D.getStyle(bar,'width'), 10); t = parseInt((($D.getClientHeight() - h) / 2), 10); l = parseInt((($D.getClientWidth() - w) / 2), 10); $D.setStyle(bar, 'top', parseInt(pbct + t, 10) + 'px'); $D.setStyle(bar, 'left', parseInt(pbcl + l, 10) + 'px'); } } // Set up event handlers when the DOM is ready YAHOO.util.Event.addListener(window, "load", function() {initHeaderFooter(); buildContactLinks(); buildCustomerServiceLinks(); buildFaqLinks(); resizeProgressBarContainer(); }); // set up progress bar event handlers YAHOO.util.Event.addListener(window, "resize", function() { resizeProgressBarContainer(); }); YAHOO.util.Event.addListener(window, "scroll", function() { resizeProgressBarContainer(); }); /* Following two functions used to query browser url for ?var1=value1&var2=value2 */ function PageQuery(q) { if (q.length > 1) this.q = q.substring(1, q.length); else this.q = null; this.keyValuePairs = new Array(); if (q) { for (var i=0; i < this.q.split("&").length; i++) { this.keyValuePairs[i] = this.q.split("&")[i]; } } this.getKeyValuePairs = function() { return this.keyValuePairs; } this.getValue = function(s) { for(var j=0; j < this.keyValuePairs.length; j++) { if (this.keyValuePairs[j].split("=")[0] == s) return this.keyValuePairs[j].split("=")[1]; } return false; } this.getParameters = function() { var a = new Array(this.getLength()); for (var j=0; j < this.keyValuePairs.length; j++) { a[j] = this.keyValuePairs[j].split("=")[0]; } return a; } this.getLength = function() { return this.keyValuePairs.length; } } function queryString(key) { var page = new PageQuery(window.location.search); return unescape(page.getValue(key)); } function randomNumberGenerator() { return (new Date()).getTime(); }