// MPLS PNT Javascript

// runs any function once the entire page has loaded, cross-browser compatible
function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
	}
  }
}

function initLocationGroups(){
	var i = 1;
	while(document.getElementById('icon-group' + i) && document.getElementById('group' + i)){
		document.getElementById('icon-group' + i).expanded = false;
		document.getElementById('icon-group' + i).num = i;
		document.getElementById('icon-group' + i).onclick = expandGroup;
		i++;
	}
	document.getElementById('expand-all').expanded = false;
	document.getElementById('expand-all').onclick = expandAllGroups;
}

function expandGroup(){
	var oldClassName = document.getElementById('group' + this.num).className;
	if(this.expanded){
		this.src = 'images/icon_plus.gif';
		document.getElementById('group' + this.num).className = oldClassName + ' hide';
	}
	else{
		this.src = 'images/icon_minus.gif';
		document.getElementById('group' + this.num).className = oldClassName.substring(0, oldClassName.indexOf(' '));
	}
	this.expanded = !this.expanded;
	checkAllGroups(this.expanded);
}

function expandAllGroups(){
	var i = 1;
	var oldClassName;
	while(document.getElementById('icon-group' + i) && document.getElementById('group' + i)){
		oldClassName = document.getElementById('group' + i).className;
		if(this.expanded){
			document.getElementById('icon-group' + i).expanded = false;
			document.getElementById('icon-group' + i).src = 'images/icon_plus.gif';
			document.getElementById('group' + i).className = oldClassName + ' hide';
		}
		else{
			document.getElementById('icon-group' + i).expanded = true;
			document.getElementById('icon-group' + i).src = 'images/icon_minus.gif';
			document.getElementById('group' + i).className = oldClassName.substring(0, oldClassName.indexOf(' '));
		}
		i++;
	}
	this.expanded = !this.expanded;
	if(this.expanded){
		this.innerHTML = 'Collapse All';
	}
	else{
		this.innerHTML = 'Expand All';
	}
}

function checkAllGroups(flag){
	var i = 1;
	var groupsExpanded = flag;
	var allGroups = true;
	while(document.getElementById('icon-group' + i) && document.getElementById('group' + i)){
		if(groupsExpanded != document.getElementById('icon-group' + i).expanded){
			allGroups = false;
			break;
		}	
		i++;
	}
	
	if(allGroups){
		document.getElementById('expand-all').expanded = flag;
		if(flag){
			document.getElementById('expand-all').innerHTML = 'Collapse All';
		}
		else{
			document.getElementById('expand-all').innerHTML = 'Expand All';
		}
	}
}

//addLoadEvent(initLocationGroups);

/************************/

function faqInit(){

	if(document.getElementById('faq')){

		var faq = document.getElementById('faq');

		var dd = faq.getElementsByTagName('dd');

		var dt = faq.getElementsByTagName('dt');

		for(var i = 0; i < dd.length; i++){

			dt[i].getElementsByTagName('a')[0].onclick = toggleFAQ;

			dt[i].numID = i;

			dt[i].status = false;

		}

		if(document.getElementById('expand-all')){

			document.getElementById('expand-all').getElementsByTagName('a')[0].onclick = expandAllFAQ;

		}

	}

	var y = 1;

	while(document.getElementById('faq'+y)){

		faq = document.getElementById('faq'+y);

		dd = faq.getElementsByTagName('dd');

		dt = faq.getElementsByTagName('dt');

		for(var i = 0; i < dd.length; i++){

			dt[i].getElementsByTagName('a')[0].onclick = toggleFAQ;

			dt[i].getElementsByTagName('a')[0].groupNum = y;

			dt[i].numID = i;

			dt[i].status = false;

		}

		if(document.getElementById('expand-all'+y)){

			document.getElementById('expand-all'+y).getElementsByTagName('a')[0].onclick = expandAllFAQ;

			document.getElementById('expand-all'+y).getElementsByTagName('a')[0].groupNum = y;

		}

		y++;	

	}

}



