var texte = new Array;
var request = false;

//Uhr
var now = new Date();
var h = new String();
var min = new String();
var sec = new String();

var borderInvalid = null;
var borderValid = null;
var backgroundInvalid = null;
var backgroundValid = null;

var allowed_img_types = new Array();

function setVariables(borderColorValid, backgroundColorValid, borderColorInvalid, backgroundColorInvalid, allow_gif, allow_jpg, allow_png) {
	borderInvalid = borderColorInvalid; 
	borderValid = borderColorValid;
	backgroundInvalid = backgroundColorInvalid;
	backgroundValid = backgroundColorValid;	
	allowed_img_types.push(allow_gif);
	allowed_img_types.push(allow_jpg);
	allowed_img_types.push(allow_png);	
}

function colorValid(name, num) {
	if (num == null) {
		num = 0;
	}
	
	document.getElementsByName(name)[num].style.borderColor = borderValid;
	document.getElementsByName(name)[num].style.backgroundColor = backgroundValid;	
}

function colorInvalid(name, num) {
	if (num == null) {
		num = 0;
	}
	
	document.getElementsByName(name)[num].style.borderColor = borderInvalid;
	document.getElementsByName(name)[num].style.backgroundColor = backgroundInvalid;	
}

function optionalString(name, num) {
	if (num == null) {
		num = 0;
	}	
	
  if (document.getElementsByName(name)[num].value == "") {
  	colorValid(name, num);	 	
  }
}

function optionalSelect(name, num) {
	if (num == null) {
		num = 0;
	}
	
  if (document.getElementsByName(name)[num].options[0].selected) {
  	colorValid(name, num);	 	
  }
}

function getHeight() {
	var nav = document.getElementById('Navigation');
	var main = document.getElementById('Main');
	
	if (nav.offsetHeight < main.offsetHeight) {
		nav.style.height = main.offsetHeight - 2 +'px';
	} else {
		main.style.height = nav.offsetHeight - 2 +'px';
	}
}

function clock() {
	if (document.getElementById) {
		h = "" + now.getHours();
		min = "" + now.getMinutes();
		sec = "" + now.getSeconds();
		if (h.length == 1) h = "0" + now.getHours();
		if (min.length == 1) min = "0" + now.getMinutes();
		if (sec.length == 1) sec = "0" + now.getSeconds();
		document.getElementById("zeit").firstChild.nodeValue = " " + h + ":" + min + ":" + sec;
		now.setSeconds(now.getSeconds() + 1);
		window.setTimeout("clock();", 1000);
	}
}

// *******************************************************
// BB CODE ***********************************************
// *******************************************************
function setfocus(path) {
 path.focus();
}

var selectedText = "";
var AddTxt = "";

function AddText(NewCode, path) {
 	if (path.createTextRange && path.caretPos) {
 		var caretPos = path.caretPos;
  	caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? NewCode + ' ' : NewCode;
 	} else {
 		path.value += NewCode;
	}

	AddTxt = "";
 	setfocus(path);
}

function bbcode(form_id, element_id, bbcode, prompttext, sprache) {
	getTexte(sprache, 'functions.js');	
	
 	var theform = document.getElementById(form_id);
 	var path = document.getElementById(element_id);

	setfocus(path);

  if (selectedText) var dtext = selectedText;
  else var dtext = prompttext;
  inserttext = prompt(texte['TEXT_INSERT_TEXT_BBCODE']+':'+"\n["+bbcode+"]xxx[/"+bbcode+"]",dtext);
  if ((inserttext != null) && (inserttext != "")) {
   	AddTxt = "["+bbcode+"]"+inserttext+"[/"+bbcode+"] ";
	  AddText(AddTxt, path);
  }
  setfocus(path);
}

function fontformat(theform, path, thevalue, thename, thetype, sprache) {
	getTexte(sprache, 'functions.js');		
	
 	setfocus(path);
  if (thevalue != 0) {
   	if (selectedText) var dtext = selectedText;
   	else var dtext="";
   	inserttext = prompt(texte['TEXT_INSERT_TEXT_BBCODE']+" - "+thename+":", dtext);
   	if ((inserttext != null) && (inserttext != "")) {
	 		AddTxt = "["+thetype+"="+thevalue+"]"+inserttext+"[/"+thetype+"] ";
   		AddText(AddTxt, path);
   	}
  }
 	theform.sizeselect.selectedIndex = 0;
 	theform.colorselect.selectedIndex = 0;
 	setfocus(path);
}

