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_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_findObj(n, d) { //v4.01
  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 && d.getElementById) x=d.getElementById(n); return x;
}

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];}
}

// PopUp
function newWindow(url,w,h,title,optionen) {
	if (window.screen) {
		var hori = screen.availWidth;
		var verti = screen.availHeight;
        dorthin = window.open(url, title,'' + optionen +',width='+ w  +',height='+ h +',left='+((hori - w- 10)* .5) +',top='+((verti - h- 30)* .5))
	dorthin.focus()
	}	
}
// Random
function rand(range) {
	return Math.floor(Math.random()*1000000000+1)
}

function goToURL(url) {
        location.href = url;
}

// Set Value
function setValue(form,feld,value) {
	document.forms[form].elements[feld].value = value;	
}

// Set Folder
function setFolder(form,feld,value,folder) {
	document.forms[form].elements[feld].value = value;
	document.forms[form].folder.value = folder;		
}

// Message: Add User
function msgAddUser (userid) {
	window.opener.document.getElementById('msg_add_user').value = userid;
	window.opener.document.newmsg.submit();
	window.opener.document.focus();           
}

// Checkbox Toggle
function checkboxToggle(form,feld,toggle){
	f = document.forms[form].elements[feld];
   	if (document.forms[form].elements[feld]) {
   		document.forms[form].elements[feld].checked = toggle;  	
   		for (i=0;i<f.length;i++) {
      		f[i].checked = toggle;
   		}
    }
}
function switchNavigation(id) {
	document.getElementById("nav_frontpage").style.display = "none";	
	document.getElementById("nav_community").style.display = "none";	
	document.getElementById("nav_infotainment").style.display = "none";	
	document.getElementById("nav_members").style.display = "none";
	document.getElementById("nav_media").style.display = "none";		
	
	document.getElementById(id).style.display = "";	
}

// Insert easy Text
function insertText(form,feld,text) {
	document.forms[form].elements[feld].value += text;
}


// Swicht Style Class
function switchClass(id,css) {
	document.getElementById(id).className = css;
}

// Jump Menu (Select)
function jumpMenu(targ,selObj,restore) {
	eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
    if (restore) selObj.selectedIndex=0;
}

// Toggle Status
function toggleStatus(typ,id,anzahl) {
    if (document.getElementById(typ + "_" + id).style.display == 'none') {
        document.getElementById(typ + "_" + id).style.display = "";
        document.getElementById(typ + "_" + id + "_pic").src = "templates/images/icons/toggle_minus.gif";
        document.getElementById(typ + "_" + id + "_pic").alt = "close";
    } else {
		document.getElementById(typ + "_" + id).style.display = "none";
        document.getElementById(typ + "_" + id + "_pic").src = "templates/images/icons/toggle_plus.gif";
        document.getElementById(typ + "_" + id + "_pic").alt = "open";
    }
}

// Flag preview
function flag_preview(flag) {
	document.getElementById("flag_preview_bild").src = "templates/images/icons/flags/" + flag + ".gif";
}

function flag_preview_admin(flag) {
	document.getElementById("flag_preview_bild").src = "../templates/images/icons/flags/" + flag + ".gif";
}


var imageTag = false;
var theSelection = false;
var clientPC = navigator.userAgent.toLowerCase();
var clientVer = parseInt(navigator.appVersion);
var is_ie = ((clientPC.indexOf("msie") != -1) && (clientPC.indexOf("opera") == -1));
var is_nav = ((clientPC.indexOf('mozilla')!=-1) && (clientPC.indexOf('spoofer')==-1)
                && (clientPC.indexOf('compatible') == -1) && (clientPC.indexOf('opera')==-1)
                && (clientPC.indexOf('webtv')==-1) && (clientPC.indexOf('hotjava')==-1));
var is_moz = 0;
var is_win = ((clientPC.indexOf("win")!=-1) || (clientPC.indexOf("16bit") != -1));
var is_mac = (clientPC.indexOf("mac")!=-1);
var bbctag_noslect = 17;

bbcode = new Array();
bbtags = new Array('[b]','[/b]',
                   '[u]','[/u]',
                   '[i]','[/i]',
                   '[s]','[/s]',
                   '[li]','[/li]',
                   '[ol]','[/ol]',
                   '[ul]','[/ul]',
                   '[left]','[/left]',
                   '[center]','[/center]',
                   '[right]','[/right]',
                   '[justify]','[/justify]',
                   '[url]','[/url]',
                   '[email]','[/email]',
                   '[hr]','[hr]',
                   '[img]','[/img]',
                   '[quote]','[/quote]',
                   '[code]','[/code]',
                   '[readmore=Read more]','[/readmore]',
                   '[font]','[/font]',
                   '[size]','[/size]',
                   '[color]','[/color]'
                   );

