﻿// JScript File
/***************************  (1) Start Function Trim   ****************************************/
function Trim(TRIM_VALUE,ctrl)
{
	if(TRIM_VALUE.length < 1)
	{
	return"";
	}
	TRIM_VALUE = RTrim(TRIM_VALUE);
	TRIM_VALUE = LTrim(TRIM_VALUE);
	if(TRIM_VALUE=="")
	{	
		alert('Enter Some value for triming');
	}
	else
	{		
		//alert(TRIM_VALUE);		
		ctrl.value=TRIM_VALUE;		
	}
} 
/*********************************************************************************************/
/************************     (2) Start Function RightTrim    ********************************/
function RTrim(value)
{
	var w_space = String.fromCharCode(32);
	var v_length = value.length;
	var strTemp = "";
	if(v_length < 0)
	{
		return"";
	}
	var iTemp = v_length -1;

	while(iTemp > -1)
	{
		if(value.charAt(iTemp) == w_space)
		{
		}
	else
	{
		strTemp = value.substring(0,iTemp +1);
		break;
	}
	iTemp = iTemp-1;	
	}//End While		
	return strTemp;
} 
/*********************************************************************************************/
/************************   (3) Start Function LeftTrim   ************************************/
function LTrim(VALUE)
{
	var w_space = String.fromCharCode(32);
	if(v_length < 1)
	{
		return "";
	}
	var v_length = VALUE.length;
	var strTemp = "";
	var iTemp = 0;

while(iTemp < v_length)
{
	if(VALUE.charAt(iTemp) == w_space)
	{
	}
	else
	{
		strTemp = VALUE.substring(iTemp,v_length);
		break;
	}
	iTemp = iTemp + 1;
} //End While
	return strTemp;
}
/********************************************************************************************/
/*******************************  (4) Start Function UpperCase  *****************************/
function Ucase(value,ctrl)
	{
	if(value.length < 1)
	{
	//return"";
	alert('No value Present');
	}
	value = RTrim(value);
	value = LTrim(value);
	if(value==""){
		//return "";
		alert('No value Present');
		}
	else{			
		ctrl.value=value.toUpperCase();		
		}
	}
/*********************************************************************************************/
/******************************* (5) Start Function LowerCase  *******************************/
function Lcase(value,ctrl)
{
	if(value.length < 1)
	{
	//return"";
	alert('No value Present');
	}
	value = RTrim(value);
	value = LTrim(value);
	if(value=="")
	{
		//return "";
		alert('No value Present');
	}
	else
	{	
		ctrl.value=value.toLowerCase();
	}
}
/**********************************************************************************************/
/***************** (6) Function for Not Allowing NonNumeric Value *****************************/
function ChkNum()
{
	if (window.event.keyCode != 13)
	{
		if (window.event.keyCode < 48 || window.event.keyCode > 58 )
		{
			alert("accept only numeric");		
			window.event.keyCode=0;														
		}										
	}
}
/*********************************************************************************************/
/************************(7) Function Used for Blank Value Checking **************************/
function IsBlank(ctrl)
{
	var Trim_Val;
	Trim_Val=RTrim(ctrl.value);
	Trim_Val=LTrim(Trim_Val);
	
	if(Trim_Val==""){
		alert('No value Present !!');
		ctrl.value=Trim_Val;	
		return false;
		}
}
/**********************************************************************************************/
/************************(8) Function To restrict Some Characters *****************************/
function ChkCharacter(ctrl)
{
  var iChars = "!@#$%^&*()+=-[]\\\';,./{}|\":<>?";  
    
  /* Function Chking whether value present or not */
  if(IsBlank(ctrl)==""){}
  else{
	for (var i = 0; i < ctrl.value.length; i++)
	{	
		//Check Link For better understanding (http://psacake.com/web/jb.asp)   	
  		if (iChars.indexOf(ctrl.value.charAt(i)) == -1)
  		{
  		}
  		else
  		{	
  			alert ("special [ " + ctrl.value.charAt(i) + " ] characters Found.\nThese are not allowed.");
  			return false;	
  		}
  		}
	}
}