function namedlink(element_id, thetype, sprache) {
	getTexte(sprache, 'functions.js');		
	
 	var path = document.getElementById(element_id);

 	if (selectedText) {
 		var dtext = selectedText;
 	} else {
 		var dtext = "";
 	}
	linktext = prompt(texte['TEXT_INSERT_LINK']+':', dtext);
	var prompttext;
	if (thetype == "URL") {
		prompt_text = texte['TEXT_INSERT_FULL_LINK']+':';
		prompt_contents = "http://";
	} else {
		prompt_text = link_email_prompt;
		prompt_contents = "";
	}
	linkurl = prompt(prompt_text, prompt_contents);
	if ((linkurl != null) && (linkurl != "")) {
		if ((linktext != null) && (linktext != "")) {
			AddTxt = "["+thetype+"="+linkurl+"]"+linktext+"[/"+thetype+"] ";
			AddText(AddTxt, path);
		} else {
			AddTxt = "["+thetype+"]"+linkurl+"[/"+thetype+"] ";
			AddText(AddTxt, path);
		}
	}
}
// *******************************************************
// ENDE BB CODE ******************************************
// *******************************************************


//Bilder upload +1
function clone_picture(sprache) {
	getTexte(sprache, 'functions.js');	
	
	var clone_me = '';
	var num = 1;

	num = document.getElementsByName('picture[]').length + 1;

	//ID hochzählen
	document.getElementById('bilder_path_1').id = 'bilder_path_'+num;
  document.getElementById('bilder_title_1').id = 'bilder_title_'+num;
  document.getElementById('bilder_source_1').id = 'bilder_source_'+num;
  document.getElementById('bilder_delete_1').id = 'bilder_delete_'+num;

  //Bezeichnung ändern
	document.getElementById('bilder_path_'+num).firstChild.nextSibling.firstChild.nodeValue = num+'. '+texte['TEXT_PICTURE']+':';
	document.getElementById('bilder_title_'+num).firstChild.nextSibling.firstChild.nodeValue = num+'. '+texte['TEXT_DESCRIPTION']+':';
	document.getElementById('bilder_source_'+num).firstChild.nextSibling.firstChild.nodeValue = num+'. '+texte['TEXT_SOURCE']+':';
	document.getElementById('bilder_delete_'+num).firstChild.nextSibling.firstChild.nodeValue = num+'. '+texte['TEXT_DELETE']+':';

	//1. Knoten clonen
	clone_me = document.getElementById('bilder_path_'+num).cloneNode(true);
  document.getElementById('bilder_path_'+num).parentNode.insertBefore(clone_me, document.getElementById('submit'));

	clone_me = document.getElementById('bilder_title_'+num).cloneNode(true);
  document.getElementById('bilder_title_'+num).parentNode.insertBefore(clone_me, document.getElementById('submit'));

	clone_me = document.getElementById('bilder_source_'+num).cloneNode(true);
  document.getElementById('bilder_source_'+num).parentNode.insertBefore(clone_me, document.getElementById('submit'));

	clone_me = document.getElementById('bilder_delete_'+num).cloneNode(true);
  document.getElementById('bilder_delete_'+num).parentNode.insertBefore(clone_me, document.getElementById('submit'));

	//ID wieder auf 1 setzen
	document.getElementById('bilder_path_'+num).id = 'bilder_path_1';
  document.getElementById('bilder_title_'+num).id = 'bilder_title_1';
	document.getElementById('bilder_source_'+num).id = 'bilder_source_1';
  document.getElementById('bilder_delete_'+num).id = 'bilder_delete_1';

  //Bezeichnung wieder auf 1 setzen
	document.getElementById('bilder_path_1').firstChild.nextSibling.firstChild.nodeValue = '1. '+texte['TEXT_PICTURE']+':';
	document.getElementById('bilder_title_1').firstChild.nextSibling.firstChild.nodeValue = '1. '+texte['TEXT_DESCRIPTION']+':';
	document.getElementById('bilder_source_1').firstChild.nextSibling.firstChild.nodeValue = '1. '+texte['TEXT_SOURCE']+':';
	document.getElementById('bilder_delete_1').firstChild.nextSibling.firstChild.nodeValue = '1. '+texte['TEXT_DELETE']+':';

	//Inhalt löschen
	document.getElementsByName('picture[]')[num-1].value = '';
  document.getElementsByName('title[]')[num-1].value = '';
  document.getElementsByName('source[]')[num-1].value = '';
  document.getElementsByName('delete[]')[num-1].checked = false;

  //onchange ändern
  document.getElementsByName('picture[]')[num-1].onchange = function () { isImg("picture[]", sprache, num-1); }
  document.getElementsByName('picture[]')[num-1].style.backgroundColor = "";	
  document.getElementsByName('picture[]')[num-1].style.borderColor = "";	  
  document.getElementsByName('title[]')[num-1].onchange = function () { isEmpty("title[]", num-1); }
  document.getElementsByName('title[]')[num-1].style.backgroundColor = "";	
  document.getElementsByName('title[]')[num-1].style.borderColor = "";	
  document.getElementsByName('source[]')[num-1].onchange = function () { colorValid("source[]", num-1); }
  document.getElementsByName('source[]')[num-1].style.backgroundColor = "";	
  document.getElementsByName('source[]')[num-1].style.borderColor = "";	    
  
  //Seitenhöhe anpassen
	getHeight();
}

