(function($){
	
	if(typeof $.calculator == 'undefined') {
		$.calculator = {};
	}
	
	$.calculator.intro = {
		
		init:function() {
			var obj = this;
			
			// key notes lightbox
			$('.keyNotesOverlay').click(function(){
				var $o = $.overlay().addClass('loading').load($(this).attr('href')+' #key_notes',function(){$(this).removeClass('loading').trigger('overlay.resize');}).addClass('overlayStyle01');
				return false;
			});
			// field autoclears
			$('.autoclear').autoclear();
			
			// form validation
			$('form[name="calculator"]').submit(function(){return obj.validate(obj.stripSymbols(this));});
		},
		
		//function to strip symbols out of the form fields before validation
		stripSymbols: function(form){
			//find input fields
			$(form).find('input').each(function(){
				$(this).val($(this).val().replace(/[,|£|$|€|¥]+/g, '')); //remove all special chars
			})
			return form; //return the form object
		},
		
		validate:function(form) {
			var $form = $(form),
				valid = true,
				obj = this;
			
			$form.find('.validateNum').each(function(){
				
				obj.hideError(this);
				var num = $(this).val().match(/^[0-9]+$/);
				if(!num) {
					valid = false;
					obj.throwError(this, 'Please answer this question');
				}
			
			});
			
			return valid;
			
		},
		
		throwError:function(field,msg) {
			var $row = $(field).closest('.formRow').addClass('formRowError');
			var $msg = $('<p class="errorMessage">'+msg+'</p>');
			$row.append($msg);
		},
		
		hideError:function(field) {
			var $row = $(field).closest('.formRow').removeClass('formRowError');
			$row.find('p.errorMessage').remove();
		}
		
	}
	
	$(function(){
		$.calculator.intro.init();
	});

})(jQuery);