//XMLRPC.routing = "active";//When this is set to active it does work!
//DEBUG = true;

XMLRPC.routeServer = "http://www.vcdn.org/cgi-bin/rpcproxy.cgi";
XMLRPC.onerror = function(e){
	var win = document.getElementById(errorWindow);
	
	if(e.message.indexOf("Post succe") > 0 || e.message.indexOf("Post edit succe") > 0 || e.message.indexOf("Post delete succe") > 0){
		win.innerHTML = "Action succeeded, but Couldn't Publish it on your site!";
		displayMessages();
	}
	else{
		win.innerHTML = "An Error has occured:<br><br><b>" + e.message + "</b><br><a href='help.php#errors'>Help about this error</a>";
	}
	
	cancel();
	return true;
}

blogger = XMLRPC.getService("http://plant.blogger.com/api/RPC2");
blogger.add("blogger.newPost", "newPost");
blogger.add("blogger.editPost", "editPost");
blogger.add("blogger.getUsersBlogs", "getUsersBlogs");
//blogger.add("blogger.getTemplate", "getTemplate");
//blogger.add("blogger.setTemplate", "setTemplate");
blogger.add("blogger.getRecentPosts", "getRecentPosts");
blogger.add("blogger.deletePost", "deletePost");

blogid = "3123125";
//blogid = "3123100";
appKey = "C9B03E20D3FD0C6526943173D45A817BFD41FD2E";
username = "primalfear";
password = "ersccargill";

resultWindow = "blogNAV";
textWindow = "blogTXT";
errorWindow = "blogERR";

function add(txt, publish){
	return blogger.newPost(appKey, blogid, username, password, txt, publish);
}

function edit(txt, id, publish){
	return blogger.editPost(appKey, id, username, password, txt, publish);
}

function getAll(blogid, numberOfPosts){
	return blogger.getRecentPosts(appKey, blogid, username, password, numberOfPosts)
}

function del(id){
	return blogger.deletePost(appKey, id, username, password, true)
}

function noHTML(txt){
	txt = txt.replace(/<.*?>/g, "");
	txt = txt.replace(/<.*/, "");
	txt = txt.replace(/\n/, "<br>");
	return txt;
}

var result = null;
function displayMessages(){//blogid
	result = getAll(blogid, 20);
	var win = document.getElementById(resultWindow);
	if(!result.length){
		retstr = "No Messages available";
	}
	else{
		var retstr = "<br>";
		
		for(i=0;i<result.length;i++){
			var dt = result[i].dateCreated;
			retstr += "<div id='blog" + i + "'><b>" + dt.getUTCDate() + "-" + dt.getUTCMonth() + "-" + 
						 dt.getUTCFullYear() +
						 " " + doZero(dt.getHours()) + ":" + doZero(dt.getMinutes()) + "</b><br> " + 
						 noHTML(result[i].content.substr(0, 200)) + ((result[i].content.length > 200) ? "..." : "") + "<br><br><a href='javascript:loadMessage(" + i + ")' target='_top' class='button'>Edit</a> <a href='javascript:delMessage(" + i + ")' target='_top' class='button'>Delete</a><br><br></div>";
		}
	}
	win.innerHTML = retstr;
	cancel();
}

function loadMessage(id){
	if(!result) return false;
	var doc = document.getElementById(textWindow);
	doc.value = result[id].content;
	doc.loaded = result[id].postid;
}

function delMessage(id){
	if(!result) return false;
	var res = del(result[id].postid);
	if(res) displayMessages();
	cancel();
}

function save(publish){
	var doc = document.getElementById(textWindow);
	if(doc.value != ""){
		var txt = doc.value.replace(/</g, '\x3c')
		txt = txt.replace(/>/g, '\x3e')
		if(doc.loaded){
			var res = edit(txt, doc.loaded, publish);
		}
		else{
			var res = add(txt, publish);
		}
		if(res){
			displayMessages();
		}

		(publish) ? doc.changed = false : doc.changed = true;
	}
	else{
		alert("You haven't typed anything!");
	}
	cancel();
}

function cancel(){
	var doc = document.getElementById(textWindow);
	doc.loaded = null
	doc.value = "";
}

function doZero(nr) {
	nr = String("0" + nr);
	return nr.substr(nr.length-2, 2);
}

function publish(){
	var doc = document.getElementById(textWindow);
	if(!result || !result.length || !doc.changed) return;
	doc.changed = false;
	var res = edit(result[0].content, result[0].postid, true);
	cancel();
}

function showBLOG(){
	window.open("bloggertest.php", "blogger","height=480,width=730,status=no,toolbar=no,menubar=no,location=no,resizable,scrollbars")
}
