/**
 * Für Ajax und beim Seitenladen
 */
function statusReady() {
	try {
		document.getElementById("loaderContainer").style.display = "none";
	}
	catch (e)	{}
}

function statusLoading() {
	try {
		document.getElementById("loaderContainer").style.display = "";
	}
	catch (e)	{}
}

/**
 * Für Textfeld in Bausteinen
 */
function insert(aTag, eTag, formname, elementname) {
	var input = document.forms[formname].elements['CMS_VAR['+elementname+']'];
	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);
	}
}

/**
 * Allgemeine Ajax-Abrage
 * @param link - Link der Abzufragenden Seite mittels GET
 * @param id - wenn null, dann wird das Ergebnis aus Rückgabewert der
 *             Funktion ausgegeben, sonst an document.getElementById(id).innerHTML
 * @param string - Wenn id null, dann Rückgabe, sonst bool
 */
var lastResult = "";
var lastId = "";

function getByAjax(link, id, alternativeReturn)
{
	//alert(link);

	statusLoading();
	// globale Instanz von XMLHttpRequest
	var xmlHttp = false;


	// XMLHttpRequest-Instanz erstellen

	// ... für Internet Explorer

	try {

	    xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");

	} catch(e) {

	    try {

	        xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");

	    } catch(e) {

	        xmlHttp  = false;

	    }

	}

	// ... für Mozilla, Opera und Safari

	if (!xmlHttp  && typeof XMLHttpRequest != 'undefined') {

	    xmlHttp = new XMLHttpRequest();

	}





	if (xmlHttp)

	{

	    xmlHttp.open('GET', link, true);



	    xmlHttp.onreadystatechange = function ()

	    {

		    if (xmlHttp.readyState == 4)

		    {

		    	// Loginzeit verstrichen, dann enthält responseText die gesamte Loginseite

		    	// --> also weiterleiten auf sich selbst, um ausgeloggt zu werden

		    	var re = /^\s*<!DOCTYPE/gi;

				if(re.exec(xmlHttp.responseText)) {

					window.location.href='content.php';

					return;

				}



		    	if(alternativeReturn)

		    	{

		    		lastResult = xmlHttp.responseText;

		    		lastId = id;

		    		eval(alternativeReturn + "();");

		    		lastResult = "";

		    		lastId = "";

		    	}

		    	else

		    	{

			    	document.getElementById(id).innerHTML = xmlHttp.responseText;

		    	}

		    	statusReady();

		    }

	    };

	    }



	 xmlHttp.send(null);



}







/**

 * Für Verlinkungsblock

 */

function loadLinkContent(lang, id, show, param) {
	/*console.log(lang);
	console.log(id);
	console.log(show);
	console.log(param);*/
	// globale Instanz von XMLHttpRequest
	var xmlHttp = false;

	// XMLHttpRequest-Instanz erstellen
	// ... für Internet Explorer
	try {
	    xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");
	} catch(e) {
	    try {
	        xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");
	    } catch(e) {
	        xmlHttp  = false;
	    }
	}

	// ... für Mozilla, Opera und Safari
	if (!xmlHttp  && typeof XMLHttpRequest != 'undefined') {
	    xmlHttp = new XMLHttpRequest();
	}

	if (xmlHttp) {
		if(window.linkerBase) {
			var lb = window.linkerBase;
		} else {
			var lb = '';
		}

	    xmlHttp.open('GET', lb+'linker.php?lang='+lang+'&input='+serializedArr+'&show='+show+'&param='+param, true);

	    xmlHttp.onreadystatechange = function () {
		    if (xmlHttp.readyState == 4) {
		    	var tempText = xmlHttp.responseText;
			    document.getElementById(id).innerHTML=tempText;
		    }
	    };

	    xmlHttp.send(null);
	}
}

/**
 * Für Verlinkungsblock
 */
function loadLinkBox(myValue) {
	loadLinkContent(con_lang,'linkContent'+pJs+'_1',myValue,0);
	loadLinkContent(con_lang,'linkContent'+pJs+'_2',0,0);

	if(myValue == 1 || myValue == 2 || myValue == 8) {
		loadLinkContent(con_lang,'linkContent'+pJs+'_3',200,0);
	} else {
		loadLinkContent(con_lang,'linkContent'+pJs+'_3',0,0);
	}
}





