var la_NameOfDays = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];
var la_NameOfMonths = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];

// Browser sniffer. Written by PerlScriptsJavaScripts.com

v3 = 0; op = 0; ie4  = 0; ie5 = 0; nn4 = 0; nn6 = 0; isMac = 0;

if(document.images){
    if(navigator.userAgent.indexOf("Opera") != -1){
        op = 1;
    } else {
        ie4 = (document.all && !document.getElementById);
        nn4 = (document.layers);
        ie5 = (document.all && document.getElementById);
        nn6 = (document.addEventListener);
    }
} else {
    v3 = 1;    
}


function Form_Focus(ll_Initial, lc_ControlName)
{
	var lc_Focus = document.getElementById(lc_ControlName).value;
	if (lc_Focus.length == 0 || ll_Initial == false)
	{
		document.getElementById(lc_ControlName).focus();
	}
}

function GetValue(lc_Name, lc_ErrName)
{
	var lo_Object = eval("document.getElementById('" + lc_Name + "')");
	var lc_Type = typeof lo_Object;
	var lc_Value = "";
	if (lc_Type == "object" && lo_Object != null)
	{
		lc_Value = lo_Object.value;
	}
	return lc_Value;	
}

function CheckEmpty(lc_Value, lc_ErrName)
{
	var lc_ErrMessage = "";
	if (lc_Value.length == 0)
	{
		lc_ErrMessage = ErrMessage(lc_ErrMessage, lc_ErrName + ' cannot be empty');			
	}
	return lc_ErrMessage;
}

function CheckObjectEmpty(lc_Name, lc_ErrName)
{
	var lc_ErrMessage = "";
	var lo_Object = eval("document.getElementById('" + lc_Name + "')");
	var lc_Value = lo_Object.value;
	if (lc_Value.length == 0)
	{
		lc_ErrMessage = ErrMessage(lc_ErrMessage, lc_ErrName + ' cannot be empty');			
	}
	return lc_ErrMessage;
}

function SaveRadio(lo_Radio)
{
	var lc_ErrMessage = "";
	var lc_RadioButton = 'hdn' + lo_Radio.name.substring(3);
	if (lo_Radio.checked)
	{
		document.getElementById(lc_RadioButton).value = lo_Radio.value;
	}
	return lc_ErrMessage;
}

function ResetRadio(lc_Name)
{
	var lo_RadioButtons = document.getElementById(lc_Name);
	var lc_Radio = 'hdn' + lc_Name.substring(3);
	var ln_Buttons = lo_RadioButtons.length;
	for (ln_Count=0; ln_Count<ln_Buttons; ln_Count++)
	{
		lo_RadioButtons[ln_Count].checked=false;
	}
	document.getElementById(lc_Radio).value="";
}

function CheckRadio(lc_Name, lc_ErrName)
{
	var lc_ErrMessage = "";
	var lc_Radio = document.getElementById('hdn' + lc_Name).value;
	var lc_Type = typeof lc_Radio;
	if (lc_Type != 'undefined' && lc_Radio.length > 0)
	{
		lc_ErrMessage = "";
	}
	else
	{
		lc_ErrMessage = ErrMessage(lc_ErrMessage,'Please select your ' + lc_ErrName);
	}
	return lc_ErrMessage;
}

function SaveSelect(lo_Select)
{
	var lc_ErrMessage = "";
	var lc_SelectOption = 'hdn' + lo_Select.name.substring(3);
	document.getElementById(lc_SelectOption).value = lo_Select.options[lo_Select.selectedIndex].value;
	return lc_ErrMessage;
}

function CheckSelect(lc_Name, lc_ErrName)
{
	var lc_ErrMessage = "";
	var lc_FullName = 'hdn' + lc_Name.substring(3);
	var lc_Select = document.getElementById(lc_FullName).value;

	var lc_Type = typeof lc_Select;
	if (lc_Type != 'undefined' && lc_Select.length > 0 && lc_Select !=0)
	{
		lc_ErrMessage = '';
	}
	else
	{
		lc_ErrMessage = ErrMessage(lc_ErrMessage,'Please select your ' + lc_ErrName);
	}
	return lc_ErrMessage;
}

function SaveCheckbox(lo_Checkbox,lc_Values)
{
	var lc_ErrMessage = "";
	var lc_Checkbox = 'hdn' + lo_Checkbox.name.substring(3);
	var la_Values = lc_Values.split(",");
	if (lo_Checkbox.checked)
	{
		document.getElementById(lc_Checkbox).value = la_Values[0];		
	}
	else
	{
		document.getElementById(lc_Checkbox).value = la_Values[1];		
	}
	return lc_ErrMessage;
}

function CheckCheckbox(lc_Name, lc_ErrName)
{
	var lc_ErrMessage = "";
	var lc_Checkbox = document.getElementById('hdn' + lc_Name).value;
	var lc_Type = typeof lc_Checkbox;
	if (lc_Type != 'undefined' && lc_Checkbox.length > 0)
	{
		lc_ErrMessage = "";
	}
	else
	{
		lc_ErrMessage = ErrMessage(lc_ErrMessage,'Please click your acceptance of ' + lc_ErrName);
	}
	return lc_ErrMessage;
}

