/**
 * Diese Funktion registriert ein Modul im Continweb-Editor. 
 * der in value angegeben String kann Variablen enthalten, diese sind mit %x zu bezeichen, wobei x eine
 * auf 0 basierender Index der Parameterliste ist.
 * 
 * @param name : Der Modulname, wie er im Editor aufscheinen soll
 * @param attribute : Das Attribute, das vom Modul gesetzt werden soll (onclick, title...)
 * @value : Der Wert, der nach Ersetzen der Parameter fuer das Attribute gesetzt werden soll
 * @id : ein local eindeutiger id oder null fuer automatische Vergabe
 * @identifier: entweder 'lnk' oder 'img' oder 'both' (default). Gibt an wo das Modul anwendbar ist.
 * 
 * @return : eine auf 0 basierender fortlaufender  Index, ueber den das Modul identifiziert wird.
 */
function registerModule(name,attribute,value,id, identifier) {
	if (!this.CIW_modules) {
		this.CIW_modules = new Array();
	}
	count = CIW_modules.length;
	if (!id) {
		id = "CIW_" + count;
	}
	this.CIW_modules[count] = new Array();
	this.CIW_modules[count][0] = name;
	this.CIW_modules[count][1] = value;
	this.CIW_modules[count][2] = new Array();
	this.CIW_modules[count][3] = attribute;
	this.CIW_modules[count][4] = id;
	if (!identifier) {
		this.CIW_modules[count][5] = 'both';
	} else {
		this.CIW_modules[count][5] = identifier;
	}
	return count;
}


/**
 * Fuegt einen Parameter zu einem Modul hinzu.
 * @param module : der index des Moduls (wird von registerModule zurueckgegeben)
 * @param name : der Parametername, wie er im Editor aufscheinen soll
 * @param values : - ist values ein String, dann ist der Parameter als frei editierbarer Text definiert.
 * 	               - ist values ein Array, dann ist der Parameter als Auswahl (eins aus x) definiert.
 *				     dabei ist das 1./3./5./usw. Element im Array der Wert fuer den Parameter und 
 * 					 das 2./4./6./usw. Element der dazugehoerige Angezeigte Text im Select.
 */ 
function addParam(module,name,values,helptext) {
	var paramLength=this.CIW_modules[module][2].length;
	this.CIW_modules[module][2][paramLength] = new Array();
	this.CIW_modules[module][2][paramLength][0] = name;
	this.CIW_modules[module][2][paramLength][1] = values;
	if (!helptext) {
		this.CIW_modules[module][2][paramLength][2] = "keine Hilfe zu diesem Thema gefunden";
	} else {
		this.CIW_modules[module][2][paramLength][2] = helptext;
	}
}






newModule = registerModule('Rahmenloses Fenster oeffnen', 'onClick', 'CIW_openWindow(this,"%0","%1",%2,%3,%4,event);', 'CIW_01', 'lnk');
addParam(newModule, 'Breite','300','Geben Sie die Breite des zu oeffnenden Fensters in Pixel an');
addParam(newModule, 'Hoehe','200','Geben Sie die Hoehe des zu oeffnenden Fensters in Pixel an');
addParam(newModule, 'Navigationsleiste', new Array('0','verstecken','1','anzeigen'));
addParam(newModule, 'Statusleiste', new Array('0','verstecken','1','anzeigen'));
addParam(newModule, 'Scrollbars', new Array('1','anzeigen','0','verstecken'));

function CIW_openWindow(objA,x,y,nav,stat,scrl,event) {
	if (!nav) nav = 0;
	if (!stat) stat = 0;
	if (!scrl) scrl = 0;
   if (!event) event=window.event

  var target = objA.target;
  if (!target) target = "wnd";
  if (target == "_blank") target="wnd";
  
  if (window.parent.document.location.pathname.indexOf("ie_edit") < 0 || confirm("---EDITMODE---\n'Fenster öffnen' ausführen?")) {
    var wnd= window.open(objA.href, target, "menubar=" + nav + ",location= " + nav + ",resizable=1,height=" + y + ",width=" + x + ",scrollbars=" + scrl + ", status=" + stat + ",toolsbar=" + nav);
    wnd.focus();
    if (event) {
      event.cancelBubble=true;
      event.returnValue=false;
    }
    if (event.cancelable) {
      event.preventDefault();
    }
    return false;
  }
}

newModule = registerModule('Tool-Tip zeigen', 'title', '%0', 'CIW_03', 'both');
addParam(newModule, 'Tool-Tip','tooltip','Geben Sie den Text ein, der angezeigt werden soll, wenn der User den Mauszeiger auf dem Link stillhaelt.<br>Diese Funktion wird unter IE vom Alt-Text des Bildes ueberschrieben' );

newModule = registerModule('Alt-Text zeigen', 'alt', '%0', 'CIW_04' , 'img');
addParam(newModule, 'Alt-Text','','Geben Sie den Text ein, der angezeigt werden soll, wenn der User den Mauszeiger ueber dem Bild still haelt.<br>Diese Funktion ueberschreibt bereits bestehende Alt-Texte');




