/* requires conduit.js */

var v_formErrorDiv
function setFormError(el)
{
	v_formErrorDiv = $(el);
}
function formError(onfail)
{
	if(onfail)
	{
		if(typeof onfail == 'function')
			onfail();
		else if(typeof onfail == 'string' && v_formErrorDiv)
			$SI(v_formErrorDiv, 'error', onfail);
	}
	return false;
}

function isLongEnough(el, min, onfail)
{
	el = $(el);
	if(el)
	{
		el.value = $T(el.value);
		if(el.value.length >= min)
			return true;
	}
	formError(onfail);
	$F(el);
	return false;
}
function isNotEmpty(el, onfail) { return isLongEnough(el, 1, onfail); }
function isEmpty(el, onsuccess) { return !isLongEnough(el, 1, onsuccess); }

function isShortEnough(el, max, onfail)
{
	el = $(el);
	if(el)
	{
		el.value = $T(el.value);
		if(el.value.length <= max)
			return true;
	}
	formError(onfail);
	$F(el);
	return false;
}

function isValidLength(el, min, max, onfail)
{
	el = $(el);
	if(el)
	{
		el.value = $T(el.value);
		if(el.value.length >= min && el.value.length <= max)
			return true;
	}
	formError(onfail);
	$F(el);
	return false;
}

function isEqualValue(el, el2, onfail)
{
	el = $(el);
	el2 = $(el2);
	if(el && el2)
	{
		el.value = $T(el.value);
		el2.value = $T(el2.value);
		if(el.value == el2.value)
			return true;
	}
	formError(onfail);
	$F(el2);
	return false;
}

function isValidEmail(el, onfail)
{
	el = $(el);
	if(el)
	{
		el.value = $T(el.value);
		if(!el.value.match)
			return true;
		if(el.value.match(/^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/))
			return true;
	}
	formError(onfail);
	$F(el);
	return false;
}

function isValidPhone(el, onfail)
{
	el = $(el);
	if(el)
	{
		el.value = $T(el.value);
		if(!el.value.match)
			return true;
		if(el.value.match(/^[0-9]{3,4}[-\s]*[0-9]{3,4}$/))
			return true;
	}
	formError(onfail);
	$F(el);
	return false;
}

function isInt(el, onfail)
{
	el = $(el);
	if(el)
	{
		el.value = $T(el.value);
		if(el.value.length > 0 && !isNaN(el.value) && el.value.indexOf('.') == -1)
			return true;
	}
	formError(onfail);
	$F(el);
	return false;
}

function isChecked(name, onfail)
{
	els = document.getElementsByName(name);
	for(var i = 0; i < els.length; i++)
		if(els[i].checked)
			return true;
	formError(onfail);
	if(els.length > 0)
		els[0].focus();
	return false;
}



