function clearAllMessages(arrDivIds)
{
  var obj;
  var len = arrDivIds.length;
  for(var i=0;i<len;i++) {
    obj = document.getElementById(arrDivIds[i]);
    if(obj!=null){
      obj.innerHTML = '';
      obj.style.display = 'none';
    }
  }
}

function writeErrorMessage(divId,msgError)
{
  objErrDisp = document.getElementById(divId);
  objErrDisp.innerHTML = msgError;
  objErrDisp.style.display = '';
}

function trim(str)
{
  return LTrim(RTrim(str));
}

function LTrim(str)
{
  for (var i=0; str.charAt(i)==" "; i++)
  {
    str =  str.substring(i,str.length-1);
  }
  return str;
}

function RTrim(str)
{
  for (var i=str.length-1; str.charAt(i)==" "; i--)
  {
    str = str.substring(0,i);
  }
  return str;
}

function isValidEmail(strObj)
{
  var regExPattern= /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/i;
  if(!strObj.match(regExPattern))
  return false;
  else
  return true;
}
function isValidNumber(numval)
{
  if (numval==""){return false;}
  var myRegExp = new RegExp("^[/+|/-]?[0-9]*[/.]?[0-9]*$");
  return myRegExp.test(numval);
}
function isValidNumber2(str)
{
	var legalChars = /\d/;
	var illegalChars= /[\(\)\<\>\;\:\\\"\[\]\!\@\#\$\%\^\&\*\`\~\{\}\,\/]/;

	if (legalChars.test(str))
	{
		if(str.match(illegalChars) == null)
		{
			return true;
		}
		else
			return false;
	}
	else
	{
		return false;
	}
}
function isValidPositiveNumber(numval)
{
  if (numval==""){return false;}
  var myRegExp = new RegExp("^[0-9]*[/.]?[0-9]*$");
  return myRegExp.test(numval);
}
function clearField(act,name,value)
{
  if(act==1)
  {
    if(document.getElementById(name).value == value)
    {
      document.getElementById(name).value=''
    }
  }
  else
  {
    if(document.getElementById(name).value == '')
    {
      document.getElementById(name).value=value
    }
  }
}
function checkUncheckAllFun(mainCheckboxId,formName)
{
  if(!mainCheckboxId) mainCheckboxId='checkUncheckAll';
  if(!formName) formName='dataForm';
  var mainCheckboxChecked = document.getElementById(mainCheckboxId).checked;
  var totalFormElemets = eval("document."+formName+".elements.length;");
  for(index=0; index<totalFormElemets; index++) {
    elementType = eval("document."+formName+".elements[index].type;");
    elementName = eval("document."+formName+".elements[index].name;");
    if(elementType=="checkbox" && elementType!=mainCheckboxId) {
      eval("document."+formName+".elements[index].checked = mainCheckboxChecked;");
    }
  }
}
/**
* DHTML date validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
*/
function isInteger(s){
  var i;
  for (i = 0; i < s.length; i++){
    // Check that current character is number.
    var c = s.charAt(i);
    if (((c < "0") || (c > "9"))) return false;
  }
  return true;
}

function stripCharsInBag(s, bag){
  var i;
  var returnString = "";
  // Search through string's characters one by one.
  // If character is not in bag, append to returnString.
  for (i = 0; i < s.length; i++){
    var c = s.charAt(i);
    if (bag.indexOf(c) == -1) returnString += c;
  }
  return returnString;
}

// Declaring valid date character, minimum year and maximum year
var dtCh= "/";
var minYear=1900;
var maxYear=2100;

function daysInFebruary (year){
  // February has 29 days in any year evenly divisible by four,
  // EXCEPT for centurial years which are not also divisible by 400.
  return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
  for (var i = 1; i <= n; i++) {
    this[i] = 31
    if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
    if (i==2) {this[i] = 29}
  }
  return this
}

function isDate(dtStr,dateSeparator,minimumYear,maximumYear){
  if(!dateSeparator) dateSeparator=dtCh;
  if(!minimumYear)   minimumYear=minYear;
  if(!maximumYear)   maximumYear=maxYear;
  var daysInMonth = DaysArray(12);
  var pos1 = dtStr.indexOf(dateSeparator);
  var pos2 = dtStr.indexOf(dateSeparator,pos1+1);
  var strMonth = dtStr.substring(0,pos1);
  var strDay = dtStr.substring(pos1+1,pos2);
  var strYear = dtStr.substring(pos2+1);
  strYr = strYear;
  if (strDay.charAt(0)=="0" && strDay.length>1) strDay = strDay.substring(1);
  if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth = strMonth.substring(1);
  for (var i = 1; i <= 3; i++) {
    if (strYr.charAt(0)=="0" && strYr.length>1) strYr = strYr.substring(1);
  }
  month = parseInt(strMonth);
  day = parseInt(strDay);
  year = parseInt(strYr);
  if (pos1==-1 || pos2==-1){
    //alert("The date format should be : mm/dd/yyyy");
    return false;
  }
  if (strMonth.length<1 || month<1 || month>12){
    //alert("Please enter a valid month");
    return false;
  }
  if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
    //alert("Please enter a valid day");
    return false;
  }
  if (strYear.length != 4 || year==0 || year<minimumYear || year>maximumYear){
    //alert("Please enter a valid 4 digit year between "+minimumYear+" and "+maximumYear);
    return false;
  }
  if (dtStr.indexOf(dateSeparator,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dateSeparator))==false){
    //alert("Please enter a valid date");
    return false;
  }
  return true;
}