newModule = registerModule('Unscaled-Image-Window', 'onload', 'CIW_loadImageWindow(this,"%0","%1");', 'CIW_05', 'img');
addParam(newModule, 'Fenstertitel','','Geben Sie den Titel des Popup-Fensters an');
addParam(newModule, 'Max.Groesse','','Geben Sie maximale Hoehe oder Breite des Bildes ein. Ist das Original zu gross, wird es skaliert');
var imgWindow;
var preventClickBubble = false;

function CIW_loadImageWindow(objImg, winTitle, optMaxSize) {
  if (!preventClickBubble && (window.parent.document.location.pathname.indexOf("ie_edit") < 0)) {
  
  
  
  var copyMouseoverToClick = false;
  var e = window.event;
  if (e == null) {
    copyMouseoverToClick = objImg.onclick == undefined;
    notIE = true;
  } else {
    copyMouseoverToClick = (window.event.type == "mouseover" || window.event.type == "load");
  }
  if (copyMouseoverToClick) {
    
    if (objImg.tagName != "A" && objImg.parentNode.tagName != "A") {
      var objA=document.createElement("A");
      objA.href="#";
      objImg.parentNode.replaceChild(objA, objImg);
      objA.appendChild(objImg);
      
      objA.onclick = objImg.onmouseover;
      if (objA.onclick == undefined) {
        objA.onclick = objImg.onload;
      }
      
    } else {
      objImg.style.cursor="hand";
      objImg.onclick = objImg.onmouseover;
      objImg.href="#";
    }
    objImg.onmouseover = null;
    objImg.onload = null;
    //alert(objImg.parentNode.parentNode.innerHTML);
    
    objImg.className += (objImg.className==""?"":" ") + "enlarge";
    
    return;
  } 
  //alert("Step1");
  if(objImg.tagName =="A") {
    //alert("Step1a");
    objImg = objImg.childNodes[0];
  } 
  //alert("Step2");
  var src = objImg.src;
  var origImg = src;
  var part1 = "";

  if (src.indexOf("/scaler/x") >=0) {
    part1 = src.substring(0,src.indexOf("/scaler/x"));
    var part2 = src.substring(src.indexOf("/scaler/x") + 8);
    part2 = part2.substring(part2.indexOf("/") + 1);
    part2 = part2.substring(part2.indexOf("/") + 1);
    if (part2.substring(0,6) == "fixed/") {
      part2 = part2.substring(6);
    }
    origImg = part1 + "/" + part2;
  }
  var winSize=100
  //alert(origImg);
  if (optMaxSize && (optMaxSize != "null")) {
    winSize = optMaxSize;
    if (objImg.width > objImg.height) {
      url = "/scaler/x" + optMaxSize + "/y0/";
      origImg = part1 + url + part2;
	  } else {
      url = "/scaler/x0/y" + optMaxSize + "/";
      origImg = part1 + url + part2;
	  }  
  }
  
  
    //alert("Step3");
    try
  	{
  			imgWindow.close();
  	} catch (e) {
  	}
    //alert("Step4");
  
  	imgWindow = window.open("", "images", "status=1,resizeable=1,channelmode=0,width=10,height=10");

    try 
    {
      if (imgWindow.document.body.innerHTML.length > 0) {
        imgWindow.close();
        imgWindow = window.open("", "images", "statusbar=1,resizeable=1,channelmode=0,width=10,height=10");
      }
    } catch (e) {
    }
//alert("Step5");
  	var mx = window.screenLeft + (document.body.clientWidth / 2)
  	var my = window.screenTop + (document.body.clientHeight / 2)

//alert("Step6");

  	imgWindow.document.write("<html><head><title>" + winTitle + "</title><style>body{font-family:Arial;font-size:12px;margin:0px;padding:0px;background-color:none}</style></head><body marginheight=0 marginwidth=0>");
  	//imgWindow.document.write("<table width='100%' height='100%' border=0 cellpadding=0 cellspacing=0><tr><td align='center'><img src='" + origImg + "' onload='window.resizeBy(body.scrollWidth - body.clientWidth, body.scrollHeight - body.clientHeight); window.focus()'></td></tr></table>");
  	imgWindow.document.write("<table width='100%' height='100%' border=0 cellspacing=0 cellpadding=0><tr><td align='center'><span>Bild wird geladen....</span><img style='display:none' src='" + origImg + "' onload='this.previousSibling.style.display=\"none\";this.style.display=\"inline\";window.resizeBy(this.width-document.body.clientWidth,this.height-document.body.clientHeight); window.moveTo(" + mx + " - (document.body.clientWidth / 2) , " + my + "- (document.body.clientHeight) / 2 )'></td></tr></table>");
  	imgWindow.document.write("</body></html>");
  	imgWindow.document.close();
  	//imgWindow.focus();
//alert("Step7");  
    if (window.event) {
      window.event.cancelBubble=true;
      window.event.returnValue=false;
    }
//alert("Step8");
    return false;
  } else {
    
  }
  return false;
}





