function createInfoBar (Text, LinkRef, LinkTarget, closeOnClick) {
    
	// check parameters
	if (typeof(Text) == "undefined" || Text == "") {
		alert ("InfoBar error: Text is empty or undefined.");
	}

	if (typeof(LinkRef) == "undefined" || LinkRef.length == 0) {
		LinkRef = "#";
	}

	if (typeof(LinkTarget) == "undefined" || LinkTarget.length == 0) {
		LinkTarget = "_self";
	}

  if (typeof(closeOnClick) == "undefined") {
    closeOnClick = false;
  }



	// create div tag
	var infoBarDIV       = document.createElement("div");
    infoBarDIV.className = "infoBar";


  // create a tag
	var infoBarA    = document.createElement("a");
	infoBarA.href   = LinkRef;
	infoBarA.target = LinkTarget;
	if (closeOnClick == true) {
        infoBarA.setAttribute("onclick", "this.parentNode.parentNode.removeChild(this.parentNode);");
	}
    infoBarDIV.appendChild(infoBarA);


	// fill infobar with text
	var infoBarText = document.createTextNode(Text);
	infoBarA.appendChild(infoBarText);


	// set settings for effects
	//infoBarDIV.style.display = "none";
	infoBarDIV.style.filter = "alpha(opacity=0)";

	// add infobar to (x)html body
	if (document.body != null) {
		document.body.insertBefore(infoBarDIV, document.body.firstChild);

        var infoBarLayer  = new Layer_Ref(infoBarDIV, document, true);
    	var infoBarCanvas = infoBarLayer.getCanvas();
    
        var InfoBarEffect = new Effect(infoBarLayer);
    	InfoBarEffect.setFade("fadeIn", 200);
    	InfoBarEffect.setResize(new Canvas(infoBarCanvas.width, 0), 
                                new Canvas(infoBarCanvas.width, infoBarCanvas.height), 
                                100);
    	InfoBarEffect.play();
    	
	} else {
		var infoBarTimeOut = window.setTimeout('createInfoBar("'+Text+'", "'+LinkRef+'", "'+LinkTarget+'", '+closeOnClick+')', 10);
	}

	return;
}

function closeAllInfoBars() {

  var allInfoBars  = getElementsByClassName("infoBar");
  allInfoBarsCount = allInfoBars.length;  
  if (allInfoBars.length > 0) {  
    for (var i = 0; i < allInfoBarsCount; i++) {
      allInfoBars[i].parentNode.removeChild(allInfoBars[i]);
    }    
    return true;
  }    
  return false;    
}


function getElementsByClassName(c) {
    var ret = new Array();
    var j = 0;
    var objs = document.all ? document.all : document.getElementsByTagName("*");
    for(var i = 0;i < objs.length; i++){
        if(objs[i].className == c){
            ret[j] = objs[i];
            j++;
        }
    }
    return ret;
}
