// JavaScript Document

<!--#include file="GenUI.js" -->
function checkForm(which)
{
	
//Validation
	
		var tReturn=false;
        //This is for mendetory Feild.
		arrReqFields = new Array("txtName","txtPhone","txtEmail");

	    tReturn=ValidateRequiredField(arrReqFields);
	    if(tReturn==false)return false;
	    
	    tReturn=false;
	    tReturn=CheckSpecialChar("txtName","String");
		if(tReturn == true)tReturn= CheckSpecialChar("txtCity","String");
		if(tReturn == true)tReturn=CheckSpecialChar("txtState","String");
		if(tReturn == true)tReturn=CheckSpecialChar("txtCountry","String");
		if(tReturn == true)tReturn=CheckSpecialChar("txtZipcode","Numeric");
		if(tReturn == false)
		{
			return tReturn;
		}

		
		//email validation
		var emailok = true;
		var temp = document.getElementById('txtEmail');  // ## validate by id ##	
		var atsym = temp.value.indexOf('@');
		var period = temp.value.lastIndexOf('.');
		var space = temp.value.indexOf(' ');
		var length = temp.value.length - 1;
		if ((atsym < 1) || (period <= atsym+1) || (period == length ) || (space != -1))
		{ 
			var emailok = false;
			// ## You can change your Valid Email alert message here ##
			//alert('###### VALID EMAIL REQUIRED ###### \n Please enter a Valid Email Address! \n\n An example of a Valid Email Address would be \n\n userid@email.com \n');
			 WarningBox('Please enter a Valid Email Address!');
			temp.value='';
			temp.focus();
		}
		return emailok;
		//return true;
}
		


		function CheckSpecialChar(vObject,vType)
		{
				var iChars;
				var AlertMsg;
				 
					if(vType == "String")
					{
					   
					    iChars = "`!@#$%^&*()+=-[]\\\';,./{}|\":<>?1234567890";
						AlertMsg ="Special characters are not allowed!";
					}
					else if (vType == "Numeric")
					{
						iChars = "`!@#$%^&*()+=-[]\\\;,./{}|\:<>? ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'''";
						AlertMsg ="Invalid value";
						
					}
					else if (vType == "AlphaNumeric")
					{
					     iChars = "`!@#$%^&*()+=[]\\\';,./{}|\":<>?";
						AlertMsg ="Special characters are not allowed!"; 
					}
					else if(vType == "SingleQuote")
					{
					    iChars = "'";
						AlertMsg ="Single quote is not allowed!"; 
					}
					for (var i = 0; i < document.getElementById(vObject).value.length; i++) 
					{
  						if (iChars.indexOf(document.getElementById(vObject).value.charAt(i)) != -1) 
  						{
				  		    
  							WarningBox(AlertMsg);
  							document.getElementById(vObject).value="";
							document.getElementById(vObject).focus();
  							return false;
  						}
					}
  					return true;	
		}
			
			
		
		function ValidateRequiredField(arrFieldIDs)
		{
			
			if(arrFieldIDs.length > 0)
			{
				for(var i=0;i<arrFieldIDs.length;i++)
				{
					
					if(trim(document.getElementById(arrFieldIDs[i]).value) == "" || document.getElementById(arrFieldIDs[i]).value == "-1")
					{
						WarningBox('Fields marked as * are required');
						return false;
					}
					
				}
				return true;		
			}
		}
				
	function trim(inputString) 
	{
		if (typeof inputString != "string") { return inputString; }
		var retValue = inputString;
		var ch = retValue.substring(0, 1);
		while (ch == " ") 
		{ // Check for spaces at the beginning of the string
		retValue = retValue.substring(1, retValue.length);
		ch = retValue.substring(0, 1);
		}
		ch = retValue.substring(retValue.length-1, retValue.length);
		while (ch == " ") 
		{ // Check for spaces at the end of the string
		retValue = retValue.substring(0, retValue.length-1);
		ch = retValue.substring(retValue.length-1, retValue.length);
		}
		while (retValue.indexOf("  ") != -1)
		{ // Note that there are two spaces in the string - look for multiple spaces within the string
		retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length); // Again, there are two spaces in each of the strings
		}
		return retValue; // Return the trimmed string back to the user
	} 
	
			


//Code below executes on tab key event
/*format Phone Number Automatically by tab key*/

	var zChar = new Array(' ', '(', ')', '-', '.');
	var maxphonelength = 13;
	var phonevalue1;
	var phonevalue2;
	var cursorposition;

