var AjaxSearch = GetXmlHttpRequestObject();
var AjaxSearchTimer;
var AjaxStock = GetXmlHttpRequestObject();
var AjaxStockTimer;
var BlurTimer;
var as_array = new Array;
var as_selected = 0;

var email_clicked = 0;
var password_clicked = 0;
var search_clicked = 0;

function GetXmlHttpRequestObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	}
}

function GetSearchResults() {
	if (AjaxSearch.readyState < 4 && AjaxSearch.readyState > 0) {
		AjaxSearch.abort();
	}
	if (AjaxSearch.readyState == 4 || AjaxSearch.readyState == 0) {
		AjaxSearch.open("GET", '/ajax/ajaxsearch.php?search=' + document.getElementById('s').value, true);
		AjaxSearch.onreadystatechange = ReceiveSearchResults; 
		AjaxSearch.send(null);
	}
}

function GetStock(stock) {
	if (AjaxStock.readyState == 4 || AjaxStock.readyState == 0) {
		AjaxStock.open("GET", '/ajax/ajaxstock.php?symbol=' + stock, true);
		AjaxStock.onreadystatechange = ReceiveStock; 
		AjaxStock.send(null);
	}
}

function AjaxSearchOnKeyUp(varTemp) {
	switch (varTemp) {
		case 13:
			AjaxSearchSubmit();
			break;
		case 38:
			HighlightResults(-1);
			break;
		case 40:
			HighlightResults(1);
			break;
		default:
			if (trim(document.getElementById('s').value) == "") {
				document.getElementById('as').style.visibility = "hidden";				
			} else {
				AjaxSearchTimer = setTimeout('GetSearchResults();',1);
			}
	}
}

function ReceiveSearchResults() {
	if (AjaxSearch.readyState == 4) {
		var JSON = eval("(" + AjaxSearch.responseText + ")");
		as_array = [];
		as_selected = 0;
		var buffer = '<table cellspacing="0" cellpadding="0">';
		for(f=0; f < JSON.Search.Data.length; f++) {
			buffer += '<tr id="as_row_' + (JSON.Search.Data[f].symbol).replace(/<\/?[^>]+(>|$)/g, "") + '" class="as_row';
			//if (!f) { buffer += '_selected'; GetStock((JSON.Search.Data[f].symbol).replace(/<\/?[^>]+(>|$)/g, "")); }
			buffer += '" onMouseMove="javascript:HighlightResultsMouse(this);"' +
			'onMouseDown="javascript:AjaxSearchSubmit()">' +
			'<td class="as_symbol">' +
			JSON.Search.Data[f].symbol +
			'</td><td class="as_name">' + 
			JSON.Search.Data[f].name +
			'</td></tr>';
			as_array[f] = (JSON.Search.Data[f].symbol).replace(/<\/?[^>]+(>|$)/g, "");
		}
		document.getElementById('as').innerHTML = buffer + '</table>';
		document.getElementById('as').style.visibility = "visible";
	}
}

function ReceiveStock() {
	if (AjaxStock.readyState == 4) {
		var JSON = eval("(" + AjaxStock.responseText + ")");
		var buffer = '';
		buffer += JSON.Stock.Data[0].symbol + '<br>';
		buffer += JSON.Stock.Data[0].last_close + '<br>';
		buffer += JSON.Stock.Data[0].last_dividend_date + '<br>';
		buffer += '';
		document.getElementById('chart').innerHTML = buffer;
	}
}

function AjaxSearchSubmit() {
	if (as_array.length) { document.getElementById('s').value = as_array[as_selected]; }
	window.location = "http://dividata.com/stock/" + document.getElementById('s').value;
}

function HighlightResultsMouse(varTemp) {
	if (varTemp.className != "as_row_selected") {
		for(f=0; f < as_array.length; f++) {
			document.getElementById("as_row_" + as_array[f]).className="as_row";
		}
		varTemp.className = "as_row_selected";
		document.getElementById('s').value = (varTemp.id).substr(7);
		//GetStock((varTemp.id).substr(7));
		as_selected = as_array.indexOf((varTemp.id).substr(7));
	}
}

function HighlightResults(varTemp) {
	if (((as_selected + varTemp) < as_array.length) && ((as_selected + varTemp) >= 0)) {
		as_selected = as_selected + varTemp;
		for(f=0; f < as_array.length; f++) {
			if (f == as_selected) {
				document.getElementById("as_row_" + as_array[f]).className="as_row_selected";
				document.getElementById('s').value = as_array[f];
				//GetStock(as_array[f]);
			} else {
				document.getElementById("as_row_" + as_array[f]).className="as_row";
			}
		}
	}
}

function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}
