//
// e2r Javascript Funktionen
// www.planet-e2r.de
//

function HideImageBrowser() {
	document.getElementById('ImageBrowser').style.display = 'none';
	document.getElementById('ImageBrowserBox').style.display = 'none';

}

function ImageBrowserInsert(inputid, value) {
	document.getElementById(inputid).value = value;
	HideImageBrowser();
}

var ImageBrowserHttp_request = false;

function ImageBrowser(inputid) {

    var BackgroundId = 'ImageBrowser';
    var BoxId = 'ImageBrowserBox';

    // Hintergrund
    var Obj = document.createElement("div");
    Obj.setAttribute('id', BackgroundId);
    Obj.onclick = function () {HideImageBrowser(); return false;}

    // Box
    var Box = document.createElement("div");
    Box.setAttribute('id', BoxId);

    // Inhalt
    // AJAX Start
	ImageBrowserHttp_request = false;

    if (window.XMLHttpRequest) { // Mozilla, Safari,...
        ImageBrowserHttp_request = new XMLHttpRequest();
        if (ImageBrowserHttp_request.overrideMimeType) {
            ImageBrowserHttp_request.overrideMimeType('text/xml');
            // zu dieser Zeile siehe weiter unten
        }
    } else if (window.ActiveXObject) { // IE
        try {
            ImageBrowserHttp_request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                ImageBrowserHttp_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
        }
    }

    if (!ImageBrowserHttp_request) {
        alert('Ende :( Kann keine XMLHTTP-Instanz erzeugen');
        return false;
    }

	//var Content = document.getElementById(BoxId).innerHTML;
    document.body.appendChild(Obj); // Obj dem Body hinzufügen
    document.body.appendChild(Box); // Box dem Body hinzufügen
	document.getElementById(BoxId).innerHTML = '<div style="text-align: center; padding-top: 20%;"><img src="system/images/ajax-loading.gif" alt="Laden..." /></div>';

    ImageBrowserHttp_request.onreadystatechange = function() {

        if (ImageBrowserHttp_request.readyState == 4) {

            if (ImageBrowserHttp_request.status == 200) {
                //alert(ImageBrowserHttp_request.responseText);

                var xml = ImageBrowserHttp_request.responseXML;
                var array = xml.getElementsByTagName("item");
                var rows = '';

                for (var i = 0; i < array.length; i++) {
                	var img_name = array[i].getElementsByTagName("name")[0].childNodes[0].data;
                	var img_width = array[i].getElementsByTagName("width")[0].childNodes[0].data;
                	var img_height = array[i].getElementsByTagName("height")[0].childNodes[0].data;

                	rows = rows + '<a href="#" onclick="ImageBrowserInsert(\''+inputid+'\', \''+img_name+'\');"><img src="' + img_name + '" alt="'+img_name+'" class="ImageBrowser" /></a>';
                }
                document.getElementById(BoxId).innerHTML = '<div class="box6" style="font-size: 14px; font-weight: bold; color: white;">Grafiken</div>' + rows;

            } else {
                alert('Bei dem Request ist ein Problem aufgetreten.');
            }
        }

    };
    ImageBrowserHttp_request.open('GET', 'system/xml/imagebrowser.xml.php', true);
    ImageBrowserHttp_request.send(null);

    // Ende AJAX

}






// Admin Funktionen //
function MenuUserSearch() {
	STR=window.prompt('Bitte Benutzernamen eingeben:', '');
	if(STR)	{
		location.href='?admin=user&search_username='+STR;
	}
}


function e2rCheckboxList(e2rform, actionvalue) {

	document.e2rform.action.value = actionvalue;
	document.e2rform.submit();
}

var ismarked=false;
function e2rCheckAll(e2rform, checkboxname) {
    var no;
    var m = document.e2rform;
    no = m.elements[checkboxname].length;

    if(!ismarked) {
        if(!no) {
            m.elements[checkboxname].checked = 'checked';
        }
        else {
            for(i=0;i<no;i++) {
                m.elements[checkboxname][i].checked='checked';
            }
        }
        ismarked=true;
    }
    else {
        if(!no) {
            m.elements[checkboxname].checked = '';
        }
        else {
            for(i=0;i<no;i++) {
                m.elements[checkboxname][i].checked='';
            }
        }
        ismarked=false;
    }
}

function e2rIsChecked(e2rform, checkboxname) {

    if(document.e2rform && document.e2rform.elements[checkboxname]) {

        var checkboxnum = document.e2rform.elements[checkboxname].length;
        var unchecked=0;

        if(typeof(checkboxnum) == 'undefined') {
        	var array = document.getElementsByName(checkboxname);

        	if(array[0].checked !== true) {
        		return false;
        	} else {
        		return true;
        	}
        } else {

            for(i=0;i < checkboxnum; i++) {
                if(document.e2rform.elements[checkboxname][i].checked !== true) {
                    unchecked = unchecked + 1;
                }
            }

            if(unchecked == checkboxnum) {
                return false;
            } else {
                return true;
            }
        }
    } else {
        return false;
    }

}

