// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults

Object.extend(String.prototype, {
  upcase: function() {
    return this.toUpperCase();
  },

  downcase: function() {
    return this.toLowerCase();
  },

  strip: function() {
    return this.replace(/^\s+/, '').replace(/\s+$/, '');
  },

  toInteger: function() {
    return parseInt(this);
  },

  toSlug: function() {
    return this.strip().downcase().replace(/[^-a-z0-9~\s\.:;+=_]/g, '').replace(/[\s\.:;=+]+/g, '-');
  }
});

function toggle(fieldName) {
  $(fieldName).toggle();
}

function toggleMetaFields(desired) {
  if(desired == 'on') {
    Effect.BlindUp('page_meta_toggle');
    Effect.BlindDown('page_meta_fields');
  } else if(desired == 'off') {
    Effect.BlindUp('page_meta_fields');
    Effect.BlindDown('page_meta_toggle');
  }
}

function setupFieldNameObservers(fieldNames) {
  for(i = 0; i < fieldNames.length; i++) {
    field = fieldNames[i];
    setClearAndShow(field[0], field[1]);
  }
}

function setClearAndShow(fieldName, fieldValue) {
  $(fieldName).onfocus = function() { clearOnFocus(fieldName, fieldValue); };
  $(fieldName).onblur = function() { showOnBlur(fieldName, fieldValue); };
}

function clearOnFocus(fieldName, fieldValue) {
  e = $(fieldName);
  if(e.value == fieldValue) {
    e.value = '';
  }
}

function showOnBlur(fieldName, fieldValue) {
  e = $(fieldName);
  if(e.value == '') {
    e.value = fieldValue;
  }
}

function newsletter_validate(){
	
	var errors = 0;
	var name = $('name').value;
	var name_label = $('name_label');
	var email = $('email_address').value;
	var email_label = $('email_label');
	
	name_label.innerHTML = "Name"
	email_label.innerHTML = "Email"
	
	if (name == ""){errors+=1; name_label.style.color = "#ff0000"; name_label.innerHTML += " (required)"}
	else{$('name_label').style.color = "#333333";name_label.innerHTML = "Name";}
	
	if (email.match(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/)) 
	{email_label.style.color = "#333333";email_label.innerHTML = "Email";}
	else{errors+=1;email_label.style.color = "#ff0000"; email_label.innerHTML += " (required)"}

	if (errors > 0){return false;}
	else{return true;}
}
