$(function(){
	Format();
	ShowFlag();
	InitExpandingList();
	InitVideoPlayer();
	PrintPage();
	if($("#matrix").length > 0){
		InitMatrix();
	}
	ContentHeight();
});

// GLOBAL FUNCTIONS ===============================================================

function Format(){
	/* general ops to format various items */
	
	/* -- listings -- */
	/* p's following images have padding */
	$(".video-player").hide();
	$(".listing .thumbnail ~ p").addClass("has-thumbnail");
	$(".listing .thumbnail ~ h2").addClass("has-thumbnail");
	$(".listing li:has(img) h2 ~ p").addClass("has-thumbnail");
	
	$(".video-pod ~ .pull-quote").addClass("related-video");
	$(".video-pod ~ .pull-quote ~ h2").addClass("clear-left");
	$(".video-pod ~ .pull-quote ~ h3").addClass("clear-left");
	$(".video-pod ~ .pull-quote ~ p").addClass("clear-left");
	
	/*-- search box --*/
	/* set the default "Search" text */
	$("#search .text-field").focus(function(){
		$(this).val("");
	});
//	$("#search .text-field").blur(function(){
//		$(this).val("Search");
//	});
}

function ShowFlag(){
	$(".country-navigation li a").hover(function(){
			$(this).siblings(".flag").show();
	},function(){
		if(!$(this).parent().hasClass("selected"))
			$(this).siblings(".flag").hide();
	});
}

/* Expanding list */
function InitExpandingList(){
		
	$(".section-content").hide();	
	$(".expanding-list .open .section-content").show();
	
	$(".expanding-list .item h2").hover(
		function(){
			$(this).parent().addClass("hover");
		},
		function(){
			$(this).parent().removeClass("hover");
		}
	);
	
	// pre expand items selected via the #
	if(location.hash)
    {
        $(location.hash).next(".section-content").slideDown("fast");
        $(location.hash).removeClass("hover");
        $(location.hash).addClass("open");
    }

	var doOnce = false;
	
	$(".expanding-list .item h2").click(
		function(){
			if(!doOnce){
				var theHeight = $("#content").height();
				$("#content").attr("style", "min-height:"+theHeight+"px");
				$("#ie6 #content").attr("style", "height:"+theHeight+"px");
				doOnce = true;
			}
			
			if($(this).parent().hasClass("open")){
			    $(this).siblings(".section-content").slideUp("fast");
			    $(this).parent().removeClass("open");
			}
			
			else{
			    $(this).siblings(".section-content").slideDown("fast");
			    $(this).parent().removeClass("hover");
			    $(this).parent().addClass("open");
		    }
		}
	);
}

function InitVideoPlayer(){
    
	$("#content .video-pod").show();
	
	$("#content .video-pod").before("<div class='video-player'><div class='container'><div id='video'><h2>Flash Required</h2><p>Your browser needs the Flash Player (version 8 or higher) installed in order to view this video. You can download the plugin for free on the <a href='http://www.adobe.com/products/flashplayer/' rel='external'>Adobe website</a></p></div></div></div>");
	
	$(".video-pod").click(function(){
		if($(this).hasClass("video-expanded")){
			$(this).prev(".video-player").slideUp("fast");
			$(this).removeClass("video-expanded");
			$(this).children(".video-hide").remove();
			$("#video").html("");
			$(this).children(".video-title").show();
		}
		
		else{
			$(this).prev(".video-player").slideDown("fast");
			$(this).children(".video-title").hide();
			$(this).children("img").after('<p class="video-hide">Collapse Video</p>');
			$(this).addClass("video-expanded");
			
			var so = new SWFObject("/Flash/video_player.swf", "video_player", "400", "330", "8", "#000000");
			so.addVariable("vidPath", $(this).attr("href"));
			so.addParam("wmode", "transparent");
			so.write("video");
		}
		return false;
	});
	
	 $(".video-pod").hover(
      function () {
        $(this).children("p").css("text-decoration", "underline");
        $(this).css("cursor","pointer");
      }, 
      function () {
          $(this).children("p").css("text-decoration", "none");
          $(this).css("cursor","pointer");
      }
    );

}

// HOMEPAGE ===============================================================

