function addEvent(target, eventType, functionRef, capture) {
	if (typeof target.addEventListener != "undefined") {
		target.addEventListener(eventType, functionRef, capture);
	} else if (typeof target.attachEvent != "undefined") {
		target.attachEvent("on" + eventType, functionRef);
	} else {
		eventType = "on" + eventType;
		if (typeof target[eventType] == "function") {
			var oldListener = target[eventType];
			target[eventType] = function() {
				oldListener();
				return functionRef();
			};
		} else {
			target[eventType] = functionRef;
		}
	}
}
function checkSearch() {
	var sform			= document.getElementById("searchform");
	var s				= document.getElementById('s');
	s.setAttribute('autosave', 'toscho.de');
	s.setAttribute('results', '15');
	var submit			= document.getElementById('searchsubmit');
	sform.onsubmit = function() {
		if ( '' == this.s.value ) {
			alert('Wenn Sie nach nichts suchen, werden Sie nichts finden.');
			s.focus();
			return false;
		}
		return true;
	};
}
addEvent(window, 'load', checkSearch);

function confirm_anonymous_comment() {
	var commentform = document.getElementById("commentform");
	if ( commentform )
	{
		commentform.onsubmit = function()
		{
			if ( '' == this.author.value )
			{
				Check = confirm("Willst du anonym schreiben?");
				if ( Check == false ) 
				{
					return false;
				}
			}
		};
	}
}

addEvent(window, "load", confirm_anonymous_comment);


// http://www.highresolution.info/weblog/entry/skiplinks_best_practices/
var YAML_focusFix = 
{
	init: function() 
	{
		var skipClass = 'skip';

		var userAgent = navigator.userAgent.toLowerCase();
		var is_webkit = userAgent.indexOf('webkit') > -1;
		var is_ie = userAgent.indexOf('msie') > -1;
		var i = 0;
		var links, skiplinks = [];

		if (is_webkit || is_ie) 
		{
			// find skiplinks in modern browsers
			if ( document.getElementsByClassName !== undefined) 
			{
				skiplinks = document.getElementsByClassName(skipClass);

				for (i=0; i<skiplinks.length; i++) 
				{
					this.setTabIndex(skiplinks[ i ]);
				}
			} else {
				// find skiplinks in older browsers ...
				links = document.getElementsByTagName('a');
				for (i=0; i<links.length; i++) 
				{
					var s = links[ i ].getAttribute('href');
					var c = links[ i ].getAttribute('class');
					if (s.length > 1 && c.indexOf(skipClass) != -1 && s.substr(0, 1) == '#' ) 
					{
						this.setTabIndex(links[ i ]); 
					}
				}
			}
		}
	},

	setTabIndex: function( skiplink )
	{
		var target = skiplink.href.substr(skiplink.href.indexOf('#')+1);
		var targetElement = document.getElementById(target);

		if (targetElement !== null) 
		{
			// make element accessible for .focus() method
			targetElement.setAttribute("tabindex", "-1");
			skiplink.setAttribute("onclick", "document.getElementById('"+target+"').focus();"); 
		}
	}
};
YAML_focusFix.init();

//Aus dem Plugin yus_reply
function replyToComment(commentID,author) {
	var inReplyTo='@<a href="#'+commentID+'">'+author+'<\/a>: ';
	var myField;
	if (document.getElementById('comment')
		&& document.getElementById('comment').type == 'textarea')
	{
		myField = document.getElementById('comment');
	}
	else
	{
		return false;
	}
	if (document.selection) {
		myField.focus();
		sel = document.selection.createRange();
		sel.text = inReplyTo;
		myField.focus();
	}
	else if (myField.selectionStart || myField.selectionStart == '0')
	{
		var startPos = myField.selectionStart;
		var endPos = myField.selectionEnd;
		var cursorPos = endPos;
		myField.value = myField.value.substring(0, startPos)
		  + inReplyTo
		  + myField.value.substring(endPos, myField.value.length);
		cursorPos += inReplyTo.length;
		myField.focus();
		myField.selectionStart = cursorPos;
		myField.selectionEnd = cursorPos;
	}
	else
	{
		myField.value += inReplyTo;
		myField.focus();
	}
	return;
}
// ------------ Quicktags ------------------------------------------------------
var edButtons = new Array();
var edLinks = new Array();
var edOpenTags = new Array();
function edButton(id, display, tagStart, tagEnd, tip, open) {
	this.id = id;				// used to name the toolbar button
	this.display = display;		// label on button
	this.tagStart = tagStart; 	// open tag
	this.tagEnd = tagEnd;		// close tag
	this.open = open;			// set to -1 if tag does not need to be closed
}
edButtons[edButtons.length] = new edButton('ed_strong','Stichwort','<strong>','</strong>');
edButtons[edButtons.length] = new edButton('ed_em','Betont','<em>','</em>');
edButtons[edButtons.length] = new edButton('ed_link','Link','','</a>');
edButtons[edButtons.length] = new edButton(
					'ed_block','Zitat','<blockquote><p>','</p></blockquote>');
