function addSafariBrowserExtension(){Object.extend({Safari:navigator.userAgent.indexOf("Gecko")>-1&&navigator.userAgent.indexOf("KHTML")>-1&&navigator.userAgent.indexOf("Safari")>-1&&navigator.userAgent.indexOf("Mobile")==-1},Prototype.Browser);}addSafariBrowserExtension();

var performance={webTrendsDynamicInsertNormal:true,webTrendsStaticInsertNormal:true};

var EventDisabler={eventsToDisable:[],disablingBoundHandle:null,disableEventHandler:function(evt){if(evt){evt.stop();}return(false);},disableAllEvents:function(){if(EventDisabler.eventsToDisable&&EventDisabler.eventsToDisable.length>0){EventDisabler.disablingBoundHandle=EventDisabler.disableEventHandler.bindAsEventListener(EventDisabler);for(var idx=0,len=EventDisabler.eventsToDisable.length;idx<len;++idx){document.observe(EventDisabler.eventsToDisable[idx],EventDisabler.disablingBoundHandle);}}},allowAllEvents:function(){if(EventDisabler.eventsToDisable&&EventDisabler.eventsToDisable.length>0){for(var idx=0,len=EventDisabler.eventsToDisable.length;idx<len;++idx){document.stopObserving(EventDisabler.eventsToDisable[idx],EventDisabler.disablingBoundHandle);}}}};EventDisabler.disableAllEvents();document.observe("dom:loaded",EventDisabler.allowAllEvents);

var Lightbox={lightboxType:null,lightboxCurrentContentID:null,showBoxString:function(content,boxWidth,boxHeight){this.setLightboxDimensions(boxWidth,boxHeight);this.lightboxType="string";var contents=$("boxContents");contents.innerHTML=content;this.showBox();return false;},showBoxImage:function(href){this.lightboxType="image";var contents=$("boxContents");var objImage=document.createElement("img");objImage.setAttribute("id","lightboxImage");contents.appendChild(objImage);imgPreload=new Image();imgPreload.onload=function(){objImage.src=href;Lightbox.showBox();};imgPreload.src=href;return false;},showBoxByID:function(id,boxWidth,boxHeight){this.lightboxType="id";this.lightboxCurrentContentID=id;this.setLightboxDimensions(boxWidth,boxHeight);var element=$(id);var contents=$("boxContents");contents.appendChild(element);Element.show(id);this.showBox();return false;},showBoxByAJAX:function(href,boxWidth,boxHeight){this.lightboxType="ajax";this.setLightboxDimensions(boxWidth,boxHeight);var contents=$("boxContents");var myAjax=new Ajax.Updater(contents,href,{method:"get"});this.showBox();return false;},setLightboxDimensions:function(width,height){var windowSize=this.getPageDimensions();if(width){if(width<windowSize[0]){$("box").style.width=width+"px";}else{$("box").style.width=(windowSize[0]-50)+"px";}}if(height){if(height<windowSize[1]){$("box").style.height=height+"px";}else{$("box").style.height=(windowSize[1]-50)+"px";}}},showBox:function(){if((Prototype.Browser.Gecko)&&(navigator.userAgent.toLowerCase().indexOf("mac")!=-1)){$("overlay").addClassName("use-png-transparency-instead");}else{$("overlay").setStyle({opacity:0.5});}Element.show("overlay");this.center("box");return false;},hideBox:function(){var contents=$("boxContents");if(this.lightboxType=="id"){var body=document.getElementsByTagName("body").item(0);Element.hide(this.lightboxCurrentContentID);body.appendChild($(this.lightboxCurrentContentID));}contents.innerHTML="";$("box").style.width=null;$("box").style.height=null;Element.hide("box");Element.hide("overlay");return false;},getPageDimensions:function(){var xScroll,yScroll;if(window.innerHeight&&window.scrollMaxY){xScroll=document.body.scrollWidth;yScroll=window.innerHeight+window.scrollMaxY;}else{if(document.body.scrollHeight>document.body.offsetHeight){xScroll=document.body.scrollWidth;yScroll=document.body.scrollHeight;}else{xScroll=document.body.offsetWidth;yScroll=document.body.offsetHeight;}}var windowWidth,windowHeight;if(self.innerHeight){windowWidth=self.innerWidth;windowHeight=self.innerHeight;}else{if(document.documentElement&&document.documentElement.clientHeight){windowWidth=document.documentElement.clientWidth;windowHeight=document.documentElement.clientHeight;}else{if(document.body){windowWidth=document.body.clientWidth;windowHeight=document.body.clientHeight;}}}if(yScroll<windowHeight){pageHeight=windowHeight;}else{pageHeight=yScroll;}if(xScroll<windowWidth){pageWidth=windowWidth;}else{pageWidth=xScroll;}arrayPageSize=new Array(windowWidth,windowHeight,pageWidth,pageHeight);
return arrayPageSize;},center:function(element){try{element=document.getElementById(element);}catch(e){return ;}var windowSize=this.getPageDimensions();var window_width=windowSize[0];var window_height=windowSize[1];$("overlay").style.height=windowSize[3]+"px";element.style.position="absolute";element.style.zIndex=25000;var scrollY=0;if(document.documentElement&&document.documentElement.scrollTop){scrollY=document.documentElement.scrollTop;}else{if(document.body&&document.body.scrollTop){scrollY=document.body.scrollTop;}else{if(window.pageYOffset){scrollY=window.pageYOffset;}else{if(window.scrollY){scrollY=window.scrollY;}}}}var elementDimensions=Element.getDimensions(element);var setX=(window_width-elementDimensions.width)/2;var setY=(window_height-elementDimensions.height)/2+scrollY;setX=(setX<0)?0:setX;setY=(setY<0)?0:setY;element.style.left=setX+"px";element.style.top=setY+"px";Element.show(element);},init:function(){var lightboxtext='<div id="overlay" style="display:none"></div>';lightboxtext+='<div id="box" style="display:none">';lightboxtext+='<div id="boxContents"></div>';lightboxtext+="</div>";var body=document.getElementsByTagName("body").item(0);new Insertion.Bottom(body,lightboxtext);}};

(function(){function wheel(event){var realDelta;if(event.wheelDelta){realDelta=event.wheelDelta/120;}else{if(event.detail){realDelta=-event.detail/3;}}if(!realDelta){return ;}var customEvent=event.element().fire("mouse:wheel",{delta:realDelta});if(customEvent.stopped){event.stop();}}document.observe("mousewheel",wheel);document.observe("DOMMouseScroll",wheel);})();

var StringUtils={NUMERIC_ONLY_REGEX:new RegExp(/^\d+$/),ALPHA_ONLY_REGEX:new RegExp(/^\D+$/),NUMERIC_ZERO:"0".charCodeAt(0),NUMERIC_NINE:"9".charCodeAt(0),isEmpty:function(inStr){if(inStr&&inStr.length>0){return(false);}return(true);},isNotEmpty:function(inStr){if(inStr&&inStr.length>0){return(true);}return(false);},isValidEmail:function(email){var reg=/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;if(false==reg.test(email)){return false;}return true;},isNotEmptyCompare:function(inStr,compStr){if(inStr&&compStr){var inStrLen=inStr.length;var compStrLen=compStr.length;if(inStrLen>0&&compStrLen>0&&inStrLen==compStrLen){if(inStr==compStr){return(true);}}}return(false);},isValidFileUrl:function(inStr,extLength){if(inStr&&inStr.length&&inStr.length>0&&extLength>=3){var perIdx=inStr.lastIndexOf(".");if(perIdx!=-1){var fileUrlSub=inStr.substring(perIdx+1);if(fileUrlSub&&fileUrlSub.length==extLength){return(true);}}}return(false);},containsNumericCharsOnly:function(inStr){if(!StringUtils.isEmpty(inStr)){return(inStr.match(StringUtils.NUMERIC_ONLY_REGEX));}return(false);},containsAlphaCharsOnly:function(inStr){if(!StringUtils.isEmpty(inStr)){return(inStr.match(StringUtils.ALPHA_ONLY_REGEX));}return(false);},parseFrontInt:function(inStr){if(!StringUtils.isEmpty(inStr)){if(StringUtils.containsNumericCharsOnly(inStr)){return(parseInt(inStr));}else{if(!StringUtils.containsAlphaCharsOnly(inStr)){var fndIdx=0;for(var idx=0,len=inStr.length;idx<len;++idx){var curCharCode=inStr.charCodeAt(idx);if(curCharCode<StringUtils.NUMERIC_ZERO||curCharCode>StringUtils.NUMERIC_NINE){fndIdx=idx;break;}}if(fndIdx>0){return(parseInt(inStr.substring(0,fndIdx)));}}}}return(NaN);},sanitizeString:function(inStr){if(!inStr||inStr.length<=0){return(null);}var modStr=inStr;modStr=modStr.stripScripts(modStr);modStr=modStr.stripTags(modStr);modStr=modStr.strip();return(modStr);},stripStringUpToFirstOccurrence:function(inStr,occ){if(!inStr||!occ||inStr.length<=0||occ.length!=1){return(null);}var firstIdx=inStr.indexOf(occ);if(firstIdx==-1){return(inStr);}return(inStr.substring(firstIdx+1));},stripStringUpToLastOccurrence:function(inStr,occ){if(!inStr||!occ||inStr.length<=0||occ.length!=-1){return(null);}var lastIdx=inStr.lastIndexOf(occ);if(lastIdx==-1){return(inStr);}return(inStr.substring(lastIdx+1));},stripStringFromFront:function(inStr,stripStr){if(!inStr||!stripStr||inStr.length<=0||stripStr.length<=0){return(null);}var startIdx=inStr.indexOf(stripStr);if(startIdx==-1){return(inStr);}return(inStr.substring(startIdx+stripStr.length+1));},stripStringFromBack:function(inStr,stripStr){if(!inStr||!stripStr||inStr.length<=0||stripStr.length<=0){return(null);}var lastIdx=inStr.lastIndexOf(stripStr);if(lastIdx==-1){return(inStr);}return(inStr.substring(0,lastIdx));},endsWith:function(inStr,suffixStr){if(!inStr||!suffixStr||inStr.length<=0||suffixStr.length<=0){return false;}var lastIdx=inStr.lastIndexOf(suffixStr);if(lastIdx==-1){return false;}return true;},isBlackberryIdentifier:function(blackberryIdentifier){var blackberryIdentifierFormat=/[a-fA-F0-9]/;
if(blackberryIdentifier.length!=8){return false;}else{var i=0;while(i<8){var currentString=blackberryIdentifier.charAt(i);if(!blackberryIdentifierFormat.test(currentString)){return false;break;}i++;}}return true;}};

var URLUtils={getUrlParameter:function(paramName){if(!paramName){return(null);}var winLocRef=window.location.href;if(!winLocRef){return(null);}var srchMap=URLUtils.getUrlParameterMap();if(!srchMap){return(null);}var paramValue=srchMap.get(paramName);if(!paramValue){return(null);}return(paramValue);},getUrlParameterMap:function(urlSearchString){var srchString=(urlSearchString)?urlSearchString:URLUtils.getUrlSearchString(null);if(!srchString){return(null);}return($H(srchString.toQueryParams()));},getUrlSearchString:function(urlString){var searchString=(urlString)?urlString:window.location.search;if(!searchString){return(null);}var questionMarkIdx=searchString.indexOf("?");var srchRet=null;if(questionMarkIdx!=-1){srchRet=searchString.substring(questionMarkIdx+1);}return(srchRet);},stripUrlHost:function(urlString){if(!urlString){return(urlString);}var stripStr=URLUtils.getUrlHost();if(!stripStr){return(urlString);}var stripIdx=urlString.indexOf(stripStr);if(stripIdx==-1){return(urlString);}var strippedUrl=urlString.substring(stripIdx+stripStr.length);if(!strippedUrl){return(urlString);}return(strippedUrl);},getUrlHost:function(){var hostStr=window.location.host;if(!hostStr){return(null);}var protocolStr=window.location.protocol;if(!protocolStr){return(null);}var urlHost=protocolStr+"//"+hostStr;return(urlHost);},getCurrentUrl:function(bStripHost){var curUrl=window.location.href;if(!curUrl){return(null);}if(bStripHost==true){curUrl=URLUtils.stripUrlHost(curUrl);}return(curUrl);},getCurrentUrlPath:function(bStripHost){var curUrlPath=window.location.pathname;if(!curUrlPath){return(null);}if(bStripHost==true){curUrlPath=URLUtils.stripUrlHost(curUrlPath);}return(curUrlPath);},getCurrentUrlToContextOnly:function(contextName){var curUrlPath=URLUtils.getCurrentUrlPath(false);if(!contextName||contextName.length==0){return(curUrlPath);}var ctxIdx=curUrlPath.indexOf(contextName);var rtPath=curUrlPath;if(ctxIdx!=-1){ctxIdx+=contextName.length;rtPath=curUrlPath.substring(0,ctxIdx);}return(rtPath);},getUrlPath:function(curUrl,bStripHost){if(!curUrl){return(null);}var curUrlQuestionIdx=curUrl.indexOf("?");var urlNoParams=curUrl;if(curUrlQuestionIdx>-1){urlNoParams=urlNoParams.substring(0,curUrlQuestionIdx);}if(bStripHost){urlNoParams=URLUtils.stripUrlHost(urlNoParams);}return(urlNoParams);},isHTTPSEnabled:function(){var winProt=window.location.protocol;if(!winProt){return(false);}if(winProt.indexOf("https:")!=-1){return(true);}return(false);},isJSPInUrl:function(url,jspName){if(StringUtils.isEmpty(url)||StringUtils.isEmpty(jspName)){return(false);}if(url.indexOf(jspName)!=-1){return(true);}return(false);},isJSPInCurrentUrl:function(jspName){if(StringUtils.isEmpty(jspName)){return(false);}var currentUrl=URLUtils.getCurrentUrlPath(true);var jspUrlVal=URLUtils.isJSPInUrl(currentUrl,jspName);return(jspUrlVal);},redirectToUrl:function(relativeUrl,bMakeAbsolute){if(StringUtils.isEmpty(relativeUrl)){return(false);}var urlSearchStr=URLUtils.getUrlSearchString(relativeUrl);var strippedUrl=URLUtils.getUrlPath(relativeUrl,true);
if(!strippedUrl){return(false);}if(strippedUrl.indexOf("/")!=0){strippedUrl="/"+strippedUrl;}if(bMakeAbsolute==true){var fullHost=URLUtils.getUrlHost();if(fullHost){return(false);}if(fullHost.indexOf("/")==fullHost.length-1){fullHost=fullHost.substring(0,fullHost.length-2);}if(StringUtils.isEmpty(fullHost)){return(false);}strippedUrl=fullHost+strippedUrl;}if(!StringUtils.isEmpty(urlSearchStr)){strippedUrl=strippedUrl+"?"+urlSearchStr;}window.location=strippedUrl;return(true);},encode:function(string){return escape(this._utf8_encode(string));},decode:function(string){return this._utf8_decode(unescape(string));},_utf8_encode:function(string){string=string.replace(/\r\n/g,"\n");var utftext="";for(var n=0;n<string.length;n++){var c=string.charCodeAt(n);if(c<128){utftext+=String.fromCharCode(c);}else{if((c>127)&&(c<2048)){utftext+=String.fromCharCode((c>>6)|192);utftext+=String.fromCharCode((c&63)|128);}else{utftext+=String.fromCharCode((c>>12)|224);utftext+=String.fromCharCode(((c>>6)&63)|128);utftext+=String.fromCharCode((c&63)|128);}}}return utftext;},_utf8_decode:function(utftext){var string="";var i=0;var c=c1=c2=0;while(i<utftext.length){c=utftext.charCodeAt(i);if(c<128){string+=String.fromCharCode(c);i++;}else{if((c>191)&&(c<224)){c2=utftext.charCodeAt(i+1);string+=String.fromCharCode(((c&31)<<6)|(c2&63));i+=2;}else{c2=utftext.charCodeAt(i+1);c3=utftext.charCodeAt(i+2);string+=String.fromCharCode(((c&15)<<12)|((c2&63)<<6)|(c3&63));i+=3;}}}return string;},getInternetExplorerVersion:function(){var rv=-1;if(navigator.appName=="Microsoft Internet Explorer"){var ua=navigator.userAgent;var re=new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})");if(re.exec(ua)!=null){rv=parseFloat(RegExp.$1);}}return rv;},isIE8:function(){var ver=URLUtils.getInternetExplorerVersion();if(ver>-1){if(ver>=8){return true;}else{return false;}}return false;},isIE7:function(){var ver=URLUtils.getInternetExplorerVersion();if(ver>-1){if(ver>=7&&ver<8){return true;}}return false;},isIE6:function(){var ver=URLUtils.getInternetExplorerVersion();if(ver>-1){if(ver>=6&&ver<7){return true;}}return false;}};

var FormUtils={getFormById:function(formId){if(!formId||formId.length<=0){return(null);}var fndForm=null;if(document&&document.forms&&document.forms.length>0){for(idx=0,len=document.forms.length;idx<len;++idx){var curForm=document.forms[idx];if(curForm&&curForm.id){if(curForm.id==formId){fndForm=curForm;break;}}}}return(fndForm);},getFormByName:function(formName){if(!formName||formName.length<=0){return(null);}var fndForm=null;if(document&&document.forms&&document.forms.length>0){for(idx=0,len=document.forms.length;idx<len;++idx){var curForm=document.forms[idx];if(curForm&&curForm.name){if(curForm.name==formName){fndForm=curForm;break;}}}}return(fndForm);},setDeviceFormData:function(devId,devName){if(devId==null||StringUtils.isEmpty(devName)){return ;}var devInputElt=$("device-input-container");if(devInputElt){devInputElt.writeAttribute("value",devId);}var devConfElt=$("device-conf-container");if(devConfElt){devConfElt.writeAttribute("value","true");}var devConfNameElt=$("device-conf-name");if(devConfNameElt){devConfNameElt.writeAttribute("value",devName);}}};

var CSSUtils={bindElementsToHandleMethod:function(cssSelector,handleMethodBinding,eventStr){if(!cssSelector||!handleMethodBinding||!eventStr){return ;}var cssSelectArr=$$(cssSelector);if(cssSelectArr&&cssSelectArr.length>0){for(var idx=0,len=cssSelectArr.length;idx<len;++idx){var curElt=cssSelectArr[idx];if(!curElt){continue;}curElt.observe(eventStr,handleMethodBinding);}}}};

String.prototype.parseColor=function(){var color="#";if(this.slice(0,4)=="rgb("){var cols=this.slice(4,this.length-1).split(",");var i=0;do{color+=parseInt(cols[i]).toColorPart();}while(++i<3);}else{if(this.slice(0,1)=="#"){if(this.length==4){for(var i=1;i<4;i++){color+=(this.charAt(i)+this.charAt(i)).toLowerCase();}}if(this.length==7){color=this.toLowerCase();}}}return(color.length==7?color:(arguments[0]||this));};Element.collectTextNodes=function(element){return $A($(element).childNodes).collect(function(node){return(node.nodeType==3?node.nodeValue:(node.hasChildNodes()?Element.collectTextNodes(node):""));}).flatten().join("");};Element.collectTextNodesIgnoreClass=function(element,className){return $A($(element).childNodes).collect(function(node){return(node.nodeType==3?node.nodeValue:((node.hasChildNodes()&&!Element.hasClassName(node,className))?Element.collectTextNodesIgnoreClass(node,className):""));}).flatten().join("");};Element.setContentZoom=function(element,percent){element=$(element);element.setStyle({fontSize:(percent/100)+"em"});if(Prototype.Browser.WebKit){window.scrollBy(0,0);}return element;};Element.getInlineOpacity=function(element){return $(element).style.opacity||"";};Element.forceRerendering=function(element){try{element=$(element);var n=document.createTextNode(" ");element.appendChild(n);element.removeChild(n);}catch(e){}};var Effect={_elementDoesNotExistError:{name:"ElementDoesNotExistError",message:"The specified DOM element does not exist, but is required for this effect to operate"},Transitions:{linear:Prototype.K,sinoidal:function(pos){return(-Math.cos(pos*Math.PI)/2)+0.5;},reverse:function(pos){return 1-pos;},flicker:function(pos){var pos=((-Math.cos(pos*Math.PI)/4)+0.75)+Math.random()/4;return pos>1?1:pos;},wobble:function(pos){return(-Math.cos(pos*Math.PI*(9*pos))/2)+0.5;},pulse:function(pos,pulses){pulses=pulses||5;return(((pos%(1/pulses))*pulses).round()==0?((pos*pulses*2)-(pos*pulses*2).floor()):1-((pos*pulses*2)-(pos*pulses*2).floor()));},spring:function(pos){return 1-(Math.cos(pos*4.5*Math.PI)*Math.exp(-pos*6));},none:function(pos){return 0;},full:function(pos){return 1;}},DefaultOptions:{duration:1,fps:100,sync:false,from:0,to:1,delay:0,queue:"parallel"},tagifyText:function(element){var tagifyStyle="position:relative";if(Prototype.Browser.IE){tagifyStyle+=";zoom:1";}element=$(element);$A(element.childNodes).each(function(child){if(child.nodeType==3){child.nodeValue.toArray().each(function(character){element.insertBefore(new Element("span",{style:tagifyStyle}).update(character==" "?String.fromCharCode(160):character),child);});Element.remove(child);}});},multiple:function(element,effect){var elements;if(((typeof element=="object")||Object.isFunction(element))&&(element.length)){elements=element;}else{elements=$(element).childNodes;}var options=Object.extend({speed:0.1,delay:0},arguments[2]||{});var masterDelay=options.delay;$A(elements).each(function(element,index){new effect(element,Object.extend(options,{delay:index*options.speed+masterDelay}));
});},PAIRS:{"slide":["SlideDown","SlideUp"],"blind":["BlindDown","BlindUp"],"appear":["Appear","Fade"]},toggle:function(element,effect){element=$(element);effect=(effect||"appear").toLowerCase();var options=Object.extend({queue:{position:"end",scope:(element.id||"global"),limit:1}},arguments[2]||{});Effect[element.visible()?Effect.PAIRS[effect][1]:Effect.PAIRS[effect][0]](element,options);}};Effect.DefaultOptions.transition=Effect.Transitions.sinoidal;Effect.ScopedQueue=Class.create(Enumerable,{initialize:function(){this.effects=[];this.interval=null;},_each:function(iterator){this.effects._each(iterator);},add:function(effect){var timestamp=new Date().getTime();var position=Object.isString(effect.options.queue)?effect.options.queue:effect.options.queue.position;switch(position){case"front":this.effects.findAll(function(e){return e.state=="idle";}).each(function(e){e.startOn+=effect.finishOn;e.finishOn+=effect.finishOn;});break;case"with-last":timestamp=this.effects.pluck("startOn").max()||timestamp;break;case"end":timestamp=this.effects.pluck("finishOn").max()||timestamp;break;}effect.startOn+=timestamp;effect.finishOn+=timestamp;if(!effect.options.queue.limit||(this.effects.length<effect.options.queue.limit)){this.effects.push(effect);}if(!this.interval){this.interval=setInterval(this.loop.bind(this),15);}},remove:function(effect){this.effects=this.effects.reject(function(e){return e==effect;});if(this.effects.length==0){clearInterval(this.interval);this.interval=null;}},loop:function(){var timePos=new Date().getTime();for(var i=0,len=this.effects.length;i<len;i++){this.effects[i]&&this.effects[i].loop(timePos);}}});Effect.Queues={instances:$H(),get:function(queueName){if(!Object.isString(queueName)){return queueName;}return this.instances.get(queueName)||this.instances.set(queueName,new Effect.ScopedQueue());}};Effect.Queue=Effect.Queues.get("global");Effect.Base=Class.create({position:null,start:function(options){function codeForEvent(options,eventName){return((options[eventName+"Internal"]?"this.options."+eventName+"Internal(this);":"")+(options[eventName]?"this.options."+eventName+"(this);":""));}if(options&&options.transition===false){options.transition=Effect.Transitions.linear;}this.options=Object.extend(Object.extend({},Effect.DefaultOptions),options||{});this.currentFrame=0;this.state="idle";this.startOn=this.options.delay*1000;this.finishOn=this.startOn+(this.options.duration*1000);this.fromToDelta=this.options.to-this.options.from;this.totalTime=this.finishOn-this.startOn;this.totalFrames=this.options.fps*this.options.duration;eval("this.render = function(pos){ "+'if (this.state=="idle"){this.state="running";'+codeForEvent(this.options,"beforeSetup")+(this.setup?"this.setup();":"")+codeForEvent(this.options,"afterSetup")+'};if (this.state=="running"){'+"pos=this.options.transition(pos)*"+this.fromToDelta+"+"+this.options.from+";"+"this.position=pos;"+codeForEvent(this.options,"beforeUpdate")+(this.update?"this.update(pos);":"")+codeForEvent(this.options,"afterUpdate")+"}}");
this.event("beforeStart");if(!this.options.sync){Effect.Queues.get(Object.isString(this.options.queue)?"global":this.options.queue.scope).add(this);}},loop:function(timePos){if(timePos>=this.startOn){if(timePos>=this.finishOn){this.render(1);this.cancel();this.event("beforeFinish");if(this.finish){this.finish();}this.event("afterFinish");return ;}var pos=(timePos-this.startOn)/this.totalTime,frame=(pos*this.totalFrames).round();if(frame>this.currentFrame){this.render(pos);this.currentFrame=frame;}}},cancel:function(){if(!this.options.sync){Effect.Queues.get(Object.isString(this.options.queue)?"global":this.options.queue.scope).remove(this);}this.state="finished";},event:function(eventName){if(this.options[eventName+"Internal"]){this.options[eventName+"Internal"](this);}if(this.options[eventName]){this.options[eventName](this);}},inspect:function(){var data=$H();for(property in this){if(!Object.isFunction(this[property])){data.set(property,this[property]);}}return"#<Effect:"+data.inspect()+",options:"+$H(this.options).inspect()+">";}});Effect.Parallel=Class.create(Effect.Base,{initialize:function(effects){this.effects=effects||[];this.start(arguments[1]);},update:function(position){this.effects.invoke("render",position);},finish:function(position){this.effects.each(function(effect){effect.render(1);effect.cancel();effect.event("beforeFinish");if(effect.finish){effect.finish(position);}effect.event("afterFinish");});}});Effect.Tween=Class.create(Effect.Base,{initialize:function(object,from,to){object=Object.isString(object)?$(object):object;var args=$A(arguments),method=args.last(),options=args.length==5?args[3]:null;this.method=Object.isFunction(method)?method.bind(object):Object.isFunction(object[method])?object[method].bind(object):function(value){object[method]=value;};this.start(Object.extend({from:from,to:to},options||{}));},update:function(position){this.method(position);}});Effect.Event=Class.create(Effect.Base,{initialize:function(){this.start(Object.extend({duration:0},arguments[0]||{}));},update:Prototype.emptyFunction});Effect.Opacity=Class.create(Effect.Base,{initialize:function(element){this.element=$(element);if(!this.element){throw (Effect._elementDoesNotExistError);}if(Prototype.Browser.IE&&(!this.element.currentStyle.hasLayout)){this.element.setStyle({zoom:1});}var options=Object.extend({from:this.element.getOpacity()||0,to:1},arguments[1]||{});this.start(options);},update:function(position){this.element.setOpacity(position);}});Effect.Move=Class.create(Effect.Base,{initialize:function(element){this.element=$(element);if(!this.element){throw (Effect._elementDoesNotExistError);}var options=Object.extend({x:0,y:0,mode:"relative"},arguments[1]||{});this.start(options);},setup:function(){this.element.makePositioned();this.originalLeft=parseFloat(this.element.getStyle("left")||"0");this.originalTop=parseFloat(this.element.getStyle("top")||"0");if(this.options.mode=="absolute"){this.options.x=this.options.x-this.originalLeft;this.options.y=this.options.y-this.originalTop;
}},update:function(position){this.element.setStyle({left:(this.options.x*position+this.originalLeft).round()+"px",top:(this.options.y*position+this.originalTop).round()+"px"});}});Effect.MoveBy=function(element,toTop,toLeft){return new Effect.Move(element,Object.extend({x:toLeft,y:toTop},arguments[3]||{}));};Effect.Scale=Class.create(Effect.Base,{initialize:function(element,percent){this.element=$(element);if(!this.element){throw (Effect._elementDoesNotExistError);}var options=Object.extend({scaleX:true,scaleY:true,scaleContent:true,scaleFromCenter:false,scaleMode:"box",scaleFrom:100,scaleTo:percent},arguments[2]||{});this.start(options);},setup:function(){this.restoreAfterFinish=this.options.restoreAfterFinish||false;this.elementPositioning=this.element.getStyle("position");this.originalStyle={};["top","left","width","height","fontSize"].each(function(k){this.originalStyle[k]=this.element.style[k];}.bind(this));this.originalTop=this.element.offsetTop;this.originalLeft=this.element.offsetLeft;var fontSize=this.element.getStyle("font-size")||"100%";["em","px","%","pt"].each(function(fontSizeType){if(fontSize.indexOf(fontSizeType)>0){this.fontSize=parseFloat(fontSize);this.fontSizeType=fontSizeType;}}.bind(this));this.factor=(this.options.scaleTo-this.options.scaleFrom)/100;this.dims=null;if(this.options.scaleMode=="box"){this.dims=[this.element.offsetHeight,this.element.offsetWidth];}if(/^content/.test(this.options.scaleMode)){this.dims=[this.element.scrollHeight,this.element.scrollWidth];}if(!this.dims){this.dims=[this.options.scaleMode.originalHeight,this.options.scaleMode.originalWidth];}},update:function(position){var currentScale=(this.options.scaleFrom/100)+(this.factor*position);if(this.options.scaleContent&&this.fontSize){this.element.setStyle({fontSize:this.fontSize*currentScale+this.fontSizeType});}this.setDimensions(this.dims[0]*currentScale,this.dims[1]*currentScale);},finish:function(position){if(this.restoreAfterFinish){this.element.setStyle(this.originalStyle);}},setDimensions:function(height,width){var d={};if(this.options.scaleX){d.width=width.round()+"px";}if(this.options.scaleY){d.height=height.round()+"px";}if(this.options.scaleFromCenter){var topd=(height-this.dims[0])/2;var leftd=(width-this.dims[1])/2;if(this.elementPositioning=="absolute"){if(this.options.scaleY){d.top=this.originalTop-topd+"px";}if(this.options.scaleX){d.left=this.originalLeft-leftd+"px";}}else{if(this.options.scaleY){d.top=-topd+"px";}if(this.options.scaleX){d.left=-leftd+"px";}}}this.element.setStyle(d);}});Effect.Highlight=Class.create(Effect.Base,{initialize:function(element){this.element=$(element);if(!this.element){throw (Effect._elementDoesNotExistError);}var options=Object.extend({startcolor:"#ffff99"},arguments[1]||{});this.start(options);},setup:function(){if(this.element.getStyle("display")=="none"){this.cancel();return ;}this.oldStyle={};if(!this.options.keepBackgroundImage){this.oldStyle.backgroundImage=this.element.getStyle("background-image");
this.element.setStyle({backgroundImage:"none"});}if(!this.options.endcolor){this.options.endcolor=this.element.getStyle("background-color").parseColor("#ffffff");}if(!this.options.restorecolor){this.options.restorecolor=this.element.getStyle("background-color");}this._base=$R(0,2).map(function(i){return parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16);}.bind(this));this._delta=$R(0,2).map(function(i){return parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i];}.bind(this));},update:function(position){this.element.setStyle({backgroundColor:$R(0,2).inject("#",function(m,v,i){return m+((this._base[i]+(this._delta[i]*position)).round().toColorPart());}.bind(this))});},finish:function(){this.element.setStyle(Object.extend(this.oldStyle,{backgroundColor:this.options.restorecolor}));}});Effect.ScrollTo=function(element){var options=arguments[1]||{},scrollOffsets=document.viewport.getScrollOffsets(),elementOffsets=$(element).cumulativeOffset(),max=(window.height||document.body.scrollHeight)-document.viewport.getHeight();if(options.offset){elementOffsets[1]+=options.offset;}return new Effect.Tween(null,scrollOffsets.top,elementOffsets[1]>max?max:elementOffsets[1],options,function(p){scrollTo(scrollOffsets.left,p.round());});};Effect.Fade=function(element){element=$(element);var oldOpacity=element.getInlineOpacity();var options=Object.extend({from:element.getOpacity()||1,to:0,afterFinishInternal:function(effect){if(effect.options.to!=0){return ;}effect.element.hide().setStyle({opacity:oldOpacity});}},arguments[1]||{});return new Effect.Opacity(element,options);};Effect.Appear=function(element){element=$(element);var options=Object.extend({from:(element.getStyle("display")=="none"?0:element.getOpacity()||0),to:1,afterFinishInternal:function(effect){effect.element.forceRerendering();},beforeSetup:function(effect){effect.element.setOpacity(effect.options.from).show();}},arguments[1]||{});return new Effect.Opacity(element,options);};Effect.Puff=function(element){element=$(element);var oldStyle={opacity:element.getInlineOpacity(),position:element.getStyle("position"),top:element.style.top,left:element.style.left,width:element.style.width,height:element.style.height};return new Effect.Parallel([new Effect.Scale(element,200,{sync:true,scaleFromCenter:true,scaleContent:true,restoreAfterFinish:true}),new Effect.Opacity(element,{sync:true,to:0})],Object.extend({duration:1,beforeSetupInternal:function(effect){Position.absolutize(effect.effects[0].element);},afterFinishInternal:function(effect){effect.effects[0].element.hide().setStyle(oldStyle);}},arguments[1]||{}));};Effect.BlindUp=function(element){element=$(element);element.makeClipping();return new Effect.Scale(element,0,Object.extend({scaleContent:false,scaleX:false,restoreAfterFinish:true,afterFinishInternal:function(effect){effect.element.hide().undoClipping();}},arguments[1]||{}));};Effect.BlindDown=function(element){element=$(element);var elementDimensions=element.getDimensions();return new Effect.Scale(element,100,Object.extend({scaleContent:false,scaleX:false,scaleFrom:0,scaleMode:{originalHeight:elementDimensions.height,originalWidth:elementDimensions.width},restoreAfterFinish:true,afterSetup:function(effect){effect.element.makeClipping().setStyle({height:"0px"}).show();
},afterFinishInternal:function(effect){effect.element.undoClipping();}},arguments[1]||{}));};Effect.SwitchOff=function(element){element=$(element);var oldOpacity=element.getInlineOpacity();return new Effect.Appear(element,Object.extend({duration:0.4,from:0,transition:Effect.Transitions.flicker,afterFinishInternal:function(effect){new Effect.Scale(effect.element,1,{duration:0.3,scaleFromCenter:true,scaleX:false,scaleContent:false,restoreAfterFinish:true,beforeSetup:function(effect){effect.element.makePositioned().makeClipping();},afterFinishInternal:function(effect){effect.element.hide().undoClipping().undoPositioned().setStyle({opacity:oldOpacity});}});}},arguments[1]||{}));};Effect.DropOut=function(element){element=$(element);var oldStyle={top:element.getStyle("top"),left:element.getStyle("left"),opacity:element.getInlineOpacity()};return new Effect.Parallel([new Effect.Move(element,{x:0,y:100,sync:true}),new Effect.Opacity(element,{sync:true,to:0})],Object.extend({duration:0.5,beforeSetup:function(effect){effect.effects[0].element.makePositioned();},afterFinishInternal:function(effect){effect.effects[0].element.hide().undoPositioned().setStyle(oldStyle);}},arguments[1]||{}));};Effect.Shake=function(element){element=$(element);var options=Object.extend({distance:20,duration:0.5},arguments[1]||{});var distance=parseFloat(options.distance);var split=parseFloat(options.duration)/10;var oldStyle={top:element.getStyle("top"),left:element.getStyle("left")};return new Effect.Move(element,{x:distance,y:0,duration:split,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:-distance*2,y:0,duration:split*2,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:distance*2,y:0,duration:split*2,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:-distance*2,y:0,duration:split*2,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:distance*2,y:0,duration:split*2,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:-distance,y:0,duration:split,afterFinishInternal:function(effect){effect.element.undoPositioned().setStyle(oldStyle);}});}});}});}});}});}});};Effect.SlideDown=function(element){element=$(element).cleanWhitespace();var oldInnerBottom=element.down().getStyle("bottom");var elementDimensions=element.getDimensions();return new Effect.Scale(element,100,Object.extend({scaleContent:false,scaleX:false,scaleFrom:window.opera?0:1,scaleMode:{originalHeight:elementDimensions.height,originalWidth:elementDimensions.width},restoreAfterFinish:true,afterSetup:function(effect){effect.element.makePositioned();effect.element.down().makePositioned();if(window.opera){effect.element.setStyle({top:""});}effect.element.makeClipping().setStyle({height:"0px"}).show();},afterUpdateInternal:function(effect){effect.element.down().setStyle({bottom:(effect.dims[0]-effect.element.clientHeight)+"px"});},afterFinishInternal:function(effect){effect.element.undoClipping().undoPositioned();effect.element.down().undoPositioned().setStyle({bottom:oldInnerBottom});
}},arguments[1]||{}));};Effect.SlideUp=function(element){element=$(element).cleanWhitespace();var oldInnerBottom=element.down().getStyle("bottom");var elementDimensions=element.getDimensions();return new Effect.Scale(element,window.opera?0:1,Object.extend({scaleContent:false,scaleX:false,scaleMode:"box",scaleFrom:100,scaleMode:{originalHeight:elementDimensions.height,originalWidth:elementDimensions.width},restoreAfterFinish:true,afterSetup:function(effect){effect.element.makePositioned();effect.element.down().makePositioned();if(window.opera){effect.element.setStyle({top:""});}effect.element.makeClipping().show();},afterUpdateInternal:function(effect){effect.element.down().setStyle({bottom:(effect.dims[0]-effect.element.clientHeight)+"px"});},afterFinishInternal:function(effect){effect.element.hide().undoClipping().undoPositioned();effect.element.down().undoPositioned().setStyle({bottom:oldInnerBottom});}},arguments[1]||{}));};Effect.Squish=function(element){return new Effect.Scale(element,window.opera?1:0,{restoreAfterFinish:true,beforeSetup:function(effect){effect.element.makeClipping();},afterFinishInternal:function(effect){effect.element.hide().undoClipping();}});};Effect.Grow=function(element){element=$(element);var options=Object.extend({direction:"center",moveTransition:Effect.Transitions.sinoidal,scaleTransition:Effect.Transitions.sinoidal,opacityTransition:Effect.Transitions.full},arguments[1]||{});var oldStyle={top:element.style.top,left:element.style.left,height:element.style.height,width:element.style.width,opacity:element.getInlineOpacity()};var dims=element.getDimensions();var initialMoveX,initialMoveY;var moveX,moveY;switch(options.direction){case"top-left":initialMoveX=initialMoveY=moveX=moveY=0;break;case"top-right":initialMoveX=dims.width;initialMoveY=moveY=0;moveX=-dims.width;break;case"bottom-left":initialMoveX=moveX=0;initialMoveY=dims.height;moveY=-dims.height;break;case"bottom-right":initialMoveX=dims.width;initialMoveY=dims.height;moveX=-dims.width;moveY=-dims.height;break;case"center":initialMoveX=dims.width/2;initialMoveY=dims.height/2;moveX=-dims.width/2;moveY=-dims.height/2;break;}return new Effect.Move(element,{x:initialMoveX,y:initialMoveY,duration:0.01,beforeSetup:function(effect){effect.element.hide().makeClipping().makePositioned();},afterFinishInternal:function(effect){new Effect.Parallel([new Effect.Opacity(effect.element,{sync:true,to:1,from:0,transition:options.opacityTransition}),new Effect.Move(effect.element,{x:moveX,y:moveY,sync:true,transition:options.moveTransition}),new Effect.Scale(effect.element,100,{scaleMode:{originalHeight:dims.height,originalWidth:dims.width},sync:true,scaleFrom:window.opera?1:0,transition:options.scaleTransition,restoreAfterFinish:true})],Object.extend({beforeSetup:function(effect){effect.effects[0].element.setStyle({height:"0px"}).show();},afterFinishInternal:function(effect){effect.effects[0].element.undoClipping().undoPositioned().setStyle(oldStyle);}},options));}});};Effect.Shrink=function(element){element=$(element);
var options=Object.extend({direction:"center",moveTransition:Effect.Transitions.sinoidal,scaleTransition:Effect.Transitions.sinoidal,opacityTransition:Effect.Transitions.none},arguments[1]||{});var oldStyle={top:element.style.top,left:element.style.left,height:element.style.height,width:element.style.width,opacity:element.getInlineOpacity()};var dims=element.getDimensions();var moveX,moveY;switch(options.direction){case"top-left":moveX=moveY=0;break;case"top-right":moveX=dims.width;moveY=0;break;case"bottom-left":moveX=0;moveY=dims.height;break;case"bottom-right":moveX=dims.width;moveY=dims.height;break;case"center":moveX=dims.width/2;moveY=dims.height/2;break;}return new Effect.Parallel([new Effect.Opacity(element,{sync:true,to:0,from:1,transition:options.opacityTransition}),new Effect.Scale(element,window.opera?1:0,{sync:true,transition:options.scaleTransition,restoreAfterFinish:true}),new Effect.Move(element,{x:moveX,y:moveY,sync:true,transition:options.moveTransition})],Object.extend({beforeStartInternal:function(effect){effect.effects[0].element.makePositioned().makeClipping();},afterFinishInternal:function(effect){effect.effects[0].element.hide().undoClipping().undoPositioned().setStyle(oldStyle);}},options));};Effect.Pulsate=function(element){element=$(element);var options=arguments[1]||{};var oldOpacity=element.getInlineOpacity();var transition=options.transition||Effect.Transitions.sinoidal;var reverser=function(pos){return transition(1-Effect.Transitions.pulse(pos,options.pulses));};reverser.bind(transition);return new Effect.Opacity(element,Object.extend(Object.extend({duration:2,from:0,afterFinishInternal:function(effect){effect.element.setStyle({opacity:oldOpacity});}},options),{transition:reverser}));};Effect.Fold=function(element){element=$(element);var oldStyle={top:element.style.top,left:element.style.left,width:element.style.width,height:element.style.height};element.makeClipping();return new Effect.Scale(element,5,Object.extend({scaleContent:false,scaleX:false,afterFinishInternal:function(effect){new Effect.Scale(element,1,{scaleContent:false,scaleY:false,afterFinishInternal:function(effect){effect.element.hide().undoClipping().setStyle(oldStyle);}});}},arguments[1]||{}));};Effect.Morph=Class.create(Effect.Base,{initialize:function(element){this.element=$(element);if(!this.element){throw (Effect._elementDoesNotExistError);}var options=Object.extend({style:{}},arguments[1]||{});if(!Object.isString(options.style)){this.style=$H(options.style);}else{if(options.style.include(":")){this.style=options.style.parseStyle();}else{this.element.addClassName(options.style);this.style=$H(this.element.getStyles());this.element.removeClassName(options.style);var css=this.element.getStyles();this.style=this.style.reject(function(style){return style.value==css[style.key];});options.afterFinishInternal=function(effect){effect.element.addClassName(effect.options.style);effect.transforms.each(function(transform){effect.element.style[transform.style]="";
});};}}this.start(options);},setup:function(){function parseColor(color){if(!color||["rgba(0, 0, 0, 0)","transparent"].include(color)){color="#ffffff";}color=color.parseColor();return $R(0,2).map(function(i){return parseInt(color.slice(i*2+1,i*2+3),16);});}this.transforms=this.style.map(function(pair){var property=pair[0],value=pair[1],unit=null;if(value.parseColor("#zzzzzz")!="#zzzzzz"){value=value.parseColor();unit="color";}else{if(property=="opacity"){value=parseFloat(value);if(Prototype.Browser.IE&&(!this.element.currentStyle.hasLayout)){this.element.setStyle({zoom:1});}}else{if(Element.CSS_LENGTH.test(value)){var components=value.match(/^([\+\-]?[0-9\.]+)(.*)$/);value=parseFloat(components[1]);unit=(components.length==3)?components[2]:null;}}}var originalValue=this.element.getStyle(property);return{style:property.camelize(),originalValue:unit=="color"?parseColor(originalValue):parseFloat(originalValue||0),targetValue:unit=="color"?parseColor(value):value,unit:unit};}.bind(this)).reject(function(transform){return((transform.originalValue==transform.targetValue)||(transform.unit!="color"&&(isNaN(transform.originalValue)||isNaN(transform.targetValue))));});},update:function(position){var style={},transform,i=this.transforms.length;while(i--){style[(transform=this.transforms[i]).style]=transform.unit=="color"?"#"+(Math.round(transform.originalValue[0]+(transform.targetValue[0]-transform.originalValue[0])*position)).toColorPart()+(Math.round(transform.originalValue[1]+(transform.targetValue[1]-transform.originalValue[1])*position)).toColorPart()+(Math.round(transform.originalValue[2]+(transform.targetValue[2]-transform.originalValue[2])*position)).toColorPart():(transform.originalValue+(transform.targetValue-transform.originalValue)*position).toFixed(3)+(transform.unit===null?"":transform.unit);}this.element.setStyle(style,true);}});Effect.Transform=Class.create({initialize:function(tracks){this.tracks=[];this.options=arguments[1]||{};this.addTracks(tracks);},addTracks:function(tracks){tracks.each(function(track){track=$H(track);var data=track.values()[0];this.tracks.push($H({ids:track.keys()[0],effect:Effect.Morph,options:{style:data}}));}.bind(this));return this;},play:function(){return new Effect.Parallel(this.tracks.map(function(track){var ids=track.get("ids"),effect=track.get("effect"),options=track.get("options");var elements=[$(ids)||$$(ids)].flatten();return elements.map(function(e){return new effect(e,Object.extend({sync:true},options));});}).flatten(),this.options);}});Element.CSS_PROPERTIES=$w("backgroundColor backgroundPosition borderBottomColor borderBottomStyle "+"borderBottomWidth borderLeftColor borderLeftStyle borderLeftWidth "+"borderRightColor borderRightStyle borderRightWidth borderSpacing "+"borderTopColor borderTopStyle borderTopWidth bottom clip color "+"fontSize fontWeight height left letterSpacing lineHeight "+"marginBottom marginLeft marginRight marginTop markerOffset maxHeight "+"maxWidth minHeight minWidth opacity outlineColor outlineOffset "+"outlineWidth paddingBottom paddingLeft paddingRight paddingTop "+"right textIndent top width wordSpacing zIndex");
Element.CSS_LENGTH=/^(([\+\-]?[0-9\.]+)(em|ex|px|in|cm|mm|pt|pc|\%))|0$/;String.__parseStyleElement=document.createElement("div");String.prototype.parseStyle=function(){var style,styleRules=$H();if(Prototype.Browser.WebKit){style=new Element("div",{style:this}).style;}else{String.__parseStyleElement.innerHTML='<div style="'+this+'"></div>';style=String.__parseStyleElement.childNodes[0].style;}Element.CSS_PROPERTIES.each(function(property){if(style[property]){styleRules.set(property,style[property]);}});if(Prototype.Browser.IE&&this.include("opacity")){styleRules.set("opacity",this.match(/opacity:\s*((?:0|1)?(?:\.\d*)?)/)[1]);}return styleRules;};if(document.defaultView&&document.defaultView.getComputedStyle){Element.getStyles=function(element){var css=document.defaultView.getComputedStyle($(element),null);return Element.CSS_PROPERTIES.inject({},function(styles,property){styles[property]=css[property];return styles;});};}else{Element.getStyles=function(element){element=$(element);var css=element.currentStyle,styles;styles=Element.CSS_PROPERTIES.inject({},function(results,property){results[property]=css[property];return results;});if(!styles.opacity){styles.opacity=element.getOpacity();}return styles;};}Effect.Methods={morph:function(element,style){element=$(element);new Effect.Morph(element,Object.extend({style:style},arguments[2]||{}));return element;},visualEffect:function(element,effect,options){element=$(element);var s=effect.dasherize().camelize(),klass=s.charAt(0).toUpperCase()+s.substring(1);new Effect[klass](element,options);return element;},highlight:function(element,options){element=$(element);new Effect.Highlight(element,options);return element;}};$w("fade appear grow shrink fold blindUp blindDown slideUp slideDown "+"pulsate shake puff squish switchOff dropOut").each(function(effect){Effect.Methods[effect]=function(element,options){element=$(element);Effect[effect.charAt(0).toUpperCase()+effect.substring(1)](element,options);return element;};});$w("getInlineOpacity forceRerendering setContentZoom collectTextNodes collectTextNodesIgnoreClass getStyles").each(function(f){Effect.Methods[f]=Element[f];});Element.addMethods(Effect.Methods);

