﻿// JScript File

function ValidateJumpPage()
{
    if(j_validate_form())
    {
		 if((Elem("chkOnlinedemorequest").checked) ||  (Elem("chkOnlinedemorequest").checked))
         {
           return true;
         }
         else
         {
            alert("Please select one or both options for processing your request.");
            return false;
         }
    }
    return false;
}

function Elem(val)
{
	return document.getElementById(val);
}//

function j_trim(s) 
{
    var m = s.match(/^\s*(\S+(\s+\S+)*)\s*$/);
	s = (m == null) ? '' : m[1];
    return s;
}

function j_is_text(s)
{
    //for other datatype
    return true;
}

function j_is_Other(s)
{
    //for other datatype
    return true;
}

function j_is_Integer(s)
{
    //s = trim(s);
	if (s.length > 0)
	{
		var slen = s.length;
		var chr;
		
		for (var i = 0; i < slen; i++)
		{
			chr = s.substring(i,i+1);
			if (i==0)
			{
				if (chr != '+' && chr != '-')
				{
					if (chr < '0' || chr > '9') return false;
				}
				else
				{
					if (slen == 1) return false; 
				}
			}
			else
			{ 
				if (chr < '0' || chr > '9')
				{
					return false;
				}
			}
		}
	}
	return true;
}

function j_is_Decimal(s)
{
	//s = trim(s);
	if (s.length > 0) 
	{
		var decimal_pos = s.lastIndexOf('.');
		var decimal_pos_next;
		
		if ((decimal_pos != -1) && (decimal_pos != 0))
		{
			var decimal_pos_next = s.lastIndexOf('.',decimal_pos - 1);
			if  (decimal_pos_next != -1)
				return false; /*invalid if two dots*/
		}
		
		var slen = s.length;
		var chr;
		
		for (var i = 0; i <= (slen-1); i++)
		{
			chr = s.substring(i, i+1);
			
			if ((chr == '.') && ((slen == 1) || (i == slen - 1)))
				return false; /*position of the dot*/

			if (i==0)
			{
				if (chr != '+' && chr != '-' && chr != '.')
				{
					if (chr < '0' || chr > '9') return false;
				}
				else
				{
					if (slen == 1 ) return false; 
				}
			}
			else
			{
				if ((chr < '0' || chr > '9') && (chr != '.'))
					return false; /*other than 0-9 or .*/
		    }
		}
	}	
	return true;
}

/*~check the validity of date for specified format~*/
function j_is_Date(s)
{
	//s = trim(s)
	
	var sDateFormat='mm/dd/yyyy'; /* dd/mm/yy and dd/mm/yyyy*/
	var cSep = '/' /*default*/
	var arrDate 
	arrDate = new Array(); 
	
	//if(s.length ==0)  return true;
	if(s.length < 5) return false;
	//For years in the range '1970-1999'  should be entered as four char length strings 
	//For years in the range '2000-2099'  can be entered as 1-2 char length strings
 
	var mm=0, dd=1, yyyy=2
	var sDate, sMonth,sYear;
	if (arguments.length>1) 
	{
		sDateFormat=arguments[1];
		if (sDateFormat.toLowerCase()=='dd/mm/yyyy') 
		{
			dd=0; mm=1; yyyy=2; 
		}
	}			
	arrDate=s.split(cSep);
    if(arrDate)
    {
		if (arrDate.length < 3 || arrDate.length > 3)
			return false;
    }
    else
		return false;
	if(arrDate[mm].length==0 || arrDate[dd].length==0 || arrDate[yyyy].length==0 || arrDate[mm].length>2 || arrDate[dd].length>2 || arrDate[yyyy].length>4)	
		return false;
	if (arrDate[mm]>12 || arrDate[mm]<1 || arrDate[dd]>31 || arrDate[dd]< 1 )
		return false;
	sMonth = parseInt(arrDate[mm],10);
    sDate = parseInt(arrDate[dd],10);
    sYear = parseInt(arrDate[yyyy],10);
    if(sYear>=0 && sYear<=99) sYear=sYear+ 2000;	
    if(sYear<= 0) return false; 
    if(isNaN(sMonth) || isNaN(sDate) || isNaN(sYear)) return false;
    if ((sMonth == 4 || sMonth == 6 || sMonth == 9 || sMonth == 11 )&&(sDate > 30))
		return false;
	if ((sMonth == 1 || sMonth == 3 || sMonth == 5 || sMonth == 7 || sMonth == 8 || sMonth == 10 || sMonth == 12)&&(sDate > 31))
		return false;
	var by_4 = sYear%4; 
	var by_400 = sYear%400;
	var by_100 = sYear%100;
	var isLeap
    if (((by_4 == 0 && (by_100 == 0)))|| (by_400 == 0))
		isLeap = true;
	else
		isLeap = false;  
     
	if (!isLeap && sMonth == 2 && sDate > 28)
		return false;
 return true;  
}

