/*
	formctrl.js ver1.2 <http://distraid.co.jp/webjade/formctrl.html>
		depends on: dutils.js, MooTools 1.2<http://mootools.net>

	copyright (c) 2008,2009 distraid Inc. <http://distraid.co.jp/>

	$Id: formctrl_1_2.js 36 2010-05-14 10:53:41Z ksy $
*/
var FormCtrl=new Class({Implements:Options,options:{config:{checkBlur:false,blurDelay:100,clickHideTip:true,keyHideTip:true,mouseHideTip:false,mouseHideInfo:false,useConfirm:true,cnfDisable:false,fridMod:false,validateKey:false},formBase:{submit:null,reset:null,notice:null,ajax:null,onSubmit:null,onReset:null},item:{root:null,selector:"input,textarea,select"},tip:{baseSel:null,targSel:null,duStyle:null,resize:false},info:{baseSel:null,targSel:null,duStyle:null,resize:false},format:{},itemGrp:{},strTable:{}},initialize:function(b,a){if($type(b)!="element"){return
}this._form={elem:b};this._config={item:{},tip:{},info:{},format:{},itemGrp:{}};this._strTable={};this._items={};this._itemOrder=[];this._ajax=null;this._confirmed=FormCtrl.Confirm.unconfirmed;this._prevFocus=null;
this._blurDelay=null;this.setOptions(a);if(!this._initOpt()){return}this.options=null;if(!$chk(this._config.item["root"])){return}this._form.elem.getElements(this._config.item["root"]).each(this._initRoot,this);
if(this._itemOrder.length<=0){return}if(this._form.elem.nodeName.toLowerCase()=="form"){this._form.elem.addEvent("submit",this.chkSubmit.bindWithEvent(this));this._form.elem.addEvent("reset",this.chkReset.bindWithEvent(this));
if(this._config.ajax){this._ajax=new Du.Ajax(this._config.ajax["url"],{renewal:{type:(this._config.ajax["type"]?this._config.ajax["type"]:"once")},method:this._config.ajax["method"],jsonize:true,callback:this._ajaxCallback.bind(this)})
}if(!this._ajax){this._config.cnfDisable=false}}},_initOpt:function(){if(!(this.options.item&&this.options.item.root&&this.options.item.selector)){return false}var c=this._config;var i=this.options;var j=i.formBase;
var d=i.config;var f="validateKeyup";this._strTable=$merge(FormCtrl.StrTable,i.strTable);["submit","reset","notice"].each(function(l){if($type(j[l])=="string"){var k=$(j[l]);if(k){this._form[l]=k}}},this);
["onSubmit","onReset"].each(function(k){if($type(j[k])=="function"){this._form[k]=j[k]}},this);if($type(j.ajax)=="object"){c.ajax={};c.ajax["url"]=(j.ajax["url"]?j.ajax["url"]:this._form.elem.action);c.ajax["method"]=($type(j.ajax["method"])=="string"&&j.ajax["method"]!="post"?j.ajax["method"]:"post");
c.ajax["type"]=($type(j.ajax["type"])=="string"?j.ajax["type"]:"once");c.ajax["query"]=Du.Hash.makeQueryStr(j.ajax["query"]);if($type(j.ajax["loadingStyle"])=="object"){var a=j.ajax["loadingStyle"];var g=$(a.id);
if(g&&$type(a.duStyle)=="object"){c.ajax["loadingStyle"]=Du.Style.Setup.createDuStyle(g,a.duStyle)}}c.ajax["continued"]=(j.ajax["continued"]?true:false);if(j.ajax["resArea"]){var h=$(j.ajax["resArea"]);
if(h){c.ajax["resArea"]=h}}c.ajax["query"]=Du.Hash.makeQueryStr(j.ajax["query"]);c.ajax["procDone"]=($type(j.ajax["procDone"])=="function"?j.ajax["procDone"]:null)}c.checkBlur=(d.checkBlur!=null?!!d.checkBlur:false);
c.blurDelay=(c.checkBlur&&d.blurDelay>0&&d.blurDelay!==true?Number(d.blurDelay):0);c.clickHideTip=(d.clickHideTip!=null?!!d.clickHideTip:true);c.keyHideTip=(d.keyHideTip!=null?!!d.keyHideTip:true);c.mouseHideTip=(d.mouseHideTip!=null?!!d.mouseHideTip:false);
c.mouseHideInfo=(d.mouseHideInfo!=null?!!d.mouseHideInfo:false);c.useConfirm=(d.useConfirm!=null?!!d.useConfirm:true);c.cnfDisable=(d.cnfDisable!=null?!!d.cnfDisable:false);c.fridMod=(d.fridMod!=null?!!d.fridMod:false);
c[f]=(d[f]>0?(d[f]===true?true:parseInt(d[f])):false);c.item["root"]=(($type(i.item.root)=="string"&&i.item.root)?i.item.root:null);c.item["selector"]=(($type(i.item.selector)=="string"&&i.item.selector)?i.item.selector:null);
c.item["replace"]=(($type(i.item.replace)=="string"||i.item.replace===true)?i.item.replace:null);c.item["duStyle"]=($type(i.item.duStyle)=="object"?i.item.duStyle:null);c.item["cnfStyle"]=($type(i.item.cnfStyle)=="object"?i.item.cnfStyle:null);
c.format=i.format;c.itemGrp=i.itemGrp;["tip","info"].each(function(k){if(!i[k]||!i[k]["baseSel"]||($type(i[k]["baseSel"])!="string"&&i[k]["baseSel"]!=true)){c[k]["baseSel"]=null;return}c[k]["baseSel"]=i[k]["baseSel"];
c[k]["targSel"]=($type(i[k]["targSel"])=="string"?i[k]["targSel"]:null);c[k]["duStyle"]=($type(i[k]["duStyle"])=="object"?i[k]["duStyle"]:null);if($type(i[k]["resize"])=="object"&&(i[k]["resize"]["width"]||i[k]["resize"]["height"])){c[k]["resize"]=i[k]["resize"]
}else{c[k]["resize"]=!!i[k]["resize"]}c[k]["initDeact"]=(i[k]["initDeact"]!=null?!!i[k]["initDeact"]:true);if(k=="tip"){if($type(i[k]["deactStr"])=="string"){c[k]["deactStr"]=i[k]["deactStr"]}c[k]["stick"]=(i[k]["stick"]!=null?!!i[k]["stick"]:false)
}},this);for(var b in c.format){var e=c.format[b];if(e[f]!=null){e[f]=(e[f]>0?(e[f]===true?true:parseInt(e[f])):false)}else{if(c[f]){e[f]=c[f]}}e.stickTip=(e.stickTip!=null?!!e.stickTip:c.tip["stick"]);
if(e.joinVal!=null){e.joinVal=String((e.joinVal===true?"":e.joinVal))}if($type(e.force)!="function"){e.force=null}if($type(e.type)!="function"){e.type=Du.Type.checkEmpty.bind(Du.Type)}}return true},getConfig:function(c){if(!c){return null
}c=($type(c)!="array"?[c]:c);var a=this._config;var b=null;c.each(function(d){b=a[d];if($type(b)=="object"){a=b}else{return b}});return b},getString:function(a){return this._strTable[a]},getItem:function(a){return this._items[a]
},getItemNames:function(){return $H(this._items).getKeys()},_initRoot:function(a){if($type(a)!="element"){return}var b="";if(this._config.itemGrp[a.id]){if(!this._initGrp(a)){return}b=a.id}else{var c=a.getElements(this._config.item["selector"])[0];
if(!c){return}b=c.name;if(!this._initItem(c,a)){return}}},_initGrp:function(c,h){if($type(c)!="element"||!this._config.itemGrp[c.id]||!this._config.format[c.id]){return}var g=String(c.id);h=(this._items[h]?h:null);
if(h&&this._config.itemGrp[g]["grpType"]==FormCtrl.GrpType.grpItems){return}var f={itemName:g,rootElem:c,format:this._config.format[g]};var b=this._config.itemGrp[g];var a=null;var e=null;var d={};if(!b.grpType){return
}if(b.except){b.except=($type(b.except)=="array"?b.except:[b.except]);b.except.each(function(i){d[i]=true})}if(b.grpType==FormCtrl.GrpType.grpCheck||b.grpType==FormCtrl.GrpType.grpRadio){e=0}if(h){f.tip=true;
f.grp={id:h,obj:this._items[h]}}else{f.info=true;if(b.grpType!=FormCtrl.GrpType.grpItems){f.tip=true}}a=c.getElements((b.itemSel?b.itemSel:this._config.item["selector"]));if(a.length<=0){return}this._items[g]=new FormCtrl.ItemGrp(this,f,{itemGrp:b});
this._itemOrder.push(g);if(b.itemSel){a.each(function(k){if(b.grpType==FormCtrl.GrpType.grpItems&&this._config.itemGrp[k.id]){var j=this._initGrp(k,g);if(this._items[j]){this._items[g].addItem(this._items[j])
}return}var i=k.getElements(this._config.item["selector"])[0];if(!i||d[i.name]){return}this._initItem(i,k,g,($chk(e)?e++:null))},this)}else{a.each(function(i){if(d[i.name]){return}this._initItem(i,c,g,($chk(e)?e++:null))
},this)}return g},_initItem:function(h,a,e,d){if(!(h&&$chk(h.name))){return}var g=String(h.name);var f=null;if(!$chk(d)){d=g}d=String(d);if(this._config.format&&this._config.format[g]){["ref","duplicate"].each(function(i){if(this._config.format[g][i]&&this._config.format[this._config.format[g][i]]){f=this._config.format[this._config.format[g][i]];
if(i=="duplicate"){f=$merge(f,{duplicate:this._config.format[g][i]})}}},this);if(!f){f=this._config.format[g]}}else{if(e&&this._config.format[e]){f=this._config.format[e];if($chk(f.duplicate)){delete f.duplicate
}if($chk(f.ref)){if(this._config.format[f.ref]){f=this._config.format[f.ref]}else{f=null}}}}if(!f){return}var c={itemName:g,itemIndex:d,rootElem:a,itemElem:h,format:f};var b=null;if(e){if(!this._items[e]){return
}c.grp={id:e,obj:this._items[e]};if(this._items[e].isGrpItems()){c.tip=true;b=this._items[d]=new FormCtrl.Item(this,c);this._itemOrder.push(d);this._items[e].addItem(b)}else{b=this._items[e].addItem(new FormCtrl.ItemPrim(this,c))
}}else{if(this._items[d]){return null}c.tip=c.info=true;b=this._items[d]=new FormCtrl.Item(this,c);this._itemOrder.push(d)}return b},chkClick:function(c,d){if(this._confirmed>=FormCtrl.Confirm.confirmed){return c.stop()
}var b=$(c.target);if(!this._items[d]){return}var a=this._items[d].getRootElem();if(this._config.clickHideTip){this._items[d].deactivateItem(["tip"])}if($chk(b.name)&&this._items[d].checkItemName(b.name)){return
}if(["input","textarea","select","checkbox","button"].indexOf(b.nodeName.toLowerCase())>=0){return}while(b){itemElem=b.getElements(this._config.item["selector"])[0];if(itemElem||b==a||b==this._form.elem){break
}b=b.getParent()}if(itemElem&&$chk(itemElem.name)&&!itemElem.disabled&&itemElem.type!="hidden"&&!this._items[d].isFocus()){itemElem.focus()}},chkFocus:function(c,d,b){if(!this._items[d]){return}var e=this._items[d].getGrpRoot();
if(this._blurDelay&&e==this._blurDelay.id){$clear(this._blurDelay.timer);this._blurDelay=null}if(this._confirmed>=FormCtrl.Confirm.confirmed){c.stop();var a=this._items[d].getItemElem(b);if(a){a.blur()
}return}if(this._prevFocus!=e){if(!this._config.checkBlur){this._setBlur(this._prevFocus)}}this._items[e].setFocus(d,b);this._prevFocus=e;this._setMode(false)},chkBlur:function(b,c,a){if(this._confirmed>=FormCtrl.Confirm.confirmed){return b.stop()
}var d=this._items[c].getGrpRoot();if(this._config.blurDelay){if(this._blurDelay){$clear(this._blurDelay.timer)}this._blurDelay={id:d,timer:this._setBlur.delay(this._config.blurDelay,this,d)}}else{this._setBlur(d)
}},_setBlur:function(a){if(!this._items[a]){return}if(this._blurDelay){$clear(this._blurDelay.timer);this._blurDelay=null}if(!this._items[a].isFocus()){return}this._confirmItem(a);this._items[a].setBlur();
this._prevFocus=null},chkKeyup:function(b,d,a,c){if(this._confirmed>=FormCtrl.Confirm.confirmed){return b.stop()}if(!this._items[d]){return}if(c){this._items[d].validateKeyup()}else{if(this._config.keyHideTip){this._items[d].deactivateItem(["tip"])
}}},chkReset:function(b){if(this._form.onReset){var a=this._form.onReset();if(!a){return}}if(this._confirmed==FormCtrl.Confirm.unconfirmed){this._itemOrder.each(function(c){this._items[c].setTipStr(null);
this._items[c].deactivateItem(["tip"])},this)}else{b.stop()}if(this._form.notice){this._form.notice.set("html","")}this._setMode(false)},chkSubmit:function(c){if(this._form.onSubmit){var b=this._form.onSubmit();
if(!b){return}}if(this._confirmed>=FormCtrl.Confirm.confirmed){if(this._confirmed==FormCtrl.Confirm.confirmed){if(this._config.ajax){this._ajaxSubmit();c.stop()}else{this._confirmed=FormCtrl.Confirm.requestDone
}}else{c.stop()}return}else{if(this._config.useConfirm){c.stop()}}if(this._itemOrder.length<=0){return}if(this._items[this._prevFocus]){this._items[this._prevFocus].setBlur();this._prevFocus=null}var a=true;
this._itemOrder.each(function(e){if(!this._items[e]||this._items[e].isGrpItems()){return}if(this._confirmItem(e)===false&&a){var d=this._items[e].getItemElem(null);if(d&&!d.disabled){d.focus()}a=false}},this);
if(!a){c.stop();if(this._form.notice){this._form.notice.set("html",this._strTable.confirmError)}}if(a&&!this._config.useConfirm){if(this._config.ajax){this._ajaxSubmit();c.stop()}else{this._confirmed=FormCtrl.Confirm.requestDone
}return}this._setMode(a)},_setMode:function(a){a=(a?FormCtrl.Confirm.confirmed:FormCtrl.Confirm.unconfirmed);if(this._confirmed>=FormCtrl.Confirm.ajaxRequest){return}if(a!=this._confirmed){this._itemOrder.each(function(b){if(!this._items[b]||this._items[b].isGrpItems()){return
}if(a==FormCtrl.Confirm.confirmed){this._items[b].activateItem(["cnfStyle"])}else{this._items[b].deactivateItem(["cnfStyle"])}if(this._config.cnfDisable){this._items[b].setDisable(a)}},this);if(a==FormCtrl.Confirm.confirmed){if(this._form.notice){this._form.notice.set("html","")
}}if(this._config.fridMod){(a==FormCtrl.Confirm.confirmed?Du.FridCtrl.setOpt("confirmed"):Du.FridCtrl.removeOpt("confirmed"));Du.FridCtrl.updateFrid()}if(this._config.useConfirm){if(this._form.submit){this._form.submit.value=(a?this._strTable.formSubmit:this._strTable.formConfirm)
}if(this._form.reset){this._form.reset.value=(a?this._strTable.formEdit:this._strTable.formReset)}}}this._confirmed=a},_confirmItem:function(b,c){if(!this._items[b]){return}var a=null;a=this._items[b].validateValue(c);
if($type(a)=="object"){return false}if(a){this._items[b].deactivateTip(this._config.tip["deactStr"])}return true},ajaxValidate:function(d,a,f,g){if($type(g)!="object"){return}var e=g.itemName;var c=null;
if(!this._items[e]){return}var b=this._items[e];if(!b.isAjaxReq()){return}b.setAjaxReq(false);if(this._confirmed>=FormCtrl.Confirm.ajaxRequest||!d||$type(a)!="object"){return}if(!Du.Hash.compareParam(f,b.retrieveTargValue())){return
}if(!a.confirm){b.displayTip((a.errStr?a.errStr:this._strTable.errDefault));if(this._confirmed>=FormCtrl.Confirm.confirmed){this._setMode(false);c=b.getItemElem(null);if(c&&!c.disabled){c.focus()}}}else{b.deactivateTip(this._config.tip["deactStr"])
}},_ajaxSubmit:function(){if(!this._ajax){return}this._confirmed=FormCtrl.Confirm.ajaxRequest;var a=FormCtrl.Tools.createQueryStr(this._form.elem);if(this._config.ajax["query"]){a+=(a?"&":"")+this._config.ajax["query"]
}if(this._config.ajax["loadingStyle"]){this._config.ajax["loadingStyle"].activate()}if(this._form.notice){this._form.notice.set("html",this._strTable.submitRequest)}if(this._form.submit){this._form.submit.disabled=true
}if(this._form.reset){this._form.reset.disabled=true}this._ajax.sendRequest(a)},_ajaxCallback:function(b,d,c){var a=d.json;if(this._config.ajax["loadingStyle"]){this._config.ajax["loadingStyle"].deactivate()
}if(!b||$type(a)!="object"){return this._ajaxError(true,a)}if(!a.confirm){return this._ajaxError(false,a)}return this._ajaxDone(a)},_ajaxDone:function(a){this._confirmed=FormCtrl.Confirm.requestDone;if(this._config.ajax["continued"]){}else{if(this._config.ajax["resArea"]&&a.resHTML){this._form.elem.setStyle("display","none");
this._config.ajax["resArea"].set("html",a.resHTML)}else{if(this._config.item["replace"]){this._itemOrder.each(function(b){this._items[b].replaceItemValue()},this)}}}if(this._config.fridMod){Du.FridCtrl.removeOpt("confirmed");
if(!this._config.ajax["continued"]){Du.FridCtrl.updateFrid("submitDone")}}if(this._form.notice){this._form.notice.set("html",this._strTable.submitDone)}if(this._config.ajax["continued"]){if(this._form.submit){this._form.submit.disabled=false
}if(this._form.reset){this._form.reset.disabled=false}this._confirmed=FormCtrl.Confirm.confirmed;this._setMode(false)}else{if(this._form.submit){this._form.submit.setStyle("display","none")}if(this._form.reset){this._form.reset.setStyle("display","none")
}}if(this._config.ajax["procDone"]){this._config.ajax["procDone"](a)}},_ajaxError:function(e,a){this._confirmed=FormCtrl.Confirm.confirmed;if(this._form.notice){this._form.notice.set("html",(e?this._strTable.ajaxError:(a.errStr?a.errStr:this._strTable.confirmError)))
}if(this._form.submit){this._form.submit.disabled=false}if(this._form.reset){this._form.reset.disabled=false}this._setMode(false);var f=false;if(!e&&$type(a.data)=="object"){for(var d in a.data){var c=a.data[d];
if(!this._items[d]){continue}if(!c.confirm){if(c.value!=null){this.setItemValue(d,c.value,c.errStr)}else{if($chk(c.errStr)){this._items[d].displayTip(c.errStr)}}if(!f){var b=this._items[d].getItemElem(null);
if(b&&!b.disabled){b.focus();f=true}}}}}},getConfirmMode:function(){return this._confirmed},enableInput:function(){this._setMode(false)},getItemValue:function(c,d,b){if(!this._items[c]){return false}if(d){var a=this.validateValue(c,false);
if(a===false){return a}}return this._items[c].retrieveTargValue(null,b)},setItemValue:function(c,b,a,d){if(this._confirmed==FormCtrl.Confirm.confirmed||!this._items[c]){return}this._items[c].setItemValue(b,a,d)
},validateValue:function(a,b){if(!this._items[a]){return false}return this._items[a].validateValue(b)}});FormCtrl.ItemPrim=new Class({initialize:function(a,b){if($type(a)!="object"||$type(b)!="object"||!b.rootElem||!b.format){return
}this._formCtrl=a;this._itemName=b.itemName;this._itemIndex=String(($chk(b.itemIndex)?b.itemIndex:this._itemName));this._rootElem=b.rootElem;this._format=b.format;this._grp=($type(b.grp)=="object"&&b.grp["id"]&&b.grp["obj"]?b.grp:null);
if(this._grp){this._grp.bGrpItems=this._grp.obj.isGrpItems()}this._focus=false;this._supp={};this._initItemElem(b);this.deactivateItem(["duStyle"],true)},_initItemElem:function(a){if($type(a)!="object"||$type(a.itemElem)!="element"){return
}this._itemElem=a.itemElem;this._itemType=FormCtrl.Tools.checkItemType(this._itemElem);this._textVal=FormCtrl.Tools.retrieveTextVal(this._itemElem,this._itemType);["duStyle","cnfStyle"].each(function(d){var e=(this._format.itemStyle&&this._format.itemStyle[d]!==undefined?this._format.itemStyle[d]:this._formCtrl.getConfig(["item",d]));
if(e){this._supp[d]=Du.Style.Setup.createDuStyle(this._itemElem,e)}},this);var b=(this._grp&&!this._grp.bGrpItems?this._grp.id:this._itemName);this._itemElem.addEvent("focus",this._formCtrl.chkFocus.bindWithEvent(this._formCtrl,[b,this._itemIndex]));
if(this._formCtrl.getConfig(["checkBlur"])){this._itemElem.addEvent("blur",this._formCtrl.chkBlur.bindWithEvent(this._formCtrl,[b,this._itemIndex]))}var c=(this._format.validateKeyup>0&&this._itemType&FormCtrl.ItemType.text?true:false);
if(this._formCtrl.getConfig(["keyHideTip"])||c){this._itemElem.addEvent("keyup",this._formCtrl.chkKeyup.bindWithEvent(this._formCtrl,[b,this._itemIndex,c]))}},getRootElem:function(){return this._rootElem
},getItemElem:function(){return this._itemElem},getItemType:function(){return this._itemType},getGrpRoot:function(){if(!this._grp){return this._itemName}return this._grp.obj.getGrpRoot()},checkItemName:function(a){return this._itemName==a
},isGrpMember:function(){return(this._grp?true:false)},isGrpItems:function(){return false},isGrpUnit:function(){return false},isFocus:function(){return this._focus},setFocus:function(){if(!this._focus){this.activateItem(["duStyle","info"])
}this._focus=true},setBlur:function(){if(this._focus){this.deactivateItem(["duStyle","info"])}this._focus=false},setDisable:function(a){if(!this._itemElem){return}this._itemElem.disabled=a},activateItem:function(a,b){this._toggleItem(true,a,b)
},deactivateItem:function(a,b){this._toggleItem(false,a,b)},_toggleItem:function(c,a,b){if(!a){return}a=($type(a)=="array"?a:[a]);b=!!b;a.each(function(f){if(!this._supp[f]){return}var d=["tip","info"].contains(f);
var e=(d?this._supp[f]["duStyle"]:this._supp[f]);if(e){if(f=="tip"&&this._format.stickTip&&!c){return}(c?e.activate(null,b):e.deactivate(null,b))}},this)},_getItemTextVal:function(){if(!this._itemElem){return""
}var b=this._formCtrl.getString("replaceTmpl");var d=function(e){if(!e){return""}e=e.replace(/</g,"&lt;");e=e.replace(/>/g,"&gt;");e=e.replace(/\n\r?/g,"<br />");return b.replace(/#VALUE#/g,e)};var a="";
var c=this._itemElem.get("value");if(this._itemType&FormCtrl.ItemType.select){c=($type(c)!="array"?[c]:c);c.each(function(e){a+=($chk(this._textVal[e])?d(this._textVal[e]):"")},this)}else{if($chk(c)){a=d((this._itemType&FormCtrl.ItemType.checkbox||this._itemType&FormCtrl.ItemType.radio?this._textVal:c))
}}return a},retrieveTargValue:function(b,a){if(!b){b=this._retrieveTargObj()}if(!b){return null}var c=null;if($type(b)=="array"){c=[];b.each(function(d){c.push((a?encodeURIComponent(d.key)+"="+encodeURIComponent(d.value):d.value))
})}else{if($type(b)=="object"){return(a?encodeURIComponent(b.key)+"="+encodeURIComponent(b.value):b.value)}}if(a){c=c.join("&")}return c},_retrieveTargObj:function(){if(this.isGrpItems()){return null}var c=null;
if(this.isGrpUnit()){c=[];this._itemOrder.each(function(e){var d=this._items[e]._retrieveTargObj();if($type(d)=="array"){c.merge(d)}else{if($chk(d)){c.push(d)}}},this);return c}var b=this._itemElem;var a=this._itemType;
if(!b){return null}c={key:b.name,value:b.value};if(a&FormCtrl.ItemType.checkbox||a&FormCtrl.ItemType.radio){c=(b.checked?c:null)}else{if(a&FormCtrl.ItemType.multiple&&b.selectedIndex>=0){c=[];$A(b.options).each(function(d){if(d.selected&&$chk(d.value)){c.push({key:b.name,value:d.value})
}})}}return c},setItemValue:function(c,b,d){if(b!=null){this.displayTip(b)}if(d&&this._itemElem){this._itemElem.focus()}if(c==null){return null}var a={};String(c).split("&").each(function(h){if($type(h)!="string"){return
}var g=h.split("=");var e=decodeURIComponent(g[0]);var f=(g[1]?decodeURIComponent(g[1]):e);if(!g[1]){e=this._itemName}if(a[e]){a[e].push(f)}else{a[e]=[f]}},this);return this._setValue(a)},_setValue:function(a){if(!this._itemElem||$type(a)!="object"){return
}var c=this._itemElem;var b=this._itemType;var d=(a[this._itemName]!=null?($type(a[this._itemName])=="array"?a[this._itemName]:[a[this._itemName]]):[]);if(b&FormCtrl.ItemType.text){if(d.length>0){c.value=d[0]
}}else{if(b&FormCtrl.ItemType.select&&c.options){$A(c.options).each(function(e){if(d.contains(e.value)){e.selected=true;if(!(b&FormCtrl.ItemType.multiple)){d=[]}}else{e.selected=false}})}else{if(b&(FormCtrl.ItemType.checkbox|FormCtrl.ItemType.radio)){c.checked=(d.contains(c.value)?true:false)
}}}}});FormCtrl.Item=new Class({Extends:FormCtrl.ItemPrim,initialize:function(a,b){this.parent(a,b);if(!this._formCtrl){return}if(this._itemElem!=this._rootElem){if(b.tip){this._supp.tip=this._initSubItem("tip")
}if(b.info){this._supp.info=this._initSubItem("info")}}if(!this._grp||(this._grp&&this._grp.obj.isGrpItems())){if(!this.isGrpItems()){this._rootElem.addEvent("click",this._formCtrl.chkClick.bindWithEvent(this._formCtrl,this._itemName));
var c=this._formCtrl.getConfig(["item","replace"]);var d=null;if(c){d=(c===true?this._rootElem:this._rootElem.getElements(c)[0]);if(d){this._replace={elem:d,html:""}}}}if(this._formCtrl.getConfig(["tip","initDeact"])){this.deactivateItem(["tip"],true)
}}if(!this._grp&&this._formCtrl.getConfig(["info","initDeact"])){this.deactivateItem(["info"],true)}},isAjaxReq:function(){return this._ajaxReq},setAjaxReq:function(a){this._ajaxReq=!!a},_initSubItem:function(g){var h=this._formCtrl.getConfig([g,"baseSel"]);
var e=this._formCtrl.getConfig([g,"targSel"]);if(!h){return null}var f=(h===true?this._rootElem:this._rootElem.getElements(h)[0]);if(!f){return null}var b=null;if(e){b=f.getElements(e)[0]}if(!b){b=f}var a={baseElem:f,targElem:b};
a.defStr=b.innerHTML;a.errStr="";var c=this._formCtrl.getConfig([g,"resize"]);if(c){FormCtrl.Tools.resizeElem(f,c)}var d=(this._format.itemStyle&&this._format.itemStyle[g]!==undefined?this._format.itemStyle[g]:this._formCtrl.getConfig([g,"duStyle"]));
if(d){a.duStyle=Du.Style.Setup.createDuStyle(f,d)}if(this._formCtrl.getConfig((g=="tip"?"mouseHideTip":"mouseHideInfo"))){f.addEvent("mouseover",this.deactivateItem.bind(this,[[g]]))}return a},deactivateTip:function(b,a){if(b!=null&&!this._format.stickTip){this.setTipStr(b)
}this._toggleItem(false,["tip"],a)},displayTip:function(a){if(!a){this.deactivateItem(["tip"]);return true}this.setTipStr(a);this.activateItem(["tip"])},setTipStr:function(b){if(!this._supp.tip||!this._supp.tip["baseElem"]||!this._supp.tip["targElem"]){return
}if(b==null){b=this._supp.tip["defStr"]}if(this._supp.tip["errStr"]==b){return}this._supp.tip["errStr"]=b;this._supp.tip["targElem"].set("html",b);var c=this._supp.tip["baseElem"];var a=this._formCtrl.getConfig(["tip","resize"]);
if(a){FormCtrl.Tools.resizeElem(c,a)}},validateKeyup:function(){if(!this._itemElem||!(this._itemType&FormCtrl.ItemType.text)){return}if(this._format.validateKeyup!==true&&this._format.validateKeyup>0){if(this._delayTimer){this._delayTimer=$clear(this._delayTimer)
}this._delayTimer=function(){if(this.validateValue()===true){this.deactivateTip(this._formCtrl.getConfig(["tip","deactStr"]))}this._delayTimer=null}.delay(this._format.validateKeyup,this)}else{if(this.validateValue()===true){this.deactivateTip(this._formCtrl.getConfig(["tip","deactStr"]))
}}},validateValue:function(f){if(!this._format||$type(this._format.type)!="function"){return null}var b=this._retrieveTargObj();if(!b){return null}var d=this.retrieveTargValue(b);var c=this._format.type(null,"dt_getTypes");
var e={};if(this._format.force){d=this._forceModify(d)}if(this._format.joinVal!=null&&$type(d)=="array"){d=d.join(this._format.joinVal)}if(this.isGrpUnit()&&this._itemGrp.grpType!=FormCtrl.GrpType.grpUnit){e.dt_limitSel=this._formCtrl.getString("grpLimitSel")
}if(c.contains("dt_ajax")){e.dt_ajax={};e.dt_ajax["id"]=this._itemName;e.dt_ajax["info"]={itemName:this._itemName};e.dt_ajax["callback"]=this._formCtrl.ajaxValidate.bind(this._formCtrl);e.dt_ajax["query"]=this.retrieveTargValue(null,true)
}typeRet=this._format.type(d,e);if($type(typeRet)=="object"){if(typeRet.id=="dt_empty"){if(this._format.require){if(!f){this.displayTip((e.dt_limitSel||(this._itemType&FormCtrl.ItemType.select)?this._formCtrl.getString("errRequireSel"):this._formCtrl.getString("errRequire")))
}return typeRet}else{if(!$chk(this._format.duplicate)){return true}}}else{if($type(typeRet.desc)=="object"){if(typeRet.id=="dt_ajax"){this.setAjaxReq(true);return null}if($type(typeRet.desc["errStr"])=="string"){if(!f){this.displayTip(typeRet.desc["errStr"])
}}if(typeRet.desc["state"]===false){return false}}else{if($type(typeRet.desc)=="string"){if(!f){this.displayTip(typeRet.desc)}return typeRet}}}}if($chk(this._format.duplicate)){var a=this._formCtrl.getItem(this._format.duplicate);
if(a){if(!Du.Hash.compareParam(d,a.retrieveTargValue())){if(!f){this.displayTip(this._formCtrl.getString("errDuplicate"))}return{id:"duplicate",errStr:this._formCtrl.getString("errDuplicate")}}}}return true
},_forceModify:function(b){if(this._format.force==null){return b}var a=this._format.force(Du.Hash.copyObj(b));if(!Du.Hash.compareParam(b,a)){if($type(a)=="array"){if(this.isGrpUnit()){a.every(function(e,c){if(this._itemOrder[c]==null){return false
}var d=this._items[this._itemOrder[c]];d._setValue(Du.Hash.setObjProp(d._itemName,e));return true},this)}}else{this._setValue(Du.Hash.setObjProp(this._itemName,a))}}return a},replaceItemValue:function(){if(!this._replace||!this._replace.elem){return null
}this._replace.html=this._replace.elem.innerHTML;this._replace.elem.set("html",this._getItemTextVal())}});FormCtrl.ItemGrp=new Class({Extends:FormCtrl.Item,initialize:function(a,b,c){if($type(c)!="object"||!c.itemGrp){return
}this._itemGrp=c.itemGrp;this._bGrpItems=(this._itemGrp.grpType==FormCtrl.GrpType.grpItems?true:false);if(this._bGrpItems){b.tip=null}else{if(b.grp){b.info=null}}this.parent(a,b);this._items={};this._itemOrder=[];
this._defName=null},isGrpItems:function(){return this._bGrpItems},isGrpUnit:function(){return !this._bGrpItems},getItemElem:function(a){a=(a==null?this._itemOrder[0]:a);if(!this._bGrpItems&&this._items[a]){return this._items[a].getItemElem()
}return null},getItem:function(a){return this._items[a]},checkItemName:function(a){return this._itemOrder.some(function(b){return this._items[b].checkItemName(a)},this)},setFocus:function(c,b){var a=(c==this._itemName?b:c);
if(this._items[a]){this._itemOrder.each(function(d){if(d==a){this._items[d].setFocus(c,b)}else{this._items[d].setBlur()}},this)}if(!this._focus&&!this._grp){this.activateItem(["info"])}this._focus=true
},setBlur:function(){if(!this._focus){return}this._itemOrder.each(function(a){this._items[a].setBlur()},this);this.deactivateItem(["info"]);this._focus=false},setDisable:function(a){this._itemOrder.each(function(b){this._items[b].setDisable(a)
},this)},addItem:function(a){if(!a||!a._itemIndex){return null}var b=a._itemIndex;this._items[b]=a;this._itemOrder.push(b);if(!this._defName){this._defName=a._itemName}return a},_toggleItem:function(c,a,b){if(!a){return
}a=($type(a)=="array"?a:[a]);b=!!b;if(this._bGrpItems){a=a.filter(function(d){if(d=="info"){return true}return false})}a.each(function(f){if(!this._supp[f]){return}if(f=="duStyle"||f=="cnfStyle"){this._itemOrder.each(function(g){if(c){this._items[g].activateItem([f],b)
}else{this._items[g].deactivateItem([f],b)}},this);return}var d=(f=="tip"||f=="info"?true:false);var e=(d?this._supp[f]["duStyle"]:this._supp[f]);if(e){(c?e.activate(null,b):e.deactivate(null,b))}},this)
},validateValue:function(c){if(!this._bGrpItems){return this.parent(c)}var b=true;var a=null;this._itemOrder.each(function(d){a=this._items[d].validateValue(c);if(b===true&&$type(a)=="object"){b=a}},this);
return b},_getItemTextVal:function(){if(!this.isGrpUnit()){return""}var a="";this._itemOrder.each(function(b){a+=this._items[b]._getItemTextVal()},this);return a},setItemValue:function(c,b,d){if(!this.isGrpUnit()||!this._items){return
}if(b!=null){this.displayTip(b)}if(d){this._itemOrder.some(function(e){if(this._items[e]._itemElem){this._items[e]._itemElem.focus();return true}},this)}if(c==null){return null}var a={};c.split("&").each(function(h){if($type(h)!="string"){return
}var g=h.split("=");var e=decodeURIComponent(g[0]);var f=(g[1]?decodeURIComponent(g[1]):e);if(!g[1]){e=this._defName}if(a[e]){a[e].push(f)}else{a[e]=[f]}},this);this._itemOrder.each(function(e){this._items[e]._setValue(a)
},this)}});FormCtrl.Tools=new Hash({checkItemType:function(d){if($type(d)!="element"){return FormCtrl.ItemType.none}var c=d.nodeName.toLowerCase();var b=d.type.toLowerCase();var a=FormCtrl.ItemType.none;
switch(c){case"textarea":a=FormCtrl.ItemType.text|FormCtrl.ItemType.textarea;break;case"select":a=FormCtrl.ItemType.select;if(d.multiple){a|=FormCtrl.ItemType.multiple}break;case"input":switch(b){case"text":case"hidden":a=FormCtrl.ItemType.text;
break;case"password":a=FormCtrl.ItemType.text|FormCtrl.ItemType.password;break;case"checkbox":a=FormCtrl.ItemType.checkbox;break;case"radio":a=FormCtrl.ItemType.radio}}return a},resizeElem:function(c,a){if($type(c)!="element"||!a){return
}var b=Du.Style.Tools.computeSize(c);var d={};if($type(a)=="object"){["width","height"].each(function(e){if($type(a[e])=="object"){d[e]=Du.Style.Tools.modStyleVal(b[e],a[e]["mod"],a[e]["min"],a[e]["max"])
}})}else{d.width=b.width}["width","height"].each(function(e){if($chk(d[e])){c.setStyle(e,d[e])}})},retrieveTextVal:function(d,c){if($type(d)!="element"){return null}var b=null;if(c&FormCtrl.ItemType.select){b={};
$A(d.options).each(function(e){if($chk(e.value)){b[e.value]=($chk(e.text)?e.text:(e.label?e.label:e.value))}})}else{if(c&FormCtrl.ItemType.checkbox||c&FormCtrl.ItemType.radio){var a=d.getNext();if(!a||a.nodeName.toLowerCase()=="input"){b=($chk(d.value)?String(d.value):itemName)
}else{b=a.get("text")}}}return b},createQueryStr:function(b){if($type(b)!="element"){return null}var a=[];b.getElements("input, select, textarea").each(function(d){if(!$chk(d.name)){return}var c=encodeURIComponent(d.name),e;
if(d.nodeName.toLowerCase()=="select"){$A(d.options).each(function(f){if(f.selected){a.push(c+"="+encodeURIComponent(f.value))}})}else{if(d.type=="radio"||d.type=="checkbox"){if(d.checked){a.push(c+"="+encodeURIComponent(d.value))
}}else{if(d.value!=null){a.push(c+"="+encodeURIComponent(d.value))}}}});return a.join("&")}});FormCtrl.ItemType={none:0,text:1,select:2,checkbox:4,radio:8,textarea:256,password:512,multiple:1024};FormCtrl.GrpType={grpItems:1,grpUnit:2,grpRadio:3,grpCheck:4,grpCheckDN:5};
FormCtrl.Confirm={unconfirmed:0,confirmed:1,ajaxRequest:2,requestDone:3};FormCtrl.StrTable={formConfirm:"\u5165\u529b\u5185\u5bb9\u3092\u691c\u8a3c",formSubmit:"\u3053\u306e\u5185\u5bb9\u3067\u9001\u4fe1",formReset:"\u5165\u529b\u3092\u30af\u30ea\u30a2",formEdit:"\u5185\u5bb9\u3092\u4fee\u6b63\u3059\u308b",errDefault:"\u5165\u529b\u5024\u304c\u6b63\u3057\u304f\u3042\u308a\u307e\u305b\u3093",errRequire:"\u5fc5\u9808\u9805\u76ee\u304c\u672a\u5165\u529b\u3067\u3059",errRequireSel:"\u5fc5\u9808\u9805\u76ee\u304c\u672a\u9078\u629e\u3067\u3059",errDuplicate:"\u518d\u5165\u529b\u306e\u5185\u5bb9\u304c\u5143\u306e\u5165\u529b\u5185\u5bb9\u3068\u7570\u306a\u308a\u307e\u3059",grpLimit:{limitError:"\u9805\u76ee[#CURLEN#]\u304c\u6b63\u3057\u304f\u3042\u308a\u307e\u305b\u3093 ",limitBelow:"\u9805\u76ee[#CURLEN#]\u304c\u5c11\u306a\u3059\u304e\u307e\u3059 ",limitOver:"\u9805\u76ee[#CURLEN#]\u304c\u591a\u3059\u304e\u307e\u3059 ",limit:"#LIMITMIN#\u500b\u4ee5\u4e0a#LIMITMAX#\u500b\u4ee5\u4e0b\u306e",limitEqual:"#LIMITMIN#\u500b\u306e",limitMin:"#LIMITMIN#\u500b\u4ee5\u4e0a\u306e",limitMax:"#LIMITMAX#\u500b\u4ee5\u4e0b\u306e",limitNumTag:"<b>#LIMITNUM#</b>",_limitUnit:"\u9805\u76ee\u3092",_limitInput:"\u5165\u529b",_limitSel:"\u9078\u629e",_limitPlz:"\u3057\u3066\u4e0b\u3055\u3044"},grpLimitText:{},grpLimitSel:{},confirmError:"\u5165\u529b\u9805\u76ee\u306b\u30a8\u30e9\u30fc\u304c\u3042\u308a\u307e\u3059 \u5165\u529b\u5185\u5bb9\u3092\u3054\u78ba\u8a8d\u4e0b\u3055\u3044",ajaxError:"\u30b5\u30fc\u30d0\u30fc\u3068\u306e\u901a\u4fe1\u306b\u5931\u6557\u3001\u3042\u308b\u3044\u306f\u30b9\u30af\u30ea\u30d7\u30c8\u30a8\u30e9\u30fc\u3067\u3059<br />\u6642\u9593\u3092\u7a7a\u3051\u3066\u518d\u5ea6\u9001\u4fe1\u4e0b\u3055\u3044",submitRequest:"\u9001\u4fe1\u4e2d\u2026",submitDone:"\u9001\u4fe1\u5b8c\u4e86\u3057\u307e\u3057\u305f",replaceTmpl:"#VALUE#<br />"};
[{prop:"grpLimitText",targ:"_limitInput"},{prop:"grpLimitSel",targ:"_limitSel"}].each(function(b){var a=this["grpLimit"];["limitError","limitBelow","limitOver"].each(function(c){this[b.prop][c]=a[b.targ]+a[c]
},this);["limit","limitEqual","limitMin","limitMax"].each(function(c){this[b.prop][c]=a[c]+a._limitUnit+a[b.targ]+a._limitPlz},this);this[b.prop]["limitNumTag"]=a.limitNumTag},FormCtrl.StrTable);FormCtrl.StrTable.grpLimit=null;
