//vars
var fieldsetIds = {
	'requesterSalutation': 'requester',
	'opponentSalutation': 'opponent'
}

var prefixes = {
	'requesterSalutation': 'r',
	'opponentSalutation': 'o'
};

var steps = {
	'#requester': 'etape1',
	'#conflict': 'etape2'
};

var current = 'requester';
var glFocusedField = false;

//func
function setMandatory()
{
	$$('input[name=requesterSalutation]').each(function(elm) {
		if (elm.checked == true) {
			var name = elm.name;
			var value = elm.value;

/*			if (value == 'Company')
			{
				$(prefixes[name] + 'Company').getElements('label').each(function(label) {
					label.className = 'mandatory';
				});
				$(prefixes[name] + 'Person').getElements('label').each(function(label) {
					label.className = 'subMandatory';
				});
			}
			else
			{
				$(prefixes[name] + 'Company').getElements('label').each(function(label) {
					label.className = 'subMandatory';
				});
				$(prefixes[name] + 'Person').getElements('label').each(function(label) {
					label.className = 'mandatory';
				});
*/
		}
	});
}

function checkForm()
{
	return validateFormular(current);
}

function checkValidity()
{
	var lastPart = 'requester';

	$$('#etapes a').each(function(elm) {
		if (isValid(elm.rel.substring(1), false) == true) {
			elm.className = 'navlink valid';
			lastPart = elm.rel.substring(1);
		}
	});

	return lastPart;
}

function displayPart(part)
{
	$$('#etapes a').each(function(elm) {
		elm.addClass('off');
		elm.removeClass('on');
	});

	$$('#etapes a').each(function(elm) {
		var name = elm.rel.substring(1);

		console.log(name + ' ' + part);

		if (name == part)
		{
			$(name).fx.slideIn().chain(function() { $('proposalForm').fx.slideIn(); });
			elm.addClass('on');
			Cookie.write('current', part);
		}
		else
		{
			$(name).fx.slideOut();
		}
	})
}

function isValid(part, setClass)
{
	var valid = true;
	var focusedField = false;

	$$('#' + part + ' label.mandatory, #' + part + ' label.error').each(function(elm) {
		var name = ($defined(Browser.Engine.trident) == false) ? elm.getAttribute('for') : elm.getAttribute('htmlFor');
		var field = $(name);

		if (field == null || ($defined(field) == true && field.getAttribute('type') == 'radio'))
		{
			var checked = false;

			$$('input[name=' + name + ']').each(function(input) {
				if (input.checked == true) checked = true;
			});

			if (checked == true) {
				if (setClass) elm.removeClass("error");
			} else {
				if (focusedField == false) focusedField = $$('input[name=' + name + ']')[0];
				valid = false;
				if (setClass) elm.addClass("error");
			}
		}
		else
		{
			if ($defined(field) && field.value.length == 0) {
				if (focusedField == false) focusedField = field;
				if (setClass) elm.addClass("error");
				valid = false;
			} else {
				if (setClass) elm.removeClass("error");
			}
		}
	});

	if (focusedField != false) {
		glFocusedField = focusedField;
	}

	return valid;
}

function validateFormular(part)
{
	var focusedField = false;

	valid = isValid(part, true);

	if (valid == false && glFocusedField != false)
	{
		glFocusedField.focus();
		return false;
	}

	return true;
}

window.addEvent('load', function() {
	//behaviors
	if ($$('#etape1 a').length > 0)
	{
		$$('#etape1 a')[0].addClass('on');
	}

	$$('.navlink').addEvent('click', function(event) {
		event.stop();

		if (current != this.rel.substring(1))
		{
			checkValidity();

			if (validateFormular(current) == true || validateFormular(this.rel.substring(1)) == true)
			{
				current = this.rel.substring(1);
				displayPart(current);
				return true;
			}
			else
			{
				return false;
			}
		}
	});

	$$('#rCompany, #rPerson, #oCompany, #oPerson').each(function(elm) {
		elm.fx = new Fx.Slide(elm.id);
	});

	$$('#requester input[type="radio"], #opponent input[type="radio"]').addEvent('click', function(event) {
		/*
		var value = event.target.value;
		var name = event.target.name;

		if (value == 'Company')
		{
			$(prefixes[name] + 'Company').fx.slideIn();
			$(prefixes[name] + 'Person').fx.slideOut();
		}
		else
		{
			$(prefixes[name] + 'Company').fx.slideOut();
			$(prefixes[name] + 'Person').fx.slideIn();
		}
*/
		setMandatory();
	});

	//init
	$$('#requester input[type="radio"], #opponent input[type="radio"]').each(function(elm) {
		if (elm.checked == true) {
			elm.click();
		}
	});

	setMandatory();

	var proposalForm = $('proposalForm')

	checkValidity();
	$$('#rCompany, #oCompany').slide();
});