// remote scripting library
// (c) copyright 2005 modernmethod, inc

var started;
var typing;
var memory=null;
var body=null;
var oldbody=null;
var useDCSearchStyle=true;

// Remove the typing barrier to allow call() to complete
function Search_doneTyping()
{
	typing=false;
}

// Wait 500ms to run call()
function Searching_Go()
{
        setTimeout("Searching_Call()", 500);
}

// If the user is typing wait until they are done.
function Search_Typing() {
	started=true;
	typing=true;
	window.status = "Waiting until you're done typing...";
	setTimeout("Search_doneTyping()", 500);

	// I believe these are needed by IE for when the users press return?
	if (window.event)
	{
		if (event.keyCode == 13)
		{
			event.cancelBubble = true;
			event.returnValue = false;
		}
	}
}

// Set the body div to the results
function Searching_SetResult( request )
{
	if ( request.status != 200 ) {
		//alert("Error: " + request.status + " " + request.statusText + ": " + request.responseText);
		return;
	}
	
	var result = request.responseText;

	if (useDCSearchStyle) {
		target = document.getElementById("searchTarget");
		if (target == null) {
			// insert search target div
			contentContainer = document.getElementById("divDCContentSubcontainer");
			contentContainer.innerHTML = 
				'<div id="searchTarget" class="divDCContent"></div>' + contentContainer.innerHTML;
	 		target = document.getElementById("searchTarget");
		}
		target.innerHTML = result;
		if (jQuery("div#searchTarget").css('display') == 'none') {
			jQuery("div#searchTarget").show("slow");
		}
	} else {
		// use monobook live search style (kept this in for skin compatibility)
		t = document.getElementById("searchTarget");
		if ( t == null ) {
			oldbody=body.innerHTML;
			body.innerHTML= '<div id="searchTargetContainer"><div id="searchTarget" ></div></div>' ;
			t = document.getElementById("searchTarget");
		}
		t.innerHTML = result;
		t.style.display='block';
	}
}

function Searching_Hide_Results()
{
	if (useDCSearchStyle) {
		target = document.getElementById("searchTarget");
		target.style.display='none';
		jQuery("div#searchTarget").slideUp("slow");
	} else {
		t = document.getElementById("searchTarget");
		t.style.display='none';
		body.innerHTML = oldbody;
	}
}


// This will call the php function that will eventually
// return a results table
function Searching_Call()
{
	var x;
	Searching_Go();

	//Don't proceed if user is typing
	if (typing)
		return;

	x = document.getElementById("searchInput").value;

	// Don't search again if the query is the same
	if (x==memory)
		return;

	memory=x;
	if (started) {
		// Don't search for blank or < 3 chars.
		if ((x=="") || (x.length < 3))
		{
			return;
		}
		
		//sajax_do_call( "wfSajaxSearch", [ x ], Searching_SetResult );
		sajax_do_call( "wfSajaxSearchDC", [ x ], Searching_SetResult );
	}
}

//Initialize
function sajax_onload() {
	x = document.getElementById( 'searchInput' );
	if (x != undefined) {
		x.onkeypress= function() { Search_Typing(); };
		Searching_Go();
		body = document.getElementById("content");
	}
}