var Builder={NODEMAP:{AREA:"map",CAPTION:"table",COL:"table",COLGROUP:"table",LEGEND:"fieldset",OPTGROUP:"select",OPTION:"select",PARAM:"object",TBODY:"table",TD:"table",TFOOT:"table",TH:"table",THEAD:"table",TR:"table"},node:function(elementName){elementName=elementName.toUpperCase();var parentTag=this.NODEMAP[elementName]||"div";var parentElement=document.createElement(parentTag);try{parentElement.innerHTML="<"+elementName+"></"+elementName+">";}catch(e){}var element=parentElement.firstChild||null;if(element&&(element.tagName.toUpperCase()!=elementName)){element=element.getElementsByTagName(elementName)[0];}if(!element){element=document.createElement(elementName);}if(!element){return ;}if(arguments[1]){if(this._isStringOrNumber(arguments[1])||(arguments[1] instanceof Array)||arguments[1].tagName){this._children(element,arguments[1]);}else{var attrs=this._attributes(arguments[1]);if(attrs.length){try{parentElement.innerHTML="<"+elementName+" "+attrs+"></"+elementName+">";}catch(e){}element=parentElement.firstChild||null;if(!element){element=document.createElement(elementName);for(attr in arguments[1]){element[attr=="class"?"className":attr]=arguments[1][attr];}}if(element.tagName.toUpperCase()!=elementName){element=parentElement.getElementsByTagName(elementName)[0];}}}}if(arguments[2]){this._children(element,arguments[2]);}return element;},_text:function(text){return document.createTextNode(text);},ATTR_MAP:{"className":"class","htmlFor":"for"},_attributes:function(attributes){var attrs=[];for(attribute in attributes){attrs.push((attribute in this.ATTR_MAP?this.ATTR_MAP[attribute]:attribute)+'="'+attributes[attribute].toString().escapeHTML().gsub(/"/,"&quot;")+'"');}return attrs.join(" ");},_children:function(element,children){if(children.tagName){element.appendChild(children);return ;}if(typeof children=="object"){children.flatten().each(function(e){if(typeof e=="object"){element.appendChild(e);}else{if(Builder._isStringOrNumber(e)){element.appendChild(Builder._text(e));}}});}else{if(Builder._isStringOrNumber(children)){element.appendChild(Builder._text(children));}}},_isStringOrNumber:function(param){return(typeof param=="string"||typeof param=="number");},build:function(html){var element=this.node("div");$(element).update(html.strip());return element.down();},dump:function(scope){if(typeof scope!="object"&&typeof scope!="function"){scope=window;}var tags=("A ABBR ACRONYM ADDRESS APPLET AREA B BASE BASEFONT BDO BIG BLOCKQUOTE BODY "+"BR BUTTON CAPTION CENTER CITE CODE COL COLGROUP DD DEL DFN DIR DIV DL DT EM FIELDSET "+"FONT FORM FRAME FRAMESET H1 H2 H3 H4 H5 H6 HEAD HR HTML I IFRAME IMG INPUT INS ISINDEX "+"KBD LABEL LEGEND LI LINK MAP MENU META NOFRAMES NOSCRIPT OBJECT OL OPTGROUP OPTION P "+"PARAM PRE Q S SAMP SCRIPT SELECT SMALL SPAN STRIKE STRONG STYLE SUB SUP TABLE TBODY TD "+"TEXTAREA TFOOT TH THEAD TITLE TR TT U UL VAR").split(/\s+/);tags.each(function(tag){scope[tag]=function(){return Builder.node.apply(Builder,[tag].concat($A(arguments)));
};});}};

var DivScrollController=Class.create({initialize:function(elementId,viewableHeight,rowHeight){this.initialized=false;if(!elementId||viewableHeight<=0||rowHeight<=0){return ;}this.divElementId=elementId;this.viewableHeight=viewableHeight;this.halfViewableHeight=Math.floor(this.viewableHeight/3);this.rowHeight=rowHeight;this.halfRowHeight=Math.ceil(this.rowHeight/2);var divElt=$(this.divElementId);if(!divElt){return ;}var divEltHeightVal=0;var divEltNumHeight=0;var divEltHeight=divElt.getStyle("height");if(divEltHeight){var idxOfPx=divEltHeight.indexOf("px");if(idxOfPx>=0){var subDivEltHeight=divEltHeight.substring(0,idxOfPx);if(subDivEltHeight){divEltHeightVal=parseInt(subDivEltHeight);}}else{divEltHeightVal=parseInt(divEltHeight);}}if(divElt.scrollHeight){divEltNumHeight=divElt.scrollHeight-divEltHeightVal;}else{divEltNumHeight=divEltHeightVal;}this.maxScrollBottom=divEltNumHeight;var inspElt=divElt.inspect();var isDivElt=false;var hasScrollEnabled=false;if(inspElt&&inspElt.length>0&&inspElt.indexOf("div")!=-1){isDivElt=true;var overFlowStyle=divElt.getStyle("overflow");if(overFlowStyle=="scroll"||overFlowStyle=="auto"){hasScrollEnabled=true;}}if(!isDivElt){return ;}if(!hasScrollEnabled){divElt.setStyle({"overflow":"auto"});}this.usePixelHeight=false;if(divElt.style.pixelHeight){this.usePixelHeight=true;}if(!this.usePixelHeight&&!divElt.offsetHeight){return ;}this.initialized=true;},scrollByAmount:function(amount){if(!this.initialized){return ;}var divElt=$(this.divElementId);divElt.scrollTop+=amount;},scrollToPosition:function(position){if(!this.initialized){return ;}var divElt=$(this.divElementId);divElt.scrollTop=position;},centerScrollPosition:function(offsetMiddlePosition){if(!this.initialized){return ;}var divElt=$(this.divElementId);divElt.scrollTop=(offsetMiddlePosition-this.halfViewableHeight)+this.rowHeight;},scrollToTop:function(){if(!this.initialized){return ;}var divElt=$(this.divElementId);divElt.scrollTop=0;},scrollToBottom:function(){if(!this.initialized){return ;}var divElt=$(this.divElementId);divElt.scrollTop=this.maxScrollBottom;}});

var SelectBoxInserter=Class.create({initialize:function(selectNodeId,dataArray){this.initialized=false;if(!selectNodeId||!dataArray||dataArray.length==0){return ;}var selNodeElt=$(selectNodeId);if(!selNodeElt){return ;}if(selNodeElt.inspect().indexOf("select")==-1){return ;}this.selectNodeId=selectNodeId;this.dataArray=dataArray;this.params=Object.extend({eraseOptions:false,defaultOptionText:"Default",useDefaultOption:false,selectAlertHandler:null,selectAlertEvent:"change",selectionIdx:-1,selectionStr:null},arguments[2]||{});this.initialized=true;this.insertDataIntoSelectBox();},clearSelectionBox:function(){if(!this.initialized){return ;}if(this.params.eraseOptions){var selectElt=$(this.selectNodeId);var immedSelectDesc=selectElt.immediateDescendants();if(immedSelectDesc&&immedSelectDesc.length>0){immedSelectDesc.each(function(elt){if(elt){elt.remove();}});}}},insertDataIntoSelectBox:function(){if(!this.initialized){return ;}this.clearSelectionBox();var optionArray=new Array();if(this.params.useDefaultOption){optionArray.push(Builder.node("option",{value:this.params.defaultOptionText},this.params.defaultOptionText));}for(var idx=0,len=this.dataArray.length;idx<len;++idx){var curData=this.dataArray[idx];if(!curData){continue;}var buildNode=Builder.node("option",{value:curData},curData);if(buildNode!=null){optionArray.push(buildNode);}}if(optionArray.length>0){var selectElt=$(this.selectNodeId);for(var idx=0,len=optionArray.length;idx<len;++idx){selectElt.insert(optionArray[idx]);}}if(this.params.selectionIdx!=-1){if(this.params.selectionIdx<selectElt.options.length){selectElt.options[this.params.selectionIdx].selected=true;}}else{if(!StringUtils.isEmpty(this.params.selectionStr)){var selectionStrIdx=-1;for(var idx=0,len=optionArray.length;idx<len;++idx){var curStr=optionArray[idx].value;if(curStr==this.params.selectionStr){selectionStrIdx=idx;break;}}if(selectionStrIdx>-1){selectElt.options[selectionStrIdx].selected=true;}}}if(this.params.selectAlertHandler){selectElt.observe(this.params.selectAlertEvent,this.params.selectAlertHandler);}}});

var TimedAjaxRequest=Class.create({initialize:function(url,elapseTime){this.initialized=false;if(!url||!elapseTime){return ;}this.params=Object.extend({checkOrigin:true},arguments[2]||{});this.requestURL=url;this.elapsedTime=elapseTime;this.timedExecutor=null;this.ajaxRequest=null;this.ajaxRequestTransport=null;this.timeStart=null;this.timeEnd=null;this.bindRequestCreate=this.handleAjaxRequestCreate.bindAsEventListener(this);this.bindRequestSuccess=this.handleAjaxRequestSuccess.bindAsEventListener(this);this.bindRequestFailure=this.handleAjaxRequestFailure.bindAsEventListener(this);this.hasConsole=(window.console)?true:false;this.ajaxRequest=null;this.bindTimerHandle=this.timedExecuteHandle.bindAsEventListener(this);this.initialized=true;},sendRequest:function(){if(!this.initialized){return ;}if(this.ajaxRequest){return ;}this.ajaxRequest=new Ajax.Request(this.requestURL,{method:"get",onSuccess:this.bindRequestSuccess,onFailure:this.bindRequestFailure,onCreate:this.bindRequestCreate,checkOrigin:this.params.checkOrigin});this.ajaxRequestTransport=this.ajaxRequest.transport;this.timedExecuter=new PeriodicalExecuter(this.bindTimerHandle,this.elapsedTime);},handleAjaxRequestCreate:function(XHRTransport){var curTime=new Date();this.timeStart=curTime.getTime();},handleAjaxRequestFailure:function(XHRTransport){var curTime=new Date();this.timeEnd=curTime.getTime();},handleAjaxRequestSuccess:function(XHRTransport){var curTime=new Date();this.timeEnd=curTime.getTime();},timedExecuteHandle:function(timer){timer.stop();this.timedExecuter.stop();this.timedExecuter=null;if(this.ajaxRequestTransport){this.ajaxRequestTransport.abort();}}});

var CommonSubmitHandler=Class.create({initialize:function(requestUrl,requestParams,httpMethod,nodeId,triggerEvents){this.requestUrl=requestUrl;this.httpMethod=httpMethod;this.nodeId=nodeId;this.triggerEvents=null;if(triggerEvents){this.triggerEvents=$A(triggerEvents);}this.requestParams=requestParams;this.boundRequestListeners=new Array();this.handleRequestTimer=null;this.handleRequestEvent=null;this.handleRequestCount=0;this.initialized=false;this.params=Object.extend({async:true,useTimeout:true,useAlerts:true,useJSON:false,cssSelector:null,timeoutInterval:30,timeoutMsg:"Timeout has occurred",errorMsg:"Error has occurred",handleRequestSuccessCustom:null,handleRequestFailureCustom:null,handleRequestTimeoutCustom:null,keyPressIgnoreList:null,keyPressIgnoreHandler:null,manualTrigger:false,checkOrigin:true},arguments[5]||{});if(!this.requestUrl||!this.requestParams||!this.httpMethod||(!this.params.manualTrigger&&!this.params.cssSelector&&!this.nodeId)||(!this.params.manualTrigger&&!this.triggerEvents)){return ;}if(!this.params.manualTrigger&&!this.params.cssSelector){var nodeToUse=$(this.nodeId);if(!nodeToUse){return ;}}else{if(!this.params.manualTrigger){var nodesToUse=$$(this.params.cssSelector);if(!nodesToUse||nodesToUse.length==0){return ;}for(var idx=0,len=nodesToUse.length;idx<len;++idx){if(!nodesToUse[idx]){return ;}}}}this.initialized=true;this.ajaxRequestObject=null;this.timeoutHandler=null;this.ajaxElementId=null;this.ajaxOptions={asynchronous:this.params.async,method:this.httpMethod,evalJSON:this.params.useJSON,sanitizeJSON:this.params.useJSON,onComplete:this.handleRequestSuccess.bindAsEventListener(this),onFailure:this.handleRequestFailure.bindAsEventListener(this),checkOrigin:this.params.checkOrigin};this._embedIntoNode();},destroy:function(){this.cleanupAjaxAndTimeout();if(!this.params.manualTrigger&&!this.params.cssSelector){if(this.boundRequestListeners&&this.boundRequestListeners[0].length>0){var curBoundListeners=this.boundRequestListeners[0];var embedNode=$(this.nodeId);if(!embedNode){return ;}for(var idx=0,len=curBoundListeners.length;idx<len;++idx){Event.stopObserving(embedNode,this.triggerEvents[idx],curBoundListeners[idx]);}}}else{if(!this.params.manualTrigger){if(this.boundRequestListeners&&this.boundRequestListeners.length>0){var embedNodes=$$(this.params.cssSelector);if(!embedNodes||embedNodes.length==0){return ;}for(var outIdx=0,outLen=this.boundRequestListeners.length;outIdx<outLen;++outIdx){var curBoundListeners=this.boundRequestListeners[outIdx];var curEmbedNode=embedNodes[outIdx];for(var idx=0,len=curBoundListeners.length;idx<len;++idx){Event.stopObserving(curEmbedNode,this.triggerEvents[idx],curBoundListeners[idx]);}}}}}},_filterTriggerEvents:function(){if(!this.triggerEvents||this.triggerEvents.length==0){return ;}this.triggerEvents=this.triggerEvents.uniq();for(var idx=0,len=this.triggerEvents.length;idx<len;++idx){if(this.triggerEvents[idx].startsWith("on")){this.triggerEvents[idx]=this.triggerEvents[idx].sub("on","");
}}},_embedIntoNode:function(){if(!this.initialized){return ;}if(this.params.manualTrigger){return ;}var embedNodes=null;if(this.params.cssSelector&&this.params.cssSelector.length>0){embedNodes=$$(this.params.cssSelector);}if(!embedNodes||embedNodes.length==0){embedNodes=[$(this.nodeId)];if(!embedNodes[0]){return ;}}if(!this.triggerEvents||this.triggerEvents.length==0){return ;}this._filterTriggerEvents();for(var emNodeIdx=0,emNodeLen=embedNodes.length;emNodeIdx<emNodeLen;++emNodeIdx){var embedNode=embedNodes[emNodeIdx];this.boundRequestListeners[emNodeIdx]=new Array();curBoundListeners=this.boundRequestListeners[emNodeIdx];for(var idx=0,len=this.triggerEvents.length;idx<len;++idx){curBoundListeners[idx]=this.handleCreateRequest.bindAsEventListener(this);embedNode.observe(this.triggerEvents[idx],curBoundListeners[idx]);}}},_filterKeyPresses:function(eventData){if(!eventData||!this.params.keyPressIgnoreList){return(false);}var eventType=null;if(!eventData.type){return(false);}eventType=eventData.type;if(eventType.startsWith("key")&&this.params.keyPressIgnoreList.indexOf(eventData.keyCode)!=-1){return(true);}return(false);},handleCreateRequest:function(eventData){if(!this.initialized){return ;}if(this.ajaxRequestObject!=null){return ;}if(this.params.manualTrigger==false){if(this._filterKeyPresses(eventData)){if(this.params.keyPressIgnoreHandler){this.params.keyPressIgnoreHandler(eventData);}return ;}var ajaxElt=Event.element(eventData);if(ajaxElt){this.ajaxElementId=ajaxElt.identify();}else{this.ajaxElementId=null;}if(!this.handleCreateRequestCheck()){return ;}}this.handleRequestTimer=null;var urlHost=URLUtils.getUrlHost();var reqUrl=(StringUtils.isNotEmpty(urlHost))?urlHost+this.requestUrl:this.requestUrl;this.ajaxRequestObject=new Ajax.Request(reqUrl,this.ajaxOptions);if(this.params.useTimeout==true){this.timeoutHandler=new PeriodicalExecuter(this.handleTimeout.bindAsEventListener(this),this.params.timeoutInterval);}},handleCreateRequestCheck:function(){return(this.initialized);},handleTimeout:function(){if(!this.params.useTimeout){return ;}this._killAjaxRequest();if(this.params.handleRequestTimeoutCustom){this.params.handleRequestTimeoutCustom();}this._killTimeoutHandler();if(this.params.useAlerts){}},_killTimeoutHandler:function(){if(this.params.useTimeout){if(!this.timeoutHandler){return ;}this.timeoutHandler.stop();this.timeoutHandler=null;}},_killAjaxRequest:function(){this.ajaxRequestObject=null;},handleRequestSuccess:function(retXHR){this._killTimeoutHandler();if(this.params.handleRequestSuccessCustom){this.params.handleRequestSuccessCustom(retXHR);}this._killAjaxRequest();},handleRequestFailure:function(retXHR){this._killTimeoutHandler();if(this.params.handleRequestFailureCustom){this.params.handleRequestFailureCustom(retXHR);}this._killAjaxRequest();if(this.params.useAlerts){}},cleanupAjaxAndTimeout:function(){this._killTimeoutHandler();this._killAjaxRequest();}});

var ProductInfoRetriever=Class.create(CommonSubmitHandler,{initialize:function($super,prodId,extSuccessMethod){if(StringUtils.isEmpty(prodId)){return ;}this.productId=prodId;this.requestComplete=false;this.productData=null;this.productName=null;this.productPrice=null;this.productImgUrl=null;this.productRatingImgUrl=null;this.productCategory=null;this.externalSuccessMethod=extSuccessMethod;$super("/servlet/ProductInfoBubbleServlet/productInfoBubble.ajax",{},"GET",null,null,{async:true,manualTrigger:true,useJSON:true,useTimeout:false,errorMsg:"Product info retrieve error",checkOrigin:false,handleRequestSuccessCustom:this.handleInfoSuccess.bindAsEventListener(this),handleRequestFailureCustom:this.handleInfoFailure.bindAsEventListener(this)});this.ajaxOptions.parameters={productId:this.productId};this.handleCreateRequest(null);},handleInfoSuccess:function(retXHR){if(!retXHR){this.requestComplete=true;return ;}var retJSONObj=retXHR.responseJSON;if(!retJSONObj||retJSONObj.length==0){this.requestComplete=true;return ;}this.productData=retJSONObj;this.productCategory=this.productData.productCategory;this.productName=this.productData.productName;if(this.productData.freeProduct==true){this.productPrice="$0.00";}else{this.productPrice="$"+this.productData.price;}var urlPrepend="";var determineProtocol=(this.productData&&this.productData.determineHTTPS&&this.productData.determineHTTPS==true);if(determineProtocol){if(URLUtils.isHTTPSEnabled()==true){urlPrepend="https://";}else{urlPrepend="http://";}}var prodImages=this.productData.productImages;var prodImg=this.productData.productImage;var defaultImg=false;if(prodImages&&prodImages.length>0){this.productImgUrl=prodImages[0];}else{if(prodImg&&prodImg.indexOf(".")!=-1){this.productImgUrl=this.productData.productImage;}else{this.productImgUrl="../images/coverart/nopicture.gif";defaultImg=true;}}if(!defaultImg&&determineProtocol){if(this.productImgUrl.indexOf("http")==-1){this.productImgUrl=urlPrepend+this.productImgUrl;}}if(this.productData.ratingImage){this.productRatingImgUrl="../images/ratings/"+this.productData.ratingImage;}else{this.productRatingImgUrl=null;}this.requestComplete=true;if(this.externalSuccessMethod){this.externalSuccessMethod();}},handleInfoFailure:function(retXHR){this.requestComplete=true;}});

var DeviceProductCompatRetriever=Class.create(CommonSubmitHandler,{initialize:function($super,prodId,devId,extSuccessMethod){this.productId=prodId;this.deviceId=devId;this.requestComplete=false;this.productName=null;this.productPrice=null;this.productImgUrl=null;this.productRatingImgUrl=null;this.productCategory=null;this.devProdData=null;this.devMatchData=null;this.deviceCompatible=false;this.externalSuccessMethod=extSuccessMethod;if(StringUtils.isEmpty(prodId)||StringUtils.isEmpty(devId)){return ;}$super("/servlet/DeviceDynamicSearchServlet/search.ajax",{},"GET",null,null,{async:true,manualTrigger:true,useJSON:true,useTimeout:false,errorMsg:"Device product compat retrieve error",checkOrigin:false,handleRequestSuccessCustom:this.handleInfoSuccess.bindAsEventListener(this),handleRequestFailureCustom:this.handleInfoFailure.bindAsEventListener(this)});this.ajaxOptions.parameters={productId:this.productId,deviceId:this.deviceId};this.handleCreateRequest(null);},handleInfoSuccess:function(retXHR){if(!retXHR){this.requestComplete=true;return ;}var retJSONObj=retXHR.responseJSON;if(!retJSONObj||retJSONObj.length==0){this.requestComplete=true;return ;}if(retJSONObj.valid==false){this.requestComplete=true;return ;}this.devProdData=retJSONObj;this.devMatchData=this.devProdData.deviceMatches;this.populateProductData(null);this.requestComplete=true;if(this.externalSuccessMethod){this.externalSuccessMethod();}},populateProductData:function(optExternalProdData){var prodData=this.devProdData;var usingExt=false;if(optExternalProdData){prodData=optExternalProdData;usingExt=true;}this.productName=prodData.compatibleProductName;this.productCategory=prodData.compatibleProductCategory;if(prodData.compatibleProductFree==true){this.productPrice="$0.00";}else{this.productPrice="$"+prodData.compatibleProductPrice;}var urlPrepend="";var determineProtocol=false;if(usingExt==false){determineProtocol=(this.devMatchData&&this.devMatchData.determineHTTPS&&this.devMatchData.determineHTTPS==true);}else{determineProtocol=(this.prodData&&this.prodData.determineHTTPS&&this.prodData.determineHTTPS==true);}if(determineProtocol){if(URLUtils.isHTTPSEnabled()==true){urlPrepend="https://";}else{urlPrepend="http://";}}var prodImg=prodData.compatibleProductImage;var defaultImg=false;if(prodImg&&prodImg.indexOf(".")!=-1){this.productImgUrl=prodImg;}else{this.productImgUrl="../images/coverart/nopicture.gif";defaultImg=true;}if(!defaultImg&&determineProtocol&&prodImg){if(prodImg.indexOf("http")==-1){this.productImgUrl=urlPrepend+prodImg;}}if(prodData.compatibleProductRatingImage){this.productRatingImgUrl="../images/ratings/"+prodData.compatibleProductRatingImage;}else{this.productRatingImgUrl=null;}},handleInfoFailure:function(retXHR){this.requestComplete=true;}});

