// Error: uncaught exception: Permission denied to call method XMLHttpRequest.open

var http_request = false;
var xslDocument = null;
  
function createRequest()
{

	if(window.XMLHttpRequest && !(window.ActiveXObject)) 
	{		
    		try {
				http_request = new XMLHttpRequest();
        	} catch(e) {
				http_request = null;
        	}
    } 
    else if(window.ActiveXObject)
    {
       		try {
        		http_request = new ActiveXObject("Msxml2.XMLHTTP");
      		} catch(e) {
        		try {
          			http_request = new ActiveXObject("Microsoft.XMLHTTP");
        		} catch(e) {
          			http_request = null;
        		}
			}
    }
    if(http_request == null){
     	alert("Error creating request object!");  
		
	}		
   
}


function loadXMLDoc(fname)
{
	var xmlDoc;
	// code for IE
	if (window.ActiveXObject)
	{
		xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async=false;
		xmlDoc.loadXML(fname);
	}
	// code for Mozilla, Firefox, Opera, etc.
	else if (document.implementation 
	&& document.implementation.createDocument)
	{
		xmlDoc=document.implementation.createDocument("","",null);
		xmlDoc.async=false;
		var parser = new DOMParser(); 
		xmlDoc = parser.parseFromString(fname, "text/xml"); 
	}

	
	return(xmlDoc);
}

function loadXSLDocument(fname)
{
	var xslDoc;
	// code for IE
	if (window.ActiveXObject)
	{
		xslDoc=new ActiveXObject("Microsoft.XMLDOM");
		
	}
	// code for Mozilla, Firefox, Opera, etc.
	else if (document.implementation 
	&& document.implementation.createDocument)
	{
		xslDoc=document.implementation.createDocument("","",null);
	}
	
	xslDoc.async=false;
	xslDoc.load(fname);
	return(xslDoc);
}



  function makeRequest(url, parameters) {

   try {
    netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
   } catch (e) {
    //alert("Permission UniversalBrowserRead denied.");
   }

    http_request = false;
    createRequest();
    if (http_request.overrideMimeType) {
      http_request.overrideMimeType('text/xml');
    }
    if (!http_request) {
      //alert('Cannot create XMLHTTP instance');
      //return false;
    }
	else{
		http_request.onreadystatechange = transformToHtml;
		//alert(url+parameters);
		http_request.open('GET', url + parameters, true);
		http_request.send(null);
	}
	
  }

  function transformToHtml() {
    if (http_request.readyState == 4) {
      if (http_request.status == 200) {

		var returnXML = http_request.responseText;		
		//load  xml
		var xml = loadXMLDoc(returnXML);
		// load xsl file 
		var xslt = loadXSLDocument(xslDocument)	;   
		
		var output = ProcessXMLAndXSL(xml, xslt);
		if(typeof(output)=='string') {
        //IE
			var outputDiv = document.getElementById("content");
			outputDiv.innerHTML = output;
		} else {
        //Mozilla
		    var outputDiv = document.getElementById("content");
			
			var serializer = new XMLSerializer();
			var xml = serializer.serializeToString(output);
			outputDiv.innerHTML = xml;
		}
	}
	}
  }
  
  function ProcessXMLAndXSL(oXML, oXSL) {
    var sHTML = '';
    //IE
    if(window.ActiveXObject) {
        try {
            sHTML = oXML.transformNode(oXSL);
        } catch (e) {
            alert('could not transform xml and xsl');
        }
    }
    //Mozilla
    if (document.implementation && document.implementation.createDocument) {
        var oProcessor = new XSLTProcessor();
        oProcessor.importStylesheet(oXSL);
        sHTML = oProcessor.transformToFragment(oXML, document);
    }
	return sHTML;
}
  
  function search() {
    var fullurl = document.location.href;
	var textEle = document.getElementById('queryText');
	if(textEle.value =='' && fullurl.indexOf('queryText=') < 0)
	{
	}
	else
	{
		var queryString="";
		if(fullurl.indexOf('?') > 0){	
			queryString = fullurl.substring(fullurl.indexOf('?'), fullurl.length);
			var query = fullurl.substring(fullurl.indexOf('queryText='), fullurl.length);		
			var queryValue = query.substring(query.indexOf('queryText=')+10, query.indexOf('&'));
			var textEle = document.getElementById('queryText');
			textEle.value = queryValue;
	}
	if(queryString=='')
		queryString="?queryText=" + document.getElementById('queryText').value;
	xslDocument = "xsl/search.xsl";
    makeRequest('http://www.monsanto.ca/monsanto/asp/search/searchservice.aspx', queryString);
	}
  }
  
  function searchNewsArticles(){
	var fullurl = document.location.href;
	var textEle = document.getElementById('queryText');
	if(textEle.value =='' && fullurl.indexOf('queryText=') < 0)
	{
	}
	else
	{
		var queryString="";
		if(fullurl.indexOf('?') > 0){	
			queryString = fullurl.substring(fullurl.indexOf('?'), fullurl.length);
			var query = fullurl.substring(fullurl.indexOf('queryText='), fullurl.length);		
			var queryValue = query.substring(query.indexOf('queryText=')+10, query.indexOf('&'));
			//var textEle = document.getElementById('queryText');
			//textEle.value = queryValue;
	}
	if(queryString=='')
		queryString="?queryText=" + document.getElementById('queryText').value;
	xslDocument = "xsl/searchnews.xsl";
    makeRequest('http://www.monsanto.ca/monsanto/asp/search/searchservice.aspx', queryString);
	}
  }
  
  
  function clientSideInclude(id, url) {
  var req = false;
  // For Safari, Firefox, and other non-MS browsers
  if (window.XMLHttpRequest) {
    try {
      req = new XMLHttpRequest();
    } catch (e) {
      req = false;
    }
  } else if (window.ActiveXObject) {
    // For Internet Explorer on Windows
    try {
      req = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        req = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e) {
        req = false;
      }
    }
  }
 var element = document.getElementById(id);
 if (!element) {
  alert("Bad id " + id + 
   "passed to clientSideInclude." +
   "You need a div or span element " +
   "with this id in your page.");
  return;
 }
  if (req) {
    // Synchronous request, wait till we have it all
    req.open('GET', url, false);
    req.send(null);
	alert(req.responseText);
	var output = req.responseText;
	if(typeof(output)=='string') {
        //IE			
			element.innerHTML = output;
		} else {
        //Mozilla		    
			var serializer = new XMLSerializer();
			var xml = serializer.serializeToString(output);
			element.innerHTML = xml;
		}
		
	
  } else {
    element.innerHTML =
   "Sorry, your browser does not support " +
      "XMLHTTPRequest objects. This page requires " +
      "Internet Explorer 5 or better for Windows, " +
      "or Firefox for any system, or Safari. Other " +
      "compatible browsers may also exist.";
  }
}
 
 
function getResponse(){
 var fullurl = document.location.href;
	var textEle = document.getElementById("queryText");
	if(textEle.value =='' && fullurl.indexOf("queryText=") < 0)
	{
	}
	else
	{
		var queryString="";
		if(fullurl.indexOf('?') > 0){	
			queryString = fullurl.substring(fullurl.indexOf('?'), fullurl.length);
			var query = fullurl.substring(fullurl.indexOf('queryText='), fullurl.length);		
			var queryValue = query.substring(query.indexOf('queryText=')+10, query.indexOf('&'));
			var textEle = document.getElementById('queryText');
			textEle.value = queryValue;
	}
	if(queryString=='')
		queryString="?queryText=" + document.getElementById('queryText').value;
	clientSideInclude('content', 'asp/search.asp' + queryString);
}
} 
  


