// ==UserScript==
// @name		ITCalLinkSetter
// @namespace	http://www.kanasansoft.com/
// @include		http://www.google.com/calendar/embed?src=fvijvohm91uifvd9hratehf65k%40group.calendar.google.com
// @include		https://www.google.com/calendar/embed?src=fvijvohm91uifvd9hratehf65k%40group.calendar.google.com
// @include		http://www.google.com/calendar/embed?src=fvijvohm91uifvd9hratehf65k@group.calendar.google.com
// @include		https://www.google.com/calendar/embed?src=fvijvohm91uifvd9hratehf65k@group.calendar.google.com
// ==/UserScript==

(function(){

	var running=false;

	var onLoad=function(){
		document.body.addEventListener("DOMSubtreeModified",makeBubbleContentHandler("bubbleContent:0"),true);
		document.body.addEventListener("DOMSubtreeModified",makeBubbleContentHandler("bubbleContent:1"),true);
	}

	var makeBubbleContentHandler=function(id){
		var handler=makeLinkEventHandler;
		return function(){
			var elem=document.getElementById(id);
			if(elem){
				document.body.removeEventListener("DOMSubtreeModified",arguments.callee,true);
				elem.addEventListener("DOMSubtreeModified",handler,true);
			}
		}
	}

	var makeLinkEventHandler=function(e){
		if(running){return;}
		running=true;
		var target=e.target;
		var items=document.evaluate(
			".//*[preceding-sibling::*='説明'][contains(preceding-sibling::*/@class,'event-details-label')]",
			target,
			null,
			XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,
			null
		);
		if(items.snapshotLength!=1){
			return;
		}
		var detail=items.snapshotItem(0);
		var details=detail.textContent.split(/\s/);
		for(var i=0;i<details.length;i++){
			if(/^https?:\/\//.test(details[i])){
				var link=document.createElement("a");
				link.href=details[i];
				link.target="_blank";
				link.style.border="none";
				link.style.padding="0px 2px";
				var image=document.createElement("img");
				image.style.border="none";
				image.style.verticalAlign="text-bottom";
				image.src="data:image/png;base64,"+
					"iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMAgMAAAArG7R0AAAAAXNSR0IArs4c6QAAAAlQTFRFAADMzMz%"+
					"2F%2F%2F%2F%2FHKrnyQAAAC9JREFUCNdjYAACrVUrGDQYOBi0RD0YtFo9wLRGiAeDYhAHg4ZXB4OW1g"+
					"qwGiAAALoNCGOa9R9DAAAAAElFTkSuQmCC";
				link.appendChild(image);
				detail.appendChild(link);
			}
		}
		running=false;
	}

	window.addEventListener("load",onLoad,true);

})();