var DeviceDynamicSearchHandler=Class.create(CommonSubmitHandler,{DEVICE_SELECTOR_STEP1_ID:"div.device-selector-content-group#step-1-of-3",DEVICE_SELECTOR_STEP2_ID:"div.device-selector-content-group#step-2-of-3",DEVICE_SELECTOR_STEP3_ID:"div.device-selector-content-group#step-3-of-3",DEVICE_RESULT_TABLE_ID:"device-info-results-table",DEVICE_RESULT_DIV_ID:"device-info-results",DEVICE_RESULT_DIV_MOUSE_EVT:"click",DEVICE_RESULT_DIV_KEY_EVT:"keyup",DEVICE_RESULT_DIV_SCROLL_EVT:"mouse:wheel",DEVICE_NUM_RESULTS_ID:"device-number-devices",DEVICE_CELL_CLASS_NAME:"device_result_",DEVICE_CELL_ID:"device_id_",DEVICE_VIS_KEY:"visibility",DEVICE_VIS_HIDDEN:"hidden",DEVICE_VIS_VISIBLE:"visible",SELECTED:"selected",DEVICE_SEARCH_IDX_SEPARATOR:"|",DEVICE_SEARCH_BUTTON:"device-selector-search-button",DEVICE_SEARCH_EVT:"click",DEVICE_PREVIEW_ID:"device-preview-area",DEVICE_MESSAGE_AREA:"device-selector-messaging-area",DEVICE_POPULAR_LIST:"popular-devices",DEVICE_HTTPS_PROTOCOL:"https://",DEVICE_HTTP_PROTOCOL:"http://",MIN_KEYWORD_LENGTH:3,DEVICE_ROW_HEIGHT_PX:16,DEVICE_RESULT_DIV_MAX_ROWS:10,DEVICE_CATEGORY_MINIMUM:2,DEVICE_USE_ICON:0,DEVICE_USE_THUMBNAIL:1,DEVICE_USE_MAIN:2,DEVICE_USE_LARGE:3,DEVICE_DIR_UP:1,DEVICE_DIR_DOWN:2,initialize:function($super,nodeId,triggerEvents){this.keyWord=null;this.initialized=false;this.searchResult=null;this.selectedIdx=-1;this.selectedDevNumber=-1;this.selectedDevice=null;this.actualNumDevicesFound=0;this.categoryDevicesFound=0;this.usingScrollOverflow=false;this.mouseClickSearchBinding=null;this.devSearchKeyPressBinding=null;this.findDeviceBinding=null;this.dataStringArray=null;this.divScrollControl=null;this.mouseScrollSearchBinding=null;this.scrollMoveLock=false;this.serverBaseURL=null;this.devImgElt=null;this.searchWarningMsg=null;this.nextStepIdx=-1;this.selectedDeviceImageUrl=null;this.keyedSearchTerm=null;this.overwroteSearchTerm=false;this.bindMouseOverPopularDevice=null;this.bindMouseClickCarrierManufacturerDevice=null;this.bindMouseOutPopularDevice=null;this.bindMouseClickPopularDevice=null;this.popularDevice=false;this.stepTwoDevice=false;this.carrierList=null;this.modelList=null;this.deviceListThreshold=0;this.deviceProductCompatRetriever=null;this.retObjectPopularId=null;this.retObjectPopularName=null;this.prodInfoContainer=null;this.warningBoxElements=null;this.productInfoRetriever=null;this.deviceProductCompatHandleBind=this.handleProductCompatRetrievePopularDevices.bindAsEventListener(this);this.boundWarnCompatMethod=this.setWarningBoxToCheckCompatibility.bindAsEventListener(this);this.advanceStateHandler=null;this.warnAboutDeviceSearch=false;this.determineHTTPS=false;this.selectedDeviceName=null;this.selectedDeviceId=null;$super("/servlet/DeviceDynamicSearchServlet/search.ajax",{},"GET",nodeId,triggerEvents,{useTimeout:false,useJSON:true,errorMsg:"Dynamic search has failed",searchOffsetX:12,searchOffsetY:72,checkOrigin:false,handleRequestSuccessCustom:this.handleSearchSuccess.bindAsEventListener(this),handleRequestFailureCustom:this.handleSearchFailure.bindAsEventListener(this),keyPressIgnoreList:$A([Event.KEY_UP,Event.KEY_DOWN,Event.KEY_LEFT,Event.KEY_RIGHT,Event.KEY_RETURN]),keyPressIgnoreHandler:this.handleKeyPressSearch.bindAsEventListener(this)});
this._setDevicePreviewToHidden(true);this._alignResultsTable();this._setDeviceResAreaHidden(true);this._setFindButtonImageChange();this._bindMouseClickForSelection();this._bindMouseWheelForSelection();this._bindKeyPressForSelection();this._bindToFindDevicesButton();this._bindToMostPopularDevices();this.initializeWarningBox();},initializeWarningBox:function(){this.warnAboutDeviceSearch=false;if(this.isWarningBoxVisible()){this.hideWarningBox();}this.performProductWarningCheck();this.performSearchWarningCheck();this.performInterruptionWarningCheck();},setAdvanceStateHandler:function(advStateHandler){this.advanceStateHandler=advStateHandler;},handleCreateRequestCheck:function(){if(!this.initialized){return(false);}this.keyWord=$F(this.nodeId);if(!this.keyWord){if(this.warnAboutDeviceSearch==true&&this.isWarningBoxVisible()){this.hideWarningBox();}this._clearSearchResults();this._updateDeviceSearchResults();this._hideDevicesFound(true);return(false);}if(this.keyWord.length<this.MIN_KEYWORD_LENGTH){if(this.warnAboutDeviceSearch==true&&this.isWarningBoxVisible()){this.hideWarningBox();}this._clearSearchResults();this._updateDeviceSearchResults();this._hideDevicesFound(true);return(false);}this.keyedSearchTerm=this.keyWord;this.ajaxOptions.parameters={keyWord:this.keyWord};var prodId=URLUtils.getUrlParameter("productId");if(prodId){this.ajaxOptions.parameters=Object.extend({productId:prodId},this.ajaxOptions.parameters);}this.searchResult=null;this.serverBaseURL=null;this._setDevicePreviewToHidden(true);return(true);},_alignResultsTable:function(){var srcBoxElem=$(this.nodeId);var devResElem=$(this.DEVICE_RESULT_DIV_ID);if(!srcBoxElem||!devResElem){return ;}var srcBoxOffsets=Position.positionedOffset(srcBoxElem);var srcBoxOffsetX=srcBoxOffsets[0]+this.params.searchOffsetX;var srcBoxOffsetY=srcBoxOffsets[1]+this.params.searchOffsetY;devResElem.setStyle({"left":srcBoxOffsetX+"px","top":srcBoxOffsetY+"px"});},_growDeviceSearchResultsArea:function(){var deviceResArea=$(this.DEVICE_RESULT_DIV_ID);if(!deviceResArea){return(false);}var deviceResTable=$(this.DEVICE_RESULT_TABLE_ID);if(!deviceResTable){return(false);}var numRows=deviceResTable.rows.length;if(this.actualNumDevicesFound==0){this._setDeviceResAreaHidden(true);}else{this._setDeviceResAreaHidden(false);}if(numRows>this.DEVICE_RESULT_DIV_MAX_ROWS){numRows=this.DEVICE_RESULT_DIV_MAX_ROWS;if(Prototype.Browser.IE==true){deviceResTable.setStyle({"width":"184px"});deviceResArea.setStyle({"overflow-x":"hidden"});deviceResArea.setStyle({"overflow-y":"auto"});}else{deviceResArea.setStyle({"overflow":"auto"});}this.usingScrollOverflow=true;this.divScrollControl=null;this.divScrollControl=new DivScrollController(this.DEVICE_RESULT_DIV_ID,(this.DEVICE_RESULT_DIV_MAX_ROWS+1)*this.DEVICE_ROW_HEIGHT_PX,this.DEVICE_ROW_HEIGHT_PX);}else{if(Prototype.Browser.IE==true){deviceResTable.setStyle({"width":"184px"});deviceResArea.setStyle({"overflow-x":"hidden"});deviceResArea.setStyle({"overflow-y":"hidden"});}else{deviceResArea.setStyle({"overflow":"hidden"});
}this.usingScrollOverflow=false;this.divScrollControl=null;}var rowHeight=0;if(numRows>0){if(rowHeight>4){rowHeight=this.DEVICE_ROW_HEIGHT_PX*(numRows+1);}else{rowHeight=this.DEVICE_ROW_HEIGHT_PX*numRows;}}if(this.usingScrollOverflow==true){deviceResArea.setStyle({"height":rowHeight+"px"});}else{deviceResTable.setStyle({"height":rowHeight+"px"});deviceResArea.setStyle({"height":rowHeight+"px"});}},_setDeviceResAreaHidden:function(bHidden){var deviceResArea=$(this.DEVICE_RESULT_DIV_ID);if(!deviceResArea){return ;}var deviceResVis=deviceResArea.getStyle("visibility");var deviceResDis=deviceResArea.getStyle("display");var bDeviceResVis=(deviceResVis&&deviceResVis=="hidden");var bDeviceResDis=(deviceResDis&&deviceResDis=="none");var bAlreadyHidden=(bDeviceResVis&&bDeviceResDis);if(bHidden==true&&!bAlreadyHidden){deviceResArea.setStyle({"visibility":"hidden"});deviceResArea.setStyle({"display":"none"});}else{if(bHidden==false&&bAlreadyHidden){deviceResArea.setStyle({"visibility":"visible"});deviceResArea.setStyle({"display":"block"});}}},_setFindButtonImageChange:function(){var fndButton=$(this.DEVICE_SEARCH_BUTTON);if(!fndButton){return ;}fndButton.observe("mouseover",function(evt){Event.element(evt).writeAttribute("src","../images/buttons/go_active.gif");});fndButton.observe("mouseout",function(evt){Event.element(evt).writeAttribute("src","../images/buttons/go_inactive.gif");});},_getDeviceDataFromDataString:function(datStrIdx){if(datStrIdx<0||datStrIdx>=this.dataStringArray.length){return(null);}var dataStrSplit=this.dataStringArray[datStrIdx].split(this.DEVICE_SEARCH_IDX_SEPARATOR);if(!dataStrSplit){return(null);}var actualName=dataStrSplit[1];var dataStrKeySplitIdx=actualName.toLowerCase().indexOf(this.keyWord.toLowerCase());if(dataStrKeySplitIdx>=0){var offsetKeywordIdx=this.keyWord.length+dataStrKeySplitIdx;if(dataStrKeySplitIdx==0){var firstPartOfSplit=actualName.substring(dataStrKeySplitIdx,offsetKeywordIdx);var secondPartOfSplit=actualName.substring(offsetKeywordIdx);actualName="<strong>"+firstPartOfSplit+"</strong>"+secondPartOfSplit;}else{var firstPartOfSplit=actualName.substring(0,dataStrKeySplitIdx);var secondPartOfSplit=actualName.substring(dataStrKeySplitIdx,offsetKeywordIdx);if(offsetKeywordIdx<actualName.length){var thirdPartOfSplit=actualName.substring(offsetKeywordIdx);actualName=firstPartOfSplit+"<strong>"+secondPartOfSplit+"</strong>"+thirdPartOfSplit;}else{actualName=firstPartOfSplit+"<strong>"+secondPartOfSplit+"</strong>";}}}return({name:actualName,index:parseInt(dataStrSplit[0])});},_getDisplayIndexFromDevice:function(device){if(!device||!this.dataStringArray){return(null);}var fndIndex=-1;for(var idx=0,len=this.dataStringArray.length;idx<len;++idx){var dataStrSplit=this._getDeviceDataFromDataString(idx);var curDevice=this.searchResult[dataStrSplit.index];if(curDevice.deviceName==device.deviceName){fndIndex=idx;break;}}return(fndIndex);},_updateDeviceSearchResults:function(){var deviceResTable=$(this.DEVICE_RESULT_TABLE_ID);if(!deviceResTable){return ;
}if(deviceResTable.rows&&deviceResTable.rows.length>0){for(var tabDelIdx=deviceResTable.rows.length;tabDelIdx>0;--tabDelIdx){deviceResTable.deleteRow(tabDelIdx-1);}deviceResTable.update();}if(this.dataStringArray&&this.dataStringArray.length>0){for(var idx=0,len=this.dataStringArray.length;idx<len;++idx){var newRow=Element.extend(deviceResTable.insertRow(-1));if(!newRow){continue;}var newCell=Element.extend(newRow.insertCell(0));if(!newCell){continue;}var dataStrSplit=this._getDeviceDataFromDataString(idx);if(!dataStrSplit){continue;}var dataStrIdx=dataStrSplit.index;newCell.update(dataStrSplit.name);newCell.addClassName(this.DEVICE_CELL_CLASS_NAME+dataStrIdx);}}this._growDeviceSearchResultsArea();},_setDevicesFound:function(numDevices){var devicesFoundSpan=$(this.DEVICE_NUM_RESULTS_ID);if(!devicesFoundSpan){return(false);}this._hideDevicesFound(false);if(numDevices==0){this.setWarningBoxToDeviceSearchNoMatch(this.keyWord);devicesFoundSpan.innerHTML="<strong>No matches found</strong>";}else{if(numDevices==1){devicesFoundSpan.innerHTML="<strong>1 match found</strong>";}else{devicesFoundSpan.innerHTML="<strong>"+numDevices+" matches found</strong>";}}},_hideDevicesFound:function(bHide){var devicesFoundSpan=$(this.DEVICE_NUM_RESULTS_ID);if(!devicesFoundSpan){return(false);}if(bHide==true){devicesFoundSpan.hide();}else{if(bHide==false){devicesFoundSpan.show();}}},resetAll:function(bClearForm){this._killAjaxRequest();this.selectedIdx=-1;this.nextStepIdx=0;this._setDevicePreviewToHidden(true);this.overwroteSearchTerm=false;this.keyWord=null;this.selectedDevice=null;if(bClearForm==true){if(this.isWarningBoxVisible()){this.hideWarningBox();}if(this.isDeviceSelectorVisible()){this.initializeWarningBox();}this._clearSearchResults();this._updateDeviceSearchResults();this._setDeviceResAreaHidden(true);var devSearchBox=$(this.nodeId);if(devSearchBox){devSearchBox.clear();}this._hideDevicesFound(true);this.keyedSearchTerm=null;this.popularDevice=false;this.stepTwoDevice=false;this.dataStringArray=null;this.determineHTTPS=false;}},handleSearchSuccess:function(retXHR){var returnJSON=null;if(retXHR&&retXHR.responseJSON){returnJSON=retXHR.responseJSON;}if(returnJSON=="undefined"||returnJSON==null){this.setWarningBoxToDeviceSearchNoMatch(this.keyWord);this.resetAll(false);return(false);}if(returnJSON.valid=="false"){this.setWarningBoxToDeviceSearchNoMatch(this.keyWord);this.resetAll(false);return(false);}this.serverBaseURL=returnJSON.deviceImageServerBase;this.searchResult=returnJSON.deviceMatches;this.carrierList=returnJSON.trimmedCarrierList;this.modelList=returnJSON.manufacturerList;this.deviceListThreshold=returnJSON.deviceListThreshold;this.prodInfoContainer=new DeviceProductCompatRetriever(null,null,null);this.prodInfoContainer.populateProductData(returnJSON);this.actualNumDevicesFound=0;this.categoryDevicesFound=0;this.usingScrollOverflow=false;this.selectedDevice=null;this.selectedDevNumber=-1;this.dataStringArray=null;var searchResultLen=this.searchResult.length;
if(searchResultLen>=1){this.selectedIdx=0;}this.nextStepIdx=0;this.determineHTTPS=returnJSON.determineHTTPS;this.dataStringArray=new Array();var devIdx=0;for(var idx=0,len=searchResultLen;idx<len;++idx){var curDevice=this.searchResult[idx];if(curDevice.category==true&&curDevice.numDevicesInCategory>this.DEVICE_CATEGORY_MINIMUM){this.dataStringArray[devIdx]=idx+this.DEVICE_SEARCH_IDX_SEPARATOR+curDevice.deviceName;this.categoryDevicesFound++;devIdx++;}}for(var idx=0,len=searchResultLen;idx<len;++idx){var curDevice=this.searchResult[idx];if(curDevice.category==false){this.dataStringArray[devIdx]=idx+this.DEVICE_SEARCH_IDX_SEPARATOR+curDevice.deviceName;this.actualNumDevicesFound++;devIdx++;}}this._setDevicesFound(this.actualNumDevicesFound);this._updateDeviceSearchResults();this._setTableSelectedRow();this._killAjaxRequest();},handleSearchFailure:function(retXHR){},getDeviceNumberFromElement:function(elt){if(!elt){return(-1);}var classNameArr=$A(elt.classNames());var fndClassStr=null;if(classNameArr.length==1){fndClassStr=classNameArr[0];}else{for(var idx=0,len=classNameArr.length;idx<len;++idx){var curClassName=classNameArr[idx];if(curClassName&&curClassName.indexOf(this.DEVICE_CELL_CLASS_NAME)!=-1){fndClassStr=classNameArr[idx];break;}}}if(fndClassStr){var fndSubStr=fndClassStr.substring(this.DEVICE_CELL_CLASS_NAME.length);if(fndSubStr){return(parseInt(fndSubStr));}return(-1);}return(-1);},_setDeviceFromSelectedIdx:function(){if(this.selectedIdx==-1||!this.searchResult||!this.searchResult.length){return ;}var dataArrData=this._getDeviceDataFromDataString(this.selectedIdx);if(!dataArrData){return ;}if(dataArrData.index>=0&&dataArrData.index<this.searchResult.length){this.selectedDevice=this.searchResult[dataArrData.index];this.selectedDevNumber=dataArrData.index;}},_setSelectedIdxFromDevice:function(){if(!this.selectedDevice){return ;}var tableIndex=this._getDisplayIndexFromDevice(this.selectedDevice);if(tableIndex==-1){return ;}this.selectedIdx=tableIndex;},_clearSearchResults:function(){this.dataStringArray=null;this.searchResult=null;},_setTableSelectedRow:function(){var deviceResTable=$(this.DEVICE_RESULT_TABLE_ID);if(!deviceResTable){return ;}var deviceResRows=deviceResTable.rows;if(!deviceResRows||deviceResRows.length==0){return ;}for(var idx=0,len=deviceResRows.length;idx<len;++idx){var curDevRowCell=deviceResRows[idx].cells[0];if(!curDevRowCell){return ;}curDevRowCell.removeClassName(this.SELECTED);}if(this.selectedIdx>=0&&this.selectedIdx<deviceResRows.length){var deviceRow=deviceResRows[this.selectedIdx];if(!deviceRow){return ;}var deviceCell=deviceRow.cells[0];if(!deviceCell){return ;}deviceCell.addClassName(this.SELECTED);}},_moveSelectedIdx:function(direction){if(!this.searchResult||!this.searchResult.length){return ;}if(this.scrollMoveLock==false){this.scrollMoveLock=true;}else{return ;}var amtToMove=0;if(direction==this.DEVICE_DIR_UP){amtToMove=-1;}else{if(direction==this.DEVICE_DIR_DOWN){amtToMove=1;}}this.selectedIdx+=amtToMove;if(this.selectedIdx<0){this.selectedIdx=this.searchResult.length-1;
if(this.divScrollControl){this.divScrollControl.scrollToBottom();}}else{if(this.selectedIdx==this.searchResult.length){this.selectedIdx=0;if(this.divScrollControl){this.divScrollControl.scrollToTop();}}else{if(this.divScrollControl){this.divScrollControl.centerScrollPosition(this.selectedIdx*this.DEVICE_ROW_HEIGHT_PX);}}}this.scrollMoveLock=false;},handleMouseClickSearchResult:function(evt){var eltClick=Event.findElement(evt,"td");if(!eltClick){return ;}var devNumber=this.getDeviceNumberFromElement(eltClick);if(devNumber==-1){return ;}if(!this.searchResult||!this.searchResult.length){return ;}if(devNumber>=0&&devNumber<this.searchResult.length){this.selectedDevice=this.searchResult[devNumber];this.selectedDevNumber=devNumber;}this._setSelectedIdxFromDevice();this._setTableSelectedRow();this._updateSearchBoxContentsWithSelectedDevice();this._setDevicePreviewToCurrentDevice();this._setDeviceResAreaHidden(true);if(this.selectedDevice.category==false){this._hideDevicesFound(true);}Event.stop(evt);},handleKeyPressSearch:function(evt){if(!evt){return ;}var devResArea=$(this.DEVICE_RESULT_DIV_ID);if(devResArea){if(!(devResArea.visible())){return ;}}var wasArrowDown=false;var fndCorrectKey=false;var fullySelectDevice=false;var evtKeyCode=evt.keyCode;if(evtKeyCode==Event.KEY_DOWN){wasArrowDown=true;fndCorrectKey=true;}else{if(evtKeyCode==Event.KEY_UP){wasArrowDown=false;fndCorrectKey=true;}else{if(evtKeyCode==Event.KEY_RETURN){fullySelectDevice=true;fndCorrectKey=true;}}}if(fndCorrectKey&&this.searchResult){if(!wasArrowDown&&!fullySelectDevice){this._moveSelectedIdx(this.DEVICE_DIR_UP);}else{if(wasArrowDown&&!fullySelectDevice){this._moveSelectedIdx(this.DEVICE_DIR_DOWN);}}this._setDeviceFromSelectedIdx();this._setTableSelectedRow();this._updateSearchBoxContentsWithSelectedDevice();this._setDevicePreviewToCurrentDevice();if(fullySelectDevice){this._setDeviceResAreaHidden(true);if(this.selectedDevice.category==false){this._hideDevicesFound(true);}}}Event.stop(evt);},handleMouseScrollOnDeviceResults:function(evtData){if(!evtData){return ;}if(!this.divScrollControl){Event.stop(evtData);return ;}var evtDelta=evtData.memo.delta;if(evtDelta){if(evtDelta>0){this._moveSelectedIdx(this.DEVICE_DIR_UP);}else{if(evtDelta<0){this._moveSelectedIdx(this.DEVICE_DIR_DOWN);}}}this._setDeviceFromSelectedIdx();this._setTableSelectedRow();this._updateSearchBoxContentsWithSelectedDevice();this._setDevicePreviewToCurrentDevice();Event.stop(evtData);},_setDevicePreviewToHidden:function(bHidden){var devPrev=$(this.DEVICE_PREVIEW_ID);if(!devPrev){return ;}if(bHidden==true){devPrev.hide();}else{devPrev.show();}},computeImageUrl:function(inDevice,imgTypeArr){if(!inDevice||inDevice.category==true||imgTypeArr==null||imgTypeArr.length==0){return(null);}var imgFileName=null;var potentialImage=null;for(var imgTypeIdx=0,imgTypeLen=imgTypeArr.length;imgTypeIdx<imgTypeLen;++imgTypeIdx){switch(imgTypeArr[imgTypeIdx]){case this.DEVICE_USE_ICON:imgFileName=inDevice.deviceIconImageUrl;break;case this.DEVICE_USE_THUMBNAIL:imgFileName=inDevice.deviceThumbnailImageUrl;
break;case this.DEVICE_USE_MAIN:imgFileName=inDevice.deviceMainImageUrl;break;case this.DEVICE_USE_LARGE:imgFileName=inDevice.deviceLargeImageUrl;break;}if(imgFileName.indexOf("NoDeviceAvail")!=-1){potentialImage=imgFileName;imgFileName=null;}if(!imgFileName){continue;}break;}if(StringUtils.isEmpty(imgFileName)){imgFileName=potentialImage;}else{if(handango.determineHTTPS&&handango.determineHTTPS=="true"){var httpsEnabled=URLUtils.isHTTPSEnabled();var prependToUrl=this.DEVICE_HTTP_PROTOCOL;if(httpsEnabled==true){prependToUrl=this.DEVICE_HTTPS_PROTOCOL;}imgFileName=prependToUrl+imgFileName;}}return(imgFileName);},_updateDeviceImageElt:function(contElt,imgUrl){if(this.devImgElt==null){this.devImgElt=Builder.node("img",{src:imgUrl});contElt.insert(this.devImgElt);}else{if(Prototype.Browser.IE==false){this.devImgElt.writeAttribute("src",imgUrl);}else{this.devImgElt.src=imgUrl;}}var resetStyle=false;if(handango.preferredFileImageType&&handango.preferredFileImageType.length>0){if(imgUrl.indexOf(handango.preferredFileImageType)!=-1){if(Prototype.Browser.IE==false){this.devImgElt.setStyle({"position":"relative","top":"10px","left":"10px"});}else{this.devImgElt.style.position="relative";this.devImgElt.style.top="10px";this.devImgElt.style.left="10px";}}else{resetStyle=true;}}else{resetStyle=true;}if(resetStyle==true){if(Prototype.Browser.IE==false){this.devImgElt.setStyle({"top":"0","left":"0"});}else{this.devImgElt.style.top="0px";this.devImgElt.style.left="0px";}}},_setDevicePreviewToCurrentDevice:function(){var devPrev=$(this.DEVICE_PREVIEW_ID);if(!devPrev){return ;}if(!this.selectedDevice||this.selectedDevice.category==true){this._setDevicePreviewToHidden(true);return ;}this._setDevicePreviewToHidden(false);var imgUrl=this.computeImageUrl(this.selectedDevice,[this.DEVICE_USE_THUMBNAIL,this.DEVICE_USE_MAIN]);this.selectedDeviceImageUrl=imgUrl;this._updateDeviceImageElt(devPrev,this.selectedDeviceImageUrl);},_updateSearchBoxContentsWithSelectedDevice:function(){var devSearchBox=$(this.nodeId);if(!devSearchBox){return ;}if(!this.selectedDevice){return ;}devSearchBox.value=this.selectedDevice.deviceName;this.overwroteSearchTerm=true;},_bindKeyPressForSelection:function(){var devSearchArea=$(this.DEVICE_RESULT_DIV_ID);if(devSearchArea){this.devSearchKeyPressBinding=this.handleKeyPressSearch.bindAsEventListener(this);devSearchArea.observe(this.DEVICE_RESULT_DIV_KEY_EVT,this.devSearchKeyPressBinding);}var devSearchTable=$(this.DEVICE_RESULT_TABLE_ID);if(devSearchTable){devSearchTable.observe(this.DEVICE_RESULT_DIV_KEY_EVT,this.devSearchKeyPressBinding);}},_bindMouseClickForSelection:function(){var devResDiv=$(this.DEVICE_RESULT_DIV_ID);if(devResDiv){this.mouseClickSearchBinding=this.handleMouseClickSearchResult.bindAsEventListener(this);devResDiv.observe(this.DEVICE_RESULT_DIV_MOUSE_EVT,this.mouseClickSearchBinding);}},_bindMouseWheelForSelection:function(){var devResDiv=$(this.DEVICE_RESULT_DIV_ID);if(devResDiv){this.mouseScrollSearchBinding=this.handleMouseScrollOnDeviceResults.bindAsEventListener(this);
devResDiv.observe(this.DEVICE_RESULT_DIV_SCROLL_EVT,this.mouseScrollSearchBinding);}},isDeviceSelectorVisible:function(){var devSelElt=$("device-selector-lightbox-target");if(devSelElt){return(devSelElt.visible());}return(false);},handleClickFindDevices:function(evt){if(!this.selectedDevice){if(this.keyedSearchTerm&&this.keyedSearchTerm.length>0&&this.searchResult&&this.searchResult.length>0){this.advanceStateHandler(2);}else{this.searchWarningMsg="Step 1 warning message - no device selected!!";this.advanceStateHandler(1);}}else{if(this.selectedDevice.category==true){this.advanceStateHandler(2);}else{if(this.selectedDevice.category==false){FormUtils.setDeviceFormData(this.selectedDevice.deviceId,this.selectedDevice.deviceName);this.popularDevice=false;this.stepTwoDevice=false;this.selectedDeviceName=this.selectedDevice.deviceName;this.advanceStateHandler(3);}}}},_bindToFindDevicesButton:function(){var findDevButton=$(this.DEVICE_SEARCH_BUTTON);if(!findDevButton){return ;}findDevButton.setStyle({"cursor":"pointer"});this.findDeviceBinding=this.handleClickFindDevices.bindAsEventListener(this);findDevButton.observe(this.DEVICE_SEARCH_EVT,this.findDeviceBinding);},_bindToMostPopularDevices:function(){var popDevEltArr=$$("div#popular-devices ul li a");this.bindMouseOverPopularDevice=this.handleMouseOverPopularDevices.bindAsEventListener(this);this.bindMouseOutPopularDevice=this.handleMouseOutPopularDevices.bindAsEventListener(this);this.bindMouseClickPopularDevice=this.handleMouseClickPopularDevices.bindAsEventListener(this);if(popDevEltArr&&popDevEltArr.length>0){for(var idx=0,len=popDevEltArr.length;idx<len;++idx){var popDevElt=popDevEltArr[idx];popDevElt.observe("mouseover",this.bindMouseOverPopularDevice);popDevElt.observe("mouseout",this.bindMouseOutPopularDevice);popDevElt.observe("click",this.bindMouseClickPopularDevice);}}},_bindToCarrierManufacturerDevices:function(){var popDevEltArr=$$("div#most_popular_top_devices table tr td");var allCarrierManufEltArr=$$("div#carrier-manufacture-all-devices table tr td");this.bindMouseClickPopularDevice=this.handleMouseClickPopularDevices.bindAsEventListener(this);if(popDevEltArr&&popDevEltArr.length>0){for(var idx=0,len=popDevEltArr.length;idx<len;++idx){var popDevElt=popDevEltArr[idx];popDevElt.observe("click",this.bindMouseClickPopularDevice);}}if(allCarrierManufEltArr&&allCarrierManufEltArr.length>0){for(var idx=0,len=allCarrierManufEltArr.length;idx<len;++idx){var popDevElt=allCarrierManufEltArr[idx];popDevElt.observe("click",this.bindMouseClickPopularDevice);}}},_getPopularDeviceEventElements:function(evt){if(!evt){return(null);}var evtElt=Event.element(evt);if(!evtElt){return(null);}var inspectVal=evtElt.inspect();var tagValue=inspectVal.substring(1,3).toLowerCase();var listItemElt=null;var imageItemElt=null;var anchorElt=null;if(tagValue.indexOf("a")!=-1){anchorElt=evtElt;listItemElt=anchorElt.up("li");}else{if(tagValue.indexOf("li")!=-1){listItemElt=evtElt;anchorElt=listItemElt.down("a");}else{if(tagValue.indexOf("im")!=-1){imageItemElt=evtElt;
listItemElt=imageItemElt.up();}else{if(tagValue.indexOf("sp")!=-1){anchorElt=evtElt;listItemElt=anchorElt;}}}}if(!anchorElt&&!listItemElt){return(null);}var deviceIdFull=listItemElt.getAttribute("id");var underScoreIdx=deviceIdFull.indexOf("_");if(underScoreIdx==-1){return(null);}var deviceIdVal=deviceIdFull.substring(underScoreIdx+1);var deviceNameVal=null;var deviceUrlVal=null;if(anchorElt){deviceNameVal=anchorElt.innerHTML;deviceUrlVal=anchorElt.getAttribute("id");}else{if(imageItemElt){deviceNameVal=imageItemElt.getAttribute("alt");deviceUrlVal=imageItemElt.getAttribute("src");}}return({id:deviceIdVal,name:deviceNameVal,url:deviceUrlVal});},handleMouseOverPopularDevices:function(evt){if(!evt){return ;}var retObj=this._getPopularDeviceEventElements(evt);if(retObj==null){Event.stop(evt);return ;}this._setDevicePreviewToHidden(false);var devPrev=$(this.DEVICE_PREVIEW_ID);if(!devPrev){return ;}var title=$("device-preview-area-device-title");title.innerHTML=retObj.name;this._updateDeviceImageElt(devPrev,retObj.url);Event.stop(evt);},handleMouseOutPopularDevices:function(evt){if(!evt){return ;}var retObj=this._getPopularDeviceEventElements(evt);if(retObj==null){Event.stop(evt);return ;}this._setDevicePreviewToHidden(true);Event.stop(evt);},handleMouseClickPopularDevices:function(evt){if(!evt){return ;}var retObj=this._getPopularDeviceEventElements(evt);if(retObj==null){Event.stop(evt);return ;}this._setDevicePreviewToHidden(true);this.popularDevice=true;this.stepTwoDevice=false;this.retObjectPopularId=retObj.id;if(!StringUtils.containsNumericCharsOnly(retObj.id)){Event.stop(evt);return ;}this.retObjectPopularName=retObj.name;this.selectedDeviceName=this.retObjectPopularName;this.selectedDeviceImageUrl=retObj.url;this.selectedDeviceId=retObj.id;if(this.selectedDeviceId==0){var host=URLUtils.getUrlHost();window.location=host+"/content/iphone_apps?storeId=2218";return ;}Event.stop(evt);if((handango.deviceSelectorProductTriggered||handango.deviceSelectorProductBubbleTriggered)&&handango.deviceSelectorProductIdValue){this.deviceProductCompatRetriever=new DeviceProductCompatRetriever(handango.deviceSelectorProductIdValue,this.retObjectPopularId,this.deviceProductCompatHandleBind);}else{this.deviceProductCompatRetriever=null;this.handleProductCompatRetrievePopularDevices();}},handleProductCompatRetrievePopularDevices:function(){if(this.deviceProductCompatRetriever){var retDevMatches=this.deviceProductCompatRetriever.devMatchData;if(retDevMatches&&retDevMatches.length>0){this.selectedDevice=retDevMatches[0];this.prodInfoContainer=this.deviceProductCompatRetriever;}}FormUtils.setDeviceFormData(this.retObjectPopularId,this.retObjectPopularName);this.selectedDeviceName=this.retObjectPopularName;this.advanceStateHandler(3);},getWarningBoxElement:function(){var warnElt=$("device-selector-warning-box");if(!warnElt){return(null);}return(warnElt);},hideWarningBox:function(){var warnElt=this.getWarningBoxElement();if(!warnElt){return ;}warnElt.hide();if(this.warningBoxElements&&this.warningBoxElements.length>0){for(var idx=0,len=this.warningBoxElements.length;
idx<len;++idx){var curWarnElt=this.warningBoxElements[idx];if(curWarnElt&&curWarnElt.remove){curWarnElt.remove();}}}this.warningBoxElements=null;},performProductWarningCheck:function(){if((handango.deviceSelectorProductTriggered||handango.deviceSelectorProductBubbleTriggered)&&handango.deviceSelectorProductIdValue){this.productInfoRetriever=new ProductInfoRetriever(handango.deviceSelectorProductIdValue,this.boundWarnCompatMethod);}},performSearchWarningCheck:function(){if(handango.deviceSelectorSearchTriggered&&handango.deviceSelectorSearchFormValue){this.setWarningBoxToSearchDeviceRequired(handango.deviceSelectorSearchFormValue);}},performInterruptionWarningCheck:function(){if(handango.deviceSelectorTaxonomyTriggered||handango.deviceSelectorLeftNavSearchTriggered||handango.deviceSelectorLeftNavCatTriggered){this.setWarningBoxToInterrupt();}},setWarningBoxToCheckCompatibility:function(){var warnElt=this.getWarningBoxElement();warnElt.update();if(!handango.deviceSelectorProductIdValue){return ;}var emNode=Builder.node("em","Compatibility Check");var headerEmNode=Builder.node("h6",[emNode,"You must select a device to ensure compatibility with this product:"]);var prodImgNode=null;if(StringUtils.isNotEmpty(this.productInfoRetriever.productImgUrl)){prodImgNode=Builder.node("img",{className:"thumbnail",alt:"",src:this.productInfoRetriever.productImgUrl,width:"50",onerror:"this.onerror=null;this.src='../images/coverart/nopicture.gif';"});}else{prodImgNode=Builder.node("img",{className:"thumbnail",alt:"",src:"../images/coverart/nopicture.gif",width:"50",onerror:"this.onerror=null;this.src='../images/coverart/nopicture.gif';"});}var ratingImgNode=null;if(StringUtils.isNotEmpty(this.productInfoRetriever.productRatingImgUrl)){ratingImgNode=Builder.node("img",{className:"rating",alt:"",src:this.productInfoRetriever.productRatingImgUrl});}var dtNode=null;if(!ratingImgNode){dtNode=Builder.node("dt",[this.productInfoRetriever.productName,prodImgNode]);}else{dtNode=Builder.node("dt",[this.productInfoRetriever.productName,prodImgNode,ratingImgNode]);}var ddNode=Builder.node("dd",{className:"price"},this.productInfoRetriever.productPrice);var dlNode=Builder.node("dl",[dtNode,ddNode]);var divProdSummary=Builder.node("div",{className:"product-summary"},[headerEmNode,dlNode]);this.warningBoxElements=[divProdSummary];warnElt.insert(divProdSummary);warnElt.show();},setWarningBoxToDeviceSearchNoMatch:function(devSearchTerm){var warnElt=this.getWarningBoxElement();if(!warnElt){return ;}if(!devSearchTerm){return ;}devSearchTerm=StringUtils.sanitizeString(devSearchTerm);warnElt.update();var strongMsgNode=Builder.node("strong",devSearchTerm);var anchorCompNode=Builder.node("a",{href:"../device/CompleteDeviceList.jsp?storeId=2218"},"see all devices.");var pNode=Builder.node("p",["Sorry, no devices match ",strongMsgNode,".  Please try again or ",anchorCompNode]);var divProdSumNode=Builder.node("div",[pNode]);this.warningBoxElements=[divProdSumNode];warnElt.insert(divProdSumNode);
this.warnAboutDeviceSearch=true;warnElt.show();},setWarningBoxToInterrupt:function(){var warnElt=this.getWarningBoxElement();if(!warnElt){return ;}warnElt.update();var pNode=Builder.node("p","Sorry, we must know your mobile device model before you can continue.");var divProdSumNode=Builder.node("div",[pNode]);this.warningBoxElements=[divProdSumNode];warnElt.insert(divProdSumNode);this.warnAboutDeviceSearch=false;warnElt.show();},setWarningBoxToSearchDeviceRequired:function(searchTerm){var warnElt=this.getWarningBoxElement();if(!warnElt){return ;}if(!searchTerm){return ;}searchTerm=StringUtils.sanitizeString(searchTerm);warnElt.update();var emNode=Builder.node("em","Device Selection Required");var h6Node=Builder.node("h6",[emNode,"We need to know what device you have so that we can return relevant search results for:"]);var pNode=Builder.node("p",searchTerm);this.warningBoxElements=[h6Node,pNode];warnElt.insert({bottom:h6Node});warnElt.insert({bottom:pNode});this.warnAboutDeviceSearch=false;warnElt.show();},isWarningBoxVisible:function(){var warnElt=this.getWarningBoxElement();if(!warnElt){return(false);}return(warnElt.visible());}});

