﻿/*
 * Namespace: ox.input
 *
 * Functions related to form inputs i.e. handling enter keypresses etc.
 *
 */
 
if (typeof ox == "undefined") {
  ox = new Object();
}

// Rather than doing this in separate methods, do it once as a global for everything
var $j = jQuery.noConflict();

$j(document).ready(function(){
	ox.input.init();
});


ox.input = new function() {
	// Private vars
	var undefined;
	
	// Private methods
	
	
	// Public methods
	return {
		init: function() {
			
		},
		
		clickButton: function(event, button) {
			if (event.keyCode === 13) {
				$j('#' + button).click();
				return false;
			}
		},

		// Override the default submit action when the user presses the enter key by swallowing the event
		swallowEnter: function(event) {
			if(event.keyCode === 13) {
				event.keyCode = null;
				return;
			}
		},
		
		handleEnter: function(selector, button) {
			$j(selector).keypress(function(event) {
				if (event.keyCode == 13) {
					event.keyCode = null;
					event.returnValue = false;
					$j(button).click();
					return false;
				}
			});
		},
		
		applyDefaults: function (selector) {
			// Clear the input boxes of their default value when they receive focus and replace with default value on blur if empty
			$j(selector).focus(function() {
				var el = $j(this);
				if(el.val() === el.attr("defaultValue")) {
					el.val("");	
				}
			}).blur(function() {
				var el = $j(this);
				if (el.val() === "") {
					el.val(el.attr("defaultValue"));
				}
			});
			
			$j(selector).each(function() {
				var el = $j(this);
				if (el.val() === "") {
					el.val(el.attr("defaultValue"));
				}
			});
		},
		
		restrictNumeric: function(selector) {
			$j(selector).keydown(function(event) {
				var key = event.keyCode;
			
				// Check for 0-9, Backspace, Delete, Left arrow and Right arrow
				if ((key < 48 || key > 57) && key != 8 && key != 127 && key != 37 && key != 39) {
					event.returnValue = false;
					return false;
				}
			});
		},
		
		restrictFloat: function(selector) {
			$j(selector).keydown(function(event) {
				var key = event.keyCode;

				// Check for 0-9, Backspace, Delete, Left arrow and Right arrow
				if ((key < 48 || key > 57) && key != 8 && key != 127 && key != 37 && key != 39 && key != 190) {
					event.returnValue = false;
					return false;
				}
			});
		}
	};
}();
