var westReactions = Class.create();	
westReactions.prototype = {
	
	postUrl : '/ajax/post_reaction.php',
	reactionHistory : '',
	
	initialize : function(options) {
	},
	
	countWords : function(fieldToCount, maxLength) {
		var textToCount = $F(fieldToCount);
		if (textToCount.length != 0) {
			wordCount = textToCount.split(" ");
			wordCount = wordCount.length;
		} else {
			wordCount = 0; 
		}
		$(fieldToCount + '_count').innerHTML = (maxLength - wordCount);
		
		if (wordCount >= maxLength) {
			$(fieldToCount).value = this.reactionHistory;
		} else {
			this.reactionHistory = textToCount;
		}
	},
		
	submitForm : function() {
		// Create JSON object
		var json = {
			"formName": "reactionForm",
			"formErrors": false,
			"fields": {
				"frm_newsid" : {
					"name" : "frm_newsid",
					"value" : escape($F('frm_newsid')),
					"required" : true,
					"valid" : false
				},
				"frm_name" : {
					"name" : "frm_name",
					"value" : escape($F('frm_name')),
					"required" : true,
					"valid" : false
				},
				"frm_email" :{
					"name": "frm_email",
					"value": escape($F('frm_email')),
					"required" : true,
					"valid" : false
				},
				"frm_reactie" :{
					"name": "frm_reactie",
					"value": escape($F('frm_reactie')),
					"required" : true,
					"valid" : false
				},
				"frm_captcha" :{
					"name": "frm_captcha",
					"value": escape($F('frm_captcha')),
					"required" : true,
					"valid" : false
				},
				"frm_phonenumber" :{
					"name": "frm_phonenumber",
					"value": escape($F('frm_phonenumber')),
					"required" : false,
					"valid" : true
				}
			}
		};
		
		// Send JSON with Ajax to server
		new Ajax.Request(this.postUrl, {
			method: 'post',
			encoding: 'iso-8859-1',
			requestHeaders: {Accept: 'application/json'},
			postBody: 'json=' + Object.toJSON(json),
			onSuccess: function(transport) {
				var response = transport.responseText.evalJSON(true);
				if (response.formErrors) {
					// Loop through the form fields
					for (field in response.fields) {
						// Show (toggle) error message div
						if ($(field + '_error') != undefined) {
							if (!response.fields[field].valid) {
								$(field + '_error').show();
							} else {
								$(field + '_error').hide();
							}
						}
					}
				} else {
					// Remove form and show confirmation message
					$('reactionFormBlock').innerHTML = '<div id="confirmationMessage"><p>' + response.confirmationMessage + '</p></div>';
				}
			}
		});
	}
}

// --- Initialize object after pageLoad
Event.observe(window, 'load', westReactionsInit, false);

var mywestReactions = null;
function westReactionsInit() {
	mywestReactions = new westReactions();
}