/**
 * library.js
 *
 * History:
 * - 2009-02-27 ck: hinzufügen der Methoden hideWindow(), insertProposal(),
 *					searchSuggestions() und searchSuggesions_callback()
 * - 2009-06-03 ah: Funktion editComment() hinzugefügt
 */

function popupNormal(sUrl, sWidth, sHeight)
{
	var popup;

	popup = window.open(sUrl, 'PressRelease','toolbar=yes,location=no,directories=no,status=no,menubar=no,scrollbars=yes,screenX=10,screenY=10,resizable=yes,width=' + sWidth + ',height=' + sHeight, true);
	if(navigator.appName.indexOf('Netscape') != -1)
		popup.focus();
}

function popupPicture(sUrl, sWidth, sHeight)
{
	var popup;
	//var sWidth=sWidth+10;
	//var sHeight=sHeight+10;

	popup = window.open(sUrl, 'PictureViewer','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,screenX=10,screenY=10,resizable=yes,width=' + sWidth + ',height=' + sHeight, true);
	if(navigator.appName.indexOf('Netscape') != -1)
		popup.focus();
}

function printpage() {
	if (window.print)
		window.print();
	else
		alert("Leider unterstützt Ihr Browser diese Funktion nicht. Bitte aktivieren Sie die Druckfunktion Ihres Browsers manuell.");
}

/*
 * Blendet das div mit der gegebenen ID aus
 *
 * string text			ID des auszublendenden Elements
 */
function hideWindow(element) {
	document.getElementById(element).style.display = "none";
}

function showWindow(element) {
	document.getElementById(element).style.display = "block";
}

/*
 * fügt einen vorgeschlagenen Begriff in ein Textfeld ein
 *
 * string idInput 		ID des Textelds, in das der Begriff eingefügt werden soll
 * string idResults		ID des Divs für die Suchergebnisse
 * string proposal		Inhalt, der in das Textfeld eingefügt werden soll
 * string submitForm	submit sendet das Formular nach dem Einfügen des Begriffs ab
 *						nosubmit schreibt den Begriff nur in das Eingabefeld, sendet das Formular nicht ab
 */
function insertProposal(idInput, idResults, proposal, submitForm) {
	document.getElementById(idInput).value = proposal;
	hideWindow(idResults);
	document.getElementById(idInput).focus();
	if(submitForm == 'submit') {
		document.suche.submit();
	}
	return false;
}

/*
 * Funktion zur Suche der Suchvorschläge
 *
 * string text			Text, nach dem gesucht wird
 * string idInput		ID des Texteingabefelds
 * string idResults		ID des Divs für die Suchergebnisse
 * string submitForm	submit sendet das Formular nach dem Anklicken des Begriffs ab
 *						nosubmit schreibt den Begriff nur in das Eingabefeld, sendet das Formular nicht ab
 */
function searchSuggestions(text, idInput, idResults, submitForm) {
	// reset des Timers zum Ausblenden des Vorschlagsfensters
	if (typeof(timeout_ajaxnamesearch) != 'undefined')
		window.clearTimeout(timeout_ajaxnamesearch);

	// bereinigen des Strings
	text 		= text.replace(/^\s+|\s+$/g,"");

	// unter 3 Zeichen wird nicht gesucht
	if (text.length < 3) {
		hideWindow(idResults);
		return;
	}

	// Aufruf der PHP-Funktion
	x_searchSuggestions(text, idInput, idResults, submitForm, searchSuggestions_callback);

	// setzen des Timers zum Ausblenden des Vorschlagfensters
	timeout_ajaxnamesearch = window.setTimeout('hideWindow("' + idResults + '")', 10000);
}

/*
 * Sajax Callback Function für searchSuggestions()
 *
 * erg					Ergebnis (JSON)
 * string idResults		ID des Elements, in den die Ergebnisse angezeigt werden sollen
 */
function searchSuggestions_callback(erg)
{
	erg = eval("(" + erg + ")");

	searchSuggestionsDiv = document.getElementById(erg.idResults);

	// Abbruch, wenn das ErgebnisDiv nicht gefunden wird
	if (!searchSuggestionsDiv)
		return;

	// Ausblenden des ErgebnisDivs, wenn keine Ergebnisse vorliegen
	if (erg.content == "") {
		searchSuggestionsDiv.style.display = "none";
	// einblenden des ErgebnisDivs und reinschreiben der Suchergebnisse
	} else {
		searchSuggestionsDiv.style.display = "block";
		searchSuggestionsDiv.innerHTML = erg.content;
	}
}

