HW.onload(function(){HW.Accordion.init();});

HW.Accordion = {
	trigger:'jvsAccordionTrigger',
	target:'jvsAccordionTarget',
	itm:'jvsAccordionItem',
	group:'jvsAccordionGroup',
	init:function() {
		var obj = this;
		var triggers = $$(this.trigger,document.body,'a');
		for(var i=0,j=triggers.length;i<j;i++) {
			(function(){
				var o=triggers[i];
				HW.attachEvent(triggers[i],'click',function(e){HW.preventDefault(e);obj.fire(o)});
			})()
		}
	},
	fire:function(o) {
		var reg = new RegExp("(^|\\w*)"+this.itm+"(\\d*|([\\w* ]))");
		var reg2 = new RegExp("(^|\\w*)"+this.group+"(\\d*|([\\w* ]))");
		if(reg.exec(o.className) && reg2.exec(o.className)) {
			var trg = reg.exec(o.className)[0];
			var trg2 = reg2.exec(o.className)[0];
			var trgs = $$(trg2,document.body,'div');
			for(var i=0,j=trgs.length;i<j;i++) {
				if(HW.hasClass(trgs[i],this.target) && !trgs[i].hidden) {
					var hide = trgs[i];
				}
				if(HW.hasClass(trgs[i],trg)) {
					var show = trgs[i];
				}
			}
			if(hide && show && hide != show) {
				var h = Math.max(HW.getTotalSize(hide),HW.getTotalSize(show));
				var f = function(o,v) {
					v = Math.round(v);
					hide.setStyle({height:v+'px',overflow:'hidden',display:''});
					show.setStyle({height:h-v+'px',overflow:'hidden',display:''});
				}
				new HW.Animator(null,h,0,f,500,function(){
					show.show().setStyle({height:'',overflow:''});
					hide.hide().setStyle({height:'',overflow:''});
				});
			}
		}
	}
}