function addEvent(obj, type, fn) {
   if (obj.addEventListener) {
      obj.addEventListener(type, fn, false);
      return true;
   } else if (obj.attachEvent) {
      var r = obj.attachEvent("on"+type, fn);
      return r;
   } else {
      return false;
   }
}

function stopEvent(e) {
   if (e.stopPropagation) {
      e.stopPropagation();   // for DOM-friendly browsers
      e.preventDefault();
   } else {
      e.returnValue = false; // for IE
      e.cancelBubble = true;
   }
}

function validateRequiredRadio(field_name, error_message) {
   var fields = document.getElementsByName(field_name);
   for(var i=0;i<fields.length;i++)
      if(fields[i].checked == true)
         return "";
   return error_message;
}

function validateRequiredCheckbox(field_id, error_message) {
   var field = document.getElementById(field_id);
   if (!field.checked)
      return error_message;
   return "";    
}

function validateRequiredCheckboxFld(field_id) {
   var field = document.getElementById(field_id);
   if (!field.checked)
      return false;
   return true;    
}


function validateRequired(field_id, error_message) {
   var field = document.getElementById(field_id);
   if (trim(field.value)=="")
      return error_message;
   return "";
}

function validateRequiredFld(field_id) {
   var field = document.getElementById(field_id);
   if (trim(field.value)=="")
      return false;
   return true;
}


function validateEmailByValue(field_value, error_message)
{
    if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(field_value))
      return "";
   return error_message;
}

function validateEmail(field_id, error_message) {
   var email = document.getElementById(field_id);
   if (!checkEmail(email))
      return error_message;
   return "";
}

function validateEmailFld(field_id) {
   var email = document.getElementById(field_id);
   if (!checkEmail(email))
      return false;
   return true;
}


function checkEmail(email) {
   if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email.value))
      return true;
   return false;
}

function validateDate(day, month, year, error_message)
{
    if (!checkDate(day, month, year))
        return error_message;
    return "";    
}

function validateDateFld(day, month, year)
{
    if (!checkDate(day, month, year))
        return false;
    return true;    
}


function validateDateVal(day, month, year)
{
    if (!checkDate(day, month, year))
        return false;
    return true;    
}


function checkDate(day, month, year)
{
    var leap;
    
    if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0))     
      leap = 1;
              
   if ((month == 2) && (leap == 1) && (day > 29)) 
    return false; 
   
   if ((month == 2) && (leap != 1) && (day > 28)) 
      return false

    if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) 
      return false;
    
    return true;
}

function read_cookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function trim(str) {
   return str.replace(/^\s+|\s+$/g,"");
}