/**********************************************************************************************/
/**************(9) Function Remove special characters from a string ***************************/
function Replace_SpclChar(ctrl)
{	
	if(IsBlank(ctrl)!="")
	{
		var SpclChar = /\$|,|@|#|~|`|\%|\*|\^|\&|\(|\)|\+|\=|\[|\-|\_|\]|\[|\}|\{|\;|\:|\'|\"|\<|\>|\?|\||\\|\!|\$|\./g;
		ctrl.value= ctrl.value.replace(SpclChar, "");
	}
}

/**********************************************************************************************/
/****************(10) Function To Check Combo Value Selected or not  **************************/
function combo_value(ctrl)
{	
	if(ctrl.selectedIndex==0)
	{
	alert('Select Another Item');
	}	
} 
  
/**********************************************************************************************/
/****************(11) Format Checking ( e.g Email,Phone No.,Date etc)  ************************/
function Validation(ctrl,Expformat)
{
	var RegExp=new Array()
	
	//RegExp[0]=/^\(\d{3}\) \d{3}-\d{4}$/ ;			//Phone Number (###) ###-####
	//RegExp[0]=/^\(\d\d\d\) \d\d\d\d-\d\d\d\d$/;       //Phone Number (###) ###-####
	RegExp[0]=/^\d/;
	RegExp[1]=/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;	//Email Validation Expression
	RegExp[2]=/^\d+(\.\d\d)?$/;			//Price Validation Expression (Rs 10.20)
	RegExp[3]=/^(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\d\d$/ //Date MM-dd-YYYY
	
	if(Expformat=="Phone")
	{	
		var phone_no=RegExp[0];		
		if (ctrl.value.match(phone_no))		
		{			
			return true; 			
		} 
		else 
		{ 
			alert('The phone number entered is invalid!');
			ctrl.focus(); 
			return false;
		}
	}
	else if(Expformat=="Email")
	{
		if (ctrl.value.match(RegExp[1]))	
		{			
			return true; 
		} 
		else 
		{ 
			alert('The EmailId entered is invalid!');
			ctrl.focus();  
			return false; 	
		}
	}
	else if(Expformat=="Price")
	{
		if (ctrl.value.match(RegExp[2]))	
		{ 
			alert('Correct Entry');
			return true; 
		} 
		else 
		{ 
			alert('Invalid Price Entry!'); 
			return false; 	
		}
	}
	//else if(Expformat=="mm-dd-yyyy")
	else if(Expformat=="Date")
	{
		if (ctrl.value.match(RegExp[3]))	
		{ 
			//alert('Correct Entry');
			return true; 
		} 
		else 
		{ 
			alert('Invalid Date Entry!'); 
			return false; 	
		}
	}
	else if(Expformat=="Numeric")
	{	
		var numeric=RegExp[0];		
		if (ctrl.value.match(numeric))		
		{			
			return true; 			
		} 
		else 
		{ 
			alert('Accept only numeric value!');
			ctrl.focus(); 
			return false;
		}
	}
}
/**********************************************************************************************/
/******************************   (12) Date Comparision   *************************************/
function CompDate(To_Date,From_Date)
{	
	var DateFormat = /^(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\d\d$/ ;//MM-dd-yyyy
	
	if (To_Date.value.match(DateFormat) && From_Date.value.match(DateFormat))
	{
	}	 
	else{ 	
		alert('Invalid DateEntry(Insert in MM-dd-YYYY format)!'); 
		return false; 	
	}
	/*if(To_Date.value>From_Date.value)
	{
	alert('Todate is bigger');
	}*/
}
/**********************************************************************************************/
/*********************(13) Range Validator(Between 2 Integer Values ***************************/
function RangeVal(ctrl,min_val,max_val)
{	
	if(IsBlank(ctrl)=="")
	{	
		return false;
	}
	else{	
		var valueEntered=ctrl.value;
		if(valueEntered<min_val || valueEntered>max_val)
		{
			if(valueEntered<min_val)
			{
				alert('Below Range');
			}else{
				alert('Above Range');}
			return  false;			
		}
		else
		{
			alert('Correct Value');	
			return true;
		}
	}
}

/**********************************************************************************************/
/*********************(13)   Return Month Name	***********************************************/
function MonthName(ctrl)
{	
	if(Validation(ctrl,'Date')==true)
	{	
		var month_name=new Array(12);
		month_name[0]="January"
		month_name[1]="February"
		month_name[2]="March"
		month_name[3]="April"
		month_name[4]="May"
		month_name[5]="June"
		month_name[6]="July"
		month_name[7]="August"
		month_name[8]="September"
		month_name[9]="October"
		month_name[10]="November"
		month_name[11]="December"				
		
		var Mon=ctrl.value;		
		var Mon_No=parseInt(Mon.charAt(0)+Mon.charAt(1))-1;		
		//var Mon_No=parseInt(Mon.substring(0,2))-1;
		
		alert(month_name[Mon_No]);
	}
	else{
		alert('Enter Date in this Format \n MM-dd-YYYY \n MM/dd/YYYY  \n MM.dd.YYYY');
	}	
}

/**********************************************************************************************/
/****************************** (14)Title Case ************************************************/
function TitleCase(ctrl)
{	
	var Text=ctrl.value;
	var TextArr=Text.split(".");
	var main_str="";	
	for(var len=0;len<=TextArr.length-1;len++)
	{
		var str=LTrim(TextArr[len]);		
		var TC=str.substring(0,1).toUpperCase()+str.substring(1,str.length)+".";			
		main_str=main_str+TC;
	}
	//To remove last "." character
	main_str=main_str.substring(0,main_str.length-1);	
	ctrl.value=main_str;	
} 
/**********************************************************************************************/
/************** (15)Retrive Characters From Left side Of a String  ****************************/
function Left(str, n)
{	
	if(str!="")
	{
		str=LTrim(str);
		if (n <= 0)
			return "";
		else if (n > String(str).length)
			return str;
		else
		return String(str).substring(0,n);
		//alert(String(str).substring(0,n));
	}
	else{
		alert('No value Present');
	}
}
/**********************************************************************************************/
/*************** (16) Retrieve Characters from Right side of a string *************************/
function Right(str, n)
{
	if(str!="")
	{    
		str=RTrim(str);
		if (n <= 0)
		return "";
		else if (n > String(str).length)
		return str;
		else {
		var iLen = String(str).length;
		return String(str).substring(iLen, iLen - n);
		//alert(String(str).substring(iLen, iLen - n));		
		}
	}
	else{
		alert('No value Present');
	}
}

/**********************************************************************************************/
/***********************     (17) Date Validation Checking          ***************************/
function isValidDate(dateStr) 
{
	var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/; // requires 4 digit year

	var matchArray = dateStr.match(datePat); // is the format ok?
	if (matchArray == null) {
	alert(dateStr + " Date is not in a valid format.")
	return false;
	}
	month = matchArray[1]; // parse date into variables
	day = matchArray[3];
	year = matchArray[4];
	if (month < 1 || month > 12) { // check month range
	alert("Month must be between 1 and 12.");
	return false;
	}
	if (day < 1 || day > 31) {
	alert("Day must be between 1 and 31.");
	return false;
	}
	if ((month==4 || month==6 || month==9 || month==11) && day==31) {
	alert("Month "+month+" doesn't have 31 days!")
	return false;
	}
	if (month == 2) { // check for february 29th
	var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
	if (day>29 || (day==29 && !isleap)) {
	alert("February " + year + " doesn't have " + day + " days!");
	return false;
	}
	}
	return true;
}

/**********************************************************************************************/
/****************************(18) Date Difference *********************************************/

function dateDiff(To_date,From_Date) 
{	
	diff  = new Date();
	if (isValidDate(To_date.value) && isValidDate(From_Date.value))// Validates  dates 
	{ 
		date1 = new Date(To_date.value);
		date2 = new Date(From_Date.value);
		if(date1>=date2)
		{	
			diff.setTime(Math.abs(date1.getTime() - date2.getTime()));
			timediff = diff.getTime();

			//weeks = Math.floor(timediff / (1000 * 60 * 60 * 24 * 7));
			//timediff -= weeks * (1000 * 60 * 60 * 24 * 7);

			days = Math.floor(timediff / (1000 * 60 * 60 * 24)); 
			timediff -= days * (1000 * 60 * 60 * 24);
			
			//alert(weeks + " weeks, " + days + " days" );
			alert(days + " days" );			
		}	
		else{
		alert('To_date is less than Or Equal To From_Date');
		return false;
		}
	}
		else 
		return false; // otherwise exits
}
/**********************************************************************************************/
/***********************     (19) Character Count     *****************************************/

function textCounter(Contentfield,Countfield, maxlimit)			
{						
	
	var Contentfld=document.getElementById(Contentfield);
	var Countfld=document.getElementById(Countfield);
	
	Contentfld.value=LTrim(Contentfld.value);
	
	if (Contentfld.value.length > maxlimit)	
		Contentfld.value=Contentfld.value.substring(0, maxlimit);				
	else 
		Countfld.value = maxlimit - Contentfld.value.length;
}



/**********************************************************************************************/
/*****************  (20)Time Entry Validation(HH:MM:SS AM/PM)  ********************************/

function isValidTime(timeStr,fmt) 
{
	timeStr=LTrim(timeStr);
	
	if(fmt==24)
	{
		var timePat = /^(\d{1,2}):(\d{2})(:(\d{2}))$/;
		var matchArray = timeStr.match(timePat);
		if(matchArray!=null)
		{
			hour = matchArray[1];
			minute = matchArray[2];
			second = matchArray[4];
					
			if (hour < 0  || hour > 23){
				alert("Hour must be between 0 and 23");
				return false;
			}
			if (minute < 0 || minute > 59){
				alert ("Minute must be between 0 and 59.");
				return false;
			}
			
			if (second < 0 || second > 59){
				alert ("Second must be between 0 and 59.");
				return false;
			}
			alert(timeStr);					
		}
		else
		{
			alert('Invalid Time Format HH:MM:SS');
			return false;
		}
	}
	else if(fmt==12) // format 12
	{
		var timePat = /^(\d{1,2}):(\d{2})(:(\d{2}))?(\s?(AM|am|PM|pm))?$/;	
		var matchArray = timeStr.match(timePat);		
		if (matchArray != null) 
		{
			hour = matchArray[1];
			minute = matchArray[2];
			second = matchArray[4];
			ampm = matchArray[6];			

			if (hour < 0  || hour > 12){		
				alert("Invalid Hour Entry ! must between 0 - 12");
				return false;
			}
			
			if (hour <= 12 && ampm == null){		
				alert("You must specify am/AM or pm/PM.");
				return false;
			}
			
			if (minute < 0 || minute > 59) {
			alert ("Minute must be between 0 and 59.");
			return false;
			}
			
			if (second != "" && (second < 0 || second > 59)) {
			alert ("Second must be between 0 and 59.");
			return false;
			}			
			alert(timeStr);							
		}
		else
		{
			alert('Invalid Time Format HH:MM:SS [am|AM]/[pm|PM]');
			return false
		}
	}	
}//End Function


////////////Validation For NewUserSignUp.aspx//////////////////

function CheckBlank(ctrl,msg)
{
    var control=document.getElementById(ctrl);
    if(LTrim(control.value).length==0)
        {
            alert(msg);
            control.focus();
            control.value='';
            return false;
        }
        else
        return true;
}

function CheckBlankWithoutAlert(ctrl)
{
    var control=document.getElementById(ctrl);
    if(LTrim(control.value).length==0)
        {
            control.focus();
            control.value='';
            return false;
        }
    else
    return true;
}

function CheckSelection(ctrl,msg)
{
    var control=document.getElementById(ctrl);
    if((control.value=='0') || (control.value==''))
    {
        alert(msg);
        control.focus();
        return false;
    }
    else
    return true;
}

function setFocus(ctrl)
{
    var control=document.getElementById(ctrl);
    control.focus();
}

function comparePasswords(ctrl1,ctrl2)
{
    var password=document.getElementById(ctrl1).value;
    var confirmpassword=document.getElementById(ctrl2).value;
    
    if(compareStrings(password,confirmpassword)==false)
    {
        alert('Passwords does not match');
        document.getElementById(ctrl2).focus();
        return false;
    }
    else
        return true;
}

function compareStrings(string1,string2)
{
    if(string1!=string2)
        return false;
    else
        return true;
}

//***E-MAIL VALIDATION***//

function validateEmail(control,mandatory,showalerts) {
var addr=document.getElementById(control).value;
if (addr == '' && mandatory) {
   if (showalerts) alert('email address is mandatory');
   return false;
}
if(addr=='') return true;
var invalidChars = '\/\'\\ ";:?!()[]\{\}^|';
for (i=0; i<invalidChars.length; i++) {
   if (addr.indexOf(invalidChars.charAt(i),0) > -1) {
      if (showalerts) alert('email address contains invalid characters');
      return false;
   }
}
for (i=0; i<addr.length; i++) {
   if (addr.charCodeAt(i)>127) {
      if (showalerts) alert("email address contains non ascii characters.");
      return false;
   }
}

var atPos = addr.indexOf('@',0);
if (atPos == -1) {
   if (showalerts) alert('email address must contain an @');
   return false;
}
if (atPos == 0) {
   if (showalerts) alert('email address must not start with @');
   return false;
}
if (addr.indexOf('@', atPos + 1) > - 1) {
   if (showalerts) alert('email address must contain only one @');
   return false;
}
if (addr.indexOf('.', atPos) == -1) {
   if (showalerts) alert('email address must contain a period in the domain name');
   return false;
}
if (addr.indexOf('@.',0) != -1) {
   if (showalerts) alert('period must not immediately follow @ in email address');
   return false;
}
if (addr.indexOf('.@',0) != -1){
   if (showalerts) alert('period must not immediately precede @ in email address');
   return false;
}
if (addr.indexOf('..',0) != -1) {
   if (showalerts) alert('two periods must not be adjacent in email address');
   return false;
}
var suffix = addr.substring(addr.lastIndexOf('.')+1);
if (suffix.length != 2 && suffix != 'com' && suffix != 'net' && suffix != 'org' && suffix != 'edu' && suffix != 'int' && suffix != 'mil' && suffix != 'gov' & suffix != 'arpa' && suffix != 'biz' && suffix != 'aero' && suffix != 'name' && suffix != 'coop' && suffix != 'info' && suffix != 'pro' && suffix != 'museum') {
   if (showalerts) alert('invalid primary domain in email address');
   return false;
}
return true;
}





//pass the characters to be allowed
//usage return AllowCharacters(event,'0123456789-()');


function allowCharacters(evt,allowedcharacters)
      {
         var charCode = (evt.which) ? evt.which : event.keyCode;
         var charpressed=String.fromCharCode(charCode);
         var allowedchars=new String(allowedcharacters);
         
         
         if(allowedchars.indexOf(charpressed,0)==-1)
          return false;
         
          return true;
      }