function CheckEmailFormat(lc_Email, lc_ErrName)
{
	var lc_ErrMessage = "";
	var lc_CheckStdEmailAddress = "";
	var ln_Chars = lc_Email.length;
	if (ln_Chars > 0)
	{
		var ln_AtSignPos = lc_Email.indexOf('@');
		if (ln_AtSignPos > -1)
		{
			var lc_Before = lc_Email.substring(0,ln_AtSignPos);
			if (lc_Before.charAt(0) == '.')
			{
				lc_ErrMessage = ErrMessage(lc_ErrMessage,lc_ErrName + ' cannot start with a "."');				
			}
			var ln_Before_FS = lc_Before.lastIndexOf(".");
			if (ln_Before_FS > -1 && ln_Before_FS == lc_Before.length-1)
			{
				lc_ErrMessage = ErrMessage(lc_ErrMessage,lc_ErrName + ' must have at least 2 characters after the "." and before the "@"');
			}
				
		}
		else
		{
			lc_ErrMessage = ErrMessage(lc_ErrMessage,lc_ErrName + ' must contain @ sign');
		}
		if (ln_AtSignPos < lc_Email.length-1)
		{
			var lc_After = lc_Email.substring(ln_AtSignPos+1);
			if (lc_After.charAt(0) == '.')
			{
				lc_ErrMessage = ErrMessage(lc_ErrMessage,lc_ErrName + ' cannot have a "." immediately after the "@"');				
			}
			var ln_After_FS = lc_After.lastIndexOf(".");
			if (ln_After_FS > 0)
			{
				var ln_After_FS2 = lc_After.indexOf(".");
				if (ln_After_FS2 > 0 && ln_After_FS2 != ln_After_FS)
				{
					if (ln_After_FS2 < 2)
					{
						lc_ErrMessage = ErrMessage(lc_ErrMessage, lc_ErrName + ' must have at least 2 characters after the "@" and before the "."');
					}
					if (ln_After_FS2 + 2 >= ln_After_FS)
					{
						lc_ErrMessage = ErrMessage(lc_ErrMessage, lc_ErrName + ' must have at least 2 characters between the "." characters');
					}					
				}
				else
				{
					if (ln_After_FS < 2)
					{
						lc_ErrMessage = ErrMessage(lc_ErrMessage, lc_ErrName + ' must have at least 2 characters after the "@" and before the "."');
					}
				}
			}
			else
			{
				lc_ErrMessage = ErrMessage(lc_ErrMessage, lc_ErrName + ' must contain at least one "." character after the "@"');
			}
			if (ln_After_FS > -1 && ln_After_FS == lc_After.length-1)
			{
				lc_ErrMessage = ErrMessage(lc_ErrMessage, lc_ErrName + ' cannot end with a "." character');
			}
			if (ln_After_FS > -1 && ln_After_FS >= lc_After.length-2)
			{
				lc_ErrMessage = ErrMessage(lc_ErrMessage, lc_ErrName + ' must end with at least 2 characters after the last "."');
			}			
		}
		else
		{
			lc_ErrMessage = ErrMessage(lc_ErrMessage, lc_ErrName + ' address cannot end with an @ sign');
		}	
	}
	else
	{
		lc_ErrMessage = ErrMessage(lc_ErrMessage,'Please enter a valid ' + lc_ErrName + ' address');
	}
	lc_CheckStdEmailAddress=lc_ErrMessage;
	return lc_ErrMessage;
}


function CheckCharacters(pc_Value, pc_ValidChars, pc_ErrName)
{
	var lc_ErrMessage = '';
	var lc_ValidChars = '';
	for (ln_Count=0; ln_Count < pc_ValidChars.length; ln_Count++)
	{		
		lc_ValidChars = lc_ValidChars + pc_ValidChars.charAt(ln_Count) + ',';
	}
	var lc_InvalidCharacters = '';	
	pc_Value = pc_Value.toLowerCase();
	for (ln_Count=0; ln_Count < pc_Value.length; ln_Count++)
	{
		ln_Pos = lc_ValidChars.indexOf(pc_Value.charAt(ln_Count) + ',');
		if (ln_Pos == -1)
		{
			lc_InvalidCharacters = lc_InvalidCharacters + pc_Value.charAt(ln_Count) + ',';
		}
	}
	if (lc_InvalidCharacters.length > 0)
	{
		lc_ErrMessage = ErrMessage(lc_ErrMessage, pc_ErrName + ' - ' + 'cannot contain the characters: ' + lc_InvalidCharacters.substring(0, lc_InvalidCharacters.length-1));
	}
	lc_ValidChars =	lc_ValidChars.substring(0,lc_ValidChars.length-1);
	if (lc_ErrMessage.length > 0)
	{
		if (lc_ValidChars.charAt(0)==' ')
		{
			lc_ValidChars='space' + lc_ValidChars.substring(1);
		}
		lc_ErrMessage = ErrMessage(lc_ErrMessage, pc_ErrName + ' - valid characters are: ' + lc_ValidChars);		
	}
	return lc_ErrMessage;
}


