//alert('added');
//  function to trim a string
function trim(str_key){
	str_key = rtrim(str_key);
	str_key = ltrim(str_key);
	return str_key;
}

function replace_html(str){
	document.write(str.replace(/</gi, "&lt;"));
	document.write(str.replace(/>/gi, "&gt;"));
	return str;
}

// function to right trim a string
function rtrim(str_key){
	while(str_key.charAt(str_key.length-1)==" "){
		str_key=str_key.substr(0,str_key.length-1);
	}	
	return str_key;
}

// function to left trim a string
function ltrim(str_key){
	while(str_key.charAt(0)==" "){
		str_key=str_key.substr(1);
	}	
	return str_key;
}

// function to check an year YYYY-MM-DD
function check_year(strYear){	
	var dateStr = new String(strYear);
	dateStr = ltrim(dateStr);
	dateStr = rtrim(dateStr);
	
	//var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/; 
	var datePat = /^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9].*$/; 
	days = new Array(0,31,28,31,30,31,30,31,31,30,31,30,31);
	
	var matchArray = dateStr.match(datePat); // is the format ok? 
	if (matchArray == null){
		alert("Enter date in YYYY-MM-DD format. eg 2003-01-21");
		return false;
	}
	else{
		var temp_year = 0;
		var temp_month = 0;
		var i = parseInt(dateStr.substr(0, 4));
		temp_year = i;
		if(i < 2005){
			alert("Please enter an year greater than 2005");
			return false;
		}
		
		i = parseInt(dateStr.substr(5, 2))
		if(dateStr.substr(5, 1) == "0"){
			i = parseInt(dateStr.substr(6, 1))
		}
		if(i < 1 || i > 12){
			alert("Please enter a valid month");
			return false;
		}
		temp_month = i;
		var d =days[i];
		
		i = parseInt(dateStr.substr(8))
		if((temp_year % 4 == 0) && (temp_month == 2)){
			if(i < 0 || i > 29){
				alert("Please enter a valid day curresponding to the current year and month.");
				return false;
			}
		}else if(i < 0 || i > d){
			alert("Please enter a valid day curresponding to the current year and month.");
			return false;
		}
	}
	return true; 
}

// function to confirm database setup
function confirm_setup(){
	if(confirm("Tables already exists.\nThis action will drop all tables and data and it CANNOT BE UNDONE. \nAre you sure that you want to run Setup again?")){
		return true;
	}
	return false;
}
// function to open a new window
function open_window(windowURL, windowName, windowFeatures){ 
	window.open(windowURL, windowName, windowFeatures);
	return false; 
}

// function to confirm record deletion
function confirm_cleanup(Link) {
   if (confirm("Are you sure you want to delete ?")) {
      location.href=Link;
   }
}

// to simulate the clicking of the browser back button
function fn_back(){
	window.history.back();
}	

// function to check YEAR with 4 digit
function is_year(snum)
{
	var reInteger = /^[1-9]\d{3}$/
	return reInteger.test(snum)
}
// function to check indiger field
function is_integer(snum)
{
	var reInteger = /^\d+$/
    return reInteger.test(snum)
}

// function to check SSN US
function is_ssn(snum)
{
	var reSSN = /^(\d{3})(-)(\d{2})(-)(\d{4})$/	
    return reSSN.test(snum)
}

// function to check US phone - fomat 999-999-9999
function is_phone(snum)
{
	var rePhone = /^(\d{3})(-)(\d{3})(-)(\d{4})$/	
    return rePhone.test(snum)
}

// Check whether string s is empty.
function is_empty(s)
{   
	if(trim(s) == ""){
		return true;
	}else{
		return false;
	}
}

// function to check Price value ( with two decimal places )
function is_price(s)
{  
	var reFloat = /^[\d\.]((\d+(\.\d{0,2})?)|((\d*\.)?\d{0,2}))$/	
	return reFloat.test(s)	   	
}
// function to check float/decimal fileds
function is_float(s)
{  
	var reFloat = /^((-)?(\d+(\.\d*)?)|((\d*\.)?\d+))$/
	return reFloat.test(s)	   	
}

// function to check username fields
function check_username(s){
  // this is done to avoid any special characters
  var reUsername = /^[a-zA-Z0-9][a-zA-Z0-9_]*$/
  
  if (is_empty(s)){
  	 alert("Please enter a desired Username. Minimum 6 characters.\nNo spaces, blanks or special characters , except '_'.");
	 return false; 
  } 
  else{
   	 var matchArray = s.match(reUsername); // is the format ok? 
	 if (matchArray == null) { 
		alert("Username should contain only \nalphabets, digits or underscore '_'.\n '_' should not be the first character.");
		return false; 
	 }	 	
	 else{ 
	  	 if(s.length<6){		
			alert("Username should be minimum of 6 characters");	
			return false; 
		 }	
	 }			
  }      	 
  return true;
}

