var OPEN_STRING = "open";
var CLOSE_STRING = "close";

jQuery( function() {
	setEventInfo();
	$('#close_all').button().click( function() { closeAllDetail(); $('#close_all').hide(); $('#open_all').show();} );
	$('#open_all').button().click( function() { openAllDetail();   $('#close_all').show(); $('#open_all').hide();} );
	$("#close_all").hide();
});
	
function setCommandEffect() {
	var coms = $("#commands-back").text().split(" ");
	var coms_color = "";
	var colors = [ "red", "green", "blue", "darkorange", "black", "gray", "darkcyan", "maroon", "crimson", "royalblue", "navy" ];
	for( var i in coms ) {
		var r = Math.floor( Math.random() * colors.length);
		coms_color += "<span style='color:" + colors[r] + ";'>" + coms[i] + " </span>";
	}
	$("#commands-back").html(coms_color);
}

function displayCourses(targetId) {
	var courses = pullAllCourse();
	for ( var r=0; r < courses.length; r++ ) {
		var course = courses[r];
		var img = jQuery("<a href='" + course.desc_url + "#" + course.id + "'><img class='text-img-nf' src='" + course.icon_url + "' /></a>");
		targetId.append(img);
	}
}

function getCourseData( courseId, targetId ) {
	var resourceURL = "http://www.knowd.co.jp/cgi-bin/courses.cgi?id=" + courseId;
	jQuery.ajax( {
		type: "GET",
		url: resourceURL,
		success: function(data) {
			makeCourseDetail( targetId, data[0] );
		},
		dataType: 'json'
	} );
}

function getURLbyCourseId(courseId) {
	for ( var i in CACHED_ALL_COURSE ) {
		var c = CACHED_ALL_COURSE[i];
		if (c.id == courseId) {
			return c.desc_url + "#" + c.id;
		}
	}
}

function makeCourseDetail( targetId, courseJSON ) {
	with (courseJSON) {
		var div = "";
		div += "<div id='" + id + "'>\n"
			+ "  <a href='" + desc_url + "'>\n"
			+ "    <img class='text-img' src='" + icon_url + "' />\n"
			+ "  </a>\n"
			+ "  <div>\n"
			+ "    <p class='text-title'>" + title + " : [" + id + "]</p>\n"
			+ "    <p class='text-summary'>" + summary + "</p>\n"
			+ "    <p class='text-description'>" + description + "</p>\n"
			+ "    <p class='text-price'>日数: " + day_length + " 日間"
			+ " / 価格: " + separateByComma(price) + "円</p>\n"
			+ "    <p>環境: " + environment + "</p>\n"
			+ "    <p>前提条件： " + prerequisite + "</p>\n"
			+ "  </div>\n"
			+ "</div>\n";
		targetId.append($(div));

		var button = $("<input value='詳細 [open/close]' type='button' />");
		var detail = $("<div style='margin:1em;'></div>").load(detail_url);
		
		detail.hide();
		button.click( function() { detail.toggle(); } );
		
		targetId.append(button);
		targetId.append(detail);;
	}
}

function closeAllDetail() {
	$(".course_pane").find(".details").hide("normal");
}

function openAllDetail() {
	$(".course_pane").find(".details").show("normal");
}

function makeAllCourseTable(target, category) {
	var courses = pullAllCourse();
	if (category) {
		courses = getCoursesByCategory(category);
	}
	
	var table = $('<table>').addClass('all_course_table');
	var header = $("<tr>");
	header.append( $("<th style='min-width: 7em'>").text("コース番号") );
	header.append( $("<th>").text("コースタイトル") );
	if (!category) {
		header.append( $("<th style='min-width: 6em'>").text("カテゴリー") );
	}
	header.append( $("<th style='min-width: 2em'>").text("日数") );
	header.append( $("<th>").text("価格") );
	header.append( $("<th>").text("概要") );
	table.append(header);		
	
	for ( var i in courses ) {
		var course = courses[i];
		var course_link = course.desc_url + "#" + course.id;
		var row = $('<tr>');
		var detailOpen = function() {
			$(this.hash + "-detail-pane").show("normal");
		};
		
		row.append( $('<td>').append( $('<a>').attr("href", course_link).text( course.id ).click( detailOpen ) ) );
		row.append( $('<td>').append( $('<a>').attr("href", course_link).text( course.title ).css({width:"25%"}) .click( detailOpen ) ) );
		if(!category) {
			row.append( $('<td>').append( $('<a>').attr("href", course.desc_url).text(course.categories.join(",") ) ) );
		}
		row.append( $('<td>').text(course.day_length).css({"text-align":"right"}) );
		row.append( $('<td>').text(separateByComma(course.price)).css({"text-align":"right"}) );
		row.append( $('<td>').text(course.summary).css({"width":"40%", "font-size": "x-small", "line-height":"1.2em"}) );
		table.append(row);
	}
	target.append(table);
}

function setEventInfo() {
	var event_info = $('#event_info');
	if (CACHED_ALL_EVENT && CACHED_ALL_EVENT.length > 0) {
		var line = $("<p>スケジュール</p>");
		var sched_table = $("<table>").attr("id", "sched_table");
		var header = $("<tr>");
		$("<th>").html("期間").appendTo(header);
		$("<th>").html("実施会場").appendTo(header);
		$("<th>").html("コース").appendTo(header);
		$("<th>").html("実施時間").appendTo(header);
		$("<th>").html("料金").appendTo(header);
		
		//$("<th>").html("test").appendTo(header);
		

		sched_table.append(header);
		
		for (var i = 0; i < CACHED_ALL_EVENT.length; i++ ) {
			var event = CACHED_ALL_EVENT[i];	
			var row = $("<tr>");
			
			// date
			if(!event.end_date) { 
				event.end_date = "&nbsp;";
			} else {
				event.end_date = " - " + formatDate(event.end_date);
			}
			var schedule = formatDate(event.start_date) + event.end_date + " " + formatTime(event.day_length); 
			$("<td>").html(schedule).appendTo(row);

			//location
			var location = $("<td>");
			var location_link = $("<a>").attr({
				"href": event.location_url,
				"target": "_blank"
			}).html(event.location);
			
			$("<td>").html(location_link).appendTo(row);
			
			// course
			if (event.course_id) {
				event.course_title = "[" + event.course_id + "] " + event.course_title;
			}
			var info_link = $("<a>").attr({
				"href": event.info_url,
				"target": "_blank"
				}).html(event.course_title);
			$("<td>").html(info_link).appendTo(row);

			//time
			$("<td>").html(formatDate(event.time)).addClass("right").appendTo(row);						

			//price
			if (!event.price) {
				event.price = "無料";
			} else {
				event.price = separateByComma(event.price);
				event.price += "円";
			}
			$("<td>").html(event.price).addClass("right").appendTo(row);
			//$("<td>").html(event._id.$oid).appendTo(row);
			//console.log("eid=" + event._id.$oid);
			
			sched_table.append(row);
		}
		event_info.html(line);
		event_info.append(sched_table);
		
	} else {
		event_info.css("display", "none");
	}
}
