// depend on `prototype.js`

var hoverEdit = {

	createDivId: "hoverEditDiv", 
	mousePositionX: 0, 
	mousePositionY: 0, 

	initialize: function() {
	
		Event.observe(document, "mousemove", hoverEdit.setPointers, false);
	
	}, 
	
	setPointers: function(event) {
	
		hoverEdit.mousePositionX = Event.pointerX(event);
		hoverEdit.mousePositionY = Event.pointerY(event);
	
	}, 
	
	create: function(defaultData, hiddenDatas, actionUrl, comment) {
		
		if($(hoverEdit.createDivId))
		{
			hoverEdit.deleteBox();
		}
		
		var newDivElement = document.createElement('div');
		newDivElement.id = hoverEdit.createDivId;
		newDivElement.innerHTML = hoverEdit.getFormTags(defaultData, hiddenDatas, actionUrl, comment);
		document.body.appendChild(newDivElement);
		
		hoverEdit.setStyle();
		
	}, 
	
	getFormTags: function(defaultData, hiddenDatas, actionUrl, comment) {
	
		var hiddenTag = '';
		var commentDisplay = '';
	
		if(actionUrl == undefined)
		{
			actionUrl = '';
		}
		
		if(comment != undefined)
		{
			commentDisplay = '<div style="font-size: 12px;">'+ comment +'</div>';
		}
		
		if(typeof(hiddenDatas) == "object")
		{
			for (var key in hiddenDatas)
			{
				hiddenTag += '<input type="hidden" name="'+ key +'" value="'+ hiddenDatas[key] +'">';
			}
		}
		else
		{
			hiddenTag = hiddenDatas.toString();
		}
	
		returnValue = '<form action="'+ actionUrl +'" method="post" style="margin:0px; padding:0px;">'
					+ '<table style="margin:0px; padding:0px; width:100%;">'
					+ '<tr>'
					+ '<td>'+ commentDisplay +'<textarea name="hoverEditUpdate"style="width:98%;">'+ defaultData +'</textarea></td>'
					+ '</tr>'
					+ '<tr>'
					+ '<td><input id="hoverEditDeleteCheckbox" type="checkbox" name="hoverEditDelete" value="1"> <label for="hoverEditDeleteCheckbox" style="font-size:12px;">削除する</label></td>'
					+ '</tr>'
					+ '<tr>'
					+ '<td style="text-align:center;"><input type="submit" value="&nbsp;実行する&nbsp;">&nbsp;<input type="button" value="&nbsp;キャンセル&nbsp;" onClick="hoverEdit.deleteBox();"></td>'
					+ '</tr>'
					+ '</table>'
					+ hiddenTag
					+ '</form>';
		
		return returnValue;
		
	}, 
	
	setStyle: function() {
	
		var mousePositionX = ""+ (hoverEdit.mousePositionX + 15) +"px";
		var mousePositionY = ""+ (hoverEdit.mousePositionY + 15) +"px";
	
		setStyles = {
		
			width: "250px", 
			border: "2px solid #7F9DB9", 
			padding: "1px", 
			backgroundColor: "#EEEEEE", 
			position: "absolute", 
			zIndex: "1000", 
			top: mousePositionY, 
			left: mousePositionX 
		
		}
		Element.setStyle(hoverEdit.createDivId, setStyles);
		
	}, 
	
	deleteBox: function() {
	
		var target = $(hoverEdit.createDivId);
		document.body.removeChild(target);
	
	}, 
	
	sendConfirm: function() {
	
		var res = confirm('処理を実行します。よろしいですか？	');
		if(!res)
		{
			return false;
		}
	
	}

}

window.onload = function(){ hoverEdit.initialize() }