// Empfehlung für die Breiteneinstellung des Programms an den User.
iScreen = top.innerWidth;

// Wechselt ein Bild
function picChanger(picId, picName) {
	document.getElementById(picId).src = picName;
} 

// Öffnet den Wysiwyg CKedit.
function openEditor(id) {
	var elId = 'text_' + id;
	var subjId = 'subject_new_' + id;
	if (id == 0){
		var	subjHtml = "";
		var elHtml = "Bitte hier die Meldung eingeben.";
	} else {
		var	subjHtml = document.getElementById('subject_' + id).innerHTML;
		var elHtml = document.getElementById(elId).innerHTML;
	}
	if (id == 0) {
		var remId = -99999999999;
	} else {
		var remId = id * -1;
	}
	document.getElementById(elId).innerHTML = "<input type='hidden' id='text_hidden_" + id + 
		"' value='" + elHtml + "' /><textarea id='texteditor_" + id + "'>" + elHtml + 
		"</textarea><br /><br /><input type='button' value='Speichern' onclick=\"closeEditor(" + id + 
		");\" /><input type='button' style='margin-left: 10px;' value='Abbrechen' onclick=\"closeEditor(" + remId + 
		");\" />";
	var sRanks = document.getElementById('ranks').value;
	var aRanks = sRanks.split(';');
	var sOptions = '';
	for (var i = 0; i < aRanks.length; i++) {
		var aRank = aRanks[i].split('->');
		sOptions = '<option title="' + aRank[2] + '" value="' + aRank[0] + '">' + aRank[1] + '</option>' + sOptions;
	}
	document.getElementById(subjId).innerHTML = 
		"<span style='font-size: 1.2em; font-weight: bold;'>" +
			"Titel:" +
		"</span> " +
		"<input style='margin: 24px 32px; width: 240px; height: 16px;' value='" + subjHtml + "' type='text' id='subject_field_" + id + "' />" +
		"<span title='Bitte wähle das Recht welches erforderlich sein soll um den Beitrag anzeigen zu lassen.' style='cursor: help;'>Recht: </span>" +
		"<select name='rank' id='rank_" + id + "'>" +
			sOptions +
		"</select>"
	;

	CKEDITOR.replace("texteditor_" + id, {
		toolbar :
        [
			['Source','-','Undo','Redo','-'],
			['Subscript','Superscript'],
			['NumberedList','BulletedList','-','Outdent','Indent','Blockquote'],
			['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'],
			['BidiLtr', 'BidiRtl'],
			['Link','Unlink','Anchor','Image','Table','HorizontalRule','Smiley','SpecialChar','PageBreak','Iframe'],
			'/',
			['Styles','Format','Font','FontSize','-','Bold','Italic','Underline','Strike'],
			['TextColor','BGColor'],
			['Maximize', 'ShowBlocks','Find','Replace','-','SelectAll','RemoveFormat']
		],
		uiColor: '#AABBBB'
	});
}

// Schließt den Editor und speichert die Daten.  
// Wird eine 0 übergeben, wird ein neuer Datensatz gespeichert.
// Wenn als id ein negativer Wert übergeben wird, werden die Daten nicht gespeichert (Abbruch).
// Damit die Funktion aber weiß welcher Editor geschlossen werden soll, muss die id als negativer Parameter übergeben werden.
function closeEditor(id) {
	if (id >= 0){
		var rank = 7;
		for (var i = 0; i < document.getElementById('rank_' + id).length; i++) {
			if (document.getElementById('rank_' + id).options[i].selected == true) {
				rank = document.getElementById('rank_' + id).options[i].value;
			}
		}
		var edit = 'texteditor_' + id;
		var subj = 'subject_field_' + id;
		var sText = CKEDITOR.instances[edit].getData();
		var sSubject = document.getElementById(subj).value;
		xajax_saveNews(sText, sSubject, id, rank);
	} else {
		id = id * -1;
		if (id == 99999999999) {
			id = 0;
			document.getElementById('text_' + id).innerHTML = "<br /><a title='Eintrag hinzufügen.' class='edit' id='editbutton_0' onclick=\"openEditor(0); this.style.display = 'none';\">Neuer Eintrag...</a>";
		} else {
			document.getElementById('text_' + id).innerHTML = document.getElementById('text_hidden_' + id).value;
		}
		var edit = 'texteditor_' + id;
	}
	document.getElementById('subject_new_' + id).innerHTML = '';
	document.getElementById('editbutton_' + id).style.display = '';
	var instance = CKEDITOR.instances[edit];
    if (instance) {
        CKEDITOR.remove(instance);
    }
}

// Löscht Daten, welche wird durch die nächste Funktion bestimmt dessen Name übergeben wird.
function rm(sFunc, id) {
	if (confirm("Soll der Eintrag wirklich gelöscht werden?")){
		window[sFunc](id);
	}
}

// Schickt eine Abfrage per Enter von Tastaratur ab.
var sParams = '';
function submitByReturn(oEvent, sUrl, sParams) {
	if (!oEvent) oEvent = window.event;
	if (navigator.appName == "Microsoft Internet Explorer"){
		if (oEvent.keyCode == 13){
			location.href = sUrl + sParams;
		}
	} else if (navigator.appName != "Microsoft Internet Explorer"){
		if (oEvent.which == 13){
			location.href = sUrl + sParams;
		}
	}
}

// Nützliche Funktion um verschiedene Elemente der selben Klasse zu erhalten.
var oNode = null;
var sTag = null;
function getElementsByClass(sClass, oNode, sTag) {
	var aClassElements = new Array();
	if (oNode == null)
		oNode = document;
	if (sTag == null)
		sTag = '*';
	var aElements = oNode.getElementsByTagName(sTag);
	var iElementsLength = aElements.length;
	var oPattern = new RegExp("(^|\\s)"+sClass+"(\\s|$)");
	for (i = 0, j = 0; i < iElementsLength; i++) {
		if (oPattern.test(aElements[i].className) ) {
			aClassElements[j] = aElements[i];
			j++;
		}
	}
	
	return aClassElements;
}

