$(document).ready(function() 
	{ 
		var url='/hero-assets/config.json';
		
		var verticalCount = "";
		var horizontalCount = "";
		
		var horizontalID = "";
		var verticalID = "";
		
		var imageHeight = "";
		var imageWidth = "";
			
		var imageReelHeight = "";
		var imageReelWidth = "";
		
		var jdate;
	
		$.getJSON(url,function(json){
			var nav = "";
			var dot = "";
			var img = "";
			var imguri = "";
				
			$.each(json.data.primary,function(i,marquee){
				nav += "<li>";
				nav += 		"<a href='#' rel='" + i + "'>";
				nav += 			"<div class='marquee-nav-content'>";
				nav += 				"<p class='marquee-nav-topline'>" + marquee.navigation.topline + "</p>";
				nav += 				"<p class='marquee-nav-headline'>" + marquee.navigation.headline + "</p>";
				nav += 			"</div>";
				nav += 			"<span class='marquee-nav-selected'></span>";
				nav += 		"</a>";
				nav += "</li>";	
			});
		
			$(".marquee-nav ul").html(nav);
			
			img += "<li>";
			img += "<ul class='slidegroup'>"
			
			$.each(json.data.primary[0].secondary,function(i,marquee){
				imguri = marquee.slide.image;
				imgurl = marquee.slide.first.url;
				
				img += "<li><a href=" + imgurl + "><div class='singleslide' style='background-image: url(" + imguri + ")'></div></a></li>";
				
				dot += "<li>";
				dot += 		"<a id='bull" + i + "' href='#' rel='" + i + "'>";
				dot +=			"&bull;";
				dot +=		"</a>";
				dot += "</li>";
			});
			
			img += "</ul>"
			img += "</li>";
			
			$.each(json.data.primary,function(i,marquee){
				if (i > 0) {
					imguri = marquee.slide.image;
					imgurl = marquee.slide.first.url;
					
					img += "<li><a href=" + imgurl + "><div class='multislide' style='background-image: url(" + imguri + ")'></div></a></li>";
				}
			});
			
			$(".marquee-images ul").html(img);
			
			$("ul.marquee-bullets").html(dot);
			
			jdate = json;
			
			marqueeInit(json);
			
			textUpdate();
			
		});
		
		marqueeInit = function(json){
			$(".marquee-nav").show();
			$(".marquee-nav a:first").addClass("active");
			$(".marquee-bullets a:first").addClass("active");
		
			verticalCount = json.data.primary.length;
			horizontalCount = json.data.primary[0].secondary.length;
			
			imageHeight = $(".marquee-mask").height();
			imageWidth = $(".marquee-mask").width();
			
			imageReelHeight = imageHeight * verticalCount;
			imageReelWidth = imageWidth * horizontalCount;
			
			horizontalID = 0;
			verticalID = 0;
			
			$(".marquee-images").css({'height' : imageReelHeight});
			$(".marquee-images").css({'width' : imageReelWidth});
			
			$(".multislide").css({'width' : imageReelWidth});
			$(".slidegroup").css({'width' : imageReelWidth});
			
			$(".marquee-nav a").click(function() {
				$active = $(this);	
				scrollVertical();
				textUpdate();
				clearInterval(auto);
				
				return false;
			});
			
			$(".marquee-bullets a").click(function() {
				horizontalID = $(this).attr("rel"); 
				var image_horizontalPosition = horizontalID * imageWidth; 
			
				$(".marquee-bullets a").removeClass('active');
				$(this).addClass('active');
			
				//Slider Animation
				$(".marquee-images").animate({
					left: -image_horizontalPosition
				}, 500 );
				
				checkNavState();
				textUpdate();
				clearInterval(auto);
			
				return false;
			});
			
			checkNavState();
			autoPlay();
		}
		
	
		scrollVertical = function(){
			verticalID = $active.attr("rel"); 
			var image_verticalPosition = verticalID * imageHeight; 
			
			$(".marquee-nav a").removeClass('active');
			$active.addClass('active');
		
			$(".marquee-images").animate({
				top: -image_verticalPosition
			}, 500 );
			
			if ($active.attr("rel") == 0) {
				$(".marquee-arrows").fadeIn(500, function() { } );
				$(".marquee-bullets").fadeIn(500, function() { } );
			} else {
				$(".marquee-arrows").hide();
				$(".marquee-bullets").hide();
			}
		
		}; 
		
		scrollHorizontal = function(direction){
			if(direction == "next") {
				horizontalID++;
			} else if (direction == "prev") {
				horizontalID--;
			}
			
			$(".marquee-bullets a").removeClass('active');
			$(".marquee-bullets a[rel=" + horizontalID + "]").addClass('active');
			
			var image_horizontalPosition = horizontalID * imageWidth; 
			
			//Slider Animation
			$(".marquee-images").animate({
				left: -image_horizontalPosition
			}, 500 );
			
			checkNavState();

		}; 
		
		scrollReset = function() {
			horizontalID = 0;
			
			$(".marquee-bullets a").removeClass('active');
			$(".marquee-bullets a[rel=" + horizontalID + "]").addClass('active');
			
			var image_horizontalPosition = horizontalID * imageWidth; 
			
			$(".marquee-images").animate({
				left: -image_horizontalPosition
			}, 500 );
			
			checkNavState();
		}
		
		textUpdate = function() {
			$(".marquee-text").fadeOut('fast', function() {
			 
				if(verticalID > 0) {
					
					$(".marquee-text-topline").html(jdate.data.primary[verticalID].slide.topline);
					$(".marquee-text-headline").html(jdate.data.primary[verticalID].slide.headline);
					$(".marquee-link-first").html("<a href='" + jdate.data.primary[verticalID].slide.first.url +"'><span class='" + jdate.data.primary[verticalID].slide.first.icon + "'>" + jdate.data.primary[verticalID].slide.first.text + "</a>");
					$(".marquee-link-second").html("<a href='" + jdate.data.primary[verticalID].slide.second.url +"'><span class='" + jdate.data.primary[verticalID].slide.second.icon + "'></span>" + jdate.data.primary[verticalID].slide.second.text + "</a>");
					$(".marquee-link-third").html("<a href='" + jdate.data.primary[verticalID].slide.third.url +"'><span class='" + jdate.data.primary[verticalID].slide.third.icon + "'></span>" + jdate.data.primary[verticalID].slide.third.text + "</a>");
					
					$(".marquee-overlay").attr( 'href', jdate.data.primary[verticalID].slide.first.url );
				} else {
					
					$(".marquee-text-topline").html(jdate.data.primary[verticalID].secondary[horizontalID].slide.topline);
					$(".marquee-text-headline").html(jdate.data.primary[verticalID].secondary[horizontalID].slide.headline);
					$(".marquee-link-first").html("<a href='" + jdate.data.primary[verticalID].secondary[horizontalID].slide.first.url +"'><span class='" + jdate.data.primary[verticalID].secondary[horizontalID].slide.first.icon + "'></span>" + jdate.data.primary[verticalID].secondary[horizontalID].slide.first.text + "</a>");
					$(".marquee-link-second").html("<a href='" + jdate.data.primary[verticalID].secondary[horizontalID].slide.second.url +"'><span class='" + jdate.data.primary[verticalID].secondary[horizontalID].slide.second.icon + "'></span>" + jdate.data.primary[verticalID].secondary[horizontalID].slide.second.text + "</a>");
					$(".marquee-link-third").html("<a href='" + jdate.data.primary[verticalID].secondary[horizontalID].slide.third.url +"'><span class='" + jdate.data.primary[verticalID].secondary[horizontalID].slide.third.icon + "'></span>" + jdate.data.primary[verticalID].secondary[horizontalID].slide.third.text + "</a>");
					
					
					$(".marquee-overlay").attr( 'href', jdate.data.primary[verticalID].secondary[horizontalID].slide.first.url );
					
				}
				
				$('.marquee-text').fadeIn(500, function() {
					// Animation complete
				});	
							
			});
		}
		
		bulletUpdate = function () {
			
		}
		
		checkNavState = function () {
			if (horizontalID == horizontalCount - 1) {
				$(".marquee-arrows a.marquee-next").fadeOut('fast', function() { });	
			} else {
				$(".marquee-arrows a.marquee-next").fadeIn('fast', function() { });
			}
			
			if (horizontalID == 0) {
				$(".marquee-arrows a.marquee-prev").fadeOut('fast', function() { });	
			} else {
				$(".marquee-arrows a.marquee-prev").fadeIn('fast', function() { });
			}
		}
		
		autoPlay = function(){
			auto = setInterval(function(){
				if (horizontalID == horizontalCount - 1) {
					scrollReset();
				} else {
					scrollHorizontal("next");
				}
				textUpdate();
			}, 5000);
		};
		
		
		$(".marquee-arrows a.marquee-prev").click(function() {
			scrollHorizontal("prev");
			textUpdate();
			clearInterval(auto);
			return false;
		});
		
		$(".marquee-arrows a.marquee-next").click(function() {
			scrollHorizontal("next");
			textUpdate();
			clearInterval(auto);
			return false;
		});
		 
	}
);