/**

 * Für Verlinkungsblock

 */

function OnUrlChange(pJs)

{

	var textbox = document.getElementById(pJs + '_link');

	var protokollbox = document.getElementById(pJs + '_protokoll');



	var oRegex = new Object() ;

	oRegex.UrlOnChangeProtocol = /^(http|https|ftp|news):\/\/(?=.)/gi ;

	oRegex.UrlOnChangeTestOther = /^((javascript:)|[#\/\.])/gi ;





	var sUrl = textbox.value ;

	var sProtocol = oRegex.UrlOnChangeProtocol.exec( sUrl ) ;



	if ( sProtocol )

	{

		sUrl = sUrl.substr( sProtocol[0].length ) ;

		textbox.value = sUrl ;

		protokollbox.value = sProtocol[0].toLowerCase() ;

	}

	else if ( oRegex.UrlOnChangeTestOther.test( sUrl ) )

	{

		protokollbox.value = '' ;

	}

}





/**

 * Für Verlinkungsblock

 */

function showHidePopUpData(myValue,boxName)

{

	if(myValue == 2)

		document.getElementById(boxName).style.display='block';

	else

		document.getElementById(boxName).style.display='none';

}

















/**

 * Findet Verwendung beim "PreSave"

 */

function show_that(jname,jpos,jmark,jmax)

{

	//document.write("Name: "+jname+" POS: "+jpos+" Mark: "+jmark+" MAX: "+jmax);

	for(i=1;i<=jmax;i++)

	{document.getElementById(jname+"_"+jpos+"_"+i).style.display='none';}

	document.getElementById(jname+"_"+jpos+"_"+jmark).style.display='';

}













/**

 * Details in Baustein

 */

function show_more_settings (id)

{

	document.getElementById('hiddn_'+id).style.display='';

	document.getElementById('c_lnk_'+id).style.display='';

	document.getElementById('o_lnk_'+id).style.display='none';

}

function show_less_settings (id)

{

	document.getElementById('hiddn_'+id).style.display='none';

	document.getElementById('c_lnk_'+id).style.display='none';

	document.getElementById('o_lnk_'+id).style.display='';

}













/**

 * Hauptmenue Backend

 */

function menue(id, anz)

{

	for(i=1;i<=anz;i++)

	{

		document.getElementById('buta'+i).style.display='none';

		document.getElementById('buti'+i).style.display='';

		document.getElementById('men'+i).style.display='none';

	}



	document.getElementById('buti'+id).style.display='none';

	document.getElementById('buta'+id).style.display='';

	document.getElementById('men'+id).style.display='';

}



function execCommand (command) {

   if (document.execCommand) {

     if (a.P.contains(document.selection.createRange().parentElement()))

       document.execCommand(command);

   }

}













/**

 * Für den Mouseovereffekt an den Tabellen im Backend

 */

function changecolor(tablerowid, reset, restore_color)

{

	theCells = document.getElementById(tablerowid).getElementsByTagName('td');

	rowCellsCnt = theCells.length;



	for (c = 0; c < rowCellsCnt; c++)

	{

		// Mouseover

		if (reset == false)

		{

			theCells[c].style.backgroundColor = '#CBE5B9';

		}



		// Mouseout

		else

		{

			if(restore_color != "")

			{

				theCells[c].style.backgroundColor = restore_color;

			}

			else

			{

				if (theCells[c].className == "ct_dark")

				{

					theCells[c].style.backgroundColor = '#B9DCFC';

				}

				else

				{

					theCells[c].style.backgroundColor = '#DAECFE';

				}

			}



		}

	}

}







/**

 * Setzt alle CSS-Klassen der Elemente eines bestimmten >type< unterhalb

 * eines Elementes >parentId< auf >defaultClass<. Das element mit der

 * >elementId< wird jedoch auf >elementClass< gesetzt.

 * NUTZEN:

 * Z.B. Hovereffekt. Alle Elemente sollen wieder auf die Standardklasse

 * gesetzt werden, die den Button unsichtbar erscheinen lassen, ein be-

 * stimmtes jedoch auf die markante Klasse, um es sichtbar werden zu

 * lassen.

 * (Wird z.B. in ArticleProperties eingesetzt)

 */

function classChanger(type, parentId, elementId, defaultClass, elementClass, langFlagSupport) {

	var parentE = document.getElementById(parentId);

	var selfE = document.getElementById(elementId);

	var elements = parentE.getElementsByTagName(type);

	for (var i=0;i<elements.length;i++){

		if(elements[i] == selfE) {

			elements[i].className = elementClass;

		} else {

			elements[i].className = defaultClass;

		}

	}



	if(langFlagSupport) {

		var Ausdruck = /.*?([0-9]+)$/;

		Ausdruck.exec(elementId);

		var target = document.getElementById(langFlagSupport + RegExp.$1);



		var specialStyle = 'languageSwitcherActive';

		var normalStyle  = 'languageSwitcher';



		var links = target.parentNode.getElementsByTagName('a');

		for (i=0;i<links.length;i++) {

			links[i].className = normalStyle;

		}

		target.className = specialStyle;

	}

}





















/**

 * Standard-MM-Funktionen

 */

function MM_swapImage() { //v3.0

var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)

if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}

}

