lbox_forms_input_activate_classname = function(input) {
	input.getParent('.control').getElements('input').each(function(sibling, index) {
		if (sibling.getParent('label')) {
			switch (sibling.type) {
				case 'text':
					if (sibling.name == input.name) {sibling.getParent('label').addClass('active');}
					else 							{sibling.getParent('label').removeClass('active');}
				break;
				default:
					if (sibling.value == input.value)	{sibling.getParent('label').addClass('active');}
					else 								{sibling.getParent('label').removeClass('active');}
				break;
			}
		}
	});
}
lbox_forms_input_deactivate_classname = function(input) {
	if (input.getParent('label')) {
		input.getParent('label').removeClass('active');
	}
}
lbox_forms_show	= function(control) {
	control.getElements('input').each(function(input, index) {
		input.disabled = false;
	});
	control.setStyle('display', 'block');
}
lbox_forms_hide	= function(control, calledByChange) {
	control.getElements('input').each(function(input, index) {
		if (calledByChange) {
			switch (input.type) {
				case 'radio':
					input.checked	= false;
				break;
				case 'checkbox':
					input.checked	= false;
				break;
				default:
					input.value	= '';
			}
		}
		input.disabled = true;
		lbox_forms_input_deactivate_classname(input);
	});
	control.setStyle('display', 'none');
}
lbox_forms_switch_slaves_by_master = function(masterInput, calledByChange) {
	var masterControl		= masterInput.getParent('.control');
	var masterCTRLIDSimple	= masterControl.id.replace('control-'+masterControl.getParent('form').id+'-ctrl-', '');
	masterControl.getParent('form').getElements('.control').each(function(control, index) {
		/*if (!control.hasClass('control-multiple')) {*/
			if (control.title.length > 0) {
				control.title.split(";").each(function(condition, index) {
					if (condition.length > 0) {
						var condsParts 	= condition.split(":");
						var action 		= condsParts[0];
						var condsPartsStateMasterParts = condsParts[1].split("=");
						if (condsPartsStateMasterParts.length == 2) {
							var masterCTRL = condsPartsStateMasterParts[0];
							var masterValue = condsPartsStateMasterParts[1];
							if (masterCTRL == masterCTRLIDSimple) {
								if (action == 'enable') {
									switch (masterInput.type) {
										case 'radio':
											if (masterInput.value == masterValue) {
												if (masterInput.checked) {
													lbox_forms_show(control);
												}
												else {
													lbox_forms_hide(control, calledByChange);
												}
											}
											else {
												if (masterInput.checked) {
													lbox_forms_hide(control, calledByChange);
												}
											}
										break;
										case 'checkbox':
											if (masterInput.value == masterValue) {
												if (masterInput.checked) {
													lbox_forms_show(control);
												}
												else {
													lbox_forms_hide(control, calledByChange);
												}
											}
										break;
										case 'text':
											if (masterInput.value == masterValue) {
												lbox_forms_show(control);
											}
											else {
												lbox_forms_hide(control, calledByChange);
											}
										break;
									}
								}
							}
						}
						else {
							var masterCTRL = condsParts[1];
							if (masterCTRL == masterCTRLIDSimple) {
								switch (masterInput.type) {
									case 'radio':
										if (masterInput.checked) {
											lbox_forms_show(control);
										}
										break;
									case 'checkbox':
										if (masterInput.checked) {
											lbox_forms_show(control);
										}
										break;
									case 'text':
										if (masterInput.value) {
											lbox_forms_show(control);
										}
										else {
											lbox_forms_hide(control, calledByChange);
										}
										break;
								}
							}
						}						
					}
				});
			}
		/*}*/
	});
}
window.addEvent('domready', function() {
	$$('.control').each(function(control, index) {
		if (!control.hasClass('control-multiple')) {
			control.getElements('input').each(function(input, index) {
				input.addEvent('change', function() {
					lbox_forms_switch_slaves_by_master(this, true);
					lbox_forms_input_activate_classname(this);
				});
				/* kvuli IEckum je treba nastavit protekani eventu click->focus->change */
				input.addEvent('focus', function() {this.fireEvent('change');return false;});
				input.addEvent('click', function() {this.fireEvent('focus')});
				switch (input.type) {
					case "text":
						if (input.value.length > 0) {
							lbox_forms_input_activate_classname(input);
						}
					break;
					case "radio":
						if (input.checked) {
							lbox_forms_input_activate_classname(input);
						}
					break;
					case "checkbox":
						if (input.checked) {
							lbox_forms_input_activate_classname(input);
						}
					break;
				}
				lbox_forms_switch_slaves_by_master(input);
			});
		}
	});
});
