// JavaScript Document

function IsInteger(sText)
{
	var ValidChars = "0123456789-";
	var IsNumber=true;
	var Char;
	
	for (i = 0; i < sText.length && IsNumber == true; i++) 
	{ 
		Char = sText.charAt(i); 
		if (ValidChars.indexOf(Char) == -1)
			IsNumber = false;
	}
	
	return IsNumber;
}

function IsFloat(sText)
{
	var ValidChars = "0123456789.-";
	var IsNumber=true;
	var Char;
	
	
	for (i = 0; i < sText.length && IsNumber == true; i++) 
	{ 
		Char = sText.charAt(i); 
		if (ValidChars.indexOf(Char) == -1)
			IsNumber = false;
	}
	
	return IsNumber;
}

function testInput(cInput)
{
	if (typeof(cInput.name)=="undefined")
		return true;
	
	if (cInput.name.substr(2, 1)=="n")
		return true;
	
	if (cInput.name.substr(0, 1)=="o")
	{
		if (cInput.value.length <1)
			return false;
		
		if (cInput.name.substr(1, 1)=="v")
		{
			switch (cInput.name.substr(2, 1))
			{
				case 'i':
					if (IsInteger(cInput.value))
						return true;
					else
						return false;
				break;
				case 's':
						return true;
				break;
				case 'd':
					if (IsFloat(cInput.value))
						return true;
					else
						return false;
				break;
			}
		}
	}
	else if (cInput.name.substr(0, 1)=="f")
	{
		if (cInput.value.length<1)
			return true;
		
		if (cInput.name.substr(1, 1)=="v")
		{
			switch (cInput.name.substr(2, 1))
			{
				case 'i':
					if (IsInteger(cInput.value))
						return true;
					else
						return false;
				break;
				case 's':
						return true;
				break;
				case 'd':
					if (IsFloat(cInput.value))
						return true;
					else
						return false;
				break;
			}
		}
	}
}

function ValueGuardian(cInput, normal_class, error_class)
{
	if (cInput.disabled!=true && testInput(cInput))
	{
		if (normal_class!='')
			cInput.className = normal_class;
			
		return true;
	}
	else
	{
		alert('Il seguente campo, non e\' compilato correttamente:\n\n  - '+ cInput.title);
		cInput.focus();
		
		if (error_class!='')
			cInput.className = error_class;
			
		return false;
	}
}

function FormGuardian(cForm, normal_class, error_class)
{
	for (var i=0; i<cForm.length; i++)
	{
		current = cForm.elements[i];
		
		if (!ValueGuardian(current, normal_class, error_class))
			return false;
			
		//Utility_setCookie(current.name, current.value);
	}
	
	return true;
}

function FormGuardian_withStepLock(cForm, normal_class, error_class, steplock)
{	
	for (var i=0; i<cForm.length; i++)
	{
		if (i>steplock)
			break;
		
		current = cForm.elements[i];
		
		if (!ValueGuardian(current, normal_class, error_class))
			return false;
	}
	
	return true;
}

function FormGuardian_withCallback(cForm, normal_class, error_class, callback_func)
{	
	var ret = FormGuardian(cForm, normal_class, error_class);
	
	if (ret == true && callback_func != null)
	{
		var ret_call_back_func = callback_func();

		if (typeof ret_call_back_func === 'boolean')
			ret = ret_call_back_func;
	}
	
	return ret;
}