//externe Links +1
function clone_ext(sprache) {
	getTexte(sprache, 'functions.js');	
	
	var clone_me = '';
	var num = 1;
	var num_2 = 2;

	num = document.getElementsByName('ext_url[]').length + 1;

	//ID hochzählen
	document.getElementById('ext_link_1').id = 'ext_link_'+num;
  document.getElementById('ext_text_1').id = 'ext_text_'+num;

  //Bezeichnung ändern
	document.getElementById('ext_link_'+num).firstChild.nextSibling.firstChild.nodeValue = num+'. '+texte['TEXT_EXTERNAL_LINK']+':';
	document.getElementById('ext_text_'+num).firstChild.nextSibling.firstChild.nodeValue = num+'. '+texte['TEXT_DESCRIPTION']+':';

	//1. Knoten clonen
	clone_me = document.getElementById('ext_link_'+num).cloneNode(true);
  document.getElementById('ext_link_'+num).parentNode.insertBefore(clone_me, document.getElementById('bilder_path_1'));

	clone_me = document.getElementById('ext_text_'+num).cloneNode(true);
  document.getElementById('ext_text_'+num).parentNode.insertBefore(clone_me, document.getElementById('bilder_path_1'));

	//ID wieder auf 1 setzen
	document.getElementById('ext_link_'+num).id = 'ext_link_1';
  document.getElementById('ext_text_'+num).id = 'ext_text_1';
  
  //Bezeichnung wieder auf 1 setzen
	document.getElementById('ext_link_1').firstChild.nextSibling.firstChild.nodeValue = '1. '+texte['TEXT_EXTERNAL_LINK']+':';
	document.getElementById('ext_text_1').firstChild.nextSibling.firstChild.nodeValue = '1. '+texte['TEXT_DESCRIPTION']+':';

	//Inhalt löschen
	document.getElementsByName('ext_url[]')[num-1].value = '';
  document.getElementsByName('ext_name[]')[num-1].value = '';

  //onchange ändern
  document.getElementsByName('ext_url[]')[num-1].onchange = function () { isUrl("ext_url[]", num-1); }
  document.getElementsByName('ext_url[]')[num-1].style.backgroundColor = "";	
  document.getElementsByName('ext_url[]')[num-1].style.borderColor = "";	  
  document.getElementsByName('ext_name[]')[num-1].onchange = function () { isEmpty("ext_name[]", num-1); }
  document.getElementsByName('ext_name[]')[num-1].style.backgroundColor = "";	
  document.getElementsByName('ext_name[]')[num-1].style.borderColor = "";	
  
	//Seitenhöhe anpassen
	getHeight();
}

function getImgType(name, num) {
	if (num == null) {
		num = 0;
	}	  	
  var pos = document.getElementsByName(name)[num].value.lastIndexOf(".");
  var str = document.getElementsByName(name)[num].value.substring(pos + 1);
  return str.toLowerCase();
}

function getImgTypes(sprache) {
	getTexte(sprache, 'functions.js');	
	
	var img_types = new Array();

	for (var i = 0; i < allowed_img_types.length; i++) {
		if (allowed_img_types[i] == 1) {
			switch (i) {
				case 0:
					img_types.push(texte['TEXT_GIF']);
					break;
				case 1:
					img_types.push(texte['TEXT_JPG']);
					img_types.push(texte['TEXT_JPEG']);
					break;
				case 2:
					img_types.push(texte['TEXT_PNG']);
					break;
			}
		}
	}
	return img_types;
}