imageTag = false;

// Get Arraysize
function getarraysize(thearray) {
	for (i = 0; i < thearray.length; i++) {
		if ((thearray[i] == "undefined") || (thearray[i] == "") || (thearray[i] == null))
        return i;
	}
	return thearray.length;
}

// Array Push
function arraypush(thearray,value) {
	thearray[ getarraysize(thearray) ] = value;
}

// Array Pop
function arraypop(thearray) {
	thearraysize = getarraysize(thearray);
	retval = thearray[thearraysize - 1];
	delete thearray[thearraysize - 1];
	return retval;
}

// BBSytle Select (Font, Size, Color)
function bbstyleSelect(typ,value,formular,feld,bbnumber) {
	insert('[' + typ + '=' +value+ ']', '[/' +typ + ']', formular, feld);
    document.forms[formular].elements[feld].focus();
    document.forms[formular].elements[typ].selectedIndex = "0"
    arraypush(bbcode,bbnumber+1);
}  
           
// Insert           
function insert(aTag, eTag, formular, feld) {
	var input = document.forms[formular].elements[feld];
  	input.focus();
  	// Internet Explorer
  	if(typeof document.selection != 'undefined') {
		var range = document.selection.createRange();
   		var insText = range.text;
    	range.text = aTag + insText + eTag;
    	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();
    	
    // Gecko basierende Browser
  	} else if(typeof input.selectionStart != 'undefined') {
    	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);
    	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;
    	
    // Other Broswer
  	} else {
    	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;
    	}
    	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);
  	}
}
          
                
// BBSytle                
function bbstyle(bbnumber,formular,feld,id) {
	var txtarea =   document.forms[formular].elements[feld];

    donotinsert = false;
    theSelection = false;
    bblast = 0;
    bc = 0; 
	bcArray = 0;


	// Close all tags
    if (bbnumber == -1) {
    	while (bbcode[0]) {
        	butnumber = arraypop(bbcode) - 1;
            txtarea.value += bbtags[butnumber + 1];
            if (butnumber != 36 && butnumber != 38 && butnumber != 40) {
		        document.getElementById(id+"_bb_" +butnumber).style.backgroundColor= "";   
            	}                    
		}
        imageTag = false;
        txtarea.focus();
        return;
	}
        
	// close last tag
    if (bbnumber == -2) {
		thearraysize = getarraysize(bbcode);
	    if (thearraysize > 0) {
			txtarea.value += bbtags[bbcode[thearraysize - 1]];
		    bbnumberTemp = bbcode[thearraysize - 1]-1;
		    if (bbnumberTemp != 36 && bbnumberTemp != 38 && bbnumberTemp != 40) {
		    	document.getElementById(id+"_bb_" +bbnumberTemp).style.backgroundColor= "";
		    }
		    delete bbcode[thearraysize - 1];
		        
		}
	    imageTag = false;
	    txtarea.focus();
	    return;
 	}

	if ((clientVer >= 4) && is_ie && is_win){
    	theSelection = document.selection.createRange().text;
       	if (theSelection) {
            document.selection.createRange().text = bbtags[bbnumber] + theSelection + bbtags[bbnumber+1];
            txtarea.focus();
            theSelection = '';
            return;
       	}
	} else if (txtarea.selectionEnd && (txtarea.selectionEnd - txtarea.selectionStart > 0)) {
    	mozWrap(txtarea, bbtags[bbnumber], bbtags[bbnumber+1]);
        return;
    }


	for (i = 0; i < bbcode.length; i++) {
    	if (bbcode[i] == bbnumber+1) {
        	bblast = i;
            donotinsert = true;
        }
 	}

 	if (donotinsert) {
    	document.getElementById(id+"_bb_" +bbnumber).style.backgroundColor= "";
        while (bbcode[bblast]) {
			// Tag insert
            butnumber = arraypop(bbcode) - 1;
            insert(bbtags[butnumber + 1], '', formular, feld);
            imageTag = false;
        }
        txtarea.focus();
        return;

	} else {

		document.getElementById(id+"_bb_" +bbnumber).style.backgroundColor= "#E9EAEC";
		if (bbnumber == 34) {
			// Tag insert (Readmore)
			insert('[readmore' + rand() + '=Read more]', '', formular, feld);	
		} else {
			// Tag insert
            insert(bbtags[bbnumber], '', formular, feld);
		}
        
		if ((bbnumber == 14) && (imageTag == false)) imageTag = 1;
        arraypush(bbcode,bbnumber+1);

        txtarea.focus();
        return;
  	}
    storeCaret(txtarea);
}

function bbstyleAddfromWindow(feld,text) {
    window.opener.document.getElementById(feld).value += text + "";
    window.opener.document.getElementById(feld).focus();              
	
}