igsQuery(document).ready( function () {
	if (igsQuery('#trainingconvention-base-edit').length == 0) { return false; }

	/* 
	 * we are in a trainingconvention edit mode
	 * let's define some function to handle form
	 * and navigation.
	 * 
	 */
	
	/* This method show all needed error */
	function checkFormError() {
		igsQuery('#kss-spinner').show();
		
		var baseedit = igsQuery('#trainingconvention-base-edit');
		
		var url = baseedit.attr('action');
		url = url.replace('/atct_edit','/@@validation');
		
		igsQuery('.archetypes-schemata-link').removeClass('schemata_error');
		
		igsQuery.getJSON(
			url,
			baseedit.serialize(),
			function (data) {
				/* callback for the json ajax query */
				var fields = igsQuery('#trainingconvention-base-edit .field');
				igsQuery.each(fields,
						function (index, value) {
							var inerror = false;
							for (var schemata in data) {
								var name = value.id;
								name = name.replace('archetypes-fieldname-','');
								if (name in data[schemata]) {
									inerror = true;
								};
								if (inerror) {
									fields.eq(index).addClass('error');
								} else {
									fields.eq(index).removeClass('error');
									igsQuery('#archetypes-fieldname-' + name + " div.fieldErrorBox").text('');
								};
							}
						}
				);

				/* Set text */
				for (var schemata in data){
					//alert(schemata);
					igsQuery('#archetypes-schemata-link-'+schemata).addClass('schemata_error');
					for (var field in data[schemata]) {
							var fieldobj = igsQuery('#archetypes-fieldname-' + field);
							var texts = data[schemata][field];
							if (fieldobj.length>0) {
								for (var i=0; i < fieldobj.length; i++)
									{
										igsQuery('#archetypes-fieldname-' + field + " div.fieldErrorBox").text( texts[i] );
									}
							}
						};
				}
				igsQuery('#kss-spinner').hide();
			}
		)
		
	}
	/* Call this one at load time */
	checkFormError();
	
	/*
	 * Events binding:
	 * We bind events on input (leave field = validate)
	 */
	igsQuery('#trainingconvention-base-edit input').unbind('focusout');
	igsQuery('#trainingconvention-base-edit input').focusout(checkFormError);
	igsQuery('#trainingconvention-base-edit textarea').unbind('focusout');
	igsQuery('#trainingconvention-base-edit textarea').focusout(checkFormError);
	igsQuery('#trainingconvention-base-edit select').unbind('focusout');
	igsQuery('#trainingconvention-base-edit select').focusout(checkFormError);
	
	/* Ended */
});