function ValidateFormDate(datevalue){
  //var dt=document.frmSample.txtDate
  if (isDate(datevalue)==false){
    //dt.focus()
    return '0';
  }
  return '1';
}

function days_between(date1, date2) {

// The number of milliseconds in one day
var ONE_DAY = 1000 * 60 * 60 * 24

// Convert both dates to milliseconds
var date1_ms = date1.getTime()
var date2_ms = date2.getTime()

// Calculate the difference in milliseconds
var difference_ms = Math.abs(date1_ms - date2_ms)

// Convert back to days and return
return Math.round(difference_ms/ONE_DAY)

}


/* * * * * * * * * * * * * * * * * * * * * * * * *
* Function added - start
* * * * * * * * * * * * * * * * * * * * * * * * */

function getCurrentHost() { // localhost
  //alert(window.location.host);
  return window.location.host;
}

function getCurrentProjectName() { // sonewe_dev or manoj/sonewe_dev
  //alert(window.location.pathname.substring(1, window.location.pathname.indexOf("/web")));
  return window.location.pathname.substring(1, window.location.pathname.indexOf("/web"));
}

function getCurrentPageName() { // admin.php or admin_dev.php or frontend_dev.php or index.php or blank
  var currentPageName = "";
  if(window.location.pathname.indexOf(".php")!=-1) {
    currentPageName = window.location.pathname.substring(window.location.pathname.indexOf("web/")+4, window.location.pathname.indexOf(".php")+4);
  }
  if("www.meiport.com"==getCurrentHost() || "meiport.com"==getCurrentHost() || "74.200.205.210"==getCurrentHost()) {
    return '';
  }
  //alert(currentPageName);
  return currentPageName;
}

function getCurrentModuleName() { // group
  var currentModuleName = "";
  if(window.location.pathname.indexOf(".php")!=-1) {
    currentModuleName = window.location.pathname.substr(window.location.pathname.indexOf(".php/")+5);
  } else {
    currentModuleName = window.location.pathname.substr(window.location.pathname.indexOf("web/")+4);
  }
  currentModuleName = currentModuleName.substr(0,currentModuleName.indexOf("/"));
  //alert(currentModuleName);
  return currentModuleName;
}

