var domSlider=jClass.extend({appName:'domSlider',elements:null,options:{mode:'siblings',hideonload:true,hideonloadexcept:[],button:{position:'into',type:'span',text:'click me',classes:['toggleButton','toggledButton'],show:'always'}},init:function(elements,options){var options=$j.extend(true,this.options,options);this.options=options;this.elements=$j(elements);if(this.elements.length!=0)this.prepare()},prepare:function(){this.elements.each($j.shove(function(index,el){var button=this.getButton();switch(this.options.mode){case'siblings':var content=$j(el).siblings(this.options.content);break;case'childs':var content=$j(el).children(this.options.content);break};if(this.options.hideonload){var hide=true;if(this.options.hideonloadexcept.length>0)for(var i=0;i<this.options.hideonloadexcept.length;i++){var tmpClass=this.options.hideonloadexcept[i],elClasses=$j(el).attr('class').split(' ');for(var i=0;i<elClasses.length;i++)if(elClasses[i]==tmpClass)hide=false};if(hide==true)content.hide()};$j(el).click($j.shove(function(){if(this.content.is(":hidden")){button.addClass(this.pObj.options.button.classes[1]);button.removeClass(this.pObj.options.button.classes[0]);this.content.slideDown("slow")}else{button.addClass(this.pObj.options.button.classes[0]);button.removeClass(this.pObj.options.button.classes[1]);this.content.slideUp("slow")}},{content:content,pObj:this}));button.click($j.shove(function(ev){ev.stopPropagation();if(this.content.is(":hidden")){button.addClass(this.pObj.options.button.classes[1]);button.removeClass(this.pObj.options.button.classes[0]);this.content.slideDown("slow")}else{button.addClass(this.pObj.options.button.classes[0]);button.removeClass(this.pObj.options.button.classes[1]);this.content.slideUp("slow")}},{content:content,pObj:this}));if(this.options.button.show=='always'||(this.options.button.show=='notempty'&&content.length>0))switch(this.options.button.position){case'into':$j(el).append(button);break;case'after':$j(el).after(button);break;case'before':$j(el).before(button);break;default:$j(el).append(button)}},this))},getButton:function(){if(this.options.button.type=="button")this.options.button.type="span";var button=$j("<"+this.options.button.type+">").addClass(this.options.button.classes[0]).text(this.options.button.text);return button},log:function(msg){if(console){console.log(msg)}else alert(msg)}});
