function write(text,noOverwrite)
{
	if (noOverwrite && infoFull()) return;
	
	window.clearInterval(infoInterval1);
	window.clearInterval(infoInterval2);
	
	var element = getObject('info');
	if (infoFull()) element.innerHTML += ' --- ' + text;
	else element.innerHTML = text;
	element.style.display = 'inline';
	element.style.marginTop = '-01px';
	infoInterval1 = window.setInterval('slideStatusPre()',5000); // wait 5 seconds
}
function slideStatusPre()
{
	window.clearInterval(infoInterval1);
	infoInterval2 = window.setInterval('slideStatus()',100); // then slide it back
}
function slideStatus()
{	
	var element = getObject('info');
	var pixel = parseInt(element.style.marginTop.substring(1,3));
	pixel++;
	element.style.marginTop = '-' + pixel + 'px';
	if (pixel == 20){
		window.clearInterval(infoInterval2);
		element.style.display = 'none';
	} 
}
function infoFull() 
{
	if (getObject('info').style.display == 'inline') return true;
	else return false;
}
function refresh()
{
	location.reload();
}
function writetest()
{
	getObject('info').innerHTML += 'test';
}
function fullscreen(id)
{	
	if (isArray(id)) var element = getObject(id[2]);
	else var element = getObject(id);
	var header = document.createElement('DIV');
	header.id = 'fullscreenHeader';
	var linkId = 'link_closeFullscreen_'+element.id+'_'+element.className;
	if (element.style.display == 'none') linkId += '_'+element.style.display;
	else linkId += '_inline';
	createImage(header,'images/banner_logo.png',linkId,'link','Zurück zu Yoption');
	element.insertBefore(header,element.childNodes[0]);
	
	element.id = '';
	element.className = 'fullscreen';
	if (element.style.display == 'none') element.style.display = 'inline';
}
function closeFullscreen(idArray)
{
	var header = getObject('fullscreenHeader');
	var element = header.parentNode;
	element.removeChild(header);
	element.id = idArray[2];
	element.className = idArray[3];
	if (idArray[4]) element.style.display = idArray[4];
}
function wait(seconds){
    
	time = seconds * 1000;    
	var starttime = (new Date).getTime();
	while (starttime+time>(new Date).getTime()){};
}
function deleteCookie()
{
	var expires = 'Fri, 02 Jan 1970 00:00:00 UTC;';
	document.cookie = 'name=; expires=' + expires + ';';
	document.cookie = 'user=; expires=' + expires + ';';
	document.cookie = 'pass=; expires=' + expires + ';';
}
function setCookie(varArray,valueArray)
{
	//var expires = 'Sat, 31 Dec 2050 20:00:00 UTC';
	var expires = 'Sat, 31 Dec 2050 20:00:00 GMT';

	document.cookie = 'name=yoption; expires=' + expires + ';'; // add expires to every single variable
    for (var i=0; i<varArray.length; i++) document.cookie = varArray[i]+'='+valueArray[i]+'; expires='+expires+';';	 
}
function getCookie(varArray)
{
	var valueArray = new Array();
	var start;
	var value;
	var end;
	
	for (var i=0; i<varArray.length; i++){
		
		start = document.cookie.indexOf(varArray[i]);
		if (start == -1) continue;
		start = start + varArray[i].length + 1;
		value = document.cookie.substr(start);
		end = value.indexOf(';');
		if (end != -1) valueArray.push(value.substr(0,end));
		else valueArray.push(value.substr(0));
	}	
	return valueArray;
}
function withCookie()
{
	if(document.cookie) return true;
	else return false;
}
function firstBig(str)
{
	var first = str.substring(0,1);
	var first = first.toUpperCase();
	var second = str.substring(1,str.length);
	return first + second;
}
function getObject(id)
{
	return document.getElementById(id);
}
function getValue(id)
{
	return document.getElementById(id).value;
}
function getSelected(element,text)
{
	var index = element.options.selectedIndex;
	if (text) var value = element.options[index].text;
	else var value = element.options[index].value;
	return value;
}
function browser()
{
	var text = navigator.userAgent;
	
	if (text.search(/MSIE/) != -1) browser = 'IE';
	else if (text.search(/Firefox/) != -1) browser = 'Firefox';
	else if (text.search(/Safari/) != -1) browser = 'Safari';
	else if (text.search(/Opera/) != -1) browser = 'Opera';
}
function browserSize()
{
	browserWidth = window.innerWidth || (window.document.documentElement.clientWidth || window.document.body.clientWidth);
	browserHeight = window.innerHeight || (window.document.documentElement.clientHeight || window.document.body.clientHeight);
}
//function createImage(parentObj,source,onclick){
//	
//	var element = document.createElement('IMG');
//	element.src = source;
//	element.onclick = click;
//	if (onclick) {
//		element.id = onclick;
//		element.style.cursor = 'pointer';
//	}
//	parentObj.appendChild(element);
//	return element;
//}
function showForm(){
	document.getElementById('userdata').style.display = 'inline';
}
function getRestId(idArray,remove1,remove2)
{
	if (remove1 || remove1 == 0) idArray = arrayDrop(idArray,null,remove1);
	if (remove2 || remove2 == 0) idArray = arrayDrop(idArray,null,remove2);
	return idArray.join('_');
} 
function showTooltip(parentObj,text)
{
	var container = createContainer(getObject('help'),'tooltip','tooltip');
	createText(container,text);
	newLeft = getLeftPos(parentObj);
	newTop = getTopPos(parentObj) + 50;
	container.style.left = newLeft + 'px';
	container.style.top = newTop + 'px';	
}
function removeTooltip()
{
	getObject('help').removeChild(getObject('tooltip'));
}
function showPrompt(parentObj,text,nextFunction)
{
	var container = createContainer(getObject('help'),'prompt','prompt');
	createText(container,text);
	createBreak(container);
	var input = createInput(container,'','text','promptValue','',false,true);
	input.select();
	createBreak(container);
	createText(container,'Ok','link_'+nextFunction,'link');
	newLeft = getLeftPos(parentObj);
	newTop = getTopPos(parentObj) + 50;
	container.style.left = newLeft + 'px';
	container.style.top = newTop + 'px';	
}
function getTopPos(inputObj)
{		
  var returnValue = inputObj.offsetTop;
  while((inputObj = inputObj.offsetParent) != null){
  	if(inputObj.tagName!='HTML')returnValue += inputObj.offsetTop;
  }
  return returnValue;
}

