/**
 * @author rossatkinson
 */
ACS = {
	
	thumbs_current : String,
	thumbs_slide : Number,
	thumbs_x : Number,
	is_IE : Boolean,
	
   init : function()
   {
		ACS.is_IE = (BrowserDetect.browser=="Explorer") ? true : false;
      	// homepage tab box actions
		if($("#tabbed_section")) ACS.tabs_init();
		
		// expand dropdowns (i.e. FAQ's)
		$("a.expand").click( function(expand)
		{
			$("#"+$(this).attr("rel")).toggle();
			//this.ancestors()[0].toggleClassName('expanded');
			return false;
		});
		
		// gallery actions
		if($("#gallery")) ACS.gallery_init();
		
		// dropdown menu options
		//alert($("#main_menu").width());
		$("#main_menu > li").each( 
			function()
			{
				var menu = $(this);
				var submenu = $(this).find("ul");
				
				var subwidth = 0;
				submenu.find('a.sub').each( function()
				{ 
					subwidth += $(this).outerWidth();
				});
				submenu.width(subwidth+10);
				
				// determine the offset
				var offset = (-subwidth/2)+(menu.width()/2);
				if(-offset>menu.position().left)
				{
					var left = -menu.position().left+10;
				}
				else if((838+offset)<subwidth)
				{
					var left = (838-menu.position().left)-subwidth-10;
				}
				else
				{
					var left = offset;
				}
				
				submenu.css("left",left+"px");
				if(!submenu.hasClass('active')) submenu.hide();
			}
		);
		
		$("#main_menu > li").hover( 
			function()
			{
				var ul = $(this).find("ul");
				if(!ul.hasClass('active'))
				{
					$("#main_menu").find("ul.active").hide();
					if(ACS.is_IE)
					{
						$(this).find("ul").show();
					} else {
						$(this).find("ul").stop().fadeIn(200);
					}
				}
				$(this).find("a.main").addClass("hover");
			},
			function()
			{
				var ul = $(this).find("ul");
				if(!ul.hasClass('active')) ul.hide();
				if(ACS.is_IE)
				{
					$("#main_menu").find("ul.active").show();
				} else {
					$("#main_menu").find("ul.active").stop().fadeIn(200);
				}
				$(this).find("a.main").removeClass("hover");
			}
		);
		
		$('a.product_link').bind('click', function(event)
		{
			var id = $(this).attr('rel');
			$.scrollTo($('#'+id), 1000, {easing:'easeInOutCubic'});
			return false;
		});
		
		$('a.top').bind('click', function(event) {
			$.scrollTo(0, 1000, {easing:'easeInOutCubic'});
			return false;
		});
		
		$("a[href='#']").click(function() {
			return false;
		});
		
		//ACS.resize_columns();
	},
	
	resize_columns : function()
	{
		// sidebar stretch actions
		var columns = ["#sidebar","#sidebar_shadow","#content"];
		var tallest = 0;
		for( i=0; i<columns.length;i++ )
		{
			//alert($(columns[i]).height());
			if( $(columns[i]).height() > tallest ) 
			{
				tallest = $(columns[i]).height();
				//alert(tallest);
			}
		}
		//alert(tallest);
		for( i=0; i<columns.length;i++ ) $(columns[i]).height(tallest);
	},
	
	tabs_init : function()
	{
		$('.fragment').hide();
		$('#fragment-1').show();
		
		$("img.tab").click(function ()
		{
			var fragment = $(this).parents('a').attr('href');
			$('.fragment').hide();
			$(fragment).show()
			
			var active_id = ($(this).attr("id"));
			$("img.tab").each(function()
			{
				if ($(this).attr("id") != active_id)
				{
					var inactiveSource = $(this).attr("src").replace("_selected", "_unselected");
					$(this).attr("src", inactiveSource);
				}
			});
			var activeSource = $(this).attr("src").replace("_unselected", "_selected");
			$(this).attr("src", activeSource);
			
			//resize the right-hand column if necessary
			//ACS.resize_columns();
			
			return false;
		});
	},
	
	gallery_init : function()
	{
		ACS.thumbs_x = 0;
		ACS.thumbs_slide = 107;
		ACS.thumbs_current = "";
		
		$('#before,#after').css({'opacity':'1.00'});
		
		$("#gallery").find("li.thumb").each(function(th)
		{
			$(this).click(function()
			{
				ACS.swap_images(this);
			});
		});
		
		$("img.left").click(function()
		{
			if( ACS.thumbs_x < 0 )
			{
				ACS.thumbs_x += ACS.thumbs_slide;
				$("#thumbs").stop().animate({"left": ACS.thumbs_x+"px"}, 250);
			}
		});
		
		$("img.right").click(function()
		{
			var difference = (400)-$("#thumbs").width();
			//alert(difference);
			if( (ACS.thumbs_x-ACS.thumbs_slide) > difference)
			{
				//alert("yes");
				ACS.thumbs_x -= ACS.thumbs_slide;
				$("#thumbs").animate({"left": ACS.thumbs_x+"px"}, 250);
			}
		});
	},
	
	swap_images : function(img)
	{
		var image_id = $(img).attr("id");
		
		if( image_id != ACS.thumbs_current )
		{
			ACS.thumbs_current = image_id;
			
			$('#before,#after,#caption').stop().fadeTo(50,0.01);
			
			$.post("/ajax/load_before_and_after_images/"+image_id,
			function(data)
			{
				var casestudy = JSON.parse(data).rows[0];
				$("#caption").html(casestudy.procedure);
				var before_src = 'http://v2.goelementbeta.com/uploads/site_39/list_21/'+casestudy.before_photo.replace('%size%','222')
				var after_src = 'http://v2.goelementbeta.com/uploads/site_39/list_21/'+casestudy.after_photo.replace('%size%','222')
				$("#before").attr('src',before_src);
				$("#after").attr('src',after_src);
			
				var imgPreloader = new Image();
				imgPreloader.onload = function()
				{
					$('#before,#after,#caption').stop().fadeTo(500,1.00);
				}
				imgPreloader.src = after_src;
			});
		}
	},
	
	validate_form : function(form)
	{
		if(!form) form = document.forms[0];
		var submit_it = true;
		$(form).find(".REQUIRED").each(function(req)
		{
			if(this.value == '')
			{
				$(this).parents("div.formfield").addClass('error');
				submit_it = false;
			}
			else
			{
				$(this).parents("div.formfield").removeClass('error');
			}			
		});
		if( !submit_it && $('#errormsg') ) $('#errormsg').innerHTML = '<strong>Please review the highlighted fields and resubmit.</strong>';
		return submit_it;
	}
};

$(function() { ACS.init(); });


