﻿//获取对象
function $g(id){
	return document.getElementById(id);
}

//加载初始化
function initLoad(){
	
	//UserCookie.init();
}

//数据处理函数集
var FDBSearchUtil = {
	"initDBSearch": function(keyWord,result){//初始化数据
		FDB = new Array();//基金数据
		selArr = new Array();//已经选择的数据集,存储FDB索引		
		cmpArr = new Array(8);//对比数据代码
		
		SearchKeyWords = keyWord;
		SearchResultDIV = result;
		
		currentElement = null;
		
		//当前在selArr中选中的索引
		SelectIndex = 0;
		MaxListSize = 12;
		
		jQuery.get('/json/fund.dat', function(data) {
			var re = data.split('|');
			for(var i=0;i<re.length - 1;i++){
				var lll = re[i].split(";");
				if(lll[5] != 7){
					FDB.push(lll);
				}
			}
		});
		/*
		FundArchivesService.getFundArchives({
			callback:function(re) {
				for(var i=0;i<re.length;i++){
					FDB.push(re[i].split(","));
				}
			},
			timeout:30000,
			errorHandler:function(message) {
				if(message!=null && message!=""){
					//alert(message);
				}
			}
		}); 
		*/
		//size="13" onChange="FDBSearchUtil.submitData('fund',this.value)"
		var ske = $g(keyWord);
		var sdiv = $g(result);
		var Sel = $g(result+"_select");
		
		ske.value=ske.title;
		sdiv.style.display="none";
		Sel.size = MaxListSize;
		
		
		for(i=0;i<cmpArr.length;i++){
			cmpArr[i] = new Array("","");
			$g("cmpdata"+(i + 1)).innerHTML = "";
		}
		
		Sel.onchange = function(){
			if(currentElement == null){
				FDBSearchUtil.submitData('fund',Sel.options[Sel.selectedIndex].value)
			}
		}
		
		ske.onfocus = function() {
			currentElement = ske;
			
			if (ske.value == ske.title) {
				ske.value = "";
			}
			
			SelectIndex = 0;
			FDBSearchUtil.getSelectArr(ske.value);
		}
		
		ske.onblur = function() {
			currentElement = null;
			
			if (ske.value == "") {
				ske.value = ske.title;
			}

			//sdiv.style.display="none";
		}
		
		ske.onkeyup = function(aEvent) {
		    var myEvent = window.event ? window.event : aEvent;
		    switch (myEvent.keyCode) {
				case 13://回车
					FDBSearchUtil.submitData("fund",null);
					$g("startCmp").focus();
			        break;
			    case 33://pgUP
			    	SelectIndex-=MaxListSize;
			    	FDBSearchUtil.selectOne();
			    	break;
			    case 34://pgDN
			    	SelectIndex+=MaxListSize;
			    	FDBSearchUtil.selectOne();
			    	break;
				case 16://shift
			    	break;
		        case 17://Ctrl
			        break;
			    case 38://向上
			    	--SelectIndex;
			    	FDBSearchUtil.selectOne();
					break;
			    case 40://向下
				    ++SelectIndex;
			    	FDBSearchUtil.selectOne();
					break;
				default:
					SelectIndex = 0;
					FDBSearchUtil.getSelectArr(ske.value);
			}
		}
	},
	"getSelectArr": function(keyWord){//index  0:代码，1：拼音，2：名称
		//判断匹配类型
		if(/^\d{1,6}$/.test(keyWord)){
			index = 0;
		}else if(/^[a-zA-Z]+(\d)*([a-zA-Z])*$/.test(keyWord)){
			index = 1;
		}else{
			index = 2;
		}
		
		//清除所有Option
		for(i=$g(SearchResultDIV+"_select").options.length - 1;i>=0;i--){
			$g(SearchResultDIV+"_select").options[i] = null;
		}
		$g(SearchResultDIV+"_select").options.length = 0;
		
		var reg = new RegExp("^("+keyWord+")");	
		selArr = new Array();
		for(var dbi=0;dbi<FDB.length;dbi++){
			if(reg.test(FDB[dbi][index])){
				selArr.push(dbi);
				
				var option = document.createElement("option");
				$g(SearchResultDIV+"_select").appendChild(option);
				option.text = FDB[dbi][0]+'  '+ FDB[dbi][2] + '  ' +FDB[dbi][1];
				option.value = dbi;
			}
		}
		
		FDBSearchUtil.selectOne();
		
		if(selArr.length > 0){
			$g(SearchResultDIV).style.display="block";
		}else{
			$g(SearchResultDIV).style.display="none";
		}
		
		return selArr.length;
	},
	"selectOne": function(){//选择
		//$g(SearchResultDIV+"_table").childNodes;
		if (selArr.length == 0) {//搜索的结果不为0
			return;
		}
		
		if(SelectIndex>selArr.length - 1){
			SelectIndex = selArr.length - 1;
		}else if(SelectIndex<0){
			SelectIndex = 0;
		}

		$g(SearchResultDIV+"_select").selectedIndex = SelectIndex;//options[SelectIndex].selected = true;
		$g(SearchResultDIV+"_inf").innerHTML = '↑ ↓ PgUp PgDn   '+(SelectIndex + 1)+'/'+selArr.length+'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="javascript:void(0)" target="_self" onClick="$g(SearchResultDIV).style.display=\'none\'"><img src="fundimg/fund06.gif" width="13" height="13" /></a>';
	},
	"submitData": function(dataType,id){//提交对比数据,基金前缀F,股票,指数前缀Q
		if(dataType== "fund"){
			var curCode = selArr[SelectIndex];
			if(id != null){
				curCode = id;
			}else if ($g(SearchKeyWords).value == $g(SearchKeyWords).title) {
				alert("请选择基金!");
				$g(SearchKeyWords).focus();
				return;
			}
			$g(SearchKeyWords).value = $g(SearchKeyWords).title;
			for(i=0;i<cmpArr.length;i++){//判断是否已经存在对比数据中
				if("F"+FDB[curCode][0] == cmpArr[i][0]){
					alert("已经加入对比数据中");
					$g(SearchKeyWords).focus();
					return;
				}
			}
			for(i=0;i<cmpArr.length;i++){
				if("" == cmpArr[i][0]){
					cmpArr[i][0] = "F"+FDB[curCode][0];
					cmpArr[i][1] = "F"+FDB[curCode][2];
					$g("cmpdata"+(i + 1)).innerHTML = '<a href="fundDetail.html?code='+FDB[curCode][0]+'" target="_blank">'+FDB[curCode][2]+'</a>';
					$g(SearchResultDIV).style.display="none";
					break;
				}
				if(i==cmpArr.length - 1){
					alert("对比起,只允许"+cmpArr.length+"支数据对比");
				}
			}
		}else if(dataType== "quote"){
			if($g(id).checked){//添加
				for(i=0;i<cmpArr.length;i++){
					if("" == cmpArr[i][0]){
						cmpArr[i][0] = "Q"+$g(id).value;
						switch($g(id).value){
							case '0000001':
								cmpArr[i][1] = '上证指数';
								$g("cmpdata"+(i + 1)).innerHTML = '<a href="http://quotes.stock.163.com/0000001.html" target="_blank">上证指数</a>';
								break;
							case '0000010':
								cmpArr[i][1] = '上证180';
								$g("cmpdata"+(i + 1)).innerHTML = '<a href="http://quotes.stock.163.com/0000010.html" target="_blank">上证180</a>';
								break;
							case '1399001':
								cmpArr[i][1] = '深圳成指';
								$g("cmpdata"+(i + 1)).innerHTML = '<a href="http://quotes.stock.163.com/1399001.html" target="_blank">深圳成指</a>';
								break;
							case '1399004':
								cmpArr[i][1] = '深证100';
								$g("cmpdata"+(i + 1)).innerHTML = '<a href="http://quotes.stock.163.com/1399004.html" target="_blank">深证100</a>';
								break;
							case '1399300':
								cmpArr[i][1] = '沪深300';
								$g("cmpdata"+(i + 1)).innerHTML = '<a href="http://quotes.stock.163.com/1399300.html" target="_blank">沪深300</a>';
								break;
						}
						break;
					}
					if(i==cmpArr.length - 1){
						alert("对比起,只允许"+cmpArr.length+"支数据对比");
					}
				}
			}else{//删除
				var c = $g(id).value;
				for(i=0;i<cmpArr.length;i++){
					if("Q"+c == cmpArr[i][0]){
						cmpArr[i][0] = "";
						$g("cmpdata"+(i + 1)).innerHTML = "";
						if(FlashContrl.SWF("cmpSwf")){
							FlashContrl.SWF("cmpSwf").delData('http://quotes.fund.163.com/data/quote/'+ c +'.txt');
						}
						break;
					}
				}
			}
		}
	},
	"clearData": function(index){//清除数据
		if("" != cmpArr[index - 1]){
			var c = cmpArr[index - 1][0];
			if(c.charAt(0) == 'F'){
				//FlashContrl.SWF("cmpSwf").delData('data/fund/1,'+c.substr(1,6)+'.txt');
			}else if(c.charAt(0) == 'Q'){
				//FlashContrl.SWF("cmpSwf").delData('data/quote/'+c.substr(1,7)+'.txt');
				//取消checkbox
				switch(c){
					case 'Q0000001':
						$g('checkbox1').checked = false;
						break;
					case 'Q0000010':
						$g('checkbox2').checked = false;
						break;
					case 'Q1399001':
						$g('checkbox3').checked = false;
						break;
					case 'Q1399004':
						$g('checkbox4').checked = false;
						break;
					case 'Q1399300':
						$g('checkbox5').checked = false;
						break;
				}
			}
			
			cmpArr[index - 1][0] = "";
			$g("cmpdata"+index).innerHTML = "";
		}else{
			alert("请选择对比基金!");
			$g(SearchKeyWords).focus();
		}
	},
	"selectCmpData": function(){
		return cmpArr.toString();
	},
	"srartCMP": function(){
		alert(FDBSearchUtil.selectCmpData());
		thisMovie("cmpSwf").addData("testData/data2.txt","**基金",0xFFFF00,"加载数据"); 
		//for(i=0; i<cmpArr.length;i++){
			
		//}
	}
}

