/**
* Baut die einzubindenden Formulare auf
*/
function buildForm(formname, formfields, submitvalue) {
	if (!document.forms[formname]) {
		var i;
		document.writeln('<form name="' + formname + '" onsubmit="return send' + formname + '(\'' + formname + '\')">');
		for (i = 0; i <= formfields.length; i++) {
			document.writeln('<input type="hidden" name="' + formfields[i] + '" />');
		}
		document.writeln('<input style="width: 100%;" type="submit" value="' + submitvalue + '"/>');
		document.writeln('</form>');
	}
}

/**
* Holt den mit der Maus selektierten Text
*/
function getSelectedText() {
	if (!document.selection) {
		Qr = window.getSelection(); // not IE
	}
	else {
		Qr = (document.selection && document.selection.type && document.selection.type == 'Text' ? document.selection.createRange().text : ""); // is IE
	}
	return String(Qr);
}

/**
* Sendet einen Pingback an den Bloggernetz xmlrpc Server
*/
function sendBloggernetz(formname) {
	return sendExtendedPing(formname, 'http://xmlrpc.bloggernetz.de/RPC2');
}

/**
* Sendet einen Ping an den Bloggerei xmlrpc Server
*/
function sendBloggerei(formname) {
	return sendExtendedPing(formname, 'http://rpc.bloggerei.de/ping/');
}

/**
* Sendet einen Ping an den Wordblog xmlrpc Server
*/
function sendWordblog(formname) {
	return sendExtendedPing(formname, 'http://ping.wordblog.de/');
}

/**
* Sendet einen Ping an den BlogPingR xmlrpc Server
*/
function sendBlogPingR(formname) {
	return sendExtendedPing(formname, 'http://blogpingr.de/ping/rpc2');
}

/**
* Extended Ping Funktion
*/
function sendExtendedPing(formname, server) {
	if (formname == '') {
		alert("Kein Formname übergeben;");
		return false;
	}
	if (server == '') {
		alert("Kein XML-RPC Endpunkt übergeben;");
		return false;
	}
	// Formular-Attribute belegen
	document.forms[formname].action = 'http://www.esmussdoch.de/pingback/extendedpingclient.php5';
	document.forms[formname].method = 'post';
	document.forms[formname].target = 'new_window';
	document.forms[formname].server_url.value = server;
	
	/**
	* Den Seitentitel am Doppelpunkt trennen und nur den ersten Teil,
	* den Blognamen übergeben.
	*/
	var phrase = document.title.split(": ");
	document.forms[formname].blog_name.value = phrase[0];

	// Quell-URL ermitteln und zuweisen
	document.forms[formname].elements['sourceurl'].value = document.URL;

	// Tags des Beitrags erfragen
	var PostTags = getSelectedText();
	PostTags = prompt('Weitere Tags eingeben:', PostTags);
	if (!PostTags) {
		return false;
	}
	document.forms[formname].elements['tags'].value = PostTags;
		// Feed URL holen
	var FeedUrl = '';
	if ( document.getElementById("main_feed") ) {
		FeedUrl = document.getElementById("main_feed").href;
	}
	// Ist die FeedURL leer eine Eingabe erbitten
	if (FeedUrl == '') {
		FeedUrl = prompt('Bitte Feed-URL eingeben', 'http://');
		if (!FeedUrl) {
			return false;
		}
	}
	document.forms[formname].elements['feed_url'].value = FeedUrl;

	var AlertString = '';
	AlertString += "Blog-Name:\r\n" + document.forms[formname].elements['blog_name'].value;
	AlertString += "\r\n";
	AlertString += "Quell-Beitrag:\r\n" + document.forms[formname].elements['sourceurl'].value;
	AlertString += "\r\n";
	AlertString += "Tags:\r\n" + document.forms[formname].elements['tags'].value;
	AlertString += "\r\n";
	AlertString += "Feed-URL:\r\n" + FeedUrl;
	alert(AlertString);

	// Bestätigung erbitten
	var Returncode = true;
	if ( confirm("Den Ping so verschicken?") == false ) {
		Returncode = false;
	}

	// Neues Fenster öffnen
	if (Returncode == true) {
		myWindow = window.open(document.URL, document.forms[formname].target, "width=400,height=400,left=100,top=200,resizable=yes,scrollbars=yes");
		myWindow.focus();
	}
	return Returncode;
}

