var PATTERN_ANY = '.';
var PATTERN_CC = '^[0-9]{4}-?[0-9]{4}-?[0-9]{4}-?[0-9]{4}$';
var PATTERN_DATE = '^[0-9]{1,2}[\\-/]{1}[0-9]{1,2}[\\-/]{1}[0-9]{4}$';
var PATTERN_EMAIL = '^[A-Za-z0-9_.-]+@([A-Za-z0-9_.-]+[.])+[A-Za-z]+$';
var PATTERN_MONEY = '^[0-9]+.[0-9]{2}$';
var PATTERN_NUMBER = '^[0-9]+$';
var PATTERN_PHONE = '^((\([0-9]{3}\) ?)|([0-9]{3}-))?[0-9]{3}-[0-9]{4}$';
var PATTERN_SSN = '^[0-9]{3}-[0-9]{2}-[0-9]{4}$';
var PATTERN_ZIP = '^[0-9]{5}(-[0-9]{4})?$';

function ForceNumeric(field)
{
	var inputStr = field.value.toString();
	var strLength = inputStr.length;
	var newStr = "";
	
	for (var i = 0; i < strLength; i++)  
	{
		var oneChar = inputStr.charAt(i);
		
		if (!( isNaN(oneChar) || oneChar == ' ') || oneChar == '.' || oneChar == '-' )
		{  
			newStr = String(newStr) + String(field.value.substring(i,i+1));
		}
	}
	if (newStr != field.value)
	{
		field.value = newStr;
	}
}
function NumericKeyUp(fieldToEval,fieldToEvalLength,objToJumpTo)  
{
	ForceNumeric(fieldToEval);
	if ((fieldToEval.value.length == fieldToEvalLength)&&  
		(fieldToEval.value != prevValue) && (objToJumpTo != null)) { objToJumpTo.focus() }  
		prevValue = fieldToEval.value;
}

function HideShow(tagId)
{
    if (document.getElementById(tagId).style.display == 'none') 
    {
        document.getElementById(tagId).style.display = 'block';
    }
    else 
    {
        document.getElementById(tagId).style.display = 'none';
    }
}

// Form Validation Starts Here
function validateLogin()
{
	vform = new ValidationForm(document.Sanctus);
	vform.AddElement('txtUserId', 'User Id', 1, PATTERN_ANY);
	vform.AddElement('txtPassword', 'Password', 1, PATTERN_ANY);
		
	if (vform.Validate())
	{
		return true;
	}
	else
	{
		return false;
	}
}
function validateAddInventory()
{
	vform = new ValidationForm(document.aspnetForm);
	vform.AddElement('ctl00_ContentPlaceHolder1_txtDescription', 'Description', 1, PATTERN_ANY);
	vform.AddElement('ctl00_ContentPlaceHolder1_ddlVendor', 'Vendor', 1, PATTERN_ANY, 'DropDown');
		
	if (vform.Validate())
	{
		return true;
	}
	else
	{
		return false;
	}
}
function validateFundRaiser()
{
	vform = new ValidationForm(document.aspnetForm);
	vform.AddElement('ctl00_ContentPlaceHolder1_txtStartDate', 'Start Date', 1, PATTERN_DATE);
		
	if (vform.Validate())
	{
		return true;
	}
	else
	{
		return false;
	}
}

function vaildateSearchAddOn()
{
	vform = new ValidationForm(document.aspnetForm);
	vform.AddElement('ctl00_ContentPlaceHolder1_txtFrId', 'FR ID', 1, PATTERN_NUMBER);
	vform.AddElement('ctl00_ContentPlaceHolder1_ddlType', 'Type', 1, PATTERN_ANY, 'DropDown');
			
	if (vform.Validate())
	{
		return true;
	}
	else
	{
		return false;
	}
}
function validateAddVendor()
{
	vform = new ValidationForm(document.aspnetForm);
	vform.AddElement('ctl00_ContentPlaceHolder1_txtVendor', 'Vendor Name', 1, PATTERN_ANY);
		
	if (vform.Validate())
	{
		return true;
	}
	else
	{
		return false;
	}
}
function validateNewsLetter()
{
	vform = new ValidationForm(document.aspnetForm);
	vform.AddElement('ctl00_ContentPlaceHolder1_txtBeginDate', 'Show Date', 1, PATTERN_DATE);
	vform.AddElement('ctl00_ContentPlaceHolder1_txtTitle', 'Title', 1, PATTERN_ANY);
		
	if (vform.Validate())
	{
		return true;
	}
	else
	{
		return false;
	}
}

function ValidationForm(oForm) {
	this.Elements = new Array();
	this.Form = oForm;
	this.AddElement = AddElement;
	this.Validate = Validate;
}

function Element(sName, sCaption, bRequired, sPattern, sType) {
	this.Name = sName;
	this.Caption = sCaption;
	this.Value = '';
	this.Required = bRequired;
	this.Pattern = sPattern;
	this.FieldType = sType;
}

function AddElement(sName, sCaption, bRequired, sPattern, sType) {
	index = this.Elements.length;
	this.Elements[index] = new Element(sName, sCaption, bRequired, sPattern, sType);
}

function Validate() {
	sMissing = '';
	sInvalid = '';
	
	for (i=0;i<this.Elements.length;i++)
	{
		oElement = this.Elements[i];
		oElement.Value = eval('document.' + this.Form.name + '.' + oElement.Name).value;
				
		// Validate required fields are filled in.		
		if (oElement.Required == 1)
		{		
			if (oElement.Value == '')
			{
				sMissing += oElement.Caption + '\n';
			}
			if (oElement.FieldType == 'Name')
			{				
				if (oElement.Value == 'First Name')
				{
					sMissing += oElement.Caption + '\n';
				}
				if (oElement.Value == 'Middle Name')
				{
					sMissing += oElement.Caption + '\n';
				}				
				if (oElement.Value == 'Last Name')
				{
					sMissing += oElement.Caption + '\n';
				}				
			}
			if (oElement.FieldType == 'Dropdown')
			{			    
				if (document.getElementById(oElement.Name).selectedIndex == 0)
				{
					sMissing += oElement.Caption + '\n';
				}
			}
			if (oElement.FieldType == 'ListBox')
			{
			    if (oElement.selectedindex < 1)
			    {
			        sMissing += oElement.Caption + '\n';
			    }			
			}
			if (oElement.FieldType == 'Radio')
			{
				sMissing += oElement.Caption + '\n';
			}			
		}

		// Validate required patterns match.
		if (oElement.Value != '' && oElement.Pattern != '')
		{
			oRegExp = new RegExp(oElement.Pattern, 'gi');
			
			if (!oRegExp.test(oElement.Value))
			{
				sInvalid += oElement.Caption + '\n';
			}
		}
	}
	
	if (sMissing != '')
	{
		sMissing = 'The following fields are missing:\n\n' + sMissing + '\n';
	}
	
	if (sInvalid != '')
	{
		sInvalid = 'The following fields are invalid:\n\n' + sInvalid;
	}
	
	if (sMissing != '' || sInvalid != '')
	{
		alert(sMissing + sInvalid);
		return 0;
	}
	else
	{
		return 1;
	}
}
function printIt()
{	
	window.print();
}
function updateSpan (oChangeElement, oUpdateElement)
{
	document.getElementById(oUpdateElement).innerText = document.getElementById(oChangeElement).value;
}