function InitHomepageMap(){
	track = 0;
	$("#home-image-map area").mouseover(
		function(e){
			track++;
			if(!this.path){
				var countryName = $(this).attr("alt").toLowerCase();
				this.path = ".homepage-map #" + countryName;
				this.initTop = parseInt($(this.path).css("top"));
				this.initLeft = parseInt($(this.path).css("left"));
			}
			
			var top = e.pageY - $(".homepage-map")[0].offsetTop - 56;
			var left = e.pageX - $(".homepage-map")[0].offsetLeft + 10;
			
			if(jQuery.browser.msie && jQuery.browser.version == 6.0){
				var pos = $(".homepage-map").position();
				top = this.initTop + pos.top;
				left = this.initLeft + pos.left;
				$(this.path).css({"top":top, "left":left});
				$(this.path).show();
			}else{
				$(this.path).css({"top":top, "left":left});
				$(this.path).fadeIn("fast");
				
				$(this.path).show();
				$(this).mousemove(function(e){
					var top = e.pageY - $(".homepage-map")[0].offsetTop - 56;
					(this.path == ".homepage-map #indonesia") ? xOff = 50 : xOff = 20;
					var left = e.pageX - $(".homepage-map")[0].offsetLeft + xOff; //10;
					$(this.path).css({"top":top, "left":left});
				});
			}
		}
	);
	
	$("#home-image-map area").mouseout(
		function(){
			if(jQuery.browser.msie && jQuery.browser.version == 6.0){
				$(this.path).hide();
			}else{
				$(this.path).fadeOut("fast");
				$(this.path).hide();
				//$(this).mousemove(null);
				$(this).unbind('mousemove'); 
			}
		}
	);
	
}

// PRINT PAGE ===============================================================

function PrintPage() {
	$("a.print").click(function(){
		window.print()
		return false;
	});
}

// CONTENT COLUMN MIN-HEIGHT ===============================================================
function ContentHeight() {
	var pageHeight 		= $("#page").height() + $("#overview-wrapper").height();
	var navHeight 		= $("#subnavigation").height() + parseInt($("#subnavigation").css("padding-top")) + parseInt($("#subnavigation").css("padding-bottom"));
	var sidebarHeight 	= $("#sidebar").height();
	var hmax = Math.max(navHeight, sidebarHeight);
	if(pageHeight < hmax){
		var newh = hmax - $("#overview-wrapper").height() + 20;
		$("#content").css({"min-height":newh});
		$("#ie6 #content").css({"height":newh});
	}
}

