/*
 * libura V2.0R1.0
 * http://www.desknets.com/
 * Copyright (C)2010 NEOJAPAN,Inc. All Rights Reserved.
 * 本製品は日本国著作権法および国際条約により保護されています。 
 * 本製品の全部または一部を無断で複製したり、無断で複製物を頒 
 * 布すると著作権の侵害となりますのでご注意ください。 
 */
(function(b){if(typeof b!="function"){throw new Error("NeoDialog : jQuery is required.")}if(typeof b.fn.dialog!="function"){throw new Error("NeoDialog : jQuery UI Dialog is required.")}if(!window.neo||!neo.core){throw new Error("NeoDialog : neocore is required.")}if(!neo.core.readyNamespace("neo.jQuery.fn.neoDialog")){return}var a=neo.jQuery.fn.neoDialog=new neo.core.Class({classProperties:{CLS_CONTAINER:"neo-dialog-container",CLS_SKIN_CONTENT:"neo-dialog-skin-content",showcase:null,defaults:{buttons:"auto",closeOnSubmit:true,height:"auto",minHeight:0,modal:true,reload:false,resizable:false,buttonType:"auto",width:"auto",open:undefined,close:undefined,beforeclose:undefined},initialize:function(){this.showcase=new neo.core.Showcase();this.defaults=b.extend({},b.ui.dialog.defaults,this.defaults)},getSelectorHindrance:function(){var c="applet, embed, object, iframe";if(b.browser.msie&&b.browser.version<7){c+=", select"}return c}},properties:{options:null,param:null,param2:null,_ajaxLoad:null,_ajaxSubmit:null,_isForm:function(){return this._flgForm},_setFlgForm:function(c){return this._flgForm=c},_flgForm:null,_isLoaded:function(){return this._flgLoaded},_setFlgLoaded:function(c){return this._flgLoaded=c},_flgLoaded:null,_needRestore:null,_isNeedRestore:function(){return this._needRestore},_setNeedRestore:function(c){return this._needRestore=c},_initElSelf:function(c){this._setElSelfOrg(c);var d=c;if(!d.hasClass(a.CLS_CONTAINER)){d=b("<div />").addClass(a.CLS_CONTAINER).append(d)}return this._elSelf=d},_getElSelf:function(){return this._elSelf},_elSelf:null,_getElSelfOrg:function(){return this._elSelfOrg},_setElSelfOrg:function(c){return this._elSelfOrg=c},_elSelfOrg:null,_getElDialog:function(){if(!this._elDialog){return this._build()}return this._elDialog},_setElDialog:function(c){return this._elDialog=c},_elDialog:null,_initElSkin:function(){var c=this.options.elSkin;if(typeof c=="string"){c=b(c).clone()}return this._elSkin=c},_getElSkin:function(){return this._elSkin||this._initElSkin()},_elSkin:null,_getElHindrance:function(){return this._elHindrance},_setElHindrance:function(c){return this._elHindrance=c},_elHindrance:null,_getElContentOrg:function(){return this._elContentOrg},_setElContentOrg:function(c){return this._elContentOrg=c},_elContentOrg:null,__constructor:function(f,c,e,d){this._registerToShowcase(f);this._initElSelf(f);this._initOptions(c);this.param=e;this.param2=d;this._setFlgForm(false);this._setFlgLoaded(false);this._setNeedRestore(true);this._initElSkin()},_registerToShowcase:function(c){a.showcase.set(c,this)},_initOptions:function(c){this.options=this._getCompositedOptions(c);this._initOptionEvent();this._initOptionButtonType();this._initOptionTitle();this._initOptionWidth()},_getCompositedOptions:function(c){return b.extend({},a.defaults,c)},_initOptionEvent:function(){this.onopenPref=this.options.open;this.onclosePref=this.options.close;this.options.open=this.__closure(this.ondialogopen);this.options.close=this.__closure(this.ondialogclose);this.options.beforeclose=this.__closure(this.ondialogbeforeclose)},_initOptionButtonType:function(){if(this.options.buttonType!="auto"){return}var c=this._getElSelf();if(c.children("form").length==1){this.options.buttonType="submit"}else{this.options.buttonType="info"}},_initOptionTitle:function(){if(this.options.title){return}var c=this._getElSelfOrg();var d=c.attr("title");c.removeAttr("title");this.options.title=d},_initOptionWidth:function(){if(this.options.width!="auto"){return}var c=this._getElSelfOrg();var d=b("<div />").insertAfter(c);c.css({position:"absolute",top:-9999}).appendTo("body");var e=c.width();this.options.width=e;c.css({position:"",top:""}).insertBefore(d);d.remove()},initialize:function(){this._initForForm();if(this.options.autoOpen){this._build()}var c=this._getElSelf();return c},_initForForm:function(){if(this.options.autoForm===false){this._setFlgForm(false);return}var d=this._getElSelf();var c=d.children("form");if(c.length!=1){this._setFlgForm(false);return}this._setFlgForm(true);c.submit(this.__closure(this.onsubmit));neo.Ajax.setConfirm(c,false)},_build:function(){var c=this._getElSelf();var d=this._getElSkin();if(d){var e;if(d.hasClass(a.CLS_SKIN_CONTENT)){e=d}else{e=d.find("."+a.CLS_SKIN_CONTENT);if(e.length<1){throw new Error('NeoDialog._build() : elSkin has no container. An element with class "'+a.CLS_SKIN_CONTENT+'" is required.')}}e.append(c);c=d}this._setElDialog(c);this._initButtons();var f=this.options.autoOpen;this.options.autoOpen=false;c.dialog(this.options);if(f){this.open()}return c},_initButtons:function(){if(this.options.buttons=="auto"){this.options.buttons={};if(this.options.buttonType=="info"){this.options.buttons.OK=this.__closure(this.close)}if(this.options.buttonType=="submit"){this.options.buttons.Cancel=this.__closure(this.cancel);this.options.buttons.OK=this.__closure(this.submit)}}else{this._bindButtonActions(this.options.buttons)}},_bindButtonActions:function(d){if(!d){return}var c=this;b.each(d,function(e,h){if(typeof h=="string"){var g=function(f){c.call(h)};d[e]=g}})},_hideHindrances:function(){var d=this._getElDialog();var c=a.getSelectorHindrance();var e=d.find(c);var g="tmp_"+(new Date().getTime());e.addClass(g);var f=b(b.grep(b(c),function(i){var h=b(i);return(!h.hasClass(g)&&h.css("visibility")!="hidden")}));f.css({visibility:"hidden"});this._setElHindrance(f);e.removeClass(g)},_showHindrances:function(){var c=this._getElHindrance();c.css({visibility:"visible"})},load:function(c){if(c==null){c=true}this._setNeedRestore(c);if(c){this._restore();this.reopen()}var d=this._getAjaxLoad();d.sendRequest()},_restore:function(){var d=this._getElContentOrg();if(!d){return}var c=this._getElSelf();c.empty().append(d)},_getAjaxLoad:function(){if(!this._ajaxLoad){var c=this._getAjaxOptionsLoad();this._ajaxLoad=new neo.Ajax(c)}return this._ajaxLoad},_getAjaxOptionsLoad:function(){var c={url:this.options.url,useDefaultXml:false,getSendData:this.__closure(this.getSendDataLoad),onAjaxSuccess:this.__closure(this.onsuccessLoad),beforeShowError:this.options.beforeShowErrorLoad};return c},getSendDataLoad:function(){var e=this._getParamLoad();var d=this.options.onreadydataLoad;if(typeof d=="function"){var c=this._getElDialog();e=d.apply(c[0],[e])}return e},_getParamLoad:function(){var c={url:this.options.url};return c},reload:function(c){return this.load(c)},open:function(){if(this._isForm()){this._reset()}this.openLow();if(this.options.url&&(!this._isLoaded()||this.options.reload)){this.load()}},openLow:function(){this._callSuper("open")},_reset:function(){var d=this._getElSelf();var c=d.find("form");c[0].reset()},submit:function(){if(typeof this.options.onsubmit=="function"){var c=this._getElSelfOrg();var d=this.options.onsubmit.apply(c[0],[]);if(d===false){return}}var e=this._getAjaxSubmit();e.sendRequest();if(this.options.closeOnSubmit){this.close()}},_getAjaxSubmit:function(){if(!this._ajaxSubmit){var c=this._getAjaxOptionsSubmit();this._ajaxSubmit=new neo.Ajax(c)}this._ajaxSubmit.options.url=this._getSubmitTo();return this._ajaxSubmit},_getAjaxOptionsSubmit:function(){var c=this;var d=b.extend({},a.ajaxDefaults,{getSendData:this.__closure(this.getSendDataSubmit),onAjaxSuccess:this.__closure(this.onsuccessSubmit),beforeShowError:this.options.beforeShowErrorSubmit,afterShowError:this.__closure(this.aftershowerrorSubmit)});d.url=this._getSubmitTo();return d},getSendDataSubmit:function(){var e=this._getInputValues();var d=this.options.onreadydataSubmit;if(typeof d=="function"){var c=this._getElDialog();e=d.apply(c[0],[e])}return e},_getInputValues:function(){var d=this._getElSelf();var c=d.find("form");var f=c.serialize();var e=neo.core.splitParam(f);return e},_getSubmitTo:function(){var e=this._getElSelf();var c=e.children("form");var d=c.attr("action");return d},cancel:function(){this.close()},close:function(){this.closeLow()},closeLow:function(){this._callSuper("close")},reopen:function(){this.closeLow();this.openLow()},revert:function(){this._restore();this._setFlgLoaded(false)},destroy:function(){var d=this._callSuper("destroy");var c=this._getElDialog();var e=this._getElSelfOrg();e.hide();c.after(e).remove();return d},call:function(e,d,c){if(typeof e!="string"){e="open"}if(e.indexOf("_")==0){throw new Error("NeoDialog.call : Private method is called.")}if(typeof this[e]=="function"){return this[e](d,c)}else{return this._callSuper(e,d,c)}},_callSuper:function(f,e,d){var c=this._getElDialog();c.dialog(f,e,d)},ondialogopen:function(d,e){this._hideHindrances();if(typeof this.onopenPref=="function"){var c=this._getElDialog();this.onopenPref.apply(c[0],arguments)}},ondialogclose:function(d,e){if(typeof this.onclosePref=="function"){var c=this._getElDialog();this.onclosePref.apply(c[0],arguments)}this._showHindrances()},ondialogbeforeclose:function(c,d){if(c.keyCode){this.close()}},onsubmit:function(c){c.preventDefault();this.submit()},onsuccessLoad:function(f){var g=this._getElSelf();this._setElContentOrg(g.children());var d=b(f);if(typeof this.options.onsuccessLoad=="function"){var e=this._getElDialog();var c=this.options.onsuccessLoad.apply(e[0],[d]);if(c instanceof jQuery){d=c}}g.empty().append(d);this._initForForm();this._setFlgLoaded(true);if(this._isNeedRestore()){this.closeLow();this.openLow()}},onsuccessSubmit:function(){if(typeof this.options.onsuccessSubmit=="function"){var c=this._getElDialog();this.options.onsuccessSubmit.apply(c[0],arguments)}},aftershowerrorSubmit:function(){this._callSuper("open")}}});b.fn.neoDialog=function(c,e,d){return this.each(function(){var h=b(this);var g=a.showcase.getInstance(h);if(g){g.call(c,e,d)}else{var f;if(typeof c=="string"){f=c;c=undefined}g=new a(h,c);g.initialize();if(f){h.neoDialog(f)}}})};a.initialize()})(window.jQuery);