/* 
 * Die Funktion macht einen Bereich sichtbar.
 * 
 * @param int idCommented Id des Fremdkeys
 * @param int type Typ des Kommentars
 * @param int motherid Mutterid
 */
function addComment(idCommented, type, motherid)
{
	var div = document.getElementById('comment_'+idCommented+'_'+type+'_'+motherid);
	
	if (div.style.display == 'none') {
		div.style.display = '';
	} else {
		div.style.display = 'none';
	}
}

/*
 * Map24
 */
function map24_removeDefaultValues(){
	if (document.link2map24.s.value == 'Adresse') document.link2map24.s.value = '';
}

/* 
 * Die Funktion setzt die Ratingsterne bis zu einem gewissen Level.
 * 
 * @param int value Wert
 * @param int idCommented
 * @param int type Typ
 */
function setRating(value, idRated, type)
{
	// Alle Elemente holen
	var votes = document.getElementsByName('votes_' + idRated + '_' + type);
	value--;
	
	// Sicherheitsabfrage
	if (value < 0) {
		value = 0;
	} else if (value >= votes.length) {
		value = votes.length-1;
	}
	
	// Über die Sterne iterieren
	for (var i=0; i<votes.length; i++) {
		if (i <= value) {
			votes[i].src = '/cms/styles/default/img/rating_star_black.gif';
		} else {
			votes[i].src = '/cms/styles/default/img/rating_star_silver.gif';
		}
	}
	
	// Wert zum Voten noch reinschreiben
	document.getElementsByName('rating_' + idRated + '_' + type)[0].value = value;
	
	// Text Ausgeben
	var text = new Array('Öde!', 'Nicht besonders!', 'Mittelmäßig!', 'Sehenswert!', 'Genialst!');
	document.getElementById('text_' + idRated + '_' + type).innerHTML = text[value];
	
}

/* 
 * Die Funktion setzt die Ratingsterne bis zu einem gewissen Level.
 * 
 * @param int value Wert
 * @param int idCommented
 * @param int type Typ
 */
function setRating_answiakans(value, idRated, type)
{
	// Alle Elemente holen
	var votes = document.getElementsByName('votes_' + idRated + '_' + type);
	value--;
	
	// Sicherheitsabfrage
	if (value < 0) {
		value = 0;
	} else if (value >= votes.length) {
		value = votes.length-1;
	}
	
	// Über die Sterne iterieren
	for (var i=0; i<votes.length; i++) {
		if (i <= value) {
			votes[i].src = '/cms/styles/default/img/rating_star_black.gif';
		} else {
			votes[i].src = '/cms/styles/default/img/rating_star_silver.gif';
		}
	}
	
	// Wert zum Voten noch reinschreiben
	document.getElementsByName('rating_' + idRated + '_' + type)[0].value = value;
	
	// Text Ausgeben
	var text = new Array('1 Stimme', '2 Stimmen', '3 Stimmen', '4 Stimmen', '5 Stimmen');
	document.getElementById('text_' + idRated + '_' + type).innerHTML = text[value];
	
}

/*
 * Setzt die Ratingsterne auf den Anfang zurück.
 * 
 * @param int numresults Anzahl an vollen Sternen
 * @param int rating Ergebnis aus dem Rating
 * @param int idRated
 * @param int type Typ
 */
function resetRating(numresults, rating, idRated, type)
{
	var votes = document.getElementsByName('votes_' + idRated + '_' + type);
	
	// Löschen der Sterne (1. Stern bleibt voll)
	for (var i=0; i<votes.length; i++) {
		if (i < rating) {
			votes[i].src = '/cms/styles/default/img/rating_star_black.gif';
		} else {
			votes[i].src = '/cms/styles/default/img/rating_star_silver.gif';
		}
	}
	
	// Text löschen
	document.getElementById('text_' + idRated + '_' + type).innerHTML = numresults + ' Ratings';
}