/*
Functions to setup and carry out Ajax stuff
*/
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function CheckAJAXSupport() {
	if(is_ie && is_mac) {
	alert("This CMS uses features that Microsoft Internet Explorer don\'t support.");
	return false;
	}
	else {
	return true;
	}
}
	
function createRequestObject(){
var request_o; //declare the variable to hold the object.
	if (window.ActiveXObject) {
	/* Create the object using MSIE's method */
	request_o = new ActiveXObject("Microsoft.XMLHTTP");
	}else if (window.XMLHttpRequest) {
	/* Create the object using other browser's method */
	request_o = new XMLHttpRequest();
	}
return request_o; //return the object
}

function getElementTextNS(prefix, local, parentElem, index) {
    var result = "";
    if (prefix && isIE) {
        // IE/Windows way of handling namespaces
        result = parentElem.getElementsByTagName(prefix + ":" + local)[index];
    } else {
        // the namespace versions of this method 
        // (getElementsByTagNameNS()) operate
        // differently in Safari and Mozilla, but both
        // return value with just local name, provided 
        // there aren't conflicts with non-namespace element
        // names
        result = parentElem.getElementsByTagName(local)[index];
    }
    if (result) {
        // get text, accounting for possible
        // whitespace (carriage return) text nodes 
        if (result.childNodes.length > 1) {
        return result.childNodes[1].nodeValue;
        } else {
        return result.firstChild.nodeValue;    		
        }
    } else {
	return "n/a";
    }
}

function appendToSelect(select, value, content) {
    var opt;
    opt = document.createElement("option");
    opt.value = value;
    opt.appendChild(content);
    select.appendChild(opt);
}

/* The variable http will hold our new XMLHttpRequest object. */
var http = createRequestObject(); 
var isIE=false;
var daSelect="";



/*
Actual Functions called from the drop down menus
*/


function GetNavigationFromMain(SelectName,MainID){
	if(CheckAJAXSupport){
		if(http) {
		daSelect=SelectName;
		http.open('get', '/global/_functions.ajax.php?main_id=' + MainID);
		//alert('hi');
		http.onreadystatechange = handleNavigationMain;
		http.send(null);
		}
	}
}

function GetSubNavigation(SelectName,NavID){
	if(CheckAJAXSupport){
		if(http) {
		daSelect=SelectName;
		http.open('get', '/global/_functions.ajax.php?nav_id=' + NavID);
		//alert('hi');
		http.onreadystatechange = handleNavigationMain;
		http.send(null);
		}
	}
}

function handleNavigationMain(){
	if(http.readyState == 4){ //Finished loading the response
		if (http.status == 200) {
		var response = http.responseText;
		clearSelect();
		//alert(response);
		buildSelect();
		}
		else {
		
		}
	}
}

function clearSelect() {
	var select = MM_findObj(daSelect);
	if(select) {
		while (select.length > 0) {
		select.remove(0);
		}
	}
	var selectP=MM_findObj('page_id');
	if(selectP) {
		while (selectP.length > 0) {
		selectP.remove(0);
		}
	}
}

function buildSelect() {
	var items = http.responseXML.getElementsByTagName("navigation");
	if(items.length > 0) {
		var select = MM_findObj(daSelect);
		if(select) {
			select.options[0]=new Option('-- Select from '+ items.length +' options --','');	
			for (var i = 0; i < items.length; i++) {
			var ID = getElementTextNS("","navID", items[i],0);	
			var Label=document.createTextNode(getElementTextNS("", "navLabel", items[i], 0));
			appendToSelect(select, ID , Label);
			}
		}
	}
	// look for pages to show also
	var items = http.responseXML.getElementsByTagName("pages");
	if(items.length > 0) {
	var selectP=MM_findObj('page_id');
		if(selectP) {
			selectP.options[0]=new Option('-- or select from '+ items.length +' pages --','');
			for (var i = 0; i < items.length; i++) {
			var PID = getElementTextNS("","pageID", items[i],0);	
			var PLabel=document.createTextNode(getElementTextNS("", "pageLabel", items[i], 0));
			appendToSelect(selectP, PID , PLabel);
			}
		}
	}
}

