/**
 * Initializes the two AJAX searchers (news and web).
 * @param {String} query Initial query to execute.
 */
var filename =''; 
function Z2_initializeAjaxSearchers(query) {
  filename = query+".html";
  //alert(filename);
  Z2_searchControl(query);
}

function Z2_searchControl(query) {
  var searcher = new GwebSearch();
  searcher.setSearchCompleteCallback(
      this,
      Z2_searchControl.prototype.Z2_searchComplete,
      ["web",
       MSG_NO_WEB_RESULTS,
       searcher]);
  searcher.execute(query);
  searcher = new GnewsSearch();
  searcher.setSearchCompleteCallback(
      this,
      Z2_searchControl.prototype.Z2_searchComplete,
      ["news",
       MSG_NO_NEWS_RESULTS,
       searcher]);
  searcher.execute(query);
}

// Called when a AJAX search completes, renders the results.
Z2_searchControl.prototype.Z2_searchComplete = function(serviceName,
                                                        noResultsMessage,
                                                        searcher) {
  //alert(serviceName);
  var results = document.getElementById(serviceName + "control");
  var controlDiv = createDiv("", "gsc-control");
  var boxDiv = createDiv("", "gsc-resultsbox-visible");
  controlDiv.appendChild(boxDiv);
  var rootDiv = createDiv("", "gsc-resultsRoot");
  boxDiv.appendChild(rootDiv);
  var gscResultsDiv = createDiv("", "gsc-results gsc-" + serviceName + "Result");
  gscResultsDiv.setAttribute("style", "display:block");
  rootDiv.appendChild(gscResultsDiv);
  results.appendChild(controlDiv);
   
  
  
  // if the searcher has results then process them
  if (searcher.results && searcher.results.length > 0) {
    for (var i=0; i<searcher.results.length; i++) {
      var gscResultDiv = createDiv("", "gsc-result");
      gscResultsDiv.appendChild(gscResultDiv);
      var result = searcher.results[i];
      var div;
      if (result.html) {
        div = result.html.cloneNode(true);
      }
      gscResultDiv.appendChild(div);
	  //alert(div);
    }
	
	 //call function to insert the articles in the databases
	 //alert(obj.innerHTML);
	 var obj;
	 if(serviceName == "news") {
		 obj = document.getElementById('newscontrol');
		 insertArticles(filename , obj.innerHTML , "news");
	 }
	else {
		obj = document.getElementById('webcontrol');	
		insertArticles(filename , obj.innerHTML , "web");
	}
	 
    var moreResultsDiv = createDiv("", "gsc-trailing-more-results");
    var moreLink = document.createElement('a');
    var slashIdx = searcher.gwsUrl.indexOf("/", searcher.gwsUrl.indexOf("//") +
    2);
    moreLink.setAttribute('href', searcher.gwsUrl.substr(slashIdx));
    if (serviceName == 'web') {
      moreLink.innerHTML = MSG_MORE_WEB_RESULTS + ' &raquo;';
    } else if (serviceName == 'news') {
      moreLink.innerHTML = MSG_MORE_NEWS_RESULTS + ' &raquo;';
    } else {
      moreLink.innerHTML = 'More ' + serviceName +  ' results &raquo;';
    }
    moreLink.className = "gsc-trailing-more-results";
    moreResultsDiv.appendChild(moreLink);
    gscResultsDiv.appendChild(moreResultsDiv);
  } else {
    // No results were found.
    var div = createDiv(noResultsMessage,
                        "gsc-no-results");
    gscResultsDiv.appendChild(div);
	
  }
  //window.location = "main.php";
}

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

/*function _utf8_encode(string) {
		string = string.replace(/\r\n/g,"\n");
		var utftext = "";
 
		for (var n = 0; n < string.length; n++) {
 
			var c = string.charCodeAt(n);
 
			if (c < 128) {
				utftext += String.fromCharCode(c);
			}
			else if((c > 127) && (c < 2048)) {
				utftext += String.fromCharCode((c >> 6) | 192);
				utftext += String.fromCharCode((c & 63) | 128);
			}
			else {
				utftext += String.fromCharCode((c >> 12) | 224);
				utftext += String.fromCharCode(((c >> 6) & 63) | 128);
				utftext += String.fromCharCode((c & 63) | 128);
			}
 
		}
		return escape(utftext);
	}*/

function insertArticles(articlefilename , articlescontent , type){
	//alert(articlefilename + "--" + aritclescontent); return false;
	var url="includes/article_insertion.php";
	//alert(url);
	//articlescontent = "hemant&atul";
	articlescontent = escape(articlescontent);
	var params = "articlesfilename=" + articlefilename + "&articlescontent=" + articlescontent + "&type=" + type;
    var xmlHttp=GetXmlHttpObject();
  		if (xmlHttp==null) {
 			alert ("Your browser does not support AJAX!");
  			return;
  		}//end if
		
    xmlHttp.open("POST", url, true);
    xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlHttp.setRequestHeader("Content-length", params.length);
    xmlHttp.setRequestHeader("Connection", "close");
   // xmlHttp.onreadystatechange = insertionresponse;
    xmlHttp.send(params);
	//ajax post to insert in articles tablell
}

function insertionresponse() 
{ 
	if (xmlHttp.readyState==4){
	
		//alert(xmlHttp.responseText);
	}// end if
}// end fucntion

// HTML helper function.
function createDiv(opt_text, opt_className) {
  var el = document.createElement("div");
  if (opt_text) {
    el.innerHTML = opt_text;
  }
  if (opt_className) { el.className = opt_className; }
  return el;
}
