var lblErrorMessageID;
var highLightOnError = false;
function highLight(control, errorMessage)
{
    if(highLightOnError == false)
        return;
	if(control == null) return;
	var oldStyle;
	if(control.getAttribute('style') != null)
	{
		oldStyle = control.getAttribute('style').toString();
		control.setAttribute('oldStyle', oldStyle);
	}
	control.style.backgroundColor = "yellow";
	control.style.borderColor = 'red';
	control.style.borderWidth = '1px';
	control.style.borderStyle = 'solid';
	
	if(errorMessage != null)
	{
		// Add alert text
		var lblErrorMessage = document.getElementById(lblErrorMessageID.toString());
		lblErrorMessage.innerHTML = errorMessage;
	}
}

function unHighlight(control)
{
	if(control == null) return;
	if(lblErrorMessageID != null)
	{
		document.getElementById(lblErrorMessageID.toString()).innerHTML = "";
	}
	if(control.getAttribute('oldStyle') == null)
	{
		control.removeAttribute('style');
		return;
	}
	control.setAttribute('style', control.getAttribute('oldStyle'));
	control.removeAttribute('oldStyle');

}

function validateEmail(control,errorMessage)
{
  	validRegExp = /\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/i;
    if (control.value.search(validRegExp) == -1)
	{ 
	  highLight(control,errorMessage);
      return false;
	}
    return true; 
}

function validateRequired(control, errorMessage)
{
	if(control.value == null || control.value.length == 0)
	{
		highLight(control, errorMessage);
		return false;
	}
	return true;
}

function validateNumeric(control, errorMessage)
{
  	validRegExp = /(\+|-)?[0-9][0-9]*(\.[0-9]*)?/i;
    if (control.value.search(validRegExp) == -1) 
	{
		highLight(control, errorMessage);
      	return false;
	}
    return true;	
}

function validateUrl(control, errorMessage)
{
  	validRegExp = /(\w+):\/\/([\w.]+\/?)\S*/i;
    if (control.value.search(validRegExp) == -1) 
	{
		highLight(control, errorMessage);
      	return false;
    }
	return true; 
	
}

function validateTextControl(control, validationType, errorMessage)
{
	switch(validationType)
	{
		case 'required':
			control.onchange = function() {unHighlight(control)};	
			return validateRequired(control, errorMessage);
		break;
		
		case 'email':
			control.onchange = function() {unHighlight(control)};	
			return validateEmail(control, errorMessage);
		break;
		
		case 'numeric':
			control.onchange = function() {unHighlight(control)};	
			return validateNumeric(control, errorMessage);
		break;
		case 'url':
			control.onchange = function() {unHighlight(control)};	
			return validateUrl(control, errorMessage);
		break;
	}
	return false;
}

function clearError(control)
{
    unHighlight(control);
}