/*-----------------------------------------------
    kui.window - Core Window Extension Library
    Author: (Ran Baron 12/2009)
    Copyright (c) 2009 Flying Baron.
  -----------------------------------------------*/
  
kui.win=null;kui.openWin=function(b){if(b&&b.update){kui.win.update=b.update}var a=new top.kui.window(Object.extend({theme:b.theme||"hBox",title:b.title||"",src:b.src||((b.srcObj)?b.srcObj:null)||null},b||{}))};kui.overlay=function(){var a=new kui.window({overlayOnly:true,shaded:false,close:false})};kui.resizeOverlay=function(){var b=kui.win.viewport.getHeight(),a=kui.win.container.getHeight();b=(b>a)?b:a;$$("div.overlay").invoke("setStyle","height:"+b+"px;width:100%");if(kui.win.active()){(function(){kui.win.active().setCenter().resize()}).defer()}};kui.inBounds=function(a){if(a.width){var c=top.document.viewport.getDimensions(),b=790;a.width=(a.width)?(Number(a.width)>(c.width-60))?c.width-60:Number(a.width):b;if(a.height){a.height=(Number(a.height)>(c.height-60))?(c.height-60):Number(a.height)}}return a};kui.windowManager=Class.create({options:{container:null,zIndex:500000},initialize:function(a){this.options=Object.extend(this.options,a||{});this.container=$(this.options.container||document.body);if(this.container===$(document.body)){this.viewport=top.document.viewport;this.scrollContainer=window}else{this.viewport=this.scrollContainer=this.container}this.stack=new kui.windowManager.Stack()},active:function(){return kui.win.stack.windows.last()||false},parent:function(){return(kui.win.active())?kui.win.active().options.caller:window},destroy:function(){this.windows().invoke("destroy");this.stack.destroy()},update:function(){},register:function(a){this.stack.add(a);this.options.zIndex++},unregister:function(a){this.stack.remove(a);this.options.zIndex--}});kui.windowManager.Stack=Class.create(Enumerable,{initialize:function(){this.windows=[]},add:function(b,a){this.windows.splice(a||this.windows.length,0,b)},remove:function(a){this.windows=this.windows.without(a)}});kui.window=Class.create({options:{},initialize:function(b){var d={windowManager:null,ajax:null,id:null,top:0,left:0,width:790,height:450,shadow:false,overlay:null,shaded:true,close:true,closeBtn:false,zIndex:null,theme:"hBox",caller:window};this.options=Object.extend(d,b||{});this.options.o_height=this.options.height;this.options.o_width=(this.options.width+14);this.handlers=(b.callback)?b.callback:{};if(this.options.srcObj){this.options.src=$(this.options.srcObj).readAttribute("href")}if(this.options.timer){this.setTimer(this.options.timer)}this.windowManager=kui.win;this.windowManager.register(this);this.options.zIndex=this.windowManager.options.zIndex;if(!this.options.maximize){this.createOverlay()}else{var a=top.document.viewport.getDimensions();this.options.width=a.width;this.options.height=a.height;this.options.shaded=false;this.options.theme="hMax"}if(this.options.overlayOnly){return}this.create();this.id=this.element.id;if(navigator.userAgent.indexOf("Mac")!=-1){var c=$$("div.flashModule").each(function(e){e.setStyle({visibility:"hidden"})})}this.render()},callback:function(b,a){if(this.handlers[b]){this.handlers[b](a||{})}},overlayClicked:function(){if(this.options.overconfirm){if(!confirm("Are you sure you wish to close this window?")){return}}if(this.options.overfunction){this.options.overfunction()}this.callback("overlay:onClick",null);this.close()},createOverlay:function(){var a=kui.win.viewport.getDimensions();var b=kui.win.container.getDimensions();a.height=(a.height>b.height)?a.height:b.height;a.width=(a.width>b.width)?a.width:b.width;this.overlay=this.createDiv("overlay",{style:"height:"+a.height+"px;width:"+a.width+"px;z-index:"+this.options.zIndex});if(!this.options.shaded){$(this.overlay).addClassName("clear")}this.overlay.identify();if(this.options.close){this.overlay.observe("click",this.overlayClicked.bind(this)).observe("mousewheel",function(c){Event.stop(c)},false).observe("DOMMouseScroll",function(c){Event.stop(c)},false)}else{this.overlay.setStyle({cursor:"default"})}this.addElements(this.overlay);Event.observe(window,"resize",kui.resizeOverlay,false);this.stopScroll(true)},stopScroll:function(a){if(a){Event.observe(window,"DOMMouseScroll",function(b){Event.stop(b)})}else{Event.stopObserving(window,"DOMMouseScroll")}},render:function(){this.addElements(this.element);this.setBounds(this.options);this.visible=true;if(this.options.onload){this.options.onload()}this.callback("window:load",null)},setTimer:function(b){var a=(!b)?2800:b;if(a!==""){this.options.timeoutObj=window.setTimeout(function(){if(this&&this.visible){if(this.options.timeoutObj){window.clearTimeout(this.options.timeoutObj)}this.close()}}.bind(this),a)}},close:function(b,a){if(b){b.stop()}if((a&&a.confirm)||this.options.confirm){if(!confirm("Are you sure you wish to close this window?")){return}}this.hide();if(this.overlay){this.stopScroll(false);this.overlay.remove()}if(navigator.userAgent.indexOf("Mac")!=-1){var c=$$("div.flashModule").each(function(d){$(d).setStyle({visibility:"visible"})})}this.windowManager.unregister(this);if((a&&a.reload)||this.options.reload===true){klGeneric.pageRefresh()}if((a&&a.onclose)||this.options.onclose){this.options.onclose()}this.callback("window:close",a||{})},setCenter:function(b){var c=this.element.getScrollDimensions();viewport=this.windowManager.viewport;viewportArea=viewport.getDimensions();this.options.top=(viewportArea.height-c.height)/2;this.options.left=(viewportArea.width-c.width)/2;var a=((this.options.maximize)?0:(this.options.top>0)?this.options.top:5);var d=((this.options.left>0)?this.options.left:(this.options.maximize)?0:5);if(Prototype.Browser.IE6){this.element.setStyle({position:"absolute"});scrollDims=document.viewport.getScrollOffset();a=a+scrollDims[1]}this.element.setStyle({top:a+"px",left:d+"px"});return this},resize:function(){this.validateBounds(this.options);if(this.options.height!=this.options.o_height){this.options.height=this.options.o_height}if(this.options.width!=this.options.o_width){this.options.width=this.options.o_width}if(this.content.getWidth()>this.options.o_width){this.options.width=this.options.o_width}this.setBounds(this.options);var a=this.content.down("iframe");if(a){a.writeAttribute("height","100%")}},setBounds:function(a){this.validateBounds(a);if(a.height){$(this.content).setStyle({height:a.height+"px"})}if(a.width){$(this.element).setStyle({width:a.width+"px"})}this.setCenter()},validateBounds:function(a){if(!a.maximize){var d=top.document.viewport.getDimensions(),c,b;this.options.width=(a.width)?(Number(a.width)>(d.width-60))?(d.width-60):Number(a.width)+12:790;if(a.height){this.options.height=(Number(a.height)>(d.height-60))?(d.height-60):Number(a.height)}}},create:function(){this.element=new Element("div",{className:"kWin "+this.options.theme,id:this.options.id,style:"top:-10000px;left:-10000px;z-index:"+(this.options.zIndex+1)});this.validateBounds(this.options);this.wrapperHead=new Element("div",{className:"kwinTL"}).insert(new Element("div",{className:"kwinTR"}));this.wrapperCnt=new Element("div",{className:"kwinCnt"});this.wrapperFoot=new Element("div",{className:"kwinBL"}).insert(new Element("div",{className:"kwinBR"}));var c=this.options.title||" ";this.header=new Element("div",{className:"titlebar"}).update(unescape(c));if(this.options.close&&!this.options.closeBtn){this.header.insert(new Element("a",{className:"close",href:"#"}).observe("click",this.close.bind(this)))}this.content=new Element("div",{className:"content"});if(this.options.src){var d=new Element("iframe",{style:"",src:this.options.src,frameborder:0,frameBorder:0,marginwidth:0,marginheight:0,scrolling:"auto",width:"100%",height:this.options.height+"px"});d.identify();this.content.insert(d)}if(this.options.img){var b=new Element("img",{className:"pointer",src:this.options.img,border:0,alt:"",width:this.options.imgw||null,height:this.options.imgh||null,title:(unescape(this.options.imgtitle)||"")}).observe("click",this.close.bind(this));this.content.insert(b);if(this.options.imgw){this.options.width=this.options.imgw}if(this.options.imgh){this.options.height=this.options.imgh}}if(this.options.html){this.content.insert(this.options.html)}else{if(this.options.content){this.content.appendText(this.options.content||" ")}}if(this.options.ajax){var a=new Ajax.Updater(this.content,this.options.ajax,{evalScripts:true,method:"get"})}if(this.options.style){this.content.setStyle(this.options.style)}this.element.insert(this.wrapperHead).insert(this.wrapperCnt.insert(this.header).insert(this.content)).insert(this.wrapperFoot).identify()},hide:function(){if(!this.visible){return this}this.element.hide();var a=new PeriodicalExecuter(function(b){if(this.element.visible()){return}this.visible=false;this.element.remove();b.stop()}.bind(this),0.1);return this},addElements:function(a){this.windowManager.container.insert({bottom:a})},createDiv:function(b,a){return new Element("div",Object.extend({"class":b},a))},observe:function(a,c,b){this.handlers[a]=c},fire:function(b,a){a=a||{};a.window=this;return this.element.fire("window:"+b,a)}});kui.popup=Class.create({options:{},initialize:function(b){var e={caller:window,width:790,height:590};this.options=Object.extend(e,b||{});var a=this.options;var h=(a.srcObj)?a.srcObj.readAttribute("href")||"":"";if(!h.empty()){winDims={width:screen.availWidth,height:screen.availHeight};kWidth=(a.width)?(Number(a.width)>(winDims.width-60))?(winDims.width-60):Number(a.width):790;kHeight=(a.height)?(Number(a.height)>(winDims.height-60))?(winDims.height-60):Number(a.height):590;a.options.width=kWidth;a.options.height=kHeight;var d=(a.options)?Object.toQueryString(a.options).gsub("&",","):"";var g=0,f=0;if(kWidth&&kHeight){if(kWidth<winDims.width){g=Math.floor((winDims.width-Number(kWidth))/2,0)}if(kHeight<winDims.height){f=Math.floor((winDims.height-Number(kHeight))/2,0)}if(!d.empty()){d+=",left="+g+",top="+f}}var c=window.open(h,"portalWin",d);if(!c){alert("Popup Blocker encountered, Please try again!")}else{c.focus()}}}});kui.Popup=kui.popup;document.observe("dom:loaded",function(){kui.win=(top!=window)?top.kui.win:new kui.windowManager();if(top!=window){}if(top!=window&&kui.keys){kui.keys.register(27,function(){if(confirm("Are you sure you wish to close this window?")){kui.cancel()}},false,false,false)}});
