var Modalizer=new Class({defaultModalStyle:{display:'block',position:'fixed',top:'0px',left:'0px','z-index':5000,'background-color':'#333',opacity:.8},setModalOptions:function(options){this.modalOptions=$merge({width:(window.getScrollWidth()+300)+'px',height:(window.getScrollHeight()+300)+'px',elementsToHide:'select',onModalHide:Class.empty,onModalShow:Class.empty,hideOnClick:true,modalStyle:{}},this.modalOptions,options||{})},setModalStyle:function(styleObject){this.modalOptions.modalStyle=styleObject;this.modalStyle=$merge(this.defaultModalStyle,{width:this.modalOptions.width,height:this.modalOptions.height},styleObject);if($('modalOverlay'))$('modalOverlay').setStyles(this.modalStyle);return(this.modalStyle)},modalShow:function(options){this.setModalOptions(options||{});var overlay=null;if($('modalOverlay'))overlay=$('modalOverlay');if(!overlay)overlay=new Element('div').setProperty('id','modalOverlay').injectInside(document.body);overlay.setStyles(this.setModalStyle(this.modalOptions.modalStyle));if(window.ie6)overlay.setStyle('position','absolute');$('modalOverlay').removeEvents('click').addEvent('click',function(){this.modalHide(this.modalOptions.hideOnClick)}.bind(this));this.modalOptions.onModalShow();this.togglePopThroughElements(0);overlay.setStyle('display','block');return this},modalHide:function(override){if(override===false)return;this.togglePopThroughElements(1);this.modalOptions.onModalHide();if($('modalOverlay'))$('modalOverlay').setStyle('display','none');return this},togglePopThroughElements:function(opacity){if((window.ie6||(window.gecko&&navigator.userAgent.test('mac','i')))){$$(this.modalOptions.elementsToHide).each(function(sel){sel.setStyle('opacity',opacity)})}}});var modalizer=Modalizer;var StickyWin=new Class({options:{onDisplay:Class.empty,onClose:Class.empty,closeClassName:'closeSticky',pinClassName:'pinSticky',content:'',zIndex:10000,className:'',edge:false,position:'center',offset:{x:0,y:0},relativeTo:document.body,width:false,height:false,timeout:-1,allowMultipleByClass:false,allowMultiple:true,showNow:true,useIframeShim:true,iframeShimSelector:''},css:'.SWclearfix:after {content: "."; display: block; height: 0; clear: both; visibility: hidden;}'+'.SWclearfix {display: inline-table;}'+'* html .SWclearfix {height: 1%;}'+'.SWclearfix {display: block;}',initialize:function(options){options.id=options.id||'StickyWin_'+new Date().getTime();this.setOptions(options);this.makeWindow();if(this.options.content)this.setContent(this.options.content);if(this.options.showNow)this.show();window.addEvent('domready',function(){try{if(!$('StickyWinClearfix')){var style=new Element('style').setProperty('id','StickyWinClearfix').injectInside($$('head')[0]);if(!style.setText.attempt(this.css,style))style.appendText(this.css)}}catch(e){dbug.log('error: %s',e)}}.bind(this))},makeWindow:function(){this.destroyOthers();if(!$(this.options.id)){this.win=new Element('div').setProperty('id',this.options.id).addClass(this.options.className).addClass('StickyWinInstance').addClass('SWclearfix').setStyles({'display':'none','position':'absolute','zIndex':this.options.zIndex}).injectInside(document.body)}else this.win=$(this.options.id);if(this.options.width&&$type(this.options.width.toInt())=="number")this.win.setStyle('width',this.options.width.toInt()+'px');if(this.options.height&&$type(this.options.height.toInt())=="number")this.win.setStyle('height',this.options.height.toInt()+'px');return this},show:function(){this.fireEvent('onDisplay');if(!this.positioned)this.position();this.showWin();if(this.options.useIframeShim)this.showIframeShim();this.visible=true;return this},showWin:function(){this.win.setStyle('display','block')},hide:function(){this.fireEvent('onClose');this.hideWin();if(this.options.useIframeShim)this.hideIframeShim();this.visible=false;return this},hideWin:function(){this.win.setStyle('display','none')},destroyOthers:function(){if(!this.options.allowMultipleByClass||!this.options.allowMultiple){$$('div.StickyWinInstance').each(function(sw){if(!this.options.allowMultiple||(!this.options.allowMultipleByClass&&sw.hasClass(this.options.className)))sw.remove()},this)}},setContent:function(html){if(this.win.getChildren().length>0)this.win.empty();if($type(html)=="string")this.win.setHTML(html);else if($(html))this.win.adopt(html);this.win.getElements('.'+this.options.closeClassName).each(function(el){el.addEvent('click',this.hide.bind(this))},this);this.win.getElements('.'+this.options.pinClassName).each(function(el){el.addEvent('click',this.togglepin.bind(this))},this);return this},position:function(){this.positioned=true;this.win.setPosition({relativeTo:this.options.relativeTo,position:this.options.position,offset:this.options.offset,edge:this.options.edge});if(this.shim)this.shim.position();return this},pin:function(pin){if(!this.win.pin){dbug.log('you must include element.pin.js!');return false}this.pinned=$pick(pin,true);return this.win.pin(pin)},unpin:function(){this.pin(false)},togglepin:function(){this.pin(!this.pinned)},makeIframeShim:function(){if(!this.shim){this.shim=new IframeShim({element:(this.options.iframeShimSelector)?this.win.getElement(this.options.iframeShimSelector):$('StickyWinOverlay')||this.win,display:false,name:'StickyWinShim'})}},showIframeShim:function(){if(this.options.useIframeShim){this.makeIframeShim();this.shim.show()}},hideIframeShim:function(){if(this.options.useIframeShim)this.shim.hide()},destroy:function(){this.win.remove();if(this.options.useIframeShim)this.shim.remove();if($('StickyWinOverlay'))$('StickyWinOverlay').remove()}});StickyWin.implement(new Options);StickyWin.implement(new Events);var stickyWin=StickyWin;var StickyWinFx=StickyWin.extend({options:{fade:true,fadeDuration:150,fadeTransition:Fx.Transitions.sineInOut,draggable:false,dragOptions:{},dragHandleSelector:'h1.caption',resizable:false,resizeOptions:{},resizeHandleSelector:''},setContent:function(html){this.parent(html);if(this.options.draggable)this.makeDraggable();if(this.options.resizable)this.makeResizable();return this},hideWin:function(){if(this.options.fade)this.fade(1,0);else this.win.hide()},showWin:function(){if(this.options.fade){this.fade(0,1)}else this.win.show()},fade:function(from,to){if(!this.fadeFx){this.win.setStyles({opacity:'0',display:'block'});this.fadeFx=this.win.effect('opacity',{duration:this.options.fadeDuration,transition:this.options.fadeTransition})}if(to>0)this.win.setStyle('display','block');this.fadeFx.custom(from,to).chain(function(){if(to==0)this.win.setStyle('display','none')}.bind(this));return this},makeDraggable:function(){dbug.log('you must include Drag.js, cannot make draggable')},makeResizable:function(){dbug.log('you must include Drag.js, cannot make resizable')}});var modalWinBase={initialize:function(options){options=options||{};this.setModalOptions($merge(options.modalOptions||{},{onModalHide:function(){this.hide(false)}.bind(this)}));this.parent(options)},show:function(showModal){if($pick(showModal,true))this.modalShow();this.parent()},hide:function(hideModal){if($pick(hideModal,true))this.modalHide();this.parent()}};var StickyWinModal=StickyWin.extend(modalWinBase);StickyWinModal.implement(new Modalizer);var StickyWinFxModal=(typeof StickyWinFx!="undefined")?StickyWinFx.extend(modalWinBase):Class.empty;try{StickyWinFxModal.implement(new Modalizer())}catch(e){}
