//----------------------------------------------------------------
// Written by Ray Wilson
// Copyright Music From Outer Space LLC 2010.
// http://www.musicfromouterspace.com/mfosweb/home.action
//----------------------------------------------------------------
var GLOBALSEARCHWINDOWOPEN = false;
var GSEARCHBOXWIDE = 500;
var GSEARCHBOXHIGH = 325;
var NORESULTSFOUND = "NO_RESULTS_FOUND";
var GLOBALPHOTORESULTS = "";
var GLOBALSEARCHTERMS = "";

function openSearchWindowAutoSearch(searchterm)
{
	openSearchWindow();
	document.getElementById("searchwords").value = searchterm;
	searchNow();
}

function mainPageSearch(e)
{
	var txt = document.getElementById("searchtext2");
	if(txt)
	{
		openSearchWindowAutoSearch(txt.value);
	}
}

function searchKeyPress(e)
{
	e = getEvent(e);
    var target = getEventSource(e);
    if(target.id == "mainpagesearchtext")
    {
    	if(e.keyCode == 13)
    	{
    		if(target.value.length > 0)
   			{
    			openSearchWindowAutoSearch(target.value);
    			stopEventBubble(e);
    			return false;
   			}
    	}
    }
    return true;
}

function openSearchWindow()
{
	closeShareWindow(false);
	if (GLOBALSEARCHWINDOWOPEN)
	{
		return;
	}
	
	var html = generateSearchHTML();
	var pt = getUpperLeftPoint(document.getElementById("pagesizer"));
	var sw = document.getElementById("searchWindowDiv");

	sw.className = "searchWindowStyle";
	sw.style.left = (pt.x + 100) + "px";
	sw.style.top = (pt.y + 100) + "px";
	sw.style.zIndex = "500";
	sw.style.width = GSEARCHBOXWIDE + "px";
	sw.style.height = GSEARCHBOXHIGH + "px";
	sw.style.display = "block";
	sw.innerHTML = html;
	addEvent(document.getElementById("searchwords"),"keypress", searchwordsKeyPress);
	
	var lastSearchTerm = "";
	var theForm = findFormByName("masterform");
	if (theForm)
	{
		lastSearchTerm = theForm.elements["LASTSEARCHTERM"].value;
	}
	document.getElementById("searchwords").value = lastSearchTerm;
	document.getElementById("searchwords").focus();
	document.getElementById("searchwords").select();
	
	if (theForm)
	{
		if(theForm.elements["LASTSEARCHRESULT"].value.length > 0)
		{
			displaySearchResults(theForm.elements["LASTSEARCHRESULT"].value);
		}
	}
	GLOBALSEARCHWINDOWOPEN = true;
	setTimeout("delayedReaction()", 100);
}

function delayedReaction()
{
	addEvent(document.body, "click", closeAllDialogs);
	if(window.frames['maincontentiframe'] && window.frames['maincontentiframe'].document)
	{
		addEvent(window.frames['maincontentiframe'].document.body, "click", closeAllDialogs);
	}
}

function searchwordsKeyPress(e)
{
	e = getEvent(e);
    var target = getEventSource(e);
    if(target.id == "searchwords")
    {
    	if(e.keyCode == 13)
    	{
    		searchNow();
    	}
    }
}

function closeSearchWindow()
{
	closeSearchWindowMask();
	closeSearchWindowMessage();
	closeSearchWindowDiv();
	GLOBALSEARCHWINDOWOPEN = false;
}

function searchNow()
{
	var theForm = findFormByName("masterform");
	if (theForm)
	{
		theForm.elements["LASTSEARCHTERM"].value = document.getElementById("searchwords").value;
	}
		
	var swd = document.getElementById("searchWindowDiv");
	var msk = document.getElementById("searchWindowMask");
	var msg = document.getElementById("searchWindowMessage");
	
	msk.style.left = swd.style.left;
	msk.style.top = swd.style.top;
	msk.style.width = GSEARCHBOXWIDE + "px";
	msk.style.height = GSEARCHBOXHIGH + "px";
	msk.style.zIndex = "600";
	msk.style.display = "block";
	
	msg.style.width = "32px";
	msg.style.height = "32px";
	msg.style.left = "0px";
	msg.style.top = "0px";
	centerElementInElement(msg, msk);
	msg.style.zIndex = "610";
	msg.style.display = "block";
	
	var searchTerms = document.getElementById("searchwords").value;
	if(searchTerms.indexOf(",") > -1)
	{
		closeSearchWindow();
		GLOBALSEARCHWINDOWOPEN = false;
		alert("Keywords should be space delimited. (e.g. voltage control)");
		return;
	}
	
	getSearchResults(searchTerms);
}

function getSearchResults(searchTerms)
{
	GLOBALSEARCHTERMS = searchTerms;
	
	var argNames = new Array();
	argNames.push("SEARCHTERMS");
	argNames.push("M");
	
	var d = new Date();
	var argValues = new Array();
	argValues.push(searchTerms);
	argValues.push(""+d.getTime());
	
	callRemoteService("getSearchResults.php", displaySearchResults, argNames, argValues, 'POST');
}

