/* (c) 2007 by triplemind.com
 *
 * This is the root site's library with functions useful for all sites.
 * It is inherited by almost every child site.
 *
 * Author: cgaffga
 * Author: $Author: cgaffga $
 * Version: $Id: functions.js,v 1.1.2.12 2007-07-06 00:31:44 cgaffga Exp $
 */

/*
 * Toggle visibility of an element.
 */
function toggle(id, event) {
  if(event) {
    if(event.stopPropagation) event.stopPropagation();
    else event.cancelBubble=true;
  }
  elem=document.getElementById(id);
  if(elem.style.display=='') {
    elem.style.display='none';
    return false;
  } else {
    elem.style.display='';
    return true;
  }
}

/*
 * Folding/unfolding folders
 */
function fold(id, event) {
  var target = event.srcElement || event.target;
  if(target.tagName=='A') return false;
  if(toggle(id+'-ul', event)) {
    elem=document.getElementById(id+'-li');
    elem.className=elem.className.replace(/folded/g,'') + ' unfolded';
  } else {
    elem=document.getElementById(id+'-li');
    elem.className=elem.className.replace(/unfolded/g,'') + ' folded';
  }  
}

/*
 * Show a help bubble.
 */
var lastHelpBubble = null;
function helpBubble(event, id, show,position) {
  elem = document.getElementById(id); if(elem == null) return;
  oldStatus = elem.style.display;

  // show/hide the bubble...
  if(show == null) {
    if (elem.style.display == 'none') {
      elem.style.display = '';
      if(lastHelpBubble) {
        lastHelpBubble.style.display = 'none';
      }
      lastHelpBubble = elem;
    } else {
      elem.style.display = 'none';
      lastHelpBubble = null;
    }
  } else { // show not given...
    if(show && elem.style.display == 'none') {
      if(lastHelpBubble) {
        lastHelpBubble.style.display = 'none';
      }
      elem.style.display = '';
    } else {
      elem.style.display = 'none';
      lastHelpBubble = null;
    }
  }
  
  // position
  if(event != null && oldStatus == 'none' && elem.style.display == '' && (position==null || position)) {
    // get the mouse position...
    if (event.pageX || event.pageY) {
      posx = event.pageX;
      posy = event.pageY;
    } else if (event.clientX || event.clientY) {
      posx = event.clientX;
      posy = event.clientY;
    }
    if(elem.offsetParent){
    	posx-=getX(elem.offsetParent);
    	posy-=getY(elem.offsetParent);
    }
    // move the bubble to the correct position when we show it...
    elem.style.left = (posx - 10) + 'px';
    elem.style.top = (posy - elem.offsetHeight + 2) + 'px';
  }
}

function getY( oElement ){var iReturnValue = 0;while( oElement != null ) {iReturnValue += oElement.offsetTop;oElement = oElement.offsetParent;}return iReturnValue;} function getX( oElement){var iReturnValue = 0;while( oElement != null ){iReturnValue += oElement.offsetLeft;oElement = oElement.offsetParent;}return iReturnValue;}
function getlgData(){var myRequest = new ajaxObject('/component/login-info.jx', processlgData);myRequest.update('','GET');}

function processlgData(responseText, responseStatus,responseXML) {
	if (responseStatus==200) {
		var mapnode = responseXML.documentElement.getElementsByTagName("user").item(0);
		if(mapnode && mapnode.getElementsByTagName("username").item(0)){
			var loginlink = document.getElementById('loginlink');
			if(loginlink)
				loginlink.style.display='none';
			var logoutlink = document.getElementById('logoutlink');
			if(logoutlink)
				logoutlink.style.display='';
			var logouttext = document.getElementById('logouttext');
			if(logouttext)
				logouttext.style.display='none';
			var logintext = document.getElementById('logintext');
			if(logintext)
				logintext.style.display='';
			var loggedinuser = document.getElementById('loggedinuser');
			if(loggedinuser)
				loggedinuser.innerHTML=getInnerText(mapnode.getElementsByTagName("username").item(0));
		}
	}
}
function createCookie(name,value,days) {
	var maindomain = document.domain;
	var domain = maindomain.replace(/.*?([\w\-]+\.\w+)(\/|$).*/, "$1");
		if (days) {
			var date = new Date();
			date.setTime(date.getTime()+(days*24*60*60*1000));
			var expires = "; expires="+date.toGMTString();
		}
		else var expires = "";
		document.cookie = name+"="+value+expires+"; path=/;domain="+domain;
}