function getLeftPos(inputObj)
{
  var returnValue = inputObj.offsetLeft;
  while((inputObj = inputObj.offsetParent) != null){
  	if(inputObj.tagName!='HTML')returnValue += inputObj.offsetLeft;
  }
  return returnValue;
}
function removeChildren(element,leaveFirst)
{
	var children = element.childNodes;
	for (var i = children.length - 1; i >= 0; i--) { // start with the last
		if (leaveFirst && i == 0) continue;
		element.removeChild(children[i]);
	}
}
function isArray(variable)
{
	if (typeof variable == 'object') return true;
	else return false;
}
function getAscii(text)
{
	while (text.search(/ä/) != -1) text = text.replace(/ä/,'&auml;');
	while (text.search(/ü/) != -1) text = text.replace(/ü/,'&uuml;');
	while (text.search(/ö/) != -1) text = text.replace(/ö/,'&ouml;');
	while (text.search(/ß/) != -1) text = text.replace(/ß/,'&szlig;');
	return text;
}
function encrypeText(text)
{
	text = getAscii(text);
	while (text.search(/\,/) != -1) text = text.replace(/\,/,'komma');
	while (text.search(/\=/) != -1) text = text.replace(/\=/,'istgleich');
	while (text.search(/\&/) != -1) text = text.replace(/\&/,'undzeichen');
	return text;
}
function descrypeText(text)
{
	while (text.search(/komma/) != -1) text = text.replace(/komma/,',');
	while (text.search(/istgleich/) != -1) text = text.replace(/istgleich/,'=');
	while (text.search(/undzeichen/) != -1) text = text.replace(/undzeichen/,'&');
	return text;
}
function encrypePassword(password)
{
	var newPassword = '';
	for (var i=0; i<password.length; i++){
		if (i != 0) newPassword += '-';
		newPassword += password.charCodeAt(i) + 5;		
	} 
	return newPassword;
}
function descrypePassword(password)
{
	var passwordArray = password.split('-');
	var newPassword = '';
	for (var i=0; i<passwordArray.length; i++) newPassword += String.fromCharCode(passwordArray[i] - 5);
	return newPassword;
}
function display(id,parent)
{
	var element = getObject(id);
	if (parent) element = element.parentNode;	
	var display = element.style.display;
	
	if (display == 'none') element.style.display = 'inline';
	else element.style.display = 'none';
}
function arrayDrop(array,value,id)
{
	var newArray = new Array();
	for (var i=0; i<array.length; i++) {
		
		if (i == id) continue;
		if (array[i] == value) continue;
		newArray.push(array[i]);
	};
	return newArray;
}
function arrayDropAss(array,value,title,startId)
{
	var newArray = new Array();
	if (startId) newArray.push(null);
	for (var i=0; i<array.length; i++) {
		
		if (!array[i] || array[i][title] == value) continue;
		newArray.push(array[i]);
	};
	return newArray;
}
function addLabels(param)
{
	for (var i=0; i<param[2]; i++){
		
		var textArray = param[3+i].split('*');		
		labelArray[textArray[1]] = textArray[2];
		var element = getObject(textArray[1]);
		if (element) element.innerHTML = textArray[2];
	} 
}
function onAdmincell(evt)
{
	onText('',this,'admincell');
}
function onLongtext(evt)
{
	onText(evt,this,'longtext');
}
function onText(evt,parentObj,detail)
{
	if (detail != 'admincell'){
		if (!evt) evt = event; // for internet explorer
		if (!admin || !evt.ctrlKey) { // just admin and with ctrl, otherwise normal function
			click(evt,this);
			return;
		}	
	}
	if (!parentObj) parentObj = this;
	if (!parentObj.id) return;
	
	oldText = parentObj.innerHTML;
	while (oldText.search(/<br>/) != -1) oldText = oldText.replace(/<br>/,'\n');
	parentObj.innerHTML = '';
	
	if (detail == 'longtext') var textfield = createTextarea(parentObj,'','','areaedit','',oldText);
	else var textfield = createInput(parentObj,oldText,'text','','textedit');
	
	//textfield.focus();
	//textfield.style.font = parentObj.style.font;
	textfield.select();
	textfield.onblur = click;
	if (detail != 'longtext') textfield.onkeypress = click;
	textfield.id = 'link_submitText';
	if (detail) textfield.id += '_' + detail;
	parentObj.onclick = '';
}
function submitText(idArray)
{
	var element = getObject(idArray.join('_'));
	var text = element.parentNode;
	
	if (!idArray[2]) text.onclick = onText;
	else text.onclick = window['on'+firstBig(idArray[2])]; // onAdmincell or onLongtext
	
	//if (element.value == " ") return;
	newText = element.value;
//	while (newText.search(/(\r\n|\n|\r)/) != -1) newText = newText.replace(/(\r\n|\n|\r)/,'<br>');
//	while (newText.search(/\,/) != -1) newText = newText.replace(/\,/,'&#130;');
//	while (newText.search(/=/) != -1) newText = newText.replace(/=/,'istgleichZeichen');
//	while (newText.search(/\&/) != -1) newText = newText.replace(/\&/,'undZeichen');
	//while (newText.search(/\&/) != -1) newText = newText.replace(/\,/,'&#38;');	
	
	text.innerHTML = newText;
	saveText(text,idArray[2]);
}
function saveText(element,detail)
{
	var idArray = element.id.split('_');
	var text = encrypeText(element.innerHTML);
	
	if (detail == 'admincell') changeData('saveAdminText',idArray[0],Array(idArray[2]),Array(text),Array('id'),Array(idArray[1]));
	else changeData('saveText','text',Array('text'),Array(text),Array('fieldId'),Array(element.id));
}
function checkInput(id,type,optional)
{
	var reg;
	var element = getObject(id);
	
	if (optional && element.value == '') return true;
	
	switch(type)
	{		
		case 'mail':		reg = eval('/^([a-zA-Z0-9_\.\-])+[\@](([a-zA-Z0-9\-])+[\.])+[a-zA-Z0-9]{2,4}$/'); break;
		case 'website':		reg = eval('/^(([a-zA-Z0-9\-])+[\.])+[a-zA-Z0-9]{2,4}$/'); break;
		case 'password':	reg = eval('/^[a-zA-Z0-9§(\x20-\x7E)]{3,20}[^\"\']$/i'); break; // x20-x7E special characters, without stringbreaker 
		case 'tel':			reg = eval('/^[0-9]{3,15}$/i'); break;
		case 'housenumber':	reg = eval('/^[0-9]{1,5}$/i'); break;
		case 'postcode':	reg = eval('/^[0-9]{1,5}$/i'); break;
		case 'tabname':		reg = eval('/^[a-z0-9\-äöüß ]{2,10}$/i'); break;
		default:			reg = eval('/^[a-z0-9\-äöüß ]{2,50}$/i'); break;
	}

	var className = element.className.split('_')[0];

	if (!reg.test(element.value)) {
		element.className = className + '_wrong';
		return false;
	}
	else {
		element.className = className + '_right';
		return true;
	}
}
function checkText(text,type)
{
	var reg;
	
	switch(type)
	{		
		case 'tabname':		reg = eval('/^[a-z0-9\-äöüß ]{3,15}$/i'); break;
	}

	if (reg.test(text)) return false;
	else return true;
}
function closeThickbox(id)
{
	var element = getObject(id);
	if (id == 'bookmarkSafari' || id == 'bookmarkFirefox' || id == 'startpageSafari' || id == 'startpageFirefox' || id == 'staticImpressum' || id == 'staticAGB') return;
	removeChildren(element);
}
function fillChoiceBox(param,detail)
{
	var element = getObject(detail);
	for (var i=0; i<param[2]; i++) createChoiceBoxElement(element,param[3+i].split('*'));
}