var Interface = {
	confirmDelete: function(recordType) {
		return confirm("Are you sure you want to delete this " + recordType + "?");
	}
}

var Form = {

  check: function(form) {
			var proceed = true;
	    var elements = form.elements;
			var errorMessage = 'Please correct the following errors:<br /><ul>';
			var allRequired;
			for (i=0;i<elements.length;i++) {
			if (elements[i].className.indexOf('required')!=-1&&elements[i].value=='') {
			   elements[i].style.backgroundColor = '#cc0000';
				 if (!allRequired) {
			     errorMessage += '<li>- fill in all required fields (*marked with an asterisk)</li>';
					 allRequired = true;
				 }
				 proceed = false;
			 }
			 if (elements[i].value!=''&&elements[i].className.indexOf('isEmail')!=-1&&!Form.checkEmail(elements[i].value)) {
			   elements[i].style.borderStyle = 'dotted';
			   elements[i].style.borderColor = '#ff0000';
			   errorMessage += '<li>- make sure you\'ve entered a valid email address';
				 proceed = false;
			 }
			 if (elements[i].className.indexOf('isConfirm')!=-1&&elements[i].value!=elements[i-1].value) {
			   elements[i].style.borderStyle = 'dotted';
			   elements[i].style.borderColor = '#ff0000';
			   errorMessage += '<li>- check that password and password confirmation match</li>';
				 proceed = false;
			 }
			}
			if (!proceed) {
			  document.getElementById('errorMessage').innerHTML = errorMessage + "</ul>";
			}
			return proceed;
  },
	
	checkEmail: function(email) {
		var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // not valid
		var reg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/; // valid
		return (!reg1.test(email) && reg2.test(email));
	},
	
  dob: function(element) {
  
    var thisForm = element.form;
    var targetName = element.name.replace(/\_(.*)/,"");
    var year = thisForm[targetName+'_year'].value;
		var month = thisForm[targetName+'_month'].value;
		var day = thisForm[targetName+'_day'].value;
		
		if (day=='31'&&(month=='04'||month=='06'||month=='09'||month=='11')) {
  	  //element.form[targetName+'_day'].value='30';
			day = '30';
		} else if (month=='02'&&day=='29'&&!(Math.round(year/4)==year/4)) {
  	  //element.form[targetName+'_day'].value='28';
			day = '28';
		} else if (month=='02'&&(day=='30'||day=='31')) {
  	  element.form[targetName+'_day'].value='28';
			if (Math.round(year/4)==year/4) {
			  day = '29';
			} else {
			  day = '28';
			}
		}
		
  	element.form[targetName+'_day'].value=day;
		
		thisForm[targetName].value = year+'-'+month+'-'+day;
  
  },
	
	dob_set: function(element,defaultDate) {
	
  	// ideally do a proper regExp match
  	if (defaultDate!=undefined&&defaultDate!='') {
      var thisForm = element.form;
  	  element.form[element.name].value=defaultDate;
  	  element.form[element.name+'_day'].value=defaultDate.substring(8);
  	  element.form[element.name+'_month'].value=defaultDate.substring(5,7);
  	  element.form[element.name+'_year'].value=defaultDate.substring(0,4);
  	
  	}
	
	}

}