/**
 * RokUtilsInputs - A tool that allows to style checkboxes and radios inputs
 * 
 * @version		1.2
 * 
 * @license		MIT-style license
 * @author		Djamil Legato <djamil [at] djamil.it>
 * @client		Andy Miller @ Rockettheme
 * @copyright	Author
 */

/*
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('a y=[\'.Z\'];a 6={Y:1.2,N:9(){6.7=11 13({\'w\':[]});a 7=$$(\'m[4=0]\');a u=$$(y.O(\' m[4=0], \')+\' m[4=0]\');u.q(9(v){7=7.L(v)});7.q(9(0,i){6.r(\'7\',\'w\',0);8(6.7.J(0.b))6.r(\'7\',0.b,0);f 6.7.F(0.b,[0]);6.x(0,\'I\').k(0,\'I\')});7=$$(\'m[4=z]\');a u=$$(y.O(\' m[4=z], \')+\' m[4=z]\');u.q(9(v){7=7.L(v)});7.q(9(0,i){6.r(\'7\',\'w\',0);8(6.7.J(0.b))6.r(\'7\',0.b,0);f 6.7.F(0.b,[0]);6.x(0,\'A\').k(0,\'A\')})},x:9(0,4){a 5=0.l(),3=0.j(),b=0.b.Q(\'[\',\'\').Q(\']\',\'\');0.15(\'16\',\'17\');8(5&&5.e()==\'d\'){5.h(\'c\'+4+\' c\'+b);8(0.o)5.h(\'c\'+4+\'-n\')}f 8(3&&3.e()==\'d\'){3.h(\'c\'+4+\' c\'+b);8(0.o)3.h(\'c\'+4+\'-n\')}M 6},k:9(0,4){0.k(\'p\',9(){6.S(0,4)});8(E.18||E.19||(0.l()&&!0.l().X(\'W\'))){a 5=0.l(),3=0.j();8(5&&5.e()==\'d\'){5.k(\'p\',9(){0.R(\'p\')})}f 8(3&&3.e()==\'d\'||(0.j()&&!0.j().X(\'W\'))){3.k(\'p\',9(){0.R(\'p\')})}}},S:9(0,4){8(4==\'A\'){a 5=0.l(),3=0.j(),g="c"+4+"-n";a B=(5.e()==\'d\');a 14=(3.e()==\'d\');8(5.e()==\'d\'||3.e()==\'d\'){8(5.t(g)&&B)5.G(g);f 8(!5.t(g)&&B)5.h(g);f 8(3.t(g)&&V)3.G(g);f 8(!3.t(g)&&V)3.h(g)}}f{6.7.P(0.b).q(9(s){a 5=s.l(),3=s.j();a U=0.l(),K=0.j();$$(5,3).G(\'c\'+4+\'-n\');8(5&&5.e()==\'d\'&&U==5){s.H(\'o\',\'o\');5.h(\'c\'+4+\'-n\')}f 8(3&&3.e()==\'d\'&&K==3){3.h(\'c\'+4+\'-n\');s.H(\'o\',\'o\')}})}},r:9(4,D,T){a C=6[4].P(D);C.10(T);M 6[4].F(D,C)}};E.k(\'12\',6.N);',62,72,'radio|||parent|type|next|InputsMorph|list|if|function|var|name|rok|label|getTag|else|cls|addClass||getParent|addEvent|getNext|input|active|checked|click|each|setArray|el|hasClass|exclusion|ex|all|morph|InputsExclusion|checkbox|checks|labelNext|tmp|key|window|set|removeClass|setProperty|radios|hasKey|radioparent|remove|return|init|join|get|replace|fireEvent|switchReplacement|newItem|radionext|parentNext|for|getProperty|version|content_vote|push|new|domready|Hash|labelParent|setStyle|display|none|opera|ie'.split('|'),0,{}))
*/
var InputsExclusion=['.content_vote'];
var InputsMorph={
	version:1.2,
	init:function(){
		InputsMorph.list=new Hash({'all':[]});
		var list=$$('input[type=radio]');
		var exclusion=$$(InputsExclusion.join(' input[type=radio], ')+' input[type=radio]');
		exclusion.each(function(ex){list=list.remove(ex)});
		list.each(function(radio,i){
			InputsMorph.setArray('list','all',radio);
			if(InputsMorph.list.hasKey(radio.name)) InputsMorph.setArray('list',radio.name,radio);
			else InputsMorph.list.set(radio.name,[radio]);

			InputsMorph.morph(radio,'radios').addEvent(radio,'radios')
		});

		list=$$('input[type=checkbox]');
		var exclusion=$$(InputsExclusion.join(' input[type=checkbox], ')+' input[type=checkbox]');
		exclusion.each(function(ex){list=list.remove(ex)});
		list.each(function(radio,i){
			InputsMorph.setArray('list','all',radio);
			if(InputsMorph.list.hasKey(radio.name))InputsMorph.setArray('list',radio.name,radio);
			else InputsMorph.list.set(radio.name,[radio]);
			InputsMorph.morph(radio,'checks').addEvent(radio,'checks')
		})
	},
	morph:function(radio,type){
		var next=radio.getNext(),parent=radio.getParent(),name=radio.name.replace('[','').replace(']','');
		radio.setStyle('display','none');
		if(next&&next.getTag()=='label'){
			next.addClass('rok'+type+' rok'+name);
			if(radio.checked) next.addClass('rok'+type+'-active')
		}else if(parent&&parent.getTag()=='label'){
			parent.addClass('rok'+type+' rok'+name);
			if(radio.checked)parent.addClass('rok'+type+'-active')
		}
		
		return InputsMorph
	},
	addEvent:function(radio,type){
		radio.addEvent('click',function(){InputsMorph.switchReplacement(radio,type)});
		if(window.opera||window.ie||(radio.getNext()&&!radio.getNext().getProperty('for'))){
			var next=radio.getNext(),parent=radio.getParent();
			if(next&&next.getTag()=='label'){
				next.addEvent('click',function(){radio.fireEvent('click')})
			}else if(parent&&parent.getTag()=='label'||(radio.getParent()&&!radio.getParent().getProperty('for'))){
				parent.addEvent('click',function(){radio.fireEvent('click')})
			}
		}
	},
	switchReplacement:function(radio,type){
		if(type=='checks'){
			var next=radio.getNext(),parent=radio.getParent(),cls="rok"+type+"-active";
			if(next&&next.getTag()=='label'){
				var labelNext=(next.getTag()=='label');
				if(next.hasClass(cls)&&labelNext)next.removeClass(cls);
				else if(!next.hasClass(cls)&&labelNext)next.addClass(cls);
			} else if (parent.getTag()=='label') {
				var labelParent=(parent.getTag()=='label');
				if(parent.hasClass(cls)&&labelParent)parent.removeClass(cls);
				else if(!parent.hasClass(cls)&&labelParent)parent.addClass(cls)
			}
		}else{
			InputsMorph.list.get(radio.name).each(function(el){
				var next=el.getNext(),parent=el.getParent();
				var radionext=radio.getNext(),radioparent=radio.getParent();
				$$(next,parent).removeClass('rok'+type+'-active');
				if(next&&next.getTag()=='label'&&radionext==next){
					el.setProperty('checked','checked');
					next.addClass('rok'+type+'-active')
				}else if(parent&&parent.getTag()=='label'&&radioparent==parent){
					parent.addClass('rok'+type+'-active');
					el.setProperty('checked','checked')
				}
			})
		}
	},
	setArray:function(type,key,newItem){
		var tmp=InputsMorph[type].get(key);
		tmp.push(newItem);
		return InputsMorph[type].set(key,tmp)
	}
};
window.addEvent('domready',InputsMorph.init);
 
