var aTickers = new Hashtable();
var aHots = new Hashtable();
var page1 = new Array();
var page2 = new Array();
var alltickers = false;

if(!Array.indexOf){
	Array.prototype.indexOf = function(obj){
		for(var i=0; i<this.length; i++)
			if(this[i]==obj) return i;
		return -1;
	}
}
////////////////////
function buildTickers() {
	var acheck = new Array();
	var strcheck = getCookie(board);
	if ((strcheck==null)||(strcheck=="*")) {
		alltickers = true;
	} else {
		alltickers = false;
		acheck = strcheck.split("|");
	}
	if (alltickers){
		for (var i in aTickers.hashtable)
			aTickers.hashtable[i].selected=1;
	} else {
		for (var i=0; i<acheck.length; i++) {
			if (aTickers.hashtable[acheck[i]])
				aTickers.hashtable[acheck[i]].selected = 1;
		}
	}
	buildHots();
	buildPage();
}
function buildHots() {
	var ahot = new Array();
	var strhot = getCookie(board + "-hot");
	if (strhot!=null) ahot = strhot.split("|");
	for (var i=0; i<ahot.length; i++) {
		if (aTickers.hashtable[ahot[i]])
			aTickers.hashtable[ahot[i]].hot = 1;
	}
}
function buildPage()
{
	aHots.clear();
	page1 = new Array(0);
	page2 = new Array(0);
	page1[0] = 0;// Index
	page2[0] = "";// Index
	var mycount=1;
	switch (stocktype)
	{
	case 0://normal
		for (var i in aTickers.hashtable)
			if ((aTickers.hashtable[i].selected)&&(aTickers.hashtable[i].hot)) {
				aHots.put(i,i);
				page1[mycount]=aTickers.hashtable[i].index;
				page2[mycount++]=i;
			}
		for (var i in aTickers.hashtable)
			if ((aTickers.hashtable[i].selected)&&(aTickers.hashtable[i].hot==0)) {
				page1[mycount]=aTickers.hashtable[i].index;
				page2[mycount++]=i;
			}
		break;
	case 1://bluechip board
		for (var i in aTickers.hashtable)
			if (aTickers.hashtable[i].bluechip==1) {
				page1[mycount]=aTickers.hashtable[i].index;
				page2[mycount++]=i;
			}
		break;
	case 2://none bluechip
		for (var i in aTickers.hashtable)
			if (aTickers.hashtable[i].bluechip!=1) {
				page1[mycount]=aTickers.hashtable[i].index;
				page2[mycount++]=i;
			}
		break;
	case 3://all stocks board
		for (var i in aTickers.hashtable) {
			page1[mycount]=aTickers.hashtable[i].index;
			page2[mycount++]=i;
		}
		break;
	case 4://all selected stocks 
		for (var i in aTickers.hashtable)
			if (aTickers.hashtable[i].selected) {
				page1[mycount]=aTickers.hashtable[i].index;
				page2[mycount++]=i;
			}
		break;
	case 5://customer selected stocks 
		for (var i in aTickers.hashtable)
			if (aTickers.hashtable[i].bluechip==2) {
				page1[mycount]=aTickers.hashtable[i].index;
				page2[mycount++]=i;
			}
		break;
	case 6://None bluechip & customer selected stocks 
		for (var i in aTickers.hashtable)
			if (aTickers.hashtable[i].bluechip==0) {
				page1[mycount]=aTickers.hashtable[i].index;
				page2[mycount++]=i;
			}
		break;
	}
}
function saveHots()
{
	var str = "";
	for (var i in aHots.hashtable) {
		if (aHots.hashtable[i] != null) {
			if (str=="") str = i;
			else str = str + "|" + i;
		}
	}
	setCookie(board + "-hot", str, 10000);
}
function ad(i, k, s, b){
	var mystock = new Stock();
	mystock.index = i;
	mystock.code = k;
	mystock.name = s;
	mystock.bluechip = b;
	aTickers.put(k,mystock);
}
function Hashtable(){
	this.hashtable = new Array();
	this.length = 0;

	this.clear = function(){
		this.hashtable = new Array();
		this.length = 0;
	}
	this.hasKey = function(key){
		var exists = false;
		for (var i in this.hashtable) {
			if (i == key && this.hashtable[i] != null) {
				exists = true;
				break;
			}
		}
		return exists;
	}
	this.hasValue = function(value){
		var contains = false;
		if (value != null) {
			for (var i in this.hashtable) {
				if (this.hashtable[i] == value) {
					contains = true;
					break;
				}
			}
		}
		return contains;
	}
	this.get = function(key){
		return this.hashtable[key];
	}
	this.isEmpty = function(){
		return (this.length == 0) ? true : false;
	}
	this.keys = function(){
		var keys = new Array();
		for (var i in this.hashtable) {
			if (this.hashtable[i] != null) 
				keys.push(i);
		}
		return keys;
	}
	this.put = function(key, value){
		if (key == null || value == null) {
			throw "NullPointerException {" + key + "},{" + value + "}";
		} else {
			this.hashtable[key] = value;
			this.length++;
		}
	}
	this.remove = function(key){
		var rtn = this.hashtable[key];
		this.hashtable[key] = null;
		this.length--;
		return rtn;
	}
	this.toString = function(){
		var result = "";
		for (var i in this.hashtable) {
			if (this.hashtable[i] != null) 
				result += "{" + i + "},{" + this.hashtable[i] + "}\n";
		}
		return result;
	}
	this.values = function(){
		var values = new Array();
		for (var i in this.hashtable) {
			if (this.hashtable[i] != null) 
				values.push(this.hashtable[i]);
		}
		return values;
	}
}

function Stock() {
	this.index=0;
	this.code="";
	this.name="";
	this.bluechip=0;
	this.selected=0;
	this.hot=0;
	this.price=0;
	this.room=0;
	this.status=0;
	this.bid3=0;
	this.offer3=0;
}