/*
	Simple browser version detection
*/
var ie4 = false; 
if(document.all) { 
	ie4 = true; 
}

/*
	Get an object from HTML document by ID.
*/
function getObject(id) { 
	if (ie4) { 
		return document.all[id]; 
	} 
	else { 
		return document.getElementById(id); 
	} 
}

/*
  Get cookie value using offset
*/
function getCookieValue (offset) {
	var endstr = document.cookie.indexOf (";", offset);
	if (endstr == -1)
		endstr = document.cookie.length;
	return unescape(document.cookie.substring(offset, endstr));
}

/*
  Get cookie value by name
*/
function getCookie (name) {
	var arg = name + "=";
	var alen = arg.length;
	var clen = document.cookie.length;
	var i = 0;
	while (i < clen) {
		var j = i + alen;
		if (document.cookie.substring(i, j) == arg)
			return getCookieValue (j);
		i = document.cookie.indexOf(" ", i) + 1;
		if (i == 0) break; 
	}
	return null;
}  

/*
  Set cookie value
*/
function setCookie (name, value) {
	var argv = setCookie.arguments;
	var argc = setCookie.arguments.length;
	var expires = (argc > 2) ? argv[2] : null;
	var path = (argc > 3) ? argv[3] : null;
	var domain = (argc > 4) ? argv[4] : null;
	var secure = (argc > 5) ? argv[5] : false;
	document.cookie = name + "=" + escape (value) +	((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
		((path == null) ? "" : ("; path=" + path)) +
		((domain == null) ? "" : ("; domain=" + domain)) +
		((secure == true) ? "; secure" : "");
}

var expandText = '[+]';
var collapseText = '[-]';

/*
	Switch display state of object with the given id.
	This allow to 'expand' and 'collapse' an object.
*/
function switchState(id, link) {
	var object = getObject(id);
	if (object.style.display == "") {
		object.style.display = "none";
		link.innerHTML = '[+]';
	}
	else if (object.style.display == "none") {
		object.style.display = "";
		link.innerHTML = '[-]';
	}
}


function switchState(id, link, remember) {
	var object = getObject(id);
	var objectVisible = "false";
	if (object.style.display == "") {
		object.style.display = "none";
		link.innerHTML = '[+]';
	}
	else if (object.style.display == "none") {
		object.style.display = "";
		link.innerHTML = '[-]';
		objectVisible = "true";
	}
	if (remember == "true") {
		var expireDate = new Date ();
		expireDate.setTime (expireDate.getTime() + (24 * 60 * 60 * 1000 * 31));
		setCookie (id, objectVisible, expireDate);
	}
}


function readState(id, link) {
	var object = getObject(id);
	var objectVisible = getCookie(id);
	if (objectVisible == null) {
	  objectVisible = "true";
	}
	
	if (objectVisible == "true") {	//stored as visible, so show the object
		object.style.display = "";
		link.innerHTML = '[-]';
	} 
	else {				
		//Previous time stored as hidden, so hide the table
		object.style.display = "none";
		link.innerHTML = '[+]';
	}
}


/*
	Copy content from iframe to another element.
*/
function copyContent(from, to) {
  var lyr = document.getElementById? document.getElementById(to): document.all? document.all[to]: null;
	if ( window.frames[from] && lyr && typeof lyr.innerHTML != "undefined" ) {
	  lyr.innerHTML = window.frames[from].document.body.innerHTML;
	}
	else if (document.frames[from] && lyr && typeof lyr.innerHTML != "undefined") {
	  lyr.innerHTML = document.frames[from].document.body.innerHTML;
	}
	
}

var iframeNames = new Array(1);
var divNames = new Array(1);

function registerInclude(from, to) {
  var tmp1 = new Array(iframeNames.length + 1);
  for (var i = 0; i < iframeNames.length; i++) {
    tmp1[i] = iframeNames[i];
  }
  tmp1[iframeNames.length] = from;
  iframeNames = tmp1;
  
  var tmp2 = new Array(divNames.length + 1);
  for (var j = 0; j < divNames.length; j++) {
    tmp2[j] = divNames[j];
  }
  tmp2[divNames.length] = to;
  divNames = tmp2;
}

function processIncludes() {
	for (var i = 0; i < iframeNames.length; i++) {
		var from = iframeNames[i];
		var to = divNames[i];
		try {
			copyContent(from, to);
		}
		catch (e) {}
	}
}