//////////////////////////////// Validation Code ///////////////////////////////
function ValidateText(field, frameDoc, mandatory)
{
	var res = (field.value.length != 0) || !mandatory;
	SetFieldValid(res, field, frameDoc);
	return res;
}

function ValidateEmail(field, frameDoc, mandatory)
{
	var res = CheckEmail(field) && (!mandatory || field.value.length != 0);
	SetFieldValid(res, field, frameDoc);
	return res;
}

function ValidateUnsignedInteger(field, frameDoc, mandatory)
{
	var res = CheckUnsignedInteger(field) && (!mandatory || field.value.length != 0);
	SetFieldValid(res, field, frameDoc);
	return res;
}
function ValidatePhoneNumber(field, frameDoc, mandatory)
{
	var res = CheckPhoneNumber(field) && (!mandatory || field.value.length != 0);
	SetFieldValid(res, field, frameDoc);
	return res;
}

function ValidateInteger(field, frameDoc, mandatory)
{
	var res = CheckInteger(field) && (!mandatory || field.value.length != 0);
	SetFieldValid(res, field, frameDoc);
	return res;
}
function ValidateState(field, frameDoc, mandatory)
{
	var res = (field.selectedIndex != 0);
	SetFieldValid(res, field, frameDoc);
	return res;
}
function ValidateCheckbox(field, frameDoc, mandatory)
{
	var res = (field.checked == true);
	SetFieldValid(res, field, frameDoc);
	return res;
}

function SetFieldValid(valid, field, frameDoc)
{
	var errorImg = frameDoc.getElementById(field.id + "Error");
	var id = field.id + "Error";
	if (!errorImg)
	{
		errorImg = frameDoc.getElementById("ExpiryError");
		id = "ExpiryError";
	}
	if (valid)
	{
		errorImg.src = "/i/val-problem-off.gif";
	}
	else
	{
		errorImg.src = "/i/val-problem-on.gif";	
		blinkFrameDoc = frameDoc;
		StartBlinking(id, frameDoc);		
	}
}

var blinking = false;
function StartBlinking(fieldid, frameDoc)
{
	if (!blinking)
	{
		blinking = true;
		Blink(fieldid, -200, 4, frameDoc);
	}
}

function CheckFloating(field, limit)
{
	pattern = /^[.,0-9][.,0-9]*\.?[0-9]*$/;
	return pattern.test(field.value);
}

function CheckEmail(field, limit)
{
	pattern = /^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/;
	return pattern.test(field.value);		
}			
		
function CheckInteger(field, limit)
{
	pattern = /^[-0-9][0-9]*$/;
	return pattern.test(field.value);
}

function CheckUnsignedInteger(field,limit)
{
	pattern = /^[0-9]*$/;
	return pattern.test(field.value);
}
function CheckPhoneNumber(field,limit)
{
	pattern = /^[+\ 0-9]*$/;
	return pattern.test(field.value);
}

function SetOpacity(obj, opacity) 
{
	if (obj == null)
	{
		return;
	}
	opacity = (opacity == 100)?99.999:opacity;
		
	// IE/Win
	obj.style.filter = "alpha(opacity:"+opacity+")";
		
	// Safari<1.2, Konqueror
	obj.style.KHTMLOpacity = opacity/100;
		
	// Older Mozilla and Firefox
	obj.style.MozOpacity = opacity/100;
		
	// Safari 1.2, newer Firefox and Mozilla, CSS3
	obj.style.opacity = opacity/100;
}  

var blinkFrameDoc = null;
function Blink(objId, opacity, count) 
{
	if (blinkFrameDoc.getElementById) 
	{
		obj = blinkFrameDoc.getElementById(objId);
		if ((count % 2) == 0)
		{
			opacity += 10;
			if (opacity >= 200)
			{
				count--;
				opacity = 100;
			}
		}
		else
		{
			opacity -= 10;	
			if (opacity < -200)
			{
				count--;
				opacity = 0;
			}
		}
		if (count == 0)
		{
			SetOpacity(obj, 100);
			blinking = false;
			return;
		}
		SetOpacity(obj, opacity);
		window.setTimeout("Blink('"+objId+"',"+opacity+","+count+")", 8);
	}
}