/**
* Simple Ping Funktion
*/
function sendSimplePing(formname, server) {
	if (formname == '') {
		alert("Kein Formname übergeben;");
		return false;
	}
	if (server == '') {
		alert("Kein XML-RPC Endpunkt übergeben;");
		return false;
	}
	// Formular-Attribute belegen
	document.forms[formname].action = 'http://www.esmussdoch.de/pingback/simplepingclient.php5';
	document.forms[formname].method = 'post';
	document.forms[formname].target = 'new_window';
	document.forms[formname].server_url.value = server;
	
	/**
	* Den Seitentitel am Doppelpunkt trennen und nur den ersten Teil,
	* den Blognamen übergeben.
	*/
	var phrase = document.title.split(": ");
	document.forms[formname].blog_name.value = phrase[0];

	var AlertString = '';
	AlertString += "Blog-Name:\r\n" + document.forms[formname].elements['blog_name'].value;
	AlertString += "\r\n";
	AlertString += "Quell-Beitrag:\r\n" + document.forms[formname].elements['sourceurl'].value;
	alert(AlertString);

	// Bestätigung erbitten
	var Returncode = true;
	if ( confirm("Den Ping so verschicken?") == false ) {
		Returncode = false;
	}

	// Neues Fenster öffnen
	if (Returncode == true) {
		myWindow = window.open(document.URL, document.forms[formname].target, "width=400,height=400,left=100,top=200,resizable=yes,scrollbars=yes");
		myWindow.focus();
	}
	return Returncode;
}


/**
* Sendet einen Pingback zu anderen Blogbeiträgen
*/
function sendPingback(formname) {
	if (formname == '') {
		alert("Kein Formname übergeben;");
		return false;
	}
	// Formular-Attribute belegen
	document.forms[formname].action = 'http://www.esmussdoch.de/pingback/bloggerpingbackclient.php5';
	document.forms[formname].method = 'post';
	document.forms[formname].target = 'new_window';
	
	// Quell-URL ermitteln und zuweisen
	document.forms[formname].elements['sourceurl'].value = document.URL;
	
	// URL erfragen
	var PromptValue = prompt('Bitte URL des Zielbeitrags eingeben', 'http://');
	if (!PromptValue) {
		return false;
	}
	document.forms[formname].elements['target_url'].value = PromptValue;
	alert(document.forms[formname].elements['target_url'].value);
	
	var Returncode = true;
	if ( confirm("Den Pingback verschicken?") == false ) {
		Returncode = false;
	}
	// Neues Fenster öffnen
	if (Returncode == true) {
		myWindow = window.open(document.URL, document.forms[formname].target, "width=400,height=400,left=100,top=200,resizable=yes,scrollbars=yes");
		myWindow.focus();
	}
	return Returncode;
}

/**
* Trackbackskript, sendet einen Trackback
* vom Blogger-Blog zu einem anderen Blogbeitrag
*/
function sendTrackback(formname) {
	if (formname == '') {
		alert("Kein Formname übergeben;");
		return false;
	}
	// URL erfragen
	var PromptValue = prompt('Bitte Trackback URL eingeben', 'http://');
	if (!PromptValue) {
		return false;
	}
	// Formular-Tag
	document.forms[formname].action = PromptValue;
	document.forms[formname].encoding = "application/x-www-form-urlencoded; charset=utf-8";
	document.forms[formname].method = 'POST';
	document.forms[formname].target = 'new_window';

	// Eigene Werte
	var phrase = document.title.split(": ");
	document.forms[formname].blog_name.value = phrase[0];
	document.forms[formname].title.value = phrase[1];
	document.forms[formname].url.value = document.URL;

	// alert(document.forms['trackback'].blog_name.value);
	// alert(document.forms['trackback'].title.value);

	// Text holen und aufbereiten
	var Excerpt = getSelectedText();
	// HTML entfernen
	Excerpt = Excerpt.replace( /<[^<>]+>/g , " ");
	// Mehrere aufeinander folgende Leerzeichen gegen ein einziges ersetzen
	Excerpt = Excerpt.replace(/ +/g, " ");
	// Erstes Leerzeichen entfernen
	Excerpt = Excerpt.replace( /^ /,"");
	// 250 Zeichen-Slice vom Beitrag erstellen und Punkte anhängen
	Excerpt = Excerpt.slice(0, 250) + ' ...';
	// Excerpt ausgeben
	alert(Excerpt);
	// Formularfeld mit Excerpt belegen
	document.forms[formname].excerpt.value = Excerpt;

	// Bestätigung erbitten
	var Returncode = true;
	if ( confirm("Den Trackback so verschicken?") == false ) {
		Returncode = false;
	}

	// Neues Fenster öffnen
	if (Returncode == true) {
		myWindow = window.open(document.URL, document.forms[formname].target, "width=400,height=400,left=100,top=200,resizable=yes");
		myWindow.focus();
	}
	return Returncode;
}
