var jqWindowsEngineZIndex=100,jqWindowsEngineModalZIndex=1E4;
jQuery.extend({newWindow:function(a){var c=0,e=0,a=$.extend({id:"",title:"",width:300,height:200,posx:50,posy:50,content:"",onDragBegin:null,onDragEnd:null,onResizeBegin:null,onResizeEnd:null,onChangeDimensions:function(){},onAjaxContentLoaded:null,onWindowClose:null,onWindowShow:null,statusBar:!0,minimizeButton:!0,maximizeButton:!0,closeButton:!0,draggable:!0,resizeable:!0,type:"normal",modal:!1},a);a.modal&&jqWindowsEngineModalZIndex++;var h="";""!=a.id&&(h='id="'+a.id+'"');var d="";""!=a.id&&(d=
'id="'+a.id+'_modal"');var f=$("<div "+d+' class="modal-background"></div>');f.css("z-index",jqWindowsEngineModalZIndex);$windowContainer=$("<div "+h+' class="window-container"></div>');$titleBar=$('<div class="window-titleBar"></div>');$titleBar.append('<div class="window-titleBar-leftCorner"></div>');$titleBarContent=$('<div class="window-titleBar-content">'+a.title+"</div>");$titleBar.append($titleBarContent);$titleBar.append('<div class="window-titleBar-rightCorner"></div>');$windowMinimizeButton=
$('<div class="window-minimizeButton"></div>');$windowMaximizeButton=$('<div class="window-maximizeButton"></div>');var g=$('<div class="window-closeButton"></div>');$windowContent=$('<div class="window-content"></div>');$windowStatusBar=$('<div class="window-statusBar"></div>');$windowResizeIcon=$('<div class="window-resizeIcon"></div>');a.minimizeButton&&$titleBar.append($windowMinimizeButton);a.maximizeButton&&$titleBar.append($windowMaximizeButton);a.closeButton&&$titleBar.append(g);a.resizeable&&
$windowStatusBar.append($windowResizeIcon);$windowContainer.append($titleBar);$windowContent.append(a.content);$windowContainer.append($windowContent);a.statusBar&&$windowContainer.append($windowStatusBar);"iframe"===a.type&&$windowContent.css("overflow","hidden");var i=function(){document.onselectstart=function(){return!1}},j=function(b){a.modal?b.css("z-index",jqWindowsEngineModalZIndex+1):b.css("z-index",jqWindowsEngineZIndex++)},l=function(b,c,k){c=parseInt(c);k=parseInt(k);b.data("lastWidth",
c).data("lastHeight",k);b.css("width",c+"px").css("height",k+"px");if("iframe"===a.type){var e=3,d=2;$.browser.msie&&9>$.browser.version&&(e=d=0);b.find("iframe").css("width",c-e+"px").css("height",k-d+"px");b.find("iframe").each(function(){$("#jquery-window-engine-iframe-cover").css({top:$(this).offset().top,left:$(this).offset().left,width:this.offsetWidth,height:this.offsetHeight,position:"absolute",opacity:"0.0001",zIndex:1E4,background:"#444"})})}},m=function(b,c,e){c=parseInt(c);e=parseInt(e);
b.data("lastX",c).data("lastY",e);b.css("left",c+"px").css("top",e+"px");"iframe"===a.type&&b.find("iframe").each(function(){$("#jquery-window-engine-iframe-cover").css({top:$(this).offset().top,left:$(this).offset().left,width:this.offsetWidth,height:this.offsetHeight,position:"absolute",opacity:"0.0001",zIndex:1E4,background:"#444"})})};$titleBarContent.bind("mousedown",function(b){$obj=$(b.target).parent().parent();j($obj);i();if("maximized"!=$obj.data("state")){if("iframe"===a.type){var d=$('<div id="jquery-window-engine-iframe-cover" ></div>');
$obj.find("iframe").each(function(){d.css({top:$(this).offset().top,left:$(this).offset().left,width:this.offsetWidth,height:this.offsetHeight,position:"absolute",opacity:"0.0001",zIndex:1E4,background:"#444"});$("body").append(d)})}b=b?b:window.event;c=b.clientX;e=b.clientY;$(document).bind("mousemove",function(b){var d=$obj;if(a.draggable){var b=b?b:window.event,f=parseInt(d.css("left"))+(b.clientX-c),g=parseInt(d.css("top"))+(b.clientY-e);c=b.clientX;e=b.clientY;m(d,f,g)}});$(document).bind("mouseup",
function(){"iframe"===a.type&&$("#jquery-window-engine-iframe-cover").remove();if(null!=a.onDragEnd)a.onDragEnd();$(document).unbind("mousemove");$(document).unbind("mouseup");document.onselectstart=null});if(null!=a.onDragBegin)a.onDragBegin()}else"iframe"===a.type&&$("#jquery-window-engine-iframe-cover").remove();return!1});$titleBarContent.dblclick(function(a){$obj=$(a.target).parent().parent();$obj.find(".window-maximizeButton").click()});$windowResizeIcon.bind("mousedown",function(b){$obj=$(b.target).parent().parent();
j($obj);i();if("normal"===$obj.data("state")){if("iframe"===a.type){var d=$('<div id="jquery-window-engine-iframe-cover" ></div>');$obj.find("iframe").each(function(){d.css({top:$(this).offset().top,left:$(this).offset().left,width:this.offsetWidth,height:this.offsetHeight,position:"absolute",opacity:"0.0001",zIndex:1E4,background:"#444"});$("body").append(d)})}b=b?b:window.event;c=b.clientX;e=b.clientY;$(document).bind("mousemove",function(a){var b=$obj,a=a?a:window.event,d=parseInt(b.css("width")),
f=parseInt(b.css("height")),d=(100>d?100:d)+(a.clientX-c),f=(50>f?50:f)+(a.clientY-e);c=a.clientX;e=a.clientY;l(b,d,f)});$(document).bind("mouseup",function(){"iframe"===a.type&&$("#jquery-window-engine-iframe-cover").remove();if(null!=a.onResizeEnd)a.onResizeEnd();$(document).unbind("mousemove");$(document).unbind("mouseup");document.onselectstart=null});if(null!=a.onResizeBegin)a.onResizeBegin()}return!1});$windowMinimizeButton.bind("click",function(b){$obj=$(b.target).parent().parent();j($obj);
"minimized"===$obj.data("state")?($obj.data("state","normal"),$obj.css("height",$obj.data("lastHeight")),$obj.find(".window-content").slideToggle("fast",a.onChangeDimensions),$obj.removeClass("maximized")):"normal"===$obj.data("state")?($obj.data("state","minimized"),$obj.removeClass("maximized"),$obj.find(".window-content").slideToggle("fast",function(){$obj.css("height",0)})):$obj.find(".window-maximizeButton").click()});$windowMinimizeButton.bind("mouseover",function(){$(this).addClass("window-minimizeButton-hover")});
$windowMinimizeButton.bind("mouseout",function(){$(this).removeClass("window-minimizeButton-hover")});$windowMaximizeButton.bind("click",function(b){$obj=$(b.target).parent().parent();j($obj);var b=3,c=2;$.browser.msie&&9>$.browser.version&&(b=c=0);"minimized"===$obj.data("state")?$obj.find(".window-minimizeButton").click():"normal"===$obj.data("state")?($obj.animate({top:"5px",left:"5px",width:$(window).width()-15,height:$(window).height()-55},"fast",a.onChangeDimensions),"iframe"===a.type&&$obj.find("iframe").animate({top:"5px",
left:"5px",width:$(window).width()-15-b,height:$(window).height()-55-c},"fast",a.onChangeDimensions),$obj.data("state","maximized"),$obj.addClass("maximized")):"maximized"===$obj.data("state")&&($obj.animate({top:$obj.data("lastY"),left:$obj.data("lastX"),width:$obj.data("lastWidth"),height:$obj.data("lastHeight")},"fast",a.onChangeDimensions),"iframe"===a.type&&$obj.find("iframe").animate({top:$obj.data("lastY"),left:$obj.data("lastX"),width:parseInt($obj.data("lastWidth")-b),height:parseInt($obj.data("lastHeight")-
c)},"fast",a.onChangeDimensions),$obj.data("state","normal"),$obj.removeClass("maximized"))});$windowMaximizeButton.bind("mouseover",function(){$(this).addClass("window-maximizeButton-hover")});$windowMaximizeButton.bind("mouseout",function(){$(this).removeClass("window-maximizeButton-hover")});g.bind("click",function(b){var c=$(b.target).parent().parent();c.fadeOut(function(){c.remove()});if(null!=a.onWindowClose)a.onWindowClose();a.modal&&(f.remove(),a.id&&$("#"+a.id+"_modal").remove())});g.bind("mouseover",
function(){$(this).addClass("window-closeButton-hover")});g.bind("mouseout",function(){$(this).removeClass("window-closeButton-hover")});f.bind("click",function(){g.click()});$windowContent.click(function(a){j($(a.target).parent())});$windowStatusBar.click(function(a){j($(a.target).parent())});$windowContainer.data("state","normal");$windowContainer.css("display","none");$("body").append($windowContainer);a.modal&&$("body").append(f);$window=$windowContainer;a.draggable||$window.children(".window-titleBar").css("cursor",
"default");j($window);m($windowContainer,a.posx,a.posy);l($windowContainer,a.width,a.height);a.onWindowShow?$window.fadeIn(100,a.onWindowShow):$window.fadeIn(100)},updateWindowContent:function(a,c){$("#"+a+" .window-content").html(c)},updateWindowContentWithAjax:function(a,c,e){$.ajax({url:c,cache:void 0===e?!0:!1,dataType:"html",success:function(c){$("#"+a+" .window-content").html(c)}})},fitToContentInternal:function(a,c,e,h,d){if(c||e){var f=$("#"+a+" .window-content"),g=f.width(),i=f.height();
if((f=f.children())&&0<f.length){c&&(g=f[0].offsetWidth+2);if(e)i=f[0].offsetHeight;$obj=$("#"+a);g=parseInt(g);i=parseInt(i);h&&$("#"+a).data("lastWidth",g).data("lastHeight",i);!jphloc.isNull(d)&&d&&(a=(d.width-g)/2,d=(d.height-i)/2,$obj.css("left",$obj.offset().left+a+"px"),$obj.css("top",$obj.offset().top+d+"px"));$obj.css("width",g+"px").css("height",i+"px")}}},fitToContent:function(a,c,e,h){var d=null;if(h)d={},h=$("#"+a+" .window-content"),d.width=h.width(),d.height=h.height();$.fitToContentInternal(a,
1E3,1E3,!1,!1,null);$.fitToContentInternal(a,c,e,!0,d)},moveWindow:function(a,c,e){$obj=$("#"+a);c=parseInt(c);e=parseInt(e);$obj.data("lastX",c).data("lastY",e);$obj.css("left",c+"px").css("top",e+"px")},resizeWindow:function(a,c,e){$obj=$("#"+a);c=parseInt(c);e=parseInt(e);$obj.data("lastWidth",c).data("lastHeight",e);$obj.css("width",c+"px").css("height",e+"px")},minimizeWindow:function(a){$("#"+a+" .window-minimizeButton").click()},maximizeWindow:function(a){$("#"+a+" .window-maximizeButton").click()},
showWindow:function(a){$("#"+a+" .window-closeButton").fadeIn()},hideWindow:function(a){$("#"+a+" .window-closeButton").fadeOut()},closeWindow:function(a){$("#"+a+" .window-closeButton").click()},closeAllWindows:function(){$(".window-container .window-closeButton").click()}});

