$(function(){
	carbon.skin();
	carbon.setListeners();
});


carbon = {
	contactValidator:null,

	setListeners:function(){
		$('#navLeft a').click(bef.getFromHREF).click(this.navLeftIni);
		switch(bef.page){
			case 'index':
				$('#main .btn').click(bef.getFromHREF);
				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 '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;
		}
	},

	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;
	},

	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("");
	},

	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);
	}
}