function getCurrentActionName() { // detailGroup
  var currentModuleName = getCurrentModuleName();
  var currentActionName = window.location.pathname.substring(window.location.pathname.indexOf(currentModuleName)+currentModuleName.length+1);
  if(currentActionName.indexOf("/")!=-1) { currentActionName = currentActionName.substr(0,currentActionName.indexOf("/")); }
  //alert(currentActionName);
  return currentActionName;
}

function getCurrentParameter(symfonyStyle) { // symfonyStyle=1 : id/2/uid/13/backPage/viewMyLunchDate,   symfonyStyle=0 : id=2&uid=13&backPage=viewMyLunchDate
  if(!symfonyStyle) symfonyStyle=0;
  var currentActionName = getCurrentActionName();
  var currentParameter = window.location.pathname.substring(window.location.pathname.indexOf(currentActionName)+currentActionName.length+1);
  if(currentParameter!='') {
    if(symfonyStyle==0) {
      var currentParamArray = currentParameter.split("/");
      var currentParameter = "";
      for(i=0; i<currentParamArray.length; i++) {
        if(i%2==0) { currentParameter += "&"+currentParamArray[i]; }
        else       { currentParameter += "="+currentParamArray[i]; }
      }
      currentParameter = currentParameter.substr(1);
    }
  }
  //alert(currentParameter);
  return currentParameter;
}

function getProjectUrl(withHost,withHttp) {
  //alert(getCurrentProjectName());
  //alert(getCurrentHost());
  if(!withHost) withHost=0;
  if(!withHttp) withHttp=0;
  /*if("www.meiport.com"==getCurrentHost() || "meiport.com"==getCurrentHost() || "74.200.205.210"==getCurrentHost()) {
    var projectUrl = "";
  } else {
    var projectUrl = "/";
  }*/
  var projectUrl = "/";
  if(withHost==1) {
    if(withHttp==1) { projectUrl = "http://"+getCurrentHost()+"/"; }
    else            { projectUrl = getCurrentHost()+"/"; }
  }
  if("www.meiport.com"==getCurrentHost() || "meiport.com"==getCurrentHost() || "74.200.205.210"==getCurrentHost()) {
    //projectUrl = projectUrl+getCurrentProjectName()+"/web/";
  } else {
    projectUrl = projectUrl+getCurrentProjectName()+"/web/";
  }
  if(getCurrentPageName()!='') { projectUrl = projectUrl+getCurrentPageName()+"/"; }
  //alert(projectUrl);
  return projectUrl;
}


function y2k(number) { return ( (number < 1000) ? (number + 1900) : number ); }
function isGreaterThanToday(day, month, year)
{
  /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  * Input Parameter :-
  * day   -> date from 1 to 31,  mandatory, if not provided, will return false
  * month -> month from 1 to 12, not mandatory, if not provided, will assume current system month
  * year  -> year in 4 digits,   not mandatory, if not provided, will assume current system year
  *
  * Return Value :-
  * 0  -> if given date is equal to current system date
  * +1 -> if given date is greater than current system date
  * -1 -> if given date is less than current system date
  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
  var now = new Date();
  var today = new Date(y2k(now.getYear()), now.getMonth(), now.getDate());
  day   = ( (!day)   ? today.getDate()      : day );
  month = ( (!month) ? today.getMonth()     : month-1 );
  year  = ( (!year)  ? y2k(today.getYear()) : year );
  var dateToCompare = new Date(year, month, day);

  if(dateToCompare.toString() == today.toString()) { return 0; }
  else {
    if(dateToCompare < today) { return -1; }
    else                      { return +1; }
  }
}

