var Boost = {
	
	choices:Object,
	link_url:String,
	slides: ['intro','choice','form','business_credit','credit_repair','all'],
	slide_choice:0,
	
	init : function()
	{
		$('a.menu').bind('mouseover', Boost.button_over).bind('mouseout', Boost.button_out);
		$('a.lightbox,area.lightbox').bind('click', { type:'intro' }, Boost.popup);
		$('a.debt_reduction').bind('click', { type:'debt_reduction' }, Boost.popup);
		$('a.credit_application').bind('click', { type:'credit_application' }, Boost.popup);
		$('a.repaircredit').bind('click', { type:'repaircredit' }, Boost.popup);
		$('a.businesscredit').bind('click', { type:'businesscredit' }, Boost.popup);
		
		$('#submenu, a.has_submenu').bind('mouseover', Boost.submenu_over);
		$('#submenu, a.has_submenu').bind('mouseout', Boost.submenu_out); 
		
		swfobject.embedSWF("/swf/flashplayer.swf", "boostmyscore_video", "600", "404", "9.0.0","/swf/expressInstall.swf",null,{ wmode:"transparent" });
		swfobject.embedSWF("/swf/intro_v8.swf", "flashintro_video", "600", "338", "9.0.0","/swf/expressInstall.swf",null,{ bgcolor:'#000000', wmode:"transparent" });
		
		Boost.choices = new Object;
	},
	
	submenu_over : function()
	{
		clearTimeout(Boost.submenu_int);
		Boost.show_submenu();
	},
	
	submenu_out : function()
	{
		Boost.submenu_int = setTimeout(Boost.hide_submenu,500);
	},
	
	show_submenu : function()
	{
		$('#submenu').show();
	},
	
	hide_submenu : function()
	{
		$('#submenu').hide();
	},
	
		alert : function(msg)
	{
		var box = $$('div',
					msg,
					{ className:'box alert', id:'alert_box' });
					
		$('body').append(box);
		box.hide();
		
		var top = ($(window).height()*.5)-(box.height()*.5);
		//alert(box.height());
		box.css({
			width:700,
			top:(top<50)?50:top,
			left:($(window).width()*.5)-350
		});
		
		box.bind('click', function(){ $(this).remove(); }).show();
		
		return false;
	},
	
	popup : function(e)
	{
		// alert(e.data.type);
		
		if($('#overlay').length)
		{
			$('#popup_box,#overlay,#alert_box').remove();
		}
		
		Boost.choices = null;
		Boost.choices = new Object;
		
		var choice = $(this).attr('rel');
		if(!choice) choice = e.data.type;
		Boost.choices[choice] = true;
		
		var overlay = $$('div',
						'',
						{ className:'overlay', id:'overlay' });
		var box = $$('div',
					$$('div','',{ className:'inset', id:'content' }),
					$$('a',
						$$('img','',{src:'/images/buttons/close.gif'}),
						{ id:'close_button' }),
					$$('a',
						$$('img','',{src:'/images/buttons/continue.gif'}),
						{ id:'continue_button' }),
					$$('a',
						$$('img','',{src:'/images/buttons/back.jpg'}),
						{ id:'startover_button' }),
					{ className:'box', id:'popup_box' });
		
		overlay.css({
			height:$(document).height(),
			width:$(document).width(),
			opacity:0.7
		});
		var top = ($(window).height()*.5)-260+$(document).scrollTop();
		box.css({
			height:520,
			width:884,
			top:top,
			left:($(window).width()*.5)-442
		});
		
		$('body').append(overlay).append(box);
		$('#close_button').bind('click', function(){ $('#popup_box,#overlay').remove(); });
		
		var type = e.data.type;
		switch(type)
		{
			case 'debt_reduction':
				Boost.link_url = 'http://www.debtredeemer.com/';
				break;
				
			case 'credit_application':
				Boost.link_url = 'http://boostmyscore.myoptimizedcredit.com/';
				break;
		}
		
		Boost.load_slide(type);
		
		return false;
	},
	
	button_over : function()
	{
		var img = $(this).children('img');
		var newsrc = img.attr('src').replace('_off','_on');
		img.attr('src', newsrc);
	},
	
	button_out : function()
	{
		var img = $(this).children('img');
		var newsrc = img.attr('src').replace('_on','_off');
		img.attr('src', newsrc);
	},
	
	load_slide : function(type)
	{
		$.post(
			'/ajax/popup/',
			{ slide:(type=='repaircredit' || type=='businesscredit')?'intro':type },
			function(resp)
			{
				$('#content').html(resp);
				switch(type)
				{
					case 'intro':
						$('#continue_button').one('click', function(){ Boost.load_slide('choice') });
						$('#startover_button').hide();
						break;
						
					case 'repaircredit':
						Boost.choices.credit_repair = true;
						$('#continue_button').one('click', function(){ Boost.load_slide('form') });
						$('#startover_button').hide();
						break;
						
					case 'businesscredit':
						Boost.choices.business_credit = true;
						$('#continue_button').one('click', function(){ Boost.load_slide('form') });
						$('#startover_button').hide();
						break;
						
					case 'debt_reduction':
					case 'credit_application':
						$('#continue_button').one('click', function(){ Boost.load_slide('form2') });
						$('#startover_button').hide();
						break;
						
					case 'choice':
						$('#continue_button').one('click', function()
							{ 
								Boost.load_slide('form');
							});
						$('.choice').bind('click', Boost.select_choice).each(function(index) {
							var c = $(this).attr('id');
							if(Boost.choices[c])
							{
								var src = $(this).attr('src');
								var newsrc = src.replace('off','on');
								$(this).attr('src', newsrc);
							}
						});
						$('#startover_button').show().one('click',Boost.popup);
						
						break;
						
					case 'form':
						if((Boost.choices.business_credit && Boost.choices.credit_repair) || 
						(!Boost.choices.business_credit && !Boost.choices.credit_repair))
						{
							var slide = 'all';
						}
						else
						{
							var slide = (Boost.choices.business_credit) ? 'business_credit' : 'credit_repair';
						}
						$('#continue_button').bind('click', function(){ if(Boost.validate_form()) Boost.load_slide(slide) });
						$('.disclaimer').bind('click', Boost.show_alert );
						
						break;
						
					case 'form2':
						$('#continue_button').attr('href',Boost.link_url)
											.attr('target','_blank')
											.attr('rel',Boost.link_url)
											.bind('click', function()
											{ 
												var resp = Boost.validate_form();
												if(resp)
												{ 
													Boost.send_email(); 
													return true; 
												}
												else
												{
													return false;
												}
											});
						$('.disclaimer').bind('click', Boost.show_alert );
						break;
						
					case 'business_credit':
					case 'credit_repair':
					case 'all':
						$('#continue_button').remove();
						$('a.link').bind('click', Boost.send_email);
						break;
				}
				
			}
		);
	},
	
	send_email : function()
	{
		$.post(
			'/ajax/send_email/',
			{ first_name:Boost.formvars.first_name,
				last_name:Boost.formvars.last_name,
				phone_number:Boost.formvars.phone_number,
				email_address:Boost.formvars.email_address,
				credit_repair:Boost.choices.credit_repair,
				business_credit:Boost.choices.business_credit,
				debt_reduction:Boost.choices.debt_reduction,
				credit_application:Boost.choices.credit_application,
				link:$(this).attr('rel') },
			function(resp)
			{
				//alert(resp);
			}
		);

		
	},
	
	show_alert : function()
	{
		var type = $(this).attr('rel');
		$.post(
			'/ajax/alerts/'+type,
			{ },
			function(resp)
			{
				Boost.alert(resp);
			}
		);
		return false;
	},
	
	validate_form : function()
	{
		var a = ['first_name','last_name','email_address','phone_number'];
		Boost.formvars = new Object;
		var ok = true;
		var error_msg = 'Please review the highlighted fields for errors and resubmit.';
		var patt1=new RegExp(/[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}/i);
		var patt2=new RegExp(/(\()?([0-9]{3})(\)|-)?( )?([0-9]{3})(-)?([0-9]{4}|[0-9]{4})/i);
		
		$('input').removeClass('ERROR');
		for (var i=0; i<a.length; i++)
		{
			var field = $('#'+a[i]);
			if(a[i]=='email_address' && !patt1.test(field.val()))
			{
				field.addClass('ERROR');
				error_msg += '\n\nYou must enter a valid email address.';
				ok = false;
			}
			else if(a[i]=='phone_number' && !patt2.test(field.val()))
			{
				field.addClass('ERROR');
				error_msg += '\n\nYou must enter a valid phone number.';
				ok = false;
			}
			else if(!field.val().length)
			{
				field.addClass('ERROR');
				// alert(field.attr('id'));
				ok = false;
			}
			
			else
			{
				Boost.formvars[a[i]] = field.val();
			}
		};
		if(!$('#agreed:checked').length)
		{
			error_msg += '\n\nYou must read and agree to the user agreement and the disclosures.';
			ok = false;
		}
		if(!ok) alert(error_msg);
		
		return ok;
	},
	
	select_choice : function()
	{
		var id = $(this).attr('id');
		Boost.choices[id] = !Boost.choices[id];
		
		var src = $(this).attr('src');
		var newsrc = (src.indexOf('on')>-1) ? src.replace('on','off') : src.replace('off','on');
		$(this).attr('src', newsrc);
		
		//alert(Boost.choices[id]);
	},

	validate_contact_form : function(form)
	{
		if(!form) form = document.forms[0];
		var submit_it = true;
		$(form).find(".REQUIRED").each(function(req)
		{
			if(($(this).attr('type')!='checkbox' && this.value == '') || 
				($(this).attr('type')=='checkbox' && !this.checked))
			{
				$(this).parents("div.formfield").addClass('error');
				submit_it = false;
			}
			else
			{
				$(this).parents("div.formfield").removeClass('error');
			}			
		});
		if( !submit_it )
		{
			$('#error_message').fadeIn(250);
			$.scrollTo('#error_message', 800, {easing:'easeInOutCubic'});
		}
		return submit_it;
	}
	
}

$(document).ready(function() {
	Boost.init();
});
