$.texyla.initPlugin(function(){this.openedWindows={};});$.texyla.addWindow=function(name,options){Texyla.prototype.windowConfigs[name]=options;if(options.dimensions){var defaults={};defaults[name+"WindowDimensions"]=options.dimensions;$.texyla.setDefaults(defaults);}
$.texyla.addButton(name,function(){this.openWindow(name);});};$.texyla.extend({windowConfigs:{},openWindow:function(name){if(typeof(jQuery.fn.dialog)!="function"){this.error("jQuery UI plugin Dialog is not loaded.");return false;}
if(!Texyla.prototype.windowConfigs[name]){this.error("Window "+name+" is not defined.");return false;}
if(this.isWindowOpened(name)){return this.getWindow(name).dialog("moveToTop");}
var config=Texyla.prototype.windowConfigs[name];var el=config.createContent.call(this);this.openedWindows[name]=el;var options=config.options||{};options.title=config.title?config.title:this.lng["win_"+name];var dimensions=this.options[name+"WindowDimensions"];if(dimensions){options.width=dimensions[0];options.height=dimensions[1];}
var _this=this;if(config.action){options.buttons={};options.buttons[this.lng.windowOk]=function(){config.action.call(_this,el);if(!config.stayOpened){_this.closeWindow(name);}};options.buttons[this.lng.windowCancel]=function(){_this.closeWindow(name);};}
options.close=function(){_this.closeWindow(name);};el.dialog(options);el.find("input:first").focus();return el;},closeWindow:function(name){this.openedWindows[name].dialog("destroy").remove();this.openedWindows[name]=null;},isWindowOpened:function(name){return this.openedWindows[name]?true:false;},getWindowAction:function(name){return Texyla.prototype.windowConfigs[name].action;},getWindow:function(name){return this.openedWindows[name]?this.openedWindows[name]:null;}});