(function ($, undefined) {
  
  var so_async = {
    items: [],
    defaults: {
      version: "9.0.0", // Flash 9
      installer: "/sinus-health/swf/expressInstall.swf",
      flashvars: {},
      params: { wmode: 'transparent' },
      attributes: {},
      wrap: true // Adds an inner item to the ID specified
    },
    push: function (values) {
      this.items.push(values);
      this.process();
    },
    process: function () {
      var so = this;
      $.each(so.items, function (i, item) {
         var o = $.extend({}, so.defaults, item),
             wrap;
         
         if (o.wrap) {
           wrap = $("#" + o.id).wrapInner($('<div />', {id: o.id + "-inner"}));
           o.id += "-inner";
         }
         
         swfobject.embedSWF(o.swf, o.id, o.width, o.height, o.version, o.installer, o.flashvars, o.params, o.attributes);
      });
    }
  };
  
  if (window.so_async !== undefined) {
    so_async.items = window.so_async;
    window.so_async = so_async;
    
    $(function () {
      // Run when DOM is ready
      so_async.process();
    });
    
  } else {
    window.so_async = so_async;
  }
  
  $(function () {
    $("#footer .navigation a").append("<em>&rarr;</em>");
    
    // Enable Pseudo Submit Buttons
    $("form a.submit").live("click", function (e) {
      e.preventDefault();
      $(this).closest('form').submit();
    });
    
    var $footer_message;
    
    $("#footer form").submit(function (e) {
      e.preventDefault();
      
      var url = $(this).attr('action'),
          email = $.trim($("#email_address").val()),
          form = $(this);
      
      if (!email) {
        set_footer_message('You must enter an email address.', false);
        return;
      }
      
      form.addClass("loading");
      
      $.post(url, { email_address: email }, function (data) {
        form.removeClass("loading");
        if (data && data.success) {
          set_footer_message(signup_success);
          $("#email_address").val('').blur();
        } else {
          set_footer_message(data.error_message, false);
        }
      }, "json");
    });
    
    function set_footer_message(message, success) {
      if (success !== false) {
        success = true;
      };
      if(!$footer_message) {
        $footer_message = $("<p />", {id: "signup_message" }).appendTo("#footer form");
      }
      $footer_message[0].className = (success ? "signup-success" : "signup-error");
      $footer_message.html(message);
    }
    
    // Greate Pseduo Submit Buttons
    $("input:submit").each(function () {
      var submit = $(this);
      $("<a />", {
        className: "button submit",
        html: '<span>' + submit.val() + '</span>',
        href: '#join'
      }).insertAfter(submit);
    });
    
    // Cause Label to Fade
    $("label").inFieldLabels();
    
    $("#qa").delegate('dt', 'click', function (e) {
      e.preventDefault();
      var dt   = $(this).closest('dt'),
          dd   = dt.next(),
          a    = dt.find('a.answer'),
          open = dd.is(':visible');
          
        a.toggleClass('open', !open);
        dd[open ? 'slideUp' : 'slideDown']();
    });
    
    $("<a />", {href: "#", className: "answer", html: "Answer<em></em>"}).appendTo("#qa dt");

    // Open FAQ #5 when coming from the flu/cold link
	if (location.search.indexOf('open=5') > -1) {
      var dt   = $("#qa5"),
          dd   = dt.next(),
          a    = dt.find('a.answer'),
          open = dd.is(':visible');
        a.toggleClass('open', !open);
        dd[open ? 'slideUp' : 'slideDown']();
    };
    
    // Normalize Lists
    $("ul.normalized").each(function (i, el) {
      var ul     = $(el), 
          ul_alt = $("<ul />"),
          org_l  = ul.text().length,
          length = org_l / 2,
          count  = 0,
          data   = ul.attr('data-split');
      
      if (data) {
        count = parseInt(data, 10);
      } else {
        ul.children().each( function(j, li) {
          var text = $(li).text().length;
          length = length - text;
          if (length > 0) {
            count = count + 1;
          } else {
            if(length + (text * 0.85) < 0) {
              count = count + 1; 
            }
            return false; // Exit loop
          }
        });
      }
      
      ul
        .wrap("<div class='normalized'></div>")
        .removeClass('normalized')
        .after(ul_alt)
        .children()
          .slice(count)
          .appendTo(ul_alt);
          
    });
    
    // Create the More Info / Less Info Button
	var PageName = window.location.pathname.replace('/sinus-health/','' );
	  PageName = PageName.replace(  'products/' , ''  ) ;
	  PageName = PageName.replace(  '.html' , ''  ) ;

			var $more = $("#product div.more-info");
			var moreBeenClicked = false;
			$("<div />", {
			  className: 'more-info-helper',
			  html: $("<a />", {
				href: '#',
		//		class: 'open',
		//		onclick:'pageTracker._trackEvent("sinus", "moreinfo", "'+PageName+'");',
				html: '<span>Less Info</span><em></em>',
				click: function (e) {
				  e.preventDefault();
				  
				  var turn_off = $more.is(':visible');
				  
				  $more[turn_off ? 'slideUp' : 'slideDown'](); // Open/Close Extra
				  $(this)
					.removeClass('hover') // Make sure hover style goes away
					.toggleClass('open', !turn_off) // Class to control arrow direction
					.find('span').text( turn_off ? 'More Info' : 'Less Info'); // Text
				  
				  // added for charts
				  var $tooltips = $more.find("table.compare-chart tr.row .tooltip");    
				  if($tooltips.length && !moreBeenClicked){
					moreBeenClicked = true;
					$tooltips.each(function(i, val){
						var $tooltip = $(val);
						var $container = $tooltip.find('.tt-container');
						
						$tooltip.show();
						var actualWidth = $container.find(".left").width() + $container.find('.middle').width() + $container.find(".right").width();
						$tooltip.hide();
						
						$container.css({left:(173 - actualWidth) * 0.5 + 67});
					});
				  }


				} ,
			  }).hover(function () {
				$(this).addClass('hover');
			  }, function () {
				$(this).removeClass('hover');
			  })
			}).insertAfter($more);
    
    
    // Enable Tout Scrolling
    var tout = $("#tout");
    
    if (tout.find('li').length > 1) {
      tout
        .addClass('anythingSlider')
        .wrapInner('<div class="wrapper" />')
        .anythingSlider({
          delay: 5000,
          buildNavigation: false,
          hashTags: false
        }).find('.thumbNav, .start-stop').remove();      
    }
    
    // Chart functions
    var $tooltips = $("table.compare-chart tr.row .tooltip");    
    if($tooltips.length){
    	$tooltips.each(function(i, val){
    		var $tooltip = $(val);
    		$tooltip.addClass('clearfix');
    		
    		$('<a />', {
    			className: 'more-info-btn', 
    			href: '#'
    		}).insertBefore($tooltip);
        	
    		$tooltip.find('.txt')
    		.wrap($('<div />', {className: 'tt-container'}))
    		.wrap($('<div />', {className: 'middle'}));

    		var $container = $tooltip.find('.tt-container');
    		var $m = $container.find('.middle');
    		
    		$('<div />', {className: 'left'}).insertBefore($m);
    		$('<div />', {className: 'right'}).insertAfter($m);
    		
    		$tooltip.show();
    		var actualWidth = $container.find(".left").width() + $m.width() + $container.find(".right").width();
    		$tooltip.hide();
    		
    		$container.css({left:(241 - actualWidth) * 0.5 + 98});
    	});
    	
    	$tooltips.parent().find('.more-info-btn')
    	.click(function(e){
    		e.preventDefault();
    	}).hover(
    		function(event){
    			var $btn = $(event.target);
    			var $tooltip = $btn.parent().find('.tooltip');
  			
    			$tooltip.css({zIndex:1});
    			$btn.css({zIndex:2});
  				
    			$tooltip.show();
  				
    		}, function(event){
    			var $btn = $(event.target);
    			var $tooltip = $btn.parent().find('.tooltip');
  				
    			$tooltip.css({zIndex:0});
    			$btn.css({zIndex:0});
  			
    			$tooltip.hide();
    		}
    	);
    }
  });
}(jQuery));
