function emailValid(email) {
	var EMAIL_REGEXP = /^[0-9a-zA-Z\.\-\_]+\@(([0-9a-zA-Z\-])+\.)+([a-zA-Z\-])+$/;
	return EMAIL_REGEXP.test(email);
}

function fieldsFilled(fields) {
	var valid = true;
  fields.each(function(field) {
  	if (!$(field).present()) {
  		valid = false;
    	return;
   	}
	});
	return valid;
}

var Newsletter = {
	msgs: {},
	actions: { ADD: 'AddSubscription', DELETE: 'DeleteSubscription' },
	addSubscription: function() {
		return this._sendRequest(this.actions.ADD);
	},
	deleteSubscription: function() {
		return this._sendRequest(this.actions.DELETE);
	},
	_sendRequest: function(action) {
		var msgs = this.msgs; 
		if (!emailValid($('newsletter_email').getValue())) {
			if (msgs.invalid) alert(msgs.invalid);
			return false;
		}
		new Ajax.Updater('flash', './?act=newsletter' + action, {
			method: 'post',
			parameters: { email: $('newsletter_email').getValue() },
			onFailure: function() {
				if (msgs.error) alert(msgs.error);
			}
		});
	}
};

var Polls = {
	vote: function(pollId) {
		if ($('poll_'+pollId+'_selected').value != '1') return false;
		$('poll_'+pollId).select('.status').first().show();
		new Ajax.Updater('poll_'+pollId, './?act=voteHandler&pollId='+pollId, {
			method: 'post',
			parameters: $('poll_'+pollId+'_form').serialize()
		});
	}
};

var Contact = {
	msgs: {},
	sendEmail: function() {
		if (!fieldsFilled(['contact_name', 'contact_email', 'contact_subject', 'contact_message'])) {
			alert(this.msgs.blankFields);
			return false;
		}
		if (!emailValid($('contact_email').getValue())) {
			alert(this.msgs.invalidEmail);
			return false;
		}
		var self = this;
		new Ajax.Updater('flash', './?act=sendEmail', {
			method: 'post',
			parameters: $('contact_form').serialize(),
			onFailure: function() {
				alert(self.msgs.error);
			}
		});
	}	
};

var checkMaxlenght = function(elements) {
	elements.keypress(function(event) {  
		var key = event.which;  
		if (key >= 33 || key == 13) {  
			var maxlength = $(this).attr("maxlength");  
		    var length = this.value.length;  
		    if (length >= maxlength) {
		    	event.preventDefault();
		    }
		}  
	});  
};

