var checkViewTable = {
					"x": "-1", "y": "-1",
					"00": "0", "01": "1", "02": "2", "03": "3",
					"10": "4", "11": "5", "12": "6", "13": "7",
					"20": "-1", "21": "-1", "22": "8", "23": "-1",
					"30": "9", "31": "-1", "32": "-1", "33": "-1",
					"40": "10", "41": "11", "42": "12", "43": "13"
				};

				function $(id) {
					return document.getElementById(id);
				}

				function checkView(elem) {
					var arr = elem.id.split("_");
					var dirc = arr[1];
					var tag = arr[2];
					if (elem.className != "default") {return;}
					if (checkViewTable[checkViewTable["x"] + checkViewTable["y"]] != "-1") {
						$("tab_" + checkViewTable[checkViewTable["x"] + checkViewTable["y"]]).className = "default";
					}
					var theother = {"x": "y", "y": "x", "xcount": 4, "ycount": 5, "xid": "ti", "yid": "it"};
					var firstA = "-1";
					for (var i = 0; i < theother[dirc + "count"]; i++) {
						$("tab_" + theother[dirc] + "_" + i).className = "default";
						if (checkViewTable[theother[dirc + "id"].replace("t", tag).replace("i", i)] == "-1" && dirc == "x") {
							$("tab_" + theother[dirc] + "_" + i).className = "disabled";
							if (checkViewTable[theother[dirc]] == i) {checkViewTable[theother[dirc]] = "-1";}
						}
						else {firstA = i;}
					}
					if (checkViewTable[theother[dirc]] == -1) {checkViewTable[theother[dirc]] = firstA.toString();}
					$("tab_" + theother[dirc] + "_" + checkViewTable[theother[dirc]]).className = "active";
					$("tab_" + dirc + "_" + checkViewTable[dirc]).className = "default";
					elem.className = "active";
					checkViewTable[dirc] = tag.toString();
					$("tab_" + checkViewTable[checkViewTable["x"] + checkViewTable["y"]]).className = "active";
					if (tabSwitchController) {
						tabSwitchController.load();
					}
				}

				function initView(arr) {
					checkViewTable["x"] = arr[0].toString();
					$("tab_x_" + arr[0]).className = "active";
					checkViewTable["y"] = arr[1].toString();
					$("tab_y_" + arr[1]).className = "active";
					$("tab_" + checkViewTable[arr.join("")]).className = "active";
				}

				function processDataArray(data1, data2, data3, colors) {
					data3 = isNaN(data3 * 1) ? "--" : (data3 * 1 == 0 ? "0.00" : (data3*1).toFixed(2));
					if (data2 * 1 > 0) {
						data2 = "+" + data2;
						data3 = '<span class="' + colors[0] + '">+' + data3 + "%</span>";
					}
					else if (data2 * 1 < 0) {
						data3 = '<span class="' + colors[1] + '">' + data3 + "%</span>";
					}
					else {
						data3 = '<span>' + data3 + "%</span>";
					}
					return [data1, data2, data3];
				}
				function processData(config) {
					var colors = ["green", "red"];
					switch (config[4]) {
						case "stock":
							// 证券简称,今日开盘价,昨日收盘价,最近成交价,最高成交价,最低成交价,买入价,卖出价,成交数量,成交金额,买数量一,买价位一,买数量二,买价位二,买数量三,买价位三,买数量四,买价位四,买数量五,买价位五,卖数量一,卖价位一,卖数量二,卖价位二,卖数量三,卖价位三,卖数量四,卖价位四,卖数量五,卖价位五,行情日期,行情时间
							var data = window["hq_str_" + config[1]].split(",");
							var data1 = (data[3] * 1).toFixed(2);
							var data2 = (data[3] - data[2]).toFixed(2);
							var data3 = (data[3] - data[2]) * 100 / (data[2] * 1);
							colors = ["red","green"];
							break;
						case "int":
							// 名字,最新价,涨跌额,涨跌幅
							var data = window["hq_str_" + config[1]].split(",");
							var data1 = data[1];
							var data2 = data[2];
							var data3 = data[3];
							break;
						case "forex":
							// 时间,买入价,卖出价,昨收盘,点差,开盘价,最高价,最低价,最新价,名称
							var data = window["hq_str_" + config[1]].split(",");
							var data1 = (data[8] * 1).toFixed(4);
							var data2 = (data[8] - data[3]).toFixed(4);
							var data3 = (data[8] - data[3]) * 100 / (data[3] * 1);
							break;
						case "futures":
							// name,CurrentTime,OpenPrice,HighPrice,LowPrice,ClosePrice,BidPrice,AskPrice,NewPrice,CurrentAccountsPrice,LastAccountsPrice,BidVol,AskVol,TotalVol,DealVol
							var data = window["hq_str_" + config[1]].split(",");
							var data1 = (data[8] * 1).toFixed(2);
							var data2 = (data[8] - data[10]).toFixed(2);
							var data3 = (data[8] - data[10]) * 100 / (data[10] * 1);
							break;
						case "hk_futures":
							// hf_name=LAST,CHANGE,BID,ASK,HIGH,LOW,TIMEUPDATE,Prev,Open,TOTALVOL,BIDSIZE,ASKSIZE
							var data = window["hq_str_" + config[1]].split(",");
							var data1 = (data[0] * 1).toFixed(2);
							var data2 = (data[0] * 1 - data[7] * 1).toFixed(2);
							var data3 = (data[0] * 1 - data[7] * 1) * 100 / (data[7] * 1);
							break;
						case "cffex":
							// CFF_合约代码=今开盘,最高价,最低价, 最新价,成交量,成交金额,持仓量,今收盘,今结算,涨停板价,跌停板价,昨虚实度,今虚实度, 昨收盘,昨结算,昨持仓量,申买价一,申买量一,申买价二,申买量二, 申买价三,申买量三,申买价四,申买量四,申买价五,申买量五,申卖价一,申卖量一, 申卖价二,申卖量二,申卖价三,申卖量三,申卖价四,申卖量四,申卖价五,申卖量五,交易日,行情时间,行情时间毫秒
							var data = window["hq_str_" + config[1]].split(",");
							var data1 = (data[3] * 1).toFixed(2);
							var data2 = (data[3] - data[14]).toFixed(2);
							var data3 = (data[3] - data[14]) * 100 / (data[14] * 1);
							break;
						default:
							var data1 = "--";
							var data2 = "--";
							var data3 = "--";
					}
					return processDataArray(data1, data2, data3, colors);
				}
				var TabSwitchController = function (loader, targets) {
					this.elementLoader = loader;
					this.loadHQ = function (target) {
						var element = document.createElement("script");
						element.type = "text/javascript";
						element.charset = "gb2312";
						element.src = "http://hq.sinajs.cn/rn=" + (new Date()).getTime() + "&list=" + target.list;
						element.object = this;
						element.target = target;
						element[document.all ? "onreadystatechange" : "onload"] = function () {
							if (document.all && this.readyState != "loaded" && this.readyState != "complete") {
								return;
							}
							var target = this.target;
							for (var i = 0; i < target.config.length; i++) {
								var data = processData(target.config[i]);
								target.lines[i][1].innerHTML = data[0];
								if (target.lines[i][2]) {
									target.lines[i][2].innerHTML = data[1];
								}
								target.lines[i][3].innerHTML = data[2];
							}
							this[document.all ? "onreadystatechange" : "onload"] = null;
							this.parentNode.removeChild(this);
						};
						this.elementLoader.appendChild(element);
					};
					this.targets = targets;
					this.load = function () {
						var object = arguments.callee.object;
						var targets = object.targets;
						for (var i = 0; i < targets.length; i++) {
							var target = targets[i];
							var config = target.getAttribute("config");
							if (target.className == "active") {
								if (target.innerHTML == "") {
									var arrayConfig = config.split("|");
									var targetTable = document.createElement("table");
									targetTable.cellPadding = 0;
									targetTable.cellSpacing = 0;
									target.lines = [];
									target.config = [];
									target.list = ""
									if (arrayConfig.length > 2) {
										targetTable.className = "table";
										targetTable.style.marginTop = "8px";
										for (var j = 0; j < arrayConfig.length; j++) {
											var stockConfig = arrayConfig[j].split(",");
											target.config.push(stockConfig);
											target.list += stockConfig[1] + ",";
											var tempTr1 = targetTable.insertRow(-1);
											tempTr1.className = "current";
											var tempName = tempTr1.insertCell(-1);
											tempName.className = "left";
											tempName.colSpan = 3;
											var tempNameLink = document.createElement("a");
											tempNameLink.target = "_blank";
											if (stockConfig[3]) {
												tempNameLink.href = stockConfig[3];
											}
											tempNameLink.innerHTML = stockConfig[0];
											tempName.appendChild(tempNameLink);
											var tempTr2 = targetTable.insertRow(-1);
											var tempPrice = tempTr2.insertCell(-1);
											var tempPriceVolume = tempTr2.insertCell(-1);
											var tempPricePercent = tempTr2.insertCell(-1);
											target.lines.push([tempTr, tempPrice, tempPriceVolume, tempPricePercent]);
										}
										target.appendChild(targetTable);
									}

									else {
										targetTable.className = "table";
										for (var j = 0; j < arrayConfig.length; j++) {
											var stockConfig = arrayConfig[j].split(",");
											target.config.push(stockConfig);
											target.list += stockConfig[1] + ",";
											var tempTr = targetTable.insertRow(-1);
											tempTr.target = target;
											if (stockConfig[2]) {
												var tempImageLink = document.createElement("a");
												tempImageLink.className = "image";
												tempImageLink.target = "_blank";
												if (stockConfig[3]) {
													tempImageLink.href = stockConfig[3];
												}
												var tempImage = document.createElement("img");
												tempImage.src = stockConfig[2] + "?" + (new Date()).getTime();
												tempImage.linkElement = tempImageLink;
												tempImageLink.appendChild(tempImage);
												tempImageLink.style.display = "none";
												target.appendChild(tempImageLink);
												tempTr.imageLink = tempImageLink;
												tempTr.image = tempImage;
												tempTr.style.cursor = "pointer";
												tempTr.thread = -1;
												tempTr.switchLine = function () {
													var tr = arguments.callee.tr;
													tr.thread = -1;
													if (tr.target.currentLine) {
														tr.target.currentLine.className = "";
														tr.target.currentLine.imageLink.style.display = "none";
														if (!tr.image.last) {
															tr.image.last = (new Date()).getTime();
														}
													}
													tr.className = "current";
													tr.imageLink.style.display = "";
													var rn = (new Date()).getTime();
													if (rn - tr.image.last > 30000) {
														tr.image.src = tr.image.src.replace(/\?\d*$/, "?" + rn);
														tr.image.last = rn;
													}
													tr.target.currentLine = tr;
												};
												tempTr.switchLine.tr = tempTr;
												tempTr.onmouseover = function () {
													this.thread = setTimeout(this.switchLine, 200);
												};
												tempTr.onmouseout = function () {
													if (this.thread != -1) {clearTimeout(this.thread);}
												};
											}
											var tempName = tempTr.insertCell(-1);
											tempName.className = "name";
											var tempNameLink = document.createElement("a");
											tempNameLink.target = "_blank";
											if (stockConfig[3]) {
												tempNameLink.href = stockConfig[3];
											}
											tempNameLink.innerHTML = stockConfig[0];
											tempName.appendChild(tempNameLink);
											var tempPrice = tempTr.insertCell(-1);
											var tempPricePercent = tempTr.insertCell(-1);
											target.lines.push([tempTr, tempPrice, null, tempPricePercent, (stockConfig[2] ? tempImage : false)]);
										}
										target.appendChild(targetTable);
										for (var j = 0; j < target.lines.length; j++) {
											if (target.lines[j][0].image) {
												target.currentLine = target.lines[j][0];
												target.currentLine.className = "current";
												target.currentLine.imageLink.style.display = "";
												break;
											}
										}
									}
									target.list = target.list.replace(/,$/, "")
									object.loadHQ(target);
								}
								else {
									var now = new Date();
									if (now.getSeconds() < 30 && now.getMinutes() % 3 == 0) {
										var rn = now.getTime();
										for (var j = 0; j < target.lines.length; j++) {
											if (target.lines[j][4] && target.lines[j][4].linkElement.style.display == "") {
												target.lines[j][4].src = target.config[j][2] + "?" + rn;
												target.lines[j][4].last = (new Date()).getTime();
											}
										}
									}
									object.loadHQ(target);
								}
								break;
							}
						}
					};
					this.load.object = this;
					this.start = function () {
						this.load();
						setInterval(this.load, 30000);
					}
				}
				var tabSwitchController = new TabSwitchController($("tabss_script_loader"), [$("tab_0"), $("tab_1"), $("tab_2"), $("tab_3"), $("tab_4"), $("tab_5"), $("tab_6"), $("tab_7"), $("tab_8"), $("tab_9"), $("tab_10"), $("tab_11"), $("tab_12"), $("tab_13")]);
				initView([0, 0]);
				tabSwitchController.start();