$(function(){
	
	Mirror_AA.showTooltip();
	
	Mirror_AA.toggleInactiveTooltip();
	
	Mirror_AA.toggleTotalTooltip();
	
	Mirror_AA.accordion();
	
	Mirror_AA.countTotalUsers();
	
	Mirror_AA.limitText();
	
	Mirror_AA.alignImgColumns();
	
	Mirror_AA.decreaseFontSize();

	Mirror_AA.showHideCountryMenu();
	
	Mirror_AA.showHideSubMenu();	
	
	setTimeout("Mirror_AA.alignBoxes();", 3000);
	
	
});


var Mirror_AA = {

	
	showHideCountryMenu : function() {
	
		$('.country-current').mouseenter(function() {
			$(this).siblings('li').fadeIn();
			$(this).parents('.country-menu').addClass('highlighted');
		});
		
		$('.country-menu').mouseleave(function() {
			$(this).find('li').not('.country-current').fadeOut();
			$(this).removeClass('highlighted');
		});		
		
	},
	
	
	showHideSubMenu : function() {
	
		$('ul#nav li').mouseenter(function() {
			$(this).children('ul').show();
			$(this).addClass('hovered');
		});
		
		$('ul#nav li').mouseleave(function() {
			$(this).children('ul').hide();
			$(this).removeClass('hovered');
		});	
	
	},
	
	showTooltip : function() {
	
		var $callout = $(".callout");
		
		$("#m_audiencesmap area").hoverIntent(
		
			function() {

				var this_title = $(this).attr("alt");
				$.each($callout, function() {
				
					if ($(this).children().attr("class") == this_title) {				
						$(".callout").hide();
						$(this).fadeIn("slow");
						var this_callout = $(this);			
					}
				
				});
			
			},
			
			function() {
				/*
				this_title = $(this).attr("title");
				$.each($callout, function() {
				
					if ($(this).attr("title") == this_title) {				
						$(this).fadeOut("slow");				
					}
				
				});
				*/
				//$(this_callout).fadeOut("slow");
			
		});
		
		
		
		$(".callout").hoverIntent(
		
			function() {

			
			},
			
			function() {
				
						$(this).fadeOut("slow");				
				
				});	
		
		
		
	},
	
	limitText : function() {
			
		var breakPoint, getBreakPoint, limitedContent, hiddenContent, textslen, breakPoint, htmlReplaced, text, content;
		var points = "<span class='points'>...</span>";
		$texts = $(".text-limited");
		textslen = $texts.length;
		breakPoint = 100;
		
		getBreakPoint = function(chars) {
		
			var chars, charslen;
			
			if (chars.charAt(breakPoint) == " ") {
				breakPoint = breakPoint;	
			}
			
			else {
				
				charslen = chars.length;
				for (var i=breakPoint; i>=0; i--) {			
					if (chars.charAt(i) == " ") {			
						breakPoint = i;
						return;
					}			
				}
			}
		
		};
		
		for (var i=0; i<textslen; i++) {
			text = $texts[i];
			content = $(text).text();
			
			getBreakPoint(content);
			
			limitedContent = content.slice(0, parseInt(breakPoint));
			hiddenContent = content.slice(parseInt(breakPoint));
			
			htmlReplaced = "<span>" + limitedContent + points + "</span>" + "<span class='none to-hide'>" + hiddenContent + "</span>" + "<span class='more-less'>more</span>";
			$(text).html(htmlReplaced);	
					
		}
		
		$(".more-less").click(function() {
		
			if ($(this).siblings(".to-hide").is(":hidden")) {		
				$(this).parents("p").slideDown("slow");
				$(this).siblings("span").find(".points").addClass("none");
				$(this).siblings(".to-hide").removeClass("none");
				$(this).text("less");
										
			}
			
			else {
				$(this).siblings(".to-hide").addClass("none");
				$(this).siblings(".to-hide").slideUp("slow");
				$(this).siblings("span").find(".points").removeClass("none");
				$(this).text("more");
							
			}
			
			Mirror_AA.alignBoxes();
			
		});
		

	},
	
	decreaseFontSize : function() {
	
		var $headers = $(".box-header h3");
		var headersLen = $headers.length;
		var headersChars = [];
		var headersCharsNum = [];
		var boxHeader;
		
		for (var i=0; i<headersLen; i++ ) {
		
			boxHeader = $headers[i];
			headersChars = $(boxHeader).text();
			headersCharNum = headersChars.length;
			//console.log(headersCharNum);
		
			if ((headersCharNum >= 43)&&(headersCharNum <= 48)) {		
				$(boxHeader).addClass("font-size-decreased-13");	
			}
			
			else if (headersCharNum > 48) {		
				$(boxHeader).addClass("font-size-decreased-12");		
			} 
		
		}

		var $headings = $("h2#top");
		var headingsLen = $headings.length;
		var headingsChars = [];
		var headingsCharsNum = [];
		var boxHeading;
		
		for (var j=0; j<headingsLen; j++ ) {
		
			boxHeading = $headings[j];
			headingsChars = $(boxHeading).text();
			headingsCharNum = headingsChars.length;
			//console.log(headingsCharNum);
		
			if ((headingsCharNum >= 47)&&(headingsCharNum <= 50)) {		
				$(boxHeading).addClass("font-size-24");
			}
			
			else if (headingsCharNum > 50) {		
				$(boxHeading).addClass("font-size-20");		
			} 
		
		}		
		
		
	
	},
	
	alignImgColumns : function() {
	
		
		var $headers = $(".cluster-top-section .img-col-header");	
		//console.log($headers);
		var headerslen = $headers.length;
		var headerHeights = [];
		var headerHeight, header;
		
		for (var i=0; i < headerslen; i++ ) {
		
			header = $headers[i];
			headerHeight = $(header).height();
			headerHeights.push(headerHeight);
		}

		headerHeights.sort();
		var largestHeader = headerHeights.pop();	
		//console.log(largest);
		
		$.each($headers, function(){
			$(this).css("height", largestHeader);
			$(this).find(".img-col-inner").css("position", "absolute");
		});			
		
		var $boxes = $(".cluster-top-section .img-col");	
		var boxeslen = $boxes.length;
		var boxHeights = [];
		var boxHeight;
		var boxHeightsLen = [];
		
		
		for (var i=0; i < boxeslen; i++ ) {
		
			box = $boxes[i];
			boxHeight = $(box).height();
			boxHeights.push(boxHeight);
		
		}

		boxHeights.sort();
		
		var largest = boxHeights.pop();	
		//console.log(largest);
		
		$.each($boxes, function(){
			$(this).css("height", largest);
			$(this).siblings(".left").css("height", largest);
			$(this).find(".img-col-inner").css("position", "absolute");
		});	
	
	},
	
	alignBoxes : function() {
		
		var $boxes = $("[class*='align-box']");
		var boxeslen = $boxes.length;
		var removeHeights, box;
		
		removeHeights = removeHeights || function () {
		
			if ($boxes !=null) {
				for (var i=0; i<=boxeslen; i++) {
					box = $boxes[i];
					$(box).find(".box-body").css("height", "auto");
				}
			}	
			
		};
		
		removeHeights();		
			
		var boxClassName, boxClassName, secondBox, secondBoxClassName, boxHeight, secondBoxHeight, secondBoxesLen, largestHeight;
		
		if ($boxes !=null) {
			for (var i=0; i<boxeslen; i++) {
				box = $boxes[i];
				boxClassName = $(box).attr('class');

				for (var j=i+1; j<=boxeslen; j++) {
				
					secondBox = $boxes[j];
					secondBoxClassName = $(secondBox).attr('class');

					if (boxClassName == secondBoxClassName) {
						boxHeight = $(box).find(".box-body").height();
						secondBoxHeight = $(secondBox).find(".box-body").height();
						
						if (boxHeight > secondBoxHeight) {					
							largestHeight = boxHeight;					
						}
						else {
							largestHeight = secondBoxHeight;					
						}
						$(box).find(".box-body").css("height", largestHeight);
						$(secondBox).find(".box-body").css("height", largestHeight);
					}							
					
				}		
				
			}
		}
	},		
	
	
	toggleInactiveTooltip : function() {
	
		var $tooltip = '<div class="tooltip">';
		$tooltip += '<p>Coming Soon</p>';
		$tooltip += '</div>';
		
		$(".inactive").hoverIntent(
	
			function() {
				if (!$(this).parent("li").find(".tooltip").length) {
					$(".tooltip").fadeOut("slow");
					$(this).parent("li").append($tooltip);
				}
				$(this).siblings(".tooltip").fadeIn("slow");	
			},

			function() {			
				$(this).siblings(".tooltip").fadeOut("slow");
			}					
		);
		
		$('.inactive').focus(function() {

			if (!$(this).parent("li").find(".tooltip").length) {
				$(".tooltip").fadeOut("slow");
				$(this).parent("li").append($tooltip);
			}
			$(this).siblings(".tooltip").fadeIn("slow");			
		
		});	
		
		$('.inactive').blur(function() {

			$(this).siblings(".tooltip").fadeOut("slow");
		
		});						 
	
	},
	
	toggleTotalTooltip : function() {
	
		var $tooltip = "";
		
		$(".help-enabled .help-icon").hoverIntent(
			
			function() {
							
				$tooltipHight = $(this).parents(".help-enabled").find(".tooltip-message").height();
				$heightValue = -(($tooltipHight/2));
				$(this).find(".tooltip-message").css("top", $heightValue);
				$(this).find(".tooltip-message").fadeIn("slow");
				
			},

			function() {			
				$(this).find(".tooltip-message").fadeOut("slow");
			}					
		);	
	
	},
	
	
	accordion : function() {
		
		$(".sub-menu").hide();
		
		$.each($(".menu li"), function() {
		
			if ($(this).hasClass("opened")) {		
				$(this).find(".sub-menu").show();				
			}
		
		});
		
		
		$('.menu .item').hoverIntent(
		
			function() {	
				if (!($(this).hasClass("opened"))) {
				  	$(this).find(".sub-menu").stop(true, true).slideDown();
				  	$(this).find(".inner a").addClass("hovered");
				}		
			},

		
			function() {			  
				  if (!($(this).hasClass("opened"))) {
				  	$(this).find(".sub-menu").stop(true, true).slideUp();
				  	$(this).find(".inner a").removeClass("hovered");		
				  }
			}
		);
		
		
		$('.menu .inner a').focus(function() {
			
				if (!($(this).parents("li").hasClass("opened"))) {
				  	$(this).parents("li").find(".sub-menu").stop(true, true).slideDown();
				}		
		});
					

	},
	
	countTotal : function($el, format) {
	    var $el, current, target, interval;
	    format = format || function (n) {
	        var out, buffer, count, i, len;
	        n      = n + "";
	        buffer = "";
	        out    = "";
	        len    = n.length;
	        for (i = len - 1; i > -1; i = i - 1) {           
	            buffer = n.charAt(i) + buffer;	               
	            if (3 === buffer.length && i > 0) {
	    	        out    = "," + buffer + out;                              
	                buffer = "";				
	                
	            }
	        }
	        out = buffer + out;
	        return out;
	    };
	    
	    
	    target = parseInt($el.text().replace(/,/g, ''), 10);
	    $el.width($el.width() + 'px');
	    current = 0;
	    $el.text(current);
	    $el.addClass('counter');
	    interval = window.setInterval(
	        function() {
	            if (current >= target) {
	                window.clearInterval(interval);
	                $el.width('auto');
	            }
	            else {
	                current = current +
	                    Math.ceil(Math.random() * (target - current) / 5);
	                if (current > target) {
	                     current = target;
	                }
	                
	                $el.text(format(current));
	            }
	        },
	        10
	    );
	
	},
	
	countTotalUsers : function() {
	
		$('.totalBox .total').each(function(){
	    	Mirror_AA.countTotal($(this));
		});
	
	}

}





