// JavaScript Document
var reOneOrMoreDigits = /[\d+]/;
var reNoDigits = /[^\d]/gi;
var reAlphaNumOnly = /^[\w ]+$/;

var sbmtVl;


function echeck(str) {
	    var errBxStl = document.getElementById('errBx').style; 
  		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		 	errBxStl.display = 'block';
		    return false
		 }
		 if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		  	errBxStl.display = 'block';
		    return false
		 }
		 if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    errBxStl.display = 'block';
		    return false
	     }
		 if (str.indexOf(at,(lat+1))!=-1){
		   	errBxStl.display = 'block';
		    return false
		 }
		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
			errBxStl.display = 'block';
		    return false
		 }
		 if (str.indexOf(dot,(lat+2))==-1){
		  	errBxStl.display = 'block';
		    return false
		 }
		 if (str.indexOf(" ")!=-1){
			errBxStl.display = 'block';
		    return false
		 }
 		 return true					
	}

function ValidateForm(flNum){
	var inEmail=document.APEntCnt.inEmail;
	var inName=document.APEntCnt.inName;
	var errBxStl = document.getElementById('errBx').style; 
    var	errBxMss = document.getElementById('errBx');
if (flNum==1){
	if ((inName.value==null)||(inName.value=="")){
		errBxMss.innerHTML = 'You did not enter your Name.  Please fill in your Name.';
		errBxStl.display = 'block';
		errBxStl.marginTop = '19';
		errBxStl.height = '30';
		opacity('errBxStl', 0, 80, 500);
		window.scrollTo(0,0);
	    inName.focus();
		return false
	}
   if(!reAlphaNumOnly.test(inName.value)) {
      errBxMss.innerHTML = 'You entered invalid character/s into your Name. Only letters and numbers are allowed. Please check your Name field and make necessary corrections.';
	  errBxStl.display = 'block';
	  errBxStl.marginTop = '19';
	  errBxStl.height = '70';
	  opacity('errBxStl', 0, 80, 500);
	  window.scrollTo(0,0)
      inName.focus();
      return false;
   }
} else {
	if ((inName.value==null)||(inName.value=="")){
		errBxMss.innerHTML = 'You did not enter your Name.  Please fill in your Name.';
		errBxStl.display = 'block';
		errBxStl.marginTop = '19';
		errBxStl.height = '30';
		opacity('errBxStl', 0, 80, 500);
		window.scrollTo(0,0);
	    inName.focus();
		return false
	}
   if  (!reAlphaNumOnly.test(inName.value)) {
        errBxMss.innerHTML = 'You entered invalid character/s into your Name. Only letters and numbers are allowed. Please check your Name field and make necessary corrections.';
	    errBxStl.display = 'block';
	    errBxStl.marginTop = '19';
	    errBxStl.height = '70';
	    opacity('errBxStl', 0, 80, 500);
	    window.scrollTo(0,0)
        inName.focus();
        return false;
    }
	if ((inEmail.value==null)||(inEmail.value=="")){
		errBxMss.innerHTML = 'You did not enter your Email address. Please fill in your Email address.';
		errBxStl.display = 'block';
		errBxStl.marginTop = '68';
		opacity('errBxStl', 0, 80, 500);
		window.scrollTo(0,0);
	    inEmail.focus();
		return false
	}
	if (echeck(inEmail.value)==false){
		//inEmail.value="";
		errBxMss.innerHTML = 'You entered incorrect Email address. Please check the Email address field and make necessary corrections.';
		errBxStl.display = 'block';
		errBxStl.marginTop = '68';
		opacity('errBxStl', 0, 80, 500);
		window.scrollTo(0,0)
	    inEmail.focus();
		return false
	}
	sbmtVl = 1;
	return true
	opacity('errBxStl', 80, 0, 500);	
 }
}

function submitFrm(){
 ValidateForm();
   if (sbmtVl == 1){
   document.APEntCnt.inCheck.value = 1;
   document.APEntCnt.submit();
   }
}

/********************* Error Box oppasity change *********************/
function opacity(id, opacStart, opacEnd, millisec) { 
    //speed for each frame 
    var speed = Math.round(millisec / 100); 
    var timer = 0; 

    //determine the direction for the blending, if start and end are the same nothing happens 
    if(opacStart > opacEnd) { 
        for(i = opacStart; i >= opacEnd; i--) { 
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed)); 
            timer++; 
        } 
    } else if(opacStart < opacEnd) { 
        for(i = opacStart; i <= opacEnd; i++) 
            { 
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed)); 
            timer++; 
        } 
    } 
} 

//change the opacity for different browsers 
function changeOpac(opacity, id) { 
    var object = document.getElementById('errBx').style; 
    object.opacity = (opacity / 100); 
    object.MozOpacity = (opacity / 100); 
    object.KhtmlOpacity = (opacity / 100); 
    object.filter = "alpha(opacity=" + opacity + ")"; 
	
} 














/*********** Phone field mask **************/
function doMask(textBox) {
	var keyCode = event.which ? event.which : event.keyCode;
	if(keyCode == 13 || keyCode == 8 || keyCode == 9 || keyCode == 46)
       return true;

    var keyCharacter = cleanKeyCode(keyCode);
	var val = textBox.value;
	var mask = textBox.mask;
	if(reOneOrMoreDigits.test(keyCharacter) == false)
	   return false;
       val = val.replace(reNoDigits,'');			
       val += keyCharacter;
       textBox.value = val.maskValue(mask);
       setCaretAtEnd(textBox);
	return false;
}


function onFocusOut(textBox) {
	var val = textBox.value;
	alert (val.length);
	if (val.length < 5){
		
	errBx.innerHTML = 'You did not complete entering the phone number. Please enter complete number!';
	opacity('errBx', 0, 90, 500);
	textBox.focus();
	} else {
	opacity('errBx', 90, 0, 500);	
	}
}

function onFocusMask(textBox) {
	var val = textBox.value;
	var mask = textBox.mask;
	if(val.length == 0 || val == null) {
       var i = mask.indexOf('#');
       textBox.value = mask.substring(0,i);
	}
	setCaretAtEnd(textBox);
	textBox.maxlength = mask.length;
}

function onBlurMask(textBox) {
	var val = textBox.value;
	if(reOneOrMoreDigits.test(val) == false) {
       textBox.value = '';
	}
}

String.prototype.maskValue = function(mask) {
	var retVal = mask;
	var val = this;
	for(var i=0;i<val.length;i++) {
		retVal = retVal.replace(/#/i, val.charAt(i));
	}
	retVal = retVal.replace(/#/gi, "");
	return retVal;
}

function cleanKeyCode(key){
	switch(key)	{
   	  case 96: return "0"; break;
      case 97: return "1"; break;
      case 98: return "2"; break;
      case 99: return "3"; break;
      case 100: return "4"; break;
      case 101: return "5"; break;
      case 102: return "6"; break;
      case 103: return "7"; break;
      case 104: return "8"; break;
      case 105: return "9"; break;
      default: return String.fromCharCode(key); break;
	}
}

function setCaretAtEnd (field) {
  if (field.createTextRange) {
    var r = field.createTextRange();
    r.moveStart('character', field.value.length);
    r.collapse();
    r.select();
  }

}
