function getElementsByClassName(el,cl) {
	var retnode = [];
	var myclass = new RegExp('\\b'+cl+'\\b');
	var elem = el.getElementsByTagName('*');
	for (var i = 0; i < elem.length; i++) {
		var classes = elem[i].className;
		if (myclass.test(classes)) retnode.push(elem[i]);
	}
	return retnode;
};
document.getElementsByClassName = function(cl) {
	var retnode = [];
	var myclass = new RegExp('\\b'+cl+'\\b');
	var elem = this.getElementsByTagName('*');
	for (var i = 0; i < elem.length; i++) {
		var classes = elem[i].className;
		if (myclass.test(classes)) retnode.push(elem[i]);
	}
	return retnode;
};

function show(el){
	if (el.className.indexOf('tl_head') > -1){
		// check class of the heading for category 
		tl_head_class = el.className.substr(8);
		// set tl_item object
		tl_item = el.parentNode;
		// set tl_hide object
		tl_hide = getElementsByClassName(tl_item,"tl_hide")[0];
		
		//color the header according to the category
		switch(tl_head_class){
		case "applications" :
		myBgcolor = "#EADBCE";
		break;	
		case "solutions" :
		myBgcolor = "#E1D7EA";
		break;	
		case "connectivity" :
		myBgcolor = "#CCEBF1";
		break;	
		case "messaging" :
		myBgcolor = "#F8DACF";
		break;	
		case "standards" :
		myBgcolor = "#E7E4D1";
		break;	
		default:
		myBgcolor = "#e6e6e6";
		}
		
		if(tl_hide.style.display == 'none'){
			el.style.background = myBgcolor + ' url(images/Timeline_arrow_b.gif) no-repeat right center';
			tl_hide.style.display = '';
		}else {
			tl_hide.style.display = 'none';
			el.style.background = myBgcolor + ' url(images/Timeline_arrow_a.gif) no-repeat right center';
		}
	}
	else if (el.className.indexOf('tl_category') > -1){
		// Get the Category id name
		tl_category_id = el.id;
		// Aggregate the Category Content id name
		tl_category_content_id = "tl_category_" + tl_category_id;
		// set the tl_category_content block object 
		tl_category_content = document.getElementById(tl_category_content_id); 
		if(tl_category_content.style.display == 'none'){
			tl_category_content.style.display = '';
		}else {
			tl_category_content.style.display = 'none';
		}

		}
	else {
		// set tl_tool object
		tl_tool = el.parentNode;
		// set tl_content object
		tl_content = getElementsByClassName(tl_tool,"tl_content")[0];
		
		if (tl_tool.className.indexOf('star') > -1){
			if(tl_content.style.display != 'none'){
				tl_content.style.display = 'block';
			}
		}		
		if(tl_content.style.display != 'block' ){
			el.style.background = 'transparent url(images/Timeline_arrow_wb.gif) no-repeat right center';
			tl_content.style.display = 'block';
		}else {
			tl_content.style.display = 'none';
			el.style.background = 'transparent url(images/Timeline_arrow_wa.gif) no-repeat right center';
		}
	}
}

function showall(el){
	var items = document.getElementsByClassName('tl_hide');
	var allitems = document.getElementsByClassName('tl_content');	
	if (el.innerHTML == 'Show details of new and updated releases'){
		for(i=0;i< items.length;i++){
			items[i].style.display = 'block';
			tl_tool = allitems[i].parentNode;
			if (tl_tool.className == "tl_tool star"){
				allitems[i].style.display = 'block';
				}
							
		}
		el.innerHTML = 'Close all timelines';
	}
	else if(el.innerHTML == 'Open all timelines details'){
		for(i=0;i< items.length;i++){
			items[i].style.display = 'block';
		}
		for(i=0;i< allitems.length;i++){
			allitems[i].style.display = 'block';
		}
		el.innerHTML = 'Close all timelines details';
	}
	else if(el.innerHTML == 'Close all timelines details'){
		for(i=0;i< items.length;i++){
			items[i].style.display = 'none';
		}
		for(i=0;i< allitems.length;i++){
			allitems[i].style.display = 'none';
		}
		el.innerHTML = 'Open all timelines details';
	}
	else {
		for(i=0;i< items.length;i++){
			items[i].style.display = 'none';
		}
		el.innerHTML = 'Show details of new and updated releases';
	}
}