function bbSmilies(textareaid) {
	smiliedir = 'system/images/smilies/';


	var smilies = new Array();
	var limit = 14;
	smilies[':cry:'] = smiliedir + 'cry.gif';
	smilies[':embarassed:'] = smiliedir + 'embarassed.gif';
	smilies[':evil:'] = smiliedir + 'evil.gif';
	smilies[':exclaim:'] = smiliedir + 'exclaim.gif';
	smilies[':frown:'] = smiliedir + 'frown.gif';
	smilies[':grin:'] = smiliedir + 'grin.gif';
	smilies[':lick:'] = smiliedir + 'lick.gif';
	smilies[':long-face:'] = smiliedir + 'long-face.gif';
	smilies[':normal:'] = smiliedir + 'normal.gif';
	smilies[':ppp:'] = smiliedir + 'ppp.gif';
	smilies[':sad:'] = smiliedir + 'sad.gif';
	smilies[':shock:'] = smiliedir + 'shock.gif';
	smilies[':smile:'] = smiliedir + 'smile.gif';
	smilies[':boer:'] = smiliedir + 'boer.gif';

	var output = '';
	var image = '';
	var key = '';

	var num = 0;
    for(key in smilies)
    {
    	if(num < limit) {
		code = key;
		image = smilies[key];
            if(image.length != 0 || code.length != 0) {
            output += '<img src="'+image+'" alt="'+code+'" onclick="bbInsert2(\''+textareaid+'\', \''+code+'\');" style="margin: 3px;" />';
            }
		}
		num++;
    }
	document.write('<div style="width: 120px;">'+ output +'</div>');
}


// BB-Code Funktionen //
prompttype = new Array('Bitte Text eingeben, der formatiert werden soll:',
					  'Komplette URL zum Bild angeben:',
					  'Bitte geben Sie das Zitat ein:'
					  );

function bbShowButtons(textareaid) {
	document.write('<div style="padding: 2px; margin-left: 1px; margin-bottom: 1px;">');

	document.write('<input style="font-weight: bold;" value="b" type="button" onclick="bbInsert(\''+textareaid+'\', \'[b]\', \'[/b]\', \'0\');" /> ');
	document.write('<input style="font-style: italic;" value="i" type="button" onclick="bbInsert(\''+textareaid+'\', \'[i]\', \'[/i]\', \'0\');" /> ');
	document.write('<input style="text-decoration: underline;" value="u" type="button" onclick="bbInsert(\''+textareaid+'\', \'[u]\', \'[/u]\', \'0\');" /> ');
	document.write('<input value="Bild" type="button" onclick="bbPrompt(\''+textareaid+'\', \'[img]\', \'[/img]\', \'1\');" /> ');
	document.write('<input value="URL" type="button" onclick="bbURL(\''+textareaid+'\');" /> ');
	document.write('<input value="Zitat" type="button" onclick="bbInsert(\''+textareaid+'\', \'[quote]\', \'[/quote]\', \'2\');" /> ');


	document.write('<input value="Zentriert" type="button" onclick="bbInsert(\''+textareaid+'\', \'[center]\', \'[/center]\', \'0\');" /> ');
	document.write('<input value="Links" type="button" onclick="bbInsert(\''+textareaid+'\', \'[left]\', \'[/left]\', \'0\');" /> ');

	document.write('<input value="Rechts" type="button" onclick="bbInsert(\''+textareaid+'\', \'[right]\', \'[/right]\', \'0\');" /> ');
	//document.write('<input value="Block" type="button" onclick="bbInsert(\''+textareaid+'\', \'[jusity]\', \'[/justify]\', \'0\');" /> ');
	document.write('</div>');
}

function bbURL(tid) {
	var textarea = document.getElementById(tid);
	var URL;
	var Titel;
	URL = window.prompt('Bitte geben Sie den gewünschten Link ein:', 'http://');
	if(URL) {
		Titel = window.prompt('Bitte geben Sie den Titel des Linkes ein:', '');
		if(Titel) {
            Neu = textarea.value + '[url=' + URL + ']' + Titel + '[/url]';
            textarea.value = Neu;
        }
	}
	textarea.focus();
}