function dateComparision(day1, month1, year1, day2, month2, year2)
{
  /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  * Input Parameter :-
  * day1   -> date1 from 1 to 31,  mandatory, if not provided, will return false
  * month1 -> month1 from 1 to 12, not mandatory, if not provided, will assume current system month
  * year1  -> year1 in 4 digits,   not mandatory, if not provided, will assume current system year
  *
  * day2   -> date2 from 1 to 31,  mandatory, if not provided, will return false
  * month2 -> month2 from 1 to 12, not mandatory, if not provided, will assume current system month
  * year2  -> year2 in 4 digits,   not mandatory, if not provided, will assume current system year
  *
  * Return Value :-
  * 0  -> if given date1 is equal to date2
  * -1 -> if given date1 is less than date2
  * +1 -> if given date1 is greater than date2
  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
  var now = new Date();
  var today = new Date(y2k(now.getYear()), now.getMonth(), now.getDate());
  day1   = ( (!day1)   ? today.getDate()      : day1 );
  month1 = ( (!month1) ? today.getMonth()     : month1-1 );
  year1  = ( (!year1)  ? y2k(today.getYear()) : year1 );
  day2   = ( (!day2)   ? today.getDate()      : day2 );
  month2 = ( (!month2) ? today.getMonth()     : month2-1 );
  year2  = ( (!year2)  ? y2k(today.getYear()) : year2 );

  var date1 = new Date(year1, month1, day1);
  var date2 = new Date(year2, month2, day2);
	//alert(date1+' , '+date2);
  if(date1.toString() == date2.toString()) { return 0; }
  else { return (date1 < date2) ? -1 : +1; } //if(date1 < date2) { return -1; } else { return +1; }
}

function isEnter() { if(keyCode() == 13) { return true; } else { return false; } }

function keyCode(e) {
  if(navigator.appName != 'Netscape'){
    var nonNetScapeKeyCode;
    //if(typeof event!='undefined') { nonNetScapeKeyCode = event.keyCode; } else { nonNetScapeKeyCode = e.keyCode; }
    var nonNetScapeKeyCode = (typeof event!='undefined') ? event.keyCode : e.keyCode;
    return nonNetScapeKeyCode;
  }
  else if(navigator.appName == 'Netscape') {
    document.addEventListener('keyup', getNetScapeKeyCode, true);
    //window.captureEvents(Event.KEYUP); window.onKeyUp = getNetScapeKeyCode;
  }
}
function getNetScapeKeyCode(e) { var netScapeKeyCode = e.which; return netScapeKeyCode; }

function splitString(str,delimeter) {
  if(str.indexOf(delimeter) != -1) {
    var strArray=str.split(delimeter);
    return strArray;
  }
  else { return false; }
}