// MATRIX ===============================================================
/* Expanding list */
function InitMatrix(){
	// Initialize column for horizontal table
	$("#matrix .horizontal tr td").hide();
	$("#matrix .horizontal tr th").attr("colSpan", 2);
	$("#matrix .horizontal tr").addClass("closed"); // add class for print stylesheet
	$("#matrix .show-all tr").removeClass("closed");
	$("#matrix .show-all tr").addClass("open");
	$("#matrix .show-all tr th").attr("colSpan", 1);
	$("#matrix .show-all td").show();
	
	// add alternate class to alternate table rows
	$("#matrix tr:even").addClass("alt");
	
	// add flags to table headers
	$("#matrix table th").each(function(){
		if(!$(this).hasClass("first")){
			var imgsrc = new String();
			var country = $.trim($(this).text());
			imgsrc = '<img src="/Images/Countries/Flags/flag-small-'+country.toLowerCase()+'.gif" width="30" height="20" alt="'+country+' Flag"/>';
			$(this).prepend(imgsrc);
		}
	});
	
	
	// collapse rows on horizontal tables
	$("#matrix table.horizontal th").click(
		function() {
			if($(this).parent().hasClass("open")){
				$(this).parent().addClass("closed");
				$(this).parent().removeClass("open");
				$(this).attr("colSpan", 2);
				$(this).siblings("td").hide();
			}
			else {
				$(this).parent().removeClass("closed");
				$(this).parent().addClass("open");
				$(this).attr("colSpan", 1);
				$(this).siblings("td").show();
				trackURL = "/"+generateUrl($(this).parent().parent().parent().parent().parent().parent().parent().prev("h2"))+ "/" + generateUrl($(this).parent().parent().parent().parent().parent().parent().prev("h3")) + "/" + generateUrl($(this).parent().parent().parent().parent().prev("h4")) + "/" + $(this).text();
				pageTracker._trackPageview(trackURL);
				tab = webTrendsUrl($(this).parent().parent().parent().parent().parent().parent().parent().prev("h2"));
				t1 = webTrendsUrl($(this).parent().parent().parent().parent().parent().parent().prev("h3"));
				t2 = webTrendsUrl($(this).parent().parent().parent().parent().prev("h4"));
				t3 = $(this).text();
				dcsMultiTrack('DCSext.asean_sg_tab', tab, 'DCSext.asean_sg_tier1', t1, 'DCSext.asean_sg_tier2', t2, 'DCSext.asean_sg_tier3', t3);
			}
		}
	);
	
	// hover behaviours 
	$("#matrix .tab").click(
		function(){
			if(!$(this).hasClass("selected")){
				$("#matrix div").removeClass("main-section-open");
				$("#matrix h2").removeClass("selected");
				$(this).removeClass("hover");
				$(this).next(".main-section").addClass("main-section-open");
				$(this).addClass("selected");
				trackURL = location.href+"/"+generateUrl($(this));
				pageTracker._trackPageview(trackURL);
				
				tab = webTrendsUrl($(this));
				dcsMultiTrack('DCSext.asean_sg_tab', tab);
			
			}
		}
	);
	
	$("#matrix .tab").hover(
		function(){
			if(!$(this).hasClass("selected"))
				$(this).addClass("hover");
		},
		function(){
			if($(this).hasClass("hover"))
				$(this).removeClass("hover");
		}
	);

	
	$("#matrix h3").hover(
		function(){
			if($(this).hasClass("collapsed"))
				$(this).addClass("hover");
		},
		function(){
			if($(this).hasClass("hover"))
				$(this).removeClass("hover");
		}
	);
	
	$("#matrix table th").hover(
		function(){
			if(!$(this).parent().hasClass("open"))
				$(this).addClass("hover");
		},
		function(){
			if(!$(this).parent().hasClass("open"))
				$(this).removeClass("hover");
		}
	);
	
	$(".main-section ul li").hover(
		function(){
			$(this).addClass("hover");
		},
		function(){
			$(this).removeClass("hover");
		}
	);
	
	// collapse main headings
	$("#matrix h3").click(
		function() {
			if($(this).hasClass("collapsed")){
				$(this).next("ul").slideDown("fast");
			    $(this).removeClass("collapsed");
			    $(this).removeClass("hover");
				trackURL = "/"+generateUrl($(this).parent().prev("h2")) + "/"  + generateUrl($(this));
				pageTracker._trackPageview(trackURL);
				
				tab = webTrendsUrl($(this).parent().prev("h2"));
				t1 = webTrendsUrl($(this));
				dcsMultiTrack('DCSext.asean_sg_tab', tab, 'DCSext.asean_sg_tier1', t1);
			}
			
			else {
				$(this).next("ul").slideUp("fast");
				$(this).addClass("collapsed");
			}
		}
	);
	
	// collapse subheadings
	$(".main-section ul li h4").click(
		function() {
		
			if($(this).parent().hasClass("open")){
				$(this).siblings(".section-content").slideUp("fast");
			    $(this).parent().removeClass("open");
			    $(this).find("sup").hide();
			}
			
			else {
				$(this).siblings(".section-content").slideDown("fast");
				$(this).find("sup").show();
				$(this).parent().addClass("open");
				trackURL = "/"+generateUrl($(this).parent().parent().parent().prev("h2")) + "/" + generateUrl($(this).parent().parent().prev("h3")) + "/"  + generateUrl($(this));
				pageTracker._trackPageview(trackURL);
				
				tab = webTrendsUrl($(this).parent().parent().parent().prev("h2"));
				t1 = webTrendsUrl($(this).parent().parent().prev("h3"));
				t2 = webTrendsUrl($(this));
				dcsMultiTrack('DCSext.asean_sg_tab', tab, 'DCSext.asean_sg_tier1', t1, 'DCSext.asean_sg_tier2', t2);
					
			}
		}
	);
}

// Google Analytics Tracking for Matrix ===============================================================
function generateUrl(clickedElement){
	var hash;
	hash = clickedElement.html().match(/[^\<]*/)[0];
	hash = $.trim(String(hash));
	hash = hash.replace(/[^\w]+/g,"-");
	hash = hash.replace(/^-+|-+$/,"");
	return hash;
}

function webTrendsUrl(clickedElement){
	var hash;
	hash = clickedElement.html().match(/[^\<]*/)[0];
	hash = $.trim(String(hash));
	return escape(hash);
}