// JavaScript Document
function isEmail(str) {
  // are regular expressions supported?
  var str1 = trim(str,' ');
  var supported = 0;
  if (window.RegExp) {
    var tempStr = "a";
    var tempReg = new RegExp(tempStr);
    if (tempReg.test(tempStr)) supported = 1;
  }
  if (!supported) 
    return (str1.indexOf(".") > 2) && (str1.indexOf("@") > 0);
  var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
  var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
  return (!r1.test(str1) && r2.test(str1));
}
function doredirect(action)
{
	document.location=action;
}
 function checkEmail(email) {
	var regExp = /(^[a-z]([a-z_\.]*)@([a-z_\.]*)([.][a-z]{3})$)|(^[a-z]([a-z_\.]*)@([a-z_\.]*)(\.[a-z]{3})(\.[a-z]{2})*$)/i;
	return regExp.test(email);
  }
  
  // JavaScript Document
//REMOVES THE LEADING AND TRAILING BLANK SPACES IN STRING
function trim(inputString) {
	var returnString = inputString;
	var removeChar =' ';
	if (removeChar.length){
	  while(''+returnString.charAt(0)==' ')	{
		  returnString=returnString.substring(1,returnString.length);
		}
		while(''+returnString.charAt(returnString.length-1)==' '){
	    returnString=returnString.substring(0,returnString.length-1);
	  }
	}
	return returnString;
}

function isNumberKey(evt)
	{
		var charCode = (evt.which) ? evt.which : event.keyCode
		if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode != 45 )
			return false;
		return true;
	}
	

/// this function is used for sorting the fields in asc and desc manner
function dosort(sortby,sortorder){					
		var qs = window.location.search.toString();
		qs= qs.substr(1);
		var params="";						
		var i;
		if(qs.length > 0 ){
			params = qs.split("&");
			qs = "";
			for(i =0;i<params.length;i++){
				if(params[i].search(/^sortby=(.)*$/i)== -1 && params[i].search(/^sortorder=(.)*$/i)==-1)
					qs = qs + "&"+ params[i];
			}
		}
		window.location.search = "?sortby="+sortby+"&sortorder="+ sortorder + qs;
	}
	
function doFormReset(frm){
		frm.reset();
}

function changeEntity(type, id){
	window.location="manage.php?type="+ type +"&id="+id;
	
}

function ValidDate(objFieldValue,date_format){
	var spacer;
		var str_date=objFieldValue;			
		if(str_date=="")
			return "";
		var i,j;		
		var RE_NUM = /^\-?\d+$/;
		var NUM_CENTYEAR = 30;
		
		var arr_date = str_date.split('-');
		if (arr_date.length != 3) return spacer + " - Invalid date format: '" + str_date + "'.\n" + spacer + " - Format accepted is " + date_format + ".\n";
		i = date_format!="mm-dd-yyyy" ? 1 : 0;
		j = i > 0 ? 0 : 1;
		if (!arr_date[j]) return spacer + " - Invalid date format: '" + str_date + "'.\n" + spacer + " - No day of month value can be found.\n";
		if (!RE_NUM.exec(arr_date[j])) return spacer + " - Invalid day of value: '" + arr_date[j] + "'.\n" + spacer + " - Allowed values are unsigned integers.\n";
		if (!arr_date[i]) return spacer + " - Invalid date format: '" + str_date + "'.\n" + spacer + " - No month value can be found.\n";
		if (!RE_NUM.exec(arr_date[i])) return spacer + " - Invalid month value: '" + arr_date[i] + "'.\n" + spacer + " - Allowed values are unsigned integers.\n";
		if (!arr_date[2]) return spacer + " - Invalid date format: '" + str_date + "'.\n" + spacer + " - No year value can be found.\n";
		if (!RE_NUM.exec(arr_date[2])) return spacer + " - Invalid year value: '" + arr_date[2] + "'.\n" + spacer + " - Allowed values are unsigned integers.\n";

		var dt_date = new Date();
		dt_date.setDate(1);
	
		if (arr_date[i] < 1 || arr_date[i] > 12) return spacer + " - Invalid month value: '" + arr_date[i] + "'.\n" + spacer + " - Allowed range is 01-12.\n";
		dt_date.setMonth(arr_date[i]-1);
		
		if(arr_date[2].length<4 || arr_date[2].length>4 ){return spacer + " - Invalid year value: '" + arr_date[2] + "'.\n" + spacer + " - Allowed year values are only four digit .\n";}

		 
		if (arr_date[2] < 100) arr_date[2] = Number(arr_date[2]) + (arr_date[2] < NUM_CENTYEAR ? 2000 : 1900);
		dt_date.setFullYear(arr_date[2]);
		var dt_numdays = new Date(arr_date[2], arr_date[i], 0);
		dt_date.setDate(arr_date[j]);
		if (dt_date.getMonth() != (arr_date[i]-1)) return spacer + " - Invalid day of value: '" + arr_date[j] + "'.\n" + spacer + " - Allowed range is 01-"+dt_numdays.getDate()+".\n";
		//return (dt_date)
		return "";
	}

   function checkDateFormat(objdate){
        var pattern = /^([1-3]?[0-9])\-([0-1]?[0-9])\-([0-9]{4})(\s([0-2]?[0-9])\:([0-5]?[0-9]))?$/ //dd-mm-yyyy hh:mm
        if(pattern.test(trim(objdate.value))){
			return objdate.value;
        }
        
   }