// JavaScript Document

// create closure

(function($) {


$(document).ready(function () 
{
	$.lazy('/js/jquery.shake.js', 'shake');  
	$.lazy('/js/jquery.validate.js', 'validate');  
	$.lazy('/js/jquery.formvalidation.js', 'formValidation');  
	nav.addEvents();
	styles.addStyles();
	if($('form#contact')) contact.init();
	if($('form#quote')) quote.init(); children.init();
	$('#top').prepend('<div id="phone_cont"><span class="text">Serving Michigan</span> <span class="number">877-222-8849</span></div>')
});


var nav = function ()
{
	
	var private = {};
	var public = {};
	
	public.addEvents = function(){
		
		$('#nav a').each(function (i, e) {
						var img = $(e).find('img');
						var up = img.attr('src');
						var pre = img.attr('src').substring(0, up.length-4);
						if(img.hasClass('nav_up')) {
							$(e).hover(function (){
											img.attr('src', pre + "_over.png");
										},
										function (){
											img.attr('src', up);	
										});
						}
					});
	}

   return public;

}();

var styles = function()
{
	var private = {};
	var public = {};
	
	public.addStyles = function()
	{
		$('ul.zebra li:even').addClass('highlight');
		$('option[value=default]').css({fontStyle: 'italic', color: '#808080'})
	}
	
	return public;
}();

var contact = function()
{
	var private = {};
	var public = {};
	
	public.init = function()
	{
		private.addEvents();
	}
	
	private.addEvents = function () 
	{
		
		$('#contact').submit(function (){
			$(this).validate({callback: private.callback}); 
		})
		$('#contact #reset').click(function (){
			$('form :input').each(function(i, e){
				//if($(e).attr('value')!=''){ $(e).shake(); }
				$(e).attr('value', '');
			})
			$('form select').each(function(i, e){
				$(e).attr('value', 'default');
			})
		});

	}
	
	private.callback = function ()
	{
		jQuery.post('/mods/sendEmail.php', $('#contact').serialize(), private.responseHandler);
		
	}
	
	private.responseHandler = function (data)
	{
		$('html').animate({scrollTop:0}, 500); 
		var thanks = $('<p></p>').html("Thank you for your inquiry. I will contact you shortly to rewiew your insurance needs.").attr({id: 'thanks'}).css({'display': 'none'})
		$('#contact').before(thanks).animate({opacity: 1.0}, 500).slideUp(500);
		$(thanks).show(500);
	}
	
	return public;
}();

var quote = function () {
	var private = {};
	var public = {};
	
	public.init = function ()
	{
		private.addEvents();
	}
	
	private.addEvents = function ()
	{
		$('#quote').submit(function(){
			$(this).validate({callback: private.callback}); 
		})
		
		$('#quote #reset').click(function (){
			$('form :input').each(function(i, e){
				//if($(e).attr('value')!=''){ $(e).shake(); }
				$(e).attr('value', '');
			})
			$('form select').each(function(i, e){
				$(e).attr('value', 'default');
			})
			
		});
		
		
		$('#spouse').change(function(){
			switch($(this).attr('value')) {
				case 'no' : 
					$('form .spouse').hide('normal');
				break;
				case 'default' : 
					$('form .spouse').hide('normal');
				break;
				case 'yes' : 
					$('form .spouse').show('normal');
				break;
			}
		})
		$('#children').change(function(){
			switch($(this).attr('value')) {
				case 'no' : 
					$('form .children').hide('normal');
				break;
				case 'default' : 
					$('form .children').hide('normal');
				break;
				case 'yes' : 
					$('form .children').show('normal');
				break;
			}
		})
	}
	
	private.callback = function ()
	{
		if($('#spouse').attr('value') == 'no') $('.spouse').remove();
		if($('#children').attr('value') == 'no') $('.children').remove();
		jQuery.post('/mods/sendQuote.php', $('#quote').serialize(), private.responseHandler);
	}
	
	private.checkForm = function () 
	{
		
	}
	
	private.responseHandler = function (data)
	{
		$('html').animate({scrollTop:0}, 500); 
		var thanks = $('<p></p>').html("Thank you for your inquiry. I will contact you shortly to rewiew your insurance needs.").attr({id: 'thanks'}).css({'display': 'none'})
		$('#quote').before(thanks).animate({opacity: 1.0}, 500).slideUp(500);
		$(thanks).show(500);
	}
	
	return public;
}();

var children = function()
{
	var private = {};
	var public = {};
	
	public.init = function()
	{
		var c = new ChildInput(0);
		private.addEvents();
	}
	
	private.addEvents = function () 
	{
		var i = 1;
		$('#addChildButton').click(function(){
			var c = new ChildInput(i);
			i++;
			return false;
		});
		
		
	}	
	
	return public;
}();

ChildInput = function(num) {
  this.init(num);
}

$.extend(ChildInput.prototype, {
   // object variables
	number: '',
	group: '',
	
	init: function(num)
	{
	 // do initialization here
		this.number = num;
		this.addElements();
		this.addEvents();
	},
	
	addElements: function()
	{
		
		var table = $('<table></table>').html('<tr></tr>').attr({'class': 'child'});
		var doblabel = $('<label></label>').html('Date of Birth').attr({'for': 'child_birth_date'+this.number});
		var dobinput = $('<input type="text"></label>').attr({ id: 'child_birth_date'+this.number, name: 'child_birth_date'+this.number, 'class': 'm'});
		
		var genderlabel = $('<label></label>').html('Gender').attr({'for': 'child_gender'+this.number});
		var genderselect = $('<select></select>').attr({id: 'child_gender'+this.number, name: 'child_gender'+this.number});
		var defaultopt = $('<option></option>').html('select').attr({value: 'default'});
		var femaleopt = $('<option></option>').html('female').attr({value: 'female'});
		var maleopt = $('<option></option>').html('male').attr({value: 'male'});
		
		var remove = $('<img />').attr({src:'/images/assets/remove_child.png', alt: 'Remove child'});
		var atag = $('<a></a>').attr({href:'#', 'class': 'button'});
		
		var li1 = $('<td></td>');
		var li2 = $('<td></td>');
		var li3 = $('<td></td>');
		
		$(li1).append(doblabel).append(dobinput);
		$(genderselect).append(defaultopt).append(femaleopt).append(maleopt);
		$(atag).append(remove);
		$(li2).append(genderlabel).append(genderselect);
		$(li3).append(atag);
		$(table).find('tr').append(li1).append(li2).append(li3);
	
		
		$('#addChildButton').before(table);
		$(table).css({display: 'none'}).slideDown('normal');
		
		this.group = table;
	},
	
	addEvents: function ()
	{
		var owner = this;
		
		$(this.group).find('.button').hover(
			function (data) { $(this).animate({width: 128}, 300); },
			function (data) { $(this).animate({width: 15}, 300); }
		)
		
		$(this.group).find('.button').click(function(){
			$(owner.group).slideUp('normal', function () { $(this).remove() });
			return false;
		})
	},
	
	doSomething: function() 
	{
	 // an example object method
	 
	}
});


// end of closure
})(jQuery);

