jQuery.noConflict();
jQuery(function($){
	// Variables
	var targetId = "keyVisual";
	var csvFile = "data/holiday.csv";
	var xmlFile = "data/weekend.xml";
	var timeout = 60000;
	var csvData = new Array();
	var xmlData = new Object();
	var xmlLoadStart = false;
	
	// Main
	$("#" + targetId).hide();
	$('<div id="weekendEmpty"></div>')
	.insertBefore("#" + targetId);
	var xhrCsvLoad = $.ajax({
		url: csvFile,
		dataType: "text",
		cache: false,
		timeout: timeout
	})
	.done(function(csv){
		try {
			if (csv == "") $.error();// Empty CSV file.
			csvData = csv2Array(csv);
			var thisDate = new Date();
			var thisYear = thisDate.getFullYear();
			var thisMonth = thisDate.getMonth() + 1;
			var thisDate = thisDate.getDate();
			$.each(csvData, function(i) {
				if (parseInt(csvData[i][0]) == thisYear &&
						parseInt(csvData[i][1]) == thisMonth &&
						parseInt(csvData[i][2]) == thisDate) {
					xmlLoadStart = true;
					return false;
				}
			});
			if (!xmlLoadStart) $.error();// Unmatched Data.
			var xhrXmlLoad = $.ajax({
				url: xmlFile,
				dataType: "xml",
				cache: false,
				timeout: timeout
			})
			.done(function(xml, status) {
				try {
					if ( $(xml).find("parsererror").size() > 0 ) $.error();// XML parsing error.
					xmlData = {
						"photoImgPath": escapeHTML( $("photo > imgPath", xml).text() ),
						"photoImgAlt": escapeHTML( $("photo > imgAlt", xml).text() ),
						"txtImgPath": escapeHTML( $("txt > imgPath", xml).text() ),
						"txtImgAlt": escapeHTML( $("txt > imgAlt", xml).text() ),
						"btnTags": $("btn > tags", xml).text()
					};
					var htmlSrc = "";
					htmlSrc += '<div id="weekendKeyVisual">';
					htmlSrc += '<div id="weekendMain">';
					htmlSrc += '<img src="' + xmlData.photoImgPath + '" alt="' + xmlData.photoImgAlt + '" width="622" height="350" />';
					htmlSrc += '</div><!-- /#weekendMain -->';
					htmlSrc += '<div id="weekendSub">';
					htmlSrc += '<p id="weekendTxt"><img src="' + xmlData.txtImgPath + '" alt="' + xmlData.txtImgAlt + '" width="214" height="172" /></p>';
					htmlSrc += '<p id="weekendBtn">' + xmlData.btnTags + '</p>';
					htmlSrc += '</div><!-- /#weekendSub -->';
					htmlSrc += '</div><!-- /#weekendKeyVisual -->';
					$("#weekendEmpty").remove();
					$("#" + targetId).replaceWith(htmlSrc).show();
					
					var btnImg = $("#weekendBtn img");
					var btnImgSrc = btnImg.attr("src");
					var btnRollover = {
						 "on": btnImgSrc.replace(/\.(gif|jp?g|png)$/, "-on.$1")
						,"off": btnImgSrc
					};
					(new Image).src = btnRollover.on;
					btnImg.bind("mouseover", function(event) {
						$(this).attr("src", btnRollover.on);
					});
					btnImg.bind("mouseout", function(event) {
						$(this).attr("src", btnRollover.off);
					});
				} catch (error) {
					exception(error);
				}
			})
			.fail(function() {
				// Load XML failed.
				exception();
			});
		} catch (error) {
			exception(error);
		}
	})
	.fail(function() {
		// Load CSV failed.
		exception();
	});
	
	// Functions
	function csv2Array(csv) {
		var csvData = new Array();
		var line = csv.replace(/(^[\r\n]+|[\r\n]+$)/g, "").split("\r\n");
		$.each(line, function(i) {
			csvData[i] = line[i].split(",");
		});
		return csvData;
	}
	
	function exception(msg) {
		if (typeof msg != "undefined") {
			$("#" + targetId).html(msg);
		}
		$("#weekendEmpty").remove();
		$("#" + targetId).show();
	}
	
	function escapeHTML(txt) {
		txt = txt.replace(/&/, "&amp;");
		txt = txt.replace(/"/, "&quote;");
		txt = txt.replace(/</, "&lt;");
		txt = txt.replace(/>/, "&gt;");
		return txt;
	}
});
