/*@cc_on@*//*@if(@_jscript_version>5.5)@*/(window.gloader||glow).module({name:"glow.widgets",library:["glow","1.7.0"],depends:[["glow","1.7.0",'glow.dom','glow.events']],builder:function(glow){var doc,docBody,env=glow.env;glow.ready(function(){doc=document;docBody=doc.body;var testDiv=glow.dom.create('<div class="glow170-cssTest" style="height:0;position:absolute;visibility:hidden;top:-20px;display:block"></div>').appendTo(docBody);if(testDiv.css("visibility")!='hidden'){docBody.className+=" glow170-basic"}else{glow._addReadyBlock("glow_widgetsCSS");(function(){if(testDiv.css("z-index")!="1234"){setTimeout(arguments.callee,10);return}glow._removeReadyBlock("glow_widgetsCSS");if(testDiv.css("background-image").indexOf("ctr.png")==-1){docBody.className+=" glow170-basic"}})()}env.ie&&(docBody.className+=" glow170-ie");(env.ie<7||!env.standardsMode)&&(docBody.className+=" glow170-ielt7");env.gecko&&(docBody.className+=" glow170-gecko")});glow.widgets={_scrollPos:function(){var win=window,docElm=env.standardsMode?doc.documentElement:docBody;return{x:docElm.scrollLeft||win.pageXOffset||0,y:docElm.scrollTop||win.pageYOffset||0}}}}});(window.gloader||glow).module({name:"glow.widgets.Mask",library:["glow","1.7.0"],depends:[["glow","1.7.0",'glow.dom','glow.events','glow.widgets']],builder:function(glow){var dom=glow.dom,$=dom.get,events=glow.events,widgets=glow.widgets,bodyProperties,htmlStr='<div class="glowNoMask" style="margin:0;padding:0;position:absolute;width:100%;top:0;left:0;overflow:auto;',noScrollContainer,iframeSrc='<iframe class="glowNoMask" src="javascript:false" style="margin:0;padding:0;position:absolute;top:0;left:0;filter:alpha(opacity=0);display:none"></iframe>';function Mask(opts){this.opts=glow.lang.apply({color:'#000',opacity:0.7,zIndex:9900,disableScroll:false},opts||{});var docBody=document.body,mask=this.maskElement=dom.create(htmlStr+'z-index:'+this.opts.zIndex+';background:'+this.opts.color+';visibility:hidden"></div>').appendTo(docBody),that=this;mask.css("opacity",this.opts.opacity);if(glow.env.ie<7){this._iframe=dom.create(iframeSrc).css("z-index",this.opts.zIndex-1).appendTo(docBody)}events.addListener(mask,"click",function(){events.fire(that,"click")});if(this.opts.onClick){events.addListener(this,"click",opts.onClick)}}Mask.prototype={add:function(){var doc=$(document),body=$(document.body),win=$(window),that=this;if(this.opts.disableScroll&&!noScrollContainer){noScrollContainer=glow.dom.create(htmlStr+'height:100%;overflow:hidden;">'+htmlStr+'"></div></div>');var scrollVals=widgets._scrollPos(),bodyStyle=body[0].style,clientHeight=win.height(),clientWidth=win.width(),noScroll=noScrollContainer.get("div"),bodyChildren=body.children().filter(function(){return(' '+this.className+' ').indexOf("glowNoMask")==-1});bodyProperties={margin:[body.css("margin-top"),body.css("margin-right"),body.css("margin-bottom"),body.css("margin-left")],padding:[body.css("padding-top"),body.css("padding-right"),body.css("padding-bottom"),body.css("padding-left")],height:body.css("height")};bodyStyle.margin=bodyStyle.padding=0;bodyStyle.height="100%";noScroll[0].style.zIndex=this.opts.zIndex-1;noScrollContainer.appendTo(body);noScroll.css("margin",bodyProperties.margin.join(" ")).css("padding",bodyProperties.padding.join(" ")).css("top",-scrollVals.y-parseFloat(bodyProperties.margin[0])+"px").css("left",-scrollVals.x+"px").append(bodyChildren)}function resizeMask(){if(!(glow.env.ie<8)){that.maskElement.hide()}var newHeight=that.opts.disableScroll?noScrollContainer.height():Math.max(win.height(),doc.height()),newWidth=that.opts.disableScroll?noScrollContainer.width():Math.max(win.width(),doc.width());that.maskElement.width(newWidth).height(newHeight);if(that._iframe){that._iframe.width(newWidth).height(newHeight)}that.maskElement.show()}this.maskElement.css("visibility","visible").css("display","block");if(this._iframe){this._iframe.css("display","block")}resizeMask();this._resizeListener=events.addListener(window,"resize",resizeMask)},remove:function(){this.maskElement.css("visibility","hidden").css("display","none");if(this._iframe){this._iframe.css("display","none")}events.removeListener(this._resizeListener);if(this.opts.disableScroll){var body=$(document.body),noScroll=noScrollContainer.children();noScroll.children().appendTo(body);window.scroll(-parseInt(noScroll.css("left")),-parseInt(noScroll.css("top")));noScrollContainer.remove();body.css("margin",bodyProperties.margin.join(" ")).css("padding",bodyProperties.padding.join(" ")).css("height",bodyProperties.height);delete noScrollContainer;noScrollContainer=undefined}}};glow.widgets.Mask=Mask}});(window.gloader||glow).module({name:"glow.widgets.Overlay",library:["glow","1.7.0"],depends:[["glow","1.7.0",'glow.dom','glow.events','glow.anim','glow.widgets','glow.widgets.Mask']],builder:function(glow){var dom=glow.dom,$=dom.get,events=glow.events,widgets=glow.widgets,env=glow.env,anim=glow.anim,tweens=glow.tweens,overlayHtml='<div class="glow170-overlay glowNoMask"><div class="overlay-focalPoint" tabindex="-1"></div></div>',overlayCount=0,iframeSrc='<iframe class="glowNoMask" src="javascript:false" style="display:none;margin:0;padding:0;position:absolute;filter:alpha(opacity=0)"></iframe>',flashUrlTest=/.swf($|\?)/i,wmodeTest=/<param\s+(?:[^>]*(?:name=["'?]\bwmode["'?][\s\/>]|\bvalue=["'?](?:opaque|transparent)["'?][\s\/>])[^>]*){2}/i,useFixed=(!env.ie&&!(env.webkit<522))||(env.ie>6&&env.standardsMode);function hideElms(overlay){if(overlay._hiddenElements[0]){return}var thingsToHide=new glow.dom.NodeList(),hideWhileShown=overlay.opts.hideWhileShown,hideFilter=overlay.opts.hideFilter,i=0,thingsToHideLen;if(overlay.opts.hideWindowedFlash){thingsToHide.push($("object, embed").filter(function(){return isWindowedFlash.call(this,overlay)}))}if(hideWhileShown){thingsToHide.push($(hideWhileShown))}thingsToHide=thingsToHide.filter(function(){return!$(this).isWithin(overlay.content)});if(hideFilter){thingsToHide=thingsToHide.filter(hideFilter)}overlay._hiddenElements=thingsToHide;for(var i=0,thingsToHideLen=thingsToHide.length;i<thingsToHideLen;i++){thingsToHide[i].__glowOverlayHideCount=(Number(thingsToHide[i].__glowOverlayHideCount)||0)+1;if(thingsToHide[i].__glowOverlayHideCount==1){thingsToHide[i].__glowOverlayInitVis=thingsToHide[i].style.visibility;thingsToHide[i].style.visibility="hidden"}}}function isWindowedFlash(overlay){var that=this,wmode;if((that.getAttribute("type")=="application/x-shockwave-flash"||flashUrlTest.test(that.getAttribute("data")||that.getAttribute("src")||"")||(that.getAttribute("classid")||"").toLowerCase()=="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000")){wmode=that.getAttribute("wmode");return(that.nodeName=="OBJECT"&&!wmodeTest.test(that.innerHTML))||(that.nodeName!="OBJECT"&&wmode!="transparent"&&wmode!="opaque")}return false}function revertHiddenElms(overlay){var hiddenElements=overlay._hiddenElements,i=0,len=hiddenElements.length;for(;i<len;i++){if(--hiddenElements[i].__glowOverlayHideCount==0){hiddenElements[i].style.visibility=hiddenElements[i].__glowOverlayInitVis}}overlay._hiddenElements=[]}function generatePresetAnimation(overlay,show){var channels=[],channel=[],chanLen=0,chansLen=0,preset=overlay.opts.anim,mask=overlay.opts.mask,container=overlay.container,maskOpacity,finalHeight=0;if(preset=="fade"){container.css("opacity",(show?0:1));channels[chansLen++]=[anim.css(container,0.3,{opacity:{from:(show?0:1),to:(show?1:0)}})];if(show){channels[chansLen-1][1]=function(){container.css("opacity","")}}channels[chansLen++]=[generateMaskAnimation(overlay,show)]}else if(preset=="roll"||preset=="slide"){if(show){container.css("height","");finalHeight=container.height();container.css("height","0")}channels[chansLen++]=[function(){if(env.webkit<522&&show){container.css("display","none");setTimeout(function(){container.css("overflow","hidden").css("display","block")},0)}else{container.css("overflow","hidden")}},anim.css(container,0.3,{height:{to:finalHeight}},{tween:show?tweens.easeOut():tweens.easeIn()}),function(){if(!show){container.css("visibility","hidden")}container.css("height","");container.css("overflow","")}];channels[chansLen++]=[generateMaskAnimation(overlay,show)]}return new anim.Timeline(channels)}function generateMaskAnimation(overlay,show){if(!overlay.opts.modal){return 0}var mask=overlay.opts.mask,maskOpacity=mask.opts.opacity,maskElement=mask.maskElement;maskElement.css("opacity",(show?0:maskOpacity));return anim.css(maskElement,0.1,{opacity:{from:(show?0:maskOpacity),to:(show?maskOpacity:0)}})}function closeOverlay(overlay){revertHiddenElms(overlay);overlay.container.css("visibility","").css("display","");if(overlay.opts.modal){overlay.opts.mask.remove()}else if(glow.env.ie<7){overlay._iframe.css("display","none")}events.removeListener(overlay._scrollEvt);events.removeListener(overlay._resizeEvt)}function Overlay(content,opts){opts=opts||{};if(opts.mask){opts.modal=true}this.opts=opts=glow.lang.apply({modal:false,closeOnMaskClick:true,zIndex:9990,autoPosition:true,x:"50%",y:"50%",ariaRole:"",ariaProperties:{live:"polite"},hideWindowedFlash:true,focusOnShow:false,id:"glow170Overlay"+(++overlayCount),closeOnEsc:false},opts);if(opts.modal&&!opts.mask){opts.mask=new glow.widgets.Mask(opts.zIndex?{zIndex:opts.zIndex-1}:{})}var contentNode=this.content=$(content),that=this,overlayNode=this.container=dom.create(overlayHtml).css("z-index",opts.zIndex).attr("aria-hidden","true"),docBody=document.body,i;this._focalPoint=overlayNode.get("div.overlay-focalPoint");this._hiddenElements=[];overlayNode[0].id=opts.id;overlayNode[0].className+=" "+(opts.className||"");this.autoPosition=opts.autoPosition;this.isShown=false;this.returnTo=opts.returnTo;this._blockActions=false;overlayNode.append(contentNode).appendTo(docBody);if(opts.closeOnMaskClick&&opts.mask){events.addListener(opts.mask,"click",function(){that.hide()})}if(glow.env.ie<7&&!opts.modal){this._iframe=dom.create(iframeSrc).css("z-index",opts.zIndex-1).appendTo(docBody)}if(opts.ariaRole){overlayNode.attr("role",opts.ariaRole)}for(i in opts.ariaProperties){overlayNode.attr("aria-"+i,opts.ariaProperties[i])}if(this.opts.closeOnEsc){overlayNode.attr("tabIndex","0");var escKeyEvent=(glow.env.webkit)?"keyup":"keypress";glow.events.addListener(overlayNode,escKeyEvent,function(e){if(e.key=="ESC"){that.hide()}})}}Overlay.prototype={setPosition:function(x,y){var container=this.container;if(this.autoPosition){if(x!==undefined&&!(x.source)){this.opts.x=x;this.opts.y=y}var win=$(window),x=this.opts.x,y=this.opts.y,xVal=parseFloat(this.opts.x),yVal=parseFloat(this.opts.y),blockScrollPos=this._blockScrollRepos,useFixedThisTime=useFixed&&(!blockScrollPos.x)&&(!blockScrollPos.y),extraOffset=((this.opts.mask&&this.opts.mask.opts.disableScroll)||useFixedThisTime)?{x:0,y:0}:widgets._scrollPos(),winWidth,winHeight,containerWidth,containerHeight;useFixedThisTime&&container.css("position","fixed");if(typeof x=="string"&&x.indexOf("%")!=-1){winWidth=win.width();containerWidth=container[0].offsetWidth;if(containerWidth>winWidth){if(!blockScrollPos.x){container.css("left",widgets._scrollPos().x+"px").css("position","absolute");blockScrollPos.x=true}else if(this.opts.modal&&$(document).width()<containerWidth){this.opts.mask.maskElement.css("width",containerWidth+"px")}}else{blockScrollPos.x=false;container.css("left",Math.max(((winWidth-containerWidth)*(xVal/100))+extraOffset.x,extraOffset.x)+"px")}}else{container.css("left",xVal+extraOffset.x+"px")}if(typeof y=="string"&&y.indexOf("%")!=-1){winHeight=win.height();containerHeight=container[0].offsetHeight;if(containerHeight>winHeight){if(!blockScrollPos.y){container.css("top",widgets._scrollPos().y+"px").css("position","absolute");blockScrollPos.y=true}else if(this.opts.modal&&$(document).height()<containerHeight){this.opts.mask.maskElement.css("height",containerHeight+"px")}}else{blockScrollPos.y=false;container.css("top",Math.max(((winHeight-containerHeight)*(yVal/100))+extraOffset.y,extraOffset.y)+"px")}}else{container.css("top",yVal+extraOffset.y+"px")}}if(glow.env.ie<7&&!this.opts.modal){var overlayStyle=container[0].style;this._iframe.css("top",overlayStyle.top).css("left",overlayStyle.left).css("width",container[0].offsetWidth+"px").css("height",container[0].offsetHeight+"px")}return this},show:function(){var that=this,showAnim,animOpt=that.opts.anim;if(that._blockActions||that.isShown){return that}if(events.fire(that,"show").defaultPrevented()){return that}this._blockScrollRepos={x:false,y:false};hideElms(that);that.container.css("display","block");if(that.opts.modal){that.opts.mask.add()}else if(glow.env.ie<7){that._iframe.css("display","block")}that._scrollEvt=events.addListener(window,"scroll",that.setPosition,that);that._resizeEvt=events.addListener(window,"resize",that.setPosition,that);that.setPosition();if(typeof animOpt=="string"){showAnim=generatePresetAnimation(that,true)}else if(typeof animOpt=="function"){showAnim=animOpt(that,true)}else if(animOpt){showAnim=animOpt.show}if(showAnim){if(!showAnim._overlayEvtAttached){events.addListener(showAnim,"complete",function(){that._blockActions=false;that.isShown=true;that.container.attr("aria-hidden","false");events.fire(that,"afterShow")});showAnim._overlayEvtAttached=true}that._blockActions=true;showAnim.start();that.container.css("visibility","visible")}else{that.container.css("visibility","visible");that.isShown=true;that.container.attr("aria-hidden","false");events.fire(that,"afterShow")}if(that.opts.focusOnShow){that._focalPoint[0].focus()}if(that.opts.modal){addModalBehaviour.call(that)}return that},hide:function(){var that=this,hideAnim,animOpt=that.opts.anim,returnTo=that.returnTo?$(that.returnTo):new glow.dom.NodeList(),returnNodeName;if(this._blockActions||!that.isShown){return that}if(events.fire(that,"hide").defaultPrevented()){return that}if(that.opts.modal){removeModalBehaviour.call(that)}if(typeof animOpt=="string"){hideAnim=generatePresetAnimation(that,false)}else if(typeof animOpt=="function"){hideAnim=animOpt(that,false)}else if(animOpt){hideAnim=animOpt.hide}if(hideAnim){if(!hideAnim._overlayEvtAttached){events.addListener(hideAnim,"complete",function(){closeOverlay(that);that._blockActions=false;that.isShown=false;events.fire(that,"afterHide")});hideAnim._overlayEvtAttached=true}that._blockActions=true;hideAnim.start()}else{closeOverlay(that);that.isShown=false;events.fire(that,"afterHide")}that.container.attr("aria-hidden","true");if(returnTo[0]){returnNodeName=returnTo[0].nodeName;if(returnTo[0].tabindex==undefined||returnNodeName!="input"||returnNodeName!="select"||returnNodeName!="textarea"||returnNodeName!="a"){returnTo.attr("tabindex","-1")}returnTo[0].focus()}if(glow.env.ie){that.content.get("object").each(function(i){if((this.getAttribute("type")=="application/x-shockwave-flash"||flashUrlTest.test(this.getAttribute("data")||this.getAttribute("src")||"")||(this.getAttribute("classid")||"").toLowerCase()=="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000")){this.parentNode.insertBefore(this,this.nextSibling)}})}return that}};function addModalBehaviour(){if(this._keepfocusEventId!==undefined){return}var overlay=this,overlayZindex=null;overlayZindex=overlay.container.css('z-index');this._keepfocusEventId=events.addListener($('body'),'focus',function(e){var parent=null,parentZindex=null;parent=e.source.parentNode;while(parent){if(parent.parentNode==document.body){break}parent=parent.parentNode}parentZindex=$(parent).css('z-index');if(!parentZindex||parentZindex=="auto"||parentZindex<overlayZindex){overlay._focalPoint&&overlay._focalPoint[0].focus();return false}})}function removeModalBehaviour(){if(this._keepfocusEventId===undefined){return}events.removeListener(this._keepfocusEventId);delete this._keepfocusEventId}glow.widgets.Overlay=Overlay}});(window.gloader||glow).module({name:"glow.widgets.Panel",library:["glow","1.7.0"],depends:[["glow","1.7.0",'glow.dom','glow.events','glow.widgets.Overlay','glow.i18n']],builder:function(glow){var dom=glow.dom,$=dom.get,$i18n=glow.i18n,events=glow.events,widgets=glow.widgets,Overlay=widgets.Overlay,lang=glow.lang,env=glow.env,defaultTemplate,themesPreloaded={},accessAddition='<div class="panelAccess">{END_LABEL}. <a href="#">{TOP_OF_PANEL_LINK}</a><a href="#">{CLOSE_LINK}</a></div>';$i18n.addLocaleModule("GLOW_WIDGETS_PANEL","en",{END_LABEL:"End of panel",CLOSE_LINK:"Close Panel",TOP_OF_PANEL_LINK:"Back to top of panel"});if(glow.env.ie){glow.ready(function(){var widgetSheet=function(sheets){var i=0,len=sheets.length,sheet;for(;i<len;i++){if(sheets[i].href.indexOf("widgets/widgets")!=-1){return sheets[i]}else{if(sheets[i].imports.length&&(sheet=arguments.callee(sheets[i].imports))){return sheet}}}return false}(document.styleSheets),_ieCssRule=function(theme,className,image){return".glow170-ie .glow170-overlay"+cssPngThemes[theme].className+" ."+className+" {background:none;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+iePngRoot+"/images/"+cssPngThemes[theme].path+"/"+image+".png', sizingMethod='crop');}"},cssPngThemes={light:{className:" .panel-light",path:"lightpanel"},dark:{className:"",path:"darkpanel"}},iePngRoot=widgetSheet.href.substring(0,widgetSheet.href.lastIndexOf("/")),styleBlock="<style type='text/css'>";for(var thm in cssPngThemes){styleBlock=styleBlock+_ieCssRule(thm,"tr","ctr")+_ieCssRule(thm,"tl","ctl")+_ieCssRule(thm,"bl","cbl")+_ieCssRule(thm,"br","cbr")+_ieCssRule(thm,"infoPanel-pointerT","at")+_ieCssRule(thm,"infoPanel-pointerR","ar")+_ieCssRule(thm,"infoPanel-pointerB","ab")+_ieCssRule(thm,"infoPanel-pointerL","al")}styleBlock=styleBlock+"</style>";glow.dom.get("head").append(glow.dom.create(styleBlock))})}function generateDivString(nest){var insideDiv=nest?'<div></div>':'';for(var i=1,len=arguments.length,r=[];i<len;i++){r[i-1]='<div class="'+arguments[i]+'">'+insideDiv+'</div>'}return r.join("")}function closeClick(){this.hide();return false}defaultTemplate=function(){var r=[],rLen=0;r[rLen++]='<div class="glow170-panel">';r[rLen++]='<div class="defaultSkin">';r[rLen++]=generateDivString(false,"infoPanel-pointerT","infoPanel-pointerL","infoPanel-pointerR");r[rLen++]='<div class="pc">';r[rLen++]=generateDivString(false,"tr","tl");r[rLen++]=generateDivString(true,"tb");r[rLen++]='<div class="tc">';r[rLen++]=generateDivString(false,"bars");r[rLen++]='<div class="c">';r[rLen++]='<a class="panel-close" href="#" title="close">X</a>';r[rLen++]=generateDivString(false,"panel-hd","panel-bd","panel-ft");r[rLen++]='</div>';r[rLen++]='</div>';r[rLen++]=generateDivString(false,"br","bl");r[rLen++]=generateDivString(true,"bb");r[rLen++]='</div>';r[rLen++]=generateDivString(false,"infoPanel-pointerB");r[rLen++]='</div>';r[rLen++]='</div>';return r.join("")}();function Panel(content,opts){content=$(content);opts=opts||{};if(typeof opts.width=="number"){opts.width+='px'}if(opts.template){var customTemplate=true}opts=glow.lang.apply({template:defaultTemplate,width:"400px",modal:true,theme:"dark",ariaRole:"dialog",focusOnShow:true},opts);var fullContent=dom.create(opts.template),headContent=content.get("> .hd"),footerContent=content.get("> .ft"),docBody=document.body,that=this,fullContentClone,i,localePanelModule=glow.i18n.getLocaleModule("GLOW_WIDGETS_PANEL"),accessLinks=dom.create(accessAddition,{interpolate:setAccessibilityFooter(localePanelModule)});function setAccessibilityFooter(localePanelModule){if(typeof opts.accessibilityFooter=="string"){localePanelModule["END_LABEL"]=opts.accessibilityFooter}return localePanelModule}if(!customTemplate){fullContent.addClass("panel-"+opts.theme);if(!themesPreloaded[opts.theme]&&docBody.className.indexOf("glow170-basic")==-1){fullContentClone=fullContent.clone().addClass("glow170-panel-preload").appendTo(docBody);themesPreloaded[opts.theme]=true}}if(content.length>1){content.each(function(){var elm=$(this);if(elm.hasClass("hd")){headContent=elm}else if(elm.hasClass("ft")){footerContent=elm}})}this.header=fullContent.get(".panel-hd");this.footer=fullContent.get(".panel-ft");this.body=fullContent.get(".panel-bd");if(content.isWithin(docBody)){fullContent.insertBefore(content)}else{fullContent.appendTo(docBody)}this.body.append(content);if(headContent.length){this.header.append(headContent)}else if(!customTemplate){fullContent.addClass("panel-noHeader")}if(footerContent.length){this.footer.append(footerContent)}events.addListener(fullContent.get(".panel-close"),"click",closeClick,this);events.addListener(accessLinks.get("a").item(1),"click",closeClick,this);events.addListener(accessLinks.get("a").item(0),"click",function(){$('.overlay-focalPoint')[0].focus()},this);Overlay.call(this,fullContent,opts);this.container.css("width",opts.width).append(accessLinks)}lang.extend(Panel,Overlay);glow.widgets.Panel=Panel}});(window.gloader||glow).module({name:"glow.widgets.Sortable",library:["glow","1.7.0"],depends:[["glow","1.7.0",'glow.dom','glow.events','glow.dragdrop','glow.widgets']],builder:function(glow){var $=glow.dom.get,events=glow.events,fire=events.fire,addListener=events.addListener;var Sortable=function(containers,opts){this._opts=opts=glow.lang.apply({dropIndicatorClass:'glow-sortable-dropindicator',equaliseColumns:true,draggableOptions:{}},opts||{});this.constrainDragTo=opts.constrainDragTo;this.axis=opts.axis;this.draggables=[];var containers=this.containers=$(containers),dropTargets=this.dropTargets=[];if(opts.onSort){addListener(this,"sort",opts.onSort)}containers.each(function(i){dropTargets[i]=new glow.dragdrop.DropTarget(this,{tolerance:'intersect',dropIndicator:'spacer',dropIndicatorClass:opts.dropIndicatorClass})});co=containers.children();this.addItems(co)};function handleDrag(){if(this._itemsInMotion){return false}if(this._opts.equaliseColumns){equaliseColumns.call(this)}this._itemsInMotion=true}function equaliseColumns(){var offsets=[],maxBottom=0,bottom,dropTargets=this.dropTargets;this.containers.each(function(i){var el=$(this);offsets[i]=el.position().top;bottom=offsets[i]+el[0].offsetHeight;if(glow.env.khtml)bottom-=el.css('margin-top')+el.css('margin-bottom');if(bottom>maxBottom)maxBottom=bottom});for(var i=0,l=this.dropTargets.length;i<l;i++)this.dropTargets[i].setLogicalBottom(maxBottom)}function handleDrop(e){var draggable=e.attachedTo,el=draggable.element,target=draggable.activeTarget;this._previous=el.prev();this._parent=el.parent();if(target)target.moveToPosition(draggable)}function handleAfterDrop(e){var draggable=e.attachedTo,el=draggable.element;if(!el.prev().eq(this._previous||[])||!el.parent().eq(this._parent)){fire(this,"sort");id=draggable.element[0].id;id=id.substring(1);overly=document.getElementById('editoverlay'+id);edit=document.getElementById('edit_'+id);if(overly){overly.style.top=(edit.offsetTop)+'px';overly.style.left=edit.offsetLeft+'px'}}else{id=draggable.element[0].id;id=id.substring(1);overly=document.getElementById('editoverlay'+id);if(overly){d=overly.parentNode;d.removeChild(overly)}}this._itemsInMotion=false;delete this._previous;delete this._parent}Sortable.prototype={addItems:function(elements){var this_=this,opts=this._opts.draggableOptions;$(elements).each(function(){var draggable=new glow.dragdrop.Draggable(this,glow.lang.apply({placeholder:'none',axis:this_.axis,container:this_.constrainDragTo,dropTargets:this_.dropTargets},opts));wid=this.id;wid=wid.substr(1);addListener(draggable,'drag',handleDrag,this_);addListener(draggable,'drop',handleDrop,this_);addListener(draggable,'afterDrop',handleAfterDrop,this_);addListener(draggable,'drag',new Function("set_zero('"+wid+"');"),this_);this_.draggables.push(draggable)})}};glow.widgets.Sortable=Sortable}});function set_zero(id){overly=document.getElementById('editoverlay'+id);if(overly){overly.style.top='0px';overly.style.left='0px'}}(window.gloader||glow).module({name:"glow.widgets.InfoPanel",library:["glow","1.7.0"],depends:[["glow","1.7.0",'glow.dom','glow.events','glow.widgets.Panel']],builder:function(glow){var dom=glow.dom,$=dom.get,events=glow.events,widgets=glow.widgets,lang=glow.lang,env=glow.env,win,positionRegex=/glow170\-infoPanel\-point[TRBL]/,offsetInContextDefaults={T:{x:"50%",y:"100%"},R:{x:0,y:"50%"},B:{x:"50%",y:0},L:{x:"100%",y:"50%"}};glow.ready(function(){win=$(window)});function resolveRelative(point,context){var vals=[point.x,point.y],axis=["x","y"],sides=["Width","Height"],i=0;for(;i<2;i++){if(vals[i].slice){vals[i]=parseFloat(point[axis[i]]);if(point[axis[i]].slice(-1)=="%"){vals[i]=context[0]["offset"+sides[i]]*(vals[i]/100)}}}return{x:vals[0],y:vals[1]}}function calculateBestPointerSide(contextPos,contextSize){var scrollPos=widgets._scrollPos(),winSize={x:win.width(),y:win.height()},freeSpace={T:winSize.y-contextPos.top-contextSize.y+scrollPos.y,R:contextPos.left-scrollPos.x,B:contextPos.top-scrollPos.y,L:winSize.x-contextPos.left-contextSize.x+scrollPos.x},preferenceOrder=["T","R","B","L"];preferenceOrder.sort(function(a,b){return freeSpace[b]-freeSpace[a]});return preferenceOrder[0]}function InfoPanel(content,opts){opts=opts||{};if(opts.template){var customTemplate=true}opts=glow.lang.apply({modal:false,theme:"light",autoPosition:!!opts.context,pointerRegisters:{t:{x:"50%",y:0},r:{x:"100%",y:"50%"},b:{x:"50%",y:"100%"},l:{x:0,y:"50%"}},ariaRole:"tooltip",focusOnShow:true},opts);if(opts.focusOnShow&&opts.returnTo===undefined){opts.returnTo=opts.context}opts.context=opts.context&&$(opts.context);widgets.Panel.call(this,content,opts);opts.context&&opts.context.attr("aria-describedby",this.container[0].id);if(!customTemplate){this.content.addClass("glow170-infoPanel")}this.content.addClass("glow170-infoPanel-point"+(opts.pointerPosition||"t").slice(0,1).toUpperCase())}lang.extend(InfoPanel,widgets.Panel);lang.apply(InfoPanel.prototype,{setPosition:function(x,y){var valsPassed=(x!==undefined&&!(x.source)),isCurrentlyHidden=!this.container[0].offsetHeight;if(!(this.autoPosition||valsPassed)){return this}else if(valsPassed){this.autoPosition=false}if(isCurrentlyHidden){this.container.css("display","block")}var opts=this.opts,contentNode=this.content[0],pointerPosition=(opts.pointerPosition||"").slice(0,1),context=opts.context,container=this.container,pointerElm,contextOffset=valsPassed?{left:x,top:y}:context.offset(),contextSize=valsPassed?{x:0,y:0}:{x:context[0].offsetWidth,y:context[0].offsetHeight},offsetInContext,pointOffsetInPanel,pointerInnerOffset,panelOffset=container.offset(),pointerOffset,lastPointerPosition;if(!pointerPosition){pointerPosition=calculateBestPointerSide(contextOffset,contextSize);if(lastPointerPosition!=pointerPosition){lastPointerPosition=pointerPosition;contentNode.className=contentNode.className.replace(positionRegex,"glow170-infoPanel-point"+pointerPosition);pointerElm=container.get(".infoPanel-pointer"+pointerPosition)}}else{pointerPosition=pointerPosition.toUpperCase()}if(!pointerElm){pointerElm=container.get(".infoPanel-pointer"+pointerPosition)}offsetInContext=valsPassed?{x:0,y:0}:resolveRelative(opts.offsetInContext||offsetInContextDefaults[pointerPosition],context);pointerInnerOffset=resolveRelative(opts.pointerRegisters[pointerPosition.toLowerCase()],pointerElm);pointerOffset=pointerElm.offset();pointOffsetInPanel={left:pointerOffset.left-panelOffset.left+pointerInnerOffset.x,top:pointerOffset.top-panelOffset.top+pointerInnerOffset.y};if(isCurrentlyHidden){this.container.css("display","none")}container.css("left",contextOffset.left+offsetInContext.x-pointOffsetInPanel.left+"px").css("top",contextOffset.top+offsetInContext.y-pointOffsetInPanel.top+"px");if(env.ie<7&&!opts.modal){var overlayStyle=container[0].style;this._iframe.css("top",overlayStyle.top).css("left",overlayStyle.left).css("width",container[0].offsetWidth+"px").css("height",container[0].offsetHeight+"px")}return this},setContext:function(context){var currentContext=this.opts.context;if(currentContext){currentContext.removeAttr("aria-describedby");if($(this.returnTo)[0]==currentContext[0]){this.returnTo=context}}this.opts.context=$(context).attr("aria-describedby",this.container[0].id);if(!this.returnTo){this.returnTo=this.opts.context}this.autoPosition=true;if(this.container[0].style.display=="block"){this.setPosition()}return this}});glow.widgets.InfoPanel=InfoPanel}});(window.gloader||glow).module({name:"glow.widgets.Slider",library:["glow","1.7.0"],depends:[["glow","1.7.0","glow.dom","glow.events","glow.dragdrop","glow.anim","glow.widgets"]],builder:function(glow){var $=glow.dom.get,events=glow.events,env=glow.env,Ruler,Slider,eventNames=["slideStart","slideStop","change"],lastKeyDown=null,nudgeButtonRepeater,keyRepeater,os=navigator.platform.slice(0,3),vocabs=[{containerClassNamePart:"slider",length:"width",lengthUpper:"Width",pos:"left",trackToChange:"_trackOnElm",axis:"x",pagePos:"pageX"},{containerClassNamePart:"vSlider",length:"height",lengthUpper:"Height",pos:"top",trackToChange:"_trackOffElm",axis:"y",pagePos:"pageY"}],SLIDER_TEMPLATE=''+'<div class="slider-theme">'+'<div class="slider-state">'+'<div class="slider-container">'+'<div class="slider-btn-bk"></div>'+'<div class="slider-track">'+'<div class="slider-trackOn"></div>'+'<div class="slider-trackOff"></div>'+'<div class="slider-handle"></div>'+'</div>'+'<div class="slider-labels"></div>'+'<div class="slider-btn-fwd"></div>'+'</div>'+'</div>'+'</div>';function greatestCommonDivisor(){var i=0,len=arguments.length,r,b;while(!(r=arguments[i++])&&(i<len));for(;i<len;i++){b=arguments[i];if(!b){continue}while(1){r=r%b;if(!r){r=b;break}b=b%r;if(!b){break}}}return r}(function(){var vocabs=[{containerClassNamePart:"ruler",length:"width",pos:"left"},{containerClassNamePart:"vRuler",length:"height",pos:"top"}];Ruler=function(container,opts){container=$(container);opts=glow.lang.apply({size:300,min:0,max:100},opts);var vocab=vocabs[!!opts.vertical*1],tickMajorElm=glow.dom.create('<div class="ruler-tickMajor"></div>'),tickMinorElm=glow.dom.create('<div class="ruler-tickMinor"></div>'),labelElm=glow.dom.create('<div class="ruler-label"><span></span></div>'),labelInterval=Number(opts.labels),divisor=greatestCommonDivisor(opts.tickMajor,opts.tickMinor,labelInterval),percentPos,tmpElm,reverse=opts.reverse,size=opts.max-opts.min,element,labelsElm,labelElmClone,labelPos,i=opts.min;this.element=element=glow.dom.create('<div role="presentation" class="glow170-'+vocab.containerClassNamePart+'"><div class="ruler-spacer"></div><div class="ruler-labels"></div></div>');labelsElm=element.get('div.ruler-labels');element[0].id=opts.id||"";element[0].className+=" "+(opts.className||"");for(;i<=opts.max;i+=divisor){percentPos=((i-opts.min)/size)*100;percentPos=reverse?100-percentPos:percentPos;if(opts.tickMajor&&!((i-opts.min)%opts.tickMajor)){tickMajorElm.clone().css(vocab.pos,percentPos+"%").appendTo(element)}else if(opts.tickMinor&&!((i-opts.min)%opts.tickMinor)){tickMinorElm.clone().css(vocab.pos,percentPos+"%").appendTo(element)}if(labelInterval&&!((i-opts.min)%labelInterval)){labelElmClone=labelElm.clone().css(vocab.pos,percentPos+"%");labelElmClone[0]._labelVal=i;labelElmClone.get('span').html(opts.labelMapper?opts.labelMapper(i):i);labelsElm.append(labelElmClone)}}if(!labelInterval){for(labelPos in opts.labels){percentPos=((Number(labelPos)-opts.min)/size)*100;percentPos=reverse?100-percentPos:percentPos;if(percentPos<=100){labelElmClone=labelElm.clone().css(vocab.pos,percentPos+"%");labelElmClone[0]._labelVal=Number(labelPos);labelElmClone.get('span').html(opts.labelMapper?opts.labelMapper(opts.labels[labelPos]):opts.labels[labelPos]);labelsElm.append(labelElmClone)}}}container.append(element)}})();function getVocab(slider){return vocabs[!!slider._opts.vertical*1]}function adjustTracks(slider){var vocab=getVocab(slider);slider[vocab.trackToChange][0].style[vocab.length]=parseInt(slider._handleElm[0].style[vocab.pos])+(slider._handleSize/2)+"px"}function handleMouseMove(){adjustTracks(this);if(this._opts.changeOnDrag){var newVal=valueForHandlePos(this);change(this,newVal);(this._boundInput[0]||{}).value=newVal}}function handleKeyNav(event){var vocab=getVocab(this),that=this,nudgeAmount;if(lastKeyDown=="prevented"){return false}else if(lastKeyDown!=event.key){if(!lastKeyDown&&slideStart(this).defaultPrevented()){lastKeyDown="prevented";return false}nudgeAmount=(event.key=='UP'||event.key=='RIGHT')?1:-1;clearInterval(keyRepeater);keyRepeater=setTimeout(function(){keyRepeater=setInterval(function(){nudge(that,nudgeAmount)},40)},500);nudge(that,nudgeAmount);lastKeyDown=event.key}return false}function handleKeyNavEnd(event){if(lastKeyDown==event.key){lastKeyDown=null;clearInterval(keyRepeater);slideStop(this)}}function handleButtonDown(event){if(!this._disabled&&!slideStart(this).defaultPrevented()){var nudgeAmount=event.attachedTo.className.indexOf("-fwd")!=-1?1:-1,that=this;nudge(this,nudgeAmount);nudgeButtonRepeater=setTimeout(function(){nudgeButtonRepeater=setInterval(function(){nudge(that,nudgeAmount)},40)},500)}return false}function handleButtonUp(event){if(nudgeButtonRepeater){clearTimeout(nudgeButtonRepeater);clearInterval(nudgeButtonRepeater);nudgeButtonRepeater=null;slideStop(this)}return false}function nudge(slider,stepsToNudge){var changeBy=(slider._opts.step||(1/slider._pixelsPerVal))*stepsToNudge;slider._nudgeVal=sanitiseVal(slider,slider._nudgeVal+changeBy);updateSliderUi(slider,slider._nudgeVal);if(slider._opts.changeOnDrag){change(slider,slider._nudgeVal);(slider._boundInput[0]||{}).value=slider._val}}function updateSliderUi(slider,val){var valueAsPixels,vocab=getVocab(slider);val=val===undefined?slider._val:val;valueAsPixels=slider._opts.vertical?(slider._opts.max-val)*slider._pixelsPerVal:(val-slider._opts.min)*slider._pixelsPerVal;slider._handleElm[0].style[vocab.pos]=valueAsPixels+"px";adjustTracks(slider)}function valueForHandlePos(slider){var vocab=getVocab(slider),handlePos=parseInt(slider._handleElm[0].style[vocab.pos]),newVal=slider._opts.vertical?(slider._trackSize-slider._handleSize)-handlePos:handlePos;newVal=(newVal/slider._pixelsPerVal)+slider._opts.min;return sanitiseVal(slider,newVal)}function sanitiseVal(slider,val){var step=slider._opts.step,min=slider._opts.min,max=slider._opts.max;val=Number(val)||0;if(val<min){return min}if(val>max){return max-((max-min)%(step||1))}if(step===0){return val}return Math.round((val-min)/step)*step+min}function change(slider,newVal){var currentVal=slider._val;newVal=(newVal===undefined)?valueForHandlePos(slider):newVal;slider.element.attr("aria-valuenow",newVal);slider._val=newVal;if(newVal!=currentVal){events.fire(slider,"change")}}function slideStart(slider){slider._valBeforeSlide=slider._nudgeVal=slider._val;return events.fire(slider,"slideStart")}function slideStop(slider){var eventData={initialVal:slider._valBeforeSlide,currentVal:valueForHandlePos(slider)};if(events.fire(slider,"slideStop",eventData).defaultPrevented()){change(slider,slider._valBeforeSlide);slider.val(slider._valBeforeSlide);return}change(slider,eventData.currentVal);if(slider._opts.snapOnDrop){slider.val(eventData.currentVal)}else{(slider._boundInput[0]||{}).value=eventData.currentVal}}function initUi(slider,ruler){var opts=slider._opts,vocab=getVocab(slider),element=slider.element,verticalPaddingHeight,adjustedSize,startVal,mouseMoveListener,handleDraggable,draggableOpts,smallestStepingVal=greatestCommonDivisor((opts.step*opts.snapOnDrag),opts.tickMinor,opts.tickMajor),oldLengthStyle;if(opts.vertical){verticalPaddingHeight=element.height();slider._trackOnElm.height(opts.size-verticalPaddingHeight)}else{element.width(opts.size)}slider._trackSize=slider._trackElm[vocab.length]();oldLengthStyle=slider._handleElm[0].style[vocab.length];if(glow.env.ie<8){slider._handleElm[0].style[vocab.length]=slider._handleElm[0].currentStyle[vocab.length];slider._handleElm[0].style[vocab.length]=slider._handleElm[0].style["pixel"+vocab.lengthUpper]}slider._handleSize=slider._handleElm[0]["offset"+vocab.lengthUpper];slider._handleElm[0].style[vocab.length]=oldLengthStyle;if(opts.val!=undefined){startVal=opts.val}else if(slider._boundInput[0]&&slider._boundInput[0].value!=""){startVal=slider._boundInput[0].value}else{startVal=opts.min}if(smallestStepingVal){adjustedSize=((slider._trackSize-slider._handleSize)/(opts.max-opts.min))*smallestStepingVal;adjustedSize=((Math.floor(adjustedSize)/smallestStepingVal)*(opts.max-opts.min))+slider._handleSize;if(opts.vertical){slider._trackOnElm.height(adjustedSize);if(ruler){ruler.element.height(adjustedSize-slider._handleSize)}}else{element.width(opts.size-(slider._trackSize-adjustedSize))}slider._trackSize=slider._trackElm[vocab.length]()}slider._pixelsPerVal=((slider._trackSize-slider._handleSize)/(opts.max-opts.min));slider.val(startVal);element.attr({"aria-valuenow":slider._val,"aria-valuemin":opts.min,"aria-valuemax":opts.max});draggableOpts={axis:vocab.axis,container:slider._trackElm,onDrag:function(){if(slider._disabled||slideStart(slider).defaultPrevented()){return false}slider._stateElm.addClass("slider-active");mouseMoveListener=events.addListener(document,"mousemove",handleMouseMove,slider)},onDrop:function(){slider._stateElm.removeClass("slider-active");events.removeListener(mouseMoveListener);slideStop(slider)}};if(opts.snapOnDrag){draggableOpts.step=slider._pixelsPerVal*opts.step}handleDraggable=new glow.dragdrop.Draggable(slider._handleElm,draggableOpts);if(opts.jumpOnClick){events.addListener(slider._trackElm,"mousedown",function(event){if(slider._disabled||event.source==slider._handleElm[0]){return}var vocab=getVocab(slider),oldPagePos=event[vocab.pagePos];event[vocab.pagePos]=slider._handleElm.offset()[vocab.pos]+(slider._handleSize/2);if(handleDraggable._startDragMouse.call(handleDraggable,event)===false){event[vocab.pagePos]=oldPagePos;handleDraggable._dragMouse.call(handleDraggable,event);adjustTracks(slider);return false}})}}Slider=glow.widgets.Slider=function(container,opts){this._disabled=false;container=$(container);this._opts=opts=glow.lang.apply({min:0,max:100,step:1,theme:"light",jumpOnClick:1,buttons:1,size:300},opts);var i,onEventName,vocab=getVocab(this),element,verticalPaddingHeight,adjustedSize,that=this,buttonElms,ruler,smallestStepingVal=greatestCommonDivisor((opts.step*opts.snapOnDrag),opts.tickMinor,opts.tickMajor);i=eventNames.length;while(i--){onEventName="on"+eventNames[i].charAt(0).toUpperCase()+eventNames[i].slice(1);if(opts[onEventName]){events.addListener(this,eventNames[i],opts[onEventName])}}this._boundInput=opts.bindTo?$(opts.bindTo):new glow.dom.NodeList();this.element=element=glow.dom.create('<div class="glow170-'+vocab.containerClassNamePart+'" tabindex="0" role="slider" aria-disabled="false">'+SLIDER_TEMPLATE+'</div>');this._trackElm=element.get("div.slider-track");this._trackOnElm=element.get("div.slider-trackOn");this._trackOffElm=element.get("div.slider-trackOff");this._handleElm=this._trackElm.get("div.slider-handle");this._stateElm=element.get("div.slider-state");element.get("div.slider-theme").addClass("slider-"+opts.theme);!opts.buttons&&this._stateElm.addClass("slider-noButtons");element[0].id=opts.id||"";element[0].className+=" "+(opts.className||"");if(opts.tickMajor||opts.tickMinor||opts.labels){opts.reverse=opts.vertical;ruler=new Ruler(element.get("div.slider-labels"),opts)}this.element.appendTo(container);initUi(this,ruler);if(this._boundInput[0]){events.addListener(this._boundInput,"change",function(){var snappedValue=sanitiseVal(that,this.value);change(that,snappedValue);that.val(snappedValue)})}events.addListener(this.element,"focus",function(){if(!that._disabled){that._stateElm.addClass("slider-active")}});events.addListener(this.element,"blur",function(){that._stateElm.removeClass("slider-active")});events.addListener(this.element,'keydown',function(event){if(that._disabled){return}switch(event.key){case'UP':case'RIGHT':case'DOWN':case'LEFT':return handleKeyNav.call(that,event)}});events.addListener(this.element,'keyup',function(event){if(that._disabled){return}switch(event.key){case'UP':case'RIGHT':case'DOWN':case'LEFT':return handleKeyNavEnd.call(that,event)}});events.addListener(this.element,'keypress',function(event){if(that._disabled){return}switch(event.key){case'UP':case'RIGHT':case'DOWN':case'LEFT':return false}});buttonElms=this.element.get(".slider-btn-fwd, .slider-btn-bk");events.addListener(buttonElms,"mousedown",handleButtonDown,this);events.addListener(buttonElms,"mouseup",handleButtonUp,this);events.addListener(buttonElms,"mouseout",handleButtonUp,this);if(ruler){events.addListener(ruler.element,"mousedown",function(event){if(that._disabled){return}var labelElm=$(event.source),snappedValue;while(labelElm[0]!=ruler.element[0]){if(labelElm.hasClass("ruler-label")){snappedValue=sanitiseVal(that,labelElm[0]._labelVal);change(that,snappedValue);that.val(snappedValue);return false}labelElm=labelElm.parent()}})}};Slider.prototype={disabled:function(disable){if(disable!==undefined){this._disabled=disable=!!disable;this.element.attr("aria-disabled",disable);this._stateElm[disable?"addClass":"removeClass"]("slider-disabled");(this._boundInput[0]||{}).disabled=disable;return this}else{return this._disabled}},val:function(newVal){if(newVal!=undefined){this._val=sanitiseVal(this,newVal);this.element.attr("aria-valuenow",this._val);(this._boundInput[0]||{}).value=this._val;updateSliderUi(this);return this}else{return this._val}},valToLabel:function(val){if(val===undefined){val=this._val}var labels=this._opts.labels,lowestDiff=Infinity,lowestDiffAbs=Infinity,currentLabel,diffAbs,i;if(labels===undefined){return null}if(typeof labels=='number'){return Math.round(val/labels)*labels}if(labels[val]){return labels[val]}for(i in labels){diffAbs=Math.abs(Number(i)-val);if(diffAbs<lowestDiffAbs){lowestDiffAbs=diffAbs;lowestDiff=Number(i)-val;currentLabel=labels[i]}else if(diffAbs==lowestDiffAbs){if(lowestDiff<0){lowestDiffAbs=diffAbs;lowestDiff=Number(i)-val;currentLabel=labels[i]}}}return currentLabel},labelToVal:function(label){var i,labels=this._opts.labels;if(labels===undefined){return null}if(typeof labels=='number'){label=Number(label);if(!(Number(label)%labels)&&!isNaN(label)){return label}return null}for(i in labels){if(label==labels[i]){return Number(i)}}return null}}}});(window.gloader||glow).module({name:'glow.widgets.AutoSuggest',library:['glow','1.7.0'],depends:[['glow','1.7.0','glow.dom','glow.events','glow.anim','glow.widgets','glow.net','glow.widgets.Overlay']],builder:function(glow){var $=glow.dom.get,events=glow.events,anim=glow.anim;function bindTo(that,inputElement){that.inputElement=$(inputElement);if(!that.inputElement[0].tagName.toLowerCase()=='input'){throw'Argument "inputElement" must be set to an input HTMLElement.';}that.inputElement.attr('autocomplete','off')}function downloadData(that,url,callback){if(that._lastDownload==url){if(callback)callback.apply(that,arguments);else that.find()}else{that._lastDownload=url;if(that._pendingRequest)that._pendingRequest.abort();that._pendingRequest=glow.net.get(url,{useCache:that.opts.useCache,onLoad:function(r){var dataObject=(that.opts.parseData)?that.opts.parseData.apply(that,[r]):eval(r.text());that._pendingRequest=null;that.setData(dataObject);var e=new events.Event();e.data=dataObject;e.text=r.text();events.fire(that,'dataLoad',e);if(callback)callback.apply(that,arguments);else that.find()},onError:function(r){var e=new events.Event();e.response=r;events.fire(that,'dataError',e)},onAbort:function(r){var e=new events.Event();e.response=r;events.fire(that,'dataAbort',e)}})}}function isVisible(that){return($(that.overlay.container).css('display')=='block')}function place(that){if(!that.opts.autoPosition){return}var inputOffset=that.inputElement.offset();that.overlay.container.css('left',inputOffset.left+'px').css('top',inputOffset.top+that.inputElement[0].offsetHeight+'px').css('width',((that.opts.width)?that.opts.width:that.inputElement[0].offsetWidth+'px'))}function buildIndexer(that){if(that.opts.index){if(typeof that.opts.index=='function'){that._indexer=that.opts.index}else if(typeof that.opts.index=='string'){that._indexer=(function(index){return function(dataItem){return dataItem[index]}})(that.opts.index)}else if(that.opts.index.push!==undefined){that._indexer=(function(index){var l=index.length-1;return function(dataItem){var result=[];for(var i=l;i>=0;i--){result[i]=dataItem[index[i]]}return result}})(that.opts.index)}else throw'opts.index must be of type function, string or array, not '+typeof that.opts.index+'.';}else{that._indexer=function(dataItem){return(dataItem['name'])?dataItem['name']:dataItem.toString()}}}function nextItem(that){var currItem=$(that.overlay.container).get('.active');if(currItem.length==0){var items=$(that.overlay.container).get('li');if(items.length)activateItem(that,items[0])}else{var nextItem=currItem.next();if(nextItem&&!nextItem.is('ul')){deactivateItem(that,currItem);activateItem(that,nextItem)}else{that.val(that._original);deactivateItem(that,currItem)}}}function prevItem(that){var currItem=$(that.overlay.container).get('.active');if(currItem.length==0){var allItems=$(that.overlay.container).get('li');var lastItem=allItems[allItems.length-1];activateItem(that,lastItem)}else{var prevItem=currItem.prev();if(prevItem&&!prevItem.is('ul')){deactivateItem(that,currItem);activateItem(that,prevItem)}else{that.val(that._original);deactivateItem(that,currItem);that._lastActive=-1}}}function getParentListItem(that,node){var listItem=node;while(listItem.parentNode&&listItem.parentNode.parentNode){if($(listItem.parentNode.parentNode).hasClass('glow170-autoSuggest'))break;listItem=listItem.parentNode}return(listItem.nodeName.toLowerCase()=='li')?listItem:null}function activateItem(that,listItem){deactivateItems(that,listItem);$(listItem).addClass('active');if(that._lastActive!=listItem){that._lastActive=listItem;events.fire(that,'itemActive')}}function activateItemOffset(that,offset){var li=that.overlay.container.get('li')[offset];if(li)$(li).addClass('active')}function deactivateItem(that,listItem){$(listItem).removeClass('active')}function deactivateItems(that,listItem){var list=(listItem)?$(listItem).parent():that.overlay.container.get('ul');list.get("li").each(function(i){$(this).removeClass('active')})}function addEvents(that){var bubble=function(e){glow.events.fire(that,e.type,e);return!e.defaultPrevented()};events.addListener(that.overlay,'show',bubble);events.addListener(that.overlay,'hide',bubble);events.addListener(that,'itemActive',function(e){if(!isVisible(that))return false;var selectedOffset=that.getSelectedOffset();if(selectedOffset==-1)return false;if(that.opts.onItemActive){var e=new events.Event();e.activeItem=that._found[selectedOffset];that.opts.onItemActive.apply(that,[e])}return true});events.addListener(that.inputElement,'mousedown',function(e){clearTimeout(that.findTimeout);that._value=that.inputElement.val();valueChanged(that,true);that.hide();that.value+=that._selected;that._selected='';return true});events.addListener(that,'itemSelect',function(e){if(!isVisible(that))return false;var selectedOffset=that.getSelectedOffset();if(selectedOffset==-1)return false;var e=new events.Event();e.source=$(that.overlay.container).get('.active');e.selectedItem=that._found[selectedOffset];if(that.opts.onItemSelect){that.opts.onItemSelect.apply(that,[e])}setCaretTo(that.inputElement[0],that.inputElement.val().length);valueChanged(that,true);that.hide();return true});events.addListener(that.overlay.container.get('ul')[0],'mousedown',function(e){events.fire(that,'itemSelect',e)});events.addListener(window,'resize',function(e){place(that)});events.addListener(that.overlay.container,'mousedown',function(){return false});events.addListener(that.overlay.container,'beforedeactivate',function(event){if($(event.nativeEvent.toElement).isWithin(that.overlay.container)){return false}return true});events.addListener(that.inputElement,'blur',function(e){clearTimeout(that.findTimeout);that._value=that.inputElement.val();valueChanged(that,true);that.hide()});events.addListener(that.overlay.container,'mouseover',function(e){var li=getParentListItem(that,e.source);li&&activateItem(that,li)});events.addListener(that.overlay.container,'mouseout',function(e){var li=getParentListItem(that,e.source);if(li&&li!=e.source)deactivateItem(that,li)});var ignoreInUp=false;var repeating={ondown:0,onpress:0};function keyDownHandler(e){clearTimeout(that.findTimeout);ignoreInUp=false;repeating.ondown++;switch(e.key){case'DOWN':if(isVisible(that)){ignoreInUp=true;nextItem(that);return false}break;case'UP':if(isVisible(that)){ignoreInUp=true;prevItem(that);return false}break;case'LEFT':case'RIGHT':if(isVisible(that)){that._value=that.inputElement.val();valueChanged(that,true)}break;case'ESC':that.inputElement.val(that._original);that._value=that._original;valueChanged(that,true);that.hide();return false;case'DEL':case'BACKSPACE':that.hide();break;case'ENTER':if(isVisible(that)){ignoreInUp=true}else{return true}var selectedOffset=that.getSelectedOffset();if(selectedOffset==-1){that.hide();return true}var e=new events.Event();e.source=$(that.overlay.container).get('.active');e.selectedItem=that._found[selectedOffset];events.fire(that,'itemSelect',e);return false}return true}events.addListener(that.inputElement[0],'keydown',keyDownHandler);function keyPressHandler(e){repeating.onpress++;if(repeating.ondown==1&&repeating.onpress>1){if(e.key=='DOWN'){if(isVisible(that)){nextItem(that)}return false}else if(e.key=='UP'){if(isVisible(that)){prevItem(that)}return false}}return true}events.addListener(that.inputElement[0],'keypress',keyPressHandler);function keyUpHandler(e){repeating={ondown:0,onpress:0};if(ignoreInUp)return false;that._value=that.inputElement.val();valueChanged(that);return true}events.addListener(that.inputElement[0],'keyup',keyUpHandler)}function valueChanged(that,withoutFinding){if(that._oldValue===undefined)that._oldValue=that.inputElement.val();var currentValue=that.getValue();var skipFind=false;if(currentValue==''){skipFind=true;that.hide()}else if(currentValue.toLowerCase()==that._oldValue.toLowerCase()){skipFind=true}that._oldValue=currentValue;if(withoutFinding||skipFind)return;that.findTimeout=setTimeout(function(){var e=new glow.events.Event();e.value=currentValue;glow.events.fire(that,'inputChange',e);if(that.opts.activeOnShow!==false){activateItemOffset(that,0)}if(!e.defaultPrevented()){if(typeof that.dataSource!='object')that.loadData();that.find()}},500)}glow.widgets.AutoSuggest=function(inputElement,dataSource,opts){this.opts=opts||{};bindTo(this,inputElement);this.overlay=new glow.widgets.Overlay(glow.dom.create('<div class="glow170-autoSuggest"><ul></ul></div>'),{autoPosition:false,anim:(this.opts.anim)?this.opts.anim:null});this.configure(this.opts);buildIndexer(this);this.dataSource=dataSource;this.data=[];if(typeof dataSource!='string')this.loadData();addEvents(this);if(this.opts.complete){if(this.inputElement.val()==''){this.setData(dataSource)}else{this.setData(dataSource,function(){})}var that=this;events.addListener(that,'itemActive',function(e){var selectedOffset=that.getSelectedOffset();if(selectedOffset==-1)return false;var matchedOn=(that._found[selectedOffset][this.opts.index]||that._found[selectedOffset]['name']||that._found[selectedOffset]);if(matchedOn.push!==undefined)matchedOn=that._matchedOn;that.suggest(matchedOn);return true})}this.opts.selectCompletedText=(opts.selectCompletedText===undefined)?true:opts.selectCompletedText};glow.widgets.AutoSuggest.prototype.configure=function(opts){this.opts=opts||{};if(this.opts.autoPosition===undefined){this.opts.autoPosition=true}if(this.opts.height){var listContainer=$(this.overlay.container.get('.glow170-autoSuggest').get('ul')[0]);listContainer.css('overflow-x','hidden');listContainer.css('overflow-y','auto');listContainer.height(this.opts.height)}if(this.opts.theme=='dark'){$(this.overlay.container.get('ul')[0]).removeClass('autosuggest-light');$(this.overlay.container.get('ul')[0]).addClass('autosuggest-dark')}else{$(this.overlay.container.get('ul')[0]).removeClass('autosuggest-dark');$(this.overlay.container.get('ul')[0]).addClass('autosuggest-light')}if(this.opts.onDataLoad)events.addListener(this,'dataLoad',this.opts.onDataLoad);if(this.opts.onDataError)events.addListener(this,'dataError',this.opts.onDataError);if(this.opts.onDataAbort)events.addListener(this,'dataAbort',this.opts.onDataAbort);if(this.opts.onInputChange)events.addListener(this,'inputChange',this.opts.onInputChange);this._isMatch=this.opts.isMatch||function(word,lookFor){return(word.indexOf(lookFor)==0)};this._formatItem=this.opts.formatItem||function(o){return(o.name)?o.name:o.toString()};this._matchItem=this.opts.formatItem||function(o){return o.name};this._filter=this.opts.filter||function(results){return results}};glow.widgets.AutoSuggest.prototype.setData=function(dataSource,callback){if(typeof dataSource=='function'){dataSource=dataSource.call(this)}if(typeof dataSource=='string'){this.dataURL=dataSource;this.data=[];dataSource=dataSource.replace(/\{input\}/g,escape(this.getValue()));downloadData(this,dataSource,callback)}else{this.data=dataSource;this.index={};this.results=[];for(var d=0;d<this.data.length;d++){var datum=this.data[d];this.results.push(datum);var keywords=this._indexer(datum);keywords=(typeof keywords=='string')?[keywords]:keywords;for(var i=0;i<keywords.length;i++){var keyword="="+(this.opts.caseSensitive?String(keywords[i]):String(keywords[i]).toLowerCase());if(!this.index[keyword])this.index[keyword]=[];this.index[keyword].push(this.results.length-1)}}return this}};glow.widgets.AutoSuggest.prototype.loadData=function(callback){this.setData(this.dataSource,callback);return this};function appendTag(currentValue,delim,value){var split;if(delim==''||currentValue.indexOf(delim)<0){split=new RegExp('^( *)(.*)$')}else{split=new RegExp('^(.*'+delim+' *)([^'+delim+']*)$')}var lv=split.exec(currentValue)[1];var rv=(split.exec(value)||["","",value])[2];return lv+rv};glow.widgets.AutoSuggest.prototype.val=function(value){if(value===undefined){return this._value}else{this._value=value;this.inputElement.val(value);return this}};glow.widgets.AutoSuggest.prototype.setValue=function(value){var currentValue=this._value||this.inputElement.val();var delim=(this.opts.delim||'');value=appendTag(currentValue,delim,value);this._value=value;this.inputElement.val(value)};glow.widgets.AutoSuggest.prototype.getValue=function(){var value=this._value||this.inputElement.val();if(this.opts.delim!==undefined&&this.opts.delim!=''){value=(value.match(new RegExp('(^|'+this.opts.delim+' *)([^'+this.opts.delim+']*)$'))||['','','']);value=value[2]}return value};glow.widgets.AutoSuggest.prototype.suggest=function(suggested){this._suggested=suggested;var currentValue=this.inputElement.val();var delim=(this.opts.delim||'');var value=appendTag(currentValue,delim,suggested);this.inputElement.val(value);if(this.opts.selectCompletedText){selectRange(this.inputElement[0],{start:(this._value||'').length,end:this.inputElement.val().length})}};function selectRange(el,range){el.focus();if(!window.opera&&el.createTextRange){var r=el.createTextRange();r.moveEnd('character',range.end);r.moveStart('character',range.start);r.select()}else{el.select();el.selectionStart=range.start;el.selectionEnd=range.end}};function setCaretTo(el,pos){selectRange(el,{start:pos,end:pos})};function array_indexOf(value){var index=-1;for(var i=0,l=this.length;i<l;i++){if(this[i]===value){index=i;break}}return index}glow.widgets.AutoSuggest.prototype.find=function(lookFor){if(lookFor===undefined)lookFor=this.getValue();while(lookFor.charAt(0)==' ')lookFor=lookFor.substring(1);if(!this.opts.caseSensitive)lookFor=lookFor.toLowerCase();var found=[];found.indexOf||(found.indexOf=array_indexOf);if(lookFor){for(var k in this.index){var lookAt=k.substring(1);if(this._isMatch(lookAt,lookFor)){var keys=this.index[k];for(var j=0;j<keys.length;j++){var offset=keys[j];if(found.indexOf(this.results[offset])==-1){found.push(this.results[offset])}}}}}found=this._filter(found);this._found=found;if(found.length){if(this.opts.maxListLength)found.length=Math.min(found.length,this.opts.maxListLength);var list=[];for(var i=0;i<found.length;i++){list.push('<li class="'+((i%2)?'odd':'even')+'">'+this._formatItem(found[i])+'</li>')}$(this.overlay.container.get('ul')[0]).html(list.join(''));this.show();if(this.opts.activeOnShow!==false)nextItem(this)}else{this.hide()}};glow.widgets.AutoSuggest.prototype.hide=function(){this.overlay.hide()};glow.widgets.AutoSuggest.prototype.show=function(){this._original=this.val();place(this);this.overlay.show()};glow.widgets.AutoSuggest.prototype.getSelectedOffset=function(){if(!isVisible(this))return-1;var items=this.overlay.container.get('li');for(var i=0;i<items.length;i++){if($(items[i]).hasClass('active'))return i}return-1}}});(window.gloader||glow).module({name:'glow.widgets.AutoComplete',library:['glow','1.7.0'],depends:[['glow','1.7.0','glow.widgets.AutoSuggest']],builder:function(glow){var $=glow.dom.get,events=glow.events,anim=glow.anim;glow.widgets.AutoComplete=function(inputElement,dataSource,opts){opts=opts||{};this.autosuggest=new glow.widgets.AutoSuggest(inputElement,[],opts);this.autosuggest._indexer=function(dataItem){return dataItem.toString()};this.autosuggest._formatItem=function(dataItem){return dataItem.toString()};this.autosuggest.setData(dataSource);var that=this.autosuggest;events.addListener(that,'itemActive',function(e){var selectedOffset=that.getSelectedOffset();if(selectedOffset==-1)return false;that.suggest(that._found[selectedOffset]);return true})}}});(window.gloader||glow).module({name:"glow.widgets.Carousel",library:["glow","1.7.0"],depends:[["glow","1.7.0","glow.dom","glow.events","glow.anim","glow.widgets",'glow.i18n']],builder:function(glow){var $=glow.dom.get,events=glow.events,dom=glow.dom,$i18n=glow.i18n;$i18n.addLocaleModule("GLOW_WIDGETS_CAROUSEL","en",{PREVIOUS:"previous",NEXT:"next"});function Carousel(container,opts){var localeModule=$i18n.getLocaleModule("GLOW_WIDGETS_CAROUSEL");opts=opts||{};this._content=$(container);this._startContentHeight=this._content[0].offsetHeight;this._content.addClass("carousel-content").css("zoom","1");this.items=this._content.children();opts=this._opts=glow.lang.apply({animDuration:0.4,animTween:glow.tweens.easeBoth(),loop:false,step:1,vertical:false,scrollOnHold:true,slideOnScroll:false,theme:"light",pageNav:false},opts);opts.animDuration=Number(opts.animDuration);opts.size=Number(opts.size);this.element=dom.create("<div"+(this._opts.id?" id=\""+this._opts.id+"\"":"")+" class=\""+(this._opts.vertical?"glow170-vCarousel":"glow170-carousel")+(this._opts.className?" "+this._opts.className:"")+"\"></div>");var themeWrapper=dom.create("<div class=\"carousel-"+this._opts.theme+"\"><\/div>");this._viewWindow=dom.create("<div class=\"carousel-window\"><\/div>");this._content.before(this.element);themeWrapper.prependTo(this.element);this._viewWindow.prependTo(themeWrapper);this._content.prependTo(this._viewWindow);if(this._opts.vertical){this.element.addClass("glow170-vCarousel")}else{this.element.addClass("glow170-carousel")}if(!this._opts.pageNav){this._navPrev=dom.create("<a class=\"carousel-nav carousel-prev\" href=\"#\"><span class=\"carousel-label\">{PREVIOUS}</span><span class=\"carousel-background\"></span><span class=\"carousel-top\"></span><span class=\"carousel-bottom\"></span><span class=\"carousel-arrow\"></span></a>",{interpolate:localeModule}).insertBefore(this._viewWindow);this._navNext=dom.create("<a class=\"carousel-nav carousel-next\" href=\"#\"><span class=\"carousel-label\">{NEXT}</span><span class=\"carousel-background\"></span><span class=\"carousel-top\"></span><span class=\"carousel-bottom\"></span><span class=\"carousel-arrow\"></span></a>",{interpolate:localeModule}).insertAfter(this._viewWindow)}init.apply(this,[container,opts])}function init(container,opts){var that=this;if(this.items.length==0){return}var oldPositionVal=this.items[0].style.position;this.items[0].style.position="absolute";this._itemWidth=this.items[0].offsetWidth+parseInt($(this.items[0]).css(["margin-left","margin-right"]));this._itemHeight=this.items[0].offsetHeight+parseInt($(this.items[0]).css(["margin-top","margin-bottom"]));this.items[0].style.position=oldPositionVal;this._itemHangingOffEnd=false;if(!opts.size){var itemsInView;if(opts.vertical){this._sizeView=this._startContentHeight;if(!this._opts.pageNav)this._sizeView-=this._navPrev[0].offsetHeight+this._navNext[0].offsetHeight;this._viewWindow.css("width",this._itemWidth+"px");this._viewWindow.css("height",this._sizeView+"px");itemsInView=this._sizeView/this._itemHeight;this._opts.size=Math.floor(itemsInView);this._itemHangingOffEnd=(itemsInView!=this._opts.size);this.element.css("height",this._sizeView+(this._opts.pageNav?0:this._navPrev[0].offsetHeight+this._navNext[0].offsetHeight)+"px")}else{this._sizeView=this.element[0].offsetWidth;if(!this._opts.pageNav)this._sizeView-=this._navPrev[0].offsetWidth+this._navNext[0].offsetWidth;this._viewWindow.css("width",this._sizeView+"px");this._viewWindow.css("height",this._itemHeight+"px");itemsInView=this._sizeView/this._itemWidth;this._opts.size=Math.floor(itemsInView);this._itemHangingOffEnd=(itemsInView!=this._opts.size);this.element.css("width",this._sizeView+(this._opts.pageNav?0:this._navPrev[0].offsetWidth+this._navNext[0].offsetWidth)+"px")}}else{if(this._opts.vertical){this._viewWindow.css("width",this._itemWidth+"px");this._viewWindow.css("height",this._opts.size*this._itemHeight+"px")}else{this._viewWindow.css("width",this._opts.size*this._itemWidth+"px");this._viewWindow.css("height",this._itemHeight+"px")}}if(this._opts.step=="page"){this._opts.step=this._opts.size}if(this._opts.size<this._opts.step){throw new Error("Carousel opts.step ("+this._opts.step+") cannot be larger than carousel size ("+this._opts.size+").");}var eventNames=["addItem","removeItem","scroll","afterScroll","itemClick"],i=eventNames.length,onEventName;while(i--){onEventName="on"+eventNames[i].charAt(0).toUpperCase()+eventNames[i].slice(1);if(opts[onEventName]){events.addListener(that,eventNames[i],opts[onEventName])}}this._customButtonDimentions=(this._navPrev&&this._navNext)&&(this._navPrev[0].style.width||this._navPrev[0].style.height||this._navNext[0].style.width||this._navNext[0].style.height);this._originalOptsLoop=this._opts.loop;rebuild.apply(this);addMouseNavEvents.call(this);addKeyboardNavEvents.call(this);addItemClickEvent.call(this);this._ready=true}function addItemClickEvent(){var that=this;glow.events.addListener(that._content,"click",function(e){var el=$(e.source),event;for(;el[0]!=that.element[0];el=el.parent()){if(el.hasClass("carousel-item")){if(!el.hasClass("carousel-pad")){event=glow.events.fire(that,"itemClick",{item:el[0],itemIndex:el[0]["_index"+glow.UID]%that._countReal});return!event.defaultPrevented()}break}}})}function addMouseNavEvents(){var that=this,bothNavElms=$(this._navPrev).push(this._navNext);events.addListener(bothNavElms,"click",function(e){return false});events.addListener(bothNavElms,"mouseup",function(e){stopRepeatOrSlide.call(that);return false});events.addListener(bothNavElms,"mouseleave",function(e){stopRepeatOrSlide.call(that)});events.addListener(this._navPrev,"mousedown",function(e){that.prev();startRepeatOrSlide.call(that,true);return false});events.addListener(this._navNext,"mousedown",function(e){that.next();startRepeatOrSlide.call(that);return false})}function addKeyboardNavEvents(){var currentKeyDown,that=this;events.addListener(this.element,"keydown",function(e){if(currentKeyDown){return false}switch(e.key){case"UP":case"LEFT":currentKeyDown=e.key;if(!that._isPlaying()){that.prev();startRepeatOrSlide.call(that,true)}return false;case"DOWN":case"RIGHT":currentKeyDown=e.key;if(!that._isPlaying()){that.next();startRepeatOrSlide.call(that)}return false;case"ENTER":currentKeyDown=e.key;if(e.source==that._navNext[0]||(that._pageNav&&e.source.parentNode==that._pageNav.rightarrow[0])){that.next();startRepeatOrSlide.call(that);return false}else if(e.source==that._navPrev[0]||(that._pageNav&&e.source.parentNode==that._pageNav.leftarrow[0])){that.prev();startRepeatOrSlide.call(that,true);return false}}});events.addListener(this.element,"keyup",function(e){switch(e.key){case"UP":case"LEFT":case"DOWN":case"RIGHT":case"ENTER":currentKeyDown=null;stopRepeatOrSlide.call(that)}});events.addListener(this.element,"keypress",function(e){switch(e.key){case"UP":case"LEFT":case"DOWN":case"RIGHT":return false;case"ENTER":if(e.source==that._navNext[0]||(that._pageNav&&e.source.parentNode==that._pageNav.rightarrow[0])||e.source==that._navPrev[0]||(that._pageNav&&e.source.parentNode==that._pageNav.leftarrow[0])){return false}}});glow.events.addListener(this.element,"focus",function(e){_focusCallback.call(that,$(e.source))})}function _focusCallback(elm){var that=this;if((elm[0]!=this._navNext[0])&&(elm[0]!=this._navPrev[0])&&(elm.parent().parent().hasClass('pageNav')==false)){var elmItemNum=_getCarouselItemNum.call(this,elm);if(elmItemNum===-1||this.items.slice(elmItemNum,elmItemNum+1).hasClass('carousel-added')){return}if((' '+this.visibleIndexes().join(' ')+' ').indexOf(' '+elmItemNum+' ')==-1){this.moveTo(elmItemNum);setTimeout(function(){that._content[0].parentNode.scrollLeft=0},0)}}}function _getCarouselItemNum(elm){while(!elm.hasClass('carousel-item')){if(elm.length==0){return-1}elm=elm.parent()}var elmSiblings=elm.parent().children();var x=-1;elmSiblings.each(function(i){if(elmSiblings[i]==elm[0]){x=i}});return x}function rebuild(){var that=this;this.items=this._content.children();var padCount;this._notEnoughContent=this.items.length<=this._opts.size;if(this._notEnoughContent){this._opts.loop=false;this.element.get(".carousel-window").addClass("carousel-notEnoughItems")}else{this._opts.loop=this._originalOptsLoop;this.element.get(".carousel-window").removeClass("carousel-notEnoughItems");if(this._navPrev){this._navPrev.removeClass("carousel-prev-disabled");this._navNext.removeClass("carousel-next-disabled")}}if(this._opts.loop){padCount=this._opts.step-((this.items.length%this._opts.step)||this._opts.step)}else{var stepsTillEndOfContent=Math.ceil((this.items.length-this._opts.size)/this._opts.step);padCount=(this._opts.size+(stepsTillEndOfContent*this._opts.step))-this.items.length;padCount+=Number(this._itemHangingOffEnd)}var pad=$(this.items[0]).clone().attr('role','presentation');pad.attr('tabIndex','-1');pad.get('a, img, input').attr('tabIndex','-1');pad.removeAttr("id");pad.addClass("carousel-added");pad.addClass("carousel-pad");pad.children().css("visibility","hidden");for(var i=0;i<padCount;i++){this._content.append(pad.clone())}this.items=this._content.children();var realCount=this.items.length;if(this._opts.loop){var clonesToAdd=this._opts.size+Number(this._itemHangingOffEnd);var clone=this.items.slice(0,clonesToAdd).clone(true).attr('role','presentation');clone.attr('tabIndex','-1');clone.get('a, img, input').attr('tabIndex','-1');clone.addClass("carousel-added");this._content.append(clone);this.items=this._content.children()}this.items.addClass("carousel-item");this.items.each(function(i){this["_index"+glow.UID]=i});this._direction=(this._opts.vertical)?"top":"left";this._countRealItems=realCount-padCount;this._countReal=realCount;this._countAll=this.items.length;this._countStep=this._opts.step;this._countView=this._opts.size;this._sizeEach=(this._opts.vertical?this._itemHeight:this._itemWidth);this._sizeStep=this._sizeEach*this._opts.step;this._sizeView=this._sizeEach*this._opts.size;this._sizeReal=this._sizeEach*this._countReal;this._sizeAll=this._sizeEach*this._countAll;this._animationTime=this._opts.animDuration;this._slideAnimationTime=this._animationTime/2;this._animationTween=this._opts.animTween;(this._opts.vertical)?this._content.css("height",this._sizeAll+"px"):this._content.css("width",this._sizeAll+"px");if(!this._opts.pageNav&&!this._customButtonDimentions){if(this._opts.vertical){this._navPrev.width(parseInt(this.items[0].offsetWidth)+parseInt($(this.items[0]).css(["margin-left","margin-right"])));this._navNext.width(parseInt(this.items[0].offsetWidth)+parseInt($(this.items[0]).css(["margin-left","margin-right"])))}else{this._navPrev.height(parseInt(this.items[0].offsetHeight)+parseInt($(this.items[0]).css(["margin-top","margin-bottom"])));this._navNext.height(parseInt(this.items[0].offsetHeight)+parseInt($(this.items[0]).css(["margin-top","margin-bottom"])))}}var channelPrev=[];var channelNext=[];var slideMove,slideAnim;function animComplete(){afterScroll.apply(that)}if(this._opts.loop){this._movesMax=(this._countReal/this._countStep)-1}else{this._movesMax=Math.ceil((this._countReal-this._countView-Number(this._itemHangingOffEnd))/this._countStep)}var len=this._movesMax+Number(this._opts.loop);for(var i=0;i<len;i++){slideMove={};slideMove["margin-"+this._direction]={from:(-i*this._sizeStep)+"px",to:(-(i+1)*this._sizeStep)+"px"};slideAnim=glow.anim.css(this._content,this._slideAnimationTime,slideMove,{"tween":glow.tweens.linear()});events.addListener(slideAnim,"complete",animComplete);channelNext.push(slideAnim);slideMove={};slideMove["margin-"+this._direction]={from:(-(i+1)*this._sizeStep)+"px",to:(-i*this._sizeStep)+"px"};slideAnim=glow.anim.css(this._content,this._slideAnimationTime,slideMove,{"tween":glow.tweens.linear()});events.addListener(slideAnim,"complete",animComplete);channelPrev.unshift(slideAnim)}this._slidePrev=new glow.anim.Timeline(channelPrev,{loop:this._opts.loop});this._slideNext=new glow.anim.Timeline(channelNext,{loop:this._opts.loop});if(this._opts.pageNav){this._pageNav=new PageNav(this._movesMax+1,function(newPage){that.moveTo(newPage*that._countStep)});this._navPrev=this._pageNav.leftarrow;this._navNext=this._pageNav.rightarrow;var carouselWindow=this.element.get(".carousel-window");carouselWindow.parent().get(".pageNav").remove();this._pageNav.element.insertAfter(carouselWindow);carouselWindow.addClass("paged");if(this._opts.vertical){var topmargin=Math.floor(((carouselWindow[0].offsetHeight)-this._pageNav.element[0].offsetHeight)/2);this._pageNav.element.css("margin-top",topmargin+"px")}else{var leftmargin=Math.floor(((carouselWindow[0].offsetWidth)-this._pageNav.leftarrow[0].offsetWidth*(3+this._movesMax))/2);this._pageNav.element.css("margin-left",leftmargin+"px")}this._pageNav.update((this._visibleIndexFirst()%this._countReal)/this._countStep)}if(this._notEnoughContent){if(this._navPrev){this._navPrev.addClass("carousel-prev-disabled");this._navNext.addClass("carousel-next-disabled")}}else if(!this._opts.loop){if(!canGo.apply(this,["prev"]))this._navPrev.addClass("carousel-prev-disabled");else if(!canGo.apply(this,[]))this._navNext.addClass("carousel-next-disabled")}if(this._opts.pageNav){addMouseNavEvents.call(this)}}function step(prev){if(this._isPlaying()||!canGo.call(this,prev))return;var curMargin=parseInt(this._content.css("margin-"+this._direction))%this._sizeReal;if(prev&&curMargin==0)curMargin-=this._sizeReal;var newMargin=curMargin-((prev?-1:+1)*this._sizeStep);var move={};move["margin-"+this._direction]={from:curMargin,to:newMargin};this._step=glow.anim.css(this._content,this._animationTime,move,{"tween":this._animationTween});this._step.start();var that=this;glow.events.addListener(this._step,"complete",function(){afterScroll.apply(that)})}function startRepeatOrSlide(prev){if(this._slidePrev.isPlaying()||this._slideNext.isPlaying()){return}var that=this;this._repeat=true;function beginRepeatOrSlide(){if(that._opts.slideOnScroll){if(canGo.apply(that,[prev])){var timeOffset=getTimeoffset.apply(that);if(prev)timeOffset=that._slidePrev.duration-timeOffset;var timelineToUse=prev?that._slidePrev:that._slideNext;setTimeout(function(){if(that._isPlaying()||!that._repeat)return;timelineToUse.goTo(timeOffset).resume()},300)}}else{if(!that._repeat)return;step.call(that,prev);if(that._step){glow.events.addListener(that._step,"complete",beginRepeatOrSlide)}}}if(this._opts.scrollOnHold){if(this._step&&this._step.isPlaying()){if(!this._step._hasSlidingListener){glow.events.addListener(this._step,"complete",beginRepeatOrSlide);this._step._hasSlidingListener=true}}else{beginRepeatOrSlide()}}}function stopRepeatOrSlide(){this._repeat=false}function canGo(prev){if(this._opts.loop)return true;var firstIndex=this._visibleIndexFirst();if(prev){return firstIndex!=0}return(firstIndex+this._countView)<(this._countAll-Number(this._itemHangingOffEnd))}function beforeScroll(){this._navPrev.removeClass("carousel-prev-disabled");this._navNext.removeClass("carousel-next-disabled");events.fire(this,"scroll",{currentPosition:this._visibleIndexFirst()%this._countReal})}function afterScroll(){if(!this._repeat||!this._opts.scrollOnHold){endScroll.apply(this)}var curItem=this._visibleIndexFirst();events.fire(this,"afterScroll",{position:curItem%this._countReal});if(this._pageNav){this._pageNav.update((curItem%this._countReal)/this._countStep)}if(!this._opts.loop){if(!canGo.apply(this,["prev"]))this._navPrev.addClass("carousel-prev-disabled");else if(!canGo.apply(this,[]))this._navNext.addClass("carousel-next-disabled")}}function endScroll(){this._slideNext.stop();this._slidePrev.stop()};Carousel.prototype.prev=function(){if(!this._isPlaying()){if(!canGo.apply(this,["prev"]))return this;beforeScroll.apply(this,["prev"]);step.apply(this,["prev"])}return this};Carousel.prototype.next=function(){if(!this._isPlaying()){if(!canGo.apply(this,[]))return this;beforeScroll.apply(this,[]);step.apply(this,[])}return this};function getTimeoffset(){var margin=parseInt(this._content.css("margin-"+this._direction));var stepOffset=Math.abs(margin)/this._sizeStep;var timeOffset=stepOffset*this._slideAnimationTime;return timeOffset};Carousel.prototype._isPlaying=function(){return((this._step&&this._step.isPlaying())||this._slidePrev.isPlaying()||this._slideNext.isPlaying())};Carousel.prototype._visibleIndexFirst=function(){var slideOffset=parseInt(this._content.css("margin-"+this._direction))*-1;var offset=Math.floor(slideOffset/this._sizeEach);return this.items[offset]["_index"+glow.UID]};Carousel.prototype.visibleIndexes=function(){var leftmost=this._visibleIndexFirst();var visibleIndexes=[];for(var i=0,l=this._opts.size;(i<l);i++){visibleIndexes.push((leftmost+i)%this._countReal)}return visibleIndexes};Carousel.prototype.visibleItems=function(){var indexes=this.visibleIndexes();var visibleItems=new glow.dom.NodeList();for(var i=0;i<indexes.length;i++){visibleItems.push(this.items[indexes[i]])}return visibleItems};Carousel.prototype.addItems=function(itemsToAdd,position){itemsToAdd=$(itemsToAdd);var eventProps={items:itemsToAdd};if(events.fire(this,"addItem",eventProps).defaultPrevented()){return itemsToAdd}this._content.get(".carousel-added").remove();if(typeof position!="undefined"&&position<this._countReal){itemsToAdd.insertBefore(this._content.children().item(position))}else{this._content.append(itemsToAdd)}rebuild.apply(this);return itemsToAdd};Carousel.prototype.removeItem=function(indexToRemove){if(this.items.length>1){var removingItem=this.items.slice(indexToRemove,indexToRemove+1),e={item:removingItem,itemIndex:indexToRemove};if(events.fire(this,"removeItem",e).defaultPrevented()){return removingItem}this._content.get(".carousel-added").remove();removingItem.remove();rebuild.apply(this)}return removingItem};Carousel.prototype.moveBy=function(distance,animate){var currentItem=this._visibleIndexFirst();var targetItem=currentItem+distance;if(this._opts.loop){if(targetItem<0){this._content.css("margin-"+this._direction,(this._countReal*-this._sizeEach)+"px");targetItem=this._countReal+targetItem}if(currentItem>=this._countReal&&targetItem>this._countReal){this._content.css("margin-"+this._direction,"0px");targetItem=targetItem%this._countReal}}return this.moveTo(targetItem,animate)};Carousel.prototype.moveTo=function(targetItem,animate){var that=this;if(this._isPlaying())return this;if(!this._opts.loop)targetItem=Math.min(targetItem,this._countReal-1);targetItem=Math.max(targetItem,0);targetItem-=(targetItem%this._countStep);if(!this._opts.loop){targetItem=Math.min(targetItem,this._movesMax*this._countStep)}var currentItem=this._visibleIndexFirst();if(currentItem==targetItem)return this;beforeScroll.apply(this,[]);if(animate!==false){var move={};move["margin-"+this._direction]={from:(currentItem*-this._sizeEach)+"px",to:(targetItem*-this._sizeEach)+"px"};this._step=glow.anim.css(this._content,this._animationTime,move,{"tween":this._animationTween});var that=this;glow.events.addListener(this._step,"complete",function(){afterScroll.apply(that,[])});this._step.start()}else{this._content.css("margin-"+this._direction,(targetItem*-this._sizeEach)+"px");afterScroll.apply(this,[])}return this};glow.widgets.Carousel=Carousel;function PageNav(pagecount,onClick){var localeModule=$i18n.getLocaleModule("GLOW_WIDGETS_CAROUSEL");this.leftarrow=dom.create("<li class='arrow' id='leftarrow'><a href='#' class='dotLabel'>{PREVIOUS}</a></li>",{interpolate:localeModule});this.rightarrow=dom.create("<li class='arrow' id='rightarrow'><a href='#' class='dotLabel'>{NEXT}</a></li>",{interpolate:localeModule});var pageNavHtml="";for(var i=0;i<pagecount;i++){pageNavHtml+="<li class='dot dot"+i+"'><div class='dotLabel'>"+(i+1)+"</div></li>"}this.element=dom.create("<ul class='pageNav'>"+pageNavHtml+"</ul>");this.leftarrow.insertBefore(this.element.get("li")[0]);this.rightarrow.insertAfter(this.element.get("li")[this.element.get("li").length-1]);var that=this;glow.events.addListener(this.element,"click",function(e){if($(e.source).parent().hasClass('dot')){onClick.apply(that,[parseInt($(e.source).html())-1])}});this.currentPage=0}PageNav.prototype.update=function(newPage){if(typeof newPage=="undefined")newPage=this.currentPage;this.element.get("li.dot"+this.currentPage+"").removeClass("dotActive");this.element.get("li.dot"+newPage+"").addClass("dotActive");this.currentPage=newPage}}});(window.gloader||glow).module({name:'glow.widgets.Editor',library:['glow','1.7.0'],depends:[['glow','1.7.0','glow.dom','glow.events','glow.widgets','glow.i18n','glow.widgets.Overlay']],builder:function(glow){var $=glow.dom.get,events=glow.events,$i18n=glow.i18n;$i18n.addLocaleModule("GLOW_WIDGETS_EDITOR","en",{ENTER_MESSAGE:"You are about to enter a Rich Text Editor",SKIP_LINK_TEXT:"Skip past",LEAVE_MESSAGE:"You have left the Rich Text Editor",BOLD_TITLE:"Bold",BOLD_LABEL:"B",ITALICS_TITLE:"Italics",ITALICS_LABEL:"I",STRIKE_TITLE:"Strikethrough",STRIKE_LABEL:"Strike",UNORDERED_TITLE:"Unordered list",UNORDERED_LABEL:"unordered list",ORDERED_TITLE:"Ordered list",ORDERED_LABEL:"ordered list",FORMATBLOCK_TITLE:"Text style",FORMATBLOCK_LABEL:"text style",HEADINGLEVELONE_TITLE:"Heading 1",HEADINGLEVELTWO_TITLE:"Heading 2",HEADINGLEVELTHREE_TITLE:"Heading 3",NORMAL_TITLE:"Normal"});glow.widgets.Editor=function(textarea,opts){textarea=$(textarea);var editorLocaleModule=$i18n.getLocaleModule("GLOW_WIDGETS_EDITOR");this._tools=createTools(editorLocaleModule);opts=this._opts=glow.lang.apply({toolset:"basic",onCommit:null},opts);this.element=glow.dom.create('<div class="glow170-editor"><p class="glow170-hidden">{ENTER_MESSAGE}, <a href="#endOfEditor'+endOfEditorCounter()+'" tabindex="0">{SKIP_LINK_TEXT}</a></p><div class="editor-'+(opts.theme||"light")+'"><div class="editor-state"></div></div><p id="endOfEditor'+endOfEditorCounter()+'" class="glow170-hidden endOfEditorCounter" tabindex="0">{LEAVE_MESSAGE}</p></div>',{interpolate:editorLocaleModule});this.textarea=textarea;this.toolbar=new glow.widgets.Editor.Toolbar(this);if(this._opts.toolset=="basic"){this.toolbar._addToolset("italics","bold","strike","formatBlock","unorderedlist","orderedlist")}else throw new Exception("Unknown toolset name.");this.editArea=new glow.widgets.Editor.EditArea(this);this.cleaner=new TagCleaner();if(!isSafariTwo()){place.apply(this);bindEditor.apply(this,[])}if(opts.onCommit){events.addListener(this,"commit",opts.onCommit)}};var endOfEditorCounter=function(){return glow.dom.get('p.endOfEditorCounter').length+1};var Idler=function(attachTo,name,wait,opts){opts=this._opts=glow.lang.apply({onFire:function(){}},opts);var that=this;this.attachTo=attachTo;this.name=name;this.wait=wait;this.callback=opts.onFire;this.rate=opts.rate;this.running=false;this.initiated=false;if(typeof this.name.pop=="undefined"){this.name=[this.name]}for(var i=0,l=this.name.length;i<l;i++){var name=this.name[i];glow.events.addListener(this.attachTo,name,function(){clearInterval(that.intervalId);clearTimeout(that.timeoutId);that._tick()})}this._start()};Idler.prototype.disabled=function(disabledState){if(typeof disabledState=="undefined"){return!this.running}else{if(disabledState)this._stop();else this._start()}};Idler.prototype._tick=function(){var that=this;this.timeoutId=setTimeout(function(){if(typeof that.rate!="undefined"){that.intervalId=setInterval(that.callback,that.rate)}else{that.callback()}},that.wait)};Idler.prototype._start=function(){if(this.running)return;this._tick();this.running=true};Idler.prototype._stop=function(){if(!this.running)return;clearInterval(this.intervalId);clearTimeout(this.timeoutId);this.running=false};function place(){var inputOffset=this.textarea.offset();var height=(this.textarea[0].offsetHeight>142)?this.textarea[0].offsetHeight:142;this.element.css('width',(this.textarea[0].offsetWidth-2)+'px');this.element.css('height',(height-2)+'px')}var bindEditor=function(){this.textarea.before(this.element);this.element.get('iframe').css('height',(parseInt(this.element.css('height'))-42));this.textarea.css("display","block");this.textarea.css("position","absolute");this.textarea.css("left","-9999px");this.textarea.css("top","-9999px");this.bound=true};glow.widgets.Editor.prototype.inject=function(html){this.editArea._setContent(this.cleaner.dirty(this.cleaner.clean(html)))};glow.widgets.Editor.prototype.commit=function(){if(this.bound){$(this.textarea).val(this.cleaner.clean(this.editArea._getContent()))}glow.events.fire(this,"commit",{})};function TagCleaner(opts){this.opts=opts||{};this.whitelist=["em","strong","strike","p","br","ul","ol","li","h1","h2","h3"]};TagCleaner.prototype.pretreat=function(input){input=input.replace(/<!--[\s\S]*?-->/g,"");input=input.replace(/<style\b[\s\S]*?<\/style>/gi,"");input=input.replace(/<script\b[\s\S]*?<\/script>/gi,"");return input};TagCleaner.prototype.clean=function(input){var output="",stack=[];input=this.pretreat(input);while(input){var skip=1;if(/^(<[^>]+>)/.test(input)){var foundTag=new TagCleaner.Tag(RegExp.$1);this.tagClean(foundTag);if(foundTag.clean&&foundTag.opening){output+=foundTag.clean.start;if(!foundTag.unary)stack.unshift(foundTag);skip=foundTag.text.length}else if(stack[0]&&input.toLowerCase().indexOf(stack[0].end)===0){output+=stack[0].clean.end;skip=stack[0].end.length;stack.shift()}else{output+=foundTag;skip=foundTag.text.length}}else{output+=input.charAt(0)}input=input.substring(skip)}output=this.spin(output);return output};TagCleaner.prototype.dirty=function(clean){var dirty;if(glow.env.gecko){dirty=clean.replace(/<strong>/g,'<b _moz_dirty="">').replace(/<\/strong>/g,'</b>').replace(/<em>/g,'<i _moz_dirty="">').replace(/<\/em>/g,'</i>').replace(/<strike>/g,'<strike _moz_dirty="">')}else if(glow.env.ie||glow.env.opera){dirty=clean.replace(/<strong>/g,'<STRONG>').replace(/<\/strong>/g,'</STRONG>').replace(/<em>/g,'<EM>').replace(/<\/em>/g,'</EM>').replace(/<strike>/g,'<STRIKE>').replace(/<\/strike>/g,'</STRIKE>')}else if(glow.env.webkit>528){dirty=clean.replace(/<strong>/g,'<b>').replace(/<\/strong>/g,'</b>').replace(/<em>/g,'<i>').replace(/<\/em>/g,'</i>').replace(/<strike>/g,'<span class="Apple-style-span" style="text-decoration: line-through;">').replace(/<\/strike>/g,'</span>')}else if(glow.env.webkit){dirty=clean.replace(/<strong>/g,'<span class="Apple-style-span" style="font-weight: bold;">').replace(/<\/strong>/g,'</span>').replace(/<em>/g,'<span class="Apple-style-span" style="font-style: italic;">').replace(/<\/em>/g,'</span>').replace(/<strike>/g,'<span class="Apple-style-span" style="text-decoration: line-through;">').replace(/<\/strike>/g,'</span>')}else{throw new Error("Can't be dirty: Unknown browser.");}return dirty};TagCleaner.prototype.spanClean=function(tag){var clean={start:"",end:""};if(/\bstyle\s*=\s*"(.+)"/.test(tag.attrText.toLowerCase())){if(RegExp.$1.indexOf("bold")>-1){clean.start+="<strong>";clean.end="<\/strong>"+clean.end}if(RegExp.$1.indexOf("font-weight: normal")>-1){clean.start+="<\/strong>";clean.end="<strong>"+clean.end}if(RegExp.$1.indexOf("italic")>-1){clean.start+="<em>";clean.end="<\/em>"+clean.end}if(RegExp.$1.indexOf("font-style: normal")>-1){clean.start+="<\/em>";clean.end="<em>"+clean.end}if(RegExp.$1.indexOf("line-through")>-1){clean.start+="<strike>";clean.end="<\/strike>"+clean.end}}return clean};TagCleaner.prototype.tagClean=function(tag){var clean=["",""];if(tag.name=="span")clean=this.spanClean(tag);else if(tag.name=="b")clean={start:'<strong>',end:'<\/strong>'};else if(tag.name=="i")clean={start:'<em>',end:'<\/em>'};if(clean.start)tag.clean=clean};TagCleaner.Tag=function(tagText){/^<(\/?)([a-zA-Z1-6]+)\b(.*)( ?\/)?>$/.exec(tagText);this.closing=!!RegExp.$1;this.opening=!this.closing;this.unary=!!RegExp.$4;this.name=RegExp.$2.toLowerCase();this.attrText=RegExp.$3;this.text=tagText;this.start=tagText.replace(/^<(\/?)([a-zA-Z]+)\b/,"<$1"+this.name);if(this.opening&&!this.unary){this.end="<\/"+this.name+">"}};TagCleaner.Tag.prototype.toString=function(){return"<"+RegExp.$1+this.name+RegExp.$4+">"};TagCleaner.prototype.spin=function(input){var whitetags=this.whitelist.join("\|");var allowedTags=new RegExp("<(\\/?("+whitetags+")\\b[^>]*)>","g");input=input.replace(allowedTags,"\x1D$1\x1D");input=input.replace(/<[^>]+>/g,"");input=input.replace(/\x1D([^\x1D]+)\x1D/g,"<$1>");input=input.replace(/<>/g,"");return input};glow.widgets.Editor.Toolbar=function(editor,opts){opts=opts||{};this.editor=editor;this.element=glow.dom.create('<fieldset class="editor-toolbar"><ul class="editor-toolbar-tools"></ul></fieldset>');this._tools=[];this.editor.element.get(".editor-state").prepend(this.element)};glow.widgets.Editor.Toolbar.prototype._addToolset=function(){var toolToAdd;for(var i=0,l=arguments.length;i<l;i++){if((toolToAdd=this.editor._tools[arguments[i]])){toolToAdd.opts.theme=this.editor._opts.theme;addTool.call(this,glow.widgets.Editor.Toolbar.prototype._toolFactory(toolToAdd))}}addToolbarIntoTabIndex.apply(this);return this};glow.widgets.Editor.Toolbar.prototype._toolFactory=function(toolToAdd,editorRef){var newTool;switch(toolToAdd.type){case"button":newTool=new glow.widgets.Editor.Toolbar.Button(toolToAdd.name,toolToAdd.opts);break;case"dropDown":newTool=new glow.widgets.Editor.Toolbar.DropDown(toolToAdd.name,toolToAdd.opts);break}return newTool};glow.widgets.Editor.blackList={FORM:true,TABLE:true,TBODY:true,CAPTION:true,TH:true,TR:true,TD:true,SCRIPT:true,STYLE:true,INPUT:true,BUTTON:true,OBJECT:true,EMBED:true,SELECT:true,H4:true,H5:true,H6:true,DIV:true,ADDRESS:true,CENTER:true,PRE:true,CODE:true,A:true,DL:true,DT:true,DD:true,ABBR:true,ACRONYM:true,DFN:true,INS:true,DEL:true,SAMP:true,VAR:true,BIG:true,SMALL:true,BLINK:true,MARQUEE:true,FONT:true,Q:true,U:true,KBD:true,SUB:true,SUP:true,CITE:true,HTML:true,BODY:true,FIELDSET:true,LEGEND:true,LABEL:true,TEXTAREA:true,HR:true,IMG:true,IFRAME:true,ILAYER:true,LAYER:true};glow.widgets.Editor.prototype._rinse=function(){if(this._lastRinse==this.editArea._getContent())return;var doc=this.editArea.contentWindow.document;var node=doc.body;var that=this;function walkNode(node){if(node.childNodes){for(var i=0;i<node.childNodes.length;i++){var keepStatus=glow.widgets.Editor.blackList[node.childNodes[i].nodeName];if(node.nodeType==1){if(keepStatus){var replacementNode=doc.createElement("SPAN");replacementNode.innerHTML=that.cleaner.clean(node.childNodes[i].innerHTML+" ");node.replaceChild(replacementNode,node.childNodes[i])}else{if(node.childNodes[i].nodeName=="P")node.childNodes[i].removeAttribute("style");if(node.childNodes[i].nodeName=="SPAN"){if(/font-size/.test(node.childNodes[i].getAttribute("style")))node.childNodes[i].removeAttribute("style")}walkNode(node.childNodes[i])}}}}else{if(glow.widgets.Editor.blackList[node.nodeName]){node.parentNode.removeChild(node)}}}walkNode(node);this._lastRinse=this.editArea._getContent()};function addTool(toolToAdd){toolToAdd.editor=this.editor;this._tools.push(toolToAdd);this.element.get(".editor-toolbar-tools").append(toolToAdd.element)};glow.widgets.Editor.Toolbar.prototype.addButton=function(name,opts){var newTool=new glow.widgets.Editor.Toolbar.Button(name,opts,this);addTool.call(this,newTool);return this};glow.widgets.Editor.Toolbar.prototype.getTool=function(name){var i=this._tools.length;while(--i>=0){if(this._tools[i].name==name)return this._tools[i]}};glow.widgets.Editor.Toolbar.prototype._update=function(domPath){var handled=false;for(var i=0,l=this._tools.length;i<l;i++){if(this._tools[i].type=="dropdown"){var regex=new RegExp("/\|("+this._tools[i].tag+")\|/"),domPathMatches=domPath.match(regex);if(domPathMatches!=null){this._tools[i].label(this._tools[i].overlayMenu.getTitleFromTag(domPathMatches[0]))}else{this._tools[i].label("Normal")}}else if(domPath.indexOf("|"+this._tools[i].tag+"|")>-1){this._tools[i].activate();handled=true}else{this._tools[i].deactivate()}}return handled};glow.widgets.Editor.Toolbar.prototype._shortcut=function(letter){var i=this._tools.length;var handled=false;while(--i>=0){if(this._tools[i].shortcut==letter){this._tools[i].press();return true}}return false};glow.widgets.Editor.Toolbar.Tool=function(name,opts,context){this.name=name;this.opts=opts||{};this.action=this.opts.action||function(){};this.tag=this.opts.tag;this.command=this.opts.command;this.shortcut=this.opts.shortcut;this.isActive=false;this.isEnabled=true;if(this.opts.onDeactivate)glow.events.addListener(this,"deactivate",this.opts.onDeactivate,context);if(this.opts.onActivate)glow.events.addListener(this,"activate",this.opts.onActivate,context);if(this.opts.onDisable)glow.events.addListener(this,"disable",this.opts.onDisable,context);if(this.opts.onEnable)glow.events.addListener(this,"enable",this.opts.onEnable,context)};glow.widgets.Editor.Toolbar.Tool.prototype.activate=function(){this.isActive=true;glow.events.fire(this,'activate')};glow.widgets.Editor.Toolbar.Tool.prototype.deactivate=function(){this.isActive=false;glow.events.fire(this,'deactivate')};glow.widgets.Editor.Toolbar.Tool.prototype.disable=function(){this.isEnabled=false;glow.events.fire(this,'disable')};glow.widgets.Editor.Toolbar.Tool.prototype.enable=function(){this.isEnabled=true;glow.events.fire(this,'enable')};glow.widgets.Editor.Toolbar.Tool.prototype.press=function(){if(this.isEnabled){this.action.call(this);if(!this.isActive&&this.type=="button")this.activate();else this.deactivate();this.editor._lastDomPath=null}};glow.widgets.Editor.Toolbar.Button=function(name,opts){this.Base=arguments.callee.base;this.base=this.Base.prototype;this.Base.apply(this,arguments);this.type="button";var buttonClass=name.toLowerCase()+"-button";this.element=glow.dom.create('<li class="editor-toolbar-item"><span class="editor-toolbar-button"><a href="#" title="'+(opts.title||name)+'" tabindex="-1"><span class="editor-toolbar-icon '+buttonClass+'"><span>'+(opts.label||name)+'<\/span><\/span><\/a><\/span><\/li>');var toolLink=this.element.get("a");this.icon=this.element.get(".editor-toolbar-icon");var key_listener;glow.events.addListener(this.icon,"mouseover",function(){if(this.isEnabled&&!this.isActive)toolLink.addClass("hover")},this);glow.events.addListener(toolLink,"focus",function(){if(this.isEnabled){toolLink.addClass("hover");key_listener=enable_key_listener(this)}},this);glow.events.addListener(this.icon,"mouseout",function(){toolLink.removeClass("hover")},this);glow.events.addListener(toolLink,"blur",function(){toolLink.removeClass("hover");glow.events.removeListener(key_listener)},this);glow.events.addListener(this,"disable",function(){toolLink.addClass("disabled")},this);glow.events.addListener(this,"enable",function(){toolLink.removeClass("disabled")},this);glow.events.addListener(this,"activate",function(){if(this.isEnabled){toolLink.addClass("active")}},this);glow.events.addListener(this,"deactivate",function(){toolLink.removeClass("active")},this);var that=this;glow.events.addListener(this.element.get("a"),"mousedown",function(){that.press();return false},this);glow.events.addListener(this.element.get("a"),"click",function(){return false})};glow.lang.extend(glow.widgets.Editor.Toolbar.Button,glow.widgets.Editor.Toolbar.Tool);glow.widgets.Editor.Toolbar.DropDown=function(name,opts){this.Base=arguments.callee.base;this.base=this.Base.prototype;this.Base.apply(this,arguments);this.type="dropdown";this._opts={title:opts.title||name,label:opts.lable||name,theme:opts.theme||'light'};var buttonClass=name.toLowerCase()+"-dropDown";this.element=glow.dom.create('<li class="editor-toolbar-item"><span class="editor-toolbar-dropdown"><a href="#" title="'+this._opts.title+'" tabindex="-1"><span class="'+buttonClass+'"><span>'+this._opts.label+'<\/span><\/span><\/a><\/span><\/li>');var that=this,toolLink=this.element.get("a");this.icon=this.element.get(".editor-toolbar-dropdown");this.overlayMenu=new glow.widgets.Editor.Toolbar.OverlayMenu(this,{menuItems:opts.menuItems,onClick:function(e){that.label(that.overlayMenu.menuItems[that.overlayMenu.selected].title);that.press();if(glow.env.ie){that.editor.editArea.contentWindow.focus()}}});this.label=function(newLabel){if(typeof newLabel!="undefined"){that.element.get("a span span").html(newLabel);return this}else{return that.element.get("a span span").html()}};this.label(this.overlayMenu.menuItems[this.overlayMenu.selected].title);glow.events.addListener(that.element.get("a"),"click",function(){_openOverlayMenu();return false});glow.events.addListener(this.element.get("a"),"mousedown",function(){return false});glow.events.addListener(that.icon,"mouseover",function(){if(this.isEnabled&&!this.isActive){toolLink.addClass("hover")}},this);glow.events.addListener(toolLink,"focus",function(){if(this.isEnabled){toolLink.addClass("hover")}},this);glow.events.addListener(this.icon,"mouseout",function(){toolLink.removeClass("hover")},this);glow.events.addListener(toolLink,"blur",function(){toolLink.removeClass("hover")},this);glow.events.addListener(this,"disable",function(){toolLink.addClass("disabled")},this);glow.events.addListener(this,"enable",function(){toolLink.removeClass("disabled")},this);glow.events.addListener(this,"activate",function(){if(this.isEnabled){toolLink.addClass("active")}},this);glow.events.addListener(this,"deactivate",function(){toolLink.removeClass("active")},this);glow.events.addListener(toolLink,"keydown",function(e){if(e.key=="DOWN"){_openOverlayMenu();var toolText=$(this).text();that.overlayMenu.container.get("li").each(function(i){var li=$(this);if(li.text()==toolText){li[0].tabIndex=0;li[0].focus()}});return false}if((e.key=="LEFT")||(e.key=="RIGHT")){_closeOverlayMenu.call(that);return false}});function _openOverlayMenu(){that.activate();that.overlayMenu.show();var inputOffset=that.element.offset();that.overlayMenu.container.css("left",(inputOffset.left+5)).css("top",(inputOffset.top+that.element[0].offsetHeight+2))}};function _closeOverlayMenu(){this.deactivate();this.overlayMenu.hide()};glow.lang.extend(glow.widgets.Editor.Toolbar.DropDown,glow.widgets.Editor.Toolbar.Tool);glow.widgets.Editor.Toolbar.OverlayMenu=function(dropDown,opts){var overlayMenuContents=glow.dom.create('<ul></ul>'),overlayMenu,that=this;opts.formatItem=opts.formatItem||function(o){return o.html()};opts.onClick=opts.onClick||function(){};overlayMenu=new glow.widgets.Overlay(overlayMenuContents,{className:'overlayMenu',mask:new glow.widgets.Mask({opacity:0}),modal:true,closeOnEsc:true,autoPosition:false});if(dropDown._opts.theme){overlayMenu.container.addClass('overlayMenu-'+dropDown._opts.theme)}overlayMenu.menuItems=opts.menuItems;overlayMenu.selected=null;var z=0;for(menuItem in overlayMenu.menuItems){menuItem=overlayMenu.menuItems[menuItem];overlayMenuContents.append(glow.lang.interpolate(menuItem.template,{title:menuItem.title}));menuItem.selected=menuItem.selected||false;if(menuItem.selected==true){overlayMenu.selected=z}z++}events.addListener(overlayMenu,'hide',function(){if(dropDown.isActive==true){events.fire(dropDown,'deactivate');dropDown.isActive=false}});overlayMenu.getTitleFromTag=function(tag){for(menuItem in overlayMenu.menuItems){menuItem=overlayMenu.menuItems[menuItem];if(menuItem.tag==tag){return menuItem.title}}return null};var arrLi=overlayMenu.container.get("li");events.addListener(overlayMenuContents,"mouseover",function(e){_highlightMenuItem($(e.source),arrLi);e.source.focus()});events.addListener(overlayMenuContents,"mouseout",function(e){_disableTabIndex(e.source)});events.addListener(overlayMenuContents,"focus",function(e){_highlightMenuItem($(e.source),arrLi)});events.addListener(overlayMenuContents,"blur",function(e){_disableTabIndex(e.source)});events.addListener(overlayMenuContents,"mousedown",function(e){_menuItemClick(e);return false});events.addListener(overlayMenuContents,"keydown",function(e){var toolLink=dropDown.element.get("a");switch(e.key){case"UP":moveFocusLeft(e,arrLi);break;case"DOWN":moveFocusRight(e,arrLi);break;case"ESC":_closeOverlayMenu.call(dropDown);toolLink[0].focus();break;case"LEFT":toolLink[0].focus();moveFocusLeft(new events.Event({source:toolLink[0]}),dropDown.editor.toolbar.element.get("a"));_closeOverlayMenu.call(dropDown);break;case"RIGHT":toolLink[0].focus();moveFocusRight(new events.Event({source:toolLink[0]}),dropDown.editor.toolbar.element.get("a"));_closeOverlayMenu.call(dropDown);break;case"ENTER":_menuItemClick(e)}return false});events.addListener(overlayMenuContents,"keypress",function(e){e.preventDefault();return false});function _menuItemClick(e){var source=$(e.source);source.removeClass("highlighted");overlayMenu.selected=_findPositionInNodelist(source);_closeOverlayMenu.call(dropDown);opts.onClick(e)};return overlayMenu};function _findPositionInNodelist(elm){var siblings=$(elm).parent().children(),r=0;siblings.each(function(y){if(this==elm.item(0)){r=y}});return r}function _highlightMenuItem(li,arrLi){arrLi.each(function(q){$(arrLi[q]).removeClass("highlighted")});li.addClass("highlighted")};function _disableTabIndex(elm){elm.tabIndex=-1}glow.widgets.Editor.Toolbar.Button.prototype.activate=function(){this.base.activate.apply(this,arguments)};glow.widgets.Editor.Toolbar.Button.prototype.deactivate=function(){this.base.deactivate.apply(this,arguments)};glow.widgets.Editor.Toolbar.Button.prototype.enable=function(name){this.base.enable.apply(this,arguments)};glow.widgets.Editor.Toolbar.Button.prototype.disable=function(name){this.base.disable.apply(this,arguments)};function enable_key_listener(button){return glow.events.addListener(glow.dom.get(document),'keyup',function(event){if(event.key=='ENTER'){button.press();if(event.preventDefault)event.preventDefault();return false}})};function createTools(localeModule){return{bold:{name:"bold",type:"button",opts:{title:localeModule.BOLD_TITLE,label:localeModule.BOLD_LABEL,tag:"strong",command:"bold",shortcut:"b",action:function(){tag.call(this.editor.editArea,this.command);return false}}},italics:{name:"italics",type:"button",opts:{title:localeModule.ITALICS_TITLE,label:localeModule.ITALICS_LABEL,tag:"em",command:"italic",shortcut:"i",action:function(){tag.call(this.editor.editArea,this.command);return false}}},strike:{name:"strike",type:"button",opts:{title:localeModule.STRIKE_TITLE,label:localeModule.STRIKE_LABEL,tag:"strike",command:"strikethrough",action:function(){tag.call(this.editor.editArea,this.command);return false}}},unorderedlist:{name:"unorderedlist",type:"button",opts:{title:localeModule.UNORDERED_TITLE,label:localeModule.UNORDERED_LABEL,tag:"ul",command:"insertunorderedlist",action:function(){tag.call(this.editor.editArea,this.command);return false}}},orderedlist:{name:"orderedlist",type:"button",opts:{title:localeModule.ORDERED_TITLE,label:localeModule.ORDERED_LABEL,tag:"ol",command:"insertorderedlist",action:function(){tag.call(this.editor.editArea,this.command);return false}}},formatBlock:{name:"formatBlock",type:"dropDown",opts:{title:localeModule.FORMATBLOCK_TITLE,label:localeModule.FORMATBLOCK_LABEL,tag:'h1|h2|h3|p',action:function(){tag.call(this.editor.editArea,"formatblock","<"+this.overlayMenu.menuItems[this.overlayMenu.selected].tag+">")},menuItems:[{title:localeModule.HEADINGLEVELONE_TITLE,template:'<li class="heading1">{title}</li>',tag:'h1'},{title:localeModule.HEADINGLEVELTWO_TITLE,template:'<li class="heading2">{title}</li>',tag:'h2'},{title:localeModule.HEADINGLEVELTHREE_TITLE,template:'<li class="heading3">{title}</li>',tag:'h3'},{title:localeModule.NORMAL_TITLE,template:'<li class="normal">{title}</li>',tag:'p',selected:true}]}}}};glow.widgets.Editor.EditArea=function(editor,opts){opts=opts||{};this.editor=editor;this.element=$(document.createElement("iframe"));this.element.attr('frameBorder',0);this.element.src="javascript:false";this.editor.element.get(".editor-state").append(this.element);var that=this;setTimeout(function(){that.element[0].contentWindow.document.designMode="on";that.contentWindow=that.element[0].contentWindow;if(that.editor.textarea.val()){that.contentWindow.document.write(that.editor.textarea.val())}else{that.contentWindow.document.write("<p>&nbsp;</p>")}that.contentWindow.document.close();that.editor.iframeFocus=false;addKeyboardListener.call(that);manageToolbarFocus(that);if(glow.env.ie||glow.env.opera){glow.dom.get(that.element[0].contentWindow.document).item(0).attachEvent('onclick',function(){updateArea.call(that)});glow.dom.get(that.element[0].contentWindow.document).item(0).attachEvent('onkeyup',function(){updateArea.call(that)})}else{events.addListener(that.contentWindow.document,'blur',function(){updateArea.call(that)});events.addListener(that.contentWindow,'click',function(){updateArea.call(that)});events.addListener(that.contentWindow,'keyup',function(){updateArea.call(that)})}if(glow.env.gecko){that.contentWindow.document.execCommand("styleWithCSS",false,false)}if(glow.env.webkit){events.addListener(that.element[0].contentWindow,'beforeunload',function(){that.editor.commit();return true});events.addListener(window,'beforeunload',function(){that.editor.commit();return true})}that._toolbarInTabIndex=false;glow.events.addListener(that.editor.element.get(".editor-state"),"click",function(){addToolbarIntoTabIndex.apply(that)},that);if(!isNaN(glow.env.ie)){that.contentWindow.attachEvent('onfocus',function(){addToolbarIntoTabIndex.apply(that)},that)}else{that.contentWindow.addEventListener('focus',function(){addToolbarIntoTabIndex.apply(that)},that)}if(that.editor.bound){that.idler=new Idler(that.contentWindow,["mousedown","keypress"],350,{onFire:function(){that.editor._rinse()},rate:700})}},0)};function addToolbarIntoTabIndex(){if(this.editor._toolbarInTabIndex==true)return;this.editor.toolbar.element.get('a').item(0).tabIndex=0;this.editor._toolbarInTabIndex=true}function addKeyboardListener(){if(!isNaN(glow.env.ie)){glow.dom.get(this.contentWindow.document).item(0).attachEvent('onkeydown',(function(that){return function(event){event=event||window.event;return checkingKeyCombos.call(that,event)}})(this))}else if(!isNaN(glow.env.opera)){glow.dom.get(this.contentWindow.document).item(0).addEventListener('keypress',(function(that){return function(event){event=event||window.event;return checkingKeyCombos.call(that,event)}})(this),true)}else{glow.dom.get(this.contentWindow.document).item(0).addEventListener('keydown',(function(that){return function(event){event=event||window.event;return checkingKeyCombos.call(that,event)}})(this),true)}}function checkingKeyCombos(event){if((navigator.platform.toLowerCase().indexOf('mac')==-1)||isNaN(glow.env.webkit)){if((event.keyCode==9)&&(event.shiftKey==true)){var arrIcons=glow.dom.get(this.editor.element).get('ul.editor-toolbar-tools a');arrIcons.each(function(i){if(arrIcons[i].tabIndex==0){window.focus();arrIcons[i].focus()}});if(event.preventDefault)event.preventDefault();return false}if((event.keyCode==9)){window.focus();this.element[0].focus();glow.dom.get(this.editor.element).get('p.endOfEditorCounter').item(0).focus();if(event.preventDefault)event.preventDefault();return false}}if(appliedModifierKey.call(this,event)){if((this.editor.toolbar._shortcut(String.fromCharCode(event.keyCode).toLowerCase()))||(String.fromCharCode(event.keyCode).toLowerCase()=='u')){if(event.preventDefault)event.preventDefault();return false}}return true}function appliedModifierKey(event){if(navigator.platform.toLowerCase().indexOf('mac')!=-1){if(!isNaN(glow.env.opera))return event.ctrlKey;return event.metaKey}else{return event.ctrlKey}}function isSafariTwo(){if((glow.env.webkit>400)&&(glow.env.webkit<500)){return true}else{return false}}function manageToolbarFocus(editArea){var left_listener,right_listener,arrButtons=editArea.editor.toolbar.element.get('a');glow.events.addListener(glow.dom.get(arrButtons),'focus',function(){right_listener=glow.events.addKeyListener('RIGHT','down',moveFocusRight);left_listener=glow.events.addKeyListener('LEFT','down',moveFocusLeft)});glow.events.addListener(glow.dom.get(arrButtons),'blur',function(){glow.events.removeListener(right_listener);glow.events.removeListener(left_listener)})}function moveFocusLeft(event,siblingLinks){moveFocus(getDistantSibling(glow.dom.get(event.source),-1,siblingLinks))}function moveFocusRight(event,siblingLinks){moveFocus(getDistantSibling(glow.dom.get(event.source),1,siblingLinks))}function getDistantSibling(elm,move,arrLinks){arrLinks=arrLinks||getAncestor(glow.dom.get(elm),"ul").get('a');var itemIndexToFocus=0,trueArrayLength=(arrLinks.length-1);arrLinks.each(function(y){if(this==elm.item(0))itemIndexToFocus=(y+move);this.tabIndex=-1});if(itemIndexToFocus<0)itemIndexToFocus=0;if(itemIndexToFocus>trueArrayLength)itemIndexToFocus=trueArrayLength;return arrLinks.item(itemIndexToFocus)}function getAncestor(elm,typeToFind){var x=false;while(x==false){if((elm[0].nodeName.toUpperCase()==typeToFind.toUpperCase())||(elm[0].nodeName=="HTML")){x=true}elm=elm.parent()}return elm}function moveFocus(item){if(typeof item!='undefined'){item.tabIndex=0;item.focus()}}function tag(tagName,attr){attr=attr||null;if(this[tagName+"_"+attr]){this[tagName+"_"+attr]()}else{this._domPath();this.contentWindow.document.execCommand(tagName,false,attr)}this.contentWindow.focus();updateArea.call(this)};glow.widgets.Editor.EditArea.prototype._getSelected=function(){if(glow.env.ie){return this.contentWindow.document.selection}else{return this.contentWindow.getSelection()}};function updateArea(){this.editor.commit();var currentDomPath=this._domPath();if(currentDomPath&&currentDomPath!=this.editor._lastDomPath){this.editor._lastDomPath=currentDomPath;var e=glow.events.fire(this,'domPathChange',{domPath:currentDomPath});if(!e.defaultPrevented()){this.editor.toolbar._update(currentDomPath)}}};glow.widgets.Editor.EditArea.prototype._domPath=function(elm){elm=elm||this._getSelectedNode();var elmBody=glow.dom.get(this.editor.editArea.contentWindow.document).get('body').item(0);var trail="";if(elm===null)return null;while(elm.nodeName.toUpperCase()!=elmBody.nodeName.toUpperCase()){trail='<'+elm.nodeName.toLowerCase()+((elm.getAttribute('style'))?' style="'+elm.getAttribute('style')+'"':'')+'>'+trail;elm=elm.parentNode}var cleanTrail=this.editor.cleaner.clean(trail);cleanTrail=cleanTrail.replace(/></g,"|").replace(/>/g,"|").replace(/</g,"|");cleanTrail=cleanTrail.replace(/\|\/[^\|]+\|/g,"|");return cleanTrail};glow.widgets.Editor.EditArea.prototype._getSelectedNode=function(){var selected=this._getSelected();if(!glow.env.ie){if(selected&&selected.rangeCount===0){return null}selectedNode=selected.getRangeAt(0).commonAncestorContainer;if(selectedNode.nodeType===3){return selectedNode.parentNode}else{return selectedNode}}else{return selected.createRange().parentElement()}};glow.widgets.Editor.EditArea.prototype._nodeAt=function(location){var w=this.contentWindow;var d=w.document;var counter=0;var node=d.body;function walkNode(node,location){if(node.nodeName=="#text"){counter+=node.nodeValue.length;if(counter>=location){return node.parentNode}}if(node.childNodes){for(var i=0;i<node.childNodes.length;i++){var foundNode=walkNode(node.childNodes[i],location);if(foundNode)return foundNode}}}var foundNode=walkNode(node,location);return foundNode};glow.widgets.Editor.EditArea.prototype._getContent=function(){return this.contentWindow.document.body.innerHTML};glow.widgets.Editor.EditArea.prototype._setContent=function(content){this.contentWindow.document.body.innerHTML=content};glow.widgets.Editor.EditArea.prototype._select=function(){var el=this.contentWindow;el.focus();if(glow.env.ie){r=el.document.body.createTextRange();r.moveEnd('textedit');r.select()}else{var r=el.document.createRange();r.selectNodeContents(el.document.body.firstChild.childNodes[0]);var s=el.getSelection();s.removeAllRanges();el.getSelection().addRange(r)}}}});(window.gloader||glow).module({name:"glow.widgets.Timetable",library:["glow","1.7.0"],depends:[["glow","1.7.0",'glow.dom','glow.events','glow.widgets','glow.widgets.Slider','glow.dragdrop','glow.i18n']],builder:function(glow){var $dom=glow.dom,$=$dom.get,$create=$dom.create,$events=glow.events,$listen=$events.addListener,$fire=$events.fire,$lang=glow.lang,$apply=$lang.apply,$i18n=glow.i18n,idIndex=0,vocabs=[{length:"width",breadth:"height",rootClass:"glow170-Timetable",dragAxis:"x",pos:"left",posOpposite:"right",otherPos:"top",otherPosOpposite:"bottom"},{length:"height",breadth:"width",rootClass:"glow170-vTimetable",dragAxis:"y",pos:"top",posOpposite:"bottom",otherPos:"left",otherPosOpposite:"right"}];$i18n.addLocaleModule("GLOW_WIDGETS_TIMETABLE","en",{ACCESSIBILITY_MENU_START:"Start",ACCESSIBILITY_MENU_END:"End",ACCESSIBILITY_INTRO:"Use this menu to choose what section of the timetable to view.",SKIPLINK_TO_TRACK:"skip to track data",SKIPLINK_BACK_TO_HEADERS:"back to track headers"});function getId(){return glow.UID+"TimetableWidget"+(idIndex++)}function getVocab(){return vocabs[!!this._opts.vertical*1]}function _adder(amount){return function(prev){if(prev instanceof Date){return new Date(prev.getTime()+amount)}else{return prev+amount}}}function _createIncrementer(type){switch(type){case"am/pm":return _adder(43200000);case"hour":return _adder(3600000);case"day":return _adder(86400000);case"week":return _adder(604800000);case"month":return function(prev){var d=new Date(prev);d.setMonth(d.getMonth()+1);return d};case"year":return function(prev){var d=new Date(prev);d.setFullYear(d.getFullYear()+1);return d};default:if(type instanceof Function){return type}else if(isNaN(type)){throw new Error("Can't create incrementer");}else{return _adder(parseInt(type))}}}function _getSegments(rule,first,start,stop){if(rule instanceof Array){if(!this.numerical){return glow.lang.map(rule,function(item){return new Date(item)})}return rule}var iSize,output,sizes,now,len=1,incrementer=_createIncrementer(rule);if(first=="auto"){sizes={"am/pm":43200000,"hour":3600000,"day":86400000};switch(rule){case"am/pm":case"hour":case"day":now=new Date(sizes[rule]*Math.floor(start.valueOf()/sizes[rule]));break;case"week":now=new Date(start);now.setHours(0,0,0,0);now.setDate(now.getDate()-now.getDay());break;case"month":now=new Date(start);now.setHours(0,0,0,0);now.setDate(1);break;case"year":now=new Date(start);now.setHours(0,0,0,0);now.setMonth(0,1);break;default:now=start}}else{now=first||start}output=[now];while(now<stop){now=incrementer(now);output[len++]=now}return output}function _buildFromTemplate(template){var halfway,content;if(template==undefined){return null}if(template instanceof $dom.NodeList){halfway=template}else if(template instanceof Function){halfway=template(this)}else{halfway=$lang.interpolate(""+template,this)}if(halfway instanceof $dom.NodeList){content=$dom.create("<div></div>").append(halfway)}else{content=$dom.create("<div>"+halfway+"</div>")}return content}function Timetable(container,start,end,viewStart,viewEnd,opts){this._opts=opts=$apply({vertical:true,tracks:[],collapseItemBorders:true,collapseTrackBorders:false,keepItemContentInView:true,className:"",theme:"light"},opts||{});var vocab=getVocab.call(this);this._container=$(container);if(!this._container[0]){throw new Error("Could not find container for Timetable");}this.id=opts.id||getId();this.size=opts.size||this._container[vocab.length]();this.numerical=((typeof start)=="number");this.start=start;this.end=end;this._viewStart=viewStart;this._viewEnd=viewEnd;if(!this.numerical){this.start=new Date(start);this.end=new Date(end);this._viewStart=new Date(viewStart);this._viewEnd=new Date(viewEnd)}this._viewWindowSize=this._viewEnd-this._viewStart;this.tracks=[];for(var i=0,l=opts.tracks.length;i<l;i++){this.addTrack.apply(this,opts.tracks[i])}if(opts.onChange){$listen(this,"change",opts.onChange)}if(opts.onItemClick){$listen(this,"itemClick",opts.onItemClick)}if(opts.onMoveStart){$listen(this,"moveStart",opts.onMoveStart)}if(opts.onMoveStop){$listen(this,"moveStop",opts.onMoveStop)}this.element;this._view=new View(this);this._banding=[];this._primaryScales=[];this._secondaryScales=[];this._primaryScrollbar=null;this._secondaryScrollbar=null}Timetable.prototype={addTrack:function(title,size,opts){return this.tracks[this.tracks.length]=new Track(this,title,size,opts)},currentPosition:function(value){if(value===undefined){var current=(this._view)?this._view.currentPosition():this._viewStart;if(!this.numerical){current=new Date(current)}return current}else{if(!this.numerical){value=new Date(value)}this._view.currentPosition(value);return this}},viewRange:function(newRange){var duration=this._viewEnd-this._viewStart,currentPos=this.currentPosition(),range={start:currentPos,end:currentPos.valueOf()+duration};if(!this.numerical){range.end=new Date(range.end)}if(newRange){this._viewStart=newRange.start||range.start;this._viewEnd=newRange.end||range.end;if(!this.numerical){this._viewStart=new Date(this._viewStart);this._viewEnd=new Date(this._viewEnd)}if(this._viewStart<this.start){this._viewStart=this.start}if(this._viewEnd>this.end){this._viewEnd=this.end}if(this._view&&this._view._drawn){this.draw(true).currentPosition(this._viewStart)}return this}else{return range}},setItemTemplate:function(template){this._opts.itemTemplate=template;return this},setTrackHeaderTemplate:function(template){this._opts.trackHeader=template;return this},setTrackFooterTemplate:function(template){this._opts.trackFooter=template;return this},setBanding:function(banding,opts){var options=opts||{};this._banding=_getSegments.call(this,banding,options.start||"auto",this.start,this.end);return this},addScale:function(segmentation,position,size,opts){var options=opts||{},spec={template:options.template,size:size,points:_getSegments.call(this,segmentation,options.start||"auto",this.start,this.end),opts:options};position=position.toLowerCase();if((position=="both")&&options.id){throw new Error("Cannot apply an id when adding to both sides of the timetable");}if((position=="top")||(position=="left")||(position=="both")){this._primaryScales[this._primaryScales.length]=spec}if((position=="bottom")||(position=="right")||(position=="both")){this._secondaryScales[this._secondaryScales.length]=spec}return this},removeScales:function(position){if((position=="top")||(position=="left")||(position=="both")){this._primaryScales=[]}if((position=="bottom")||(position=="right")||(position=="both")){this._secondaryScales=[]}return this},addScrollbar:function(marks,position,size,opts){var options=$apply({buttons:true},opts||{}),spec={template:options.template,size:size,points:_getSegments.call(this,marks,options.start||"auto",this.start,this.end),opts:options};position=position.toLowerCase();if((position=="both")&&options.id){throw new Error("Cannot apply an id when adding to both sides of the timetable");}if((position=="top")||(position=="left")||(position=="both")){this._primaryScrollbar=spec}if((position=="bottom")||(position=="right")||(position=="both")){this._secondaryScrollbar=spec}return this},draw:function(redraw){this._view.draw(redraw);return this}};function Track(timetable,title,size,opts){this._opts=opts=$apply({className:""},opts||{});this.disabled=opts.disabled||false;this.data=opts.data||{};this.title=title;this.size=size;this.timetable=timetable;this.id=opts.id||getId();this.items=[];if(opts.items!=undefined){for(var i=0,l=opts.items.length;i<l;i++){_factoryItem.apply(this,opts.items[i])}_sortItems.call(this)}}function _factoryItem(title,start,end,options){return this.items[this.items.length]=new Item(this,title,start,end,options)}function _itemSortOrder(a,b){return((a.start-b.start)||(a._addIndex-b._addIndex))}function _sortItems(){this.items.sort(_itemSortOrder)}function _queryItems(start,end,testFunc){if(((typeof start)=="number")!==this.timetable.numerical){throw new Error("Cannot get Item(s) - point(s) not in the correct scale type.");}var items=this.items,results={items:[],indices:[]},num=0;if(!this.timetable.numerical){start=new Date(start);end=new Date(end)}for(var i=0,l=items.length;i<l;i++){if(items[i].start>end){break}if(testFunc.call(items[i],start,end)){results.items[num]=items[i];results.indices[num]=i;num++}}return results}function _rangeContainsItem(start,end){return((this.start>=start)&&(this.end<=end))}function _itemOverlapsRange(start,end){return((this.start<end)&&(this.end>start))}function _itemAtPoint(point){return((this.start<=point)&&(this.end>point))}Track.prototype={toString:function(){return this.title},addItem:function(title,start,end,options){var item=_factoryItem.call(this,title,start,end,options);_sortItems.call(this);return item},itemAt:function(point){return _queryItems.call(this,point,point,_itemAtPoint).items[0]},indexAt:function(point){return _queryItems.call(this,point,point,_itemAtPoint).indices[0]},itemsAt:function(point){return _queryItems.call(this,point,point,_itemAtPoint).items},indicesAt:function(point){return _queryItems.call(this,point,point,_itemAtPoint).indices},itemsInRange:function(start,end){return _queryItems.call(this,start,end,_itemOverlapsRange).items},indicesInRange:function(start,end){return _queryItems.call(this,start,end,_itemOverlapsRange).indices},setItemTemplate:function(template){this._opts.itemTemplate=template;return this},setTrackHeaderTemplate:function(template){this._opts.trackHeader=template;return this},setTrackFooterTemplate:function(template){this._opts.trackFooter=template;return this},getHeader:function(){return _buildFromTemplate.call(this,this._opts.trackHeader||this.timetable._opts.trackHeader)},getFooter:function(){return _buildFromTemplate.call(this,this._opts.trackFooter||this.timetable._opts.trackFooter)}};function Item(track,title,start,end,opts){this._addIndex=track.items.length;this._opts=opts=$apply({className:""},opts||{});if(((typeof start)=="number")!==track.timetable.numerical){throw new Error("Item scale type does not match Timetable.");}this.data=opts.data||{};this.title=title;this.start=start;this.end=end;if(!track.timetable.numerical){this.start=new Date(start);this.end=new Date(end)}this.track=track;this.id=opts.id||getId();this.element}Item.prototype={toString:function(){return this.title},setItemTemplate:function(template){this._opts.itemTemplate=template;return this},getContent:function(){return _buildFromTemplate.call(this,this._opts.itemTemplate||this.track._opts.itemTemplate||this.track.timetable._opts.itemTemplate)},inRange:function(start,end){if(!this.track.timetable.numerical){start=new Date(start);end=new Date(end)}return _itemOverlapsRange.call(this,start,end)}};glow.widgets.Timetable=Timetable;glow.widgets.Timetable.Track=Track;glow.widgets.Timetable.Item=Item;var View;(function(){var containerTemplate=''+'<div>'+'<div class="timetable-theme">'+'<div class="timetable-state">'+'<div class="timetable-container">'+'<div class="timetable-accessibility-navigation">{ACCESSIBILITY_INTRO}</div>'+'<div class="timetable-track-headers" role="presentation" id="'+glow.UID+'TimetableWidgetHeaders"></div>'+'<div class="timetable-scrollView">'+'<div class="timetable-scrollbar1"></div>'+'<div class="timetable-innerView">'+'<div class="timetable-dragRange">'+'<div class="timetable-dragArea" aria-live="polite">'+'</div>'+'</div>'+'</div>'+'<div class="timetable-scrollbar2"></div>'+'</div>'+'<div class="timetable-track-footers" role="presentation" id="'+glow.UID+'TimetableWidgetFooters"></div>'+'</div>'+'</div>'+'</div>'+'</div>',headerHolderTemplate=''+'<div class="timetable-header-holder"></div>',footerHolderTemplate=''+'<div class="timetable-footer-holder"></div>',trackTemplate=''+'<div class="timetable-track"><ol class="timetable-trackList"></ol></div>',itemHolderTemplate=''+'<li class="timetable-item" tabindex="0"></li>',scaleTemplate=''+'<div class="timetable-scale"></div>',scaleItemTemplate=''+'<div class="timetable-scaleItem"></div>',emptyDiv=$dom.create('<div></div>'),mouseMoveTolerance=10;function _mouseMoveDuringTimetableDrag(event){if(!this._clickStart){this._clickStart=[event.pageX,event.pageY]}else if(!this._cancelNextItemClick&&(Math.abs(this._clickStart[0]-event.pageX)>mouseMoveTolerance||Math.abs(this._clickStart[1]-event.pageY)>mouseMoveTolerance)){this._cancelNextItemClick=true}_moveToPosition.call(this,this.currentPosition())}function _dragAreaClicked(event){if(this._cancelNextItemClick)return false;var itemElm=$(event.source);while(itemElm[0]!=event.attachedTo){if(itemElm.hasClass("timetable-item")){$fire(this._timetable,"itemClick",$apply({item:this.itemInstance[itemElm[0].id]},new $events.Event(event)))}itemElm=itemElm.parent()}}function _moveStart(){$fire(this._timetable,"moveStart")}function _moveToPosition(val){var timetable=this._timetable,vocab=getVocab.call(timetable);this._dragAreaElm.css(vocab.pos,-(_valToPos.call(this,val)));if(this._scrollbar1){this._scrollbar1.moveToPosition(val)}if(this._scrollbar2){this._scrollbar2.moveToPosition(val)}}function _moveStop(){$fire(this._timetable,"moveStop")}function _moved(){_adjustContentPosition.call(this);_fireChangeEvent.call(this)}function _adjustContentPosition(){var timetable=this._timetable,vocab=getVocab.call(timetable),i=0,len=timetable.tracks.length,item,itemToAdjust,itemContentToAdjust,itemId,currentPos=timetable.currentPosition(),itemPixelOffset,newMargin,posPixelOffset=parseInt(this._dragAreaElm[0].style[vocab.pos]);if(this._timetable._opts.keepItemContentInView){this._itemContentHangingOffStart.css("margin-"+vocab.pos,0);this._itemsHangingOffStart.removeClass("timetable-itemHangingClipping")}this._itemsHangingOffStart.removeClass("timetable-itemHangingOffStart");this._itemContentHangingOffStart=new $dom.NodeList();this._itemsHangingOffStart=new $dom.NodeList();for(;i<len;i++){item=timetable.tracks[i].itemAt(currentPos);if(!item||item.start.valueOf()==currentPos.valueOf()){continue}itemId=item.id;itemContentToAdjust=this.itemContent[itemId];itemToAdjust=this.items[itemId];this._itemContentHangingOffStart.push(itemContentToAdjust);this._itemsHangingOffStart.push(itemToAdjust);if(this._timetable._opts.keepItemContentInView){itemPixelOffset=parseInt(itemToAdjust[0].style[vocab.pos]);newMargin=-posPixelOffset-itemPixelOffset;itemContentToAdjust.css("margin-"+vocab.pos,newMargin);if(itemToAdjust[vocab.length]()<(itemContentToAdjust[vocab.length]()+newMargin)){itemToAdjust.addClass("timetable-itemHangingClipping")}}}this._itemsHangingOffStart.addClass("timetable-itemHangingOffStart")}function _valToPos(val){return(val-this._timetable.start)/this.scale}function _posToVal(pos){return(pos*this.scale)+this._timetable.start.valueOf()}function _fireChangeEvent(){var timetable=this._timetable,newPos=timetable.currentPosition();if(newPos.valueOf()!=this._posBeforeMove.valueOf()){$fire(timetable,"change");this._posBeforeMove=newPos;_updateHiddenNavSelect.call(this)}}function _createItem(item,border){var timetable=this._timetable,vocab=getVocab.call(timetable),itemPos=_valToPos.call(this,item.start),itemLength=_valToPos.call(this,item.end)-itemPos,itemElm=$dom.create(itemHolderTemplate),itemContent=item.getContent()||_itemDefaultContent(item);itemElm.attr("id",item.id);itemContent[0].className="timetable-itemContent "+item._opts.className;var self=this;item.element=this.items[item.id]=itemElm;this.itemContent[item.id]=itemContent;this.itemInstance[item.id]=item;itemLength-=border*((!timetable._opts.collapseItemBorders)+1);if(itemLength<0){itemLength=0}itemElm.css(vocab.pos,itemPos).css(vocab.length,itemLength);itemElm.append(itemContent);return itemElm}function _itemDefaultContent(item){return $create("<div>"+item.title+"</div>")}function _drawTrack(track){var timetable=this._timetable,vocab=getVocab.call(timetable),items=track.items,i=0,len=items.length,trackElm=this.tracks[track.id],header=this._headers[track.id],footer=this._footers[track.id],trackListElm,itemBorder,itemElmTmp,item;if(!trackElm){trackElm=this.tracks[track.id]=_createTrack.call(this,track);trackElm.css(vocab.breadth,track.size);trackElm.appendTo(this._dragAreaElm);_drawHeaderAndFooter.call(this,track);if(header){trackElm.prepend(header.clone().removeClass("timetable-header-holder").addClass("timetable-accessibility-hidden"))}if(footer){trackElm.append(footer.clone().removeClass("timetable-footer-holder").addClass("timetable-accessibility-hidden"))}}trackListElm=trackElm.get("> ol");itemElmTmp=$dom.create(itemHolderTemplate).appendTo(trackListElm);itemBorder=parseInt(itemElmTmp.css(["border-"+vocab.pos+"-width","border-"+vocab.posOpposite+"-width"]))/2;itemElmTmp.remove();for(;i<len;i++){item=track.items[i];if(!this.items[item.id]){_createItem.call(this,items[i],itemBorder).appendTo(trackListElm)}}}function _drawHeaderAndFooter(track){var content,id=track.id;content=track.getHeader();if(content){this._headers[id]=$dom.create(headerHolderTemplate).append(content.addClass("timetable-header-content"));this._headerElm.append(this._headers[id]).append('<a class="timetable-accessibility-hidden" href="#'+id+'">'+this._locale.SKIPLINK_TO_TRACK+'</a>')}content=track.getFooter();if(content){this._footers[id]=$dom.create(footerHolderTemplate).append(content.addClass("timetable-footer-content"));this._footerElm.append(this._footers[id]).append('<a class="timetable-accessibility-hidden" href="#'+glow.UID+'TimetableWidgetHeaders">'+this._locale.SKIPLINK_BACK_TO_HEADERS+'</a>')}}function _createTrack(track){var r=$dom.create(trackTemplate).attr("id",track.id);return r}function _positionTracks(){var timetable=this._timetable,vocab=getVocab.call(timetable),i=0,tracksLen=timetable.tracks.length,primaryScalesLen=this._primaryScaleElms.length,secondaryScalesLen=this._secondaryScaleElms.length,lenTotal=tracksLen+primaryScalesLen+secondaryScalesLen,trackElm,headerElm,footerElm,headerMaxLength=0,footerMaxLength=0,headerFooterOffset,headerFooterBreadth,breadthBorders=["border-"+vocab.otherPos+"-width","border-"+vocab.otherPosOpposite+"-width"],posSum=0,collapseBorders=timetable._opts.collapseTrackBorders,border,margin,size,id,trackObj;headerFooterOffset=this._scrollbar1Elm[vocab.breadth]()-parseInt(this._headerElm.css("border-"+vocab.otherPos+"-width"));for(;i<lenTotal;i++){if(i<primaryScalesLen){trackElm=this._primaryScaleElms[i];headerElm=footerElm=null}else if(i<primaryScalesLen+tracksLen){trackObj=timetable.tracks[i-primaryScalesLen];id=trackObj.id;trackElm=this.tracks[id];headerElm=this._headers[id];footerElm=this._footers[id];if(trackObj.disabled){$(trackElm,headerElm,footerElm).css("display","none");continue}else{$(trackElm,headerElm,footerElm).css("display","")}}else{trackElm=this._secondaryScaleElms[i-primaryScalesLen-tracksLen];headerElm=footerElm=null}border=parseInt(trackElm.css(breadthBorders))/2;margin=collapseBorders?0:parseInt(trackElm.css("margin-"+vocab.otherPosOpposite))||0;size=parseInt(trackElm.css(vocab.breadth))+(border*((!collapseBorders)+1))+margin;trackElm.css(vocab.otherPos,posSum);if(headerElm){headerElm.css(vocab.otherPos,posSum+headerFooterOffset).css(vocab.breadth,trackObj.size+2*border);headerMaxLength=Math.max(parseInt(headerElm.css(vocab.length)),headerMaxLength)}if(footerElm){footerElm.css(vocab.otherPos,posSum+headerFooterOffset).css(vocab.breadth,trackObj.size+2*border);footerMaxLength=Math.max(parseInt(footerElm.css(vocab.length)),footerMaxLength)}posSum+=size}this._innerViewElm.css(vocab.breadth,posSum+(border*collapseBorders)-margin);headerFooterBreadth=posSum+(border*collapseBorders)-margin+headerFooterOffset+this._scrollbar2Elm[vocab.breadth]();$(this._headerElm,this._footerElm).css(vocab.breadth,headerFooterBreadth-parseInt(this._headerElm.css("border-"+vocab.otherPosOpposite+"-width")));this._headerElm.css(vocab.length,headerMaxLength);this._footerElm.css(vocab.length,footerMaxLength)}function _drawBanding(){var timetable=this._timetable,vocab=getVocab.call(timetable),i=0,len=timetable._banding.length-1,bandStart,bandStartPos,bandEnd,bandEndPos,band;for(;i<len;i++){bandStart=timetable._banding[i].valueOf();bandEnd=timetable._banding[i+1].valueOf();bandStartPos=_valToPos.call(this,bandStart);bandEndPos=_valToPos.call(this,bandEnd)-bandStartPos;band=emptyDiv.clone().css(vocab.pos,bandStartPos).css(vocab.length,bandEndPos).addClass("timetable-band"+(i%2?'Odd':'Even')).appendTo(this._dragAreaElm)}}function _createScale(scaleData){var timetable=this._timetable,vocab=getVocab.call(timetable),scaleElm=$create(scaleTemplate).css(vocab.breadth,scaleData.size),i=0,points=scaleData.points,len=points.length-1,itemStart,itemStartPos,itemEnd,itemLength,itemContext;scaleElm[0].id=scaleData.opts.id||"";scaleElm[0].className+=" "+(scaleData.opts.className||"");for(;i<len;i++){itemStart=points[i].valueOf();itemEnd=points[i+1].valueOf();itemStartPos=_valToPos.call(this,itemStart);itemLength=_valToPos.call(this,itemEnd)-itemStartPos;itemContext={start:points[i],end:points[i+1]};$create(scaleItemTemplate).append(_buildFromTemplate.call(itemContext,scaleData.template).addClass('timetable-itemContent')).css(vocab.pos,itemStartPos).css(vocab.length,itemLength).appendTo(scaleElm)}return scaleElm}function _drawScales(){var timetable=this._timetable,i=timetable._primaryScales.length,largestIndex;this._primaryScaleElms=[];this._secondaryScaleElms=[];while(i--){this._primaryScaleElms[i]=_createScale.call(this,timetable._primaryScales[i]).addClass("timetable-scalePrimary").appendTo(this._dragAreaElm)}i=timetable._secondaryScales.length;largestIndex=i-1;while(i--){this._secondaryScaleElms[largestIndex-i]=_createScale.call(this,timetable._secondaryScales[i]).addClass("timetable-scaleSecondary").appendTo(this._dragAreaElm)}}function _setStyle(selector,style){$create('<style type="text/css">'+selector+" { "+style+' } </style>').appendTo("head")}function _drawScrollbars(){var timetable=this._timetable,primary=timetable._primaryScrollbar,secondary=timetable._secondaryScrollbar;if(primary){this._scrollbar1Elm.css("display","block");this._scrollbar1=new TimetableScrollbar(this,this._scrollbar1Elm,primary)}this._scrollbar1Elm.css("display",primary?"block":"");if(secondary){this._scrollbar2Elm.css("display","block");this._scrollbar2=new TimetableScrollbar(this,this._scrollbar2Elm,secondary)}this._scrollbar2Elm.css("display",secondary?"block":"")}function _setDraggableSizes(){var timetable=this._timetable,vocab=getVocab.call(timetable),dragAreaSize,dragRangeSize;dragAreaSize=_valToPos.call(this,timetable.end);dragRangeSize=(dragAreaSize*2)-this._viewSize;this._dragAreaElm[vocab.length](dragAreaSize);this._dragRangeElm[vocab.length](dragRangeSize).css("margin-"+vocab.pos,-dragAreaSize+this._viewSize)}function _calculateScale(){var timetable=this._timetable,vocab=getVocab.call(timetable);this._viewSize=this._innerViewElm[vocab.length]();this.scale=(timetable._viewEnd-timetable._viewStart)/this._viewSize}function _initDraggable(){var timetable=this._timetable,vocab=getVocab.call(timetable),that=this;this._draggable=new glow.dragdrop.Draggable(this._dragAreaElm,{axis:vocab.dragAxis,container:this._dragRangeElm,placeholder:"none",onDrag:function(){that._cancelNextItemClick=false;that._clickStart=0;that._mouseMoveListener=$listen(document,"mousemove",_mouseMoveDuringTimetableDrag,that);_moveStart.call(that);_clearItemHiding.call(that)},onDrop:function(){_moveStop.call(that);_moved.call(that);that._mouseMoveListener&&glow.events.removeListener(that._mouseMoveListener)}})}function _hideOutOfView(){var timetable=this._timetable,tracks=timetable.tracks,numTracks=tracks.length,inCurrentView=this._inCurrentView,innerViewElm=this._innerViewElm,newView=null,viewRange=timetable.viewRange(),viewStart=viewRange.start,viewEnd=viewRange.end,id="",i=0,l=0;if(inCurrentView==null){innerViewElm.addClass("timetable-hideitems");this._inCurrentView=inCurrentView={}}for(id in inCurrentView){if(!inCurrentView[id].inRange(viewStart,viewEnd)){delete inCurrentView[id];$(id).css("display","")}}for(j=0;j<numTracks;j++){newView=tracks[j].itemsInRange(viewStart,viewEnd);for(i=0,l=newView.length;i<l;i++){id=newView[i].id;if(!inCurrentView[id]){inCurrentView[id]=newView[i];$("#"+id).css("display","block")}}}};function _clearItemHiding(){for(id in this._inCurrentView){$("#"+id).css("display","")}this._inCurrentView=null;this._innerViewElm.removeClass("timetable-hideitems")};function _createHiddenNavSelect(){var timetable=this._timetable,spec=timetable._primaryScales[0]||timetable._secondaryScales[0]||timetable._primaryScrollbar||timetable._secondaryScrollbar;if(spec){var points=spec.points,entries=[],len=points.length-1,itemContext,i=0,that=this,lastViewStart=timetable.end-timetable._viewWindowSize,startOption='<option value="'+timetable.start.valueOf()+'">'+this._locale.ACCESSIBILITY_MENU_START+'</option>',endOption='<option value="'+lastViewStart.valueOf()+'">'+this._locale.ACCESSIBILITY_MENU_END+'</option>';for(;i<len;i++){itemContext={start:points[i],end:points[i+1]};if((itemContext.start>=timetable.start)&&(itemContext.start<=lastViewStart)){entries[i]='<option value="'+points[i].valueOf()+'">'+_buildFromTemplate.call(itemContext,spec.template).text()+'</option>';if(itemContext.start.valueOf()==timetable.start.valueOf()){startOption=''}if(itemContext.start.valueOf()==lastViewStart.valueOf()){endOption=''}}};var select=this._accessibiltySelect=$dom.create('<select>'+startOption+entries.join('')+endOption+'</select>');$listen(select,"change",function(){that._timetable.currentPosition(select.val()*1);_hideOutOfView.call(that)});this._accessibiltyElm.append(select);_updateHiddenNavSelect.call(this)}}function _updateHiddenNavSelect(){if(this._accessibiltySelect){var currentPos=this.currentPosition(),selectOptions=this._accessibiltySelect[0].options,i=0,len=selectOptions.length,val=selectOptions[i].value*1,tmp;for(;i<len;i++){tmp=selectOptions[i].value*1;if(tmp<=(currentPos+this.scale))val=tmp}this._accessibiltySelect.val(val)}}View=function(timetable){var vocab=getVocab.call(timetable),that=this;this._cancelNextItemClick=false;this._posBeforeMove=timetable.currentPosition();this._timetable=timetable;this._headers={};this._footers={};this._inCurrentView=null;this._locale=$i18n.getLocaleModule("GLOW_WIDGETS_TIMETABLE");this.tracks={};this.items={};this.itemContent={};this.itemInstance={};this.element=$dom.create(containerTemplate,{interpolate:this._locale}).attr("id",timetable.id);this.element[0].className=timetable._opts.className;this.element.addClass(vocab.rootClass);this._headerElm=this.element.get("div.timetable-track-headers");this._footerElm=this.element.get("div.timetable-track-footers");this._accessibiltyElm=this.element.get("div.timetable-accessibility-navigation");this._stateElm=this.element.get("div.timetable-state");this._themeElm=this.element.get("div.timetable-theme");this._innerViewElm=this.element.get("div.timetable-innerView");this._dragRangeElm=this.element.get("div.timetable-dragRange");this._dragAreaElm=this.element.get("div.timetable-dragArea");this._scrollbar1Elm=this.element.get("div.timetable-scrollbar1");this._scrollbar2Elm=this.element.get("div.timetable-scrollbar2");this._themeElm.addClass("timetable-"+timetable._opts.theme);this._itemsHangingOffStart=new $dom.NodeList();this._itemContentHangingOffStart=new $dom.NodeList();$listen(this._dragAreaElm,"click",_dragAreaClicked,this)};View.prototype={draw:function(redraw){var timetable=this._timetable,vocab=getVocab.call(timetable),calculatedViewSize=timetable.size,tracks=timetable.tracks,len=tracks.length,startPosition,i=0;if(!this._drawn){this.element.appendTo(timetable._container.empty());_initDraggable.call(this)}if(redraw){startPosition=timetable.currentPosition();this.tracks={};this.items={};this.itemContent={};this.itemInstance={};this._dragAreaElm.empty();this._scrollbar1Elm.empty();this._scrollbar2Elm.empty();this._headerElm.empty();this._footerElm.empty();this._accessibiltyElm.empty();this._headers={};this._footers={}}if(redraw||!this._drawn){this._innerViewElm[vocab.length](calculatedViewSize);_calculateScale.call(this);_drawBanding.call(this);_drawScrollbars.call(this);_setDraggableSizes.call(this);_drawScales.call(this);_createHiddenNavSelect.call(this);_moveToPosition.call(this,startPosition||timetable._viewStart)}for(i=0;i<len;i++){_drawTrack.call(this,tracks[i])}_positionTracks.call(this);_adjustContentPosition.call(this);this._drawn=true;return this},currentPosition:function(val){var vocab=getVocab.call(this._timetable);if(val===undefined){return _posToVal.call(this,-parseInt(this._dragAreaElm[0].style[vocab.pos]))}else{_clearItemHiding.call(this);_moveToPosition.call(this,val);_moved.call(this);return this}},hide:function(){_hideOutOfView.call(this)},clear:function(){_clearItemHiding.call(this)}};var TimetableScrollbar;(function(){var scrollbarNum=0;function _scrollbarChange(){if(this._ignoreChange){return}_moveToPosition.call(this._timetable._view,(this._timetable._opts.vertical?-1:1)*this.slider.val());if(!this._isDraggingChange){_moved.call(this._timetable._view)}};function _scrollbarMoveStart(){_clearItemHiding.call(this._timetable._view);this._isDraggingChange=true;_moveStart.call(this._timetable._view)};function _scrollbarMoveStop(){this._isDraggingChange=false;_moveStop.call(this._timetable._view);_moved.call(this._timetable._view)};function _positionHighlight(){var timetable=this._timetable,vocab=getVocab.call(timetable),pos=parseInt(this._sliderHandle[0].style[vocab.pos]);if(this._timetable._opts.vertical){this._labelsHighlight[0].style.clip='rect('+pos+'px, auto, '+(pos+this._handleLength)+'px, auto)'}else{this._labelsHighlight[0].style.clip='rect(auto, '+(pos+this._handleLength)+'px, auto, '+pos+'px)'}};TimetableScrollbar=function(view,container,scaleData){var timetable=view._timetable,vocab=getVocab.call(timetable),i=0,points=scaleData.points,len=points.length-1,itemStart,itemStartPos,itemEnd,itemLength,itemContext,labels=$create('<div class="timetable-scrollbarLabels"></div>'),id=glow.UID+"scrollbar"+(scrollbarNum++),sliderTrack,viewSize=timetable._viewEnd-timetable._viewStart,timetableSize=timetable.end-timetable.start,min,max,val,viewStart=timetable.viewRange().start;this._timetable=timetable;_setStyle("#"+id+" .slider-handle",vocab.length+":"+(viewSize/timetableSize)*100+"%");if(timetable._opts.vertical){min=-timetable.end+viewSize;max=-timetable.start;val=-viewStart}else{min=timetable.start-0;max=timetable.end-viewSize;val=viewStart}this.slider=new glow.widgets.Slider(container,{min:min,max:max,vertical:timetable._opts.vertical,className:"timetable-scrollbar",id:id,val:val,size:view._innerViewElm[vocab.length](),step:0,changeOnDrag:true});sliderTrack=this.slider.element.get("div.slider-track");if(timetable._opts.vertical){sliderTrack.css(vocab.length,sliderTrack.get("div.slider-trackOn").css(vocab.length))}this.slider.element.get("div.slider-btn-bk, div.slider-btn-fwd").push(sliderTrack).css(vocab.breadth,scaleData.size);this.scale=(timetableSize)/sliderTrack[vocab.length]();for(;i<len;i++){itemStart=points[i].valueOf();itemEnd=points[i+1].valueOf();itemStartPos=_valToPos.call(this,itemStart);itemLength=_valToPos.call(this,itemEnd)-itemStartPos;itemContext={start:points[i],end:points[i+1]};$dom.create('<div class="timetable-scrollbarItem"></div>').append(_buildFromTemplate.call(itemContext,scaleData.template).addClass('timetable-itemContent')).css(vocab.pos,itemStartPos).css(vocab.length,itemLength).appendTo(labels)};this._labelsHighlight=labels.clone().addClass("timetable-scrollbarLabelsHighlight");$listen(this.slider,"change",_scrollbarChange,this);$listen(this.slider,"slideStart",_scrollbarMoveStart,this);$listen(this.slider,"slideStop",_scrollbarMoveStop,this);sliderTrack.prepend(labels).prepend(this._labelsHighlight);this._sliderHandle=this.slider.element.get("div.slider-handle");this._handleLength=this._sliderHandle[vocab.length]();_positionHighlight.call(this)};TimetableScrollbar.prototype={moveToPosition:function(val){this._ignoreChange=true;this.slider.val((this._timetable._opts.vertical?-1:1)*val);this._ignoreChange=false;_positionHighlight.call(this)}}})()})()}});/*@end@*/
