MediaWiki:Skin/Spezial:Hochladen.js: Unterschied zwischen den Versionen

aus Kamelopedia, der wüsten Enzyklopädie
Zur Navigation springen Zur Suche springen
K
 
(73 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
function einaus2 (inhalt, einblenden, ausblenden) {
 +
    var thisLevel  = document.getElementById(inhalt);
 +
    var otherLevel = document.getElementById(einblenden);
 +
    var linkLevel  = document.getElementById(ausblenden);
 +
    if (thisLevel.style.display == 'none') {
 +
        thisLevel.style.display = 'block';
 +
        otherLevel.style.display = 'none';
 +
        linkLevel.style.display = 'block';
 +
    } else {
 +
        thisLevel.style.display = 'none';
 +
        otherLevel.style.display = 'block';
 +
        linkLevel.style.display = 'none';
 +
    }
 +
  }
 
/* === Hochlade-Seite === */
 
/* === Hochlade-Seite === */
  
 
var box; // Globale Variable
 
var box; // Globale Variable
 
+
var BGcolor = [ "red", "green", "gray" ];
 
/*
 
/*
 
  * generieren der Datenstruktur aus DPL-Ergebnissen - #1: AJAX-Request
 
  * generieren der Datenstruktur aus DPL-Ergebnissen - #1: AJAX-Request
 
  */
 
  */
 
var imgklick = new Array();
 
var imgklick = new Array();
var BGcolor= new Array("red", "green", "gray");
 
var ButtonStyle0="width:170px;color:"+BGcolor[0]+";font-size:1.0em;font-weight:bold";
 
var ButtonStyle1="width:170px;color:"+BGcolor[1]+";font-size:1.0em;font-weight:bold";
 
var ButtonStyle2="width:170px;color:"+BGcolor[2]+";font-size:1.0em;font-weight:bold";
 
  
alert("Sorry für die vielen Klickboxen, aber hier wird gerade Käferjagd betrieben");
 
addOnloadHook(mk_ajax);
 
 
function mk_ajax()
 
function mk_ajax()
 
{
 
{
  
var imgAjax = new Ajax.Request(
+
jQuery.ajax( {
            wgScript,
+
url: wgScript,
            {
+
context: document.body,
                method: 'get',  
+
dataType: "text",  
                parameters: 'title=Kamelopedia:Bildsuche/Klick-Tpl&action=raw&templates=expand',
+
data: 'title=Kamelopedia:Bildsuche/Klick-Tpl&action=raw&templates=expand',
                onComplete: function( req ) { gen_imgklick( req.responseText ); mkALL(); }
+
success: function( data, textStatus ) { gen_imgklick( data ); mkALL(); }
            }
+
} );
  );
 
 
}
 
}
 +
jQuery(document).ready(function() {
 +
 +
if (window.location.href.indexOf("wpForReUpload=1") == -1){  //nicht beim Re-Upload
 +
      mk_ajax(); 
 +
  } else {
 +
  out = "<p style='padding: 20px; font-weight: bold;'>Geänderten Lizenz-Kram bitte nach dem Hochladen der neuen Version durch Bearbeiten der Datei-Seite anpassen.</p>";
 +
  jQuery('#klicktag').html(out);
 +
    }
 +
});
  
 
/*
 
/*
Zeile 61: Zeile 77:
 
                 else if( type == "*" ) // Argument
 
                 else if( type == "*" ) // Argument
 
                 {
 
                 {
                 opts = imgklick[imgklick.length-1].opts
+
                 opts = imgklick[imgklick.length-1].opts;
 
                 opts[opts.length-1].args.push( { arg: elements[0], type: elements[1], info: elements[2], pre: elements[3], options: elements.slice(4) } );
 
                 opts[opts.length-1].args.push( { arg: elements[0], type: elements[1], info: elements[2], pre: elements[3], options: elements.slice(4) } );
 
                 }
 
                 }
Zeile 109: Zeile 125:
 
if( obj.innerHTML == msg_OK[msg_OK_counter] )
 
if( obj.innerHTML == msg_OK[msg_OK_counter] )
 
msg_counter_up();
 
msg_counter_up();
obj.innerHTML = msg_OK[msg_OK_counter];
+
//wirft Fehler im IE7 & 8
 +
  //obj.innerHTML = msg_OK[msg_OK_counter];
 +
  jqobj = obj;
 +
  jQuery(jqobj).html(msg_OK[msg_OK_counter]);
 
msg_counter_up();
 
msg_counter_up();
 
}
 
}
Zeile 127: Zeile 146:
 
{
 
{
 
out = create_opts( element, t.value );
 
out = create_opts( element, t.value );
document.getElementById(imgklick[element].name+"_opt").innerHTML = out;
+
jout =  document.getElementById(imgklick[element].name+"_opt");
 +
jQuery(jout).html(out);
 
return true;
 
return true;
 
};
 
};
Zeile 172: Zeile 192:
 
                         }
 
                         }
 
                         out += "</select>";
 
                         out += "</select>";
                 }else{
+
                 }
if (imgklick[element].opts[val].args[i].options[0]){wdt=imgklick[element].opts[val].args[i].options[0];}else{wdt="150px";}
+
else
out += arg.info + " <input type='" + arg.type + "' style='width:"+wdt+"' value='"+arg.pre+"' id='"+imgklick[element].name+"_arg_" + i + "'/>&nbsp;";}
+
{
 +
if (imgklick[element].opts[val].args[i].options[0])
 +
{
 +
wdt=imgklick[element].opts[val].args[i].options[0];
 +
}
 +
else
 +
{
 +
wdt="150px";
 +
}
 +
out += arg.info + " <input type='" + arg.type + "' style='width:"+wdt+"' value='"+arg.pre+"' id='"+imgklick[element].name+"_arg_" + i + "'/>&nbsp;";
 +
}
 
}
 
}
 
return out;
 
return out;
Zeile 184: Zeile 214:
 
function mk_add( element )
 
function mk_add( element )
 
{
 
{
        alert("klick!");
 
 
obj = imgklick[element].opts[document.getElementById(imgklick[element].name+"_select").value];
 
obj = imgklick[element].opts[document.getElementById(imgklick[element].name+"_select").value];
 
var args = "";
 
var args = "";
        alert("vor der Schleife");
 
 
for( i=0; i<obj.args.length; i++ )
 
for( i=0; i<obj.args.length; i++ )
 
{
 
{
 
args += "|" + obj.args[i].arg + "=" + document.getElementById(imgklick[element].name+"_arg_"+i).value;
 
args += "|" + obj.args[i].arg + "=" + document.getElementById(imgklick[element].name+"_arg_"+i).value;
 
}
 
}
        alert("nach der Schleife");
 
 
var val = "{{"+globalPrefix+imgklick[element].prefix+globalSep+obj.vorlage+args+"}}";
 
var val = "{{"+globalPrefix+imgklick[element].prefix+globalSep+obj.vorlage+args+"}}";
  
 
var arg = imgklick[element].arg;
 
var arg = imgklick[element].arg;
        alert("Achtung Regex");
 
 
var reg = new RegExp("[{][{]"+grundvorlage.name+"[\s\n\r]*([|](.|\n|\r)*)?[}][}]");
 
var reg = new RegExp("[{][{]"+grundvorlage.name+"[\s\n\r]*([|](.|\n|\r)*)?[}][}]");
 
var reg_has_arg = new RegExp("([{][{]"+grundvorlage.name+"[\s\n\r]*([|](.|\n|\r)*)?[|][\s\n]*"+arg+"=)((.|\n|\r)*}})");
 
var reg_has_arg = new RegExp("([{][{]"+grundvorlage.name+"[\s\n\r]*([|](.|\n|\r)*)?[|][\s\n]*"+arg+"=)((.|\n|\r)*}})");
 
var reg_hasnt_arg = new RegExp("([{][{]"+grundvorlage.name+"[\s\n\r]*)(([|](.|\n|\r)*)?[}][}])");
 
var reg_hasnt_arg = new RegExp("([{][{]"+grundvorlage.name+"[\s\n\r]*)(([|](.|\n|\r)*)?[}][}])");
        alert("GV suchen");
 
 
if ( -1 == box.value.search(reg) )
 
if ( -1 == box.value.search(reg) )
 
{ // kein Grundvorlage
 
{ // kein Grundvorlage
alert("Grundvorlage nicht gefunden.\n\n Falls du die Grundvorlage noch nicht eingefügt hast, solltest du das zu allererst tun und erst dann hiermit weitermachen. Den Knopf dafür findest du ein kleines Stückchen weiter oben!");
+
mk_add_g();
 
}
 
}
else
+
{
 
 
document.getElementById(imgklick[element].name+"_button").style.color=BGcolor[1];
 
document.getElementById(imgklick[element].name+"_button").style.color=BGcolor[1];
 
if ( -1 != box.value.search(reg_has_arg))
 
if ( -1 != box.value.search(reg_has_arg))
Zeile 214: Zeile 238:
  
 
add_msg( document.getElementById(imgklick[element].name+"_msg") );
 
add_msg( document.getElementById(imgklick[element].name+"_msg") );
};
+
 
}
 
}
  
Zeile 223: Zeile 247:
 
{
 
{
 
var out = "";
 
var out = "";
out += "<div style='border: 0px; border-bottom:1px solid gray; margin:0px; padding: 8px; padding-left:8px;'>";
+
out += "<div class='box1' >";
 
out += "<form>";
 
out += "<form>";
out += "<input type='button' id='text_box_button' style='"
+
out += "<table class='boxes'>";
if ( -1 == box.value.search(new RegExp("[{][{]"+grundvorlage.name+"(\s|\n|\r)*([|](.|\n|\r)*)?[}][}]")) ){
+
out += "</table>";
out += ButtonStyle0;
 
}else{
 
out += ButtonStyle2;
 
}
 
out += "' value='Grundvorlage&nbsp;einfügen' onclick='mk_add_g();'> Ohne die geht gar nichts! ";
 
out += " <span id='g_msg'></span>";
 
 
out += "</form>";
 
out += "</form>";
 
out += "</div>";
 
out += "</div>";
Zeile 242: Zeile 260:
 
{
 
{
 
var out = "";
 
var out = "";
out += "<div style='border: 1px; margin: 0px; padding: 5px;'>";
+
out += "<div class='box0' >";
 +
out += "<p class='angabe'>Beschreibende Markierungen</p>";
 
out += "<form>";
 
out += "<form>";
out += "<table>";
+
out += "<table class='boxes'>";
out += "<tr><td colspan='2'><small>Hier kannst du Schlüsselwörter angeben, bitte <b>durch Komma</b> trennen! Angeben kannst du z.B. Motiv, Farben, Besonderheiten, … . <b>Beachte bitte:</b> Mach die Tags kurz und knackig, z.B. <i>Kuh, Weiß, Lila, Violett</i>. Wenn du dein Bild mit <i>Eine weiß-violette Kuh</i> tagst (also ohne Kommas), wird es nur gefunden werden, wenn genau das ins Suchfeld eingegeben wird.</small></td></tr>";
+
out += "<tr><td colspan='2'><small>Hier kannst du <b>durch Komma</b> getrennte – Schlüsselwörter angeben (z.B. Motiv, Farben, Besonderheiten).<br /><b>Beachte bitte:</b> Mach die Tags kurz und knackig, z.B. <i>Kuh, Weiß, Lila, Violett</i>. </small></td></tr>";
 
out += "</td></tr>";
 
out += "</td></tr>";
out += "<tr><td>";
+
out += "<tr><td class='left'>";
out += "<input type='button' id='tag_box_button' style='"+ButtonStyle0+"' value='Tags&nbsp;Hinzufügen' onclick='mk_add_tags();'>";
+
out += "<textarea id='tag_box' style='width: 90%;'></textarea>";
out += "</td><td width='90%'><textarea id='tag_box' style='width:100%'></textarea></td></tr>";
+
out += "</td><td class='right' valign='top'>";
out += "</table>";
+
out += "<input type='button' id='tag_box_button' class='buttonStyle0' value='Hinzufügen' onclick='mk_add_tags();'>";
 
out += " <span id='tag_msg'></span>";
 
out += " <span id='tag_msg'></span>";
 +
out += "</td></tr></table>";
 
out += "</form>";
 
out += "</form>";
 
out += "</div>";
 
out += "</div>";
Zeile 269: Zeile 289:
 
if ( -1 == box.value.search(reg) )
 
if ( -1 == box.value.search(reg) )
 
{ // kein Grundvorlage
 
{ // kein Grundvorlage
alert("Grundvorlage nicht gefunden.\n\n Falls du die Grundvorlage noch nicht eingefügt hast, solltest du das zu allererst tun und erst dann hiermit weitermachen. Den Knopf dafür findest du ein kleines Stückchen weiter oben!");
+
mk_add_g();
return;
+
}
}
+
else
 
{
 
 
document.getElementById("tag_box_button").style.color=BGcolor[1];
 
document.getElementById("tag_box_button").style.color=BGcolor[1];
 
if ( -1 != box.value.search(reg_has_arg))
 
if ( -1 != box.value.search(reg_has_arg))
Zeile 280: Zeile 298:
 
box.value = box.value.replace( reg_hasnt_arg, "$1|"+tag_arg+"=\n"+val+"\n$2");
 
box.value = box.value.replace( reg_hasnt_arg, "$1|"+tag_arg+"=\n"+val+"\n$2");
 
add_msg(document.getElementById("tag_msg"));
 
add_msg(document.getElementById("tag_msg"));
}
+
 
}
 
}
  
Zeile 291: Zeile 309:
 
{
 
{
 
box.value += "{{"+grundvorlage.einfg+"}}";
 
box.value += "{{"+grundvorlage.einfg+"}}";
add_msg(document.getElementById("g_msg"));
+
//add_msg(document.getElementById("g_msg"));
document.getElementById("text_box_button").style.color=BGcolor[2];
+
//document.getElementById("text_box_button").style.color=BGcolor[2];
 
}
 
}
else
+
else {
 
alert("Wiki sagt: Ich glaube, da gibt es schon eine Grundvorlage.");
 
alert("Wiki sagt: Ich glaube, da gibt es schon eine Grundvorlage.");
 +
}
 +
return;
 
}
 
}
  
Zeile 305: Zeile 325:
 
function mkALL()
 
function mkALL()
 
{
 
{
        alert("Los gehts");
 
 
box = document.getElementById("wpUploadDescription");
 
box = document.getElementById("wpUploadDescription");
         alert("Box: "+box);
+
         var klapp1 = "";
 +
        var klapp2 = "";
  
 
if ( ! box || box == null )
 
if ( ! box || box == null )
 
{ // Bild wird nicht hochgeladen, sondern bearbeitet!
 
{ // Bild wird nicht hochgeladen, sondern bearbeitet!
                 alert("Switch:Boxbearbeitung");
+
                 klapp1 = "<div id='lboxein' style='padding:5px;'><a href='javascript:einaus2(\"lbox\",\"lboxein\",\"lboxaus\")'>[Bild-Lizenz-Box anzeigen]</a></div><div id='lboxaus' style='display:none;padding:5px;border-bottom:1px solid #aaa;'><a href='javascript:einaus2(\"lbox\",\"lboxein\",\"lboxaus\")'>[Bild-Lizenz-Box verbergen]</a> (Hinweis: Grundvorlage muss nicht mehr per Huf eingefügt werden)</div><div id='lbox' style='display:none;'>";
 +
                klapp2 = "</div>";
 
box = document.getElementById("wpTextbox1");
 
box = document.getElementById("wpTextbox1");
 
var ibox = document.createElement("div");
 
var ibox = document.createElement("div");
 
ibox.id = "klicktag";
 
ibox.id = "klicktag";
tb = document.getElementById("toolbar");
+
tb = document.getElementById("wpTextbox1");
 
if ( tb )
 
if ( tb )
 
tb.parentNode.insertBefore(ibox, tb);
 
tb.parentNode.insertBefore(ibox, tb);
Zeile 323: Zeile 344:
 
if (  ! box || box == null )
 
if (  ! box || box == null )
 
         {
 
         {
                alert("Switch: GEHT NICHT!");
 
 
return;
 
return;
 
         }
 
         }
  
 
var out = "";
 
var out = "";
out += mk_g_box();
+
//out += mk_g_box();
 
//---------------------------------------------------
 
//---------------------------------------------------
 
for ( e=0; e<imgklick.length; e++ ) {
 
for ( e=0; e<imgklick.length; e++ ) {
out += "<div style='border: 0px; border-bottom:1px solid gray; margin: 0px; padding: 5px;'>";
+
out += "<div class='box1'>";
 +
out += "<p class='angabe'>Angaben zur "+ imgklick[e].name + "</p>";
 
out += "<form>";
 
out += "<form>";
out += "<table>";
+
out += "<table class='boxes'>";
out += "<tr><td width='160px'>";
+
out += "<tr><td class='left'>";
out += "<input type='button' id='"+imgklick[e].name+"_button' style='"+ButtonStyle0+"' value='"+imgklick[e].name+"&nbsp;hinzufügen' onclick='mk_add("+e+");'>";
 
out += "</td><td>";
 
 
out += "<select name='" + e + "' id='" + imgklick[e].name + "_select' size='1' onchange='mk_opts( "+e+", this );'>";
 
out += "<select name='" + e + "' id='" + imgklick[e].name + "_select' size='1' onchange='mk_opts( "+e+", this );'>";
 +
 +
var selectedIndex = null;var selectedIndex = null;
 
for ( i = 0; i<imgklick[e].opts.length; i++ )
 
for ( i = 0; i<imgklick[e].opts.length; i++ )
 
{
 
{
if ( imgklick[e].opts[i].selected == "selected" )
+
var sel = "";
 +
if ( imgklick[e].opts[i].selected == "selected" && selectedIndex == null )
 +
{
 
sel=' selected="selected" ';
 
sel=' selected="selected" ';
 +
selectedIndex=i;
 +
}
 
else
 
else
 
sel = '';
 
sel = '';
 
out += "<option value='" + i + "'"+sel+">" + imgklick[e].opts[i].name + "</option>";
 
out += "<option value='" + i + "'"+sel+">" + imgklick[e].opts[i].name + "</option>";
 
}
 
}
 +
 +
if ( selectedIndex == null )
 +
selectedIndex = 0;
 
out += "</select>";
 
out += "</select>";
out += " <span id='" + imgklick[e].name + "_opt'>"+create_opts( e, 0 )+"</span> ";
+
out += " <span id='" + imgklick[e].name + "_opt'>"+create_opts( e, selectedIndex )+"</span> ";
 +
out += "</td><td class='right' valign='top'>";
 +
out += "<input type='button' id='"+imgklick[e].name+"_button' class='buttonStyle0' value='Hinzufügen' onclick='mk_add("+e+");'>";
 
out += " <span id='" + imgklick[e].name + "_msg'></span>";
 
out += " <span id='" + imgklick[e].name + "_msg'></span>";
 
out += "</td></tr></table>";
 
out += "</td></tr></table>";
Zeile 356: Zeile 386:
 
//-------------------------------------------------------
 
//-------------------------------------------------------
 
out += mk_tag_box();
 
out += mk_tag_box();
document.getElementById("klicktag").innerHTML = "<div style='border:4px ridge #4264FB;' >" + out + "</div>";
+
        jout = klapp1 + "<div class='outer' >" + out + "</div>" + klapp2;
 +
        jQuery('#klicktag').html(jout);
 
};
 
};

Aktuelle Version vom 1. Februar 2014, 00:15 Uhr

function einaus2 (inhalt, einblenden, ausblenden) {
    var thisLevel  = document.getElementById(inhalt);
    var otherLevel = document.getElementById(einblenden);
    var linkLevel  = document.getElementById(ausblenden);
    if (thisLevel.style.display == 'none') {
        thisLevel.style.display = 'block';
        otherLevel.style.display = 'none';
        linkLevel.style.display = 'block';
    } else {
        thisLevel.style.display = 'none';
        otherLevel.style.display = 'block';
        linkLevel.style.display = 'none';
    }
  }
/* === Hochlade-Seite === */

var box; // Globale Variable
var BGcolor = [ "red", "green", "gray" ];
/*
 * generieren der Datenstruktur aus DPL-Ergebnissen - #1: AJAX-Request
 */
var imgklick = new Array();

function mk_ajax()
{

	jQuery.ajax( {
		url: wgScript,
		context: document.body,
		dataType: "text", 
		data: 'title=Kamelopedia:Bildsuche/Klick-Tpl&action=raw&templates=expand',
		success: function( data, textStatus ) { gen_imgklick( data ); mkALL(); }
	} );
}
jQuery(document).ready(function() {

if (window.location.href.indexOf("wpForReUpload=1") == -1){   //nicht beim Re-Upload
      mk_ajax();  
	  } else {
	   out = "<p style='padding: 20px; font-weight: bold;'>Geänderten Lizenz-Kram bitte nach dem Hochladen der neuen Version durch Bearbeiten der Datei-Seite anpassen.</p>";
	   jQuery('#klicktag').html(out);
	  	  }
});

/*
 * generieren der Datenstruktur aus DPL-Ergebnissen - #2: Parser
 */
function gen_imgklick( txt )
{

        txt = txt.replace(/ *[|¦] */g, "|");
        txt = txt.replace(/[\n\r]+/g, "\n" );

        /* Sicherheits-Feature: HTML-Tags weg (bis auf <br>) */
        txt = txt.replace(/[<]/g, "&lt;" );
        txt = txt.replace(/[>]/g, "&gt;" );
        txt = txt.replace( /&lt;br *\/? *&gt;/g, "<br/>" );
        lines = txt.split( "\n" );
//alert(txt);
        for( i=0; i<lines.length; i++ )
        {
                //zeile auslesen
                type = lines[i].substring(0,1);
                lines[i] = lines[i].substring(1);
                elements = lines[i].split( "|" );
                
                if( type == ";" ) // Vorlage
                {
                if ( elements[4] == "no" ) // ignorieren-Flag gesetzt
                        continue;
                if ( elements[2] == "" )
                        elements[2] = elements[1];
                if ( ! imgklick[0] || imgklick[imgklick.length-1].name != elements[0] )
                        imgklick.push( { name: elements[0], arg: elements[0], prefix:elements[0], opts: [ ] } );
                imgklick[imgklick.length-1].opts.push( { name: elements[2], info: elements[3], vorlage: elements[1], args: [ ], selected: elements[4] } );
                }
                else if( type == "*" ) // Argument
                {
                opts = imgklick[imgklick.length-1].opts;
                opts[opts.length-1].args.push( { arg: elements[0], type: elements[1], info: elements[2], pre: elements[3], options: elements.slice(4) } );
                }
        }
}

/*
 * Benutzer-Rückmeldungen:
 */
msg_OK = 
[
	"In Ordnung.",
	"Aber gerne.",
	"Bitteschön.",
	"Klar doch!",
	"Kein Problem.",
	"Jawohl.",
	"Gerne doch."
];


// name: Wie heißt die Grundvorlage?
// einfg: Wie soll sie am Anfang eingefügt werden?
grundvorlage =
{ 
	name: "Bild",
	einfg: "Bild\n"
};

// Welches Argument ("|xxxx=") soll für die Tags verwendet werden?
tag_arg = "Motiv";

// globales Prefix für Vorlagen (Grundvorlage ausgenommen)
globalPrefix = "Bild/";
// globaler Separator
globalSep = ": ";

/* Programmablauf */

/*
 * Den Nachrichtenzähler auf irgendwas setzen
 */
msg_OK_counter = Math.floor( Math.random() * msg_OK.length );

function add_msg( obj )
{
	if( obj.innerHTML == msg_OK[msg_OK_counter] )
		msg_counter_up();
		//wirft Fehler im IE7 & 8
	  //obj.innerHTML = msg_OK[msg_OK_counter];
	  jqobj = obj;
	  jQuery(jqobj).html(msg_OK[msg_OK_counter]);
	msg_counter_up();
}

function msg_counter_up()
{
	msg_OK_counter++;
	if ( msg_OK_counter >= msg_OK.length )
		msg_OK_counter = 0;
}
/*
 * fügt zu einer Auswahl die Optionsbeschreibung und die Argumente ein.
 * element: nummer des Arrayelementes ( imgklick[?] )
 * t: das Auswahlelement (select)
 */
function mk_opts( element, t )
{
	out = create_opts( element, t.value );
	jout =  document.getElementById(imgklick[element].name+"_opt");
	jQuery(jout).html(out);
	return true;
};

/*
 * gibt zu einer Auswahl die Optionsbeschreibung zurück.
 * element: nummer des Arrayelementes imgklick[?]
 * val: nummer des Arrayelements imgklick[].opts[?] bzw. Nummer der Auswahl
 */
function create_opts( element, val )
{
	var out = imgklick[element].opts[val].info + "<br/>";
	var wdt;// optionale Variable für die Breite eines Eingabefeldes
	for ( i = 0; i<imgklick[element].opts[val].args.length; i++ )
	{
		arg = imgklick[element].opts[val].args[i];
		if ( arg.type == "textarea" )
			out += "<br/>" + arg.info + " <textarea style='width: 90%;' id='"+imgklick[element].name+"_arg_" + i+"'>"+arg.pre+"</textarea>";
                else if ( arg.type == "select" && imgklick[element].opts[val].args[i].options != null && imgklick[element].opts[val].args[i].options[0] != null)
                {

                        out += "<br/>" + arg.info + " <select id='"+imgklick[element].name+"_arg_" + i+"'>";
                        for ( opt=0; opt<imgklick[element].opts[val].args[i].options.length; opt++ )
                        {

                                pos =  imgklick[element].opts[val].args[i].options[opt].indexOf("=");
                                var optkey; var optval;

                                if ( pos == -1 )
                                {
                                         optkey = imgklick[element].opts[val].args[i].options[opt];
                                         optval = imgklick[element].opts[val].args[i].options[opt];
                                }
                                else
                                {
                                         optval = imgklick[element].opts[val].args[i].options[opt].substring(0,pos);
                                         optkey = imgklick[element].opts[val].args[i].options[opt].substring(pos+1);
                                }
                                var sel = "";
                                if ( optkey == imgklick[element].opts[val].args[i].pre )
                                        sel = "select='selected'"; 
                                out += "<option value='"+optval+"' "+sel+">"+optkey+"</option>";
                                
                        }
                        out += "</select>";
                }
		else
		{
			if (imgklick[element].opts[val].args[i].options[0])
			{
				wdt=imgklick[element].opts[val].args[i].options[0];
			}
			else
			{
				wdt="150px";
			}
			out += arg.info + " <input type='" + arg.type + "' style='width:"+wdt+"' value='"+arg.pre+"' id='"+imgklick[element].name+"_arg_" + i + "'/>&nbsp;";
		}
	}
	return out;
}

/*
 * fügt Text in die Textbox ein (eigentliches Klicktag)
 */
function mk_add( element )
{
	obj = imgklick[element].opts[document.getElementById(imgklick[element].name+"_select").value];
	var args = "";
	for( i=0; i<obj.args.length; i++ )
	{
		args += "|" + obj.args[i].arg + "=" + document.getElementById(imgklick[element].name+"_arg_"+i).value;
	}
	var val = "{{"+globalPrefix+imgklick[element].prefix+globalSep+obj.vorlage+args+"}}";

	var arg = imgklick[element].arg;
	var reg = new RegExp("[{][{]"+grundvorlage.name+"[\s\n\r]*([|](.|\n|\r)*)?[}][}]");
	var reg_has_arg = new RegExp("([{][{]"+grundvorlage.name+"[\s\n\r]*([|](.|\n|\r)*)?[|][\s\n]*"+arg+"=)((.|\n|\r)*}})");
	var reg_hasnt_arg = new RegExp("([{][{]"+grundvorlage.name+"[\s\n\r]*)(([|](.|\n|\r)*)?[}][}])");
	if ( -1 == box.value.search(reg) )
	{ // kein Grundvorlage
		mk_add_g();
	}
	
		document.getElementById(imgklick[element].name+"_button").style.color=BGcolor[1];
		if ( -1 != box.value.search(reg_has_arg))
			box.value = box.value.replace( reg_has_arg, "$1\n"+val+"$4" );
		else
			box.value = box.value.replace( reg_hasnt_arg, "$1|"+arg+"=\n"+val+"\n$2");

		add_msg( document.getElementById(imgklick[element].name+"_msg") );	
	
}

/*
 * returnt eine Box zum Einfügen der übergeordneten Vorlage
 */
function mk_g_box ()
{
	var out = "";
	out += "<div class='box1' >";
	out += "<form>";
	out += "<table class='boxes'>";
	out += "</table>";
	out += "</form>";
	out += "</div>";
	return out;
}


function mk_tag_box ()
{
	var out = "";
	out += "<div class='box0' >";
	out += "<p class='angabe'>Beschreibende Markierungen</p>";
	out += "<form>";
	out += "<table class='boxes'>";
	out += "<tr><td colspan='2'><small>Hier kannst du – <b>durch Komma</b> getrennte – Schlüsselwörter angeben (z.B. Motiv, Farben, Besonderheiten).<br /><b>Beachte bitte:</b> Mach die Tags kurz und knackig, z.B. <i>Kuh, Weiß, Lila, Violett</i>. </small></td></tr>";
	out += "</td></tr>";
	out += "<tr><td class='left'>";
	out += "<textarea id='tag_box' style='width: 90%;'></textarea>";
	out += "</td><td class='right' valign='top'>";
	out += "<input type='button' id='tag_box_button' class='buttonStyle0' value='Hinzufügen' onclick='mk_add_tags();'>";
	out += " <span id='tag_msg'></span>";
	out += "</td></tr></table>";
	out += "</form>";
	out += "</div>";
	return out;
}



function mk_add_tags ()
{
	var val = document.getElementById("tag_box").value;

	var reg = new RegExp("[{][{]"+grundvorlage.name+"[\s\n\r]*([|](.|\n|\r)*)?[}][}]");
	var reg_has_arg = new RegExp("([{][{]"+grundvorlage.name+"[\s\n\r]*([|](.|\n|\r)*)?[|][\s\n\r]*"+tag_arg+"=[\s\n\r]*)((.|\n|\r)*[}][}])");
	var reg_hasnt_arg = new RegExp("([{][{]"+grundvorlage.name+"[\s\n\r]*)(([|](.|\n|\r)*)?[}][}])");

	if ( -1 == box.value.search(reg) )
	{ // kein Grundvorlage
		mk_add_g();
		}
	
		document.getElementById("tag_box_button").style.color=BGcolor[1];
		if ( -1 != box.value.search(reg_has_arg))
			box.value = box.value.replace( reg_has_arg, "$1"+val+", $4" );
		else
			box.value = box.value.replace( reg_hasnt_arg, "$1|"+tag_arg+"=\n"+val+"\n$2");
		add_msg(document.getElementById("tag_msg"));
	
}

/*
 * fügt die Grundvorlage ein
 */
function mk_add_g ()
{
	if ( -1 == box.value.search(new RegExp("[{][{]"+grundvorlage.name+"(\s|\n|\r)*([|](.|\n|\r)*)?[}][}]")) )
	{
		box.value += "{{"+grundvorlage.einfg+"}}";
		//add_msg(document.getElementById("g_msg"));
		//document.getElementById("text_box_button").style.color=BGcolor[2];
	}
	else {
		alert("Wiki sagt: Ich glaube, da gibt es schon eine Grundvorlage.");
		}
		return;
}


/*
 * am Anfang alles reinladen
 */

function mkALL()
{
	box = document.getElementById("wpUploadDescription");
        var klapp1 = "";
        var klapp2 = "";

	if ( ! box || box == null )
	{ // Bild wird nicht hochgeladen, sondern bearbeitet!
                klapp1 = "<div id='lboxein' style='padding:5px;'><a href='javascript:einaus2(\"lbox\",\"lboxein\",\"lboxaus\")'>[Bild-Lizenz-Box anzeigen]</a></div><div id='lboxaus' style='display:none;padding:5px;border-bottom:1px solid #aaa;'><a href='javascript:einaus2(\"lbox\",\"lboxein\",\"lboxaus\")'>[Bild-Lizenz-Box verbergen]</a> (Hinweis: Grundvorlage muss nicht mehr per Huf eingefügt werden)</div><div id='lbox' style='display:none;'>";
                klapp2 = "</div>";
		box = document.getElementById("wpTextbox1");
		var ibox = document.createElement("div");
		ibox.id = "klicktag";
		tb = document.getElementById("wpTextbox1");
		if ( tb )
			tb.parentNode.insertBefore(ibox, tb);
		else
			box.parentNode.insertBefore(ibox, box);
	}
	if (  ! box || box == null )
        {
		return;
        }

	var out = "";
	//out += mk_g_box();
//---------------------------------------------------
	for ( e=0; e<imgklick.length; e++ )	{
		out += "<div class='box1'>";
		out += "<p class='angabe'>Angaben zur "+ imgklick[e].name + "</p>";
		out += "<form>";
		out += "<table class='boxes'>";
		out += "<tr><td class='left'>";
		out += "<select name='" + e + "' id='" + imgklick[e].name + "_select' size='1' onchange='mk_opts( "+e+", this );'>";

		var selectedIndex = null;var selectedIndex = null;
		for ( i = 0; i<imgklick[e].opts.length; i++ )
		{
			var sel = "";
			if ( imgklick[e].opts[i].selected == "selected" && selectedIndex == null )
			{
					sel=' selected="selected" ';
					selectedIndex=i;
			}
			else
					sel = '';
			out += "<option value='" + i + "'"+sel+">" + imgklick[e].opts[i].name + "</option>";
		}

		if ( selectedIndex == null )
			selectedIndex = 0;
		out += "</select>";
		out += " <span id='" + imgklick[e].name + "_opt'>"+create_opts( e, selectedIndex )+"</span> ";
		out += "</td><td class='right' valign='top'>";
		out += "<input type='button' id='"+imgklick[e].name+"_button' class='buttonStyle0' value='Hinzufügen' onclick='mk_add("+e+");'>";
		out += " <span id='" + imgklick[e].name + "_msg'></span>";
		out += "</td></tr></table>";
		out += "</form>";
		out += "</div>";
	}

//-------------------------------------------------------
	out += mk_tag_box();
        jout = klapp1 + "<div class='outer' >" + out + "</div>" + klapp2;
        jQuery('#klicktag').html(jout);
};