/*~time validation in 12:39 am (hour:minute) format~*/
function j_is_Time(s)
{
	s=trim(s)
	if(s=='') return true;
 	if (s.indexOf(':') == -1 )
		return false;
    var hourminute=s.split(':');
 
	if (hourminute.length > 2)
		return false;
  
	if (isNaN(hourminute[0]))
		return false;
	
	if (!( (parseInt(hourminute[0],10)>=1 ) && ( parseInt(hourminute[0],10)<=12) ) )
		return false;
  
	if (hourminute[1].indexOf(' ') == -1 )
		hourminute[1] += ' AM';

	var minutemeredium=hourminute[1].split(' ');	 
 	if (isNaN(minutemeredium[0]))
		return false;
	
	if (!( (parseInt(minutemeredium[0])>=0 ) && ( parseInt(minutemeredium[0])<=59) ) )
		return false;
 
	if ((minutemeredium[1].toUpperCase() != 'AM') && (minutemeredium[1].toUpperCase() != 'PM') )
		return false;
 return true;
}

function j_is_Datetime(s)
{
    //TBC - Need to implement this validation
    return true;
}

/*anything but blank space*/
function j_is_Phone(s)
{
	var pat = /^\d{3}(\S)?[\d{3}](\S)[\d{4}]+$/; 
	
	if (s.length > 0) 
	{
		var matchArr = s.match(pat);
	 	if(matchArr==null)
			return false;
	}
	return true;
}

/*~check the validity of email id~*/
function j_is_Email(s)
{
    //s = trim(s);
	var pat = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/; 
	
	if (s.length > 0) 
	{
		var matchArr = s.match(pat);
	 	if(matchArr==null)
			return false;
	}
	return true;
}
//function j_is_URL(s)
//{
//    //s = trim(s);
//   // http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
//	var pat = /^([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?+$/;  
//	
//	if (s.length > 0) 
//	{
//		var matchArr = s.match(pat);
//	 	if(matchArr==null)
//			return false;
//	}
//	return true;
//}

function j_is_Currency(s)
{
    //s = trim(s);
	var pat = /^[$]?\d{1,10}([.]\d{2})?$/; 
	
	if (s.length > 0) 
	{
		var matchArr = s.match(pat);
	 	if(matchArr==null)
			return false;
	}
	return true;
}
/*~check the validity of zip~*/
function j_is_Zip(s)
{
	//s = trim(s);
	if (s.length > 0) 
	{
	    var chr;
		for (var i=0;i<s.length;i++)
		{
			var chr = s.charAt(i);
	        if(chr == '-' && i == 0)
                return false;
			if (chr == '-' || chr == ' ' || (chr >='0' && chr <='9' ) || (chr >='A' && chr <='Z' ) || (chr >='a' && chr <='z' )) 
			;
			else
				return false;
		}	
	}
	return true;
}
///////////////////////////////////////////////////


////////////////////////////////////////////////////
//CUSTOME FUNCTION

