// Zeigen/Verstecken von Inhalt
// @param: String ID, String ButtonID, String Textversteckt, String Textgezeigt
function hide(id, buttonid, buttontxthide, buttontxtshow)
{
	if ($('#'+id).css('display')=='none')
	{
		$('#'+id).show('normal');
		if (buttonid)
			$('#'+buttonid).html(buttontxthide);
	}
	else
	{
		$('#'+id).hide('normal');
		if (buttonid)
			$('#'+buttonid).html(buttontxtshow);
	}
}

// onReady
$(document).ready(function () 
					{
						layer();
					
						if (typeof(window.comment_form) == 'function')
							comment_form();
						
						if (typeof(window.rate_form) == 'function')
							rate_form();
					});

// Ad-Layer
function layer()
{
	if ( !(document.cookie.indexOf('sou') > -1) && $('#sou').length )
	{
		/*@cc_on @*/
		/*@if (@_jscript_version >= 0.0)
		var width = $('#sou iframe').attr('width');
		$('#sou').css( 'left', (document.body.clientWidth - width - 20) / 2 );
		@else @*/
		var width = $('#sou object').attr('width');
		$('#sou').css( 'left', (window.innerWidth - width - 20) / 2 );
		/*@end @*/
		$('#sou').css('display', 'block');
		var ablauf = new Date();
		var dif = ablauf.getTime() + (3 * 60 * 60 * 1000); // 3 Stunden
		// var dif = ablauf.getTime() + (60 * 1000);
		ablauf.setTime(dif);
		document.cookie = 'sou=true; expires=' + ablauf.toGMTString() + '; path=/;';
		$('#sou').animate( { 'top': '250px' }, 1000 );
	}
}

// neues Kommentar Formular
// @param: Boolean user, String page, Boolean close
function comment_form_helper(user, page, close)
{
	generic_form(user, 'new_comment', 'request=commentform&page='+page+'&close='+close, 
				 '<h3>Neuer Kommentar:</h3><p>Du musst angemeldet sein um einen Kommentar schreiben zu können.</p>');
}

// neues Rate Formular
// @param: Boolean User, String Section, int id, String Url
function rate_form_helper(user, section, id, url)
{
	generic_form(user, 'rate', 'request=rateform&section='+section+'&id='+id+'&url='+url, '<p>Du musst angemeldet sein um bewerten zu können.</p>');
}

// neues allgemeines Formular
// @param: Boolean User, String id, String dataString, String Message
function generic_form(user, id, dataString, message)
{
	if (document.cookie)
		var cookies = document.cookie;
	else
		var cookies = '';
	
	if (cookies.indexOf('hash_1') > -1 && cookies.indexOf('hash_2') > -1)
	{
		$('#'+id).html('<img src="/img/ajax-loader.gif" class="ajaxloader" alt="Inhalt wird mit Ajax geladen" />');
		$.ajax({url: '/ajax.php',
			    data: dataString,
				success: function (data, textStatus)
							{
								$('#'+id).hide().html(data).fadeIn('slow');
							}
				});
	}
	else
		$('#'+id).html('<div class="form">'+message+'</div>');
}

// AJAX: Profil Avatare anfordern
// @param: String von, String bis
function sndReqAva(von, bis) 
{
	$('#avatare').html('<ul>'+
					   '<li class="ajaxloader">'+
					   '<img src="/img/ajax-loader.gif" alt="Inhalt wird mit Ajax geladen" />'+
					   '</li>'+
					   '</ul>');
	$.ajax({url: '/ajax.php',
			data: 'request=avatare&von='+von+'&bis='+bis,
			success: function (data, textStatus)
						{
							$('#avatare').hide().html(data).fadeIn('slow');
						}
			});
}

// AJAX: BBCode X anfordern
// @param: String bbc_id, String ID, String Name
function sndReqBBC(bbc_id, id, name) 
{
	$('.menu').fadeOut();
	$('#'+bbc_id).html('<ul class="menu" style="display:block;">'+
					   '<li>'+
					   '<img src="/img/ajax-loader.gif" class="ajaxloader" alt="Inhalt wird mit Ajax geladen" />'+
					   '</li>'+
					   '</ul>');
	$.ajax({url: '/ajax.php',
			data: 'request=bbc&bbcid='+bbc_id+'&id='+id+'&name='+name,
			success: function (data, textStatus)
						{
							var till = data.indexOf('$%$');
							var bbc_id = data.substring(0, till);
							var text = data.substring(till+3);
							$('#'+bbc_id).html(text);
							$('#a_'+bbc_id).attr({href: 'javascript:hidemenu("menu_'+bbc_id+'")'});
						}
			});
}

// Verstecken der BBCode-Menüs
// @param: String menu_id
function hidemenu(menu_id)
{
	var status = $('#'+menu_id).css('display');
	$('.menu').fadeOut();
	if (status == 'none')
		$('#'+menu_id).fadeIn();
}

// Hilfsfunktion, für das Einfügen
// @param: String linker Tag, String rechter Tag, String Form-ID, String Textfield-Name, String bbc_id
function inserthelper(aTag, eTag, formid, textname, bbc_id)
{
	insert(aTag, eTag, formid, textname);
	$('#menu_'+bbc_id).fadeOut();
}

// Einfügen von BBCode in Textfelder
// @param: String linker Tag, String rechter Tag, String Form-ID, String Textfield-Name
function insert(aTag, eTag, formid, textname) 
{
	var input = document.getElementById(formid).elements[textname];
	input.focus();
	/* für Internet Explorer */
	if(typeof document.selection != 'undefined') 
	{
		/* Einfügen des Formatierungscodes */
		var range = document.selection.createRange();
		var insText = range.text;
		range.text = aTag + insText + eTag;
		/* Anpassen der Cursorposition */
		range = document.selection.createRange();
		if (insText.length == 0) 
		{
			range.move('character', -eTag.length);
		} 
		else 
		{
			range.moveStart('character', aTag.length + insText.length + eTag.length);      
		}
		range.select();
	}
	/* für neuere auf Gecko basierende Browser */
	else if(typeof input.selectionStart != 'undefined')
	{
		/* Einfügen des Formatierungscodes */
		var start = input.selectionStart;
		var end = input.selectionEnd;
		var insText = input.value.substring(start, end);
		input.value = input.value.substr(0, start) + aTag + insText + eTag + input.value.substr(end);
		/* Anpassen der Cursorposition */
		var pos;
		if (insText.length == 0) 
		{
			pos = start + aTag.length;
		}
		else 
		{
			pos = start + aTag.length + insText.length + eTag.length;
		}
		input.selectionStart = pos;
		input.selectionEnd = pos;
	}
	/* für die übrigen Browser */
	else
	{
		/* Abfrage der Einfügeposition */
		var pos;
		var re = new RegExp('^[0-9]{0,3}$');
		while(!re.test(pos))
		{
			pos = prompt("Einfügen an Position (0.." + input.value.length + "):", "0");
		}
		if(pos > input.value.length) 
		{
			pos = input.value.length;
		}
		/* Einfügen des Formatierungscodes */
		var insText = prompt("Bitte geben Sie den zu formatierenden Text ein:");
		input.value = input.value.substr(0, pos) + aTag + insText + eTag + input.value.substr(pos);
	}
}