function displaySearchResults(s)
{
	var bResultsExist = false;
	var products = new StringBuffer();
	var projects = new StringBuffer();
	var resultCount = 0;
	if(s)
	{
		var results;
		if(s.indexOf("|") > -1)
		{
			results = s.split(/\|/g);
		}
		else
		{
			results = new Array();
			results.push(s);
		}

		var len = results.length;
		for(var i=0; i<len; ++i)
		{
			var parts = results[i].split(/,/g);
			for(var m=0;m<parts.length;++m)
			{
				parts[m] = parts[m].trim(); 
			}
			
			if(parts[2] == "PROJECT")
			{
				//-------------------------------
				// parts[0] = project Title
				// parts[1] = Project URI
				// parts[2] = "PROJECT"
				//-------------------------------
				projects.append(generateSynthDIYAnchorTag(parts[0],parts[1]));
				bResultsExist = true;
				++resultCount;
			}
			else if(parts[2] == "CATALOG")
			{
				//-------------------------------
				// parts[0] = Product Title
				// parts[1] = CATPARTNO value
				// parts[2] = "CATALOG"
				//-------------------------------
				products.append(generateCatalogAnchorTag(parts[0],parts[1]));
				bResultsExist = true;
				++resultCount;
			}
		}
	}
	
	var showdiv = document.getElementById("newresultdiv");
	var countdisplay = document.getElementById("countdisplay");
	if(showdiv && bResultsExist)
	{
		var html = new StringBuffer();
		html.append("<table style='width:95%;margin:3px;' cellpadding='2' cellspacing='0'>");
		html.append(projects.toString());
		html.append(products.toString());
		html.append("</table>");
		showdiv.innerHTML = html;
		countdisplay.innerHTML = "Found " + resultCount + " results";
	}
	else
	{
		showdiv.innerHTML = "No results found.";
		countdisplay.innerHTML = "Found 0 results";
	}
	
	closeSearchWindowMask();
	closeSearchWindowMessage();
	
}

function closeSearchWindowMask()
{
	var elem = document.getElementById("searchWindowMask");
	if(elem && elem.style)
	{
		elem.style.display = "none";
		elem.style.left = "-1000px";
		elem.style.top = "-1000px";
		elem.style.zIndex = "-500";
	}
}

function closeSearchWindowMessage()
{
	var elem = document.getElementById("searchWindowMessage");
	if(elem && elem.style)
	{
		elem.innerHTML = "";
		elem.style.display = "none";
		elem.style.left = "-1000px";
		elem.style.top = "-1000px";
		elem.style.zIndex = "-500";
	}
}

function closeSearchWindowDiv()
{
	var elem = document.getElementById("searchWindowDiv");
	if(elem && elem.style)
	{
		elem.innerHTML = "";
		elem.style.display = "none";
		elem.style.zIndex = "-500";
	}
}

function generateSynthDIYAnchorTag(title, uri)
{
	var sb = new StringBuffer();
	sb.append("<tr><td width='5%'>");
	sb.append(generateAddToMyMFOSLink(title, uri, "PROJECT"));
	sb.append("</td>");
	sb.append("<td width='5%'><span title='Project' class='projecticon'>&nbsp;</span></td>");
	sb.append("<td width='90%'><a title='View project...' target='_top' href='#' onclick=\"closeSearchWindow();launchpage('SYNTHDIY','");
	sb.append(uri);
	sb.append("','NONE',true);return false;\"><span class='result'>");
	sb.append(title);
	sb.append("</span></a></td></tr>");
	return sb.toString();
}

function generateCatalogAnchorTag(title, partno)
{
	var sb = new StringBuffer();
	sb.append("<tr><td width='5%'>");
	sb.append(generateAddToMyMFOSLink(title, partno, "CATALOG"));
	sb.append("</td>");
	sb.append("<td width='5%'><span title='Product' class='producticon'>&nbsp;</span></td>");
	sb.append("<td width='90%'><a title='View product...' target='_top' href='#' onclick=\"closeSearchWindow();launchpage('CATALOG','NONE','");
	sb.append(partno);
	sb.append("',true);return false;\"><span class='result'>");
	sb.append(title);
	sb.append("</span></a></td></tr>");
	return sb.toString();
}

function generateSearchHTML()
{
	var sb = new StringBuffer();
	sb.append("<table width='100%' cellpadding='2' cellspacing='0'>");
	sb.append("<tr class='sharehead' width='50%'>");
	sb.append("<td class='sharehead' width='50%'>MFOS Site Search</td><td class='shareheadcloser'>");
	sb.append("<img onclick='closeSearchWindow();GLOBALSEARCHWINDOWOPEN=false;' style='cursor:pointer;' src='images/closewindow.gif'></td></tr>");
	sb.append("<tr><td class='bmtext leftpad'>Search for keyword(s) <i>(space delimited)</i></td><td><span id='countdisplay' class='bmtext'></td></tr>");
	sb.append("<tr><td class='bmtext leftpad'><input id='searchwords' class='sharetext' size='38' maxlength=200 type='text'></td>");
	sb.append("<td class='bmtextr'><input onclick='searchNow();' type='button' class='flatten' value='search'>&nbsp;&nbsp;&nbsp;");
	sb.append("<input onclick='closeSearchWindow();GLOBALSEARCHWINDOWOPEN=false;' type='button' class='flatten' value='cancel'>&nbsp;&nbsp;</td></tr>");
	sb.append("<tr><td colspan=2 class='bmtext' style='text-align:center;font-size:2pt;'>&nbsp;</td></tr>");
	sb.append("<tr><td colspan=2 class='bmtext' style='text-align:center;'>");
	sb.append("<div id='newresultdiv' style='text-align:left;background-color:white;overflow:auto;width:99%;height:240px;border:solid 1px gray;'></div>");
	sb.append("</td></tr>");
	sb.append("</table>");
	return sb.toString();
}