function j_validate_element(elem, call_onchnage)
{
	var is_req = false;
	var dt = "Other"; //Default datatype is string //0=String, 1=Integer, 2=Decimal, 3=Date, 4=Time, 5=DateTime, 6=Other
	var dp = "&Not"; //Default decimal place 2
//	var cap = j_get_caption(elem);
	var cap="Field";
	if (elem.getAttribute('Message')) cap = elem.getAttribute('Message');
	if (elem.getAttribute('DataType')) dt = elem.getAttribute('DataType');
	if (elem.getAttribute('NotValue')) dp = elem.getAttribute('NotValue');
	if (elem.getAttribute('Required')) is_req = (elem.getAttribute('Required') == '1');
	
	var elemValue = j_trim(elem.value);
	var maxLen;	
	
	//TBC: needs to be cross-checked		
	if(elem.type=='textarea')
	{
		if(elem.getAttribute('maxlength'))
		{
			maxLen = elem.getAttribute('maxlength');
			if(elemValue.length > maxLen)
			{
				alert('Text too long. Only ' + maxLen + ' chars are allowed.');
				return false;	
			}	
		}
	}
	
	if (is_req)
	{
        if((elem.type=='text'||elem.type=='textarea'||elem.type=='select'||elem.type=='select-one' ||elem.type=='password') && elemValue.length == 0)
		{
			alert('Please Enter '+cap+'.');
			elem.focus();
			return false; //Return element index
		}		    
	}
	
	if(elemValue.length > 0)
	{
		if(!(eval("j_is_" + dt + "(elemValue)")))
		{
		    //alert(elemValue + "," + elem.id + "," + dt);
		    alert(cap + " should be valid " + dt.toLowerCase() + ".");
		    elem.focus();
			return false; //Return element index
		}
	}
	
	if (dp!="&Not")
	{
	    if((elem.type=='text'||elem.type=='textarea'||elem.type=='select'||elem.type=='select-one'))
	    {		
		    
		    if (dp==elemValue)
		    {
		        alert('Please Select '+cap+'.');
		        elem.focus();
		        return false;
			 
		    }
	    }
	}
	
	return true;
}


function j_validate_form()
{
    var objFrm       = document.forms[0];
	var retVal = objFrm.elements.length;
	
	for(var i=0;i<objFrm.elements.length;i++)
	{
	    var elem=objFrm.elements[i];
	    
	    if (elem.type=='text'||elem.type=='textarea'||elem.type=='select'||elem.type=='select-one' ||elem.type=='password')
	    {
	        if (!j_validate_element(elem, true))
	        {
	            //alert(i);
	            //alert(elem.id);
	            return false;
	        }
	    }
	}
	return -1;
}
function onKeyPressOnlyTelNo(e,obj)
  {
	  if (e.keyCode <32)  return true;
	  var strValue=Elem(obj.id);
		if ((e.keyCode > 47) && (e.keyCode <58))
		  {
			switch(strValue.value.length)
			 {
				case 1: 
					strValue.value ='(' + strValue.value;
					break;
				case 4: 
					strValue.value =strValue.value + ')'; 
					break;
				case 8: 
					strValue.value =strValue.value + "-"; 
					break;
				case 13: 
					s=strValue.value; 
					s=s.replace("(", "");
					s=s.replace(")", "");
					s=s.replace("-", "");
					value = s.charAt(0) + '(';
					for (var i=1;i<4;i++)
						value += s.charAt(i);	
						value +=  ')' ;
					for (var i=4;i<7;i++)
						value += s.charAt(i);
						value +=  "-";
					for (var i=7;i<14;i++)
						value += s.charAt(i);
						Elem(obj.id).value=value;
					break;
				case 14:
					return false;
				default:
			
				return true;
			}
				return true;
		}
			return false;
		
 }//

  function ValidateTelNo(obj)
  {
	var pat = /^(\d{1})?[(](\d{3})[)](\d{3})[-](\d{4})+$/; 
	if (obj.value.length > 0) 
	{
		var matchArr = obj.value.match(pat);
		if(matchArr==null)
		{
			alert('Please type a valid phone number in (xxx)xxx-xxxx format.' );
			obj.focus();
		}
	}
 }//

