﻿function updateDate() {
  var year = document.regForm.dob_year;
  var month = document.regForm.dob_month;
  var date = document.regForm.dob_date;
  if (year.selectedIndex != 0) {
    month.disabled = false;
    if (month.selectedIndex != 0) {
      date.disabled = false;
      if (String(month.selectedIndex).match(/12|10|8|7|5|3|1/) != null) {
        date.options.length = 32;
        date.options[29].text = '29';
        date.options[30].text = '30';
        date.options[31].text = '31';
      } else if (String(month.selectedIndex).match(/11|9|6|4/) != null) {
        date.options.length = 31;
        date.options[29].text = '29';
        date.options[30].text = '30';
        if (date.selectedIndex == 31) {
          date.selectedIndex = 0;
        }
      } else {
	    var theYear = Number(year.options[year.selectedIndex].text);
        if ((theYear%4 == 0) && ((theYear%100 != 0) || (theYear%400 == 0))) {
          date.options.length = 30;
          date.options[29].text = '29';
          if (date.selectedIndex == 31 || date.selectedIndex == 30) {
            date.selectedIndex = 0;
          }
        } else {
          date.options.length = 29;
          if (date.selectedIndex == 31 || date.selectedIndex == 30 || date.selectedIndex == 29) {
            date.selectedIndex = 0;
          }
        }
      }
    } else {
      date.disabled = true;
    }
  } else {
    month.disabled = true;
	date.disabled = true;
  }
}
function isEmpty(target) {
  if (target.type == 'text' || target.type == 'textarea' || target.type == 'password' || target.type == 'hidden') {
    if (target.value == '') {
      return true;
    } else {
      return false;
    }
  }
  if (target.type == 'select-one' || target.type == 'select-multiple') {
    if (target.selectedIndex == -1 || target.selectedIndex == 0) {
      return true;
    } else {
      return false;
    }
  }
  /*if (target.type == 'checkbox' || target.type == 'radio') {
    var ok = false;
    for (var i=0; i<target.length; i++) {
      if (target[i].checked == true) {
        ok = true;
      }
    }
    if (ok == true) {
      return false;
    } else {
      return true;
    }
  }*/
}
function formatData(target, nospace) {
  var value = target.value;
  var myParagraph = value.split(/\n+|\r+/g);
  if (myParagraph != null) {
    value = '';
    for (var i=0; i<myParagraph.length; i++) {
      var invalidSpace = myParagraph[i].match(/^\s+/);
      if (invalidSpace != null) {
        myParagraph[i] = myParagraph[i].substring(invalidSpace[0].length, myParagraph[i].length);
      }
      var myWord = myParagraph[i].match(/\S+/g);
      if (myWord != null) {
        myParagraph[i] = '';
        for (var j=0; j<myWord.length; j++) {
          if (j != myWord.length-1 && nospace != true) {
            myParagraph[i] += myWord[j] + ' ';
          } else {
            myParagraph[i] += myWord[j];
          }
        }
      }
      if (myParagraph[i] != '') {
        if (i != myParagraph.length-1) {
          value += myParagraph[i] + '\r';
        } else {
          value += myParagraph[i];
        } 
      }
    }
    target.value = value;
  } else {
    target.value = value;
  }
}
function formatDataToHTML(value) {
  var myParagraph = value.split(/\n+|\r+/g);
  if (myParagraph != null) {
    value = '';
    for (var i=0; i<myParagraph.length; i++) {
      myParagraph[i] = "<p>" + myParagraph[i] + "</p>";
      value += myParagraph[i];
    }
  }
  return value;
}
function formatDataToTEXT(value) {
  var myParagraph = value.split(/<p>|<\/p>(<p>)?/g);
  if (myParagraph != null) {
    value = '';
    for (var i=0; i<myParagraph.length; i++) {
      myParagraph[i] = myParagraph[i] + '\r';
      value += myParagraph[i];
    }
  }
  return value;
}
function checkEmail(target) {
  formatData(target, true);
  var value = target.value;
  var ok = true;
  if (value != '') {
    //var myEmail = value.match(/^(\w+(\.\w+)*)@(\w+(\.\w+)*(\.[a-zA-Z]+)|(\d{1,3}(\.\d{1,3}){3}))$/);
	var myEmail = value.match(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/);
	//var myEmail = value.match(/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/);
    if (myEmail != null) {
      var myIP = myEmail[3].match(/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/);
      if (myIP != null) {
        for (var i=0; i<=myIP.length; i++) {
          if (myIP[i] > 255) {
            ok = false;
          }
        }
      }
    } else {
      ok = false;
    }
  }
  if (ok != true) {
    alert('Please enter a valid email address e.g. admin@abc.com');
    target.select();
  }
}
function checkContact(target) {
  formatData(target, true);
  var value = target.value;
  var ok = true;
  var myContact = value.split(/\s+/);
  if (myContact != null) {
    for (var i=0; i<myContact.length; i++) {
      //var myChar = myContact[i].match(/[^\d\(\)\[\]\/\\\.\+\*#-,]/g);
      var myChar = myContact[i].match(/[^\d]/g);
      if (myChar != null) {
        ok = false;
      }
    }
  }
  if (ok != true) {
    alert('Please enter a valid number');
    target.select();
  }
}
