$(function(){
	home.skin();
	home.setListeners();
	home.preloadImages();
});

home = {
	contactValidator:null,
	polaroid:100,

	setListeners:function(){
		$('#navLeft a').click(bef.getFromHREF).click(this.navLeftIni);
		switch(bef.page){
			case 'holiday':
				$("#btn_calc").click(function(){
					pageTracker._trackPageview('/holiday/interaction/CLKcalc');
				});
				$("#dollar_form").submit(function(){
					pageTracker._trackPageview('/holiday/interaction/CLKdollar');
					$('#name').attr('disabled','');
					return true;
				});
				break;
			case 'business':
				$("a").click(function(){
					var el_name = $(this).attr("rel");
					// *************************************//
					// google analytics tracking - click event
					// DEBUG alert("/gateway/cbglanding/interaction/CLK"+el_name);
					pageTracker._trackPageview("/gateway/cbglanding/interaction/CLK"+el_name);
					// *************************************//
				});
				break;
			case 'index':
				$('#main .btn').click(bef.getFromHREF);
				$("#polaroid_holder #r_arr, #polaroid_holder #l_arr").click(function(){home.changePolaroid(this.id)});
				$(".tidbit_title .oj_arr").hoverIntent(function(){home.showTidbit(this)}, function(){home.hideTidbit(this)});
				$(".tidbit_title a").hoverIntent(function(){home.showTidbit(this)}, function(){home.hideTidbit(this)});
				$("#photo_credits_link").hover(function(){$("#photo_credit_box").fadeIn()}, function(){$("#photo_credit_box").fadeOut()})
				$("a").click(function(){
					var layout = $("#gateway").attr("rel");
					var el_name = $(this).attr("rel");
					if($(this).hasClass("menu_item")) {
						// *************************************//
						// google analytics tracking - click event
						//alert("/gateway/"+layout+"/interaction/QL"+el_name);
						pageTracker._trackPageview("/gateway/interaction/QL"+el_name);
						// *************************************//
					}
					else {
						// *************************************//
						// google analytics tracking - click event
						//alert("/gateway/"+layout+"/interaction/CLK"+el_name);
						pageTracker._trackPageview("/gateway/interaction/CLK"+el_name);
						// *************************************//
					}
				});
				break;
			case 'contact':
				$.validator.addMethod("phoneUS", function(phone_number, element) {
					phone_number = phone_number.replace(/\s+/g, ""); 
					return this.optional(element) || phone_number.length > 9 &&
					phone_number.match(/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/);
				}, "Enter a valid phone number (123-456-7890)");

				var options = {
					target:        '.message',   // target element(s) to be updated with server response 
	        		beforeSubmit:  this.contactFormValidate,  // pre-submit callback 
					clearForm: true,        // clear all form fields after successful submit 
        			resetForm: true,
					success:  this.contactFormResponse  // post-submit callback 
				}
				$('#main .btn').click(function() { 
        			$('#contactForm').ajaxSubmit(options); 
        			return false; 
    			}); 
				break;	
			case 'event':
				$('#main .close').click(function(){window.history.go(-1)}).attr('href','/carbon/calc');
				$('#main .btn').mousedown(bef.buttonMouseDown).mouseup(bef.buttonMouseUp).click();
				var options = {
					cache: false,
					clearForm: false, 
					resetForm: false,
					success:  this.eventFormResponse  // post-submit callback 
				}
				$('#main .btn.calc').click(function() { 
        			$('#eventForm').ajaxSubmit(options); 
        			return false; 
    			}); 
				$('#main .btn.reset').click(this.resetEventForm);
				
				var eventToCartOptions = {
					beforeSubmit:  this.eventToCartValidate,  // post-submit callback 
					success:  this.eventToCartFormResponse  // post-submit callback 
				}
				$('#main .btn.offset').click(function() { 
        			$('#eventToCartForm').ajaxSubmit(eventToCartOptions); 
        			return false; 
    			}); 
				break;	
		}
	},

	skin:function(){
		switch(bef.page){
			case 'index':
			case 'business':
			case 'holiday':
				break
			case 'calc':
			case 'education':
				this.loadFlash();
				break;
			case 'event':
				$('#main select:first').addClass('type');
				$('#main select:eq(1)').addClass('footage');
				$('#main a.calc').fadeOut(0).fadeIn(0);
				$('#main a.offset, #main #amount, #main #type_label').fadeOut(0)
				bef.initializeScroll();
				bef.scrollDown();
				break;
			case 'contact':
				$('.message').fadeOut(0);
				$('.newsletter').click(function(){
					$('#contactForm #first').focus();
					$("#contactForm select option[@value='newsletter']").attr('selected',true);
				}).attr('href','javascript:void(0)');
			default:
				bef.initializeScroll();
				bef.scrollDown();
				break;
		}
	},
	
	toggleRecipient:function(){
		if($('#other_recipient').is(':checked')) {
			$('#name').attr("disabled", "");
			$('#name').focus();
		}
		else {
			$('#name').val("Myself");
			$('#name').attr("disabled", "disabled");
		}
	},

	setSignIn:function(){
		//setCookie

	},
	contactFormValidate:function(){
		//		e.stopPropagation();
		var f = $('#contactForm');
		this.contactValidator = f.validate({
			errorPlacement: function(label, element){	label.insertBefore( $(element).prev());	},
 	 		rules: {
				first:  { required:true },
				last:  { required:true },
    		phone: { phoneUS: true	},
				email: {required:true, email: true }
			},
			submitHandler: function(frm) {
	   		frm.submit();
			}
		});
		$('#contactForm label.error').css('display','block');
		if($(f).valid()){
			$('.message').fadeIn(1000)
		 	return true; //		f.ajaxSubmit();
		}else $('.errorMessage').removeClass('none');
		return false;
	},
	changePolaroid:function(id) {
		//increment of decrement depending on which arrow clicked
		//also grab layout and submit correct GA link with which arrow was clicked
		var layout = $("#gateway").attr("rel");
		// *************************************//
		// google analytics tracking - click event
		//alert("/gateway/"+layout+"/interaction/PolaroidScroll");
		pageTracker._trackPageview("/gateway/"+layout+"/interaction/PolaroidScroll");
		// *************************************//
		
		if(id == 'r_arr') this.polaroid++;
		if(id == 'l_arr') this.polaroid--;
		
		//check to make sure it never goes negative and then set temp var (5 is based on # of polaroids)
		if(this.polaroid < 0) this.polaroid = 100;
		var tmpPol = (this.polaroid%5) + 1;
		//set image
		$('#polaroid').css('backgroundImage','url("/lib/images/gateway/polaroids/' + tmpPol +'.png")');
		$('#polaroid').supersleight({shim: '/lib/images/pixel.gif'});
	},
	showTidbit:function(el) {
		$(el).closest(".oj_arr").css('backgroundImage','url("/lib/images/gateway/oj_arr_d.png")');
		$(el).prev().css('backgroundImage','url("/lib/images/gateway/oj_arr_d.png")');
		$('#link_boxes').supersleight({shim: '/lib/images/pixel.gif'});
		$(el).parent().next().fadeIn();
		
		// *************************************//
		// google analytics tracking - click event
		var layout = $("#gateway").attr("rel");
		//alert("/gateway/"+layout+"/interaction/RO"+$(el).attr("rel"));
		pageTracker._trackPageview("/gateway/interaction/RO"+$(el).attr("rel"));
		// *************************************//
	},
	hideTidbit:function(el) {
		$(el).closest(".oj_arr").css('backgroundImage','url("/lib/images/gateway/oj_arr_r.png")');
		$(el).prev().css('backgroundImage','url("/lib/images/gateway/oj_arr_r.png")');
		$('#link_boxes').supersleight({shim: '/lib/images/pixel.gif'});
		$(el).parent().next().slideUp();
	},
	contactFormResponse:function(responseText, statusText)  { 
		// *************************************//
		// google analytics tracking - click event
		pageTracker._trackPageview("/contact/event/submit");
		// *************************************//
		$('.message').fadeOut(5000,function(){ $('.message').text('sending...')});
	}, 

	eventFormResponse:function(responseText, statusText)  { 
		// *************************************//
		// google analytics tracking - click event
		pageTracker._trackPageview("/carboncalc/event/eventcalcbutton");
		// *************************************//
		$('#main #amount').val(Math.round(parseInt(responseText)));
		$('#main a.calc').fadeOut(250, function(){	$('#main a.offset, #main #amount, #main #type_label').fadeIn(250) });
	},

	eventToCartFormValidate:function(){
		return true;
	},

	eventToCartFormResponse:function(responseText, statusText)  { 
		// *************************************//
		// google analytics tracking - click event
		pageTracker._trackPageview("/carboncalc/event/eventoffsetnow");
		// *************************************//
		window.location = "/shop/cart";
	},

	resetEventForm:function(e){
		e.stopPropagation();
		$('#main a.offset, #main #amount, #main #type_label').fadeOut(250, function(){	$('#main a.calc').fadeIn(250) });
		//$('#eventForm').get(0).reset();
		$("#eventForm select[name='hours'] option:eq(0)").attr("selected", true);
		$("#eventForm select[name='days'] option:eq(0)").attr("selected", true);
		$("#eventForm select[name='type'] option:eq(0)").attr("selected", true);
		$("#eventForm select[name='footage'] option:eq(0)").attr("selected", true);
		$("#freeform_footage").fieldValue("");
	},
	preloadImages:function(){
		var imgs = [];
		imgs.push('/lib/images/gateway/polaroids/2.png');
		imgs.push('/lib/images/gateway/polaroids/3.png');
		imgs.push('/lib/images/gateway/polaroids/4.png');
		imgs.push('/lib/images/gateway/polaroids/5.png');
		imgs.push('/lib/images/gateway/tooltip/top.png');
		imgs.push('/lib/images/gateway/tooltip/middle.png');
		imgs.push('/lib/images/gateway/tooltip/bottom.png');
		imgs.push('/lib/images/gateway/visit_links_nav/visit_links_on.png');
		imgs.push('/lib/images/gateway/visit_links_nav/btn_aboutbef_off.png');
		imgs.push('/lib/images/gateway/visit_links_nav/btn_befbusiness_off.png');
		imgs.push('/lib/images/gateway/visit_links_nav/btn_befwater_off.png');
		imgs.push('/lib/images/gateway/visit_links_nav/btn_s4rs_off.png');
		imgs.push('/lib/images/gateway/visit_links_nav/btn_shrinkyourfoot_off.png');
		imgs.push('/lib/images/gateway/visit_links_nav/btn_watersheds_off.png');
		imgs.push('/lib/images/gateway/visit_links_nav/btn_aboutbef_on.png');
		imgs.push('/lib/images/gateway/visit_links_nav/btn_befbusiness_on.png');
		imgs.push('/lib/images/gateway/visit_links_nav/btn_befwater_on.png');
		imgs.push('/lib/images/gateway/visit_links_nav/btn_s4rs_on.png');
		imgs.push('/lib/images/gateway/visit_links_nav/btn_shrinkyourfoot_on.png');
		imgs.push('/lib/images/gateway/visit_links_nav/btn_watersheds_on.png');
		imgs.push('/lib/images/gateway/oj_arr_d.png');
		for(var i = 0; i<imgs.length; i++){
			$("<img>").attr("src", imgs[i]);
		}
	},
	loadFlash:function(){
		var src;
		var id = 'flashMain';
		var w = '1108';
		var	h = '819';
		var	v = '9.0.0';
		var flashvars = {};
		var attributes = {};
		var params = {
			align : 'middle',
			quality : "high",
			wmode : "opaque",
			loop : "false",
			allowScriptAccess : "always",
			allowFullScreen : "true"
		};

		switch(bef.page){	
			case 'calc':
				var loc = window.location.href;
				var page = loc.slice(loc.lastIndexOf('/')+1);
				var pageSegs = page.split('#');
				var page = pageSegs[0];
				if (page == "personal") {
					var utils = new Utils();
					var zen_customer_id = utils.getCookie('zen_customer_id');
					var zenid = utils.getCookie('zenid');

					//alert('zen_customer_id: ' + zen_customer_id);
					if(type) {		  
							flashvars = {
								panel : pageSegs[1],
								zen_customer_id : zen_customer_id,
								zenid : zenid
							};
					}
					else {	  
							flashvars = {
								zen_customer_id : zen_customer_id,
								zenid : zenid
							};
					}
					src = '/lib/swf/bef.swf';
					id = 'flashMain';
					w = '926';
					h = '670';
					params.wmode = "transparent";
					//$('#main.calc').css("left","-16px");
					$('#main.calc').css("width","926px");
					$('#main .content').width(926);
				}
				else {
					src = '/lib/swf/calc.swf';
					params.wmode = "transparent";
					flashvars = {
						swfdir : '/lib/swf/',
						serverName : Math.floor(Math.random()*1001)
					};
				}
				break;
			case 'index':
				src = '/lib/swf/index.swf';
				params.wmode = "transparent";
				flashvars = {
					swfdir : '/lib/swf/',
					serverName : Math.floor(Math.random()*1001)
				};
				break;
			case 'education':
				src = '/lib/swf/learn.swf';
				params.wmode = "transparent";
				flashvars = {
					swfdir : '/lib/swf/',
					serverName : Math.floor(Math.random()*1001)
				};
				break;
		}

		//		$('#'+id).parent().width(w+'px').height('auto');
		swfobject.embedSWF(src, id, w, h, v, "/lib/swf/expressInstall.swf", flashvars, params, attributes);
	}
}
