// JavaScript Document


function checkForm(which)
{
	
//Validation
	
		var tReturn=false;
        arrReqFields = new Array("req_Name","req_Email","req_Phone","req_Message","strCAPTCHA");
		
	    tReturn=ValidateRequiredField(arrReqFields);
	    if(tReturn==false)return false;
	    
	    tReturn=false;
	    tReturn=CheckSpecialChar("req_Name","String");
		if(tReturn == true)tReturn= CheckSpecialChar("req_Message","String");
		if(tReturn == false)
		{
			return tReturn;
		}

		//email validation
		var emailok = true;
		var temp = document.getElementById('req_Email');  // ## validate by id ##
		//alert(req_Email);
		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');
			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) 
  						{
				  		    
  							alert(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")
					{
						alert('##### INCOMPLETE FORM ERROR ##### \n\n Some of the fields in this form (marked with an asterisk *)are mandatory. \n\n Please complete all these fields before submitting your request.');
						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;
}




//Code below is used for formating telephone number with onkeypress mouse event...do not delete!!
//<input type="text" name="ebFive_Phone" id="ebFive_Phone" onkeyup="validatephone(this);" onclick="javascript:getIt(this);" maxlength="14" />
/*format Phone Number Automatically*/
//format the phone number runtime automatically while filling the form
//Form name , the phone name or id must be mention inside this snippet
/*
var n;
var p;
var p1;
		function ValidatePhone()
		{
			p=p1.value
			if(p.length==3)
			{
				//d10=p.indexOf('(')
				pp=p;
				d4=p.indexOf('(')
				d5=p.indexOf(')')
				if(d4==-1)
				{
					pp="("+pp;
				}
				if(d5==-1)
				{
					pp=pp+")";
				}
				//pp="("+pp+")";
				document.frmEBFivevisaapplication.ebFive_Phone.value="";
				document.frmEBFivevisaapplication.ebFive_Phone.value=pp;
			}
			if(p.length>3)
			{
				d1=p.indexOf('(')
				d2=p.indexOf(')')
				if (d2==-1)
				{
					l30=p.length;
					p30=p.substring(0,4);
					//alert(p30);
					p30=p30+")"
					p31=p.substring(4,l30);
					pp=p30+p31;
					//alert(p31);
					document.frmEBFivevisaapplication.ebFive_Phone.value="";
					document.frmEBFivevisaapplication.ebFive_Phone.value=pp;
				}
			}
			if(p.length>5)
			{
				p11=p.substring(d1+1,d2);
				if(p11.length>3)
				{
					p12=p11;
					l12=p12.length;
					l15=p.length
					//l12=l12-3
					p13=p11.substring(0,3);
					p14=p11.substring(3,l12);
					p15=p.substring(d2+1,l15);
					
					document.frmEBFivevisaapplication.ebFive_Phone.value="";
					
					pp="("+p13+")"+p14+p15;
					
					document.frmEBFivevisaapplication.ebFive_Phone.value=pp;
				//obj1.value="";
				//obj1.value=pp;
				}
				l16=p.length;
				p16=p.substring(d2+1,l16);
				l17=p16.length;
				if(l17>3&&p16.indexOf('-')==-1)
				{
					p17=p.substring(d2+1,d2+4);
					p18=p.substring(d2+4,l16);
					p19=p.substring(0,d2+1);
					//alert(p19);
					pp=p19+p17+"-"+p18;
				
				document.frmEBFivevisaapplication.ebFive_Phone.value="";
				document.frmEBFivevisaapplication.ebFive_Phone.value=pp;
				//obj1.value="";
				//obj1.value=pp;
				}
			}
		//}
		setTimeout(ValidatePhone,100)
		}


	function getIt(m)
		{
			n=m.name;
			//p1=document.forms[0].elements[n]
			p1=m
			ValidatePhone();
		}
	
		function testphone(obj1)
		{
				p=obj1.value
				//alert(p)
				p=p.replace("(","")
				p=p.replace(")","")
				p=p.replace("-","")
				p=p.replace("-","")
				//alert(isNaN(p))
				if (isNaN(p)==true){
				alert("Check phone");
				return false;
			}
		}
*/
/*Format Phone Number end*/

/*Phone Number Validation*/
// this functions execute auto delete the alaphabetics entered into the filed while filling the form runtime
// allows only to fill in the numeric data (digit or number)
/*
		function validatephone(xxxxx)
		{
			 var maintainplus = '';
			var numval = xxxxx.value
			if ( numval.charAt(0)=='+' )
			{ 
				var maintainplus = '+';
			}
			curphonevar = numval.replace(/[\\A-Za-z!"£$%^&*+_={};:'@#~,.¦\/<>?|`¬\]\[]/g,'');
			xxxxx.value = maintainplus + curphonevar;
			var maintainplus = '';
			xxxxx.focus;
		}
*/
/*Validate Phone Number*/
