/******************************************************************************
 * Script name:          [GLOBAL]javascript/functions.js
 * Author:               Alberto Giorgi
 * Date (creation):      03.12.2001
 ******************************************************************************/

function isAlphaNumeric (str) {
  var alphaNumeric = /^[a-zA-Z0-9]+$/

  return alphaNumeric.test(str)
}

function LTrim(str) {
	for (var i=0; str.charAt(i)==" "; i++);
	return str.substring(i,str.length);
}

function RTrim(str) {
	for (var i=str.length-1; str.charAt(i)==" "; i--);
	return str.substring(0,i+1);
}

function Trim(str) {
	return LTrim(RTrim(str));
}

function isEmail (str) {
  var addressEmail = /^.+\@.+\..+$/

  if (Trim(str).indexOf(" ") > 0)
    return false;

  return addressEmail.test(str)
}

function popUpWindow(page, newWin, width, height, scroll, resize, status, menubar) {

  if (newWin)
    winName = (String)(Math.random()).substr(2);
  else
    winName = "popUpWindow";

  window.open(page, winName, "width=" + width + ",height=" + height + ",toolbar=no,location=no,directories=no,status=" + status + ",menubar=" + menubar + ",scrollbars=" + scroll + ",resizable=" + resize).focus();

  return winName;
}

function openCalendar (relPath, form_name, element_name_m, element_name_d, element_name_y) {
  popUpWindow(relPath + 'common/calendar.php?form_name=' + form_name + '&element_name_m=' + element_name_m + '&element_name_d=' + element_name_d + '&element_name_y=' + element_name_y, 'calendar', 220, 210, 'no', 'no', 'no', 'no');
}

function clearDateFields (form_name, element_name_m, element_name_d, element_name_y) {
  eval('document.' + form_name + '.elements["' + element_name_m + '"].value=""');
  eval('document.' + form_name + '.elements["' + element_name_d + '"].value=""');
  eval('document.' + form_name + '.elements["' + element_name_y + '"].value=""');
}

function y2k(number) { return (number < 1000) ? number + 1900 : number; }

function isDate (day, month, year) {
// checks if date passed is valid
// will accept dates in following format:
// isDate(dd,mm,ccyy), or
// isDate(dd,mm) - which defaults to the current year, or
// isDate(dd) - which defaults to the current month and year.
// Note, if passed the month must be between 1 and 12, and the
// year in ccyy format.

    var today = new Date();
    year = ((!year) ? y2k(today.getYear()):year);
    month = ((!month) ? today.getMonth():month-1);
    if (!day) return false
    var test = new Date(year,month,day);
    if ( (y2k(test.getYear()) == year) &&
         (month == test.getMonth()) &&
         (day == test.getDate()) )
        return true;
    else
        return false
}