var idRetorno;
var idCampoRetorno;
var idLinkRetorno;
var selecionar = false;
var y = 0;

function createXMLHttp() {
  if (typeof XMLHttpRequest != 'undefined')
    return new XMLHttpRequest();
  else if (window.ActiveXObject) {
    var avers = ["Microsoft.XmlHttp", "MSXML2.XmlHttp",
         "MSXML2.XmlHttp.3.0", "MSXML2.XmlHttp.4.0",
         "MSXML2.XmlHttp.5.0"];
    for (var i = avers.length -1; i >= 0; i--) {
      try {
        httpObj = new ActiveXObject(avers[i]);
        return httpObj;
      } catch(ex) {}
    }
  }
  throw new Error('XMLHttp (AJAX) not supported');
}

function submitLink(idlink, destino){
	idLinkRetorno = document.getElementById(destino);
	submitGet(idlink);
}

function submitGet(idlink){
  var url = escape(idlink);
  getObj.open("GET", url);
  getObj.onreadystatechange = function(){
  	 idLinkRetorno.innerHTML = "<p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>Working...</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p>";
    if(getObj.readyState == 4) {
      var texto = getObj.responseText;
      texto = texto.replace(/\+/g," ");
      texto = unescape(texto);
      idLinkRetorno.innerHTML = texto;
    }
  }
  getObj.send(null);
  return false;

}

function submitForm(myform, destino){
  parar = true;
  var reqBody = "";
  for (var i=0; i<myform.elements.length-1; i++){
    if (!checkCampo(myform.elements[i])){
    	parar = false;
      return false;
    }
    if (i == 0){
      reqBody += myform.elements[i].name + "=" + myform.elements[i].value;
    }else{
      reqBody += "&"+myform.elements[i].name + "=" + myform.elements[i].value;
    }
  }
  idRetorno = document.getElementById(destino);
  subPost(myform.action, reqBody);
}

function subPost(idlink, requisicao){
  postObj.open("POST", idlink, true);
  postObj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  postObj.onreadystatechange = function(){
  	 idRetorno.innerHTML = "<p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>Working...</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p>";
    if(postObj.readyState == 4) {
      var texto = postObj.responseText;
      texto = texto.replace(/\+/g," ");
      texto = unescape(texto);
      idRetorno.innerHTML = texto;
    }
  }
  postObj.send(requisicao);
  return false;
}

function submitPost(idlink, requisicao){
  ajaxObj.open("POST", idlink, true);
  ajaxObj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  ajaxObj.onreadystatechange = function(){
    if(ajaxObj.readyState == 4) {
      var texto = ajaxObj.responseText;
      texto = texto.replace(/\+/g," ");
      texto = unescape(texto);
     	idCampoRetorno.innerHTML = texto;
      if (texto != ""){
	      getCampo();
	      return false;
      }
      selecionar = false;
    }
  }
  ajaxObj.send(requisicao);
  return false;
}

function busca(campo, requisicao, destino, pg){
		idCampoRetorno = document.getElementById(destino);
		camposel = campo;
	   if (!checkCampo(campo)){
		   return false;
	   }
		requisicao = requisicao + "=" + campo.value + "&f=" + pg;
		submitPost("busca.php", requisicao);
}

function submitLinkForm(idlink, requisicao, destino){
	idRetorno = document.getElementById(destino);
	submitPost(idlink, requisicao);
}

function getCampo(){
	if (selecionar){
		camposel.select();
		camposel.focus();
		selecionar = false;
	}
}

function checkCampo(campo){
	var focar = false;
	var cont;
	selecionar = true;
	camposel = campo;
	if (campo.name == "email" || campo.name == "friend"){
		if (campo.name == "friend"){
			cont = document.getElementById("verfriend");
			if (campo.value == ""){
				return true;
			}
		}else{
			cont = document.getElementById("veremail");
		}
   	cont.innerHTML = "";
		valor = campo.value;
		parte1 = valor.indexOf("@");
		parte2 = valor.indexOf(".");
		parte3 = valor.length;
		if (!(parte1 >= 3 && parte2 >= 6 && parte3 >= 9)) {
	   	cont.innerHTML = "(invalid email)";
		   focar = true;
		}
	}else if (campo.name == "nome"){
		cont = document.getElementById("vernome");
		cont.innerHTML = "";
		if (campo.value.length < 4){
			cont.innerHTML = "(invalid username)";
			focar = true;
		}
	}else if (campo.name == "senha"){
		cont = document.getElementById("versenha");
		cont.innerHTML = "";
		if (campo.value.length < 6){
			cont.innerHTML = "(minimum six character)";
			focar = true;
		}
	}else if (campo.name == "confirmasenha"){
		cont = document.getElementById("verconfsenha");
		cont.innerHTML = "";
		if (campo.value.length < 6){
			cont.innerHTML = "(minimum six character)";
			focar = true;
		}
	}
	if (focar){
		getCampo();
      return false;
   }

   return true;
}

function new_freecap()
{
	// loads new freeCap image
	if(document.getElementById)
	{
		// extract image name from image source (i.e. cut off ?randomness)
		thesrc = document.getElementById("freecap").src;
		thesrc = thesrc.substring(0,thesrc.lastIndexOf(".")+4);
		// add ?(random) to prevent browser/isp caching
		document.getElementById("freecap").src = thesrc+"?"+Math.round(Math.random()*100000);
	} else {
		alert("Sorry, cannot autoreload freeCap image\nSubmit the form and a new freeCap will be loaded");
	}
}

var ajaxObj = createXMLHttp();
var getObj = createXMLHttp();
var postObj = createXMLHttp();
