// JavaScript Document
// Controlo AJAX
var xmlHttp;
var start;

window.onload = initialize;
		
function initialize(request) {
 // initialize the DHTML History
 // framework
  dhtmlHistory.initialize();
		  
  // subscribe to DHTML history change
  // events
  dhtmlHistory.addListener(historyChange);
			  		   
  /** Our callback to receive history change events. */
  function historyChange(newLocation, historyData) {
	  PedidoHTTP(newLocation);
  }	   
  x = location.hash.split("#");
  //alert(x[1]);
  if (x[1] == null) 
  	x[1] = '';
  PedidoHTTP(x[1]);
}

function getLink(){
	var ev = arguments[0] || window.event,
	origEl = ev.target || ev.srcElement;
	if ((origEl.tagName == "A") || (origEl.tagName == "FORM"))
		if (origEl.target == "_self" || origEl.target == "" ) {
			Pedido(origEl.href);
			return false;
		}
}
document.onclick = getLink;

function MakeXmlHttpObject(){
	var xmlHttp=null;
	try{
		// XmlHttpRequest para Firefox,	Opera, Safari e derivados.
		xmlHttp = new XMLHttpRequest();
	}
	catch (e){
		// XmlHttpRequest para Internet Explorer.
		try{
			// Internet Explorer 6.0+
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e){
			// Internet Explorer.
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}

function Pedido(parametros) {
	location.hash = '#'+parametros;	
}

function PedidoHTTP(parametros) {
	xmlHttp=MakeXmlHttpObject();
	if (xmlHttp==null){
		alert ("Erro na operação. Por favor actualize o seu browser.");
		return;
	}
	//inserir no histórico
	
	xmlHttp.open("POST","/ajaxPedidos.php",true);
	xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
	xmlHttp.setRequestHeader("Content-Length", parametros.length);
	xmlHttp.send('url='+parametros);
	document.getElementById("Artigo").style.display = "none";
	document.getElementById("Artigo").style.visibility = "hidden";	
	document.getElementById("pv_loading").style.display = "block";
	document.getElementById("pv_loading").style.visibility = "visible";
	xmlHttp.onreadystatechange=receberPagina;
}

function submitForm(obj) {
      var getstr = "";
	  for (i=0; i<obj.getElementsByTagName("input").length; i++) {
			if (obj.getElementsByTagName("input")[i].type == "text") {
			   getstr += obj.getElementsByTagName("input")[i].name + "=" + 
					   obj.getElementsByTagName("input")[i].value + "&";
			}
			if (obj.getElementsByTagName("input")[i].type == "hidden") {
			   getstr += obj.getElementsByTagName("input")[i].name + "=" + 
					   obj.getElementsByTagName("input")[i].value + "&";
			}
			if (obj.getElementsByTagName("input")[i].type == "checkbox") {
			   if (obj.getElementsByTagName("input")[i].checked) {
				  getstr += obj.getElementsByTagName("input")[i].name + "=" + 
					   obj.getElementsByTagName("input")[i].value + "&";
			   } else {
				  getstr += obj.getElementsByTagName("input")[i].name + "=&";
			   }
			}
			if (obj.getElementsByTagName("input")[i].type == "radio") {
			   if (obj.getElementsByTagName("input")[i].checked) {
				  getstr += obj.getElementsByTagName("input")[i].name + "=" + 
					   obj.getElementsByTagName("input")[i].value + "&";
			   }
		 }  
		 if (obj.getElementsByTagName("input")[i].tagName == "select") {
			var sel = obj.getElementsByTagName("input")[i];
			getstr += sel.name + "=" + sel.options[sel.selectedIndex].value + "&";
		 }
		 
	  }
	  for (i=0; i<obj.getElementsByTagName("select").length; i++) {
			var sel = obj.getElementsByTagName("select")[i];
			getstr += sel.name + "=" + sel.options[sel.selectedIndex].value + "&";
	  }

	  for (i=0; i<obj.getElementsByTagName("textarea").length; i++) 
		getstr += obj.getElementsByTagName("textarea")[i].name + "=" + obj.getElementsByTagName("textarea")[i].value + "&";
	  if (obj.method == "POST")
	      PedidoHTTP(getstr);
	  else
	  	  Pedido(getstr);
}

function receberPagina() {
	if (xmlHttp.readyState==4){
		document.getElementById("pv_loading").style.display = "none";
		document.getElementById("pv_loading").style.visibility = "hidden";	
		document.getElementById("Artigo").style.display = "block";
		document.getElementById("Artigo").style.visibility = "visible";
		document.getElementById("Artigo").innerHTML = xmlHttp.responseText;
	}
}