var DeviceResultsHandler=Class.create({DEV_VW_DIV:"device-preview-container",DEV_VW_BUBBLE:"device-preview-bubble",DEV_VW_TITLE:"device-preview-title",DEV_VW_IMAGE_CONT:"device-preview-container",DEV_VW_IMAGE:"device-preview-image",DEV_VW_DETAILS:"device-preview-details",DEV_VW_MANUF_LABEL:"device-preview-manuf-label",DEV_VW_MANUF_VALUE:"device-preview-manuf-value",DEV_VW_OS_LABEL:"device-preview-os-label",DEV_VW_OS_VALUE:"device-preview-os-value",DEV_VW_CXR_LABEL:"device-preview-cxr-label",DEV_VW_CXR_VALUE:"device-preview-cxr-value",DEVICE_CXR_DROPDOWN:"carriers",DEVICE_MODEL_DROPDOWN:"models",DEVICE_LIST_GRID_MODE:"grid-mode",DEVICE_LIST_LIST_MODE:"list-mode",DEVICE_DROPDOWN_FORM:"select-device-step-2",initialize:function(searchSummaryNodeId,resultListNodeId,dynamicSearchModule,advStateHandler){this.initialized=false;if(StringUtils.isEmpty(searchSummaryNodeId)||StringUtils.isEmpty(resultListNodeId)){return ;}this.selectedResultDevice=null;this.selectedResultDeviceURL=null;this.searchSummaryNodeId=searchSummaryNodeId;this.resultListNodeId=resultListNodeId;this.dynamicSearchModule=dynamicSearchModule;this.numDevicesToDisplay=0;this.deviceList=null;this.bindHandleHoverDevice=null;this.bindHandleClickDevice=null;this.selectedResultDevice=null;this.selectedResultDeviceURL=null;this.selectedDeviceName=null;this.selectedDeviceId=null;this.productCategory=null;this.carrierInserter=null;this.manufInserter=null;this.nextStepIdx=-1;this.bCarrierFilter=false;this.bModelFilter=false;this.carrierFilterVal=null;this.modelFilterVal=null;this.prodInfoContainer=null;this.advanceStateHandler=advStateHandler;this.overrideCarrierModels=false;this.overrideCarrierList=null;this.overrideModelList=null;var searchSummaryNodeElt=$(this.searchSummaryNodeId);if(!searchSummaryNodeElt){return ;}var resultListNodeElt=$(this.resultListNodeId);if(!resultListNodeElt){return ;}if(!this.dynamicSearchModule){return ;}this.bindHandleHoverDevice=this.handleHoverOnDevice.bindAsEventListener(this);this.bindHandleClickDevice=this.handleClickOnDevice.bindAsEventListener(this);this.bindHandleSelectCarrier=this.handleCarrierSelectChange.bindAsEventListener(this);this.bindHandleSelectModel=this.handleModelSelectChange.bindAsEventListener(this);this.initialized=true;this._embedResultsHandlerInPage();},_getNumberDevicesToDisplay:function(){if(!this.initialized){return ;}if(this.dynamicSearchModule.overwroteSearchTerm==true){this.numDevicesToDisplay=this.dynamicSearchModule.selectedDevice.numDevicesInCategory;}else{this.numDevicesToDisplay=this.dynamicSearchModule.actualNumDevicesFound;}},_embedResultsHandlerInPage:function(){if(!this.initialized){return ;}this.hideMainDeviceImage(true);this._eraseDeviceList();this._fillInDeviceList();this._buildDeviceList();this._getNumberDevicesToDisplay();this._modifySearchSummary();this._populateDeviceFilters();if(this.deviceList){if(this.deviceList.length<=this.dynamicSearchModule.deviceListThreshold){this._setDeviceListStyleToGrid(true);}else{this._setDeviceListStyleToGrid(false);
}}},_modifySearchSummary:function(){if(!this.initialized){return ;}var searchSumElt=$(this.searchSummaryNodeId);if(this.dynamicSearchModule&&this.dynamicSearchModule.overwroteSearchTerm==true){if(this.deviceList){var firstChild=$(searchSumElt.firstChild);if(firstChild){firstChild.nodeValue=this.deviceList.length+" matches for "+this.dynamicSearchModule.selectedDevice.deviceName+". ";var anchorElt=searchSumElt.down("a");if(anchorElt){anchorElt.update("Change This");}}}}else{if(this.deviceList){var firstChild=$(searchSumElt.firstChild);if(firstChild){firstChild.nodeValue=this.deviceList.length+' supported models with "'+this.dynamicSearchModule.keyedSearchTerm+'" ';var anchorElt=searchSumElt.down("a");if(anchorElt){anchorElt.update("New Search");}}}}},_setDeviceListStyleToGrid:function(bGridMode){if(!this.initialized){return ;}var deviceListElt=$(this.resultListNodeId);if(bGridMode==true){if(!deviceListElt.hasClassName(this.DEVICE_LIST_GRID_MODE)){deviceListElt.addClassName(this.DEVICE_LIST_GRID_MODE);}if(deviceListElt.hasClassName(this.DEVICE_LIST_LIST_MODE)){deviceListElt.removeClassName(this.DEVICE_LIST_LIST_MODE);}}else{if(!deviceListElt.hasClassName(this.DEVICE_LIST_LIST_MODE)){deviceListElt.addClassName(this.DEVICE_LIST_LIST_MODE);}if(deviceListElt.hasClassName(this.DEVICE_LIST_GRID_MODE)){deviceListElt.removeClassName(this.DEVICE_LIST_GRID_MODE);}}},_eraseDeviceList:function(){if(!this.initialized){return ;}var resultListNode=$(this.resultListNodeId);var firstDescUl=resultListNode.down("ul");if(!firstDescUl){return ;}firstDescUl.remove();},_populateDeviceFilters:function(){if(this.bCarrierFilter==true||this.bModelFilter==true){return ;}var carrierList=null;var modelList=null;if(this.overrideCarrierModels==false){var searchResult=this.dynamicSearchModule;if(!searchResult){return ;}carrierList=searchResult.carrierList;modelList=searchResult.modelList;}else{carrierList=this.overrideCarrierList;modelList=this.overrideModelList;}if(!carrierList||!modelList||carrierList.length==0||modelList.length==0){return ;}this.carrierInserter=new SelectBoxInserter(this.DEVICE_CXR_DROPDOWN,carrierList,{eraseOptions:true,defaultOptionText:"View All Carriers",useDefaultOption:true,selectAlertHandler:this.bindHandleSelectCarrier,selectionIdx:0});this.manufInserter=new SelectBoxInserter(this.DEVICE_MODEL_DROPDOWN,modelList,{eraseOptions:true,defaultOptionText:"View All Models",useDefaultOption:true,selectAlertHandler:this.bindHandleSelectModel,selectionIdx:0});},_fillInDeviceList:function(){if(!this.initialized){return ;}var resultListNode=$(this.resultListNodeId);if(this.dynamicSearchModule){var searchResult=this.dynamicSearchModule.searchResult;}this.deviceList=null;if(this.dynamicSearchModule&&this.dynamicSearchModule.overwroteSearchTerm==true){var deviceIdxList=this.dynamicSearchModule.selectedDevice.categoryDevices;var devicesInIdxList=Object.values(deviceIdxList);this.deviceList=new Array();this.overrideCarrierList=new Array();this.overrideModelList=new Array();
for(var devIdx=0,devLen=devicesInIdxList.length;devIdx<devLen;++devIdx){var curDev=devicesInIdxList[devIdx];if(curDev.category==false&&this._filterSingleDevice(curDev)==false){this.deviceList.push(curDev);}if(!StringUtils.isEmpty(curDev.deviceCarrier)&&curDev.deviceCarrier.indexOf("Unavailable")==-1){this.overrideCarrierList.push(curDev.deviceCarrier);}if(!StringUtils.isEmpty(curDev.deviceModel)){this.overrideModelList.push(curDev.deviceModel);}if(!StringUtils.isEmpty(curDev.deviceManufacturer)){this.overrideModelList.push(curDev.deviceManufacturer);}}this.overrideCarrierModels=true;this.overrideCarrierList=this.overrideCarrierList.uniq();this.overrideModelList=this.overrideModelList.uniq();}else{if(searchResult){this.deviceList=new Array();for(var idx=0,len=searchResult.length;idx<len;++idx){var curItem=searchResult[idx];if(curItem.category==false){if(this._filterSingleDevice(curItem)==false){this.deviceList.push(curItem);}}}this.overrideCarrierModels=false;this.overrideCarrierList=null;this.overrideModelList=null;}}},_filterSingleDevice:function(curDevice){if(!curDevice){return(true);}if((this.bCarrierFilter==false&&this.bModelFilter==false)||(this.carrierFilterVal==null&&this.modelFilterVal==null)){return(false);}var bFilterDevice=true;var devCarrier=curDevice.deviceCarrier;var devManuf=curDevice.deviceManufacturer;var devModel=curDevice.deviceModel;if(this.bCarrierFilter==true&&this.bModelFilter==false){if(this.carrierFilterVal==devCarrier){bFilterDevice=false;}}else{if(this.bCarrierFilter==false&&this.bModelFilter==true){if(this.modelFilterVal==devManuf||this.modelFilterVal==devModel){bFilterDevice=false;}}else{if(this.bCarrierFilter==true&&this.bModelFilter==true){if(this.carrierFilterVal==devCarrier&&(this.modelFilterVal==devManuf||this.modelFilterVal==devModel)){bFilterDevice=false;}}else{bFilterDevice=false;}}}return(bFilterDevice);},_buildDeviceList:function(){if(!this.initialized&&this.deviceList){return ;}var resultListNode=$(this.resultListNodeId);var childDataRows=new Array();for(var idx=0,len=this.deviceList.length;idx<len;++idx){var builtRow=this._buildDeviceListRow(this.deviceList[idx]);if(builtRow!=null){childDataRows.push(builtRow);}}var parentUlElt=Builder.node("ul",{id:"device-list-data"},childDataRows);resultListNode.insert(parentUlElt);resultListNode.observe("click",this.bindHandleClickDevice);},_buildDeviceListRow:function(deviceToRender){if(!this.initialized||!deviceToRender){return(null);}var iconImgUrl=this.dynamicSearchModule.computeImageUrl(deviceToRender,[this.dynamicSearchModule.DEVICE_USE_ICON]);var imgNode=Builder.node("img",{src:iconImgUrl});var spanImgNode=Builder.node("span",imgNode);var anchorSpanImgNode=Builder.node("a",{href:"#"},[spanImgNode,deviceToRender.deviceName]);$(anchorSpanImgNode).observe("mouseover",this.bindHandleHoverDevice);var listNode=Builder.node("li",{id:deviceToRender.deviceId},anchorSpanImgNode);return(listNode);},update:function(){if(this.initialized){this.selectedResultDevice=null;this.selectedResultDeviceURL=null;
this.resetSelectedOptionsToDefault();this._embedResultsHandlerInPage();}},_findDeviceInListById:function(devId){if(!this.initialized||StringUtils.isEmpty(devId)){return(null);}var fndDevice=null;if(this.deviceList&&this.deviceList.length>0){for(var idx=0,len=this.deviceList.length;idx<len;++idx){var curDev=this.deviceList[idx];if(curDev.deviceId==devId){fndDevice=curDev;break;}}}return(fndDevice);},_getDeviceIdByElementEvent:function(event,nodeType){if(!this.initialized||!event){return(null);}var evtElt=Event.findElement(event,nodeType);if(!evtElt){return(null);}return(evtElt.identify());},_getDeviceByEvent:function(event,nodeType){if(!this.initialized||!event||StringUtils.isEmpty(nodeType)){return(null);}var eltId=this._getDeviceIdByElementEvent(event,nodeType);if(!eltId){return(null);}var fndDevice=this._findDeviceInListById(eltId);return(fndDevice);},_getDeviceByElement:function(elt){if(!this.initialized||!elt){return(null);}var eltId=elt.identify();if(!eltId){return(null);}var fndDevice=this._findDeviceInListById(eltId);return(fndDevice);},_setImgAndAnchorStyles:function(parElt,imgStyle,anchorStyle){if(!this.initialized||!parElt||!imgStyle||!anchorStyle){return ;}var imgDesc=parElt.down("img");if(imgDesc){imgDesc.setStyle(imgStyle);}var aDesc=parElt.down("a");if(aDesc){aDesc.setStyle(anchorStyle);}},hideMainDeviceImage:function(bHide){var devImgElt=$(this.DEV_VW_IMAGE_CONT);if(!devImgElt){return ;}if(bHide==true){devImgElt.hide();}else{devImgElt.show();}},handleHoverOnDevice:function(hovEvt){if(!this.initialized||!hovEvt){return ;}var evtElt=Event.findElement(hovEvt,"li");if(!evtElt){return ;}var fndDevice=this._getDeviceByElement(evtElt);if(!fndDevice){return ;}var devNameElt=$(this.DEV_VW_TITLE);if(devNameElt){devNameElt.update(fndDevice.deviceName);}var devImgUrl=this.dynamicSearchModule.computeImageUrl(fndDevice,[this.dynamicSearchModule.DEVICE_USE_LARGE]);this.hideMainDeviceImage(false);var devImgElt=$(this.DEV_VW_IMAGE);if(devImgElt){devImgElt.writeAttribute("src",devImgUrl);}if(fndDevice.deviceOS){var devOSElt=$(this.DEV_VW_OS_VALUE);if(devOSElt){devOSEltChild=$(devOSElt.firstChild);if(devOSEltChild){devOSEltChild.nodeValue=" "+fndDevice.deviceOS;}}}if(fndDevice.deviceManufacturer){var devMfrElt=$(this.DEV_VW_MANUF_VALUE);if(devMfrElt){devMfrEltChild=$(devMfrElt.firstChild);if(devMfrEltChild){devMfrEltChild.nodeValue=" "+fndDevice.deviceManufacturer;}}}var devCxrElt=$(this.DEV_VW_CXR_VALUE);if(devCxrElt){devCxrEltChild=$(devCxrElt.firstChild);if(devCxrEltChild){devCxrEltChild.nodeValue=" "+fndDevice.deviceCarrier;}}},handleClickOnDevice:function(event){if(!this.initialized||!event){return ;}var fndDevice=this._getDeviceByEvent(event,"li");if(!fndDevice){return ;}this.selectedResultDevice=fndDevice;this.selectedResultDeviceURL=this.dynamicSearchModule.computeImageUrl(fndDevice,[this.dynamicSearchModule.DEVICE_USE_ICON]);this.prodInfoContainer=this.dynamicSearchModule.prodInfoContainer;FormUtils.setDeviceFormData(this.selectedResultDevice.deviceId,this.selectedResultDevice.deviceName);
this.selectedDeviceName=this.selectedResultDevice.deviceName;this.selectedDeviceId=this.selectedResultDevice.deviceId;this.advanceStateHandler(3);},getSelectedOptionElementByEvent:function(evt){if(!evt){return(null);}var selElt=Event.findElement(evt,"select");var optElt=null;if(selElt){var optSel=selElt.selectedIndex;var immedDesc=selElt.immediateDescendants();if(immedDesc&&immedDesc.length>0){optElt=immedDesc[optSel];}}return(optElt);},resetSelectedOptionsToDefault:function(){var selCarriers=$(this.DEVICE_CXR_DROPDOWN);if(selCarriers){selCarriers.options[0].selected=true;}var selModels=$(this.DEVICE_MODEL_DROPDOWN);if(selModels){selModels.options[0].selected=true;}this.bCarrierFilter=false;this.bModelFilter=false;this.carrierFilterVal=null;this.modelFilterVal=null;},handleCarrierSelectChange:function(evt){var selectedOptionElt=this.getSelectedOptionElementByEvent(evt);if(!selectedOptionElt){return ;}var selOptVal=selectedOptionElt.value;if(selOptVal.indexOf("View All")!=-1){this.bCarrierFilter=false;this.carrierFilterVal=null;}else{this.bCarrierFilter=true;this.carrierFilterVal=selOptVal;}this._embedResultsHandlerInPage();},handleModelSelectChange:function(evt){var selectedOptionElt=this.getSelectedOptionElementByEvent(evt);if(!selectedOptionElt){return ;}var selOptVal=selectedOptionElt.value;if(selOptVal.indexOf("View All")!=-1){this.bModelFilter=false;this.modelFilterVal=null;}else{this.bModelFilter=true;this.modelFilterVal=selOptVal;}this._embedResultsHandlerInPage();}});

