﻿
var $ = function (name) {
	return document.getElementById(name);
};
var _ = function (tagName) {
	return document.createElement(tagName);
};

function random() {
	var date = new Date();
	return Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());
}

function suggestUrl() {
	return "stockSuggest.do";
}

var Suggest = {
	scan: false,
	url: suggestUrl() + "?rn=" + random() + "&q=",
	element: null,
	obj: null,
	line: null,
	time: 10,
	inputs: null,
	thread: -1,
	suggestType: null,
	init: function () {
		//this.element = $("suggestLoader");
		this.getElement();
		this.inputs = document.getElementsByName("suggestInputText");
		for (var i = 0; i < this.inputs.length; i++) {
			this.inputs[i].valueOld = this.inputs[i].value;
		}
	},
	getElement: function () {
		var head = document.getElementsByTagName('HEAD').item(0);
		if (this.element != null) {
			head.removeChild(this.element);
			this.element = null;
		}
		this.element = _("script");
		this.element.type = "text/javascript";
		this.element.language = "javascript";
		head.appendChild(this.element);
		
		return this.element;
	},
	check: function () {
		if (Suggest.scan == true && $("searchTypeSelect").value == "g") {
			if (Suggest.obj.valueOld != Suggest.obj.value && "" != Suggest.obj.value) {
				Suggest.obj.valueOld = Suggest.obj.value;
				Suggest.getData();
			}
			else if (Suggest.obj.value == "" || Suggest.obj.value == "代码/名称/拼音") {
				Suggest.obj.valueOld = Suggest.obj.value;
				Suggest.clean();
			}
			Suggest.thread = window.setTimeout(Suggest.check, Suggest.time);
		}
	},
	getData: function () {
		this.getElement();
		var dataUrl;
		if (this.obj.value.match(/^(sh|sz)[0-9]{1,6}/) != null) {
			dataUrl = this.url + encodeURIComponent(this.obj.value.substr(2));
		}
		else {
			dataUrl = this.url + encodeURIComponent(this.obj.value);
		}
		this.setSuggestType();
		if (this.suggestType != null) {
			dataUrl = dataUrl + "&t=" + this.suggestType;
		} 
		this.element.src = dataUrl;
	},
	focusObj: function (obj) {
		Suggest.obj = obj;
		obj.symbol = null;
		if (obj.value == '代码/名称/拼音') {
			obj.style.color = "#000000";
			obj.value = '';
		}
		if (obj.value != '' && obj.value != '代码/名称/拼音' && $("searchTypeSelect").value == "g") {
			Suggest.getData();
		}
		Suggest.scan = true;
		Suggest.check();
	},
	blurObj: function (obj, evt) {
		Suggest.clean(obj);
		if (obj.value == '') {
			//obj.value = '代码/名称/拼音';
			//obj.style.color = "#999999";
		}
		Suggest.scan = false;
		return false;
	},
	keyDown: function (obj, evt) {
		if (this.obj.value != "") {
			switch (evt.keyCode) {
				case 38: //up
					this.scan = false;
					if (this.line == null || this.line.rowIndex == 1 || this.line.rowIndex < 0) {
						this.setLine(this.obj.suggestBody.rows[this.obj.suggestBody.rows.length - 1]);
					}
					else {
						this.setLine(this.obj.suggestBody.rows[this.line.rowIndex - 1]);
					}
					return false;
					break;
				case 40: //down
					this.scan = false;
					if (this.line == null || this.line.rowIndex == this.obj.suggestBody.rows.length - 1 || this.line.rowIndex < 0) {
						this.setLine(this.obj.suggestBody.rows[1]);
					}
					else {
						this.setLine(this.obj.suggestBody.rows[this.line.rowIndex + 1]);
					}
					return false;
					break;
				case 13: //Enter
					Suggest.blurObj(obj, evt);
					/*
					if ($("addStockButton")) {
						$("addStockButton").click();
					}
					*/
					//this.setLine(null);
					break;
				default:
					this.setLine(null);
					this.scan = true;
					this.check();
					break;
			}
		}
		return true;
	},
	setLine: function (line) {
		if (line != null) {
			if (this.line != null) {
				this.discolorLine(this.line);
			}
			this.line = line;
			this.colorLine(line);
			this.obj.value = line.cells[0].innerHTML;
			//this.obj.symbol = line.cells[1].innerHTML;
		}
		else {
			this.line = null;
		}
	},
	colorLine: function (line) {
		line.className = "selected";
	},
	discolorLine: function (line) {
		line.className = "";
	},
	clean: function () {
		$(Suggest.obj.id + "_suggest").innerHTML = "";
	},
	setSuggestType: function() {
		if ($("suggest_cid_g").checked) {
			this.suggestType = "g";
		} else if ($("suggest_cid_gf").checked) {
			this.suggestType = "gf";
		}
	}
};
var everydatal = 0;
var everydatalLast = 0;
var everydata = new Array();
function showCnt(length, data) {
	everydatalLast = everydatal;
	Suggest.clean();
	if (length != 0) {
		var result = new String();
		result += '<table class="SuggesTable" border="0" cellpadding="0" cellspacing="0">';
		result += '<tr><td><b>选项</b></td><td><b>代码</b></td><td><b>名称</b></td></tr>';
		for (var i in data) {
			var tempArray1 = data[i].split("	");
			var tempArray2 = tempArray1[1].split("-");
			result += '<tr onmouseover="Suggest.colorLine(this);" onmouseout="Suggest.discolorLine(this);" onmousedown="Suggest.setLine(this);"><td>' + tempArray1[0] + '</td><td>' + tempArray2[1] + '</td><td>' + tempArray2[2] + '</td></tr>';
		}
		result += '</table>';
		$(Suggest.obj.id + "_suggest").innerHTML = result;
		Suggest.obj.suggestBody = $(Suggest.obj.id + "_suggest").childNodes[0];
		if (length == 1) {
			Suggest.obj.symbol = Suggest.obj.suggestBody.rows[1].cells[1].innerHTML;
			//alert(Suggest.obj.symbol);
		}
		else {
			Suggest.obj.symbol = null;
			Suggest.setLine(null);
		}
	}
	else {
		Suggest.obj.symbol = null;
	}
	
	everydatal = 0;
	everydata = new Array();
}
