﻿Adapt = function() {

}

Adapt.FeedBack = function() {

}

Adapt.FeedBack.physicalRadioId = null;
Adapt.FeedBack.juristicalRadioId = null;
Adapt.FeedBack.juristicalFields = null;
Adapt.FeedBack.mode = null;

Adapt.FeedBack.radioClick = function(radio) {
	var able = true;
	
	if (radio.id == Adapt.FeedBack.physicalRadioId)
		able = false;
		
		Adapt.FeedBack.ableJuristicalFields(able);
}

Adapt.FeedBack.ableJuristicalFields = function(able) {
	var fields = Adapt.FeedBack.juristicalFields.split(',');
	
	for(var i = 0; i < fields.length; i++)
		Adapt.FeedBack.ableWithChilds(document.getElementById(fields[i]), able);
}

Adapt.FeedBack.ableWithChilds = function(element, able) {
	if(element.nodeType != 3) {
		element.disabled = !able;
		
		if (element.className == 'name disabled')
			if(able)
				element.className = element.className.replace(' disabled', '');
				
		if (element.className == 'name')
			if(!able)
				element.className += ' disabled';
				
		if(element.className == 'not-empty')
			if(able)
				element.style.visibility = 'visible';
			else
				element.style.visibility = 'hidden';
				
		if(element.tagName.toLowerCase() == 'input' || element.tagName.toLowerCase() == 'textarea' || element.tagName.toLowerCase() == 'select')
			element.disabled = !able;
		
		for(var i = 0; i < element.childNodes.length; i++)
			Adapt.FeedBack.ableWithChilds(element.childNodes[i], able);
	}
}

Adapt.FeedBack.validateJuristicalField = function(sender, args) {	
	args.IsValid = false;
	var radioJuristical = document.getElementById(Adapt.FeedBack.juristicalRadioId);
	
	if (radioJuristical.checked) {
		if (args.Value != null) {
			var value = args.Value;
			
			while (value.indexOf(' ') > -1)
				value = value.replace(' ', '');

			if(value.length > 0)
				args.IsValid = true;
		}
	}
	else
		args.IsValid = true;
}

Adapt.FeedBack.validateEMailField = function(sender, args) {
		args.IsValid = false;
		var regex = /[0-9a-zA-Z_\-\.]+@([0-9a-zA-Z_\-]+\.[0-9a-zA-Z_\-]+(\.[0-9a-zZ-Z_\-]+)*)+/;

		if(args.Value.match(regex) != null)
			args.IsValid = true;
}

Adapt.FeedBack.pageLoad = function(event) {
	if(Adapt.FeedBack.mode == 'form' || Adapt.FeedBack.mode == 'invalid') {
		Adapt.FeedBack.ableJuristicalFields(true);
		document.getElementById(Adapt.FeedBack.juristicalRadioId).checked = true;
		document.getElementById(Adapt.FeedBack.physicalRadioId).checked = false;
	}
}

window.attachEvent("onload", function(event) { Adapt.FeedBack.pageLoad(event); } );