var handango={DEVICE_INDICATOR_MENU_OFFSET_X:-5,DEVICE_INDICATOR_MENU_OFFSET_Y:-2,MENU_MOUSEOUT_DELAY:400,CONTENT_ELEMENT_SELECTOR:"div#content",PRODUCT_GALLERY_NAVIGATION_ITEMS_GUTTER:25,SCREENSHOT_AND_NAVIGATION_LIST_SELECTOR:"ul.screenshot-and-navigation",SCREENSHOT_GALLERY_ELEMENT_ONE_OF_FOUR_SELECTOR:"div.screenshot-gallery-element-1-of-4",SCREENSHOT_GALLERY_ELEMENT_TWO_OF_FOUR_SELECTOR:"div.screenshot-gallery-element-2-of-4",SCREENSHOT_GALLERY_ELEMENT_THREE_OF_FOUR_SELECTOR:"div.screenshot-gallery-element-3-of-4",SCREENSHOT_GALLERY_ELEMENT_FOUR_OF_FOUR_SELECTOR:"div.screenshot-gallery-element-4-of-4",SCREENSHOT_GALLERY_THUMBNAIL_LINKS_SELECTOR:"dl.thumbnails dd a",SCREENSHOT_GALLERY_CLOSE_LINK_SELECTOR:"div.thumbnails-and-windowing-controls a.close",SCREENSHOT_GALLERY_MORE_IMAGES_SELECTOR:"div.thumbnails-and-windowing-controls dl dt",VENDOR_DATA_TRANSFER_SERVLET:"/servlet/VendorDataTransferServlet/vendorDataTransferServlet.ajax?VendorName=",WEBTRENDS_VENDOR_NAME:"WebTrends",RANGE_VENDOR_NAME:"RangeOnlineMedia",DEVICESELECTOR_TRIGGERS:"body.product-detail-section div#content div#primary-content div.product-summary p.compatibility.warning a",DEVICESELECTOR_CONTENTGROUP:"Device Selector",DEVICESELECTOR_SUB_INIT:"Initialized",DEVICESELECTOR_SUB_BAIL:"Bailed Out",DEVICESELECTOR_SUB_SELECTED:"Selected",ANONYMOUS_ELEMENT_ID:"anonymous",DEVICE_SELECTOR_BASE_OFFSET:161,DOC_MARGIN:13,DOC_WIDTH:965,WT_INJECT_TIMEOUT:0.5,menuTimer:null,menuActive:null,menuLast:null,setOnLoadProperly:false,nrOfSelectedUserDevices:-1,maxNrOfSelectedUserDevices:-1,deviceSelected:false,deviceSelectedId:null,displayDevSelectorArrow:true,deviceSelectorAddTriggered:false,deviceSelectorSearchTriggered:false,deviceSelectorProductTriggered:false,deviceSelectorProductBubbleTriggered:false,deviceSelectorTaxonomyTriggered:false,deviceSelectorLeftNavSearchTriggered:false,deviceSelectorLeftNavCatTriggered:false,deviceSelectorProductIdValue:null,deviceSelectorSearchFormValue:null,deviceSelectorPromoTriggered:false,deviceSelectorPromoUrl:null,preferredFileImageType:null,leaveOutDARGS:false,wtInfoBubbleTimer:null,webTrends_Domain:null,webTrends_DcsId:null,webTrends_Fpc:null,wtTimeStart:null,wtTimeEnd:null,webtrendsRequest:null,deviceNSearchValue:null,performRedirectToHomepage:null,isDeviceSelectorVisible:function(){var devSelElt=$("device-selector-lightbox-target");if(devSelElt){return(devSelElt.visible());}return(false);},initializeDeviceIndicatorMenu:function(){var deviceChoiceMenu=$("device-choice-menu");if(!deviceChoiceMenu){return ;}var deviceChoiceMenuTrigger=$("device-indicator").getElementsByClassName("change-your-device")[0];var menuPos=Position.positionedOffset(deviceChoiceMenuTrigger);var menuPosX=menuPos[0]+handango.DEVICE_INDICATOR_MENU_OFFSET_X;var menuPosY=menuPos[1]+deviceChoiceMenuTrigger.getHeight()+handango.DEVICE_INDICATOR_MENU_OFFSET_Y;deviceChoiceMenu.setStyle({left:menuPosX+"px",top:menuPosY+"px"});Event.observe(deviceChoiceMenuTrigger,"click",handango.openMenu);Event.observe(deviceChoiceMenuTrigger,"mouseover",function(){handango.menuActive="device-choice-menu";
});Event.observe(deviceChoiceMenuTrigger,"mouseout",function(){handango.menuActive="";});Event.observe(deviceChoiceMenu,"mouseover",function(){handango.menuActive="device-choice-menu";});Event.observe(deviceChoiceMenu,"mouseout",function(){handango.menuActive="";});},fixPNGAlpha:function(selector){if(/MSIE ((5\.5)|[6])/.test(navigator.userAgent)&&navigator.platform=="Win32"){var pngAlphaCollection=$$(selector);var img=new Image();var png;pngAlphaCollection.each(function(pngAlpha){png=pngAlpha.getStyle("background-image");if(png=="none"){pngAlpha.setStyle({backgroundImage:""});png=pngAlpha.getStyle("background-image");}png=png.substr((png.indexOf("(")+2),(png.indexOf(")")-(png.indexOf("(")+2)-1));img.src=png;pngAlpha.setStyle({zoom:"1",backgroundImage:"none",filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=crop, src='"+png+"')"});});}},openMenu:function(event){handango.checkMenuStatus();if(handango.menuActive){$(handango.menuActive).show();if(typeof WCH!="undefined"){WCH.Apply($(handango.menuActive),$(handango.menuActive).getOffsetParent(),true);}}Event.stop(event);},closeMenu:function(){if(handango.menuLast){if(typeof WCH!="undefined"){WCH.Discard($(handango.menuLast),$(handango.menuLast).getOffsetParent());}var handMenLast=$(handango.menuLast);if(handMenLast){handMenLast.hide();}}handango.menuLast=null;if(handango.menuTimer){clearTimeout(handango.menuTimer);handango.menuTimer=null;}},checkMenuStatus:function(){if(handango.menuActive!=handango.menuLast&&handango.menuLast!=null){handango.closeMenu();}else{handango.menuLast=handango.menuActive;handango.menuTimer=setTimeout("handango.checkMenuStatus()",handango.MENU_MOUSEOUT_DELAY);}},computeDeviceSelectorLeftOffset:function(){var docWidth=document.viewport.getWidth();if(docWidth<=(handango.DOC_WIDTH-handango.DOC_MARGIN)){return(handango.DEVICE_SELECTOR_BASE_OFFSET);}else{var offsetWidthHalf=((docWidth-handango.DOC_MARGIN)-handango.DOC_WIDTH)/2;return(offsetWidthHalf+handango.DEVICE_SELECTOR_BASE_OFFSET);}return(0);},validNumberOfDevices:function(event){if(handango.maxNrOfSelectedUserDevices>0){if(handango.nrOfSelectedUserDevices>=handango.maxNrOfSelectedUserDevices){alert("You cannot add anymore devices.");if(event){Event.stop(event);}return false;}}return true;},eventCameFromElementTypes:function(event,elementTypes){if(!event||!elementTypes||elementTypes.length==0){return(null);}var evtElt=Event.element(event);if(!evtElt){return(null);}var evtEltInspect=evtElt.inspect();var fndMatch=null;for(var idx=0,len=elementTypes.length;idx<len;++idx){var eltType=elementTypes[idx];if(eltType&&eltType.length>0){if(evtEltInspect.indexOf(eltType)>-1){fndMatch=evtElt;break;}var correctEltType=eltType;var gtIdx=eltType.indexOf("<");if(gtIdx==0){correctEltType=eltType.substring(1);}evtEltUp=evtElt.up(correctEltType);if(evtEltUp){fndMatch=evtEltUp;break;}}}return(fndMatch);},internalTriggerDeviceSelector:function(event){var evtElt=handango.eventCameFromElementTypes(event,["<a","<input"]);
if(evtElt){Homepage.deviceSelectStateController.setTriggeringEventElement(evtElt);Homepage.deviceSelectStateController.setInitialStage();Event.stop(event);handango.handleInitDeviceSelector(null);}else{Homepage.deviceSelectStateController.setTriggeringEventElement(null);Homepage.deviceSelectStateController.setInitialStage();handango.handleInitDeviceSelector(null);}},internalTriggerDeviceSelectorUrl:function(url){if(!StringUtils.isEmpty(url)){Homepage.deviceSelectStateController.setTriggeringEventUrl(url);Homepage.deviceSelectStateController.setTriggeringEventElement(null);Homepage.deviceSelectStateController.setInitialStage();handango.handleInitDeviceSelector(null);}else{Homepage.deviceSelectStateController.setTriggeringEventUrl(null);Homepage.deviceSelectStateController.setTriggeringEventElement(null);Homepage.deviceSelectStateController.setInitialStage();handango.handleInitDeviceSelector(null);}},setProductIdFromEvent:function(event){var prodIdVal=URLUtils.getUrlParameter("productId");var evtElt=null;var evtEltInspect=null;if(!prodIdVal){var evtElt=Event.element(event);if(evtElt){evtEltInspect=evtElt.inspect();if(evtEltInspect.indexOf("<img")!=-1){prodIdVal=evtElt.identify();}else{if(evtEltInspect.indexOf("<a")!=-1){var imgDownElt=evtElt.down("img");if(imgDownElt){prodIdVal=imgDownElt.identify();}if(!imgDownElt&&evtElt.hasAttribute("prodid")){prodIdVal=evtElt.readAttribute("prodid");}else{if(!imgDownElt){prodIdVal=evtElt.identify();}}}}}}if(prodIdVal.indexOf(handango.ANONYMOUS_ELEMENT_ID)!=-1){var evtEltLink=evtElt;if(evtEltInspect.indexOf("<a")==-1){evtEltLink=evtElt.up("a");}if(evtEltLink){var evtEltLinkHref=evtEltLink.readAttribute("href");if(!StringUtils.isEmpty(evtEltLinkHref)){var queryParamObj=evtEltLinkHref.toQueryParams();if(queryParamObj&&queryParamObj.productId){prodIdVal=queryParamObj.productId;}}}}if(StringUtils.containsNumericCharsOnly(prodIdVal)){handango.deviceSelectorProductIdValue=StringUtils.sanitizeString(prodIdVal);return(true);}return(false);},setSearchFromTopSearchTerms:function(event){if(!event){return(false);}var evtElt=Event.element(event);if(!evtElt){return(false);}var evtEltInspect=evtElt.inspect();if(!evtEltInspect){return(false);}if(evtEltInspect.indexOf("<a")!=-1){var evtEltInner=evtElt.innerHTML;if(evtEltInner&&evtEltInner.length>0){handango.deviceSelectorSearchFormValue=StringUtils.sanitizeString(evtElt.innerHTML);return(true);}}else{if(evtEltInspect.indexOf("<li")!=-1){var evtDown=evtElt.down("a");if(evtDown){var evtDownInner=evtDown.innerHTML;if(evtDownInner&&evtDownInner.length>0){handango.deviceSelectorSearchFormValue=StringUtils.sanitizeString(evtDown.innerHTML);return(true);}}}}return(false);},showDeviceSelector:function(){handango.handleInitDeviceSelectorOnlyValidateNumberDevices(null);},showDeviceSelectorPromo:function(targetUrl){if(handango.deviceSelected==false){handango.handleInitDeviceSelectorWithPromoUrl(targetUrl);}else{URLUtils.redirectToUrl(targetUrl,false);}},resetDeviceSelectorDisplayVars:function(){handango.displayDevSelectorArrow=false;
handango.deviceSelectorSearchTriggered=false;handango.deviceSelectorProductTriggered=false;handango.deviceSelectorProductBubbleTriggered=false;handango.deviceSelectorTaxonomyTriggered=false;handango.deviceSelectorLeftNavSearchTriggered=false;handango.deviceSelectorLeftNavCatTriggered=false;handango.deviceSelectorSearchFormValue=null;handango.deviceSelectorProductIdValue=null;handango.deviceSelectorPromoTriggered=false;handango.deviceSelectorPromoUrl=null;Homepage.deviceSelectStateController.triggeringEventElement=null;Homepage.deviceSelectStateController.triggeringEventUrl=null;},handleInitDeviceSelectorOnlyValidateNumberDevicesNoArrow:function(event){handango.resetDeviceSelectorDisplayVars();handango.displayDevSelectorArrow=false;handango.internalTriggerDeviceSelector(event);},handleInitDeviceSelectorOnlyValidateNumberDevices:function(event){handango.resetDeviceSelectorDisplayVars();handango.displayDevSelectorArrow=true;handango.internalTriggerDeviceSelector(event);},handleInitDeviceSelectorFromSearch:function(event){handango.resetDeviceSelectorDisplayVars();var searchStr=$F("query");handango.displayDevSelectorArrow=true;if(searchStr&&searchStr.length>0){handango.deviceSelectorSearchTriggered=true;handango.deviceSelectorSearchFormValue=StringUtils.sanitizeString(searchStr);}handango.internalTriggerDeviceSelector(event);},handleInitDeviceSelectorFromProduct:function(event){handango.resetDeviceSelectorDisplayVars();if(handango.setProductIdFromEvent(event)==true){handango.deviceSelectorProductTriggered=true;}handango.internalTriggerDeviceSelector(event);},handleInitDeviceSelectorFromPlatform:function(event){handango.resetDeviceSelectorDisplayVars();handango.internalTriggerDeviceSelector(event);},handleInitDeviceSelectorFromProductBubble:function(event){handango.resetDeviceSelectorDisplayVars();if(handango.setProductIdFromEvent(event)==true){handango.deviceSelectorProductBubbleTriggered=true;handango.deviceSelectorProductTriggered=true;}handango.internalTriggerDeviceSelector(event);},handleInitDeviceSelectorFromTaxonomy:function(event){handango.resetDeviceSelectorDisplayVars();handango.deviceSelectorTaxonomyTriggered=true;handango.internalTriggerDeviceSelector(event);},handleInitDeviceSelectorFromLeftNavSearch:function(event){handango.resetDeviceSelectorDisplayVars();if(handango.setSearchFromTopSearchTerms(event)==true){handango.deviceSelectorLeftNavSearchTriggered=true;handango.deviceSelectorSearchTriggered=true;}handango.internalTriggerDeviceSelector(event);},handleInitDeviceSelectorFromLeftNavCategory:function(event){handango.resetDeviceSelectorDisplayVars();handango.deviceSelectorLeftNavCatTriggered=true;handango.internalTriggerDeviceSelector(event);},handleInitDeviceSelectorWithPromoUrl:function(url){handango.resetDeviceSelectorDisplayVars();if(!StringUtils.isEmpty(url)){handango.deviceSelectorPromoTriggered=true;handango.deviceSelectorPromoUrl=url;}handango.internalTriggerDeviceSelectorUrl(url);},handleInitDeviceSelector:function(event){if(event!=null){handango.displayDevSelectorArrow=true;
handango.leaveOutDARGS=false;var curEvtElt=Event.element(event);if(curEvtElt){var curEvtEltName=curEvtElt.inspect();if(curEvtEltName.indexOf("li")>=0||curEvtEltName.indexOf("p")>=0){if(!curEvtElt.hasClassName("add")){handango.leaveOutDARGS=true;return ;}}else{if(curEvtEltName.indexOf("a")>=0&&curEvtElt.hasClassName("select-device")){var productBubbleElt=curEvtElt.up("div#info-bubble-element-1-of-2");if(productBubbleElt){productBubbleElt.hide();}handango.displayDevSelectorArrow=false;if(!this.validNumberOfDevices(event)){handango.leaveOutDARGS=true;return ;}}else{var nearestLi=curEvtElt.up("li");var bNearestLi=(nearestLi&&nearestLi.hasClassName("add"));if(!bNearestLi){var nearestP=curEvtElt.up("p");var bHasClassNameAdd=(nearestP&&nearestP.hasClassName("add"));var bHasCompatWarn=(nearestP&&nearestP.hasClassName("compatibility"));if(!bHasClassNameAdd&&!bHasCompatWarn){handango.leaveOutDARGS=true;return ;}if(bHasCompatWarn==true){handango.displayDevSelectorArrow=true;}}if(!this.validNumberOfDevices(event)){handango.leaveOutDARGS=true;return ;}}}}}else{if(!this.validNumberOfDevices(null)){handango.leaveOutDARGS=true;return ;}}var topScrollOffset=document.viewport.getScrollOffsets().top;var pixelRangeToConsiderScrollPositionNearTopOfScreen=60;var devSelectIndicator=$("device-selector-indicator");if(devSelectIndicator){if(topScrollOffset<pixelRangeToConsiderScrollPositionNearTopOfScreen&&handango.displayDevSelectorArrow==true){devSelectIndicator.show();}else{devSelectIndicator.hide();}Lightbox.showBoxByID("device-selector-lightbox-target",641,600);var boxElt=$("box");if(boxElt){var additionalOffsetLeft=0;var additionalOffsetTop=0;if(Prototype.Browser.Gecko==true&&Prototype.Browser.IE==false&&Prototype.Browser.WebKit==false){additionalOffsetLeft=handango.computeDeviceSelectorLeftOffset();additionalOffsetTop=61;}else{if(Prototype.Browser.Gecko==false&&Prototype.Browser.IE==true&&Prototype.Browser.WebKit==false){additionalOffsetTop=topScrollOffset+pixelRangeToConsiderScrollPositionNearTopOfScreen;additionalOffsetLeft=0;}else{additionalOffsetLeft=handango.computeDeviceSelectorLeftOffset();additionalOffsetTop=topScrollOffset+pixelRangeToConsiderScrollPositionNearTopOfScreen;}}if(topScrollOffset<pixelRangeToConsiderScrollPositionNearTopOfScreen){if(Prototype.Browser.Gecko==true&&Prototype.Browser.IE==false&&Prototype.Browser.WebKit==false){boxElt.setStyle({left:additionalOffsetLeft+"px",top:additionalOffsetTop+"px"});}else{if(Prototype.Browser.Gecko==false&&Prototype.Browser.IE==true&&Prototype.Browser.WebKit==false){boxElt.setStyle({top:additionalOffsetTop});}else{boxElt.setStyle({top:additionalOffsetTop+"px",left:additionalOffsetLeft+"px"});}}}}if(typeof WCH!="undefined"){var overlayElement=$("overlay");if(overlayElement){WCH.Apply(overlayElement,overlayElement.getOffsetParent(),true);}var deviceSelectorElement=$("device-selector-element");if(deviceSelectorElement){WCH.Apply(deviceSelectorElement,deviceSelectorElement.getOffsetParent(),true);}}}handango.fixPNGAlpha("div#device-selector-indicator");
if(event){Event.stop(event);}},initializeDeviceSelector:function(){if(!$("device-selector-element")){return ;}Lightbox.init();var devIndicatorElt=$("device-indicator");var addAnotherDevCssArray=$$("div#device-choice-menu ul li.add a");var initDevSelectBind=handango.handleInitDeviceSelector.bindAsEventListener(this);if(devIndicatorElt){Event.observe(devIndicatorElt,"click",initDevSelectBind);}if(addAnotherDevCssArray&&addAnotherDevCssArray.length>0){for(var idx=0;idx<addAnotherDevCssArray.length;++idx){Event.observe(addAnotherDevCssArray[idx],"click",initDevSelectBind);}}var devSelectCloseArr=$$("div#device-selector-controls ul li.close a");if(devSelectCloseArr&&devSelectCloseArr.length>0){Event.observe(devSelectCloseArr[0],"click",handango.closeDeviceSelector.bindAsEventListener(this));}var devSelectHelpArr=$$("div#device-selector-controls ul li.help a");if(devSelectHelpArr&&devSelectHelpArr.length>0){Event.observe(devSelectHelpArr[0],"click",handango.helpDeviceSelector.bindAsEventListener(this));}},helpDeviceSelector:function(event){},closeDeviceSelector:function(event){if(Homepage.deviceSelectStateController&&Homepage.deviceSelectStateController.progressOn&&Homepage.deviceSelectStateController.progressOn==true){if(event){Event.stop(event);}return ;}Lightbox.hideBox();handango.resetDeviceSelectorDisplayVars();if(typeof WCH!="undefined"){var overlayElement=$("overlay");if(overlayElement){WCH.Discard(overlayElement,overlayElement.getOffsetParent());}var deviceSelectorElement=$("device-selector-element");if(deviceSelectorElement){WCH.Discard(deviceSelectorElement,deviceSelectorElement.getOffsetParent());}}if(URLUtils.isJSPInCurrentUrl("Cart.jsp")==true&&handango.deviceSelected==false){handango.showDeviceSelector();}},alignNavigationLinksForProductGalleryScreenshots:function(screenshotGalleryElement){var screenshotAndNavigationList=$(screenshotGalleryElement).getElementsBySelector(this.SCREENSHOT_AND_NAVIGATION_LIST_SELECTOR)[0];var screenshotAndNavigationListParentElement=screenshotAndNavigationList.parentNode;var featuredImage=$(screenshotAndNavigationList).getElementsBySelector("li.screenshot img")[0];var backListItem=$(screenshotAndNavigationList).getElementsBySelector("li.back")[0];var nextListItem=$(screenshotAndNavigationList).getElementsBySelector("li.next")[0];var featuredImageWidth=0;if(typeof featuredImage!="undefined"){featuredImageWidth=$(featuredImage).getWidth();}var listItemOffset=($(screenshotAndNavigationListParentElement).getWidth()/2)-(featuredImageWidth/2)-$(backListItem).getWidth()-handango.PRODUCT_GALLERY_NAVIGATION_ITEMS_GUTTER;backListItem.setStyle({left:listItemOffset+"px"});nextListItem.setStyle({right:listItemOffset+"px"});},openScreenshotGallery:function(screenshotGalleryElement){screenshotGalleryElement=$(screenshotGalleryElement);if(screenshotGalleryElement.hasClassName("open")){return ;}else{screenshotGalleryElement.addClassName("open");if(typeof WCH!="undefined"){var screenshotGalleryElementTwoOfFour=$(screenshotGalleryElement.getElementsBySelector(this.SCREENSHOT_GALLERY_ELEMENT_TWO_OF_FOUR_SELECTOR)[0]);
WCH.Apply(screenshotGalleryElementTwoOfFour,screenshotGalleryElementTwoOfFour.getOffsetParent(),true);}}},closeScreenshotGallery:function(screenshotGalleryElement){screenshotGalleryElement=$(screenshotGalleryElement);if(screenshotGalleryElement.hasClassName("open")){if(typeof WCH!="undefined"){var screenshotGalleryElementTwoOfFour=$(screenshotGalleryElement.getElementsBySelector(this.SCREENSHOT_GALLERY_ELEMENT_TWO_OF_FOUR_SELECTOR)[0]);WCH.Discard(screenshotGalleryElementTwoOfFour,screenshotGalleryElementTwoOfFour.getOffsetParent());}screenshotGalleryElement.removeClassName("open");}},initializeScreenshotGallery:function(){var screenshotGalleryElements=$$(this.CONTENT_ELEMENT_SELECTOR+" "+this.SCREENSHOT_GALLERY_ELEMENT_ONE_OF_FOUR_SELECTOR);if(!screenshotGalleryElements.length){return ;}screenshotGalleryElements.each(function(screenshotGalleryElement){screenshotGalleryElement=$(screenshotGalleryElement);this.fixPNGAlpha(this.SCREENSHOT_GALLERY_ELEMENT_THREE_OF_FOUR_SELECTOR);this.fixPNGAlpha(this.SCREENSHOT_GALLERY_ELEMENT_FOUR_OF_FOUR_SELECTOR);var closeLinks=screenshotGalleryElement.getElementsBySelector(this.SCREENSHOT_GALLERY_CLOSE_LINK_SELECTOR);closeLinks.each(function(closeLink){Event.observe(closeLink,"click",function(event){handango.closeScreenshotGallery(this.up(handango.SCREENSHOT_GALLERY_ELEMENT_ONE_OF_FOUR_SELECTOR));Event.stop(event);});}.bind(this));var thumbnailLinkElements=screenshotGalleryElement.getElementsBySelector(handango.SCREENSHOT_GALLERY_THUMBNAIL_LINKS_SELECTOR);thumbnailLinkElements.each(function(thumbnailLink){Event.observe($$(handango.SCREENSHOT_GALLERY_MORE_IMAGES_SELECTOR)[0],"click",function(event){var screenshotAndNavigationList=this.up(handango.SCREENSHOT_GALLERY_ELEMENT_ONE_OF_FOUR_SELECTOR).down(handango.SCREENSHOT_AND_NAVIGATION_LIST_SELECTOR);var featuredImage=$(screenshotAndNavigationList).getElementsBySelector("li.screenshot img");if(typeof featuredImage=="undefined"){if(URLUtils.isIE8()){var newImageElement=document.createElement("img");newImageElement.setAttribute("src",thumbnailLinks[0].href);newImageElement.setAttribute("alt","");var newListItemElement=document.createElement("li");newListItemElement.setAttribute("class","screenshot");newListItemElement.appendChild(newImageElement);screenshotAndNavigationList.appendChild(newListItemElement);}else{var newListItemElement=new Element("li",{className:"screenshot"});var newImageElement=new Element("img",{src:thumbnailLinks[0].href,alt:""});newListItemElement.appendChild(newImageElement);screenshotAndNavigationList.appendChild(newListItemElement);}}else{featuredImage.src=thumbnailLink.href;}handango.openScreenshotGallery(screenshotGalleryElement);window.setTimeout(function(){handango.alignNavigationLinksForProductGalleryScreenshots(screenshotGalleryElement);}.bind(this),0);Event.stop(event);});}.bind(this));var backOrNextListElements=screenshotGalleryElement.getElementsBySelector(this.SCREENSHOT_AND_NAVIGATION_LIST_SELECTOR+" li.back",this.SCREENSHOT_AND_NAVIGATION_LIST_SELECTOR+" li.next");
backOrNextListElements.each(function(backOrNextListElement){var featuredImageListItem=backOrNextListElement.up("ul").down("li.screenshot");if(typeof featuredImageListItem=="undefined"){var thumbnailLinks=backOrNextListElement.up(this.SCREENSHOT_GALLERY_ELEMENT_ONE_OF_FOUR_SELECTOR).getElementsBySelector(this.SCREENSHOT_GALLERY_THUMBNAIL_LINKS_SELECTOR);if(thumbnailLinks&&thumbnailLinks.length>0){if(URLUtils.isIE8()){var newImageElement=document.createElement("img");newImageElement.setAttribute("src",thumbnailLinks[0].href);newImageElement.setAttribute("alt","");var newListItemElement=document.createElement("li");newListItemElement.setAttribute("class","screenshot");newListItemElement.appendChild(newImageElement);backOrNextListElement.up("ul").appendChild(newListItemElement);}else{var newListItemElement=new Element("li",{className:"screenshot"});var newImageElement=new Element("img",{src:thumbnailLinks[0].href,alt:""});newListItemElement.appendChild(newImageElement);backOrNextListElement.up("ul").appendChild(newListItemElement);}handango.alignNavigationLinksForProductGalleryScreenshots(screenshotGalleryElement);}}Event.observe(backOrNextListElement,"click",function(event){var thumbnailLinks=this.up(handango.SCREENSHOT_GALLERY_ELEMENT_ONE_OF_FOUR_SELECTOR).getElementsBySelector(handango.SCREENSHOT_GALLERY_THUMBNAIL_LINKS_SELECTOR);var numberOfThumbnailLinks=thumbnailLinks.length;var featuredImage=this.up("ul").down("li.screenshot img");var matchingLinkIndex=null;for(var i=0;i<numberOfThumbnailLinks;i++){if(thumbnailLinks[i].href==featuredImage.src){matchingLinkIndex=i;break;}}if(matchingLinkIndex===null){throw ("No matching thumbnail href found for featured image within screenshot gallery");}if(this.hasClassName("back")){var newThumbnailIndex=matchingLinkIndex-1;}else{if(this.hasClassName("next")){var newThumbnailIndex=matchingLinkIndex+1;}}if((newThumbnailIndex+1)>numberOfThumbnailLinks){newThumbnailIndex=0;}if(newThumbnailIndex<0){newThumbnailIndex=numberOfThumbnailLinks-1;}featuredImage.src=thumbnailLinks[newThumbnailIndex].href;handango.alignNavigationLinksForProductGalleryScreenshots(screenshotGalleryElement);Event.stop(event);});}.bind(this));}.bind(this));Event.observe(document.body,"click",function(event){var originatingScreenShotGallery=Event.element(event).up(handango.SCREENSHOT_GALLERY_ELEMENT_ONE_OF_FOUR_SELECTOR);if(typeof originatingScreenShotGallery!="undefined"){return ;}var screenshotGalleryElements=$$(handango.CONTENT_ELEMENT_SELECTOR+" "+handango.SCREENSHOT_GALLERY_ELEMENT_ONE_OF_FOUR_SELECTOR);screenshotGalleryElements.each(function(screenshotGalleryElement){if(screenshotGalleryElement.hasClassName("open")){this.closeScreenshotGallery(screenshotGalleryElement);Event.stop(event);}}.bind(this));}.bind(this));},fixPotentialFlickerInIE:function(){if(!Prototype.Browser.IE){return ;}try{document.execCommand("BackgroundImageCache",false,true);}catch(e){}},addOnClickToggleQuickInfoDisplay:function(clickElem,displayElemId){if(!clickElem){return(false);
}Element.observe(clickElem,"click",function(evt){var curDisplayElem=$(displayElemId);if(curDisplayElem){curDisplayElem.toggle();}Event.stop(evt);});},initializeInLineHelp:function(){var inLineHelpLinks=$$("div#content a.in-line-help");for(var i=0,len=inLineHelpLinks.length;i<len;i++){var currentLink=inLineHelpLinks[i];var targetIDArray=currentLink.href.match(/#(.*)/);if((!targetIDArray)||(!targetIDArray.length)){continue;}var targetID=targetIDArray[1];if((!targetID)||(!targetID.length)){continue;}else{if(!currentLink.hasClassName("active")){Element.hide(targetID);}}}Event.observe(document.body,"click",function(event){var originatingAnchorElement=Event.findElement(event,"a");if((!originatingAnchorElement)||(!originatingAnchorElement.hasClassName("in-line-help"))){return ;}var targetIDArray=originatingAnchorElement.href.match(/#(.*)/);if((!targetIDArray)||(!targetIDArray.length)){return ;}var targetID=targetIDArray[1];if((!targetID)||(!targetID.length)){return ;}var inLineHelpElement=$(targetID);if(!inLineHelpElement){return ;}if(Element.visible(inLineHelpElement)){inLineHelpElement.setAttribute("tabindex","0");inLineHelpElement.hide();originatingAnchorElement.removeClassName("active");originatingAnchorElement.addClassName("inactive");}else{if(!Element.visible(inLineHelpElement)){inLineHelpElement.show();originatingAnchorElement.addClassName("active");originatingAnchorElement.removeClassName("inactive");inLineHelpElement.setAttribute("tabindex","-1");window.setTimeout(function(){inLineHelpElement.focus();},0);}}Event.stop(event);});},initializeInPageHelp:function(){var inPageHelpTarget=$("in-page-help-target");if(!inPageHelpTarget){return ;}if(!$("overlay")){Lightbox.init();}Event.observe(document.body,"click",function(event){var originatingAnchorElement=Event.findElement(event,"a");if((!originatingAnchorElement)||(!originatingAnchorElement.hasClassName("in-page-help"))){return ;}var targetIDArray=originatingAnchorElement.href.match(/#(.*)/);if((!targetIDArray)||(!targetIDArray.length)){return ;}var targetID=targetIDArray[1];if((!targetID)||(!targetID.length)){return ;}var inPageHelpContentElement=$(targetID);if(!inPageHelpContentElement){return ;}var inPageHelpContentElementSiblings=inPageHelpContentElement.siblings();inPageHelpContentElementSiblings.each(Element.hide);inPageHelpContentElement.show();Lightbox.showBoxByID("in-page-help-target",641,600);if(typeof WCH!="undefined"){var overlayElement=$("overlay");WCH.Apply(overlayElement,overlayElement.getOffsetParent(),true);var inPageHelpElement=$("in-page-help-element");WCH.Apply(inPageHelpElement,inPageHelpElement.getOffsetParent(),true);}Event.stop(event);});Event.observe($$("div#in-page-help-controls ul li.close a")[0],"click",function(event){Lightbox.hideBox();if(typeof WCH!="undefined"){var overlayElement=$("overlay");WCH.Discard(overlayElement,overlayElement.getOffsetParent());var inPageHelpElement=$("in-page-help-element");WCH.Discard(inPageHelpElement,inPageHelpElement.getOffsetParent());}Event.stop(event);
});},setupEventHandlersForPrintLinks:function(){Event.observe(document.body,"click",function(event){var originatingAnchorElement=Event.findElement(event,"a");if((!originatingAnchorElement)||(!originatingAnchorElement.hasClassName("print"))){return ;}window.print();Event.stop(event);});},clearInputValue:function clearIt(){document.newslettersignup.emailAddress.value="";},setupEventHandlersForInputFieldsWithValueAttributesActingLikeLabels:function(){var inputElements=document.getElementsByTagName("input");for(var i=0,len=inputElements.length;i<len;i++){var currentInputElement=inputElements[i];if(!Element.hasClassName(currentInputElement,"value-attribute-pretending-to-be-a-label")){continue;}Event.observe(currentInputElement,"focus",function(event){var originatingInputElement=Event.element(event);if((!originatingInputElement)||(!originatingInputElement.hasClassName("value-attribute-pretending-to-be-a-label"))){return ;}if(originatingInputElement.hasClassName("inactive")){originatingInputElement.title=originatingInputElement.value;originatingInputElement.value="";originatingInputElement.removeClassName("inactive");originatingInputElement.addClassName("active");}});Event.observe(currentInputElement,"blur",function(event){var originatingInputElement=Event.element(event);if((!originatingInputElement)||(!originatingInputElement.hasClassName("value-attribute-pretending-to-be-a-label"))){return ;}if(!originatingInputElement.value.length){originatingInputElement.removeClassName("active");originatingInputElement.addClassName("inactive");originatingInputElement.value=originatingInputElement.title;}});}}};function initHandango(){if(handango.setOnLoadProperly){return ;}handango.initializeDeviceIndicatorMenu();handango.initializeDeviceSelector();handango.initializeInLineHelp();handango.initializeInPageHelp();handango.initializeScreenshotGallery();handango.fixPotentialFlickerInIE();handango.setupEventHandlersForPrintLinks();handango.setupEventHandlersForInputFieldsWithValueAttributesActingLikeLabels();handango.setOnLoadProperly=true;}document.observe("dom:loaded",initHandango);

var DeviceSelectorController=Class.create({DEVICE_SELECTOR_TITLE_ELEMENT:"tell-us-your-mobile-device-model",CONTINUE_ANYWAY_LINK_ID:"incompatible-continue-link",SEARCH_URL_PATH:"/catalog/SearchResults.jsp",COMPLETE_DEVICE_PATH:"/device/CompleteDeviceList.jsp",COMPLETE_DEVICE_LINK_KEY:"complete_dev_list_",COMPLETE_DEVICE_PATH_PARAM:"CRX",COMPLETE_DEVICE_PATH_QUERY_PARAM:"CRQ",COMPLETE_DEVICE_SEARCH_PARAM:"CRS",PROGRESS_ID:"step-progress-of-3",MAX_STAGE:3,NUM_COMPLETE_DEVICE_LINKS:4,initialize:function($super){this.dynamicSearchControl=new DeviceDynamicSearchHandler("device-information",["keyup","focus"]);this.customCheckHandler=this.handleDeviceSelectorStateChange.bindAsEventListener(this);this.bindCarrierManufacturerEvents();this.currentStage=0;this.setupConfirmDeviceLock=false;this.setupConfirmDeviceStatus=false;this.updateOccurred=false;this.deviceResultsControl=null;this.confirmDeviceControl=null;this.boundCloseSelect=null;this.boundBackDeviceSelect=null;this.boundNewSearchDeviceSelect=null;this.triggeringEventElement=null;this.productInfoRetriever=null;this.warningBoxElements=null;this.productCompatErrorStage=false;this.lastSelectorState=-1;this.boundIncompatMethod=this.handleIncompatStage.bindAsEventListener(this);this.continueToSubmitDeviceForm=false;this.productCategory=null;this.productCategorySearch=false;this.incompatStageOver=false;this.lastKeywordLength=0;this.boundIncompatContinueMethod=this.handleIncompatContinue.bindAsEventListener(this);this.progressOn=false;this.triggeringEventUrl=null;this.boundFinishSubmitMethod=this.finishSubmitStateHandle.bindAsEventListener(this);this.finalCurUrlPath=null;this.finalNewUrlQueryStr=null;this.finalAddDeviceForm=null;this.finalSelectedDevId=null;this.finalSelectedDevName=null;this.boundCompleteDeviceListMethod=this.handleCompleteDeviceList.bindAsEventListener(this);this._bindToDeviceSelectorClose();this._bindToBackButtonOnDeviceSelector();this._bindToNewSearchOnDeviceSelector();this._bindToIncompatStage();this._bindToCompleteDeviceList();},setInitialStage:function(){this.handleDeviceSelectorStateChange(1);},setTriggeringEventUrl:function(url){this.triggeringEventUrl=url;},setTriggeringEventElement:function(evtElt){this.triggeringEventElement=evtElt;},changeDeviceSelectorTitle:function(newTitle){var devSelectTitleElt=$(this.DEVICE_SELECTOR_TITLE_ELEMENT);if(devSelectTitleElt){devSelectTitleElt.update(newTitle);}},handleDeviceSelectorStateChange:function(stage){if(stage!="undefined"&&stage!=null&&stage>=0&&stage<=this.MAX_STAGE){this.currentStage=stage;}else{this.currentStage=0;}if(this.currentStage==0){this.lastSelectorState=0;return ;}if(this.currentStage==1){this._visuallyMoveDeviceSelectionStep(0,1);this.dynamicSearchControl.initializeWarningBox();this.lastSelectorState=1;}else{if(this.currentStage==2){this._visuallyMoveDeviceSelectionStep(1,2);this.lastSelectorState=2;if(!this.deviceResultsControl){this.deviceResultsControl=new DeviceResultsHandler("search-status","device-listing",this.dynamicSearchControl,this.dynamicSearchControl.advanceStateHandler);
}else{this.deviceResultsControl.update();}}else{if(this.currentStage==3){this.continueToSubmitDeviceForm=true;var selectedDev=null;var selectedDevURL=null;var selectedDevName=null;var selectedDevId=null;if(!this.incompatStageOver&&(handango.deviceSelectorProductTriggered||handango.deviceSelectorProductBubbleTriggered)&&handango.deviceSelectorProductIdValue){var prodInfo=null;var prodInfoAlt=null;if((this.lastSelectorState==1||this.lastSelectorState==2)&&this.dynamicSearchControl){selectedDev=this.dynamicSearchControl.selectedDevice;selectedDevURL=this.dynamicSearchControl.selectedDeviceImageUrl;if(!this.dynamicSearchControl.productInfoRetriever){prodInfo=this.dynamicSearchControl.prodInfoContainer;}else{prodInfoAlt=this.dynamicSearchControl.productInfoRetriever;}}else{if(this.lastSelectorState==2&&this.deviceResultsControl){selectedDev=this.deviceResultsControl.selectedResultDevice;selectedDevURL=this.deviceResultsControl.selectedResultDeviceURL;if(!this.dynamicSearchControl.productInfoRetriever){prodInfo=this.deviceResultsControl.prodInfoContainer;}else{prodInfoAlt=this.dynamicSearchControl.productInfoRetriever;}}}if(selectedDev&&selectedDev.productCompatible==false&&(prodInfo||prodInfoAlt)){if(prodInfo){this.productCategory=prodInfo.productCategory;}else{this.productCategory=prodInfoAlt.productCategory;}this.continueToSubmitDeviceForm=false;if(this.productCompatErrorStage==false){this.productCompatErrorStage=true;var result=this.populateIncompatStage(selectedDev,selectedDevURL,prodInfo,prodInfoAlt);if(!result){this.continueToSubmitDeviceForm=true;}else{this._visuallyMoveDeviceSelectionToIncompatible(this.lastSelectorState);}}}}if(this.continueToSubmitDeviceForm==true){if(this.lastSelectorState<=1&&this.dynamicSearchControl){selectedDevName=this.dynamicSearchControl.selectedDeviceName;selectedDevId=this.dynamicSearchControl.selectedDeviceId;selectedDevURL=this.dynamicSearchControl.selectedDeviceImageUrl;}else{if(this.lastSelectorState==2&&this.deviceResultsControl){selectedDevName=this.deviceResultsControl.selectedDeviceName;selectedDevId=this.deviceResultsControl.selectedDeviceId;selectedDevURL=this.deviceResultsControl.selectedResultDeviceURL;}}var addDevForm=FormUtils.getFormByName("addDeviceForm");if(addDevForm){this.engageProgressIndicator();var resObj=this.resolvePathFromExternalTriggers();this.triggeringEventElement=null;var urlMapRet=this.resolveUrlQueryString(resObj.curHrefSearchParams);var nttValue=this.computeNttValue();if(!StringUtils.isEmpty(nttValue)){if(resObj.searchForm){var queryElt=$("query");if(queryElt){queryElt.writeAttribute("value",nttValue);var searchFormExt=$(resObj.searchForm);this.finalCurUrlPath=resObj.curUrlPath;this.finalNewUrlQueryStr=urlMapRet.newUrlQueryStr;this.finalAddDeviceForm=addDevForm;this.finalSelectedDevId=selectedDevId;this.finalSelectedDevName=selectedDevName;resObj.searchForm.request({onSuccess:this.boundFinishSubmitMethod});}}}else{this.finalCurUrlPath=resObj.curUrlPath;this.finalNewUrlQueryStr=urlMapRet.newUrlQueryStr;
this.finalSelectedDevId=selectedDevId;this.finalSelectedDevName=selectedDevName;this.finalAddDeviceForm=addDevForm;this.finishSubmitStateHandle();}}}}}}},resolvePathFromExternalTriggers:function(){var retObj={curHref:null,curHrefSearchParams:null,curHrefPath:null,curUrlPath:URLUtils.getCurrentUrlPath(true),searchForm:FormUtils.getFormByName("searchForm")};if(this.triggeringEventElement){if(this.triggeringEventElement.hasAttribute("href")){retObj.curHref=this.triggeringEventElement.readAttribute("href");if(StringUtils.isNotEmpty(retObj.curHref)){retObj.curHrefSearchParams=URLUtils.getUrlSearchString(retObj.curHref);retObj.curHrefPath=URLUtils.getUrlPath(retObj.curHref,true);if(retObj.curHrefPath){retObj.curUrlPath=retObj.curHrefPath;}}}else{var upFormElt=this.triggeringEventElement.up("form");if(upFormElt){var formId=upFormElt.identify();if(StringUtils.isNotEmptyCompare(formId,"search")){retObj.curUrlPath=this.SEARCH_URL_PATH;}else{retObj.curUrlPath=upFormElt.action;}}}}else{if(!StringUtils.isEmpty(this.triggeringEventUrl)){retObj.curHref=this.triggeringEventUrl;if(StringUtils.isNotEmpty(retObj.curHref)){retObj.curHrefSearchParams=URLUtils.getUrlSearchString(retObj.curHref);retObj.curHrefPath=URLUtils.getUrlPath(retObj.curHref,true);if(StringUtils.isNotEmpty(retObj.curHrefPath)){retObj.curUrlPath=retObj.curHrefPath;}}}}if(this.productCategorySearch==true&&StringUtils.isNotEmpty(this.productCategory)){retObj.curUrlPath=this.SEARCH_URL_PATH;if(!retObj.searchForm){retObj.searchForm=FormUtils.getFormByName("searchForm");}}return(retObj);},resolveUrlQueryString:function(curHrefSearchParams){var retObj={curUrlMap:null,newUrlQueryStr:null};if(StringUtils.isNotEmpty(curHrefSearchParams)){retObj.curUrlMap=URLUtils.getUrlParameterMap(curHrefSearchParams);}else{retObj.curUrlMap=URLUtils.getUrlParameterMap();}if(!retObj.curUrlMap){retObj.curUrlMap=$H();}retObj.curUrlMap.unset("_DARGS");retObj.curUrlMap.unset("_DAV");retObj.curUrlMap.unset("N");retObj.curUrlMap.unset("_requestid");if(retObj.curUrlMap.get("Ntt")){handango.deviceSelectorSearchTriggered=true;handango.deviceSelectorSearchFormValue=StringUtils.sanitizeString(retObj.curUrlMap.get("Ntt"));}if(URLUtils.isJSPInCurrentUrl("Cart.jsp")==true){retObj.curUrlMap.unset("productId");}retObj.newUrlQueryStr=retObj.curUrlMap.toQueryString();return(retObj);},computeNttValue:function(){var nttValue=null;if(!this.productCategorySearch&&StringUtils.isNotEmpty(handango.deviceSelectorSearchFormValue)){nttValue=handango.deviceSelectorSearchFormValue;}else{if(this.productCategorySearch&&StringUtils.isNotEmpty(this.productCategory)){nttValue=this.productCategory;}}if(!StringUtils.isEmpty(nttValue)){nttValue=StringUtils.sanitizeString(nttValue);nttValue=decodeURI(nttValue);}return(nttValue);},closeDeviceSelectorWithError:function(){},finishSubmitStateHandle:function(){var actStr=this.finalCurUrlPath;if(!StringUtils.isEmpty(this.finalNewUrlQueryStr)){actStr=actStr+"?"+this.finalNewUrlQueryStr;}FormUtils.setDeviceFormData(this.finalSelectedDevId,this.finalSelectedDevName);
this.finalAddDeviceForm.action=actStr;this.finalAddDeviceForm.submit();},engageProgressIndicator:function(){if(Prototype.Browser.Opera||Prototype.Browser.WebKit||Prototype.Browser.Safari){return ;}var incompatElt=$("step-error-of-3");this.progressOn=true;if(incompatElt&&incompatElt.visible()==true){this._visuallyMoveFromIncompatibleToProgress();}else{this._visuallyMoveDeviceSelectionToProgress(this.lastSelectorState);}},_visuallyMoveDeviceSelectionStep:function(currentStep,nextStep){if(currentStep!=nextStep&&currentStep>0){if(currentStep!=-1){var curStepEltKey="step-"+currentStep+"-of-3";var curStepElt=$(curStepEltKey);if(curStepElt.visible()){curStepElt.hide();}}}if(nextStep>0){var nexStepEltKey="step-"+nextStep+"-of-3";var nexStepElt=$(nexStepEltKey);if(!nexStepElt.visible()){nexStepElt.show();}}},hideIncompatibleStage:function(bHideStage){var incompatEltKey="step-error-of-3";var incompatElt=$(incompatEltKey);if(!incompatElt){return ;}if(bHideStage==true){if(incompatElt.visible()){incompatElt.hide();}}else{if(!incompatElt.visible()){incompatElt.show();}}},_visuallyMoveDeviceSelectionToIncompatible:function(currentStep){if(currentStep>0){var curStepEltKey="step-"+currentStep+"-of-3";var curStepElt=$(curStepEltKey);if(curStepElt.visible()){curStepElt.hide();}}this.hideIncompatibleStage(false);},_visuallyMoveDeviceSelectionFromIncompatible:function(nextStep){this.hideIncompatibleStage(true);if(nextStep!=-1){var nextStepEltKey="step-"+nextStep+"-of-3";var nextStepElt=$(nextStepEltKey);nextStepElt.show();}},_visuallyMoveDeviceSelectionToProgress:function(currentStep){if(currentStep==-1){currentStep=1;}if(currentStep>0){var curStepEltKey="step-"+currentStep+"-of-3";var curStepElt=$(curStepEltKey);if(curStepElt.visible()){curStepElt.hide();}}this.hideProgressStage(false);},_visuallyMoveFromIncompatibleToProgress:function(){this.hideIncompatibleStage(true);this.hideProgressStage(false);},hideProgressStage:function(bHide){var progElt=$(this.PROGRESS_ID);if(progElt){if(bHide==true&&progElt.visible()){progElt.hide();}else{if(bHide==false&&!progElt.visible()){progElt.show();}}}},resetDeviceSelectorControllerState:function(){this.lastSelectorState=-1;this.productCompatErrorStage=false;this.selectedDevice=null;this.selectedDeviceURL=null;this.productInfoRetriever=null;this.finalCurUrlPath=null;this.finalNewUrlQueryStr=null;handango.resetDeviceSelectorDisplayVars();},resetSelectionOptions:function(){var carrierOption=$("device-selector-carrier");if(carrierOption){carrierOption.options[0].selected=true;}var manufacturerOption=$("device-selector-manufacturer");if(manufacturerOption){manufacturerOption.options[0].selected=true;}var carrierOption2=$("device-selector-carrier-2");if(carrierOption2){carrierOption2.options[0].selected=true;}var manufacturerOption2=$("device-selector-manufacturer-2");if(manufacturerOption2){manufacturerOption2.options[0].selected=true;}},_bindMethodToCssSelector:function(bindMeth,cssSelector,bindEvent){if(!bindMeth||StringUtils.isEmpty(cssSelector)||StringUtils.isEmpty(bindEvent)){return ;
}var cssArr=$$(cssSelector);if(cssArr&&cssArr.length>0){for(var idx=0,len=cssArr.length;idx<len;++idx){Event.observe(cssArr[idx],bindEvent,bindMeth);}}},_bindToDeviceSelectorClose:function(){this.boundCloseSelect=this.handleCloseDeviceSelector.bindAsEventListener(this);CSSUtils.bindElementsToHandleMethod("div#device-selector-controls ul li.close a",this.boundCloseSelect,"click");},_bindToBackButtonOnDeviceSelector:function(){this.boundBackDeviceSelect=this.handleBackDeviceSelector.bindAsEventListener(this);CSSUtils.bindElementsToHandleMethod("div.device-selector-content-group p.back a",this.boundBackDeviceSelect,"click");},_bindToNewSearchOnDeviceSelector:function(){this.boundNewSearchDeviceSelect=this.handleNewSearchDeviceSelector.bindAsEventListener(this);CSSUtils.bindElementsToHandleMethod("div.device-selector-content-group p.search-status em a, "+"div#step-error-of-3 dl.options dd a#incompat-device-restart-button, "+"div#step-2-of-3 form#select-device-step-2 "+"div.device-selector-primary-and-secondary-content-section-element-1-of-2 "+"div.device-selector-primary-and-secondary-content-section-element-2-of-2 "+"div.primary-content-section p a.sign-in",this.boundNewSearchDeviceSelect,"click");},_bindToCompleteDeviceList:function(){for(var idx=1,len=this.NUM_COMPLETE_DEVICE_LINKS;idx<=len;++idx){var curKey=""+this.COMPLETE_DEVICE_LINK_KEY+idx;var curKeyElt=$(curKey);if(curKeyElt){curKeyElt.observe("click",this.boundCompleteDeviceListMethod);}}},handleCompleteDeviceList:function(evt){if(!evt){return ;}var evtElt=Event.element(evt);var evtEltInspect=evtElt.inspect();if(!StringUtils.isEmpty(evtEltInspect)&&evtEltInspect.indexOf("<a")!=-1){var queryMap=$H();var resObj=this.resolvePathFromExternalTriggers();var urlObj=this.resolveUrlQueryString(resObj.curHrefSearchParams,null);var nttVal=this.computeNttValue();if(StringUtils.isNotEmpty(nttVal)){queryMap.set(this.COMPLETE_DEVICE_SEARCH_PARAM,nttVal);}queryMap.set(this.COMPLETE_DEVICE_PATH_PARAM,resObj.curUrlPath);if(StringUtils.isNotEmpty(urlObj.newUrlQueryStr)){queryMap.set(this.COMPLETE_DEVICE_PATH_QUERY_PARAM,urlObj.newUrlQueryStr);}var completeDeviceQueryStr=queryMap.toQueryString();var completeDeviceUrl=this.COMPLETE_DEVICE_PATH;if(StringUtils.isNotEmpty(completeDeviceQueryStr)){completeDeviceUrl=completeDeviceUrl+"?"+completeDeviceQueryStr;}URLUtils.redirectToUrl(completeDeviceUrl,false);}Event.stop(evt);},handleCloseDeviceSelector:function(event){if(this.progressOn==true){if(event){Event.stop(event);}return ;}var curStep=this.currentStage;this._visuallyMoveDeviceSelectionStep(curStep,1);this.hideIncompatibleStage(true);this.resetSelectionOptions();this.dynamicSearchControl.resetAll(true);this.resetDeviceSelectorControllerState();this.productCompatErrorStage=false;this.updateOccurred=true;},handleBackDeviceSelector:function(event){var curStep=this.currentStage;this._visuallyMoveDeviceSelectionStep(curStep,1);this.hideIncompatibleStage(true);this.dynamicSearchControl.resetAll(false);this.dynamicSearchControl.initializeWarningBox();
this.productCompatErrorStage=false;this.updateOccurred=true;this.handleDeviceSelectorStateChange(1);if(event){Event.stop(event);}},handleNewSearchDeviceSelector:function(event){this._visuallyMoveDeviceSelectionStep(this.currentStage,1);this.hideIncompatibleStage(true);this.dynamicSearchControl.resetAll(true);this.dynamicSearchControl.initializeWarningBox();this.productCompatErrorStage=false;this.updateOccurred=true;this.handleDeviceSelectorStateChange(1);if(event){Event.stop(event);}},isDeviceSelectorVisible:function(){var devSelElt=$("device-selector-lightbox-target");if(devSelElt){return(devSelElt.visible());}return(false);},populateIncompatStage:function(selectedDev,selectedDevURL,productInfo,productInfoAlt){if(!selectedDev||StringUtils.isEmpty(selectedDevURL)||(!productInfo&&!productInfoAlt)){return(false);}var deviceName=selectedDev.deviceName;var deviceManuf=selectedDev.deviceManufacturer;var deviceModel=selectedDev.deviceModel;var deviceOS=selectedDev.deviceOS;var deviceCarrier=selectedDev.deviceCarrier;if(StringUtils.isEmpty(deviceName)){deviceName="Unknown";}if(StringUtils.isEmpty(deviceManuf)){deviceManuf="Unknown";}if(StringUtils.isEmpty(deviceModel)){deviceModel="Unknown";}if(StringUtils.isEmpty(deviceOS)){deviceOS="Unknown";}if(StringUtils.isEmpty(deviceCarrier)){deviceCarrier="Unknown";}var productName=null;var productPrice=null;var productImgUrl=null;var productRatingImgUrl=null;var productCategory=null;if(productInfo){productName=productInfo.productName;productPrice=productInfo.productPrice;productImgUrl=productInfo.productImgUrl;productRatingImgUrl=productInfo.productRatingImgUrl;productCategory=productInfo.productCategory;}else{productName=productInfoAlt.productName;productPrice=productInfoAlt.productPrice;productImgUrl=productInfoAlt.productImgUrl;productRatingImgUrl=productInfoAlt.productRatingImgUrl;productCategory=productInfoAlt.productCategory;}var prodSumElt=$("device-step-product-summary");if(!prodSumElt){return(false);}var prodImgNode=null;if(StringUtils.isNotEmpty(productImgUrl)){prodImgNode=Builder.node("img",{className:"thumbnail",src:productImgUrl,width:"50",alt:""});}else{prodImgNode=Builder.node("img",{className:"thumbnail",alt:"",src:"../images/coverart/nopicture.gif",width:"50",onerror:"this.onerror=null;this.src='../images/coverart/nopicture.gif';"});}var prodDtImgNode=Builder.node("dt",[productName,prodImgNode]);var prodDdRateImgNode=null;if(StringUtils.isNotEmpty(productRatingImgUrl)){var prodRateImgNode=Builder.node("img",{className:"rating",src:productRatingImgUrl});prodDdRateImgNode=Builder.node("dd",{className:"price"},[productPrice,prodRateImgNode]);}else{prodDdRateImgNode=Builder.node("dd",{className:"price"},[productPrice]);}var prodDlNode=Builder.node("dl",[prodDtImgNode,prodDdRateImgNode]);prodSumElt.update();prodSumElt.insert(prodDlNode);var devSumElt=$("device-step-summary");if(!devSumElt){return(false);}var devImgNode=Builder.node("img",{src:selectedDevURL,width:"58",height:"75",alt:""});var devStrongNode=Builder.node("strong",deviceName);
var devLiNameNode=Builder.node("li",devStrongNode);var devLiOSNode=Builder.node("li","OS: "+deviceOS);var devUlNode=Builder.node("ul",[devLiNameNode,devLiOSNode]);devSumElt.update();devSumElt.insert({bottom:devImgNode});devSumElt.insert({bottom:devUlNode});return(true);},_bindToIncompatStage:function(){var incompatElt=$("incompat-device-similar-button");if(incompatElt){Event.observe(incompatElt,"click",this.boundIncompatMethod);}var continueLinkElt=$(this.CONTINUE_ANYWAY_LINK_ID);if(continueLinkElt){Event.observe(continueLinkElt,"click",this.boundIncompatContinueMethod);}},handleIncompatStage:function(evt){if(!evt){return ;}this.productCategorySearch=true;this.continueToSubmitDeviceForm=true;this.incompatStageOver=true;this.handleDeviceSelectorStateChange(3);Event.stop(evt);},handleIncompatContinue:function(evt){if(!evt){return ;}this.productCategorySearch=false;this.continueToSubmitDeviceForm=true;this.incompatStageOver=true;this.handleDeviceSelectorStateChange(3);Event.stop(evt);},bindCarrierManufacturerEvents:function(){this.bindHandleChangeCarrier=this.handleChangeCarrier.bindAsEventListener(this);this.bindHandleChangeManufacturer=this.handleChangeManufacturer.bindAsEventListener(this);var carrierOption=$("device-selector-carrier");if(carrierOption){carrierOption.observe("change",this.bindHandleChangeCarrier);}var manufacturerOption=$("device-selector-manufacturer");if(manufacturerOption){manufacturerOption.observe("change",this.bindHandleChangeManufacturer);}var carrierOption2=$("device-selector-carrier-2");if(carrierOption2){carrierOption2.observe("change",this.bindHandleChangeCarrier);}var manufacturerOption2=$("device-selector-manufacturer-2");if(manufacturerOption2){manufacturerOption2.observe("change",this.bindHandleChangeManufacturer);}},handleChangeCarrier:function(evt){if(!evt){return ;}var el=$(Event.element(evt));var val=el.options[el.selectedIndex].text;var url="/servlet/DeviceDynamicSearchServlet/search.ajax?carrierName="+URLUtils.encode(val);new Ajax.Request(url,{method:"get",onSuccess:this.handleCarrierSearchSuccess.bindAsEventListener(this)});},handleChangeManufacturer:function(evt){if(!evt){return ;}var el=$(Event.element(evt));var val=el.options[el.selectedIndex].text;var url="/servlet/DeviceDynamicSearchServlet/search.ajax?manufacturerName="+URLUtils.encode(val);new Ajax.Request(url,{method:"get",onSuccess:this.handleCarrierSearchSuccess.bindAsEventListener(this)});},handleCarrierSearchSuccess:function(XHRTransport){var returnJSON=null;if(XHRTransport){returnJSON=XHRTransport.responseJSON;}if(returnJSON==null){return ;}var displayName=returnJSON.displayName;var popularManuf=$("popular_carrier_manuf_name");var popularCarrier=$("platform_device_carrier_manuf_name");if(popularManuf){popularManuf.innerHTML=displayName;}if(popularCarrier){popularCarrier.innerHTML=displayName;}var popularDevices=returnJSON.popularDevices;this.populatePopularDevices(popularDevices,displayName);var platformDevices=returnJSON.platformDevices;var allDevices=returnJSON.allDevices;
this.populateCompleteDevices(allDevices);this.setCarrierOptionSelected(displayName);this.handleDeviceSelectorStateChange(2);this.dynamicSearchControl._bindToCarrierManufacturerDevices();},populatePopularDevices:function(popularDevices,displayName){var val="";if(popularDevices==null||popularDevices.length==0){$("most_popular_top_devices_title").innerHTML=val;$("most_popular_top_devices").innerHTML=val;return ;}$("most_popular_top_devices_title").innerHTML='<b>Most Popular <span id="popular_carrier_manuf_name">'+displayName+"</span> Phones </b>";var len=popularDevices.length;if(len>10){len=10;}val=val+'<table width="100%">';for(var i=0;i<popularDevices.length&&i<10;i++){var device=popularDevices[i];var deviceImage="http://"+device.deviceLargeImageUrl;var deviceId=device.deviceId;var deviceName=device.deviceName;var mod=i%5;if(mod==0){val=val+'<tr style="height:150px;">';}val=val+'<td width="20%"><a><span id="li_'+deviceId+'" style="text-align:center; color:#848484; font-weight:bold "><img height="75" width="58" src="';val=val+deviceImage+'" alt="'+deviceName+'"/><br/>';val=val+deviceName+"</span></a></td>";if(mod==4){val=val+"</tr>";}else{if(i==len-1){for(var j=0;j<4-i;j++){val=val+"<td></td>";}val=val+"</tr>";}}}val=val+"</table>";$("most_popular_top_devices").innerHTML=val;},setCarrierOptionSelected:function(selectedValue){var carrierOption=$("device-selector-carrier-2");var manufactureOption=$("device-selector-manufacturer-2");if(carrierOption){carrierOption[0].selected=true;}if(manufactureOption){manufactureOption[0].selected=true;}var found=false;if(selectedValue&&carrierOption){for(var i=0;i<carrierOption.length;i++){if(carrierOption[i].text==selectedValue){carrierOption[i].selected=true;found=true;break;}}}if(found==false&&selectedValue&&manufactureOption){for(var i=0;i<manufactureOption.length;i++){if(manufactureOption[i].text==selectedValue){manufactureOption[i].selected=true;break;}}}},populateCompleteDevices:function(allDevices){var val="";if(allDevices==null){$("carrier-manufacture-all-devices").innerHTML=val;return ;}var len=allDevices.length;val=val+'<table width="100%">';for(var i=0;i<allDevices.length;i++){var device=allDevices[i];var deviceImage=null;if(StringUtils.endsWith(device.deviceLargeImageUrl,"NoDeviceAvail_LG.png")){deviceImage=device.deviceLargeImageUrl;}else{deviceImage="http://"+device.deviceLargeImageUrl;}var deviceId=device.deviceId;var deviceName=device.deviceName;var mod=i%5;if(mod==0){val=val+'<tr style="height:150px;">';}val=val+'<td width="20%"><a><span id="li_'+deviceId+'" style="text-align:center; color:#848484; font-weight:bold "><img height="75" width="58" src="';val=val+deviceImage+'" alt="'+deviceName+'"/><br/>';val=val+deviceName+"</span></a></td>";if(mod==4){val=val+"</tr>";}else{if(i==len-1){for(var j=0;j<4-i;j++){val=val+"<td></td>";}val=val+"</tr>";}}}val=val+"</table>";$("carrier-manufacture-all-devices").innerHTML=val;},handleCarrierSearchFailure:function(XHRTransport){}});

var carousel={ITEMS_PER_PAGE:4,CONTENT_DIV_ID:"content",TABS_WITH_CAROUSELS_CLASS:"tabs-with-carousel",CAROUSEL_CLASS:"carousel",BRIEF_CAROUSEL_NAVIGATION_CLASS:"brief-carousel-navigation",VERBOSE_CAROUSEL_NAVIGATION_CLASS:"verbose-carousel-navigation",VERBOSE_NEXT_LINK_CLASS:"forward",VERBOSE_BACK_LINK_CLASS:"back",BRIEF_NEXT_LINK_CLASS:"next",BRIEF_BACK_LINK_CLASS:"back",CAROUSEL_ITEM_LIST_CONTAINER_CLASS:"carousel-items-container",CAROUSEL_ITEM_LIST_CLASS:"carousel-items",carouselArray:new Array(),initCarousel:function(){$$("#"+carousel.CONTENT_DIV_ID+" ul."+carousel.BRIEF_CAROUSEL_NAVIGATION_CLASS).each(Element.show);$$("#"+carousel.CONTENT_DIV_ID+" ul."+carousel.VERBOSE_CAROUSEL_NAVIGATION_CLASS).each(Element.show);var carouselHandler=Class.create({initialize:function(element){this.now=0;this.element=$(element);this.name=this.element.id;this.currentPage=0;this.params=Object.extend({duration:0.8},arguments[1]||{});this.carouselItemsList=this.element.getElementsByClassName(carousel.CAROUSEL_ITEM_LIST_CLASS)[0];if(this.carouselItemsList){this.carouselItemsCollection=this.carouselItemsList.immediateDescendants();}if(this.carouselItemsCollection){this.carouselItemsListLength=this.carouselItemsCollection.size();}else{this.carouselItemsListLength=0;}this.pageCount=Math.ceil(this.carouselItemsListLength/carousel.ITEMS_PER_PAGE);this.verboseCarouselNavigation=this.element.getElementsByClassName(carousel.VERBOSE_CAROUSEL_NAVIGATION_CLASS)[0];this.carouselVerboseListItemArray=new Array();this.carouselVerboseLinkArray=new Array();this.carouselItemsContainer=this.element.getElementsByClassName(carousel.CAROUSEL_ITEM_LIST_CONTAINER_CLASS)[0];this.element.show();if(this.carouselItemsContainer){this.carouselItemsContainerWidth=this.carouselItemsContainer.getWidth();}this.carouselItemWidth=0;if(this.carouselItemsCollection&&this.carouselItemsCollection.length>0){var carouselItem=this.carouselItemsCollection[0];if(carouselItem){var carouselItemWidth=carouselItem.getWidth();var carouselItemMarginLeft=carouselItem.getStyle("margin-left");var carouselItemMarginLeftNum=0;if(!StringUtils.isEmpty(carouselItemMarginLeft)){carouselItemMarginLeftNum=StringUtils.parseFrontInt(carouselItemMarginLeft);if(carouselItemMarginLeftNum==NaN){carouselItemMarginLeftNum=0;}}var carouselItemMarginRight=carouselItem.getStyle("margin-right");var carouselItemMarginRightNum=0;if(!StringUtils.isEmpty(carouselItemMarginRight)){carouselItemMarginRightNum=StringUtils.parseFrontInt(carouselItemMarginRight);if(carouselItemMarginRightNum==NaN){carouselItemMarginRightNum=0;}}this.carouselItemWidth=carouselItemWidth+carouselItemMarginLeftNum+carouselItemMarginRightNum;}}this.slideDistance=this.carouselItemWidth*carousel.ITEMS_PER_PAGE;this.element.className=carousel.CAROUSEL_CLASS+" page-1-selected";this.shiftEffectClass=null;},scripIsAnimated:function(){if(this.shiftEffectClass&&this.shiftEffectClass.state!="finished"){return(true);}return(false);},scripShiftX:function(elemToShift,from,to){if(elemToShift=="undefined"||elemToShift==null){return ;
}if(this.scripIsAnimated()){return ;}else{this.shiftEffectClass=null;}var shiftChange=to-from;this.shiftEffectClass=new Effect.Move(elemToShift,{x:shiftChange,duration:this.params.duration});this.now+=shiftChange;},scroll:function(trigger){if(!trigger){return ;}var goToNavIndex=null;if(this.scripIsAnimated()){return ;}var scripEl=this.carouselItemsList;if(trigger.parentNode.hasClassName(carousel.BRIEF_BACK_LINK_CLASS)||trigger.parentNode.hasClassName(carousel.VERBOSE_BACK_LINK_CLASS)){if(this.currentPage>0){this.currentPage--;this.scripShiftX(scripEl,this.now,this.now+this.slideDistance);}else{if(this.currentPage==0){this.currentPage=this.pageCount-1;this.scripShiftX(scripEl,this.now,this.currentPage*this.slideDistance*-1);}else{return ;}}}else{if(trigger.parentNode.hasClassName(carousel.BRIEF_NEXT_LINK_CLASS)||trigger.parentNode.hasClassName(carousel.VERBOSE_NEXT_LINK_CLASS)){if(this.currentPage<this.pageCount-1){this.currentPage++;this.scripShiftX(scripEl,this.now,this.now-this.slideDistance);}else{if(this.currentPage==this.pageCount-1){this.currentPage=0;this.scripShiftX(scripEl,this.now,0);}else{return ;}}}else{this.verboseCarouselNavigation.immediateDescendants().each(function(navElement,index){if(navElement.childElements()[0]==trigger){goToNavIndex=index-1;$break;}});if((goToNavIndex!=null)&&(goToNavIndex!=this.currentPage)){this.currentPage=goToNavIndex;this.scripShiftX(scripEl,this.now,goToNavIndex*this.slideDistance*-1);}}}this.element.className=carousel.CAROUSEL_CLASS+" page-"+(this.currentPage+1)+"-selected";}});$$("#"+carousel.CONTENT_DIV_ID+" div."+carousel.CAROUSEL_CLASS).each(function(carouselDiv,index){carousel.carouselArray[index]=new carouselHandler(carouselDiv,{duration:0.8});Event.observe(carouselDiv,"click",carousel.processCarouselClick);Event.observe($(carouselDiv.id+"-tab"),"click",carousel.openCarouselTab);});carousel.openCarouselTab();},openCarouselTab:function(event){var elementTabId=null;if(event){var elementFromEvent=Event.findElement(event,"li");if(elementFromEvent!=null){elementTabId=elementFromEvent.id.split("-tab")[0];}}var carouselElts=$$("#"+carousel.CONTENT_DIV_ID+" div."+carousel.CAROUSEL_CLASS);if((!carouselElts||carouselElts.length==0)&&!elementTabId){return ;}var carouselID=(elementTabId)?elementTabId:carouselElts[0].id;$$("#"+carousel.CONTENT_DIV_ID+" div."+carousel.TABS_WITH_CAROUSELS_CLASS)[0].className=carousel.TABS_WITH_CAROUSELS_CLASS+" "+carouselID+"-selected";carousel.carouselArray.each(function(carousel){if(carousel.name==carouselID){carousel.element.show();}else{carousel.element.hide();}});if(event){Event.stop(event);}},processCarouselClick:function(event){if(!event){return ;}var target=Event.element(event);var activeCarousel=Event.findElement(event,"div");var activeCarouselItems=activeCarousel.getElementsByClassName(carousel.CAROUSEL_ITEM_LIST_CLASS)[0];var isBrief=false;var isVerbose=false;var evElemFind=Event.findElement(event,"ul");if(evElemFind){var isBrief=evElemFind.hasClassName(carousel.BRIEF_CAROUSEL_NAVIGATION_CLASS);
if(!isBrief){isVerbose=evElemFind.hasClassName(carousel.VERBOSE_CAROUSEL_NAVIGATION_CLASS);}if(isBrief||isVerbose){carousel.carouselArray.each(function(thisCarousel){if(thisCarousel.name==activeCarousel.id){thisCarousel.scroll(target);$break;}});if(event){Event.stop(event);}}}},setOnLoadProperly:false};function initCarousel(){if(carousel.setOnLoadProperly){return ;}carousel.initCarousel();carousel.setOnLoadProperly=true;}document.observe("dom:loaded",initCarousel);

var CompleteDeviceList=Class.create({COMPLETE_DEVICE_ID:"device-model-listing",COMPLETE_DEVICE_LIST:"device-model-list",COMPLETE_DEVICE_GRID:"device-model-grid",COMPLETE_DEVICE_GRID_PICK:"device-pick",COMPLETE_GO_BUTTON_CLASS:"complete-go-button",COMPLETE_GO_CARRIER_ID:"carrier-go-button",COMPLETE_GO_MODEL_ID:"model-go-button",DEVICE_LIST_PICK_CLASS:"div#device-model-listing div dl dd.device-model a.device-pick",DEVICE_GRID_PICK_CLASS:"div#device-model-listing div ul li.device-model a.device-pick",DEVICE_FILTER_CONTAINER:"device-filter",FILTER_DEVICES_CARRIER:"filterDevicesCarrierForm",FILTER_DEVICES_MODEL:"filterDevicesModelForm",LINK_CSS_SELECTOR:"div.device-model-list-group dl dd a.device-pick",COMPLETE_DEVICE_PATH_PARAM:"CRX",COMPLETE_DEVICE_PATH_QUERY_PARAM:"CRQ",COMPLETE_DEVICE_SEARCH_PARAM:"CRS",BUBBLE_TIMEOUT:1,initialize:function(){this.initialized=false;var completeDevList=$(this.COMPLETE_DEVICE_ID);if(!completeDevList){return ;}this.bIsGridMode=true;if(completeDevList.hasClassName(this.COMPLETE_DEVICE_LIST)){this.bIsGridMode=false;}this.initialized=true;this.boundHandleForListClicks=null;this._bindToListClicks();this.boundHandleGoClicks=null;this._bindToGoClicks();this.boundOverHandleForDeviceBubbles=null;this.boundOutHandleForDeviceBubbles=null;this.boundFinalAddDeviceFormSubmit=null;this.finalCurUrlPath=null;this.finalNewUrlQueryStr=null;this.finalAddDeviceForm=null;this.lastUrlPath=null;this.lastUrlQuery=null;this.lastUrlSearch=null;this.finalDeviceName=null;this.finalDeviceId=null;if(this.bIsGridMode==false){this._bindToShowDeviceBubbles();}this.boundFinalAddDeviceFormSubmit=this.finalizeSubmitAddDeviceForm.bindAsEventListener(this);var curQueryDiv=$("complete-device-redirect");if(curQueryDiv){this.lastUrlPath=curQueryDiv.readAttribute(this.COMPLETE_DEVICE_PATH_PARAM);this.lastUrlQuery=curQueryDiv.readAttribute(this.COMPLETE_DEVICE_PATH_QUERY_PARAM);this.lastUrlSearch=curQueryDiv.readAttribute(this.COMPLETE_DEVICE_SEARCH_PARAM);}},_bindToListClicks:function(){if(!this.initialized){return ;}var outerDivListElt=$(this.COMPLETE_DEVICE_ID);if(outerDivListElt){this.boundHandleForListClicks=this.handleListClicks.bindAsEventListener(this);outerDivListElt.observe("click",this.boundHandleForListClicks);}},_bindToShowDeviceBubbles:function(){if(!this.initialized){return ;}var outerDivListElt=$(this.COMPLETE_DEVICE_ID);if(outerDivListElt){this.boundOverHandleForDeviceBubbles=this.handleShowDeviceBubble.bindAsEventListener(this);this.boundOutHandleForDeviceBubbles=this.handleMouseOutDeviceBubble.bindAsEventListener(this);var devLinksArr=outerDivListElt.select(this.LINK_CSS_SELECTOR);if(devLinksArr&&devLinksArr.length>0){for(var idx=0,len=devLinksArr.length;idx<len;++idx){var curElt=devLinksArr[idx];curElt.observe("mouseover",this.boundOverHandleForDeviceBubbles);curElt.observe("mouseout",this.boundOutHandleForDeviceBubbles);}}}},_bindToGoClicks:function(){if(!this.initialized){return ;}var devFilterContainer=$(this.DEVICE_FILTER_CONTAINER);if(!devFilterContainer){return ;
}this.boundHandleGoClicks=this.handleGoClicks.bindAsEventListener(this);devFilterContainer.observe("click",this.boundHandleGoClicks);},handleListClicks:function(evt){if(!evt){return ;}var eltClickedOn=Event.element(evt);if(!eltClickedOn){return ;}var upEltDevice=null;if(this.bIsGridMode){upEltDevice=eltClickedOn.up("li.device-model");}else{upEltDevice=eltClickedOn.up("dd.device-model");}if(!upEltDevice){return ;}var upEltDeviceId=upEltDevice.identify();if(!upEltDeviceId){return ;}var dashIdx=upEltDeviceId.lastIndexOf("-");var devIdAfterDash=upEltDeviceId.substring(dashIdx+1);if(devIdAfterDash&&devIdAfterDash.length>0){var deviceId=parseInt(devIdAfterDash);var anchorTagElt=null;var eltClickIns=eltClickedOn.inspect();var anchorTagInspect=null;if(eltClickIns.indexOf("<a")!=-1&&eltClickIns.indexOf("device-pick")!=-1){anchorTagElt=eltClickedOn;anchorTagInspect=eltClickIns;}else{anchorTagElt=upEltDevice.down("a.device-pick");}if(anchorTagElt==null){return ;}anchorTagElt.cleanWhitespace();var deviceName=null;if(this.bIsGridMode){deviceName=anchorTagElt.lastChild.nodeValue;}else{deviceName=anchorTagElt.firstChild.nodeValue;}FormUtils.setDeviceFormData(deviceId,deviceName);this._submitAddDeviceForm(deviceId,deviceName);}},handleShowDeviceBubble:function(evt){if(!evt||this.bIsGridMode){return ;}var evtElt=Event.element(evt);var evtEltName=evtElt.inspect();var imgElt=null;var eltUp=evtElt.up("dd.device-model");var anchorElt=null;var anchorTxt=null;if(eltUp){imgElt=eltUp.down("img");anchorElt=eltUp.down("a").cleanWhitespace();anchorTxt=anchorElt.firstChild.nodeValue;}if(!imgElt||!eltUp||!anchorElt){return ;}var tmpImgAttr=imgElt.readAttribute("tmp");if(!tmpImgAttr||tmpImgAttr.length==0){return ;}imgElt.writeAttribute("src",tmpImgAttr);var bubbleElt=imgElt.up(this.COMPLETE_DEVICE_LIST_BUBBLE_1);if(!bubbleElt){return ;}var bubbleWidth=bubbleElt.getWidth();var rulerElt=$("ruler");rulerElt.update(anchorTxt);anchorWidth=rulerElt.getWidth()-(bubbleWidth/2)+5;bubbleElt.clonePosition(evtElt,{setWidth:false,setHeight:false,offsetTop:-120,offsetLeft:anchorWidth});bubbleElt.show();},handleMouseOutDeviceBubble:function(evt){if(!evt){return ;}var fndElt=Event.findElement(evt,"dd.device-model");if(!fndElt){return ;}var bubbleElt=fndElt.down(this.COMPLETE_DEVICE_LIST_BUBBLE_1);if(!bubbleElt){return ;}bubbleElt.hide();if(!evt){Event.stop(evt);}},handleGoClicks:function(evt){if(!evt){return ;}var fireElt=Event.element(evt);var anchorElt=null;if(fireElt.inspect().indexOf("<a")!=-1){anchorElt=fireElt;}else{anchorElt=fireElt.up("a.complete-go-button");}if(!anchorElt){return ;}var anchorId=anchorElt.identify();if(anchorId==this.COMPLETE_GO_CARRIER_ID){var carFormElt=FormUtils.getFormByName(this.FILTER_DEVICES_CARRIER);if(carFormElt){carFormElt.submit();}}else{if(anchorId==this.COMPLETE_GO_MODEL_ID){var modFormElt=FormUtils.getFormByName(this.FILTER_DEVICES_MODEL);if(modFormElt){modFormElt.submit();}}}},_submitAddDeviceForm:function(deviceId,deviceName){if(!this.initialized){return ;
}var formElt=FormUtils.getFormByName("addDeviceForm");if(!formElt){return ;}if(!StringUtils.isEmpty(this.lastUrlPath)){var lastUrl=decodeURI(this.lastUrlPath);lastUrl=StringUtils.sanitizeString(lastUrl);var lastQuery=null;var lastQueryMap=$H();if(!StringUtils.isEmpty(this.lastUrlQuery)){lastQuery=decodeURI(this.lastUrlQuery);lastQuery=StringUtils.sanitizeString(lastQuery);lastQueryMap=$H(lastQuery.toQueryParams());lastQueryMap.unset("_DARGS");lastQueryMap.unset("_DAV");lastQueryMap.unset("N");lastQueryMap.unset("Ntt");lastQueryMap.unset("_requestid");}lastQuery=lastQueryMap.toQueryString();if(!StringUtils.isEmpty(this.lastUrlSearch)){var nttValue=decodeURI(this.lastUrlSearch);nttValue=StringUtils.sanitizeString(nttValue);var searchForm=FormUtils.getFormByName("searchForm");if(searchForm){var queryElt=$("query");if(queryElt){queryElt.writeAttribute("value",nttValue);var searchFormExt=$(searchForm);this.finalCurUrlPath=lastUrl;this.finalNewUrlQueryStr=lastQuery;this.finalAddDeviceForm=formElt;this.finalDeviceId=deviceId;this.finalDeviceName=deviceName;searchForm.request({onSuccess:this.boundFinalAddDeviceFormSubmit});return ;}}}else{this.finalCurUrlPath=lastUrl;this.finalNewUrlQueryStr=lastQuery;this.finalAddDeviceForm=formElt;this.finalDeviceId=deviceId;this.finalDeviceName=deviceName;this.finalizeSubmitAddDeviceForm();return ;}}formElt.action="/homepage/Homepage.jsp?storeId=2218";formElt.submit();},finalizeSubmitAddDeviceForm:function(){var actStr=this.finalCurUrlPath;if(!StringUtils.isEmpty(this.finalNewUrlQueryStr)){actStr=actStr+"?"+this.finalNewUrlQueryStr;}FormUtils.setDeviceFormData(this.finalDeviceId,this.finalDeviceName);this.finalAddDeviceForm.action=actStr;this.finalAddDeviceForm.submit();}});

CarrierManufacturerDevice=Class.create(CommonSubmitHandler,{initialize:function($super,nodeId){alert("innit carrierdevice");this.requestComplete=false;this.externalSuccessMethod=extSuccessMethod;$super("/servlet/DeviceDynamicSearchServlet/search.ajax",{},"GET",null,null,{async:true,manualTrigger:true,useJSON:true,useTimeout:false,errorMsg:"MiniCart retrieve error",checkOrigin:false,handleRequestSuccessCustom:this.handleInfoSuccess.bindAsEventListener(this),handleRequestFailureCustom:this.handleInfoFailure.bindAsEventListener(this)});this.handleCreateRequest(null);},handleInfoSuccess:function(retXHR){if(!retXHR){this.requestComplete=true;return ;}alert("ajax sucess");},handleInfoFailure:function(retXHR){this.requestComplete=true;}});

var Homepage={DEVICE_SELECTOR_ROOT:"device-selector-lightbox-target",DEVICE_CONF_BUBBLE_TIME:5,topNavSlideToggle:null,devSearch:null,devConfirm:null,deviceSelectStateController:null,completeListControl:null,setElementTextDecoUnderline:function(event){Event.element(event).setStyle({"text-decoration":"underline","cursor":"pointer"});},setElementTextDecoNone:function(event){Event.element(event).setStyle({"text-decoration":"none","cursor":"pointer"});},embedMouseOverOutEventsByClass:function(parentElementId,className,mouseOverFxn,mouseOutFxn){var parElt=$(parentElementId);if(!parElt){return ;}var classElts=parElt.select(className);if(!classElts||classElts.length==0){return ;}classElts.each(function(curElem){if(curElem==null){return ;}curElem.observe("mouseover",mouseOverFxn);curElem.observe("mouseout",mouseOutFxn);});},removeMouseOverOutEventsByClass:function(parentElementId,className,mouseOverFxn,mouseOutFxn){var parElt=$(parentElementId);if(!parElt){return ;}var classElts=parElt.select(className);if(!classElts||classElts.length==0){return ;}classElts.each(function(curElem){if(curElem==null){return ;}curElem.stopObserving("mouseover",mouseOverFxn);curElem.stopObserving("mouseout",mouseOutFxn);});},embedMouseOverOutEventsByElement:function(elementId,mouseOverFxn,mouseOutFxn){var curElem=$(elementId);if(!curElem){return ;}curElem.observe("mouseover",mouseOverFxn);curElem.observe("mouseout",mouseOutFxn);},removeMouseOverOutEventsByElement:function(elementId,mouseOverFxn,mouseOutFxn){var curElem=$(elementId);if(!curElem){return ;}curElem.stopObserving("mouseover",mouseOverFxn);curElem.stopObserving("mouseout",mouseOutFxn);},initializeDeviceSelector:function(){var devSelectRoot=$(Homepage.DEVICE_SELECTOR_ROOT);if(devSelectRoot){Homepage.deviceSelectStateController=new DeviceSelectorController();var advStateHandler=Homepage.advanceDeviceSelectorState;Homepage.deviceSelectStateController.dynamicSearchControl.setAdvanceStateHandler(advStateHandler);}},advanceDeviceSelectorState:function(stage){if(Homepage.deviceSelectStateController){Homepage.deviceSelectStateController.handleDeviceSelectorStateChange(stage);}},initializeDeviceConfirmBubble:function(){var devConfirmBubble=$("device-confirmation-bubble");if(devConfirmBubble){var perExecHideBubble=new PeriodicalExecuter(function(pE){var pEDevConfBubble=$("device-confirmation-bubble");if(pEDevConfBubble){pEDevConfBubble.hide();}pE.stop();},Homepage.DEVICE_CONF_BUBBLE_TIME);}},bindElementsToHandleMethod:function(cssSelector,handleMethodBinding,eventStr){if(!cssSelector||!handleMethodBinding||!eventStr){return ;}var cssSelectArr=$$(cssSelector);if(cssSelectArr&&cssSelectArr.length>0){for(var idx=0,len=cssSelectArr.length;idx<len;++idx){var curElt=cssSelectArr[idx];if(!curElt){continue;}curElt.observe(eventStr,handleMethodBinding);}}},bindDeviceSelectorToPage:function(){var handleInitDevSelectorBindNoArrow=handango.handleInitDeviceSelectorOnlyValidateNumberDevicesNoArrow.bindAsEventListener(handango);CSSUtils.bindElementsToHandleMethod("div.device_help_show_list_by_carrier_or_network a",handleInitDevSelectorBindNoArrow,"click");
if(handango.deviceSelected==true||StringUtils.isNotEmptyCompare(handango.performRedirectToHomepage,"false")==true){return ;}var handleInitDevSelectorBind=handango.handleInitDeviceSelectorOnlyValidateNumberDevices.bindAsEventListener(handango);var handleInitDeviceSelectorFromPlatform=handango.handleInitDeviceSelectorFromPlatform.bindAsEventListener(handango);var handleInitDevSelectorSearch=handango.handleInitDeviceSelectorFromSearch.bindAsEventListener(handango);var handleInitDevSelectorProduct=handango.handleInitDeviceSelectorFromProduct.bindAsEventListener(handango);var handleInitDevSelectorProductBubble=handango.handleInitDeviceSelectorFromProductBubble.bindAsEventListener(handango);var handleInitDeviceSelectorFromTaxonomy=handango.handleInitDeviceSelectorFromTaxonomy.bindAsEventListener(handango);var handleInitDeviceSelectorFromLeftNavSearch=handango.handleInitDeviceSelectorFromLeftNavSearch.bindAsEventListener(handango);var handleInitDeviceSelectorFromLeftNavCategory=handango.handleInitDeviceSelectorFromLeftNavCategory.bindAsEventListener(handango);CSSUtils.bindElementsToHandleMethod("div.carousel-items-container ul.carousel-items li div.product-summary dl dt a",handleInitDevSelectorProduct,"click");CSSUtils.bindElementsToHandleMethod("div.carousel-items-container ul.carousel-items li div.product-summary ul li a",handleInitDevSelectorProduct,"click");CSSUtils.bindElementsToHandleMethod("div.product-summary p.compatibility warning a",handleInitDevSelectorProduct,"click");CSSUtils.bindElementsToHandleMethod("div#masthead form ul#udm li a.primary-navigation-link",handleInitDeviceSelectorFromTaxonomy,"click");CSSUtils.bindElementsToHandleMethod("div#masthead form ul#udm li ul li a",handleInitDeviceSelectorFromTaxonomy,"click");CSSUtils.bindElementsToHandleMethod("div#masthead form ul#udm li ul li ul li a",handleInitDeviceSelectorFromTaxonomy,"click");CSSUtils.bindElementsToHandleMethod("div#footer-top-platforms ul li a",handleInitDeviceSelectorFromPlatform,"click");CSSUtils.bindElementsToHandleMethod("form#search fieldset input.type-submit",handleInitDevSelectorSearch,"click");CSSUtils.bindElementsToHandleMethod("ul#shopping-bar li#cart div#cart-menu ul li a",handleInitDevSelectorBindNoArrow,"click");CSSUtils.bindElementsToHandleMethod("div#top-searches-on-handango ul li a, div#your-recent-activity p a, div#bn_termcloud a",handleInitDeviceSelectorFromLeftNavSearch,"click");CSSUtils.bindElementsToHandleMethod("div#navigation form ul#secondary-navigation li a",handleInitDeviceSelectorFromLeftNavCategory,"click");CSSUtils.bindElementsToHandleMethod("div.product-summary ul.shopping-options li.first-child a, div.product-summary dl dt a, div.product-summary dl dt a img.thumbnail, div#your-recent-activity ul li a",handleInitDevSelectorProduct,"click");CSSUtils.bindElementsToHandleMethod("div.secondary-content dl.related-items dd div.product-summary ul li a",handleInitDevSelectorProduct,"click");CSSUtils.bindElementsToHandleMethod("div.primary-content-section ul.verbose-product-listing li div.product-summary ul li a",handleInitDevSelectorProduct,"click");
CSSUtils.bindElementsToHandleMethod("div.primary-content-section div.product-grid-group div-primary-product-grid-item div.product-summary ul li a",handleInitDevSelectorProduct,"click");CSSUtils.bindElementsToHandleMethod("div.platform-top-products ul li a",handleInitDevSelectorProduct,"click");CSSUtils.bindElementsToHandleMethod("div.platform-top-products p a",handleInitDevSelectorProduct,"click");CSSUtils.bindElementsToHandleMethod("div#info-bubble-element-2-of-2 div.primary-and-secondary-content-section div.primary-content-section div.product-summary table tbody tr td ul li a#buttonUrl",handleInitDevSelectorProductBubble,"click");CSSUtils.bindElementsToHandleMethod("div#info-bubble-element-2-of-2 div.primary-and-secondary-content-section div.primary-content-section div.product-summary table tbody tr td ul li a#freeDownloadUrl",handleInitDevSelectorProductBubble,"click");CSSUtils.bindElementsToHandleMethod("div#info-bubble-element-2-of-2 div.primary-and-secondary-content-section div.primary-content-section div.product-summary table tbody tr td ul li a#downloadUrl",handleInitDevSelectorProductBubble,"click");CSSUtils.bindElementsToHandleMethod(handango.DEVICESELECTOR_TRIGGERS,handleInitDevSelectorProductBubble,"click");CSSUtils.bindElementsToHandleMethod("div.secondary-content-section div.special-offers-section ul.brief-product-listing li div.brief-product-summary ul li a",handleInitDevSelectorBindNoArrow,"click");},initializeCompleteListControl:function(){try{Homepage.completeListControl=new CompleteDeviceList();}catch(err){}},hideWelcomeBox:function(){var introSectionArr=$$("div.introduction.section");if(introSectionArr&&introSectionArr.length>0){introSectionArr.each(function(elt){elt.hide();});}},initDevSelectorIfOnCartPageWithNoDevice:function(){if(handango.deviceSelected==true){return ;}if(URLUtils.isJSPInCurrentUrl("Cart.jsp")==true){handango.handleInitDeviceSelectorOnlyValidateNumberDevices(null);}},hideUnnecessaryTertiaryOnLeftNav:function(){var secNavigationElts=$$("div#navigation ul#secondary-navigation li a em");if(secNavigationElts&&secNavigationElts.length&&secNavigationElts.length>0){var terNavigationElts=$$("div#navigation ul#secondary-navigation li ul");if(terNavigationElts&&terNavigationElts.length&&terNavigationElts.length>0){terNavigationElts.each(function(elt){if(elt){elt.hide();}});}}},setOnLoadProperly:false};function initHomepage(){if(Homepage.setOnLoadProperly==true){return ;}Homepage.hideUnnecessaryTertiaryOnLeftNav();Homepage.hideWelcomeBox();Homepage.initializeDeviceSelector();Homepage.initializeDeviceConfirmBubble();Homepage.initializeCompleteListControl();Homepage.bindDeviceSelectorToPage();Homepage.initDevSelectorIfOnCartPageWithNoDevice();Homepage.setOnLoadProperly=true;}document.observe("dom:loaded",initHomepage);

// UDMv4.5 //
///////////////////////////////////////////////////////////////////
var um={'menuClasses':[],'itemClasses':[],'menuCode':[]};
///////////////////////////////////////////////////////////////////
//                                                               //
//  ULTIMATE DROP DOWN MENU Version 4.5 by Brothercake          //
//  http://www.udm4.com/                                         //
//                                                               //
//  This script may not be used or distributed without license   //
//                                                               //
///////////////////////////////////////////////////////////////////




///////////////////////////////////////////////////////////////////
// CORE CONFIGURATION                                            //
///////////////////////////////////////////////////////////////////


//path to images folder
um.baseSRC = "udm-resources/";


//initialization trigger element ["id"];
um.trigger = "";


//navbar orientation
um.orientation = [
    "horizontal",    // alignment ["vertical"|"horizontal"|"popup"|"expanding"]
    "left",        // h align ["left"|"right"]
    "top",        // v align ["top"|"bottom"]
    "absolute",    // positioning ["relative"|"absolute"|"fixed"|"allfixed"]
    "0",    // x position ["em"|"ex"|"px"|"0"]
    "45px",    // y position ["em"|"ex"|"px"|"0"]
    "1000",        // z order ["0" to "10000"] (menu takes 20000 headroom)
    ];


//navbar list output
um.list = [
    "flexible",    // horizontal overflow ["rigid"|"flexible"]
    "yes",        // -SPARE-
    "no",         // -SPARE-
    ];


//menu behaviors
um.behaviors = [
    "100",        // open timer ["milliseconds"|"0"]
    "100",        // close timer ["milliseconds"|"never"|"0"]
    "yes",        // reposition menus to stay inside the viewport ["yes"|"no"]
    "default",    // manage windowed controls for win/ie ["default","hide","iframe","none"]
    ];


//reset behaviors
um.reset = [
    "yes",        // reset from document mouse click ["yes"|"no"]
    "yes",        // reset from window resize ["yes"|"no"]
    "yes",        // reset from text resize ["yes"|"no"]
    "no",        // reset after following link ["yes"|"no"]
    ];


//horizontal continuation strip
um.hstrip = [
    "none",        // background ["color"|"#hex"|"rgb()"|"image.gif"|"none"]
    "yes",        // copy navbar item margin-right to margin-bottom ["yes"|"no"]
    ];




///////////////////////////////////////////////////////////////////
// MODULE SETTINGS                                               //
///////////////////////////////////////////////////////////////////


//keyboard navigation [comment out or remove if not using]
um.keys = [
    "38",        // up ["n"] ("38" = up arrow key)
    "39",        // right ["n"] ("39" = right arrow key)
    "40",        // down ["n"] ("40" = down arrow key)
    "37",        // left ["n"] ("37" = left arrow key)
    "123",        // hotkey ["n"] ("38" = F12]
    "none",        // hotkey modifier ["none"|"shiftKey"|"ctrlKey"|"altKey"|"metaKey"]
    "27",        // escape ["n"|"none"] ("27" = escape key)
    "document.getElementsByTagName('a')[0]", // exit focus ["js-expression"]
    ];




///////////////////////////////////////////////////////////////////
// NAVBAR DEFAULT STYLES                                         //
///////////////////////////////////////////////////////////////////


//styles which apply to the navbar
um.navbar = [
    "1",        // nav -> menu x-offset (+-)["n" pixels]
    "0",        // nav -> menu y-offset (+-)["n" pixels]
    "7.5em",    // width ["em"|"ex"|"px"] (vertical navbar only - horizontal navbar items have "auto" width) ("%" doesn't work right)
    ];


//styles which apply to each navbar item
um.items = [
    "0",        // margin between items ["n" pixels]
    "0",        // border size ["n" pixels] (single value only)
    "collapse",    // border collapse ["collapse"|"separate"] (only applies when margin = "0")
    "",    // border colors ["color"|"#hex"|"rgb()"] (single, double or four values)
    "",            // border styles ["solid"|"double"|"dotted"|"dashed"|"groove"|"ridge"|"inset"|"outset"] (single, double or four values; be careful with using "none")
    "",    // hover/focus border colors ["color"|"#hex"|"rgb()"] (single, double or four values)
    "",            // hover/focus border styles ["solid"|"double"|"dotted"|"dashed"|"groove"|"ridge"|"inset"|"outset"] (single, double or four values; be careful with using "none")
    "",    // visited border colors ["color"|"#hex"|"rgb()"] (single, double or four values)
    "d",            // visited border styles ["solid"|"double"|"dotted"|"dashed"|"groove"|"ridge"|"inset"|"outset"] (single, double or four values; be careful with using "none")
    "0",        // left/right padding ["n" pixels] (single value only)
    "0",        // top/bottom padding ["n" pixels] (single value only)
    "transparent",        // background ["color"|"#hex"|"rgb()"|"image.gif"]
    "",        // hover/focus background ["color"|"#hex"|"rgb()"|"image.gif"]
    "transparent",        // visited background ["color"|"#hex"|"rgb()"|"image.gif"]
    "1em !important",        // font size ["em"|"ex"|"%"|"px"|"pt"|"absolute-size"|"relative-size"]
    "arial,sans-serif",// font family ["font1,font2,font3"] (always end with a generic family name)
    "normal",        // font weight ["normal"|"bold"|"bolder"|"lighter|"100" to "900"]
    "none !important",        // text decoration ["none"|"underline"|"overline"|"line-through"]
    "left",        // text-align ["left"|"right"|"center"]
    "#ffffff !important",    // color ["color"|"#hex"|"rgb()"]
    "#c4efac !important",    // hover/focus color ["color"|"#hex"|"rgb()"]
    "#ffffff !important",    // visited color ["color"|"#hex"|"rgb()"]
    "normal",    // font-style ["normal"|"italic"|"oblique"]
    "normal",    // hover/focus font-style ["normal"|"italic"|"oblique"]
    "normal",    // visited font-style ["normal"|"italic"|"oblique"]
    "letter-spacing:0px !important;",// additional link CSS (careful!)
    "",        // additional hover/focus CSS (careful!)
    "",        // additional visited CSS (careful!)
    "none",// menu indicator character/image ["text"|"image.gif"|"none"]
    "none",// menu indicator rollover character/image ["text"|"image.gif"|"none"] (must be same type)
    "",        // clipping width of indicator image ["n" pixels] (only when using image arrows)
    "..",        // alt text of indicator image ["text"] (only when using image arrows)
    ];




///////////////////////////////////////////////////////////////////
// MENU DEFAULT STYLES                                           //
///////////////////////////////////////////////////////////////////


//styles which apply to each menu
um.menus = [
    "0",        // menu -> menu x-offset (+-)["n" pixels]
    "0",        // menu -> menu y-offset (+-)["n" pixels]
    "0",        // border size ["n" pixels] (single value only)
    "rgb(68,76,79) !important",// border colors ["color"|"#hex"|"rgb()"] (single, double or four values)
    "solid",    // border styles ["solid"|"double"|"dotted"|"dashed"|"groove"|"ridge"|"inset"|"outset"] (single, double or four values; be careful with using "none")
    "206px",    // width ["em"|"ex"|"px"]
    "0",        // padding ["n" pixels] (single value only)
    "transparent",    // background ["color"|"#hex"|"rgb()"|"image.gif"]
    "",        // additional menu CSS (careful!) (you can use a transition here but *not* a static filter)
    "none",// shadow background ["color"|"#hex"|"rgb()"|"image.gif"|"none"]
    "0",        // shadow offset (+-) ["em"|"px"|"pt"|"%"|"0"]
    "filter:alpha(opacity=50);",// additional shadow layer CSS (if you use a Microsoft.Shadow filter here then Win/IE5.5+ will do that *instead* of default shadow)
    ];


//styles which apply to each menu item
um.menuItems = [
    "0",        // margin around items ["n" pixels] (single value only; margins are like table cellspacing)
    "3",        // border size ["n" pixels] (single value only)
    "collapse",    // border collapse ["collapse"|"separate"] (only applies when margin = "0")
    "rgb(68,76,79) !important",    // border colors ["color"|"#hex"|"rgb()"] (single, double or four values)
    "solid !important",    // border styles ["solid"|"double"|"dotted"|"dashed"|"groove"|"ridge"|"inset"|"outset"] (single, double or four values; be careful with using "none")
    "rgb(68,76,79) !important",    // hover/focus border colors ["color"|"#hex"|"rgb()"] (single, double or four values)
    "solid !important",    // hover/focus border styles ["solid"|"double"|"dotted"|"dashed"|"groove"|"ridge"|"inset"|"outset"] (single, double or four values; be careful with using "none")
    "rgb(68,76,79) !important",    // visited border colors ["color"|"#hex"|"rgb()"] (single, double or four values)
    "solid !important",    // visited border styles ["solid"|"double"|"dotted"|"dashed"|"groove"|"ridge"|"inset"|"outset"] (single, double or four values; be careful with using "none")
    "3",        // left/right padding ["n" pixels] (single value only)
    "2",        // top/bottom padding ["n" pixels] (single value only)
    "rgb(68,76,79) !important",    // background ["color"|"#hex"|"rgb()"|"image.gif"]
    "rgb(41,41,41) !important",    // hover/focus background ["color"|"#hex"|"rgb()"|"image.gif"]
    "rgb(68,76,79) !important",    // visited background ["color"|"#hex"|"rgb()"|"image.gif"]
    ".75em",        // font size ["em"|"ex"|"%"|"px"|"pt"|"absolute-size"|"relative-size"]
    "arial,sans-serif",// font family ["font1,font2,font3"] (always end with a generic family name)
    "normal",    // font weight ["normal"|"bold"|"bolder"|"lighter|"100" to "900"]
    "none !important",        // text decoration ["none"|"underline"|"overline"|"line-through"]
    "left",        // text-align ["left"|"right"|"center"]
    "rgb(255,255,255) !important",        // color ["color"|"#hex"|"rgb()"]
    "rgb(122,179,90) !important",        // hover/focus color ["color"|"#hex"|"rgb()"]
    "rgb(255,255,255) !important",        // visited color ["color"|"#hex"|"rgb()"]
    "normal",    // font-style ["normal"|"italic"|"oblique"]
    "normal",    // hover/focus font-style ["normal"|"italic"|"oblique"]
    "normal",    // visited font-style ["normal"|"italic"|"oblique"]
    "",        // additional link CSS (careful!)
    "",        // additional hover/focus CSS (careful!)
    "",        // additional visited CSS (careful!)
    "»",// submenu indicator character/image ["text"|"image.gif"|"none"]
    "»",// submenu indicator rollover character/image ["text"|"image.gif"|"none"] (must be the same type)
    "13",        // clipping width of indicator image ["n" pixels] (only when using image arrows)
    "..",        // alt text of indicator image ["text"] (only when using image arrows)
    ];

/*    =============================================================================  */
/*    to keep markup a little cleaner, these strictly aesthetic menu enhancements
    are added programatically after page load */

document.observe("dom:loaded", function() {
   

    /*    grab each submenu that has a secondary menu and add an indicator arrow
        next to it. Bypassing UDM method for handling due to unique design requirement */
    $$('.udm > li > ul > li ul').each( function(submenuUL)
    {
        var indicatorLink = $(submenuUL.parentNode).firstDescendant();
        var indicatorImage = "<span class=\"submenu-indicator\">&nbsp;&nbsp;&nbsp;&nbsp;</span>";
        new Insertion.Bottom($(indicatorLink),indicatorImage);
    });

});


// UDMv4.5 //
///////////////////////////////////////////////////////////////////
//                                                               //
//  ULTIMATE DROP DOWN MENU Version 4.5 by Brothercake          //
//  http://www.udm4.com/                                         //
//                                                               //
//  This script may not be used or distributed without license   //
//                                                               //
///////////////////////////////////////////////////////////////////
var umTree=null;um.ready=0;um.pi=function(n){n=parseInt(n,10);return (isNaN(n)?0:n);};um.un='undefined';um.m=document;um.gd=function(n){return um.m.getElementById(n);};um.xd=function(n){n.style.display='block';};um.xn=function(n){n.style.display='none';};um.xv=function(n){n.style.visibility='visible';};um.xh=function(n){n.style.visibility='hidden';};um.ne=function(n){return n.parentNode.className=='udm';};if(typeof um.reset==um.un){um.reset=['yes','yes','yes'];}if(typeof um.hstrip==um.un){um.hstrip=['none','yes'];}if(typeof um.reset[3]==um.un){um.reset[3]='no';}um.cx=['orientation','list','behaviors','navbar','items','menus','menuItems','menuClasses','itemClasses'];um.ei=0;um.e=[];um.v=[];um.w=[];um.vl=0;um.wl=0;um.ek=0;um.im=[];um.pcv=function(v){if(v&&/^[+\-]?[0-9]+$/.test(v)){v=um.pi(v);if((um.ei==10||um.ei==11)&&v<1){v=1;}}if(v&&/\.(gif|png|mng|jpg|jpeg|jpe|bmp)/i.test(v)){um.im[um.ek]=new Image;um.im[um.ek++].src=um.baseSRC+v;}return v;};um.d=(typeof um.m.getElementById!=um.un&&(typeof um.m.createElement!=um.un||typeof um.m.createElementNS!=um.un)&&typeof navigator.IBM_HPR==um.un);um.u=navigator.userAgent.toLowerCase();um.o5=/opera[\/ ][56]/.test(um.u);um.k=(navigator.vendor=='KDE');if(um.o5){um.d=0;}um.b=(um.d||um.o5);um.o7=(um.d&&typeof window.opera!=um.un);um.o75=0;um.o73=0;um.o71=0;if(um.o7){um.ova=um.pi(um.u.split(/opera[\/ ]/)[1].match(/[7-9]/)[0]);um.ovi=um.pi(um.u.split(/opera[\/ ][7-9]\./)[1].match(/^[0-9]/)[0]);um.o75=(um.ova>=8||um.ovi>=5);um.o73=(um.ova>=8||um.ovi>=3);um.o71=(um.ova==7&&um.ovi<=1);}um.s=(navigator.vendor=='Apple Computer, Inc.');um.s2=(um.s&&typeof XMLHttpRequest!=um.un);um.wie=(um.d&&typeof um.m.all!=um.un&&typeof window.opera==um.un&&!um.k);um.mie=(um.wie&&um.u.indexOf('mac')>0);um.mx=0;um.omie=0;if(um.mie){um.wie=0;um.iev=um.u;um.iev=um.iev.split('msie ');um.iev[1]=um.iev[1].split(';');um.iev=parseFloat(um.iev[1][0],10);um.omie=(um.iev<5.2);}um.ie=(um.wie||um.mie);um.wie5=(um.wie&&um.u.indexOf('msie 5')>0);um.wie55=(um.wie&&um.u.indexOf('msie 5.5')>0);um.wie50=(um.wie5&&!um.wie55);um.wie6=(um.wie&&um.u.indexOf('msie 6')>0);if(um.wie6){um.wie55=1;}um.wie7=(um.wie&&typeof XMLHttpRequest!=um.un);um.q=(um.wie5||um.mie||((um.wie6||um.wie7||um.o7)&&um.m.compatMode!='CSS1Compat'));um.og=0;um.dg=0;if(navigator.product=='Gecko'&&!um.s){um.sub=um.pi(navigator.productSub);um.og=(um.sub<20030312);um.dg=(um.sub<20030208);}if(um.b){var i=0;do{if(um.cx[i].indexOf('Classes')<0){um.cxl=um[um.cx[i]].length;var j=0;do{if(typeof um[um.cx[i]][j]!=um.un){um.pv=um.pcv(um[um.cx[i]][j]);um.e[um.ei]=um.pv;um.ei++;}j++;}while(j<um.cxl);}else{for(j in um[um.cx[i]]){if(typeof um[um.cx[i]][j]!='function'){um.cxl=um[um.cx[i]][j].length;var k=0;do{if(typeof um[um.cx[i]][j][k]!=um.un){um.pcv(um[um.cx[i]][j][k]);}k++;}while(k<um.cxl);if(um.cx[i]=='menuClasses'){um.v[j]=um[um.cx[i]][j];um.vl++;}else{um.w[j]=um[um.cx[i]][j];um.wl++;}}}}i++;}while(i<9);um.kb=(typeof um.keys!=um.un&&!(um.mie||um.o7||um.k||(um.s&&!um.s2)));um.skb=(um.kb||(typeof um.keys!=um.un&&((um.o7&&!um.o71)||um.k)));um.sp=(typeof um.speech!=um.un&&um.wie);if(typeof um.speech!=um.un){um.e[12]='no';um.e[0]='vertical';}um.rp=(um.e[3]=='relative');if(um.wie50&&um.rp){um.e[12]='no';}um.dir='left';if(um.e[1]=='rtl'){um.dir='right';um.e[1]='right';}um.e[13]=(um.e[13]=='yes')?'default':(um.e[13]=='no')?'iframe':um.e[13];um.hz=(um.wie50&&um.e[13]=='default')||(um.wie&&um.e[13]=='hide');um.h=um.e[0]=='horizontal';i=4;do{if(parseFloat(um.e[i],10)<0){um.e[i]='0';}i++}while(i<6);if(um.h&&um.dir=='right'){um.e[4]='-'+um.e[4];}um.p=um.e[0]=='popup';if(um.p){um.va=['left','top','absolute','-2000px','-2000px'];i=0;do{um.e[i+1]=um.va[i];i++}while(i<5);um.e[14]=0;um.e[15]=0;}um.ep=0;if(um.e[0]=='expanding'){um.ep=1;um.e[0]='vertical';}um.a=(um.e[1]=='right');um.rg=(um.h&&um.e[7]=='rigid'&&um.dir!='right');um.fe=false;if(um.e[3]=='allfixed'){um.e[3]='fixed';if(um.wie5||um.wie6){um.fe=true;}}um.f=(um.e[3]=='fixed'&&!(um.wie5||um.wie6||um.og));um.nc=(um.e[17]==0&&um.e[19]=='collapse');um.mc=(um.e[61]==0&&um.e[63]=='collapse');um.nm=((um.og&&um.rp)||(um.omie&&um.h)||((um.dg||um.wie50)&&um.dir=='right'));um.nr=(um.nm||um.mie);um.ns=(um.dg||um.o71||(um.wie50&&um.rp)||(um.o7&&um.f)||um.mie);um.cns=(typeof um.m.createElementNS!=um.un);um.ss=(um.cns&&typeof um.m.styleSheets!=um.un&&!(um.s||um.k));if(um.kb){i=0;do{um.keys[i]=um.pi(um.keys[i]);i++}while(i<5);if(um.keys[6]!='none'){um.keys[6]=um.pi(um.keys[6]);}else{um.keys[6]=-1;}}um.ni=/(gif|png|mng|jpg|jpeg|jpe|bmp)/i.test(um.e[45]);um.mi=/(gif|png|mng|jpg|jpeg|jpe|bmp)/i.test(um.e[89]);}um.rn=0;um.rv=[];um.addReceiver=function(f,c){um.rv[um.rn++]=[f,c];};um.gp=function(n){return n?um.vn(n.nodeName).toLowerCase()=='li'?n:this.gp(n.parentNode):null;};um.createElement=function(n,a){um.el=(um.cns)?um.m.createElementNS('http://www.w3.org/1999/xhtml',n):um.m.createElement(n);if(typeof a!=um.un){for(var i in a){switch(i){case 'text' :um.el.appendChild(um.m.createTextNode(a[i]));break;case 'class' :um.el.className=a[i];break;default :um.el.setAttribute(i,'');um.el[i]=a[i];break;}}}return um.el;};

// UDMv4.5-U //
///////////////////////////////////////////////////////////////////
//                                                               //
//  ULTIMATE DROP DOWN MENU Version 4.5 Ultra by Brothercake     //
//  http://www.udm4.com/                                         //
//                                                               //
//  This script may not be used or distributed without license   //
//                                                               //
///////////////////////////////////////////////////////////////////
if(um.wie){um.eva=[];um.ex=['onmouseover','onmouseout','onmousedown','onmouseup','onclick','onmousewheel','onfilterchange','onkeydown','onfocus','onactivate','onscroll','over','out'];um.gg=um.ex.length;window.attachEvent('onunload',function(){um.da=document.all.length;i=0;do{um.t=document.all[i];j=0;do{um.t[um.ex[j]]=null;j++;}while(j<um.gg);i++;}while(i<um.da);});}if(!um.k&&typeof window.addEventListener!=um.un){window.addEventListener('load',umIni,0);}else if(um.o7){um.m.addEventListener('load',umIni,0);}else if(um.wie){window.attachEvent('onload',umIni);}else{if(typeof window.onload=='function'){um.on=onload;window.onload=function(){um.on();umIni();};}else{window.onload=umIni;}}function umIni(g){if(typeof g==um.un){g=1;}if(typeof um.ini!=um.un||(um.k&&typeof window.sidebar==um.un)){return;}if(um.drt){clearTimeout(um.drt);}um.ini=1;um.ha=0;umTree=(um.b)?um.gd('udm'):null;if(umTree&&um.d&&!um.mie){um.bub=0;um.wsr=0;um.rtl=um.m.getElementsByTagName('html')[0].getAttribute('dir')=='rtl';um.kdf=0;if(um.o7){um.m.addEventListener('keydown',function(e){if(e.keyCode==16){um.kdf=1;}},0);um.m.addEventListener('keyup',function(e){if(e.keyCode==16){um.kdf=0;}},0);}um.n=new umNav(umTree,g);if(um.fe){um.tr.style.left=(um.getScrollAmount(1))+'px';um.tr.style.top=(um.getScrollAmount())+'px';window.attachEvent('onscroll',function(){um.tr.style.left=(um.getScrollAmount(1))+'px';um.tr.style.top=(um.getScrollAmount())+'px';});}if(um.s){umTree.style.KhtmlOpacity='1';}um.s1=(typeof umTree.style.KhtmlOpacity!=um.un);um.ready=1;}};function umNav(umTree,g){um.n=this;um.tr=umTree;if(um.wie){um.tr.style.color='black';}um.jv='javascript:void(0)';var l=umTree.getElementsByTagName('li');if(l.length==0){return;}var i=0;do{this.it(l[i]);i++;}while(i<l.length);um.mf=0;um.lf=0;um.ety=typeof document.addEventListener!=um.un?'addEventListener':typeof document.attachEvent!=um.un?'attachEvent':'';um.epx=um.ety=='attachEvent'?'on':'';if(um.ety!=''){um.m[um.ety](um.epx+'mousedown',function(e){if(!e){e=window.event;}um.mf=1;clearInterval(um.oc);um.or=0;if(um.reset[0]!='no'){if(um.hz){if(!um.tr.contains(event.srcElement)){um.n.ts('visible');}}um.cm(e);}},0);um.m[um.ety](um.epx+'mouseup',function(){um.mf=0;},0);}um.cc=null,um.cr=0,um.oc=null,um.or=0;if(!um.ie){um.tr.contains=function(n){return (n==null)?false:(n==this)?true:this.contains(n.parentNode);};}um.lw=um.getWindowDimensions();um.lh=um.gc(um.tr).offsetHeight;if(um.og&&um.hstrip[0]!='none'){um.tr.style.height=(um.hstrip[1]=='yes')?(um.lh+um.e[17])+'px':um.lh+'px';}var p=um.m.getElementById('udm-purecss');if(p){p.disabled=1;}um.vs=setInterval('um.n.ws()',55);};umNav.prototype.it=function(l){var a=um.es(l.className);var h=(a.indexOf('onclick')!=-1)?'onclick':'onmouseover';var s=um.ne(l);var umM=(typeof um.gu(l)[0]!=um.un)?um.gu(l)[0]:null;if(typeof um.fl==um.un){um.fl=um.gc(l);}l.onmousedown=function(e){um.lf=1;(!e)?event.cancelBubble=1:e.stopPropagation();};l.onmouseup=function(e){(!e)?event.cancelBubble=1:e.stopPropagation();};if(h!='onclick'){l.onclick=function(e){if(!um.bub){um.qc(um.gc(this).href);}um.bub=1;};}else{l.onmouseover=function(){um.n.lr(um.gc(l),1);um.bub=0;};}l[h]=function(e){var v=(um.ie)?window.event.srcElement:e.target;if(v.nodeName=='#text'&&e.type=='click'){v=v.parentNode;}if(!um.gp(v)){return false;}var b=um.es(um.gp(v).className);var c=(um.lf&&!um.nm&&b.indexOf('onclick')!=-1);if(c){um.rt=um.e[10];um.e[10]=1;}if(b.indexOf('onclick')==-1){um.bub=0;}else if(!um.lf){if(!um.bub){um.qc(v.href);}um.bub=1;}this.over(0,v);if(c){um.e[10]=um.rt;um.lf=0;if(v.nodeName!='#text'&&um.gu(um.gp(v)).length>0){if(typeof v.blur!=um.un){v.blur();}if(um.gu(um.gp(v))[0].style.display=='block'){um.n.cd(this.parentNode);(!e)?event.cancelBubble=1:e.stopPropagation();return false;}(!e)?event.cancelBubble=1:e.stopPropagation();b=um.es(um.gp(v).className);return (b.indexOf('(true)')!=-1);}else{um.qc(v.href);um.bub=1;}}if(!e){e=window.event;}return (e.type=='click'||um.o7);};l.onmouseout=function(e){this.out(e);};l.over=function(f,t){if(um.bub||(!f&&um.ha&&um.kdf)){return false;}var c=um.n.cck();if(!c||um.mf){um.mf=0;if(!um.ec){if(um.gm(this)){this.removeChild(um.gm(this));}}return false;}var n=um.vn(t.nodeName).toLowerCase();if(/(li|ul)/.test(n)){return false;}clearInterval(um.cc);um.cr=0;um.n.lr(um.gc(l),1);um.n.pr(umM,l,f,t);return l;};l.out=function(e){if(um.o7&&um.ha&&um.kdf){return;}if(um.lf){um.gc(this).blur();}um.lf=0;if(!e){e=window.event;e.relatedTarget=e.toElement;}if(!l.contains(e.relatedTarget)){if(!um.tr.contains(e.relatedTarget)){clearInterval(um.cc);um.cr=0;}um.n.cp(umM,l);}};if(!um.ie){l.contains=function(n){return (n==null)?false:(n==this)?true:this.contains(n.parentNode);};}};umNav.prototype.cck=function(){if(typeof document.defaultView!=um.un&&typeof document.defaultView.getComputedStyle!=um.un){um.sa=document.defaultView.getComputedStyle(um.fl,'').getPropertyValue('display');}else if(typeof um.fl.currentStyle!=um.un&&um.fl.currentStyle){um.sa=um.fl.currentStyle.display;}um.mv=1;um.ec=(!um.wie||um.tr.currentStyle.color=='black');return ((um.sa!='inline'||typeof um.sa==um.un)&&um.ec);};umNav.prototype.lr=function(l,v){if(l&&typeof l.style!=um.un){um.cl=um.es(l.className);if(v){l.style.zIndex=um.e[6]+=2;(um.cl=='')?l.className='udmR':l.className+=(l.className.indexOf('udmR')==-1)?' udmR':'';}else{if(um.cl.indexOf('udmR')!=-1){l.className=um.cl.replace(/([ ]?udmR)/g,'');}}}};umNav.prototype.pr=function(m,l,f,r){if(!um.nm&&m&&m.style.visibility!='visible'){if(um.wie&&!um.wie7){if(um.e[61]>0){um.gc(m).style.marginTop=um.e[61]+'px';}else if(um.e[63]=='collapse'){m.firstChild.style.marginTop=0+'px';}}um.n.tu(m,null);}if(m==null){um.n.tu(null,l);}};umNav.prototype.tu=function(m,l){if(um.cr){clearInterval(um.oc);um.oj=m;um.ij=l;um.or=1;um.oc=setInterval('um.n.tu(um.oj,um.ij)',um.e[10]);}else if(um.or){clearInterval(um.oc);um.or=0;this.ou(m,l);}else{um.oj=m;um.ij=l;um.or=1;um.oc=setInterval('um.n.tu(um.oj,um.ij)',um.e[10]);}};umNav.prototype.ou=function(m,l){if(m==null){this.cd(l.parentNode);return false;}this.cd(um.gp(m).parentNode);if(typeof m.m==um.un){m.m=um.gu(m);m.l=m.m.length;if(m.l>0){for(var i=0;i<m.l;i++){um.xh(m.m[i]);um.xn(m.m[i]);}}}if(um.ep){m.style.position='static';}if(um.hz){this.ts('hidden');}um.xd(m);this.pu(m);um.mp={x:(m.offsetLeft),y:(m.offsetTop)};if(um.wie55&&(um.e[13]=='default'||um.e[13]=='iframe')){this.il(m);}um.hf=(um.wie55&&typeof m.filters!='unknown'&&m.filters&&m.filters.length>0);if(um.hf){m.filters[0].Apply();}if(um.wie&&um.h){var t=m.parentNode;if(um.ne(t)){t=t.style;t.position='absolute';t.zIndex=um.e[6]+=2;t.position='relative';}}um.xv(m);if(um.hf){m.filters[0].Play();}if(um.wie50){um.xn(m);um.xd(m);}if(um.ep&&um.s&&m.offsetLeft<-1000){var fs=um.pi(document.defaultView.getComputedStyle(m,'').getPropertyValue('font-size'));m.style.fontSize=(fs-1)+'px';setTimeout(function(){m.style.fontSize=fs+'px';},0);}return m;};umNav.prototype.cd=function(m){var s=um.gu(m);var n=s.length;for(var i=0;i<n;i++){this.clm(s[i]);}};umNav.prototype.ck=function(m){var l=m.getElementsByTagName('a');var n=l.length;for(var i=0;i<n;i++){this.lr(l[i],0);}};umNav.prototype.cp=function(m,l){clearTimeout(um.oc);um.or=0;this.lr(um.gc(l),0);if(!um.nm&&m){this.cot(m);}};umNav.prototype.cot=function(m){if(um.cr){clearInterval(um.cc);um.cr=0;this.clm(m);}else if(um.e[11]!='never'){um.cb=m;um.cr=1;um.cc=setInterval('um.n.cot(um.cb)',um.e[11]);}};umNav.prototype.clm=function(m){if(m.style.visibility=='visible'){if(typeof um.sim==um.un||!um.sim||um.ha){um.xh(m);um.xn(m);if(um.hz){if(um.ne(m.parentNode)){this.ts('visible');}}um.t=['udmC','udmS'];for(var i=0;i<2;i++){var b=m.parentNode.lastChild;if(b&&b.className&&b.className.indexOf(um.t[i])!=-1){m.parentNode.removeChild(b);}}}}};umNav.prototype.pu=function(m){m.style.height='auto';m.style.overflow='visible';var s=(um.ne(m.parentNode));var l=m.parentNode;var p={tw:l.offsetWidth,th:l.offsetHeight,mw:m.offsetWidth,pw:(s)?um.gc(l).offsetWidth:l.parentNode.offsetWidth};var x=0;var y=0;if(!(um.h&&s)){x=(s)?(um.a?(0-p.mw):p.pw):((um.a?(0-p.mw):p.pw)-um.e[51]-um.e[55]);y=(0-p.th);}else if(um.h&&s&&um.a){x=(0-p.mw+p.tw);}x+=(s)?(um.a?(0-um.e[14]):um.e[14]):(um.a?(0-um.e[49]):um.e[49]);y+=(s)?(um.e[2]=='bottom')?(0-um.e[15]):um.e[15]:um.e[50];if(s){if(um.h){if(um.e[2]=='bottom'){y-=(m.offsetHeight+p.th);}if(um.s){if(um.nc&&!um.a){x-=um.e[18];}if(!um.s1&&um.rp){x+=um.getRealPosition(um.tr,'x');y+=um.getRealPosition(um.tr,'y');}}if(um.ie&&um.hstrip[1]=='yes'){y-=um.e[17];}}else if(um.ie&&um.nc){y-=um.e[18];}}m.style.marginLeft=x+'px';m.style.marginTop=y+'px';m.style.left='auto';m.style.top='auto';if(um.s1||um.k){m.style.top=(p.th)+'px';}if(um.wie50){um.xn(m);um.xd(m);}};umNav.prototype.il=function(m){var c=m.parentNode.appendChild(um.createElement('iframe',{'class':'udmC', 'src':'javascript:false;'}));c.tabIndex='-1';c.style.width=m.offsetWidth+'px';c.style.height=(typeof um.scr!=um.un?scr.gmh(m):m.offsetHeight)+'px';c.style.left=m.offsetLeft+'px';c.style.top=m.offsetTop+'px';return c;};umNav.prototype.ts=function(v){var s=um.m.getElementsByTagName('select');var n=s.length;if(n>0){var i=0;do{s[i++].style.visibility=v;}while(i<n);}};umNav.prototype.ws=function(){clearInterval(um.vs);var h=um.gc(um.tr).offsetHeight;var w=um.getWindowDimensions();if((h!=um.lh&&um.reset[2]!='no')||((w.x!=um.lw.x||w.y!=um.lw.y)&&um.reset[1]!='no')){um.closeAllMenus();um.lw=w;um.lh=h;if(um.og&&um.hstrip[0]!='none'){um.tr.style.height=(um.hstrip[1]=='yes')?(um.lh+um.e[17])+'px':um.lh+'px';}}um.vs=setInterval('um.n.ws()',55);};um.qc=function(l){if(um.reset[3]=='yes'&&l!=''&&l!=um.jv){um.closeAllMenus();}};um.vn=function(n){return n.replace(/html[:]+/,'');};um.es=function(c){return c==null?'':c;};um.gc=function(r){return r.getElementsByTagName('a')[0];};um.gu=function(r){return r.getElementsByTagName('ul');};um.gm=function(r){var m=null;var c=r.childNodes;var l=c.length;for(var i=0;i<l;i++){var n=um.vn(c[i].nodeName).toLowerCase();if(n=='ul'){m=c[i];break;}}return m;};um.cm=function(e){if(!e){e=window.event;}if(!um.tr.contains(e.srcElement||e.target)||e.keyCode){um.closeAllMenus();}};um.refresh=function(g){if(typeof g==um.un){g=0;}delete um.ini;um.ready=0;umIni(g);};um.closeAllMenus=function(){um.n.cd(um.tr);um.n.ck(um.tr);um.ha=0;};um.getWindowDimensions=function(){if(typeof window.innerWidth!=um.un){var w={x:window.innerWidth,y:window.innerHeight};}else if(um.q){w={x:um.m.body.clientWidth,y:um.m.body.clientHeight};}else{w={x:um.m.documentElement.offsetWidth,y:um.m.documentElement.offsetHeight};}return w;};um.getScrollAmount=function(d){return ((typeof d==um.un||!d)?(typeof window.pageYOffset!=um.un?window.pageYOffset:um.q?um.m.body.scrollTop:um.m.documentElement.scrollTop):(typeof window.pageXOffset!=um.un?window.pageXOffset:um.q?um.m.body.scrollLeft:um.m.documentElement.scrollLeft));};um.getRealPosition=function(r,d){um.ps=(d=='x')?r.offsetLeft:r.offsetTop;um.te=r.offsetParent;while(um.te){um.ps+=(d=='x')?um.te.offsetLeft:um.te.offsetTop;um.te=um.te.offsetParent;}return um.ps;};if(typeof um.trigger!=um.un&&um.trigger!=''&&!um.mie){um.drt=null;um.drw=function(){this.n=typeof this.n==um.un?0:this.n++;if(typeof um.m.getElementsByTagName!=um.un&&um.m.getElementsByTagName('body')[0]&&um.gd('udm')&&um.gd(um.trigger)){try{umIni();}catch(err){clearTimeout(um.drt);return;}}else if(this.n<60){um.drt=setTimeout('um.drw()',250);}};um.drw();}

// UDMv4.5 //
///////////////////////////////////////////////////////////////////
//                                                               //
//  ULTIMATE DROP DOWN MENU Version 4.5 by Brothercake          //
//  http://www.udm4.com/                                         //
//                                                               //
//  This script may not be used or distributed without license   //
//                                                               //
///////////////////////////////////////////////////////////////////
function umKM(){um.kbm=this;um.ha=0;um.fkd=0;um.tf=null;um.mt=[um.e[10],um.e[11]];if(um.kb&&um.m.cookie){var f=[um.gd('hotkeySelector'),um.gd('modifierSelector')];var c=um.m.cookie.split(';');var n=c.length;i=0;do{if(/udmKeyPrefs/.test(c[i])){var a=c[i].split('=')[1].split(',');j=0;do{um.keys[j+4]=a[j];if(f[j]){var z=f[j].options;var l=z.length;var k=0;do{if(z[k].value==a[j]){z[k].selected=1;break;}k++;}while(k<l);}j++;}while(j<2);break;}i++;}while(i<n);}};um.keyPrefs=function(){if(!(um.kb&&um.d)){alert('Sorry, this feature is not supported in your browser.');return false;}var d=new Date();d.setTime(d.getTime()+(365*24*60*60*1000));um.m.cookie='udmKeyPrefs=test; expires='+d.toGMTString()+'; path=/';if(!um.m.cookie){alert('Sorry, your browser didn\'t accept the cookie.\nWe cannot save your settings.');}else{var f=[um.gd('hotkeySelector'),um.gd('modifierSelector')];i=0;do{um.keys[i+4]=f[i].options[f[i].options.selectedIndex].value;i++;}while(i<2);um.m.cookie='udmKeyPrefs='+um.keys[4]+','+um.keys[5]+'; expires='+d.toGMTString()+'; path=/';alert('Save successful!');}return true;};umKM.prototype.bdh=function(){if(typeof document.addEventListener!=um.un){if(um.s){var self=this;document.addEventListener('keydown',function(e){if(um.fkd){return;}um.fkd=1;self.kha(e);},0);document.addEventListener('keyup',function(){um.fkd=0;},0);}else{document.addEventListener('keypress',this.kha,0);}}else{document.attachEvent('onkeydown',this.kha);}};umKM.prototype.bfh=function(){document.addEventListener('mouseover',function(e){if(um.ha&&um.kdf&&!umTree.contains(e.target)){um.cm(e);um.ha=0;}},0);};umKM.prototype.bth=function(l){var a=um.gc(l);var c=um.es(a.className);if(/nohref/i.test(c)){um.kbm.cdl(a);}if(um.ie) { return false; }a.addEventListener('focus',function(e){if((!um.o7&&!um.lf)||(um.o7&&um.kdf)){um.bub=0;l.over(1,e.target);}},0);return true;};umKM.prototype.cu=function(m,l,t){var v=[null,null,null];if((m!=null&&m.style.visibility!='visible')||m==null){if(l.previousSibling){v[0]=l.previousSibling;}if(l.nextSibling){v[1]=l.nextSibling;}}m=(um.gu(um.gp(t)).length>0)?um.gu(um.gp(t))[0]:null;if(m!=null&&typeof m.style!=um.un&&m.style.visibility=='visible'){var r=m.getElementsByTagName('li');var n=r.length;j=0;do{v[v.length]=r[j++];}while(j<n);}if(um.tf!=null){r=um.gp(um.tf).parentNode.lastChild;if(um.gp(um.tf)==r){um.n.lr(um.gc(r),0);}}n=v.length;i=0;do{if(v[i]!=null){if(um.gu(v[i]).length>0){um.n.cp(um.gu(v[i])[0],v[i]);}else{um.n.cp(null,v[i]);}}i++;}while(i<n);};umKM.prototype.cdl=function(l){l.href=um.jv;l.style.cursor='default';};umKM.prototype.mkc=function(k){for(i=1;i<4;i+=2){if(k==um.keys[i]){k=um.keys[4-i];break;}}return k;};umKM.prototype.kha=function(e){if(!e){e=window.event;}k=e.keyCode;if(!um.kb&&k!=9){return false;}if(k==um.keys[6]){um.ha=1;}if((k==um.keys[4]&&((um.keys[5]=='none'&&!e.shiftKey&&!e.ctrlKey&&!e.altKey&&!e.metaKey)||e[um.keys[5]]))||(k==um.keys[6])){um.e[10]=1;um.e[11]=1;if(!um.ha){um.cm(e);um.fl.focus();um.ha=1;um.ap('080',um.tr);}else{if(um.sp){um.sapi.voice.Speak(um.vocab[8],2);}um.cm(e);if(um.wie50&&um.e[13]=='yes'){um.n.ts('visible');}eval(um.keys[7]).focus();um.e[10]=um.mt[0];um.e[11]=um.mt[1];um.ha=0;um.ap('090',um.tr);}}var a=(e.target)?e.target:e.srcElement;if(um.tr.contains(a)){um.e[10]=1;um.e[11]=1;var c=um.es(um.gp(a).parentNode.className);if((um.h&&c=='udm')||typeof um.hmx=='boolean'){if(um.nm&&(k==um.keys[0]||k==um.keys[2])){return false;}i=0;do{if(k==um.keys[i]){k=um.keys[um.rtl?(i-1):(3-i)];break;}i++;}while(i<4);}else{if(um.nm&&(k==um.keys[1]||k==um.keys[3])){return false;}var t=um.gp(a).parentNode;if(um.a||um.e[12]=='yes'){c=um.es(t.className);if(um.gu(um.gp(a))[0]){um.xm=um.gu(um.gp(a))[0];if(um.getRealPosition(um.xm,'x')<um.getRealPosition(t,'x')){k=um.kbm.mkc(k);}}else if(c!='udm'){um.pm=um.gp(t).parentNode;if(um.getRealPosition(um.pm,'x')>um.getRealPosition(t,'x')){k=um.kbm.mkc(k);}}}}um.tf=null;var l=umTree.getElementsByTagName('li');var n=l.length;switch(k){case 9 :i=0;do{if(l[i]==um.gp(a)){um.tf=a;if(e.shiftKey){var p=(i==0)?-1:i-1;}else{p=((i+1)==n)?-1:i+1;}if(p<=-1){setTimeout('um.closeAllMenus()',55);}break;}i++;}while(i<n);break;case um.keys[0] :if(um.gp(a).previousSibling){var s=um.gp(a).previousSibling;if(s){t=um.gc(s);var f=(typeof t!=um.un)?t:null;if(f){f.focus();}}}else if(um.gp(a).parentNode.childNodes.length>1){um.n.cp(um.gu(um.gp(a))[0],um.gp(a));t=um.gc(um.gp(a).parentNode.lastChild);f=(um.gp(a).parentNode.className!='udm');if(f&&um.h&&um.gp(um.gp(a).parentNode).parentNode.className=='udm'){t=um.gc(um.gp(um.gp(a).parentNode));}t.focus();}um.ap('100',a);if(um.ie){return false;}else if(e){e.preventDefault();}break;case um.keys[1] :if(um.gu(um.gp(a))[0]){t=um.gu(um.gp(a))[0];f=(t)?um.gc(t):null;if(f){f.focus();}}um.ap('101',a);if(um.ie){return false;}else if(e){e.preventDefault();}break;case um.keys[2] :if(um.gp(a).nextSibling){s=um.gp(a).nextSibling;if(s){t=um.gc(s);f=(typeof t!=um.un)?t:null;if(f){f.focus();}}}else if(um.gp(a).parentNode.childNodes.length>1){um.n.cp(um.gu(um.gp(a))[0],um.gp(a));um.gc(um.gp(a).parentNode.firstChild).focus();}um.ap('102',a);if(um.ie){return false;}else if(e){e.preventDefault();}break;case um.keys[3] :if(um.gp(a).parentNode.parentNode){t=um.gp(a).parentNode;f=(t.className=='udm')?null:um.gc(um.gp(t));if(f&&(typeof f.focus=='function'||typeof f.focus=='object')){f.focus();}}um.ap('103',a);if(um.ie){return false;}else if(e){e.preventDefault();}break;}}return true;};umKM.prototype.cws=function(n){if(um.mie){return false;}for(var x=0;x<n.childNodes.length;x++){var k=n.childNodes[x];if((k.nodeType==3)&&(!/\S/.test(k.nodeValue))){n.removeChild(n.childNodes[x]);x--;}if(k.nodeType==1){this.cws(k);}}return n;};

var tooltip=function(){var id="tt";var top=3;var left=3;var maxw=600;var speed=10;var timer=20;var endalpha=95;var alpha=0;var tt,t,c,b,h;var ie=document.all?true:false;return{show:function(v,w){if(tt==null){tt=document.createElement("div");tt.setAttribute("id",id);t=document.createElement("div");t.setAttribute("id",id+"top");c=document.createElement("div");c.setAttribute("id",id+"cont");b=document.createElement("div");b.setAttribute("id",id+"bot");tt.appendChild(t);tt.appendChild(c);tt.appendChild(b);document.body.appendChild(tt);tt.style.opacity=0;tt.style.filter="alpha(opacity=0)";document.onmousemove=this.pos;}tt.style.display="block";c.innerHTML=v;tt.style.width=w?w+"px":"auto";if(!w&&ie){t.style.display="none";b.style.display="none";tt.style.width=tt.offsetWidth;t.style.display="block";b.style.display="block";}if(tt.offsetWidth>maxw){tt.style.width=maxw+"px";}h=parseInt(tt.offsetHeight)+top;clearInterval(tt.timer);tt.timer=setInterval(function(){tooltip.fade(1);},timer);},pos:function(e){var u=ie?event.clientY+document.documentElement.scrollTop:e.pageY;var l=ie?event.clientX+document.documentElement.scrollLeft:e.pageX;tt.style.top=(u-h)+"px";tt.style.left=(l+left)+"px";},fade:function(d){var a=alpha;if((a!=endalpha&&d==1)||(a!=0&&d==-1)){var i=speed;if(endalpha-a<speed&&d==1){i=endalpha-a;}else{if(alpha<speed&&d==-1){i=a;}}alpha=a+(i*d);tt.style.opacity=alpha*0.01;tt.style.filter="alpha(opacity="+alpha+")";}else{clearInterval(tt.timer);if(d==-1){tt.style.display="none";}}},hide:function(){clearInterval(tt.timer);tt.timer=setInterval(function(){tooltip.fade(-1);},timer);}};}();

var featuredcontentslider={ajaxloadingmsg:'<div style="margin: 20px 0 0 20px"><img src="../../images/icons/loading.gif" /> Fetching slider Contents. Please wait...</div>',bustajaxcache:true,enablepersist:true,settingcaches:{},jumpTo:function(fcsid,pagenumber){this.turnpage(this.settingcaches[fcsid],pagenumber);},ajaxconnect:function(setting){var page_request=false;if(window.ActiveXObject){try{page_request=new ActiveXObject("Msxml2.XMLHTTP");}catch(e){try{page_request=new ActiveXObject("Microsoft.XMLHTTP");}catch(e){}}}else{if(window.XMLHttpRequest){page_request=new XMLHttpRequest();}else{return false;}}var pageurl=setting.contentsource[1];page_request.onreadystatechange=function(){featuredcontentslider.ajaxpopulate(page_request,setting);};document.getElementById(setting.id).innerHTML=this.ajaxloadingmsg;var bustcache=(!this.bustajaxcache)?"":(pageurl.indexOf("?")!=-1)?"&"+new Date().getTime():"?"+new Date().getTime();page_request.open("GET",pageurl+bustcache,true);page_request.send(null);},ajaxpopulate:function(page_request,setting){if(page_request.readyState==4&&(page_request.status==200||window.location.href.indexOf("http")==-1)){document.getElementById(setting.id).innerHTML=page_request.responseText;this.buildpaginate(setting);}},buildcontentdivs:function(setting){var alldivs=document.getElementById(setting.id).getElementsByTagName("div");for(var i=0;i<alldivs.length;i++){if(this.css(alldivs[i],"contentdiv","check")){setting.contentdivs.push(alldivs[i]);alldivs[i].style.display="none";}}},buildpaginate:function(setting){this.buildcontentdivs(setting);var sliderdiv=document.getElementById(setting.id);var pdiv=document.getElementById("paginate-"+setting.id);var phtml="";var toc=setting.toc;var nextprev=setting.nextprev;if(typeof toc=="string"&&toc!="markup"||typeof toc=="object"){for(var i=1;i<=setting.contentdivs.length;i++){phtml+='<a href="#'+i+'" class="toc">'+(typeof toc=="string"?toc.replace(/#increment/,i):toc[i-1])+"</a> ";}phtml=(nextprev[0]!=""?'<a href="#prev" class="prev">'+nextprev[0]+"</a> ":"")+phtml+(nextprev[1]!=""?'<a href="#next" class="next">'+nextprev[1]+"</a>":"");pdiv.innerHTML=phtml;}var pdivlinks=pdiv.getElementsByTagName("a");var toclinkscount=0;for(var i=0;i<pdivlinks.length;i++){if(this.css(pdivlinks[i],"toc","check")){if(toclinkscount>setting.contentdivs.length-1){pdivlinks[i].style.display="none";continue;}pdivlinks[i].setAttribute("rel",++toclinkscount);pdivlinks[i][setting.revealtype]=function(){featuredcontentslider.turnpage(setting,this.getAttribute("rel"));return false;};setting.toclinks.push(pdivlinks[i]);}else{if(this.css(pdivlinks[i],"prev","check")||this.css(pdivlinks[i],"next","check")){pdivlinks[i].onclick=function(){featuredcontentslider.turnpage(setting,this.className);return false;};}}}this.turnpage(setting,setting.currentpage,true);if(setting.autorotate[0]){pdiv[setting.revealtype]=function(){featuredcontentslider.cleartimer(setting,window["fcsautorun"+setting.id]);};sliderdiv["onclick"]=function(){featuredcontentslider.cleartimer(setting,window["fcsautorun"+setting.id]);
};setting.autorotate[1]=setting.autorotate[1]+(1/setting.enablefade[1]*50);this.autorotate(setting);}},urlparamselect:function(fcsid){var result=window.location.search.match(new RegExp(fcsid+"=(\\d+)","i"));return(result==null)?null:parseInt(RegExp.$1);},turnpage:function(setting,thepage,autocall){var currentpage=setting.currentpage;var totalpages=setting.contentdivs.length;var turntopage=(/prev/i.test(thepage))?currentpage-1:(/next/i.test(thepage))?currentpage+1:parseInt(thepage);turntopage=(turntopage<1)?totalpages:(turntopage>totalpages)?1:turntopage;if(turntopage==setting.currentpage&&typeof autocall=="undefined"){return ;}setting.currentpage=turntopage;setting.contentdivs[turntopage-1].style.zIndex=++setting.topzindex;this.cleartimer(setting,window["fcsfade"+setting.id]);setting.cacheprevpage=setting.prevpage;if(setting.enablefade[0]==true){setting.curopacity=0;this.fadeup(setting);}if(setting.enablefade[0]==false){setting.contentdivs[setting.prevpage-1].style.display="none";setting.onChange(setting.prevpage,setting.currentpage);}setting.contentdivs[turntopage-1].style.visibility="visible";setting.contentdivs[turntopage-1].style.display="block";if(setting.prevpage<=setting.toclinks.length){this.css(setting.toclinks[setting.prevpage-1],"selected","remove");}if(turntopage<=setting.toclinks.length){this.css(setting.toclinks[turntopage-1],"selected","add");}setting.prevpage=turntopage;if(this.enablepersist){this.setCookie("fcspersist"+setting.id,turntopage);}},setopacity:function(setting,value){var targetobject=setting.contentdivs[setting.currentpage-1];if(targetobject.filters&&targetobject.filters[0]){if(typeof targetobject.filters[0].opacity=="number"){targetobject.filters[0].opacity=value*100;}else{targetobject.style.filter="alpha(opacity="+value*100+")";}}else{if(typeof targetobject.style.MozOpacity!="undefined"){targetobject.style.MozOpacity=value;}else{if(typeof targetobject.style.opacity!="undefined"){targetobject.style.opacity=value;}}}setting.curopacity=value;},fadeup:function(setting){if(setting.curopacity<1){this.setopacity(setting,setting.curopacity+setting.enablefade[1]);window["fcsfade"+setting.id]=setTimeout(function(){featuredcontentslider.fadeup(setting);},50);}else{if(setting.cacheprevpage!=setting.currentpage){setting.contentdivs[setting.cacheprevpage-1].style.display="none";}setting.onChange(setting.cacheprevpage,setting.currentpage);}},cleartimer:function(setting,timervar){if(typeof timervar!="undefined"){clearTimeout(timervar);clearInterval(timervar);if(setting.cacheprevpage!=setting.currentpage){setting.contentdivs[setting.cacheprevpage-1].style.display="none";}}},css:function(el,targetclass,action){var needle=new RegExp("(^|\\s+)"+targetclass+"($|\\s+)","ig");if(action=="check"){return needle.test(el.className);}else{if(action=="remove"){el.className=el.className.replace(needle,"");}else{if(action=="add"){el.className+=" "+targetclass;}}}},autorotate:function(setting){window["fcsautorun"+setting.id]=setInterval(function(){featuredcontentslider.turnpage(setting,"next");
},setting.autorotate[1]);},getCookie:function(Name){var re=new RegExp(Name+"=[^;]+","i");if(document.cookie.match(re)){return document.cookie.match(re)[0].split("=")[1];}return null;},setCookie:function(name,value){document.cookie=name+"="+value;},init:function(setting){var persistedpage=this.getCookie("fcspersist"+setting.id)||1;var urlselectedpage=this.urlparamselect(setting.id);this.settingcaches[setting.id]=setting;setting.contentdivs=[];setting.toclinks=[];setting.topzindex=0;setting.currentpage=urlselectedpage||((this.enablepersist)?persistedpage:1);setting.prevpage=setting.currentpage;setting.revealtype="on"+(setting.revealtype||"click");setting.curopacity=0;setting.onChange=setting.onChange||function(){};if(setting.contentsource[0]=="inline"){this.buildpaginate(setting);}if(setting.contentsource[0]=="ajax"){this.ajaxconnect(setting);}}};

Fulfillment={startFulfillment:function(){Fulfillment.hideRegistrationKey();var fulfillmentTimeAjaxRequest=Class.create(TimedAjaxRequest,{handleAjaxRequestSuccess:function($super,XHRTransport){if(!XHRTransport.responseText){Fulfillment.showRetry();return ;}Fulfillment.showRegistrationKey();var json=XHRTransport.responseText.evalJSON();for(key in json){var id=key+"_registration-key-value";$(id).innerHTML=json[key];id.title=json[key];}this.timeEnd=new Date().getTime();},handleAjaxRequestFailure:function(XHRTransport){Fulfillment.showRetry();this.timeEnd=new Date().getTime();}});var fulfillmentRequest=new fulfillmentTimeAjaxRequest("/servlet/fulfillment/fulfillment.ajax?orderId="+URLUtils.getUrlParameter("orderId")+"&email="+URLUtils.getUrlParameter("billingEmail"),300);fulfillmentRequest.sendRequest();},showRegistrationKey:function(){$$(".download-status-cell").each(function(elem){elem.show();});$$(".download-processing-status-cell").each(function(elem){elem.hide();});$$(".registration-keys-cell").each(function(elem){elem.show();});if($("registration-key-note")){$("registration-key-note").show();}if($("continue-shopping")){$("continue-shopping").show();}if($("email-invoice")){$("email-invoice").show();}if($("print-invoice")){$("print-invoice").show();}},hideRegistrationKey:function(){$$(".download-status-cell").each(function(elem){elem.hide();});$$(".download-processing-status-cell").each(function(elem){elem.show();});$$(".registration-keys-cell").each(function(elem){elem.hide();});if($("registration-key-note")){$("registration-key-note").hide();}if($("continue-shopping")){$("continue-shopping").hide();}if($("email-invoice")){$("email-invoice").hide();}if($("print-invoice")){$("print-invoice").hide();}},showRetry:function(){if($("email-invoice")){$("email-invoice").hide();}if($("print-invoice")){$("print-invoice").hide();}if($("thank_you")){$("thank_you").hide();}if($("regular_display_ref")){$("regular_display_ref").hide();}if($("sorry_ref")){$("sorry_ref").show();$("sorry_msg").show();}var winLocRef=window.location.href;if(winLocRef&&winLocRef.include("Invoice.jsp")){var customerCare='<a href="../customersupport/CSLanding.jsp?storeId='+URLUtils.getUrlParameter("storeId")+"&deviceId="+URLUtils.getUrlParameter("deviceId")+'"><img src="../images/buttons/contact-customer-care.gif" alt="contact customer care" /></a>';$$(".download-processing-status-cell").each(function(elem){elem.innerHTML=customerCare;});}else{$$(".download-processing-status-cell").each(function(elem){elem.innerHTML="";});}var retry='<a href="../order/Invoice.jsp?'+URLUtils.getUrlSearchString()+'"><img src="../images/buttons/retry-orange.gif" alt="retry" /></a>';if($("continue-shopping")){$("continue-shopping").innerHTML=retry;$("continue-shopping").show();}}};

RegKey={getNewRegKey:function(orderId,productId,userId,platformId,redirectUrl){if(RegKey.enableProcessingGIF(orderId,productId,platformId)){var RegKeyTimedAjaxRequest=Class.create(TimedAjaxRequest,{handleAjaxRequestSuccess:function($super,XHRTransport){if(!XHRTransport.responseText){RegKey.disableGetNewRegKeyButton(orderId,productId);return ;}var json=XHRTransport.responseText.evalJSON();for(key in json){var id="new-reg-key-response-"+key;var regKeyResponse=json[key];if(regKeyResponse=="maxRegKeysPerYearError"){URLUtils.redirectToUrl(redirectUrl,false);}else{$(id).innerHTML='<font color="#87C54F"><strong>'+json[key]+"</strong></font>";}}RegKey.disableGetNewRegKeyButton(orderId,productId);this.timeEnd=new Date().getTime();},handleAjaxRequestFailure:function(XHRTransport){RegKey.disableGetNewRegKeyButton(orderId,productId);this.timeEnd=new Date().getTime();}});var newDeviceIdentifierId=document.getElementById("device-identifier-"+orderId+"-"+productId).value;var regKeyRequest=new RegKeyTimedAjaxRequest("/servlet/regkey/regkey.ajax?orderId="+orderId+"&productId="+productId+"&platformId="+platformId+"&userId="+userId+"&deviceIdentifierId="+newDeviceIdentifierId,300);regKeyRequest.sendRequest();}},enableProcessingGIF:function(orderId,productId,platformId){var acceptTermsChkBox=document.getElementById("accept-terms-"+orderId+"-"+productId);var newRegKeyButton=document.getElementById("new-reg-key-button-"+orderId+"-"+productId);var deviceIdentifierId=document.getElementById("device-identifier-"+orderId+"-"+productId);var imeiNumberFormat=/^\d{6}(\-)\d{2}(\-)\d{6}(\-)\d{1}$/;if(acceptTermsChkBox.checked==0){alert("Please accept to Terms of Use, before requesting a new key");return false;}else{if(deviceIdentifierId.defaultValue==deviceIdentifierId.value){alert("Please provide a new device identifier.");return false;}else{if(deviceIdentifierId.value.length==0){alert("New Device Identifier cannot be empty.  Please provide a new device identifier");return false;}else{if(20==platformId&&!imeiNumberFormat.test(deviceIdentifierId.value)){alert("Please provide a valid IMEI number. Ex: 123456-12-123456-1");return false;}else{if(40==platformId&&!StringUtils.isBlackberryIdentifier(deviceIdentifierId.value)){alert("The PIN should be made up of only the numbers 0-9 and the letters A-F and must be 8 digits long.  Also, some characters look very similar on the Blackberry's screen. For example, 8's and B's -- D's, 0's (zeros).");return false;}else{newRegKeyButton.src="../images/icons/Retrieving.gif";deviceIdentifierId.defaultValue=deviceIdentifierId.value;return true;}}}}}},disableGetNewRegKeyButton:function(orderId,productId){var acceptTermsChkBox=document.getElementById("accept-terms-"+orderId+"-"+productId);acceptTermsChkBox.checked=0;RegKey.changeGetNewRegKeyButton(orderId,productId);},enableGetNewRegKeyButton:function(orderId,productId){var acceptTermsChkBox=document.getElementById("accept-terms-"+orderId+"-"+productId);acceptTermsChkBox.checked=1;RegKey.changeGetNewRegKeyButton(orderId,productId);
},changeGetNewRegKeyButton:function(orderId,productId){var acceptTermsChkBox=document.getElementById("accept-terms-"+orderId+"-"+productId);var newRegKeyButton=document.getElementById("new-reg-key-button-"+orderId+"-"+productId);if(acceptTermsChkBox.checked==1){newRegKeyButton.src="../images/buttons/get-new-key-enabled.gif";}else{newRegKeyButton.src="../images/buttons/get-new-key-disabled.gif";}}};

Giftlist={getDevicesByPlatform:function(platformId,device){if(""==platformId){$(device).update('<option value="">Please select one</option>');$(device).disabled=true;return ;}var GiftlistTimedAjaxRequest=Class.create(TimedAjaxRequest,{handleAjaxRequestSuccess:function($super,XHRTransport){if(!XHRTransport.responseText){return ;}var json=XHRTransport.responseText.evalJSON();var deviceOptions="";for(key in json){var giftlistResponse=json[key];deviceOptions=deviceOptions+"<option value="+key+">"+json[key]+"</option>";}$(device).update(deviceOptions);$(device).disabled=false;this.timeEnd=new Date().getTime();},handleAjaxRequestFailure:function(XHRTransport){this.timeEnd=new Date().getTime();}});var giftlistRequest=new GiftlistTimedAjaxRequest("/servlet/giftlist/giftlist.ajax?platformId="+platformId,300);giftlistRequest.sendRequest();},updateGiftItemQuantity:function(giftItemId){if(""==giftItemId){return ;}var quantity=document.getElementById(giftItemId).value;var GiftlistTimedAjaxRequest=Class.create(TimedAjaxRequest,{handleAjaxRequestSuccess:function($super,XHRTransport){if(!XHRTransport.responseText){return ;}var json=XHRTransport.responseText.evalJSON();var quantityOptions="";var newQuantity="";for(key in json){newQuantity=json[key];}for(var i=1;i<11;i++){if(newQuantity==i){quantityOptions=quantityOptions+"<option value="+key+" selected>"+json[key]+"</option>";}else{quantityOptions=quantityOptions+"<option value="+key+">"+json[key]+"</option>";}}$(device).update(quantityOptions);$(device).disabled=false;this.timeEnd=new Date().getTime();},handleAjaxRequestFailure:function(XHRTransport){this.timeEnd=new Date().getTime();}});var giftlistRequest=new GiftlistTimedAjaxRequest("/servlet/giftlist/giftlist.ajax?giftItemId="+giftItemId+"&quantity="+quantity,300);giftlistRequest.sendRequest();}};

HgoSoftLogin={softLogin:function(partnerId,partnerUserId,continueURL){var HgoSoftLoginTimedAjaxRequest=Class.create(TimedAjaxRequest,{handleAjaxRequestSuccess:function($super,XHRTransport){if(!XHRTransport.responseText){return ;}var json=XHRTransport.responseText.evalJSON();if("userDoesNotExist"==softLoginResponse){URLUtils.redirectToUrl("",false);}else{if("userExists"==softLoginResponse){URLUtils.redirectToUrl(continueUrl,false);}}this.timeEnd=new Date().getTime();},handleAjaxRequestFailure:function(XHRTransport){}});var softLoginRequest=new HgoSoftLoginTimedAjaxRequest("/servlet/softlogin/softlogin.ajax?partnerId="+partnerId+"&partnerUserId="+partnerUserId,300);softLoginRequest.sendRequest();}};

var HandangoMiniCart={handleClick:function(event){var source=Event.element(event);if(!source.hasClassName("miniCartLink")){source=source.up();}new MiniCartRetriever(source.identify());},handleMenuDisplay:function(event){var showTimeInSeconds=8;this.showMenu();this.theTimer=this.hideMenu.delay(showTimeInSeconds);},cancelMenuDisplay:function(evt){var source=evt.element();if($("cart-menu")&&$("cart-menu").visible()){this.hideMenu();}},showMenu:function(){$("cart-menu").show();},hideMenu:function(){$("cart-menu").hide();this.theTimer=null;},posCartMenu:function(){var cartMenu=$("cart-menu");var CART_MENU_OFFSET_X=-110;var CART_MENU_OFFSET_Y=-1;var that=this;if(cartMenu==null){return ;}var pos=$$("li#cart a")[0];var menuPos=Position.positionedOffset(pos);var menuPosX=menuPos[0]+CART_MENU_OFFSET_X;var menuPosY=menuPos[1]+pos.getHeight()+CART_MENU_OFFSET_Y;cartMenu.setStyle({left:menuPosX+"px",top:menuPosY+"px"});$$("a.miniCartLink").each(function(elem){elem.observe("click",that.handleClick.bindAsEventListener(that));});}};var MiniCartRetriever=Class.create(CommonSubmitHandler,{initialize:function($super,identifier,extSuccessMethod){if(StringUtils.isEmpty(identifier)){return ;}this.productId=null;this.merch=null;this.searchTerm=null;var params=identifier.split(":");if(StringUtils.isNotEmpty(params[0])){this.productId=params[0];}if(params.length>1&&StringUtils.isNotEmpty(params[1])){this.merch=params[1];}if(params.length>2&&StringUtils.isNotEmpty(params[2])){this.searchTerm=params[2];}this.requestComplete=false;this.externalSuccessMethod=extSuccessMethod;this.productName=null;this.developerName=null;this.productPrice=null;this.totalQty=null;this.subTotal=null;this.thumbnail=null;$super("/servlet/miniCart/MiniCartRetriever.ajax",{},"GET",null,null,{async:true,manualTrigger:true,useJSON:true,useTimeout:false,errorMsg:"MiniCart retrieve error",checkOrigin:false,handleRequestSuccessCustom:this.handleInfoSuccess.bindAsEventListener(this),handleRequestFailureCustom:this.handleInfoFailure.bindAsEventListener(this)});this.ajaxOptions.parameters={productId:this.productId,merch:this.merch,searchTerm:this.searchTerm};this.handleCreateRequest(null);},handleInfoSuccess:function(retXHR){if(!retXHR){this.requestComplete=true;return ;}var json=retXHR.responseText.evalJSON();var retJSONObj=retXHR.responseJSON;if(!retJSONObj||retJSONObj.length==0){this.requestComplete=true;return ;}this.orderData=retJSONObj;this.productName=this.orderData.productName;this.productId=this.orderData.productId;this.developerName=this.orderData.developerName;this.productPrice=this.orderData.productDisplayPrice;this.totalQty=this.orderData.totalQty;this.subTotal=this.orderData.displaySubTotal;this.thumbnail=this.orderData.thumbnail;this.merch=this.orderData.merchZone;this.searchTerm=this.orderData.searchTerm;var qtyContent=this.totalQty+" item ";if(this.totalQty>1){qtyContent=this.totalQty+" items ";}var imageContent=null;if((null==this.merch||0==this.merch.length)&&(null==this.searchTerm||0==this.searchTerm.length)){imageContent='<img width="50" onerror="this.onerror=null;this.src=\'../images/coverart/nopicture.gif\';" src="'+this.thumbnail+'"/>';
}else{if((null!=this.merch&&0!=this.merch.length)&&(null==this.searchTerm||0==this.searchTerm.length)){imageContent='<img web1name="merch" web1val='+this.merch+' width="50" onerror="this.onerror=null;this.src=\'../images/coverart/nopicture.gif\';" src="'+this.thumbnail+'"/>';}else{if((null==this.merch||0==this.merch.length)&&(null!=this.searchTerm||0!=this.searchTerm.length)){imageContent='<img web1name="Ntt" web1val='+this.searchTerm+' width="50" onerror="this.onerror=null;this.src=\'../images/coverart/nopicture.gif\';" src="'+this.thumbnail+'"/>';}else{imageContent='<img web1name="merch" web1val='+this.merch+' web2name="Ntt"'+this.searchTerm+' width="50" onerror="this.onerror=null;this.src=\'../images/coverart/nopicture.gif\';" src="'+this.thumbnail+'"/>';}}}$("mini_productname").innerHTML=this.productName;$("mini_developername").innerHTML=this.developerName;$("mini_thumbnail").innerHTML=imageContent;$("mini_productprice").innerHTML=this.productPrice;$("mini_subtotal").innerHTML=this.subTotal;$("mini_totoalItem").innerHTML=qtyContent;if((null==this.merch||0==this.merch.length)&&(null==this.searchTerm||0==this.searchTerm.length)){$("checkout_cart_hyperlink").href="../checkout/Cart.jsp";$("checkout_cart_image").href="../checkout/Cart.jsp";}else{if((null!=this.merch&&0!=this.merch.length)&&(null==this.searchTerm||0==this.searchTerm.length)){$("checkout_cart_hyperlink").href="../checkout/Cart.jsp?merch="+this.merch;$("checkout_cart_image").href="../checkout/Cart.jsp?merch="+this.merch;}else{if((null==this.merch||0==this.merch.length)&&(null!=this.searchTerm||0!=this.searchTerm.length)){$("checkout_cart_hyperlink").href="../checkout/Cart.jsp?Ntt="+this.searchTerm;$("checkout_cart_image").href="../checkout/Cart.jsp?Ntt="+this.searchTerm;}else{$("checkout_cart_hyperlink").href="../checkout/Cart.jsp?merch="+this.merch+"&Ntt="+this.searchTerm;$("checkout_cart_image").href="../checkout/Cart.jsp?merch="+this.merch+"&Ntt="+this.searchTerm;}}}$("shopping-bar-header-subtotal").innerHTML=this.subTotal+" ("+qtyContent+") ";HandangoMiniCart.handleMenuDisplay();this.requestComplete=true;if(this.externalSuccessMethod){this.externalSuccessMethod();}},handleInfoFailure:function(retXHR){this.requestComplete=true;}});