function getAllowedImgTypes(img_types, name, sprache) {
	var format = '';
	
	getTexte(sprache, 'functions.js');	
	
	switch (img_types.length) {
		case 0:
			format = texte['TEXT_NO_FORMAT_ALLOWED'];
			break;
		case 1:
			format = '.'+img_types[0];
			break;
		case 2:
			format = '.'+img_types[0]+' '+texte['TEXT_AND']+' .'+img_types[1];
			break;
		default:
			for (var i = 0; i < img_types.length - 2; i++) {
				format = format+'.'+img_types[i]+', ';
			}
			format = format+'.'+img_types[img_types.length - 2]+' '+texte['TEXT_AND']+' .'+img_types[img_types.length - 1];
			break;
	}

	var text = texte['TEXT_INVALID_IMG_TYPE'].replace(/{VARIABLE\.FORMAT}/, getImgType(name));		
	text = text.replace(/{VARIABLE\.FORMATS}/, format);
	return text;
}

//Farbwechsel
function changecolor(theelement,color) {
  theelement.style.backgroundColor = color;
}

//Groß schreiben
function uppercase(path) {
	path.value = path.value.toUpperCase();;
}

//Klein schreiben
function lowercase(path) {
	path.value = path.value.toLowerCase();;
}

//Größe umrechnen
function convertByte(sprache, name, id) {
	getTexte(sprache, 'functions.js');	
	
	var size = document.getElementsByName(name)[0].value; 

	var sizes = new Array(texte['TEXT_BYTE'], texte['TEXT_KILOBYTE'], texte['TEXT_MEGABYTE'], texte['TEXT_GIGABYTE'], texte['TEXT_TERABYTE']);

	for (var i = 0; size > 1024 && i < sizes.length; i++) {
		size /= 1024;
	}
	var result = Math.round(size * 100) / 100;
  var result_string = result.toString(10);
  result_string = result_string.replace(/\./, ",");
	document.getElementById(id).textContent = result_string+' '+sizes[i];	
}

function getTexte(sprache, element) {
  if (window.XMLHttpRequest) {
  	request = new XMLHttpRequest(); // Mozilla, Safari, Opera
  } else if (window.ActiveXObject) {
  	try {
	    request = new ActiveXObject('Msxml2.XMLHTTP'); // IE 5
  	} catch (e) {
  		try {
    		request = new ActiveXObject('Microsoft.XMLHTTP'); // IE 6
   		} catch (e) {}
  	}
  }
  if (!request) {
		alert("Kann keine XMLHTTP-Instanz erzeugen");
    return false;
  } else {
  	var url = "ajax/text.ajax.php";
    request.open('post', url, false);
    // Requestheader senden
    request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    request.send('element='+element+'&sprache='+sprache);
    interpretRequestGetText();
  }
}

function interpretRequestGetText() { 
 	switch (request.readyState) { 
 		// wenn der readyState 4 und der request.status 200 ist, dann ist alles korrekt gelaufen
 		case 4:
 			if (request.status != 200) {
 				alert("Der Request wurde abgeschlossen, ist aber nicht OK\nFehler:"+request.status);
 			} else { 
 				// Antwort des Servers -> als XML-Dokument
 				var xmlDoc = request.responseXML;
 				// Namen aus dem XML-Dokument herauslesen
 				var id = new Array;
 				var text = new Array;
 				var num = xmlDoc.getElementsByTagName('element');
 				for (var i = 1; i <= num.length; i++) {
 					id[i] = xmlDoc.getElementsByTagName('id_'+i)[0].firstChild.nodeValue; 
 					text[i] = xmlDoc.getElementsByTagName('text_'+i)[0].firstChild.nodeValue;
 					texte[id[i]] = text[i];
  			}				
 			}
 			break;
 		default:
 			break;
 	}
}

function ajaxRequest(url, variables, func) {
  if (window.XMLHttpRequest) {
  	request = new XMLHttpRequest(); // Mozilla, Safari, Opera
  } else if (window.ActiveXObject) {
  	try {
	    request = new ActiveXObject('Msxml2.XMLHTTP'); // IE 5
  	} catch (e) {
  		try {
    		request = new ActiveXObject('Microsoft.XMLHTTP'); // IE 6
   		} catch (e) {}
  	}
  }
  if (!request) {
		alert("Kann keine XMLHTTP-Instanz erzeugen");
    return false;
  } else {
    request.open('post', url, true);
    request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    request.send(variables);
		request.onreadystatechange = eval(func);
  }
}