// function to check the length of value
function check_min_length(s,size, fieldname){
	if(trim(s).length < size)
	{
		alert("Please enter minimum "+size+" characters in "+fieldname+"!");
		return false;
	}
	 return true;
}

// function to check the length of value
function check_max_length(s,size, fieldname)
{
	if(trim(s).length > size)
	{
		
		alert("Please enter maximum "+size+" characters in "+fieldname+"!");
		return false;
	}
	 return true;
}
//////CHECK MOBILE PHONE LENGTH
function check_max_mobile_length(s,size, fieldname)
{
	if(trim(s).length < size)
	{
		
		alert("Please enter maximum 10 characters in "+fieldname+"!");
		return false;
	}
	 return true;
}
/////////
// function to check username fields
function check_password (s){
  // this is done to avoid any special characters
  //var rePassword = /^[a-zA-Z0-9][a-zA-Z0-9~!@#$%^&*()]*$/
	var rePassword = /^[a-zA-Z0-9][a-zA-Z0-9@$#~!%&?_-]*$/
  
  if (is_empty(s)){
  	 alert("Please enter a desired Password. Minimum 6 characters.\nNo spaces and blanks allowed.");
	 return false; 
  } 
  else{
   	 var matchArray = s.match(rePassword); // is the format ok? 
	 if (matchArray == null) { 
		//alert("Password should contain only alphabets, digits\nor only these special characters .^&*!()\nbut not the first character.");
		 alert("Password should contain only with Alphabet [A-Z, a-z]\nor number [0-9] or special chracters [@$#~!%&?_-]");
		return false; 
	 }	 	
	 else{ 
	  	 if(s.length<6){		
			alert("Password should be minimum of 6 characters");	
			return false; 
		 }else if(s.length>20){
		 
			alert("Password should be maximum of 20 characters");	
			return false; 		 
		 }	
	 }			
  }      	 
  return true;
}
	
// function to validate date field
function is_valid_date(dateStr) { 
// Checks for the following valid date formats: 
// MM/DD/YY MM/DD/YYYY MM-DD-YY MM-DD-YYYY 
// Also separates date into month, day, and year variables 

var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/; 

// To require a 4 digit year entry, use this line instead: 
// var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/; 

var matchArray = dateStr.match(datePat); // is the format ok? 
if (matchArray == null) { 
	alert("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; // date is valid 
} 
// End date validation -------------------------------------> 

function check_email(emailStr) {
	
	
	//var reg = /^([A-Za-z0-9_\-\.\~])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	//var reg = /^([a-zA-Z0-9])(([a-zA-Z0-9])*([\._\+-])*([a-zA-Z0-9]))*@(([a-zA-Z0-9\-])+(\.))+([a-zA-Z]{2,4})+$/;
	//var reg =  /^([a-zA-Z0-9])(([a-zA-Z0-9])*([\._-])?([a-zA-Z0-9]))*@(([a-zA-Z0-9\-])+(\.))+([a-zA-Z]{2,4})+$/;
	var reg =  /^([a-zA-Z0-9])(([a-zA-Z0-9])*([\._-])?([a-zA-Z0-9]))*@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	
	
   	if(reg.test(emailStr) == false) 
   	{
     	alert('Please enter a valid Email Address.');		
      	return false;
   	}	
	
	   // If we've gotten this far, everything's valid!
	return true	   
}
// end o

// A Domain check , which must start with http://www. or https://www.
// First argument will be the string to check
// Second argument will be the message to print out
function check_domain(){
	var strDomain = "";
	var strTitle = "";
	
	if(arguments.length == 0){
		return false;
	}else{
		strDomain = arguments[0];
		strTitle = arguments.length > 1 ? arguments[1] : "URL";
	}
	
	if(is_empty(strDomain)){
		alert("Please enter "+ strTitle +".");
		return false; 
	}else if(strDomain.indexOf("www.") == -1 ){
		alert(strTitle + " must start with 'www.' .");
		return false; 
	}else{
		var strUrl ="";
		if(strDomain.indexOf("www.") == -1)
			strUrl = strDomain.substr(4);
		
		var domPat = /^([^.]+\.)+[a-zA-Z]{2,3}(\/.*)?$/;
		arrMat = strUrl.match(domPat);
		if(arrMat == null){
			alert("Enter a valid " + strTitle +".");
			return false; 
		}
	}
	return true;
}
//coding for radio button

function radio_button_checker(form)
{
// set var radio_choice to false
var radio_choice = false;

// Loop from zero to the one minus the number of radio button selections
for (counter = 0; counter <form.frm_type.length; counter++)
{
// If a radio button has been selected it will return true
// (If not it will return false)
if (form.frm_type[counter].checked)
radio_choice = true;
}

if (!radio_choice)
{
// If there were no selections made display an alert box
alert("Please select a Type.")
return (false);
}
return (true);
}

//Validating image type before upload
function filenameCheck(ImageObject){
	var regExp_jpeg = /^(.+)[.][jJ][pP][eE][gG]$/;
	var regExp_gif = /^(.+)[.][gG][iI][fF]$/;
	var regExp_jpg = /^(.+)[.][jJ][pP][gG]$/;
	var regExp_png = /^(.+)[.][pP][nN][gG]$/;
	if(is_empty(ImageObject.value)){
		alert("Select an Image File");
		return false;
		}		
	else if(!(regExp_jpeg.test(ImageObject.value) || regExp_gif.test(ImageObject.value) || 
		regExp_jpg.test(ImageObject.value)|| regExp_png.test(ImageObject.value))){
		alert("Please enter a valid file with jpg, jpeg, png, gif or jpeg format.")
		ImageObject.focus();
		return false;
	}
	else   
		return true;       
}

function check_video_name(ImageObject){
	var regExp_avi = /^(.+)[.][aA][vV][iI]$/;
	var regExp_mov = /^(.+)[.][mM][oO][vV]$/;
	var regExp_mpg = /^(.+)[.][mM][pP][gG]$/;
	
	if(is_empty(ImageObject.value)){
		alert("Select an Video File");
		return false;
		}		
	else if(!(regExp_avi.test(ImageObject.value) || regExp_mov.test(ImageObject.value) || 
		regExp_mpg.test(ImageObject.value))){
		alert("Please enter a valid file with AVI, MOV or MPG format.")
		ImageObject.focus();
		return false;
	}
	else   
		return true;       
}
 
  function db_time_format(starttime,stoptime){
		var counter;
		var max;
		var rtime;
		var strat_time;
		var stop_time
		var str = new Array("12:00 AM","12:15 AM","12:30 AM","12:45 AM","01:00 AM","01:15 AM","01:30 AM","01:45 AM","02:00 AM" ,"02:15 AM","02:30 AM","02:45 AM","03:00 AM","03:15 AM","03:30 AM","03:35 AM","04:00 AM","04:15 AM","04:30 AM","04:45 AM","05:00 AM","05:15 AM","05:30 AM","05:45 AM","06:00 AM","06:15 AM","06:30 AM","06:45 AM","07:00 AM","07:15 AM","07:30 AM","07:45 AM","08:00 AM","08:15 AM","08:30 AM","08:45 AM","09:00 AM","09:15 AM","09:30 AM","09:45 AM","10:00 AM","10:15 AM","10:30 AM","10:45 AM","11:00 AM","11:15 AM","11:30 AM","11:45 AM","12:00 PM","12:15 PM","12:30 PM","12:45 PM","01:00 PM","01:15 PM","01:30 PM","01:45 PM","02:00 PM" ,"02:15 PM","02:30 PM","02:45 PM","03:00 PM","03:15 PM","03:30 PM","03:35 PM","04:00 PM","04:15 PM","04:30 PM","04:45 PM","05:00 PM","05:15 PM","05:30 PM","05:45 PM","06:00 PM","06:15 PM","06:30 PM","06:45 PM","07:00 PM","07:15 PM","07:30 PM","07:45 PM","08:00 PM","08:15 PM","08:30 PM","08:45 PM","09:00 PM","09:15 PM","09:30 PM","09:45 PM","10:00 PM","10:15 PM","10:30 PM","10:45 PM","11:00 PM","11:15 PM","11:30 PM","11:45 PM");
		max =96;
		var stri = new Array( "0000","0015","0030","0045","0100","0115","0130","0145","0200","0215","0230","0245","0300","0315","0330","0345","0400","0415","0430","0445","0500","0515","0530","0545","0600","0615","0630","0645","0700","0715","0730","0745","0800","0815","0830","0845","0900","0915","0930","0945","1000","1015","1030","1045","1100","1115","1130","1145","1200","1215","1230","1245","1300","1315","1330","1345","1400","1415","1430","1445","1500","1530","1530","1545","1600","1615","1630","1645","1700","1715","1730","1745","1800","1815","1830","1845","1900","1915","1930","1945","2000","2015","2030","2045","2100","2115","2130","2145","2200","2215","2230","2245","2300","2315","2330","2345");
		for (var counter=0; counter <max-1; counter++){
			 if(starttime == str[counter]){ 
			 strat_time=stri[counter];
			 break;
			 }
		}// end of for
		for (var count=0; count <max-1; count++){			  
			 if(stoptime == str[count]){
				stop_time=stri[count];
				break;
			 }
		}// end of for
		if(stop_time<=strat_time)
			return 0;
		else
			return 1;
   }// end of db_time_format

   function date_compare(date1,date2){
			var TempArray1= new Array();
			TempArray1=date1.split('/');
			var TempArray2= new Array();
			TempArray2=date2.split('/');
			d1=new Date(TempArray1[2],TempArray1[1],TempArray1[0]);
			d2=new Date(TempArray2[2],TempArray2[1],TempArray2[0]);
			if (d1.getTime()<d2.getTime()) {
				return 1;
			}
			else if(d1.getTime()>d2.getTime()){
				return 0;
			}
			else if(d1.getTime()==d2.getTime()){
				return 2;		
			}
	}//end of date compare function


 //Phone validation check start
 function is_integer(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    return true;
}

function strips_chars_in_bag(s, bag)
{   var i;
    var returnString = "";
    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}
function check_international_phone(strPhone){
	var digits = "0123456789";
	var phoneNumberDelimiters = "()- ";
	var validWorldPhoneChars = phoneNumberDelimiters + "+";
	var minDigitsInIPhoneNumber = 10;
	s=strips_chars_in_bag(strPhone,validWorldPhoneChars);
	return (is_integer(s) && s.length >= minDigitsInIPhoneNumber);
}
 //Phone validation check end
// check to see if input is alphabetic
function is_alphabatic(val)
{
re = /^[A-Za-z]+$/;
if(re.test(val))
{
return true;
}
else
{
return false;

}
//check to see if input is alphabetic
function is_alphabaticWithspace(val)
{
 re = /^[A-Za-z\ ]+$/;
 if(re.test(val))
 {
  return true;
 }
 else
 {
  return false;

 }

}
function check_it(theurl) 
{

     var tomatch= /http:\/\/[A-Za-z0-9\.-]{3,}\.[A-Za-z]{3}/
     if (tomatch.test(theurl))
     {
        
         return true;
     }
     else
     {
         window.alert("URL invalid. Try again.");
         return false; 
     }
}

function check_each_word(val,mess){

var formcontent,no_of_words,i,single_word;
formcontent = val.split(" ");
no_of_words = formcontent.length;

for(i=0;i<no_of_words;i++){

single_word = formcontent[i];
if(single_word.length > 15){
alert("Single word should not have more than 15 characters. "+single_word+" word is not valid");
return false;
break;
}
}

return true;
}

function check_alphanumeric(val){
var regex=/^[0-9A-Za-z]+$/; //^[a-zA-z]+$/
if(regex.test(val)){
return true;
} else {
return false;
}
}


function check_numeric_with_spaces(val)
{
	var regex=/^[0-9A-Za-z\ ]+$/; //^[a-zA-z]+$/
	if(regex.test(val))
	{
		return true;
	} 
	else 
	{
		return false;
	}
}


function check_field(object) { 

var test="";
    for (i = 0; i < object.value.length; i++)
    {   
        var c = object.value.charAt(i);
        if (((c < "0") || (c > "9"))){ 
		
		//return false; 
		
		}else{
		test = test+c;
		}
    }
	
	object.value = test;

/* var regex = /^\d$/;
if (!is_integer(object.value)) {
object.value = "";
} */ // end if
}
}
function parse_for_num1(object){
phonevalue1 = parse_char(object.value, zChar);
}
function parse_for_num2(object){
phonevalue2 = parse_char(object.value, zChar);
}

function check_numeric_with_spaces(val)
{
	
	if(!isNaN(val))
	{
		return false;
	}
	else
	{
		var regex=/^[0-9A-Za-z\ ]+$/; //^[a-zA-z]+$/
		if(regex.test(val))
		{
		return true;
		} 
		else 
		{
		return false;
		}
	}		
}
function parse_char(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 backspace_up(object,e) {
if(e){
e = e
} else {
e = window.event
}
if(e.which){
var keycode = e.which
} else {
var keycode = e.keyCode 
}

parse_for_num1(object)

if(keycode >= 48 || keycode == 32){ 
ValidatePhone(object)
}
}
function backspace_down(object,e) {
	
	
		

if(e){
e = e
} else {
e = window.event
}
if(e.which){
var keycode = e.which
} else {
var keycode = e.keyCode
}
	
	if((keycode < 48) || (keycode > 57))
		return false;
	else
		parse_for_num2(object)
	/*alert(e.keyCode)
	
		} // end if
			
		} // end function
*/	
}

