/*
 * Returns a new XMLHttpRequest object, or false if this browser
 * doesn't support it
 */
function newXMLHttpRequest() {
  var xmlreq = false;
  if (window.XMLHttpRequest) {
    // Create XMLHttpRequest object in non-Microsoft browsers
    xmlreq = false;
    xmlreq = new XMLHttpRequest();
    if (xmlreq.overrideMimeType) {
      xmlreq.overrideMimeType('text/xml');
    }
  } else if (window.ActiveXObject) {
    // Create XMLHttpRequest via MS ActiveX
    try {
      // Try to create XMLHttpRequest in later versions
      // of Internet Explorer
      xmlreq = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e1) {
      // Failed to create required ActiveXObject
      try {
        // Try version supported by older versions
        // of Internet Explorer
        xmlreq = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e2) {
        // Unable to create an XMLHttpRequest with ActiveX
      }
    }
  }
  return xmlreq;
}

/*
 * Returns a function that waits for the specified XMLHttpRequest
 * to complete, then passes its XML response to the given handler function.
 * req - The XMLHttpRequest whose state is changing
 * responseXmlHandler - Function to pass the XML response to
 */
function getReadyStateHandler(req, responseXmlHandler) {
  // Return an anonymous function that listens to the
  // XMLHttpRequest instance
  return function () {
    // If the request's status is "complete"
    if (req.readyState == 4) {
      // Check that a successful server response was received
      if (req.status == 200) {
        // Pass the XML payload of the response to the
        // handler function
        responseXmlHandler(req.responseXML);
      } else {
        // An HTTP problem has occurred
        alert("HTTP error: "+req.status);
      }
    }
  }
}

function _loadData(url, send_params, handler) {
  var req = newXMLHttpRequest();
  var handlerFunction = getReadyStateHandler(req, eval(handler));
  req.open("POST", url, true);
  req.onreadystatechange = handlerFunction;
  req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  if(send_params==null||send_params.length==0)send_params="dummy=1";
  req.setRequestHeader("Content-Length", send_params.length);
  req.send(send_params);
}

function get_node_value(xml_obj,node_name){
  var user_agent = navigator.userAgent.toLowerCase();
  var result = "";
  if(xml_obj.getElementsByTagName(node_name).length > 0){
    if(xml_obj.getElementsByTagName(node_name).item(0).firstChild!=null){
      if ((user_agent.indexOf("safari") != -1 || user_agent.indexOf("firefox") != -1) && (xml_obj.getElementsByTagName(node_name).item(0).textContent!=undefined)) {
        result = xml_obj.getElementsByTagName(node_name).item(0).textContent;
      } else {
        result = xml_obj.getElementsByTagName(node_name).item(0).firstChild.data;
      }
    }
  }
  return result;
}

function refreshTestimonial() {
  _loadData('/RealtorHome2',
    'operation=randomTestimonial&xml=1&ndd=1',
    'onLoadTestimonial');
}

function onLoadTestimonial(xml_data) {
  var t_name = get_node_value(xml_data,"name");
  var t_img_url = get_node_value(xml_data,"img_url");
  var t_city = get_node_value(xml_data,"city");
  var t_state = get_node_value(xml_data,"state");
  var t_url = get_node_value(xml_data,"url");
  var t_full_message = get_node_value(xml_data,"full_message");
  var t_short_message = get_node_value(xml_data,"short_message");
  
  if (t_name==null || t_img_url==null || t_city==null || t_state==null || t_url==null || t_full_message==null || t_short_message==null){
    refreshTestimonial();
    return;
  }

  var t_html = "";
  t_html += "<img src='http://isvr.net/pmsite/testimonials/"+t_img_url+"' width='93' height='117' alt='' border='0' class='testimonial' align='left'>";
  t_html += "<b>"+t_name+"<br></b>";
  if (t_city != "") {
    t_html += t_city + ", ";
  }
  t_html += t_state + "<br>";
  if (t_url != "") {
    t_html += "<a href='http://"+t_url+"/' target='_blank'>My website</a><br>";
  }
  t_html += "<p>";
  t_html += t_short_message;
  t_html += "<br><a href='javascript: refreshTestimonial()'>Read more</a>";
  t_html += "</p>";
  var el = document.getElementById("testimonialHome");
  if (t_name != "" && el) {
    el.innerHTML = "";
    el.innerHTML = t_html;
    el.style.display = "block";
  }
}