http_menu = createRequestObject(); 
http_page = createRequestObject(); 
http_hist = createRequestObject(); 
http_code = createRequestObject(); 
http_brief = createRequestObject(); 
currentPage = "Home";
pre = "Diamond Designs - an experiment with Ajax - ";
historyPointer = 0;
siteHistory = [];

function createRequestObject(){
	var request_o; 
	var browser = navigator.appName; 
	if(browser == "Microsoft Internet Explorer") request_o = new ActiveXObject("Microsoft.XMLHTTP"); else request_o = new XMLHttpRequest();
	return request_o;
}

function allChange(sItem,bIncludeBase){
 if(sItem != "four_o_four" && arguments[2] == undefined) getMenu(sItem,bIncludeBase);
 saveHistory(sItem);
 getPage(sItem);
 document.title = pre + sItem + " page";
 location = "#leftBlock"
 killBrief();
 return false;
}

function showCode(action){
 saveHistory(action);
 getMenu(currentPage,true)
	http_code.open("get", "internal_request.php?action="+action);
	http_code.onreadystatechange = function(){
  if(http_code.readyState == 4) {
   document.getElementById("main").innerHTML = http_code.responseText;
   document.title = pre + "Site Code page";
   location = "#leftBlock"
  }
	} 
	http_code.send(null);
 return false;
}

function showHistory(action){
 getMenu(currentPage,true)
 saveHistory(action);
	http_hist.open("get", "internal_request.php?action="+action);
	http_hist.onreadystatechange = function(){
  if(http_hist.readyState == 4) document.getElementById("main").innerHTML = http_hist.responseText;
	} 
	http_hist.send(null);
 document.title = pre + "Site History page";
 location = "#leftBlock"
 return false;
}
function getPage(sItem){
	http_page.open("get", "internal_request.php?action=get_data&id=" + sItem);
	http_page.onreadystatechange = function(){
  if(http_page.readyState == 4 && http_page.responseText.length > 0) document.getElementById("main").innerHTML = http_page.responseText;
	} 
	http_page.send(null);
 location = "#leftBlock"
}

function getMenu(sItem,bIncludeBase){
	currentPage = sItem;
	http_menu.open("get", "internal_request.php?action=get_menu&id=" + sItem + "&includeBase=" + bIncludeBase);
	http_menu.onreadystatechange = function(){
  if(http_menu.readyState == 4 && http_menu.responseText.length > 0) {
   document.getElementById("menuBlock0").innerHTML = http_menu.responseText;
  }
	} 
	http_menu.send(null);
}

function getBrief(oTarget){
 var sItem = oTarget.firstChild.data;
 oTarget.title = "";
	http_brief.open("get", "internal_request.php?action=get_brief&id=" + sItem);
	http_brief.onreadystatechange = function(){
  if(http_brief.readyState == 4 && http_brief.responseText.length > 0) {
   document.getElementById("brief").innerHTML = http_brief.responseText;
   var loffset = is_IE ? document.getElementById("leftBlock").offsetWidth : 0;
   document.getElementById("brief").style.top = oTarget.offsetTop + oTarget.offsetHeight + "px";
   document.getElementById("brief").style.left = Math.round(loffset + oTarget.offsetLeft + (oTarget.offsetWidth/2)) + "px";
   document.getElementById("brief").style.display = "block";
  }
	} 
	http_brief.send(null);
}
function killBrief(){
 document.getElementById("brief").style.display = "none";
}

function dd_ajax_edit(oElement){
 oElement.innerHTML = prompt("Please edit the entry for",oElement.innerHTML);
}

function saveHistory(sItem){
 siteHistory[siteHistory.length] = sItem;
}

function doLocation(){
 alert("Hi")
 historyPointer = (historyPointer == 0) ? siteHistory.length - 1 : historyPointer;
 switch(siteHistory[historyPointer]){
  case "get_hist":
   showHistory(siteHistory[historyPointer])
   break;
  case "get_code":
   showCode(siteHistory[historyPointer])
   break;
  case "Home":
   allChange(siteHistory[historyPointer],0)
   break;
  default:
   allChange(siteHistory[historyPointer],1)
   break;
 }
 historyPointer -= 1;
}

function getKey(e){
	if (!e) var e = window.event;
	if (e.keyCode && e.keyCode == 8) {
	 if(siteHistory.length > 0){
   doLocation();
   return false;
  }
	}
}

//onkeydown = getKey;
