// JavaScript Document
function validDateSection(dateValue){
	var result = false;
	if(Number(dateValue)<=31) 
		result = true;
		
	return result;
}

function validMonthSection(dateValue){
	var result = false;
	if(Number(dateValue)<=12) 
		result = true;
		
	return result;
}

function validYearSection(dateValue){
	var result = false;
	if(Number(dateValue)<=9999) 
		result = true;
		
	return result;
}

function validWholeDate(day, month, year){

	var result = true;
	var leap = 0;
	
	if (Number(day) < 1) {
		result = false;
	}
	/* Validation leap-year / february / day */
	if ((Number(year) % 4 == 0) || (Number(year) % 100 == 0) || (Number(year) % 400 == 0)) {
	  leap = 1;
	}
	if ((Number(month) == 2) && (leap == 1) && (Number(day) > 29)) {
		result = false;
	}
	if ((Number(month) == 2) && (leap != 1) && (Number(day) > 28)) {
		result = false;
	}
	/* Validation of other months */
	if ((Number(day) > 31) && ((Number(month) == 1) || (Number(month) == 3) || (Number(month) == 5) || (Number(month) == 7) || (Number(month) == 8) || (Number(month) == 10) || (Number(month) == 12))) {
		result = false;
	}
	if ((Number(day) > 30) && ((Number(month) == 4) || (Number(month) == 6) || (Number(month) == 9) || (Number(month) == 11) )) {
		result = false;
	}

   	return result;
}

function validateDateEntry(field){
	var yearStr='';
	var monthStr='';
	var dateStr=''; 
	var error = false;
	var str=field.value;
	var numSlash=str.split("/").length-1; 

	if(str!=''){

		if(numSlash==0){
			
			if(str.length==8){
				if(validDateSection(str.substring(2,4)) && validMonthSection(str.substring(0,2)) && validYearSection(str.substring(4,8)) && validWholeDate(str.substring(2,4), str.substring(0,2), str.substring(4,8)) ){
					field.value = str.substring(0,2) + "/" + str.substring(2,4) + "/" + str.substring(4,8);
				}else{ // Validation fail returning from function
					error = true;
				}
			}else{ // Length of date field error when no Slash is entered
					error = true;
			}
			
		}else if(numSlash==2){
			
			if(str.length<=10 && str.length>=3){
				
				var splitArray = str.split("/");
				if(validDateSection(splitArray[1]) && validMonthSection(splitArray[0]) && validYearSection(splitArray[2]) && validWholeDate(splitArray[1], splitArray[0], splitArray[2]) )
				{
					switch(splitArray[2].length)
					{
						case 1:
							yearStr = "200" + splitArray[2];
							break;
						case 2:
							yearStr = "20" + splitArray[2];
							break;
						case 3:
							yearStr = "2" + splitArray[2];
							break;
						default:
							yearStr = splitArray[2];
					}
					
					field.value = splitArray[0] + "/" + splitArray[1] + "/" + yearStr;
					
				}else{ // Validation fail returning from function
					error = true;
				}
				
			}else{ // Length of date field error when Slashes are entered
					error = true;
			}
			
		}else{ // Error when number of slashes in the date field is not 2
				error = true;
		}
	
		if(error){
			alert('The date entered is incorrect');	
			field.select();
			field.focus();
			
		}
	}
}


var n;
var p;
var objFld;
var fldId;
function ValidatePhoneNumber(){
	p = objFld.value;
	var len=p.length;
	/* Checking for occurences of double - character */
	if(len>1 && p.substring(len-2,len-1)=='-' && p.substring(len-1,len)=='-')
	{
		objFld.value=p.substring(0,len-1);	
	}
	if(p.length==3){
		pp = p;
		d5=p.indexOf('-');
		if(d5==-1){
			pp=pp+"-";
		}
		objFld.value = "";
		objFld.value = pp;
	}
	if(p.length>3){
		d2=p.indexOf('-');
		if (d2==-1){
			l30=p.length;
			p30=p.substring(0,4);
			p30=p30+"-"
			p31=p.substring(4,l30);
			pp=p30+p31;
			objFld.value = "";
			objFld.value = pp;
		}
	}
	if(p.length>5){
		p11=p.substring(1,d2);
		if(p11.length>3){
			p12=p11;
			l12=p12.length;
			l15=p.length
			p13=p11.substring(0,3);
			p14=p11.substring(3,l12);
			p15=p.substring(d2+1,l15);
			objFld.value = "";
			pp=p13+"-"+p14+p15;
			objFld.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);
		pp = p19 + p17 + "-" + p18;
		objFld.value = "";
		objFld.value = pp;
		}
		
	}
}

function formatPhoneNumber(m,e){
  if(e){
    e = e
  } else {
    e = window.event
  }
  if(e.which){
    var keycode = e.which
  } else {
    var keycode = e.keyCode
  }

	n = m.name;
	objFld = m;
	/* For BackSpace keyboard event we are not assigning the ValidatePhone function */		
	if(keycode >= 45){
		ValidatePhoneNumber();
	}

}

