var xmlHttp;          // Used for submitting reviews

///////////////////////
// GENERAL FUNCTIONS //
///////////////////////
function GetXmlHttpObject()
{
  var xmlHttp=null;
  
  try {
    // Firefox, Opera 8.0+, Safari
    xmlHttp = new XMLHttpRequest();
  } catch(exception) {
    // Internet Explorer
    try
    {
      xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (exception)
    {
      xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
    
  return xmlHttp;
}

// Returns a HTML object (needed for browser compatibility)
function getObjectByName(o_name, o_type)
{
  var elem = document.getElementsByTagName(o_type);

  for(i=0;i<elem.length;i++){
    if(elem[i].getAttribute("name") == o_name) {
      return elem[i];
    }
  }
}

// Add an element dynamically inside a wanted tag in the HTML
// t_target   target object
// t_type     target type
// o_type     type of the generated object
// o_id       id of the generated object
// o_name     target name
// html_code  html code inside
function addElement(t_target, t_type, o_type, o_id, o_name, html_code) {
  var ni = getObjectByName(t_target, t_type);
  var newdiv = document.createElement(o_type);
  var divIdName = o_name;
  newdiv.setAttribute('name', divIdName);
  newdiv.setAttribute('id', o_id);
  newdiv.innerHTML = html_code;
  ni.appendChild(newdiv);
}

// Remove an object
// dFather     father object
// fatherType  type of the object (ie. div)
// dChild      child object
// childType   type of the child object
function removeElement(dFather, fatherType, dChild, childType) {
  var d = getObjectByName(dFather, fatherType);
  var dc = getObjectByName(dChild, childType);
  d.removeChild(dc);
}

function submitHistory()
{
  var o_sub = getObjectByName("upload_status", "div");
  o_sub.innerHTML = "Uploading...";
  
  var o_form = getObjectByName("dsubmitform", "div");
  o_form.style.visibility = 'hidden';

  var o_title = getObjectByName("title", "input");
  o_title.value = escape(o_title.value);

  var o_desc = getObjectByName("description", "textarea");
  o_desc.value = escape(o_desc.value);

  return true;
}

function showForm()
{
  var o_sub = getObjectByName("upload_status", "div");
  o_sub.innerHTML = "";

  var o_form = getObjectByName("dsubmitform", "div");
  o_form.style.visibility = 'visible';  
  
  var o_title = getObjectByName("title", "input");
  o_title.value = unescape(o_title.value);

  var o_desc = getObjectByName("description", "textarea");
  o_desc.value = unescape(o_desc.value);
}