// ==UserScript==
// @name           lastfm-pm
// @namespace      /home/antek/userjs/lastfm-pm.js
// @include http://www.lastfm.pl/inbox/compose?to=*
// @include http://www.lastfm.pl/inbox/pm/*
// @include http://www.last.fm/inbox/compose?to=*
// @include http://www.last.fm/inbox/pm/*
// ==/UserScript==

// written by antonone
// http://anadoxin.org/blog

// distributed as public domain

var done = false;
function resizeControls() {
	var bodyBox = document.getElementById("body");
	var subjectBox = document.getElementById("subject");

	bodyBox.setAttribute("rows", "25");
	bodyBox.setAttribute("cols", "80");

	subjectBox.setAttribute("width", "80");
}

function preview() {
	var dataq = document.getElementById("body").value;
	var dataFmt = "content=" + encodeURIComponent(dataq);

	document.getElementById("editorPreviewPane").innerHTML = "Czekaj...";

	GM_xmlhttpRequest({
		method: "POST",
		url: 'http://www.lastfm.pl/ajax/renderarticle',
		headers: {
			'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
		},
		'data': dataFmt,
		onload:  function(resp) {
			if(resp.status == 200 && resp.readyState == 4) {
				var dataq = resp.responseText;
				document.getElementById("editorPreviewPane").innerHTML = dataq;
			}
		}
	});
}

function locateSendButton() {
	var els = document.getElementsByTagName("input");
	var submitButton = null;

	for(var i = 0, len = els.length; i < len; i++) {
		var node = els[i];
		if(node && node.getAttribute("type").toLowerCase() == "submit") {
			submitButton = node;
			break;
		}
	}

	if(submitButton) {
		var previewButton = document.createElement("input");
		previewButton.setAttribute("type", "button");
		previewButton.setAttribute("value", "Podglad");
		previewButton.addEventListener("click", preview, true);
		previewButton.style.marginRight = "10px";

		submitButton.parentNode.insertBefore(previewButton, submitButton);
	}

	return null;
}

function addPreviewButton() {
	var sendButton = locateSendButton();
}

function createPreview() {
	var container = document.getElementById("LastContent2");
	var previewPane = document.createElement("div");
	previewPane.setAttribute("class", "messageContent");
	previewPane.setAttribute("id", "editorPreviewPane");

	previewPane.innerHTML = "...";
	
	previewPane.style.padding = "15px";
	previewPane.style.margin = "5px 0pt 10px";
	previewPane.style.border = "1px solid #dfdfdf";
	previewPane.style.background = "#ffffff none repeat scroll 0%";

	container.appendChild(previewPane);
}

function start() {
	if(done) return;

	resizeControls();
	addPreviewButton();
	createPreview();
	done = true;
}

if(window.addEventListener) {
	window.addEventListener("load", start, false);
}