edButtons[edButtons.length] = new edButton('ed_pre','Inline-Code','<code>','</code>');
edButtons[edButtons.length] = new edButton('ed_ppre','Block-Code','<pre>','</pre>');
edButtons[edButtons.length] = new edButton('ed_smilelight', "\u263A","\u263A",'');
edButtons[edButtons.length] = new edButton('ed_smiledark', "\u263B","\u263B",'');
function edShowButton(button, i) {
	if (button.id == 'ed_block') {
		return '<input type="button" id="' + button.id 
		+ '"onclick="edInsertQuote(edCanvas, ' + i + ');" value="' 
		+ button.display + '">';
	}
	else if (button.id == 'ed_link') {
		return '<input type="button" id="' + button.id 
		+ '"onclick="edInsertLink(edCanvas, ' + i + ');" value="' 
		+ button.display + '">';
	}
	else {
		return '<input type="button" id="' + button.id 
		+ '"onclick="edInsertTag(edCanvas, ' + i + ');" value="' 
		+ button.display + '">';
	}
}
function edToolbar() {
	if ( ! document.getElementById("quicktags") )
	{
		return;
	}
	var htmltext = '';
	for (i = 0; i < edButtons.length; i++) {
		htmltext = htmltext + edShowButton(edButtons[i], i);
	}
	htmltext = htmltext + '<input type="button" id="ed_close" class="disabled"'
			+ ' onclick="edCloseAllTags();" value="Aufr&#228;umen" disabled="disabled">';
	// Muss ein DIV oder eine TD sein, damit der IE es findet!
	document.getElementById("quicktags").innerHTML = htmltext;
}
function dosubmit(mode, url) {
	if(comment_validate()) {
		document.getElementById("commentform").setAttribute("action", url);
		if(mode == 0) {
			if(! (document.getElementById("author") 
				== null || document.forms['commentform'].cauthor == null)) 
			{
				document.getElementById("actualauthor").value 
					= document.getElementById("author").value;
				// hack for ie6
				if(document.getElementById("actualauthor").value == 'undefined') 
				{
					document.forms['commentform'].actualauthor.value 
						= document.forms['commentform'].cauthor.value;
				}
			}
		}
		return true;
	}
	else {
	// @todo Fehlerbehandlung verbessern.
		return false;
	}
}
function edAddTag(button) {
	if (edButtons[button].tagEnd != '') {
		edOpenTags[edOpenTags.length] = button;
		document.getElementById(edButtons[button].id).value = '/' 
			+ document.getElementById(edButtons[button].id).value;
		document.getElementById(edButtons[button].id).className = 'openTag';
		document.getElementById('ed_close').disabled = false;
		document.getElementById('ed_close').className = 'enabled';
	}
}
function edRemoveTag(button) {
	for (i = 0; i < edOpenTags.length; i++) {
		if (edOpenTags[i] == button) 
		{
			edOpenTags.splice(i, 1);
			document.getElementById(edButtons[button].id).value 
				= document.getElementById(edButtons[button].id).value.replace(
					'/', '');
			document.getElementById(edButtons[button].id).className = 'dummy';
			document.getElementById('ed_close').disabled = true;
			document.getElementById('ed_close').className = 'disabled';
		}
	}
}
function edCheckOpenTags(button) {
	var tag = 0;
	for (i = 0; i < edOpenTags.length; i++) {
		if (edOpenTags[i] == button) {
			tag++;
		}
	}
	if (tag > 0) {
		return true; // tag found
	}
	else {
		return false; // tag not found
	}
}
function edCloseAllTags() {
	var count = edOpenTags.length;
	for (o = 0; o < count; o++) {
		edInsertTag(edCanvas, edOpenTags[edOpenTags.length - 1]);
	}
	document.getElementById('ed_close').disabled = true;
	document.getElementById('ed_close').className = 'disabled';
}
function edInsertTag(myField, i) {
	if (!myField) {// Spart den Onload-Handler
		myField = document.getElementById("comment");
	}
	//IE support
	if (document.selection) {
		myField.focus();
		sel = document.selection.createRange();
		if (sel.text.length > 0) {
			sel.text = edButtons[i].tagStart + sel.text + edButtons[i].tagEnd;
		}
		else {
			if (!edCheckOpenTags(i) || edButtons[i].tagEnd == '') {
				sel.text = edButtons[i].tagStart;
				edAddTag(i);
			}
			else {
				sel.text = edButtons[i].tagEnd;
				edRemoveTag(i);
			}
		}
		myField.focus();
	}
	//MOZILLA/NETSCAPE support
	else if (myField.selectionStart || myField.selectionStart == '0') {
		var startPos = myField.selectionStart;
		var endPos = myField.selectionEnd;
		var cursorPos = endPos;
		var scrollTop = myField.scrollTop;
		if (startPos != endPos) {
			myField.value = myField.value.substring(0, startPos)
			              + edButtons[i].tagStart
			              + myField.value.substring(startPos, endPos)
			              + edButtons[i].tagEnd
			              + myField.value.substring(endPos, myField.value.length);
			cursorPos += edButtons[i].tagStart.length + edButtons[i].tagEnd.length;
		}
		else {
			if (!edCheckOpenTags(i) || edButtons[i].tagEnd == '') {
				myField.value = myField.value.substring(0, startPos)
					+ edButtons[i].tagStart
					+ myField.value.substring(endPos, myField.value.length);
				edAddTag(i);
				cursorPos = startPos + edButtons[i].tagStart.length;
			}
			else {
				myField.value = myField.value.substring(0, startPos)
					+ edButtons[i].tagEnd
					+ myField.value.substring(endPos, myField.value.length);
				edRemoveTag(i);
				cursorPos = startPos + edButtons[i].tagEnd.length;
			}
		}
		myField.focus();
		myField.selectionStart = cursorPos;
		myField.selectionEnd = cursorPos;
		myField.scrollTop = scrollTop;
	}
	else {
		if (!edCheckOpenTags(i) || edButtons[i].tagEnd == '') {
			myField.value += edButtons[i].tagStart;
			edAddTag(i);
		}
		else {
			myField.value += edButtons[i].tagEnd;
			edRemoveTag(i);
		}
		myField.focus();
	}
}
function edInsertContent(myField, myValue) {
	//IE support
	if (document.selection) {
		myField.focus();
		sel = document.selection.createRange();
		sel.text = myValue;
		myField.focus();
	}
	//MOZILLA/NETSCAPE support
	else if (myField.selectionStart || myField.selectionStart == '0') {
		var startPos = myField.selectionStart;
		var endPos = myField.selectionEnd;
		myField.value = myField.value.substring(0, startPos)
		              + myValue
                      + myField.value.substring(endPos, myField.value.length);
		myField.focus();
		myField.selectionStart = startPos + myValue.length;
		myField.selectionEnd = startPos + myValue.length;
	} else {
		myField.value += myValue;
		myField.focus();
	}
}
function edInsertLink(myField, i, defaultValue) {
	if (!defaultValue) {
		defaultValue = 'http:/'+'/';
	}
	if (!edCheckOpenTags(i)) {
		var URL = prompt('Bitte geben Sie die URL an', defaultValue);
		if (URL) {
			edButtons[i].tagStart = '<a href="' + URL + '">';
			edInsertTag(myField, i);
		}
	}
	else {
		edInsertTag(myField, i);
	}
}
function edInsertQuote(myField, i, defaultValue) {
	if (!edCheckOpenTags(i)) {
		var cite = prompt('Aus welcher Website zitieren Sie? '
			+ '(Sie können dieses Feld auch leer lassen.)', '');
		if (cite == '') {
			edButtons[i].tagStart = '<blockquote><p>';
			edInsertTag(myField, i);
		}
		else if (cite != null) {
			edButtons[i].tagStart = '<blockquote cite="' + cite + '"><p>';
			edInsertTag(myField, i);
		}
	}
	else {
		edInsertTag(myField, i);
	}
}
edCanvas = document.getElementById("comment");

