// Auto Format Phone Number
var zChar = new Array(' ', '(', ')', '-', '.');
var maxphonelength = 14;
var phonevalue1;
var phonevalue2;
var cursorposition;

function ParseForNumber1(object){
	phonevalue1 = ParseChar(object.value, zChar);
}
function ParseForNumber2(object){
	phonevalue2 = ParseChar(object.value, zChar);
}

function backspacerUPAccount(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)
	{
		var p = phonevalue1;
		p = p.replace(/[^\d]*/gi,"");
		object.value = p;
	}
}

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 < 8){
		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 >= 8){
		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,9);
		p40 = p40 + "-"
		
		p41 = pp.substring(9,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 < 12) {
			cursorposition = cursorposition + 3
		} else if (cursorposition == 12) {
			cursorposition = cursorposition + 1
		} else if (cursorposition >= 13) {
			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;
}

function MutliEmailValidate(source, arguments)
{		
	var emailfilter = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
	var rTrimArgs = rightTrim(arguments.Value);
	var emails = rTrimArgs.split(" ");
	var isvalid = true;
		
	if(emails.length > 0)
	{
		for(e = 0; e < emails.length; e++)
		{			
			var email = emails[e].substring(0,emails[e].length-1);			
			
			if(emailfilter.test(email) == false)
			{			
				isvalid = false;			
			}
		}
	}
	else
	{
		isvalid = false;	
	}
		
	arguments.IsValid = isvalid;	
}

function rightTrim(sString) 
{
	while (sString.substring(sString.length-1, sString.length) == ' ')
	{
		sString = sString.substring(0,sString.length-1);
	}
	return sString;
}

function ValidateComments(source, arguements)
{
	var comments = arguements.Value;
	var isvalid = true;
	if(comments.indexOf('<script>') > 0)
	{
		isvalid = false;
	}
	arguements.IsValid = isvalid;
}