/**
 * call JSONP for request eventsdata
 */
function requestEventData() {
	var url =  getURL() + "&method=event.get";
	var thisurl = location.href;
	if (thisurl.indexOf("?") > -1) url += "&" + thisurl.substr(thisurl.indexOf("?") + 1);
	jsonp(url);
}

/**
 * JSONP Call back method
 */
function jsonp_callback(events) {
	if (events != null && events.length == 1) {
		//キャッチ
		var namecatch = null;
		//ジャンル
		var genre = null;
		//説明
		var description = null;
		//クレジット
		var copyright = null;
		//関連ＵＲＬ
		var urls = null;
		//テキスト
		var texts = null;
		var descdatas = parceDescription(events[0].description);
		if (descdatas != null) {
			//キャッチ
			namecatch = descdatas[0];
			//ジャンル
			genre = descdatas[1];
			//説明
			description = descdatas[3];
			//クレジット
			copyright = descdatas[4];
			//関連ＵＲＬ
			urls = descdatas[5];
			//テキスト
			texts = descdatas[6];
		}
		//L画像
		var image = events[0].images.large;
		//地図用情報
		var latitude = events[0].venue.latitude;
		var longitude = events[0].venue.longitude;
		//更新日用の登録日
		var update = parseEventDate(events[0].created, true);
		//サマリ
		var summary = events[0].summary;
		setDate(toDateObject(toDateString(events[0].startdate)));
		setGenre(genre);
		setCatch(namecatch);
		setDescription(description);
		setModified(update);
		var resImage = setImage(image);
		if (resImage)
			setCopyright(copyright);
		var resMap = setGoogleMap(summary, latitude, longitude);
		if (resImage == false &&  resMap == false)
			removePhotoMap();
		
		setTexts(texts);
		setURLs(urls);
		if ((texts == null || texts.length == 0) && (urls == null || urls.length == 0))
			removePink();
		
		//Yahoo Calendar Link
		var yahoourl = getYahooLinkURL(events[0].id, events[0].pageDate, events[0].startdate, namecatch, description);
		var yahooElement = document.getElementById("c2yahoocal");
		yahooElement.setAttribute("href", yahoourl);
		
		//Google Calendar Link
		var googleurl = getGoogleLinkURL(events[0].id, events[0].pageDate, events[0].startdate, events[0].enddate, namecatch, description);
		var googleElement = document.getElementById("c2googlecal");
		googleElement.setAttribute("href", googleurl);
	}
}

function setDate(date) {
	var d = document.getElementById("date");
	if (d) d.innerHTML = "日付:" + date.getFullYear() + '年' + (date.getMonth() + 1) + '月' + date.getDate() + '日';
}

/**
 * Remove Pink Area
 */
function removePink() {
	var pinkElement = document.getElementById("info-text");
	if (pinkElement != null) {
		pinkElement.parentNode.removeChild(pinkElement);
	}
}
/**
 * Pink Area Link URL List
 */
function setURLs(urls) {
	if (urls != null && urls.length != 0) {
		var urlsElement = document.getElementById("c2urls");
		if (urlsElement != null) {
			var url = "";
			for (i=0; i<urls.length; i++) {
				if (urls[i][1] != null && urls[i][1] != "" && urls[i][0] != null && urls[i][0] != "") {
					if (i > 0)
						url += "<br/><br/>";
					if (urls[i][2] == "_blank") {
						url += '<font color="#6DC5FF">★</font>&nbsp;<a href="' + urls[i][1] + '" target="_blank">' + urls[i][0] + '</a>';
					} else {
						url += '<font color="#6DC5FF">★</font>&nbsp;<a href="' + urls[i][1] + '">' + urls[i][0] + '</a>';
					}
				}
			}
			url += "<br/>";
			urlsElement.innerHTML = url;
		}
	}
}
/**
 * Pink Area Text List
 */
function setTexts(texts) {
	if (texts != null && texts.length != 0) {
		var textsElement = document.getElementById("c2texts");
		if (textsElement != null) {
			var text = "";
			for (i=0; i<texts.length; i++) {
				if (i > 0)
					text += "<br/>";
				text += texts[i];
			}
			text += "<br/>";
			textsElement.innerHTML = text;
		}
	}
}
/**
 * Remove Photo & Map Area
 */
function removePhotoMap() {
	var pmElement = document.getElementById("c2imagephotobox");
	if (pmElement != null) {
		pmElement.parentNode.removeChild(pmElement);
	}
}
/**
 * Google Map
 */