function MM_swapImgRestore() { //v3.0

var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;

}



function MM_preloadImages() { //v3.0

var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();

var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)

if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}

}



function MM_findObj(n, d) { //v4.0

var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {

	d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}

	if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];

	for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);

	if(!x && document.getElementById) x=document.getElementById(n); return x;

}

function tmt_findObj(n){
	var x,t; if((n.indexOf("?"))>0&&parent.frames.length){t=n.split("?");
	x=eval("parent.frames['"+t[1]+"'].document.getElementById('"+t[0]+"')");
	}else{x=document.getElementById(n)}return x;
}

function MM_jumpMenu(targ,selObj,restore){ //v3.0
	eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
	if (restore) selObj.selectedIndex=0;
}

function MM_openBrWindow(theURL,winName,features) {
	window.open(theURL,winName,features);
}

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

/**
 * ********************************
 * Funktionen der KategorieListe
 */

/**
 * RESPONSE - Sichtbarkeit
 */
function toggleVisibility() {
	result = lastResult;
	picArr = lastId.getElementsByTagName('img');

	if(result == 1)	{
		picArr[0].src = 'images/admin/minibut_str_xauge.gif';
	} else if(result == 0)	{
		picArr[0].src = 'images/admin/minibut_str_auge.gif';
	}
}

/**
 * RESPONSE - Geschützter Bereich
 */
function toggleProtection() {
	result = lastResult;
	picArr = lastId.getElementsByTagName('img');

	if(result == 1)	{
		picArr[0].src = 'images/admin/minibut_str_schloss.gif';
	}
	else if(result == 0)	{
		picArr[0].src = 'images/admin/minibut_str_xschloss.gif';
	}
}

/**
 * RESPONSE und RELOAD - Hochschieben
 */
function moveup() {
	getByAjax(lastResult, lastId);
}

/**
 * RESPONSE und RELOAD - Runterschieben
 */
function movedown() {
	getByAjax(lastResult, lastId);
}

/**
 * RESPONSE und RELOAD - Runterschieben
 */
function farMoving() {
	getByAjax(lastResult, lastId);
}

/**
 * RESPONSE und RELOAD - Löschen
 */
function deleteCat() {
	if(lastResult == "1") {
		alert('Diese Kategorie kann nicht gelöscht werden, weil Unterkategorien vorhanden sind!');
	} else if(lastResult == "2") {
		alert('Diese Kategorie kann nicht gelöscht werden, weil Artikel enthalten sind!');
	} else {
		getByAjax(lastResult, lastId);
	}
}