jQuery(document).ready(edToolbar());
//------------ /Quicktags -----------------------------------------------------

(function(a){a.fn.elastic=function(){var b=["font-family","font-size","font-weight","font-style","font-variant","line-height","letter-spacing","word-spacing","text-indent","text-transform","padding-top","padding-right","padding-bottom","padding-left","border-top-width","border-bottom-width",];
return this.each(function(){var i=a(this);switch(this.nodeName){
case"textarea":case"TEXTAREA":var j=parseInt(i.css("max-height"),10),f=parseInt(i.css("border-left-width"),10)+parseInt(i.css("border-right-width"),10),d={minHeight:i.height(),maxHeight:j>0?j:a(window).height(),width:a.browser.msie?i.width():i.width()-f},g="white-space:pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word;_white-space:pre;display:none",e=function(){c.text(i.val()+"\n ");if(i.height()!=c.height()){if(c.height()==d.maxHeight){i.css({height:c.height(),overflow:"auto"})}else{i.css({height:c.height(),overflow:"hidden"})}}};i.css({resize:"none",overflow:"hidden"});break;case"input":case"INPUT":var h=i.attr("type");if(h!="text"&&h!="password"&&h!="undefined"){return true}
var k=parseInt(i.css("max-width"),10),d={minWidth:i.width(),maxWidth:k>0?k:(i.parent().width()-i.position().left-i.outerWidth()+i.innerWidth())},g="display:none",e=function(){c.text(i.val()+"W ");
if(i.width()!=c.width()){i.width(c.width())}};
break;default:return true}
var c=a('<pre style="'+g+'" />').appendTo("body");a.each(b,function(){c.css(this.toString(),i.css(this.toString()))});a.each(d,function(l,m){c.css(l,m)});i.bind("keypress keyup input",function(){e()});e()})}})(jQuery);
jQuery('#comment,#msg').elastic();