function ParseForNumber1(object)
{
	phonevalue1 = ParseChar(object.value, zChar);
}

function ParseForNumber2(object)
{
	phonevalue2 = ParseChar(object.value, zChar);
}

function backspacerUP(object,e) 
{ 
	if(e)
	{ 
		e = e 
	} 
	else 
	{
		e = window.event 
	} 
	if(e.which)
	{ 
		var keycode = e.which 
	} 
	else 
	{
		var keycode = e.keyCode 
	}

	ParseForNumber1(object)

	if(keycode >= 48)
	{
		ValidatePhone(object)
	}
}

function backspacerDOWN(object,e) 
{ 
	if(e)
	{ 
		e = e 
	} 
	else 
	{
		e = window.event 
	} 
	if(e.which)
	{ 
		var keycode = e.which 
	} 
	else 
	{
		var keycode = e.keyCode 
	}
	
	ParseForNumber2(object)
} 

function GetCursorPosition()
{
    
	var t1 = phonevalue1;
	var t2 = phonevalue2;
	var bool = false
    for (i=0; i<t1.length; i++)
    {
    	if (t1.substring(i,1) != t2.substring(i,1)) 
		{
    		if(!bool) 
			{
    			cursorposition=i
    			bool=true
    		}
    	}
    }
}

function ValidatePhone(object)
{
	var p = phonevalue1
	
	p = p.replace(/[^\d]*/gi,"")

	if (p.length < 3)
	{
		object.value=p
	} 
	else if(p.length==3)
	{
		pp=p;
		d4=p.indexOf('(')
		d5=p.indexOf(')')
		if(d4==-1)
		{
			pp="("+pp;
		}
		if(d5==-1)
		{
			pp=pp+")";
		}
		object.value = pp;
	} 
	else if(p.length>3 && p.length < 7)
	{
		p ="(" + p;	
		l30=p.length;
		p30=p.substring(0,4);
		p30=p30+")"

		p31=p.substring(4,l30);
		pp=p30+p31;

		object.value = pp;	
		
	} 
	else if(p.length >= 7)
	{
		p ="(" + p;	
		l30=p.length;
		p30=p.substring(0,4);
		p30=p30+")"
		
		p31=p.substring(4,l30);
		pp=p30+p31;
		
		l40 = pp.length;
		p40 = pp.substring(0,8);
		p40 = p40 + "-"
		
		p41 = pp.substring(8,l40);
		ppp = p40 + p41;
		
		object.value = ppp.substring(0, maxphonelength);
	}
	
	GetCursorPosition()
	
	if(cursorposition >= 0)
	{
		if (cursorposition == 0) 
		{
			cursorposition = 2
		} 
		else if (cursorposition <= 2) 
		{
			cursorposition = cursorposition + 1
		} 
		else if (cursorposition <= 5) 
		{
			cursorposition = cursorposition + 2
		} 
		else if (cursorposition == 6) 
		{
			cursorposition = cursorposition + 2
		} 
		else if (cursorposition == 7) 
		{
			cursorposition = cursorposition + 4
			e1=object.value.indexOf(')')
			e2=object.value.indexOf('-')
			if (e1>-1 && e2>-1)
			{
				if (e2-e1 == 4) 
				{
					cursorposition = cursorposition - 1
				}
			}
		} 
		else if (cursorposition < 11) 
		{
			cursorposition = cursorposition + 3
		} 
		else if (cursorposition == 11) 
		{
			cursorposition = cursorposition + 1
		} 
		else if (cursorposition >= 12) 
		{
			cursorposition = cursorposition
		}

        var txtRange = object.createTextRange();
        txtRange.moveStart( "character", cursorposition);
		txtRange.moveEnd( "character", cursorposition - object.value.length);
        txtRange.select();
    }

}

function ParseChar(sStr, sChar)
{
    if (sChar.length == null) 
    {
        zChar = new Array(sChar);
    }
    else zChar = sChar;
    
    for (i=0; i<zChar.length; i++)
    {
        sNewStr = "";
    
        var iStart = 0;
        var iEnd = sStr.indexOf(sChar[i]);
    
        while (iEnd != -1)
        {
            sNewStr += sStr.substring(iStart, iEnd);
            iStart = iEnd + 1;
            iEnd = sStr.indexOf(sChar[i], iStart);
        }
        sNewStr += sStr.substring(sStr.lastIndexOf(sChar[i]) + 1, sStr.length);
        
        sStr = sNewStr;
    }
    
    return sNewStr;
}