function bbPrompt(tid, tag1, tag2, ptext) {
	var textarea = document.getElementById(tid);
	var Value;
	Value = window.prompt(prompttype[ptext], '');
	if(Value) {
        Neu = textarea.value + tag1 + Value + tag2;
        textarea.value = Neu;
	}
	textarea.focus();
}
function bbInsert2(textarea, content) {
    var input = document.getElementById(textarea);
	input.value = input.value + content;
    input.focus();
}
function bbInsert(textarea, aTag, eTag, ptext) {
    var input = document.getElementById(textarea);
    input.focus();
    /* für Internet Explorer */
    if(typeof document.selection != 'undefined') {
        /* Einfügen des Formatierungscodes */
        var range = document.selection.createRange();
        var insText = range.text;
        var laenge = range.text.length;

        // Wenn kein Textmarkiert ist...
        if(laenge == 0) {
        	bbPrompt(textarea, aTag, eTag, ptext);
        }
        else {
            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;

		// Wenn kein Text markiert ist..
        if(start == end) {
			bbPrompt(textarea, aTag, eTag, ptext);
        }
        else {
            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);
    }
}

// Popup Funktionen //

function popUpImg(img) {
   myImg = new Image();
   myImg.src = img;
   var width = myImg.width;
   var height = myImg.height;
   imgWin = window.open('', 'imgWinName', 'width=' + width + ', height=' + height);

   with (imgWin.document) {
      open();
      write('<HTML>');
      write(' <HEAD>');
      write(' <title>imgWin</title>');
      write(' </HEAD>');
      write(' <BODY style="margin: 0px;" onLoad="self.focus();">');
      write(' <a href="" onClick="JavaScript:self.close()">')
      write(' <img src="' + img + '" alt="popUpImage" title="popUpImage" border="0"></a>');
      write(' </BODY>');
      write('</HTML>');
      close();
   }
}

function popup(url, width, height) {
	if(width > 0) {
		w = width;
	} else {
		w = 460;
	}
	if(height > 0) {
		h = height;
	} else {
		h = 300;
	}
	window.open(url , "Popup" ,"width="+ w +",height="+ h +",resizable=yes, scrollbars=yes, toolbar=no, location=no, menubar=no");
}

/*
function popup(was) {
	window.open("popup.php?file=" + was,"Popup","width=460,height=300,resizable=yes, scrollbars=yes, toolbar=no, location=no, menubar=no");
}*/

function popup_big(was) {
	window.open(was,"Popup","width=860,height=650,resizable=yes, scrollbars=yes, toolbar=no, location=no, menubar=no");
}


// Andere Funktionen

function validemail(s) {
    var a = false;
    var res = false;
    if(typeof(RegExp) == 'function')
    {
        var b = new RegExp('abc');
        if(b.test('abc') == true){a = true;}
    }

    if(a == true)
    {
        reg = new RegExp('^([a-zA-Z0-9\\-\\.\\_]+)'+
                       '(\\@)([a-zA-Z0-9\\-\\.]+)'+
                       '(\\.)([a-zA-Z]{2,4})$');
        res = (reg.test(s));
    }
    else
    {
        res = (s.search('@') >= 1 &&
             s.lastIndexOf('.') > s.search('@') &&
             s.lastIndexOf('.') >= s.length-5)
    }
    return(res);
}

function ShowScriptUpload(id) {
	if(document.getElementById('script' + id).checked == true) {
		document.getElementById('upload' + id).style.display = "";
	}
	else {
		document.getElementById('upload' + id).style.display = "none";
	}
}

function quicknavi(id) {
	document.location.href= document.getElementById(id).value;
}

function expandcollapse( ptr )
{
  var img = ptr.firstChild;
  var contentspan = ptr.nextSibling.nextSibling;

  /* img und contentspan benutzen ... */
}


function sety(smilie) {
    smilie = ""+smilie+"";
    document.form1.text.value=document.form1.text.value + smilie
}

function expand(listID) {
	if (listID.style.display=="none") {
		listID.style.display="";
	} else {
		listID.style.display="none";
	}
	window.event.cancelBubble=true;
}

function contract(listID) {
	if (listID.style.display=="show") {
	        listID.style.display="";
	} else {
	        listID.style.display="none";
	}
	window.event.cancelBubble=true;
}

function swap (id) {
  if (document.getElementById("div_" + id).style.display == "none") {
    document.getElementById("img_" + id).src = "minus.gif";
    document.getElementById("div_" + id).style.display = "";
  } else {
    document.getElementById("img_" + id).src = "plus.gif";
    document.getElementById("div_" + id).style.display = "none";
  }
}

function swap_menu (id) {
  if (document.getElementById("div_" + id).style.display == "none") {
    document.getElementById("div_" + id).style.display = "";
  } else {
    document.getElementById("div_" + id).style.display = "none";
  }
}

function insert(code, id) {
	document.getElementById(id).value = document.getElementById(id).value + code;
}

function set(smilie) {
    smilie = ""+smilie+"";
    document.eintrag.inhalt.value=document.eintrag.inhalt.value + smilie
}