function CheckNotZero(pc_Value, pc_ErrName)
{
	var lc_ErrMessage = '';
	if (pc_Value == '0')
	{
		lc_ErrMessage = ErrMessage(lc_ErrMessage, pc_ErrName + " - " + 'not selected');
	}	
	return lc_ErrMessage
}


function CheckFormat(pc_Format, pc_Value, pc_ErrName)
{
	var lc_ErrMessage = '';
	var lc_ErrTemp = '';
	for (ln_Counter=0; ln_Counter < pc_Value.length; ln_Counter++)
	{
		ln_Char = ln_Counter + 1;
		if (pc_Format.charAt(ln_Counter) == "9")
		{
			lc_ErrMessage = ErrMessage(lc_ErrMessage, CheckCharacters(pc_Value.charAt(ln_Counter),"0123456789",pc_ErrName + " (Char:" + ln_Char + ")"));
		}
		else if (pc_Format.charAt(ln_Counter) == "A")
		{
			lc_ErrMessage = ErrMessage(lc_ErrMessage, CheckCharacters(pc_Value.charAt(ln_Counter),"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",pc_ErrName + " (Char:" + ln_Char + ")"));
		}
		else
		{
			if (pc_Format.charAt(ln_Counter) != pc_Value.charAt(ln_Counter))
			{
				lc_ErrMessage = ErrMessage(lc_ErrMessage, pc_ErrName + " (Char:" + ln_Char + ") = must be the character " + pc_Format.charAt(ln_Counter));			
			}
		}
	}
	if (lc_ErrMessage.length > 0 || pc_Format.length != pc_Value.length)
	{
		lc_ErrMessage = ErrMessage(lc_ErrMessage, "Correct Format for field is: " + pc_Format);
	}
	return lc_ErrMessage;
}

function CheckDate(pc_Value, pc_ErrName)
{
	var lc_ErrMessage = '';	
	var ll_ValidDate = false;
	lc_ErrMessage = CheckFormat("99/99/9999", pc_Value, pc_ErrName);
	if (lc_ErrMessage.length == 0)
	{
		ln_Day = Number(pc_Value.charAt(0) + pc_Value.charAt(1));
		ln_Month = Number(pc_Value.charAt(3) + pc_Value.charAt(4));
		ln_Year = Number(pc_Value.charAt(6) + pc_Value.charAt(7) + pc_Value.charAt(8) + pc_Value.charAt(9));
		ln_Leap_Year = ln_Year % 4;
		if (ln_Leap_Year == 0)
		{
			if (ln_Month == 2 && ln_Day == 29)
			{
				ll_ValidDate = true;
			}
		}
		if (ll_ValidDate == false)
		{
			if (ln_Month == 1 || ln_Month == 3 || ln_Month == 5 || ln_Month == 7 || ln_Month == 8 || ln_Month == 10 || ln_Month == 12)
			{
				if (ln_Day < 1 || ln_Day > 31)
				{
					lc_ErrMessage = ErrMessage(lc_ErrMessage,"Invalid - 31 Days in " + la_NameOfMonths[ln_Month-1] + ", " + ln_Year)
				}
			}
			else if (ln_Month == 4 || ln_Month == 6 || ln_Month == 9 || ln_Month == 11)
			{
				if (ln_Day < 1 || ln_Day > 30)
				{
					lc_ErrMessage = ErrMessage(lc_ErrMessage,"Invalid - 30 Days in " + la_NameOfMonths[ln_Month-1] + ", " + ln_Year)
				}
			}
			else if (ln_Month == 2)
			{
				if (ln_Day < 1 || ln_Day > 28)
				{
					lc_ErrMessage = ErrMessage(lc_ErrMessage,"Invalid - 28 Days in " + la_NameOfMonths[ln_Month-1] + ", " + ln_Year)
				}
			}
		}
	}
	return lc_ErrMessage
}


function ErrMessage(lc_Current, lc_New)
{
	var lc_ErrMessage = "";
	if (lc_New.length > 0)
	{
		if (lc_Current.length > 0)
			lc_ErrMessage = lc_Current + '<br/>' + lc_New;
		else
			lc_ErrMessage = lc_New;
	}
	else
	{
		lc_ErrMessage = lc_Current;
	}
	return lc_ErrMessage;
}

function TrimRight(pc_Value, pc_Char)
{
	var ln_Pos = pc_Value.lastIndexOf(pc_Char);
	var lc_TrimRight = pc_Value;
	if (ln_Pos > 0)
	{
		lc_TrimRight=pc_Value.substring(ln_Pos+1);
	}
	return lc_TrimRight;
}

function Trim(pc_String) 
{
  pc_String = pc_String.replace( /^\s+/g, "" );// strip leading
  return pc_String.replace( /\s+$/g, "" );// strip trailing
}
