// Fenster mit allen Verlinkungen wird fuer ein ausgewaehltes Element
// aus dem Webcom Bereichs- und Rubrikenverwaltung Baum geoeffnet
// @id int ID des Elements
// @type string Type des Elements zB Rubrik, Collection, Datensatz
// @target_url URL des zu oeffnenden Fensters
// @ajaxCallbackURL URL fuer Callback damit die Anzahl der Verlinkungen ermittelt werden kann
function linksIntoOpenWindow(id, type, target_url, ajaxCallbackURL) {
	var url = target_url + "&id=" + id + "&type=" + type;
	var target_window = window
			.open(
					url,
					"LinksInto",
					"toolbar=no,menubar=no,location=no,scrollbars=yes,resizable=yes,width=700,height=800,location=no");
}
// Oeffne im WC Fenster im Browser einen Link
// @link URL vom Ziel welche innerhalb von WC liegt
function linksIntoOpenParent(link) {
	if (window.opener && !window.opener.closed) {
		if (link == '') {
			// do nothing
			alert("Kein Eintrag zum Editieren gefunden.");
		} else {
			window.opener.location.href = link;
		}
	} else {
		alert("Sitzung abgelaufen. Bitte melden Sie sich an.");
		window.close();
	}
}
// Gibt die Anzahl der Verlinkungen auf ein Element in einem Tooltip zurueck
// @event
function linksIntoShowCount(event)  {
	// Den JS-URL-String ermitteln und da die ID des Items, den ItemTyp 
	// und die Ajax-URL zum zurückgeben der Verlinkungsanzahl aus dem String ermitteln. 	
  var parseString=event.target.parentNode.href;	
  parseString=decodeURI(parseString.substr(31));
  var parseStringParams=parseString.split(',');
  var itemid=parseStringParams[0].replace (/^\s+/, '').replace(/\s+$/, '');
  var tmp=parseStringParams[1].replace (/^\s+/, '').replace(/\s+$/, '');
  var itemtype=tmp.replace(/\'/g, '').replace(/\"/g, ''); 
  var callURL=parseStringParams[3].replace(/\'/g, '').replace(/\"/g, '');
  callURL = 	callURL.replace (/^\s+/, '').replace(/\s+$/, '').replace(/\);/g, '');
  var linkCounter=0;
  // Die Portletelementliste laden und anzeigen
  $.ajax({ typ:'GET',
           url:callURL,
           dataType:'json',
           data:'itemID='+itemid+'&itemType='+itemtype,
           async:false,
           success: function(lc) {
                      linkCounter=lc;
                    },
            error:  function(XMLHttpRequest, textStatus, errorThrown) {
                      alert('Fehler: '+textStatus+"\n"+errorThrown);
                    }
        });
  // the first char of itemtype will be capitalise
  itemtype = itemtype.substr(0, 1).toUpperCase() + itemtype.substr(1)
  $("a[href~=linksIntoOpenWindow]").attr('title', 'Anzahl der Verlinkungen auf '+itemtype+' (ID '+itemid+'): '+linkCounter);
}
// Bindet die mouseover Funktionalitaet an den Menuepunkt "Wer linkt hier drauf" im Context-Menue an
function linksIntoInitMouseOver() {
  // Alle evtl. gesetzten "alten" Handler von mir löschen
	$("a[href~=linksIntoOpenWindow]").unbind('mouseover', linksIntoShowCount);
	$("a[href~=linksIntoOpenWindow]").bind('mouseover', linksIntoShowCount);
}
// Initalisierung
$(document).ready(function() {

	$("a[class=userlink]").bind('click',function(event) {
		// timeout wird gesetzt da auch ein Timeout von 250 im Context-Menue gesetzt wird
		window.setTimeout('linksIntoInitMouseOver()', 500);	  
	});
});