function setGoogleMap(title, latitude, longitude) {
	if (latitude != null && latitude != "") {
		if (longitude != null && longitude != "") {
			if (GBrowserIsCompatible()) {
				var lat = parseFloat(latitude);
				var lon = parseFloat(longitude);
				
				var map = new GMap2(document.getElementById("c2map"));
				map.setCenter(new GLatLng(lat, lon), 14);
				map.addControl(new GSmallMapControl());
				map.enableScrollWheelZoom();
				map.enableContinuousZoom();
				map.enableDoubleClickZoom();
				
				icon = new GIcon();
				icon.image = "images/arrow_down_green.png";
				icon.shadow = "images/arrow_down_green_shadow.png";
				icon.iconSize = new GSize(24,24);
				icon.iconAnchor = new GLatLng(12,12);
				icon.infoWindowAnchor = new GLatLng(12,12);
				
				var point = new GLatLng(lat, lon);
				var marker = new GMarker(point, {icon: icon, draggable: false, bounceGravity: 1});
				
				if (title != null && title != "") {
				       GEvent.addListener(marker, "click", function() {
				        	var opt = new Object();
					        opt.maxWidth = 200;
						marker.openInfoWindowHtml(title, opt);
					});
				}
				map.addOverlay(marker);
				return true;
			}
		}
	}
	var mapboxElement = document.getElementById("c2mapbox");
	if (mapboxElement != null) {
		mapboxElement.parentNode.removeChild(mapboxElement);
	}
	return false;
}
/**
 * Photo Copyright
 */
function setCopyright(copyright) {
	if (copyright != null && copyright != "") {
		var crElement = document.getElementById("c2copyright");
		if (crElement != null) {
			crElement.innerHTML = copyright;
		}
	}
}
/**
 * Photo
 */
function setImage(image) {
	if (image != null && image != "") {
		var imageElement = document.getElementById("c2image");
		if (imageElement != null) {
			imageElement.innerHTML = '<img src="' + image + '">';
			return true;
		}
	}
	
	var imageboxElement = document.getElementById("c2imagebox");
	if (imageboxElement != null) {
		imageboxElement.parentNode.removeChild(imageboxElement);
	}
	var brElement = document.getElementById("c2imageboxbr");
	if (brElement != null) {
		brElement.parentNode.removeChild(brElement);
	}
	return false;
}
/**
 * Modified Date
 */
function setModified(modified) {
	if (modified != null) {
		var modifiedElement = document.getElementById("c2modified");
		if (modifiedElement != null) {
			var month = modified.getMonth() + 1;
			var date = modified.getDate();
			modifiedElement.innerHTML = "（" + month + "月" + date + "日更新）";
		}
	}
}
/**
 * Description
 */
function setDescription(description) {
	if (description != null && description != "") {
		var descElement = document.getElementById("c2description");
		if (descElement != null) {
			var desc = description;
			while (desc.indexOf("\r\n") != -1) {
				desc = desc.replace("\r\n", "<br/>");
			}
			descElement.innerHTML = desc;
		}
	}
}
/**
 * Catch
 */
function setCatch(namecatch) {
	if (namecatch != null && namecatch != "") {
		var catchElement = document.getElementById("c2catch");
		if (catchElement != null) catchElement.innerHTML = namecatch;
	}
}
/**
 * Genre
 */
function setGenre(genre) {
	if (genre != null && genre != "") {
		var genreElement = document.getElementById("c2genre");
		if (genreElement != null) {
			if (genre == "イベント") {
				genreElement.innerHTML = '<img src="images/m-event_s.gif" alt="イベントetc" width="105" height="30">';
			} else if (genre == "演劇") {
				genreElement.innerHTML = '<img src="images/m-engeki_s.gif" alt="演劇" width="105" height="30">';
			} else if (genre == "音楽") {
				genreElement.innerHTML = '<img src="images/m-music_s.gif" alt="音楽" width="105" height="30">';
			} else if (genre == "映画") {
				genreElement.innerHTML = '<img src="images/m-cinema_s.gif" alt="映画" width="105" height="30">';
			} else if (genre == "スポーツ") {
				genreElement.innerHTML = '<img src="images/m-sport_s.gif" alt="スポーツ" width="105" height="30">';
			} else if (genre == "夏フェス") {
				genreElement.innerHTML = '<img src="images/m-fes_s.gif" alt="夏フェス" width="105" height="30">';
			} else if (genre == "花火") {
				genreElement.innerHTML = '<img src="images/m-fire_s.gif" alt="夏フェス" width="105" height="30">';
			}else if (genre == "クラシック") {
				genreElement.innerHTML = '<img src="images/m-music_s.gif" alt="クラシック" width="105" height="30">';
			}
		}
	}
}

function getYahooLinkURL(eventID, date, eventStart, eventCatch, eventDesc) {
	var eventUrl = location.href;
	var url = "http://calendar.yahoo.co.jp/?";
	url += "v=60";
	url += "&ST=" + EscapeEUCJP(toDateString(eventStart));
	url += "&TITLE=" + EscapeEUCJP(eventCatch);
	url += "&DESC=" + EscapeEUCJP(eventUrl);
	url += "&TYPE=10&VIEW=m";
	return url;
}

function getGoogleLinkURL(eventID, date, eventStart, eventEnd, eventCatch, eventDesc) {
	var eventUrl = location.href;
	var url = "http://www.google.com/calendar/event?";
	url += "action=TEMPLATE";
	url += "&text=" + encodeURIComponent(eventCatch);
	url += "&dates=" + toDateString(eventStart) + "/" + toDateString(eventEnd);
	url += "&sprop=website:www.pia.co.jp";
	url += "&details=" + encodeURIComponent(eventUrl);
	return url;
}