//Flash初始化完毕调用
function callJSInit(){
	FlashContrl.updateSwf();
}

var FlashContrl = {
	"SWF": function(SwfID) {
		dataColor = new Array(8);
		/*
		dataColor[0] = 0xFF0000;
		dataColor[1] = 0xF86C18;
		dataColor[2] = 0xCC0099;
		dataColor[3] = 0x006633;
		dataColor[4] = 0x6699FF;
		dataColor[5] = 0x003366;
		dataColor[6] = 0x330033;
		dataColor[7] = 0x000000;
		*/
		
		dataColor[0] = 0x26843C;
		dataColor[1] = 0x3BACB7;
		dataColor[2] = 0x6CA320;
		dataColor[3] = 0x8F6E33;
		dataColor[4] = 0xFF9900;
		dataColor[5] = 0x7642A7;
		dataColor[6] = 0xFE5287;
		dataColor[7] = 0x619EE4;
		
		
		if (navigator.appName.indexOf("Microsoft") != -1) {
			return window[SwfID];
		} else {
			if(document[SwfID].length != undefined){
	 			return document[SwfID][1];
	 		}
			return document[SwfID];
		}
	},
	"updateSwf": function(){
		$g('flashInfDiv').style.display = 'none';
		$g('flashDiv').style.display = 'block';
		$g('dateTimeSetDiv').style.display = 'block';
		if(FlashContrl.SWF("cmpSwf")){
			FlashContrl.SWF("cmpSwf").delAll();
		}
		
		for(var i=0;i<cmpArr.length;i++){
			if(cmpArr[i][0].charAt(0) == 'F'){//基金
				var c = cmpArr[i][0].substr(1,6);
				//alert('data/fund/1,'+c+'.txt');
				if(FlashContrl.SWF("cmpSwf")){
					FlashContrl.SWF("cmpSwf").addData('http://quotes.fund.163.com/data/fund/1,'+c+'.txt',cmpArr[i][1].substr(1,5),dataColor[i],cmpArr[i][1].substr(1,cmpArr[i][1].length)+'('+c+')');
				}
			}else if(cmpArr[i][0].charAt(0) == 'Q'){//行情
				var c = cmpArr[i][0].substr(1,7);
				//alert('data/quote/'+c+'.txt');
				if(FlashContrl.SWF("cmpSwf")){
					FlashContrl.SWF("cmpSwf").addData('http://quotes.fund.163.com/data/quote/'+c+'.txt',cmpArr[i][1].substr(0,5),dataColor[i],cmpArr[i][1]+'('+c+')');
				}
			}
		}
		if(FlashContrl.SWF("cmpSwf")){
			FlashContrl.SWF("cmpSwf").setTimeArea($g('CMPstartDateTime').value,$g('CMPendDateTime').value);
		}
	}
}

