var mrcFormInit = function(){
	initializeActivator();
	observeNumerics();
	initializeOnSelector();
}

var observeNumerics = function(){
	$$('.js_int').each( function(nput,v){
		Event.observe(nput, 'change', kkEnsureInteger);
		Event.observe(nput, 'keyup', kkEnsureInteger);
	});
}

function kkEnsureInteger(event){
	this.value = this.value.replace(/[^0-9]/, '');
}

var initializeActivator = function(){
	/* find all activator objects and set them up to enable a target upon change */
	$$('.activator').each( function(nput,v){
		/* get the target class name from the activator */
		classes = nput.className.match(/activator ([^ ]+)/);
		/* set up the change call back */
		if( classes && classes.length == 2 ){
			Event.observe(nput, 'change', kkActivator);
		}
	} );
}

function kkActivator(event){
	target_class = '.activate-' + this.className.match(/activator ([^ ]+)/)[1];
	$$(target_class).each(function(activatee,v){activatee.disabled = false;});
}



var initializeOnSelector = function(){
	/* find all activator objects and set them up to enable a target upon change */
	$$('.onselector').each( function(nput,v){
		/* get the target class name from the activator */
		classes = nput.className.match(/onselector ([^ ]+)/);
		/* set up the change call back */
		if( classes && classes.length >= 2 ){
			if( nput.className.match(/ show/) ) {
				Event.observe(nput, 'change', kkOnSwitch);
			} else if( nput.className.match(/ hide/) ) {
				Event.observe(nput, 'change', kkOffSwitch);
			}
				
		}
	} );
}

function kkOnSwitch(event){
	target_class = '.onselectee-' + this.className.match(/onselector ([^ ]+)/)[1];
	if(this.checked){
		$$(target_class).each(function(activatee,v){activatee.blindDown( {duration:0.15});});
	} else {
		$$(target_class).each(function(activatee,v){activatee.blindUp( {duration:0.15});});
	}
}

function kkOffSwitch(event){
	target_class = '.onselectee-' + this.className.match(/onselector ([^ ]+)/)[1];
	if(this.checked){
		$$(target_class).each(function(activatee,v){activatee.blindUp( {duration:0.15});});
	} else {
		$$(target_class).each(function(activatee,v){activatee.blindDown( {duration:0.15});});
	}
}



document.observe('dom:loaded', mrcFormInit);
