OOS=window.OOS||{};Element.addMethods({isGroup:function(element){return(element.readAttribute("value").gsub(/\d/,"")==="g")?true:false;}});OOS.Kat={subSelLimit:5,subSelLimitNotice:new Template('<p class="notice" id="max-kat">sólo puedes seleccionar #{limit} como máximo</p>'),subSelTmpl:new Template('<span class="attribute">#{name}<a href="#" class="remove" id="attr-#{id}" title="#{remove}"><img src="/static/imgs/remove_attribute.png" alt="#{remove}" /></a></span>'),selTitleTmpl:new Template('<span class="title">#{title}</span><span class="subtitle">#{name}</span>'),inputTmpl:new Template('<input type="hidden" name="#{name}" value="#{value}" />'),initialize:function(){this.mainSel=$("kategory");if(!this.mainSel){return false;}this.mainSel.observe("change",this._handleMainSel.bind(this));this.subSel=$("subkategories-wrapper");this.subSel.observe("click",this._handleSubSel.bind(this));this.curSel=$("current-selection");this.curSel.observe("click",this._handleCurSel.bind(this));$$(".subkategories").invoke("setStyle",{height:this.mainSel.getDimensions().height+"px"});var msd=this.getMainSelDom();if(msd){$("s-"+msd.readAttribute("value")).show();}this._updateSelection();},getMainSelDom:function(){return this.mainSel.select("option").find(function(n){return n.selected;});},getSubSelDom:function(){var msd=this.getMainSelDom();if(!msd){return false;}return $("s-"+this.getMainSelDom().readAttribute("value")).select("input[type=checkbox]").findAll(function(n){return n.checked;});},uncheckSubSel:function(value){var msdv=this.getMainSelDom().readAttribute("value");var item=$("s-"+msdv).select("input[type=checkbox]").find(function(n){return n.readAttribute("value")===value;}.bind(value));item.checked=false;},getCurSelHtml:function(){var html="";var msd=this.getMainSelDom();var ssd=this.getSubSelDom();if(!msd){return null;}if(msd.isGroup()&&ssd.size==0){html=null;}else{html+=this.inputTmpl.evaluate({name:msd.isGroup()?"mainSelGroup":"mainSelKat",value:msd.readAttribute("value").gsub(/g|k/,"")});var ssdSize=ssd.size();for(var i=0;i<ssdSize;i++){html+=this.inputTmpl.evaluate({name:"subSel",value:ssd[i].readAttribute("value")});}}return html;},_handleMainSel:function(e){var currentMainSel=this.getMainSelDom();$$(".subkategories").invoke("hide");var mainSelSub=$("s-"+currentMainSel.readAttribute("value"));mainSelSub.show();this._updateSelection();},_handleSubSel:function(e){var elto=e.element();if(elto.tagName.toLowerCase()==="label"){return false;}this._updateSelection();},_handleCurSel:function(e){e.stop();var obj=e.element(),value=null;if(obj.tagName.toLowerCase()==="img"){obj=obj.up();}if(obj.hasClassName("remove")){value=obj.identify().gsub(/^attr-/,"");}else{return false;}this.uncheckSubSel(value);this._updateSelection();},_updateSelection:function(){var subSel=this.getSubSelDom();if(!subSel){return false;}if(subSel.size()==0){this.curSel.update("");return false;}if(subSel.size()>=this.subSelLimit){this._disableSubSel();}else{this._enableSubSel();}var html=[];if(subSel.size()>0){html.push(this.selTitleTmpl.evaluate({title:_("has seleccionado: "),name:this.getMainSelDom().innerHTML}));subSel.each(function(n){var name=n.up().innerHTML.stripTags();html.push(this.subSelTmpl.evaluate({remove:_("borrar"),name:name,id:n.value}));}.bind(this));}this.curSel.update(html.join(""));},_disableSubSel:function(){var notice=$("max-kat");if(!notice){this.curSel.insert({before:this.subSelLimitNotice.evaluate({limit:this.subSelLimit})});}$("s-"+this.getMainSelDom().readAttribute("value")).select("input[type=checkbox]").each(function(n){if(!n.checked){n.disable();}});},_enableSubSel:function(){var notice=$("max-kat");if(notice){notice.remove();}$("s-"+this.getMainSelDom().readAttribute("value")).select("input[type=checkbox]").each(function(n){if(!n.checked){n.enable();}});}};
