/**********************************************************************************************************************************/
/*** Function to convert certain html list items into expanding text      *********************************************************/
/*** USAGE: Should be called on page load (window.onload)                 *********************************************************/
/*** List child span element (to click) should have a class of "expClick" *********************************************************/
/*** List child div element to expand should have a class of "expText"    *********************************************************/
/**********************************************************************************************************************************/
/*** Raj Parmar - 19/12/07                                                *********************************************************/
/**********************************************************************************************************************************/
var listImagePath = '/images/generic/';
var listItemTitle = 'click to expand/hide';

window.onload = function() {
	d = document.getElementsByTagName('li');
	for (var i = 0; i < d.length; i++) {
		for (var s = 0; s < d[i].childNodes.length; s++) {
			if ((d[i].childNodes[s].nodeType == 1) && (d[i].childNodes[s].tagName == 'SPAN')){
				if (d[i].childNodes[s].className.indexOf('expClick') > -1) {
					var clickObj = d[i].childNodes[s];
					clickObj.visible = true;
					clickObj.style.cursor = 'pointer';
					clickObj.style.paddingLeft = '20px';
					clickObj.style.marginLeft = '-20px';
					clickObj.title = listItemTitle;
					if (document.attachEvent) {
            s = doIEFix(d[i],s);
						clickObj['onclick'] = function(){toggleExpText(this)};
						clickObj['onmouseover'] = function(){this.style.textDecoration='underline'};
						clickObj['onmouseout'] = function(){this.style.textDecoration='none'};
					}
					else if(document.addEventListener) {
						clickObj.addEventListener('click', function(){toggleExpText(this);}, false);
						clickObj.addEventListener('mouseover', function(){this.style.textDecoration='underline'}, false);
						clickObj.addEventListener('mouseout', function(){this.style.textDecoration='none'}, false);
					}
					else {
						//Doesnt work?
					}
					if(i != 2)//Added by Chetan Srivastava for first node to be expanded on window load
					{
						toggleExpText(clickObj);
					}
				}
			}
		}
	}
}
/**********************************************************************************************************************************/
function toggleExpText(clickObj){
	clickObj.visible = !clickObj.visible;
	obj = getExpandingSibling(clickObj);
	if (obj.className.indexOf('expText') > -1) {
		obj.style.display = (clickObj.visible)? 'block' : 'none';
		obj.parentNode.style.listStyleImage = 'url(\'' + listImagePath + ((clickObj.visible)? 'collapse' : 'expand') + '.gif\')';
	}
}
/**********************************************************************************************************************************/
function doAllExpText(ulObj, x){
	var ul = document.getElementById(ulObj);
	d = ul.getElementsByTagName('li');
	for (var i = 0; i < d.length; i++) {
		for (var s = 0; s < d[i].childNodes.length; s++) {
			if ((d[i].childNodes[s].nodeType == 1) && (d[i].childNodes[s].tagName == 'SPAN')){
				if (d[i].childNodes[s].className.indexOf('expClick') > -1) {
					var clickObj = d[i].childNodes[s];
					var obj = getExpandingSibling(clickObj);
					if (obj.className.indexOf('expText') > -1) {
						if (x == 1) {
							clickObj.visible = true;
							obj.style.display = 'block';
							obj.parentNode.style.listStyleImage = 'url(\'' + listImagePath + 'collapse.gif\')';
						}
						else {
							clickObj.visible = false;
							obj.style.display = 'none';
							obj.parentNode.style.listStyleImage = 'url(\'' + listImagePath + 'expand.gif\')';
						}
					}
				}
			}
		}
	}
}
/**********************************************************************************************************************************/
function getExpandingSibling(obj) {
	p = obj.parentNode;
	for (var a=0;a<p.childNodes.length;a++){
		if ((p.childNodes[a].nodeType == 1) && (p.childNodes[a].className.indexOf('expClick') == -1)){
		  if (p.childNodes[a].className.indexOf('expText') > -1) {
				return p.childNodes[a];
			}
		}
	}
}
/**********************************************************************************************************************************/
function doIEFix(o,s){
  if(navigator.appVersion.indexOf('MSIE') > 0){
    var z = document.createElement('div');
    z.innerHTML = '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
		z.title = listItemTitle;
    z['onclick'] = function(){toggleExpText(o.childNodes[1]);this.blur();};
    z['onmouseover'] = function(){o.childNodes[1].style.textDecoration='underline'};
    z['onmouseout'] = function(){o.childNodes[1].style.textDecoration='none'};
    z.style.cssText = 'cursor:pointer;position:absolute;width:12px;height:12px;margin-left:-18px;font-size:small;overflow:hidden';
    //alert(o.parentNode.firstChild.tagName);
    o.insertBefore(z,o.firstChild);
    //parents childnodes has expanded, compensate for loop.
    s++;
  }
  return s;
}
/**********************************************************************************************************************************/