function isUrl(value) {
  //var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
  //return regexp.test(value);
  var urlregex = new RegExp("^(http:\/\/www.|https:\/\/www.|ftp:\/\/www.|www.){1}([0-9A-Za-z]+\.)");
  if(urlregex.test(value))
  {
    return(true);
  }
  return(false);
}
//This Function added For The Validation of Domain Name
function isDomain(s) {
    var regexp = /^(www.|[a-zA-Z].)[a-zA-Z0-9\-\.]+\.(com|edu|gov|mil|net|org|biz|info|name|museum|us|ca|uk|co.in|co.uk)(\:[0-9]+)*(\/($|[a-zA-Z0-9\.\,\;\?\'\\\+&%\$#\=~_\-]+))*$/;
    return regexp.test(s);
}

function hideDiv(divId) {
  if(!divId) divId='';
  if (divId!='' && document.getElementById(divId)!=null) {
    document.getElementById(divId).style.display = 'none';
    document.getElementById(divId).style.visibility = 'hidden';
  }
}

function showDiv(divId) {
  if(!divId) divId='';
  if (divId!='' && document.getElementById(divId)!=null) {
    document.getElementById(divId).style.display = '';
    document.getElementById(divId).style.visibility = 'visible';
  }
}
function ucFirst(str) {
  firstChar = str.substring(0,1).toUpperCase();
  remainChar = str.substring(1);
  return firstChar + remainChar
}

function ucWords(str) {
  var arrStr = str.split(" ");
  var strOut = "";
  var i = 0;
  for (i=0;i<arrStr.length;i++) {
    firstChar  = arrStr[i].substring(0,1).toUpperCase();
    remainChar = arrStr[i].substring(1);
    strOut += firstChar + remainChar + ' ';
  }
  return strOut.substr(0,strOut.length - 1);
}

function checkUncheckAll(formName,mainCheckboxId,selectAllNone)
{
  if(!formName)       formName='dataForm';
  if(!mainCheckboxId) mainCheckboxId='chkMain';
  if(!selectAllNone)  selectAllNone=document.getElementById(mainCheckboxId).checked;

  var i = 0;
  var totalFormElemets = eval("document."+formName+".elements.length;");

  for(i=0; i<totalFormElemets; i++) {
    element = eval("document."+formName+".elements[i];");
    if(element.type=="checkbox" && element.name!=mainCheckboxId) {
      element.checked = selectAllNone;
    }
  }
}

function atleastOneSelected(formName,mainCheckboxId)
{
  if(!formName) formName = 'dataForm';
  if(!mainCheckboxId) mainCheckboxId='chkMain';

  var flag = 0;
  var totalFormElemets = eval("document."+formName+".elements.length;");

  for(i=0; i<totalFormElemets; i++) {
    element = eval("document."+formName+".elements[i];");
    if(element.type=="checkbox" && element.name!=mainCheckboxId && element.checked==true) {
      flag=1; break;
    }
  }
  if(flag==1) { return true; }
  else { return false; }
}

function getCheckedBoxValue(formName,mainCheckboxId)
{
  if(!formName)          formName = 'dataForm';
  if(!mainCheckboxId) mainCheckboxId='chkMain';

  var returnString = '';
  var separator = ", ";
  var totalFormElemets = eval("document."+formName+".elements.length;");

  for(i=0; i<totalFormElemets; i++) {
    element = eval("document."+formName+".elements[i];");
    if(element.type=="checkbox" && element.name!=mainCheckboxId && element.checked==true) {
      returnString += element.value+separator;
    }
  }

  if(returnString!='' && returnString.substring(returnString.length - separator.length) == separator) {
    returnString = returnString.substring(0,(returnString.length - separator.length));
  }
  return returnString;
}

function checkBlankCondition(field,errorMessage,errorField,condition)
{
  var hasErrorInForm = 0;
  if(!condition) condition = (getFieldValue(field)=='');
  if(!errorField) errorField = 'err'+ucFirst(field);
  if(!errorMessage) errorMessage='errEmpty'+ucFirst(field);
  if(condition) {
    if(hasErrorInForm == 0) { hasErrorInForm = 1; }
    writeErrorMessage(errorField, cultureMessage[errorMessage]);
  }
  return hasErrorInForm;
}
function checkBlank(field,error)
{
  var hasErrorInForm = 0;
  if(typeof(field)=='string') { field = field.split(','); }
  if(typeof(error)=='string') { error = error.split(','); }
  for(i=0; i<field.length; i++) {
    if(getFieldValue(field[i]) == '') {
      if(hasErrorInForm == 0) { hasErrorInForm = 1; }
      writeErrorMessage('err'+ucFirst(field[i]), cultureMessage[error[i]]);
    } else {

    }
  }
  return hasErrorInForm;
}
function checkBlankOrZero(field,error)
{
  var hasErrorInForm = 0;
  if(typeof(field)=='string') { field = field.split(','); }
  if(typeof(error)=='string') { error = error.split(','); }
  for(i=0; i<field.length; i++) {
    if(getFieldValue(field[i]) == '' || getFieldValue(field[i]) == 0) {
      if(hasErrorInForm == 0) { hasErrorInForm = 1; }
      writeErrorMessage('err'+ucFirst(field[i]), cultureMessage[error[i]]);
    }
  }
  return hasErrorInForm;
}
function setFieldValue(field,fieldValue)
{
  if(!fieldValue) fieldValue="";
  if(field!='' && typeof(field)=="string") { field = document.getElementById(field); }
  field.value = (trim(fieldValue)=='') ? '' : trim(fieldValue);
}
function getFieldValue(field)
{
  return trim(document.getElementById(field).value);
}


/* * * * * * * * * * * * * * * * * * * * * * * * *
* Function added - END
* * * * * * * * * * * * * * * * * * * * * * * * */

function checkValidPhoneFormate(val)
{
	var chk1="+.1234567890()- ";
	var ch1;
	var rtn1;
	var flag=false;
	var len=val.length;
	if(len >= 16) return true;
	for(i=0;i<len;i++)
	{
		ch1=val.charAt(i);
		rtn1=chk1.indexOf(ch1);
		if(rtn1==-1)
		{ flag=true; }
	}
	return flag;
}
/**
This function added From refer http://www.the-art-of-web.com/javascript/escape/
**/

function nl2br (str, is_xhtml)
{
    // Inserts HTML line breaks before all newlines in a string
    //
    // *     example 1: nl2br('Kevin\nvan\nZonneveld');
    // *     returns 1: 'Kevin<br />\nvan<br />\nZonneveld'
    // *     example 2: nl2br("\nOne\nTwo\n\nThree\n", false);
    // *     returns 2: '<br>\nOne<br>\nTwo<br>\n<br>\nThree<br>\n'
    // *     example 3: nl2br("\nOne\nTwo\n\nThree\n", true);
    // *     returns 3: '<br />\nOne<br />\nTwo<br />\n<br />\nThree<br />\n'

    breakTag = '<br />';
    if (typeof is_xhtml != 'undefined' && !is_xhtml)
    {
     breakTag = '<br>';
    }

    return (str + '').replace(/([^>]?)\n/g, '$1'+ breakTag +'\n');
}// }}}

// {{{ urldecode
function urldecode( str ) {
    // Decodes URL-encoded string
    //
    // %     note: info on what encoding functions to use from: http://xkr.us/articles/javascript/encode-compare/
    // *     example 1: urldecode('Kevin+van+Zonneveld%21');
    // *     returns 1: 'Kevin van Zonneveld!'
    // *     example 2: urldecode('http%3A%2F%2Fkevin.vanzonneveld.net%2F');
    // *     returns 2: 'http://kevin.vanzonneveld.net/'
    // *     example 3: urldecode('http%3A%2F%2Fwww.google.nl%2Fsearch%3Fq%3Dphp.js%26ie%3Dutf-8%26oe%3Dutf-8%26aq%3Dt%26rls%3Dcom.ubuntu%3Aen-US%3Aunofficial%26client%3Dfirefox-a');
    // *     returns 3: 'http://www.google.nl/search?q=php.js&ie=utf-8&oe=utf-8&aq=t&rls=com.ubuntu:en-US:unofficial&client=firefox-a'

    var histogram = {};
    var ret = str.toString();

    var replacer = function(search, replace, str) {
        var tmp_arr = [];
        tmp_arr = str.split(search);
        return tmp_arr.join(replace);
    };

    // The histogram is identical to the one in urlencode.
    histogram["'"]   = '%27';
    histogram['(']   = '%28';
    histogram[')']   = '%29';
    histogram['*']   = '%2A';
    histogram['~']   = '%7E';
    histogram['!']   = '%21';
    histogram['%20'] = '+';

    for (replace in histogram) {
        search = histogram[replace]; // Switch order when decoding
        ret = replacer(search, replace, ret) // Custom replace. No regexing
    }

    // End with decodeURIComponent, which most resembles PHP's encoding functions
    ret = decodeURIComponent(ret);

    return ret;
}// }}}

function isProperPassword(formField)
{
	var result = true;
	var string = formField.value.length;
	var iChars = " ";
	for (var i = 0; i < string; i++)
	{
		//alert(iChars.indexOf(formField.value.charAt(i)));
		if (iChars.indexOf(formField.value.charAt(i)) != -1)
		{
			result = false;
			break;
		}
	}
	return result;
}
function Trim(s) 
{
	return s.replace(/^\s+/g, '').replace(/\s+$/g, '');
}

function trimAllVals(arrElemIds)
{
  var obj;
  var len = arrElemIds.length;
  for(var i=0;i<len;i++) {
    obj = document.getElementById(arrElemIds[i]);
    if(obj!=null){
      obj.value = Trim(obj.value);
    }
  }
}

function resetAllBorders(arrElemIds,colorCode)
{
  var obj;
  var len = arrElemIds.length;
  for(var i=0;i<len;i++) {
    obj = document.getElementById(arrElemIds[i]);
    if(obj!=null){
      obj.style.borderColor = "#BDBCBD";
    }
  }
}

function datecompare(startDate,endDate,flaggreater) {
	if (startDate != "") {
		sArr = startDate.split("-");
		var sDay = sArr[2];
		var sMonth = sArr[1];
		var sYear = sArr[0];
	}
	if (endDate != "") {
		eArr = endDate.split("-");
		var eDay = eArr[2];
		var eMonth = eArr[1];
		var eYear = eArr[0];
	}
	if (startDate != "" && endDate != "") {
		flag = dateComparision(sDay, sMonth, sYear, eDay, eMonth, eYear);
		if(flaggreater=="greater")
		{
			if(flag == "1" || flag == "0")
			{	
				return false;
			}
		}
		if (flag == "1") {
			return false;
		}
	}
	return true;
}
function resetFormFields(frm)
{
	var n = frm.elements.length;
	for(var i=0;i<n;i++)
	{
	    var type = frm.elements[i].type;
	    type = type.toLowerCase();
		if(type != "button" && type != "submit")
		{ 
			frm.elements[i].value = '';
		}
	}
}
function in_array(string, array)  
{  
   for (i = 0; i < array.length; i++)  
   {  
      if(array[i] == string)  
      {  
         return true;  
      }  
   }  
return false;  
}
function catcalc(cal) {
    var date = cal.date;
    var time = date.getTime()
    // use the _other_ field
    
    var dt = new Date();
	var y  = dt.getYear();
	if (y < 1000) y +=1900;
	var m = dt.getMonth();
	m = m+1;
	if(m < 10) { m ="0"+m;}
	var d = dt.getDate();
    var today = y+"-"+m+"-"+d;
    
    var field = document.getElementById("endDate");
    var returnVal = datecompare(today,field.value);
    var flagDate = "";
    if (field == cal.params.inputField) {
        field = document.getElementById("startDate");
        time -= Date.WEEK; // substract one week
        time += Date.DAY; // substract one day
      	flagDate = "endDate";
    } else {
        time += Date.WEEK; // add one week
        time -= Date.DAY; // substract one day
        flagDate = "startDate";
        
    }
    var date2 = new Date(time);
	field.value = date2.print("%Y-%m-%d"); 
    /*
    if(flagDate=="startDate")
    {
	    var date2 = new Date(time);
	    field.value = date2.print("%Y-%m-%d");  
	    var returnVal = datecompare(today,field.value);
	    if(returnVal)
	    {
	    	document.getElementById("endDate").value = today;
	    }
	    var returnVal = datecompare(today,document.getElementById("startDate").value);
	    if(returnVal)
	    {
	    	document.getElementById("startDate").value = today;
	    }
    }
    else{
    	var date2 = new Date(time);
    	
	    field.value = date2.print("%Y-%m-%d");  
	    var returnVal = datecompare(today,field.value);
	    if(returnVal)
	    {
	    	document.getElementById("startDate").value = today;
	    }
	    var returnVal = datecompare(today,document.getElementById("endDate").value);
	    if(returnVal)
	    {
	    	document.getElementById("endDate").value = today;
	    }
    }
    */
   
    
}
function array_unique( array ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Carlos R. L. Rodrigues (http://www.jsfromhell.com)
    // +      input by: duncan
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   bugfixed by: Nate
    // +      input by: Brett Zamir (http://brettz9.blogspot.com)
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Michael Grier
  // %          note 1: the second argument, sort_flags is not implemented
    // *     example 1: array_unique(['Kevin','Kevin','van','Zonneveld','Kevin']);
    // *     returns 1: ['Kevin','van','Zonneveld']
    // *     example 2: array_unique({'a': 'green', 0: 'red', 'b': 'green', 1: 'blue', 2: 'red'});
    // *     returns 2: {'a': 'green', 0: 'red', 1: 'blue'}
    
    var key = '', tmp_arr1 = {}, tmp_arr2 = {};
    var val = '';
    tmp_arr1 = array;
    
    var __array_search = function (needle, haystack) {
        var fkey = '';
        for (fkey in haystack) {
            if ((haystack[fkey] + '') === (needle + '')) {
                return fkey;
            }
        }
        return false;
    }
  
    for (key in tmp_arr1) {
        val = tmp_arr1[key];
        if (false === __array_search(val, tmp_arr2)) {
            tmp_arr2[key] = val;
        }
        
        delete tmp_arr1[key];
    }
    return tmp_arr2;
}

function checkboxStat(operation,element) /// if only one checkbox is there than it would be undefined
{
	if(operation == "select")
	{
		if(element.length == undefined)
			element.checked = true;
		else
		{
			for(var i=0;i<element.length;i++)
			{
				element[i].checked = true;
			}
		}
	}
	if(operation == "deselect")
	{
		if(element.length == undefined)
			element.checked = false;
		else
		{
			for(var i=0;i<element.length;i++)
			{
				element[i].checked = false;
			}
		}
	}
}

function validateChkbox(form,element,act)
{
	var chkd_flg = false;

	if(element.length == undefined) /// if only one checkbox is there than it would be undefined
	{
		if(element.checked == false)
		{
			chkd_flg = false;
		}
		else
		{
			chkd_flg = true;
		}
	}
	else
	{
		for(i=0;i<element.length;i++)
		{
			if(element[i].checked == true)
			{
				chkd_flg = true;
				break;
			}
		}
	}

	if(chkd_flg == false)
	{
		if(element.length == undefined)
		{
			alert("Please select checkbox");
		}
		else
		{
			alert("Please select atleast one checkbox");
		}
		return false;
	}
	else
	{
		if(act == 'del')
		{
			return confirm('Are you sure you want to delete the details?');
		}
		else
			return true;
	}
}

function onlyStrSpc(str)
{
	var legalChars = /\w/;
	var illegalChars = /\d/;
	var illegalChars2= /[\(\)\<\>\;\:\\\"\[\]\!\@\#\$\%\^\&\*\`\~\{\}\.\,\-\/]/;

	if (legalChars.test(str))
	{
		if(str.match(illegalChars) == null && str.match(illegalChars2) == null)
		{
			return true;
		}
		else
			return false;
	}
	else
	{
		return false;
	}
}

function isStrSpcNum(str)
{
	var legalChars = /\w/;
	var illegalChars2= /[\(\)\<\>\;\:\\\"\[\]\!\@\#\$\%\^\&\*\`\~\{\}\.\,\-\/]/;

	if (legalChars.test(str))
	{
		if(str.match(illegalChars2) == null)
		{
			return true;
		}
		else
			return false;
	}
	else
	{
		return false;
	}
}

function isStrNum(str)
{
	var legalChars = /\w/;
	var illegalChars2= /[\(\)\<\>\;\:\\\"\[\]\!\@\#\$\%\^\&\*\`\~\{\}\.\,\ \-\/]/;

	if (legalChars.test(str))
	{
		if(str.match(illegalChars2) == null)
		{
			return true;
		}
		else
			return false;
	}
	else
	{
		return false;
	}
}

// function to calculate local time
// in a different city
// given the city's UTC offset
function calcTime(offset) {

    // create Date object for current location
    d = new Date();
   
    // convert to msec
    // add local time zone offset
    // get UTC time in msec
    utc = d.getTime() + (d.getTimezoneOffset() * 60000);
   
    // create new Date object for different city
    // using supplied offset
    nd = new Date(utc + (3600000*offset));
   
    // return time as a string
    return nd.toLocaleString();

}
