
/* 
	intializer method which retrieves red link info 
	from the backend service via ajax call 
*/
function prepareRedLinkText() {
	/* get all links in the current document */
	var links = document.getElementsByTagName("a");
	/* create a list of all link targets separated by ":" */
	var requests = new Array();
	var texts = "";
	for (var i = 0; i < links.length; i++) {
		/* only select red links */
		if (links[i].className == "new") {
			/* var text = trim(links[i].innerHTML); */
			var text = trim(links[i].title);
			var ppos = text.indexOf(" (not yet written)");
			if (ppos > 0){
				text = text.substring(0, ppos);
				
				if (requests[text] != 1) {
					requests[text] = 1;
					texts = texts + ((texts == "") ? "" : ":") + URLEncode(text);
				}

			}
		}
	}
	/* do the ajax call if not empty */
	if (texts != "") sajax_do_call("woogleAjaxRedLinkText", [texts], addRedLinkText);
}

/* 
	callback-method if the ajax call in prepareRedLinkText returns
	attaches red link info to red links on the page
*/
function addRedLinkText(request) {
	/* parse ajax response data */
	var responses = request.responseText.split(":");
	var parses = new Array();
	for (var i = 0; i < responses.length; i++) {
		var responseParts = responses[i].split(";");
		var responseText = URLDecode(responseParts[0]);
		parses[responseText] = new Array();
		for (var j = 1; j < responseParts.length; j++) {
			parses[responseText].push(URLDecode(responseParts[j]));
		}
	}
	
	/* iterate through all links and attach red link info to red links */
	var links = document.getElementsByTagName("a");
	var woogleLink = 0;
	var ihtmlx = new Array();
	for (var i = 0; i < links.length; i++) {
		
		if (links[i].className == "new"){
	
			/* var linkText = trim(links[i].innerHTML); */
			var linkText = trim(links[i].title);
			var ppos = linkText.indexOf(" (not yet written)"); 
			if (ppos > 0) linkText = linkText.substring(0, ppos);

			if ((ppos > 0) && parses[linkText] != null && parses[linkText].length == 3){

				/* alert("ppos: " + ppos + " linkText: " + linkText); */
			
				ihtmlx["woogleLink" + woogleLink] = parses[linkText][1];
				
				links[i].id				=	"woogleLink" + woogleLink;
				if (parses[linkText][2] > 1){
					links[i].innerHTML		=	links[i].innerHTML + "<sup>*</sup>";
					
				} 
				links[i].title			=	"";
				links[i].onmouseover	=	function() {
												Tip(ihtmlx[this.id], SHADOW, true, FADEIN, 300, FADEOUT, 300, STICKY, 1, CLICKCLOSE, true, DURATION, -2000);
											};
				links[i].onmouseout		=	function() {
												UnTip();
											};
				woogleLink++;
			}
		}
	}
}

/* initialize */
hookEvent("load", prepareRedLinkText);
