// ---S P E C---
// 1.Load Google Earth
// 2.Switch Google Earth
// 3.Switch Youtube emb tag
// 4.Control Twitter API
//
// ---D E P E N D E N C Y---
// 1.jQuery javascript lib

google.load("earth", "1");
	
var ge = null;
var mtinfo = null;
var vinfo = null;
var finfo = null;
var mtClicked = false;

$(document).ready(function(){
	// Create	google earth instance
	google.earth.createInstance("ge", initCallback, failureCallback);

	// Get Mt.	Info	JSON	file
	$.getJSON("/assets/js/earth/mtinfo.json", function(data) {
		mtinfo = data;
	});
	// Get Video Info JSON file
	$.getJSON("/assets/js/earth/videoinfo.json", function(data) {
		vinfo = data;
	});
	// Get External File Info JSON file
	$.getJSON("/assets/js/earth/extfileinfo.json", function(data) {
		finfo = data;
	});

	// InitializeDisplay Setting
	dispGE();

	//----------------------------
	// following event processing
	//----------------------------

	// Switch the Mountain
	$("#secarousel li").click(function () {
		dispGE();
		goMt($(this).attr("name"));
		$("#selectedMt").val($(this).attr("name"));
		mtClicked = true;

		$("#secarousel li").each(function() {
			changeMouseOutImage($(this).children());
		});
		changeMouseOverImage($(this).children());
	});

	// Recomend Video show
	$(".recom-box li").click(function() {
		dispVideo();
		showVideo($(this).attr("name"));
		$("#selectedMt").val();
	});

	// Click Movie Button
	$("li.movie-icon").click(function() {
		$("#video").html(getListTag(getSelectedMountain()));
		dispVideo(); // Video Mode
	});

	// Click Photo Button
	$("li.photo-icon").click(function() {
		var fileInfo = finfo.ExtfileInfo[getSelectedMountain()];
		$("#photo").load(fileInfo.photo,null,function(){
			$('#mylightbox a').lightBox();
		});
		dispPhoto(); // Photo Mode
	});

	// Ckick Mountain Button
	$("li.mountain-icon").click(function() {
		var fileInfo = finfo.ExtfileInfo[getSelectedMountain()];
		$("#exp").load(fileInfo.wiki);
		dispExp(); // Wiki Mode
	});

	// Click Help Button
	$("li.help-icon").click(function() {
		$("#help").load("/index.php?id=142");
		dispHelp(); // Help Mode
	});
	// Mouse Over
	$("#secarousel li").mouseover(function() {
		changeMouseOverImage($(this).children());
	});

	// Mouse Out
	$("#secarousel li").mouseout(function() {
		if (mtClicked == false) {
			changeMouseOutImage($(this).children());
		} else if(mtClicked == true && $(this).attr("name") != getSelectedMountain()) {
			changeMouseOutImage($(this).children());
		}
	});

});

function changeMouseOverImage(img) {
	var newImg = $(img).attr("src").replace("bt.png","bt_over.png");
	$(img).attr("src",newImg);
}

function changeMouseOutImage(img) {
	var newImg = $(img).attr("src").replace("bt_over.png","bt.png");
	$(img).attr("src",newImg);
}

function getSelectedMountain() {
	var val = $("#selectedMt").val();
	if (val == "") {
		val = "Everest";
	}
	return val;
}

function initCallback(object) {
	ge = object;
	ge.getWindow().setVisibility(true);
}

function failureCallback(object) {
}

function goMt(mtname) {
	dispGE();
	if (ge != null) {
		var targetLookAt = mtinfo[mtname];
		var lookAt = ge.createLookAt('');
		lookAt.set(targetLookAt.latitude, targetLookAt.longitude, targetLookAt.altitude, ge.ALTITUDE_RELATIVE_TO_GROUND,
				targetLookAt.heading, targetLookAt.tilt, targetLookAt.range);
		ge.getView().setAbstractView(lookAt);
	}
}

function dispGE() {
	$("#ge").css("visibility","visible").css("width","100%").css("height","100%");
	$("#video").css("display","none");
	$("#photo").css("display","none");
	$("#exp").css("display","none");
	$("#help").css("display","none");
}

function dispVideo() {
	$("#ge").css("visibility","hidden").css("width","0px").css("height","0px");
	$("#video").css("display","inline");
	$("#photo").css("display","none");
	$("#exp").css("display","none");
	$("#help").css("display","none");
}

function dispPhoto() {
	$("#ge").css("visibility","hidden").css("width","0px").css("height","0px");
	$("#video").css("display","none");
	$("#photo").css("display","inline");
	$("#exp").css("display","none");
	$("#help").css("display","none");
}

function dispExp() {
	$("#ge").css("visibility","hidden").css("width","0px").css("height","0px");
	$("#video").css("display","none");
	$("#photo").css("display","none");
	$("#exp").css("display","inline");
	$("#help").css("display","none");
}

function dispHelp() {
	$("#ge").css("visibility","hidden").css("width","0px").css("height","0px");
	$("#video").css("display","none");
	$("#photo").css("display","none");
	$("#exp").css("display","none");
	$("#help").css("display","inline");
}

function makeVideoTag(videoId) {
	var ret = "";
	var cvi = vinfo.CommonVideoInfo;

	var url = "http://www.youtube-nocookie.com/v/" + videoId + "&amp;hl=" + cvi.movie.hl + "&amp;fs=" + cvi.movie.fs + "&amp;rel=0&amp;autoplay=" + cvi.movie.autoplay;
	ret = '<object width="' + cvi.width + '" height="' + cvi.height + '">';
	ret += '<param value="' + url + '" name="movie"/>';
	ret += '<param value="' + cvi.allowFullScreen + '" name="allowFullScreen"/>';
	ret += '<param value="' + cvi.allowscriptaccess + '" name="allowscriptaccess"/>';
	ret += '<embed width="' + cvi.width + '" height="' + cvi.height + '" allowfullscreen="' + cvi.allowFullScreen + '" allowscriptaccess="' + cvi.allowscriptaccess + '" type="application/x-shockwave-flash" src="' + url + '"/>';

	return ret;
}

function getListTag(mtname) {
	var ret = "";
	var videoArray = vinfo.VideoInfo[mtname];
	$.each(videoArray, function() {
		thumbUrl = encodeURI("http://img.youtube.com/vi/" + this.id + "/" + this.thumbnailNum + ".jpg");
		ret += "<li><a href=javascript:showVideo('" + this.id + "');><img src='" + thumbUrl + "' width='100' height='75' /><br />" + this.text + "</a></li>"
	});
	return "<div class='mov-box'><ul class='mov-list'>" + ret + "</ul></div>";
}

function showVideo(videoId) {
	dispVideo();
	$("#video").html(makeVideoTag(videoId));
}