/* Directedit */
function setElements() {
	if (document.getElementById('directedit_settings')) {
		obj        = document.getElementById('directedit_settings');
		objOverlay = document.getElementById('directedit_overlay');

		var newWidth  = (document.documentElement.clientWidth / 2) - 290;
		var newHeight = (((document.documentElement.clientHeight - 51) / 2) - 310) + 51;

		if (newWidth < 0) {
			newWidth = 0;
		}

		if (newHeight < 0) {
			newHeight = 0;
		}

		obj.style.top = newHeight+'px';
		obj.style.left = newWidth+'px';
		objOverlay.style.position = 'absolute';
		objOverlay.style.zIndex = '998';
		objOverlay.style.left = '0';
		objOverlay.style.top = '51px';
		objOverlay.style.width = document.documentElement.clientWidth+"px";
		objOverlay.style.height = document.documentElement.clientHeight - 51+"px";
	}
}

function initSettings() {
	if (document.getElementById('directedit_settings')) {
		var obj        = document.getElementById('directedit_settings');
		var objOverlay = document.getElementById('directedit_overlay');

		setElements(obj, objOverlay);

		if (obj.style.display == 'none' || obj.style.display == '') {
			obj.style.display = 'block';
			objOverlay.style.display = 'block';
		} else {
			obj.style.display = 'none';
			objOverlay.style.display = 'none';
		}
	}
}

function uploader() {
	if (document.getElementById('upload_form')) {
		document.getElementById('upload_form').style.display = 'none';
		document.getElementById('loader').style.display = 'block';
	}
}

function getFlash(filename, image, width, height, transparent, qualitaet) {
	document.write('<object type="application/x-shockwave-flash" data="'+filename+'" width="'+width+'" height="'+height+'">');

	if (transparent = '1') {
		document.write('<param name="wmode" value="transparent">');
	}

	document.write('<param name="movie" value="'+filename+'">');
	document.write('<param name="quality" value="'+qualitaet+'">');
	document.write('<img src="'+image+'" />');
	document.write('</object>');
}

function ShowSettingsByCatType(value) {
	if (value == '1') {
		document.getElementById('eins').style.display='block';
		document.getElementById('zwei').style.display='none';
		document.getElementById('drei').style.display='none';
		document.getElementById('vier').style.display='none';
	} else if (value == '2') {
		document.getElementById('eins').style.display='none';
		document.getElementById('zwei').style.display='block';
		document.getElementById('drei').style.display='none';
		document.getElementById('vier').style.display='none';
	} else if (value == '3') {
		document.getElementById('eins').style.display='none';
		document.getElementById('zwei').style.display='none';
		document.getElementById('drei').style.display='block';
		document.getElementById('vier').style.display='none';
	} else if (value == '4') {
		document.getElementById('eins').style.display='none';
		document.getElementById('zwei').style.display='none';
		document.getElementById('drei').style.display='none';
		document.getElementById('vier').style.display='block';
	}
}

function popup(url, name, width, height) {
	if (!name) {
		name = 'popup';
	}

	window.open(url, name, 'width='+width+', height='+height+', menubar=no, status=no, toolbar=no, scrollbars=no, location=no');
}

function languageframe(lang, attributes, file) {
	document.getElementById('frame').src = file + '?con_lang=' + lang + '&' + attributes;
}

function changeLanguage(con_lang) {
    
    jQuery('.langbar').children().each(function() {
        jQuery(this).css('borderBottom', 'none');
    });
    jQuery('.langbar>a[id$="'+con_lang+'"]').css('borderBottom', '2px #f00 solid');
    
    jQuery('div[id^="lang_"]').css('display', 'none');
    jQuery('div#lang_'+con_lang).css('display', 'block');
    
/*	var elements = document.getElementsByName("langs");
	var count = elements.length;

	for (i=0; i<count; i++) {
		if (elements[i].value == con_lang) {
			document.getElementById('lang_' + elements[i].value).style.display = 'block';
			document.getElementById('flag_' + elements[i].value).style.borderBottom = '2px #f00 solid';
		} else {
			document.getElementById('lang_' + elements[i].value).style.display = 'none';
			document.getElementById('flag_' + elements[i].value).style.borderBottom = 'none';
		}
	}   */
}

window.onresize = setElements;
