﻿function ValidateDateFormat(field)
{
    var date;
    var day;
    var month;
    var year;
    var firstSlash;
    var lastSlash;

	date = field.value;
	firstSlash = date.indexOf("/");
	lastSlash = date.lastIndexOf("/");
	day = date.substring(lastSlash + 1, date.length);
	month = date.substring(firstSlash + 1, lastSlash);
	year = date.substring(0, firstSlash);

	if(isNaN(year) || isNaN(month) || isNaN(day))
	{
		return(false);
	}

	year = parseFloat(year);

	if(year < 2000 || year > 3000)
	{
        return(false);
	}

	month = parseInt(month,10);

	if(month < 1 || month > 12)
	{
		return(false);
	}

	day = parseInt(day,10);

	if(day < 1 || day > 31)
	{
		return(false);
	}

	return(true);
}

function ValidateDateFormatAlert(field, message)
{
	if(ValidateDateFormat(field))
	{
		return(true);
	}

	alert(message);
	field.focus();
	field.select();
	return(false);
}

function ValidateEmail(field)
{
	var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;

	if(field.value.match(re))
	{
		return(true);
	}
	else
	{
		return(false);
	}
}

function ValidateEmailAlert(field, message)
{
	if(ValidateEmail(field))
	{
		return(true);
	}

	alert(message);
	field.focus();
	field.select();
	return(false);
}

function ValidateRequired(formObj, color)
{
    var idx;
	var fields = "";
	var firstEmptyField;
	var promptTextId;

	for(idx = 0; idx < formObj.elements.length; idx++)
	{
		promptTextId = formObj.elements[idx].getAttribute("name");	
		
		if(formObj.elements[idx].getAttribute("required") == "true" && formObj.elements[idx].value == "")
		{
			if(fields == "")
			{
				firstEmptyField = formObj.elements[idx];
			}
			else
			{
				fields += ", ";
			}
			fields += formObj.elements[idx].getAttribute("fieldName");			          
            
            if(color != "" && color != null) 
            {
                document.getElementById(promptTextId).style.color = color;	
            }
		}
		
		if(color != "" && color != null)
        {
	        if(formObj.elements[idx].getAttribute("required") == "true" && formObj.elements[idx].value != "")
	        {		    
                document.getElementById(promptTextId).style.color="black";	            
	        }
        }
	}
	return(fields);
}

function ValidateRequiredAlert(formObj, message, color)
{
	if(ValidateRequired(formObj, color) == "")
	{
		return(true);
	}

	alert(message + " " + ValidateRequired(formObj));	
	return(false);
}

function ValidatePhone(field)
{
   	var re = /^([0-9\s\-])+$/;

	if(field.value.match(re))
	{
		return(true);
	}
	return(false);	
}

function ValidatePhoneAlert(field, message)
{
	if(ValidatePhone(field))
	{
		return(true);
	}
	
	alert(message);
	field.focus();
	field.select();
	return(false);
}	

function ValidateMessageLength(field,value)
{
    if(field.value.length < value)
    {       
        return(true); 
    }
    return(false);
}	

function ValidateMessageLengthAlert(field,value,message)
{
    if(ValidateMessageLength(field,value))
    {
        return(true); 
    }
    alert(message);     
	return(false);
}	