var dateContrl = {
	"initVar": function(){
		curDateTime = new Date();
		curTime = curDateTime.getTime();
		oneDay = 24*60*60*1000;
	},
	"setTimeArea": function(synFlag){
		var d;
		switch($g('selectDateArea').value){
			case "1"://周
				d = new Date(curTime - oneDay*7);
				$g('CMPstartDateTime').value = d.getFullYear()+'-'+(d.getMonth() + 1>9?d.getMonth() + 1:"0"+(d.getMonth() + 1))+'-'+d.getDate();
				break;
			case "2"://月
				d = new Date(curTime - oneDay*30);
				$g('CMPstartDateTime').value = d.getFullYear()+'-'+(d.getMonth() + 1>9?d.getMonth() + 1:"0"+(d.getMonth() + 1))+'-'+d.getDate();
				break;
			case "3"://季
				d = new Date(curTime - oneDay*90);
				$g('CMPstartDateTime').value = d.getFullYear()+'-'+(d.getMonth() + 1>9?d.getMonth() + 1:"0"+(d.getMonth() + 1))+'-'+d.getDate();
				break;
			case "4"://6月
				d = new Date(curTime - oneDay*180);
				$g('CMPstartDateTime').value = d.getFullYear()+'-'+(d.getMonth() + 1>9?d.getMonth() + 1:"0"+(d.getMonth() + 1))+'-'+d.getDate();
				break;
			case "5"://年
				d = new Date(curTime - oneDay*365);
				$g('CMPstartDateTime').value = d.getFullYear()+'-'+(d.getMonth() + 1>9?d.getMonth() + 1:"0"+(d.getMonth() + 1))+'-'+d.getDate();
				break;
			case "6"://今年
				d = new Date(curDateTime.getFullYear(),0,1);
				$g('CMPstartDateTime').value = d.getFullYear()+'-'+(d.getMonth() + 1>9?d.getMonth() + 1:"0"+(d.getMonth() + 1))+'-'+d.getDate();
				break;
			default:
				alert($g('selectDateArea').value);
		}
		$g('CMPendDateTime').value = curDateTime.getFullYear()+'-'+(curDateTime.getMonth() + 1>9?curDateTime.getMonth() + 1:"0"+(curDateTime.getMonth() + 1))+'-'+curDateTime.getDate();
		if(FlashContrl.SWF("cmpSwf") && synFlag){
			FlashContrl.SWF("cmpSwf").setTimeArea($g('CMPstartDateTime').value,$g('CMPendDateTime').value);
		}
	}
}

function callBySwf(msg){
	alert(msg);
}