function toggleFAQ(){

	var allOpen;

	if(this.groupNum){

		var faq = document.getElementById('faq'+this.groupNum);

		groupNum = this.groupNum;

	}

	else{

		var faq = document.getElementById('faq');

		groupNum = '';

	}

	var dd = faq.getElementsByTagName('dd');

	if(!this.parentNode.status){

		this.className = 'active';

		this.parentNode.status = true;

		dd[this.parentNode.numID].style.display = 'block';

//	custom code for opening of group
		logExpand(groupNum,this.parentNode.numID);
		allOpen = true;

		for(var i = 0; i < dd.length; i ++){

			if(!document.getElementById('faq'+groupNum).getElementsByTagName('dt')[i].status){

				allOpen = false;

				break;

			}

		}

		if(allOpen){

			if(document.getElementById('expand-all'+groupNum) && document.getElementById('expand-all'+groupNum).getElementsByTagName('a')[0]){

				var expandAll = document.getElementById('expand-all'+groupNum);

				expandAll.innerHTML = expandAll.getElementsByTagName('a')[0].innerHTML;

			}

			switchExpandCollapse(1, groupNum);

		}

	}

	else{

		this.className = '';

		this.parentNode.status = false;

		document.getElementById('faq'+groupNum).getElementsByTagName('dd')[this.parentNode.numID].style.display = 'none';

		allClosed = true;

		for(var i = 0; i < dd.length; i ++){

			if(document.getElementById('faq'+groupNum).getElementsByTagName('dt')[i].status){

				allClosed = false;

				break;

			}

		}

		if(allClosed){

			if(document.getElementById('collapse-all'+groupNum) && document.getElementById('collapse-all'+groupNum).getElementsByTagName('a')[0]){

				var collapseAll = document.getElementById('collapse-all'+groupNum);

				collapseAll.innerHTML = collapseAll.getElementsByTagName('a')[0].innerHTML;

			}

			switchExpandCollapse(0, groupNum);

		}

	}

	return false;

}



function expandAllFAQ(){

	if(this.groupNum){

		var faq = document.getElementById('faq'+this.groupNum);

		groupNum = this.groupNum;

	}

	else{

		var faq = document.getElementById('faq');

		groupNum = '';

	}

	var dd = faq.getElementsByTagName('dd');

	var dt = faq.getElementsByTagName('dt');

	for(var i = 0; i<dd.length; i++){

		dt[i].getElementsByTagName('a')[0].className = 'active';

		dt[i].status = true;

		dd[i].style.display = 'block';

	}

	this.parentNode.innerHTML = this.innerHTML;

	switchExpandCollapse(1, groupNum);

	return false;

}



function collapseAllFAQ(){

	if(this.groupNum){

		var faq = document.getElementById('faq'+this.groupNum);

		groupNum = this.groupNum;

	}

	else{

		var faq = document.getElementById('faq');

		groupNum = '';

	}

	var dd = faq.getElementsByTagName('dd');

	var dt = faq.getElementsByTagName('dt');

	for(var i = 0; i<dd.length; i++){

		dt[i].getElementsByTagName('a')[0].className = '';

		dt[i].status = false;

		dd[i].style.display = 'none';

	}

	this.parentNode.innerHTML = this.innerHTML;

	switchExpandCollapse(0, groupNum);

	return false;

}



function switchExpandCollapse(f, g){

	if(f){

		if(document.getElementById('collapse-all'+g) && !document.getElementById('collapse-all'+g).getElementsByTagName('a')[0]){

			var collapseAll = document.getElementById('collapse-all'+g);

			collapseAll.innerHTML = '<a href="#" title="' + collapseAll.innerHTML + '">' + collapseAll.innerHTML + '</a>';

			collapseAll.getElementsByTagName('a')[0].onclick = collapseAllFAQ;

			if(g != ''){

				collapseAll.getElementsByTagName('a')[0].groupNum = g;

			}

		}

	}

	else{

		if(document.getElementById('expand-all'+g) && !document.getElementById('expand-all'+g).getElementsByTagName('a')[0]){

			var expandAll = document.getElementById('expand-all'+g);

			expandAll.innerHTML = '<a href="#" title="' + expandAll.innerHTML + '">' + expandAll.innerHTML + '</a>';

			expandAll.getElementsByTagName('a')[0].onclick = expandAllFAQ;

			if(g != ''){

				expandAll.getElementsByTagName('a')[0].groupNum = g;

			}

		}

	}

}



addLoadEvent(faqInit);
