

//转换器,将列的字段类型转换为可以排序的类型:String,int,float
function convert(sValue, sDataType) {
	switch(sDataType) {
		case "int":
			return parseInt(sValue);
		case "float":
			return parseFloat(sValue);
		case "date":
			return new Date(Date.parse(sValue));
		default:
			return sValue.toString();
	}
}

//替换所有-字符串替换
String.prototype.replaceAll = function(s1,s2){return this.replace(new RegExp(s1,"gm"),s2);};

//排序函数产生器,iCol表示列索引,sDataType表示该列的数据类型
function generateCompareTRs(iCol, sDataType) {

	return  function compareTRs(oTR1, oTR2) {
		var vValue1=0;
		var vValue2=0;
		if(navigator.appName.indexOf("Explorer") >-1){
			vValue1 =oTR1.cells[iCol].innerText;
			vValue2 =oTR2.cells[iCol].innerText;
		}
		else{
			vValue1 =oTR1.cells[iCol].textContent;
			vValue2 =oTR2.cells[iCol].textContent;
		}

		if(sDataType=="date"){
			vValue1=vValue1.replaceAll("/","");
			vValue1=vValue1.replaceAll("-","0");
			vValue2=vValue2.replaceAll("/","");
			vValue2=vValue2.replaceAll("-","0");
			//alert(vValue1+"-"+vValue2)
			vValue1 = convert(vValue1, "float");
			vValue2 = convert(vValue2, "float");
		}else{
			vValue1 = convert(vValue1, sDataType);
			vValue2 = convert(vValue2, sDataType);
		}
		if (vValue1 < vValue2) {
			return -1;
		} else if (vValue1 > vValue2) {
			return 1;
		} else {
			return 0;
		}
	};
}

//删除不是当前排序的↑或↓
function delectOrder(iCol){
	var showValue=new Array();
	showValue[0]="代码";
	showValue[3]="涨跌";
	showValue[4]="%";
	showValue[7]="PE";
	showValue[8]="PB";
	showValue[9]="息率";
	showValue[10]="负债率";
	showValue[11]="市值(亿)";
	showValue[12]="速动比率";
	showValue[13]="评分";
	showValue[14]="会议日期";
	showValue[15]="除净日期";
	var showId=new Array();
	showId[0]="num";
	showId[3]="zd";
	showId[4]="zdf";
	showId[7]="syl";
	showId[8]="shijinglv";
	showId[9]="mggx";
	showId[10]="fzl";
	showId[11]="shizhi";
	showId[12]="QuickRatio";
	showId[13]="score";
	showId[14]="huidate";
	showId[15]="deldate";
	for(var i=3;i<=15;i++){
		if(!showId[i])continue;
		if(i!=iCol){
			if(navigator.appName.indexOf("Explorer") >-1){
				document.getElementById(showId[i]).innerText = showValue[i];
			}else
			
				document.getElementById(showId[i]).textContent = showValue[i];
		}
	}
}

//排序方法
var num="";
var zd ="";
var zdf ="";
var syl="";
var mggx="";
var fzl="";
var shizhi="";
var shijinglv="";
var QuickRatio="";
var score="";
var huidate="";
var deldate="";
function sortTable (sTableID, iCol, sDataType){
    if(iCol == 0 ){
		delectOrder(iCol);
       
		if(num==""||num=="up"){
			divisionIEF("num", "代码↑");
			num="down";
		}else{
			divisionIEF("num", "代码↓");
			num="up";
		}
	}
	if(iCol == 3 ){
		delectOrder(iCol);
		zdf ="";
		if(zd == "" || zd == "up"){
			divisionIEF("zd","涨跌");
			 zd ="down";
		}else{
			divisionIEF("zd","涨跌");
			 zd ="up";
		}
	}

	if(iCol == 4 ){
		delectOrder(iCol);
		zd ="";
		if(zdf == "" || zdf == "up"){
			divisionIEF("zdf","%");
			zdf ="down";
		}else{
			divisionIEF("zdf","%");
			zdf ="up";
		}
	}
	if(iCol == 7 ){
		delectOrder(iCol);
		zd ="";
		if(syl == "" || syl == "up"){
			divisionIEF("syl","PE");
			syl ="down";
		}else{
			divisionIEF("syl","PE");
			syl ="up";
		}

	}
		if(iCol == 8){
		delectOrder(iCol);
		zd ="";
		if(shijinglv == "" || shijinglv == "up"){
			divisionIEF("shijinglv","PB");
			shijinglv ="down";
		}else{
			divisionIEF("shijinglv","PB");
			shijinglv ="up";
		}

	}
	if(iCol == 9){
		delectOrder(iCol);
		zd ="";
		if(mggx == "" || mggx == "up"){
			divisionIEF("mggx","息率");
			mggx ="down";
		}else{
			divisionIEF("mggx","息率");
			mggx ="up";
		}

	}
		if(iCol == 10){
		delectOrder(iCol);
		zd ="";
		if(fzl == "" || fzl == "up"){
			divisionIEF("fzl","负债率");
			fzl ="down";
		}else{
			divisionIEF("fzl","负债率");
			fzl ="up";
		}

	}

	if(iCol == 11){
		delectOrder(iCol);
		zd ="";
		if(shizhi == "" || shizhi == "up"){
			divisionIEF("shizhi","市值(亿)");
			shizhi ="down";
		}else{
			divisionIEF("shizhi","市值(亿)");
			shizhi ="up";
		}

	}
	
	
	if(iCol == 12){
		delectOrder(iCol);
		zd ="";
		if(QuickRatio == "" || QuickRatio == "up"){
			divisionIEF("QuickRatio","速动比率");
			QuickRatio ="down";
		}else{
			divisionIEF("QuickRatio","速动比率");
			QuickRatio ="up";
		}

	}
	
	if(iCol == 13){
		delectOrder(iCol);
		zd ="";
		if(score == "" || score == "up"){
			divisionIEF("score","评分");
			score ="down";
		}else{
			divisionIEF("score","评分");
			score ="up";
		}

	}





	if(iCol == 14){
		delectOrder(iCol);
		zd ="";
		if(huidate == "" || huidate == "up"){
			divisionIEF("huidate","会议日期");
			huidate ="down";
		}else{
			divisionIEF("huidate","会议日期");
			huidate ="up";
		}

	}
	if(iCol == 15){
		delectOrder(iCol);
		zd ="";
		if(deldate == "" || deldate == "up"){
			divisionIEF("deldate","除净日期");
			deldate ="down";
		}else{
			divisionIEF("deldate","除净日期");
			deldate ="up";
		}

	}
	var oTable = document.getElementById(sTableID);
	var oTBody = oTable.tBodies[0];
	var colDataRows = oTBody.rows;
	var aTRs = new Array;

	//将所有列放入数组
	for (var i=0; i < colDataRows.length; i++) {
		aTRs[i] = colDataRows[i];
	}

	//判断最后一次排序的列是否与现在要进行排序的列相同,是的话,直接使用reverse()逆序
	if (oTable.sortCol == iCol) {
		aTRs.reverse();
	} else {//2010-5-25
		//使用数组的sort方法,传进排序函数
		aTRs.sort(generateCompareTRs(iCol, sDataType));
	}

	var oFragment = document.createDocumentFragment();
	for (var i=0; i < aTRs.length; i++) {
		oFragment.appendChild(aTRs[i]);
	}

	oTBody.appendChild(oFragment);
	//alert(oTBody.appendChild(oFragment).value);
	//记录最后一次排序的列索引
	oTable.sortCol = iCol;
}

//识别IE和Firefox
function divisionIEF(showID,showValue){
    if(navigator.appName.indexOf("Explorer") >-1){
           document.getElementById(showID).innerText = showValue;
    } else{
           document.getElementById(showID).textContent = showValue;
    }
}
function buyStock(i){
	var buyprice=document.getElementById("buyprice"+i).value;
	var buyamount=document.getElementById("buyamount"+i).value;
	var sid_buy=document.getElementById("sid_buy"+i).value;
	if(buyprice>0&&buyamount>0){
		buyOk=confirm("价格是"+buyprice+"元,入股数目是"+buyamount+"手,是否确认?");
		  if(!buyOk){
			return false;
		  }
		  else{
			var url="/portfolio/main.php?sid_buy="+sid_buy+"&buyprice="+buyprice+"&buyamount="+buyamount;
			window.location.href=url;
		  }
	}
	else{
		alert('请输入正确的股票价格和股票数量。');
		return false;
	}
}
function gotoTrading(IDStock,market){
	var url = '/portfolio/commerce.php?sid='+IDStock+'&market='+market;
	window.location=url;
}
// created by evenzyh in 090601
var searchReq = createReq();
var selectIndex = -2;
var itemCount ;
var market = "";
var subidstr = "";
function createReq() {
	var httpReq;
	if (window.XMLHttpRequest) {
		httpReq = new XMLHttpRequest();
		if (httpReq.overrideMimeType) {
			httpReq.overrideMimeType('text/xml');
		}
	} else if (window.ActiveXObject) {
		try {
			httpReq = new ActiveXObject('Msxml2.XMLHTTP');
		} catch (e) {
			try {
				httpReq = new ActiveXObject('Microsoft.XMLHTTP');
			} catch (e) {
			}
		}
	}
	return httpReq;
}

function searchSuggest(e, subid) {
	var keyCode;

	if (window.event) {
		keyCode = e.keyCode;
	} else if (e.which) {
		keyCode = e.which;
	}
	//alert(keyCode);
	if (keyCode == '38' || keyCode == '40') {// up and down
		if (itemCount >= 0){
			if (document.getElementById("search_suggest" + subidstr).style.display == "")
				changeSelect(keyCode);
			else
				showSearch();
			getSelectIndex();
			if (selectIndex >= 0){
				var upAndDownValue=document.getElementById("suggest" + selectIndex).innerHTML;
				document.getElementById("IDStock" + subidstr).value =trim(upAndDownValue.split('&nbsp;&nbsp;&nbsp;')[0]);
			}
		}
	} else if (keyCode == '13') {// enter
		if(document.getElementById("search_suggest" + subidstr).style.display == "" && subidstr=='')
			searchCommit();
			//alert((subidstr=='')?"没有0":"有0");
			//enter就执行submit()了;要判断再执行onSubmit();
			//(subidstr=='')?document.getElementById("stockinputform").submit():document.getElementById("quote").submit();
	} else {
		if (subid)
			subidstr = subid;
		else
			subidstr = '';
		init();
		var str = document.getElementById("IDStock" + subidstr).value;
		//alert(str);
		market = getMarket();
		if (str.length > 0) {
			searchReq.open("get", "../share/stock/search.php?market=" + market
					+ "&searchText=" + encodeURIComponent(str)+"&rid="+Math.random(), true);

			searchReq.onreadystatechange = handleSearchSuggest;
			searchReq.send(null);

		}
	}

}

function handleSearchSuggest() {
	itemCount=-1;
	if (searchReq.readyState == 4) {
		if (searchReq.status == 200) {
			var suggestText = document.getElementById("search_suggest"
					+ subidstr);
			var sourceText = searchReq.responseText;
			//alert(sourceText);
			sourceText = sourceText.split('|');
			if (sourceText.length > 1) {
				suggestText.style.display = "";
				suggestText.innerHTML = "";
				var suggestWide = 0;
				for ( var i = 0; i < sourceText.length - 1; i += 2) {
					var s = '<div id="suggest' + i + '" onmouseover="javascript:mouseover(this);"';
					s += ' onmouseout="javascript:mouseout(this);" ';
					s += ' onclick="javascript:setSearch(this.innerHTML);" ';
					s += ' class="suggest_link" text-align:right>';
					var str =sourceText[i] + '&nbsp;&nbsp;&nbsp;'
							+ sourceText[i + 1];
						suggestWide = LengthOf(str);

					s += str + '</div>';
					suggestText.innerHTML += s;
					itemCount = i;
				}
				suggestText.style.width = suggestWide * 5 + 'px';
				suggestText.innerHTML += '<div class="closesearch" onclick="closeSearch();">close</div>';
				selectIndex = -2;

			} else {
				suggestText.style.display = "none";
			}
		}
	}
}

function mouseover(obj) {
	getSelectIndex();
	if (selectIndex >= 0 && selectIndex <= itemCount)
		suggestOut(document.getElementById("suggest" + selectIndex));
	suggestOver(obj);
	getSelectIndex();
}

function mouseout(obj) {
	suggestOut(obj);
	selectIndex = -1;

}

function getSelectIndex() {
	for ( var i = 0; i <= itemCount; i += 2) {
		if (document.getElementById("suggest" + i).className == 'suggest_link_over') {
			selectIndex = i;
			return;
		} else
			selectIndex = -2;
	}
}

function changeSelect(keyCode) {
	getSelectIndex();
	if (selectIndex >= 0 && selectIndex <= itemCount)
		suggestOut(document.getElementById("suggest" + selectIndex));

	if (keyCode == '38') {
		if (selectIndex <= 0)
			selectIndex = itemCount;
		else
			selectIndex -= 2;
	} else if (keyCode == '40') {
		if (selectIndex >= itemCount)
			selectIndex = 0;
		else
			selectIndex += 2;
	}
	suggestOver(document.getElementById("suggest" + selectIndex));
}

function LengthOf(strTemp) {
	var len = 0
	for ( var i = 0; i < strTemp.length; i++) {
		if (strTemp.charCodeAt(i) > 255) {
			len += 2
		} else {
			len += 1
		}
	}
	return len;
}

function suggestOver(div_value) {
	div_value.className = "suggest_link_over";
}

function suggestOut(div_value) {
	div_value.className = "suggest_link";
}

function setSearch(obj) {
	//alert(obj);
	if (market != "HK" && market != "US") {
		setMarket(trim(obj.split('&nbsp;&nbsp;&nbsp;')[0]).substring(0, 2));
	}
	document.getElementById("IDStock" + subidstr).value =trim(obj
			.split('&nbsp;&nbsp;&nbsp;')[0]);
	//alert(document.getElementById("IDStock" + subidstr).value)
	closeSearch();
	// document.getElementById("IDStock"+subidstr).focus();
}

function closeSearch() {
	document.getElementById("search_suggest" + subidstr).style.display = 'none';

}

function showSearch() {
	document.getElementById("search_suggest" + subidstr).style.display = '';
}

function outOfSuggest() {
	if(itemCount>=0){
		if (selectIndex < 0)
			selectIndex = 0;
		if (selectIndex >= 0 && selectIndex <= itemCount)
			setSearch(document.getElementById("suggest" + selectIndex).innerHTML);
		else
			closeSearch();
	}
}
function getMarket() {
	var obj;
	obj = document.getElementsByName("market" + subidstr);// radio check
	if (obj != null) {
		var i;
		for (i = 0; i < obj.length; i++) {
			if (obj[i].checked) {// selected
				if(obj[i].value=="US")
					document.getElementById("stockModulIDstock").innerHTML="IBM";
				else
					document.getElementById("stockModulIDstock").innerHTML="0005";
				return obj[i].value;
			}
		}
	}
	obj = document.getElementById("market" + subidstr);// select option
	if (obj != null) {
		if (obj.options){
			if(obj.options[obj.selectedIndex].value=="US")
				document.getElementById("stockModulIDstock").innerHTML="IBM";
			else
				document.getElementById("stockModulIDstock").innerHTML="0005";
			return obj.options[obj.selectedIndex].value;
		}
	}
}
function setMarket($mark) {// only use for sz000001
	var obj;
	obj = document.getElementsByName("market" + subidstr);// radio check
	if (obj != null) {
		var i;
		for (i = 0; i < obj.length; i++) {
			if (obj[i].checked) {// selected
				obj[i].value = $mark;
			}
		}
	}
	obj = document.getElementById("market" + subidstr);// select option
	if (obj != null) {
		if (obj.options)
			obj.options[obj.selectedIndex].value = $mark;

	}
}

function init() {
	var searchinput = document.getElementById("IDStock" + subidstr);
	var w = searchinput.offsetWidth;
	var h = searchinput.offsetHeight;
	var t = searchinput.offsetTop;
	var l = searchinput.offsetLeft;
	var d = document.getElementById("search_suggest" + subidstr);
	d.style.border = "1px solid #000";
	d.style.background = "#FFFFFF";
	d.style.position = "absolute";
	d.style.left = l + "px";
	d.style.top = (t + h) + "px";
}

function searchCommit(){
	market=getMarket();
	var	IDStock=document.getElementById("IDStock").value;
	if(!((market=="HK"&&IDStock.length>4)||(market=="US"&&IDStock.length>=3)||((market=="SH"||market=="SZ")&&IDStock.length==6))){
		
		outOfSuggest();
	}else{
		
		setSearch(IDStock);

	}
	document.getElementById("stockinputform").submit();
}

function trim(str){
    // 用正则表达式将前后空格
    // 用空字符串替代。
    return str.replace(/(^\s*)|(\s*$)/g, "");
}


function selectExchange(){
	//var iTop = (window.screen.availHeight-30-450)/2;
	//var iLeft = (window.screen.availWidth-10-600)/2;
	//window.open("exchange.php","","height=450px,width=600,left="+iLeft+",top="+iTop,"");
	window.location="exchange.php";
}

function setting_Message(pid,IDStock,lastestPrice,name,changePrice){

	window.open("set_message.php?IDPortfolio="+pid+"&IDStock="+IDStock+"&lastestPrice="+lastestPrice+"&name="+encodeURIComponent(name)+"&changePrice="+changePrice);
}

function del_pf(pid,StockType){
	var url = "inc/portfolio_m.inc.php?type=del&IDPortfolio="+ pid+"&stockType="+StockType;
	window.location = url;
}
function categorySel(sel) {
	var url = '?IDCategory='+sel.options[sel.selectedIndex].value;
	window.location = url;
};
function DelAll(){
	if(confirm("是否真的要删除全部股票?")){
		var delurl = "inc/portfolio_m.inc.php?type=DelAll";
		window.location = delurl;
	}
}
function categoryAdd() {
	var categoryName = document.getElementById("CategoryName");
	var functionCategoryAdd = function() {
		var url = "inc/category_m.inc.php?type=add&categoryName=" +encodeURI(categoryName.value);
		window.location = url;
	};
	if (categoryName.value == '') {
		alert('请输入分类名称!');
		document.getElementById("CategoryName").focus();
		return;
	}
	var pattern = /^[a-zA-Z0-9]\w+$/;
	if(pattern.test(categoryName)){
		if(categoryName.value.length >10){
			alert('分类名最多为10个中文字符!');
			return;
		}
	}
	else if(categoryName.value.length >20){
		alert('分类名最多为20个英文字符!');
		return;
	}
    var Category = document.getElementById("Category");
	for(var i=0;i<Category.options.length;i++){
		if(Category.options[i].text == categoryName.value.replace(/(^[\s]*)|([\s]*$)/g, "")) {
			alert('你的分类组已有该分类名!');
			return ;
		}
	}
	functionCategoryAdd();
};
function categoryDel() {
	var categoryID = document.getElementById("Category");
	var tableid = document.getElementById("tableid");
	var functionCategoryDel = function() {
		var url = "inc/category_m.inc.php?type=del";
		window.location = url;
	};
	if (categoryID.value == 0) {
		alert('你的分类组合已为空!');
	}
	else if(tableid.rows.length > 2){
		if(confirm("是否删除分类与分类下的股票?")){
			var delurl = "inc/portfolio_m.inc.php?type=DelAll";
			window.location = delurl;
			functionCategoryDel();
		}
	}
	else {
		functionCategoryDel();
	}

};

function categoryUpd() {
	var cid = document.getElementById("Category");
	var categoryName = document.getElementById("CategoryName");
	for(var i=0;i<cid.options.length;i++){
		if(cid.options[i].text == categoryName.value.replace(/(^[\s]*)|([\s]*$)/g, "")) {
			alert('你的分类组已有该分类名!');
			return ;
		}
	}
	var name = document.getElementById("CategoryName");
	var pattern = /^[a-zA-Z0-9]\w+$/;
	if(pattern.test(categoryName)){
		if(categoryName.value.length > 10){
			alert('分类名最多为10个中文字符!');
			return;
		}
	}
	else if(categoryName.value.length >20){
		alert('分类名最多为20个英文字符!');
		return;
	}
	if(categoryName.value == ""){
		categoryName.value = cid.options[cid.selectedIndex].text;
	}
	else{
		var url = 'inc/category_m.inc.php?type=upd&categoryName='+encodeURI(categoryName.value);
		window.location = url;
	}
};

function clearValue(name)
{
	document.getElementById(name).value="";
}
var loadUser="";
var shareUser="";
function checkdform(form,loadUser,shareUser){
	if(form.IDStock.value == ""){
		alert("代码不能为空!");
		return false;
	}
	else if(loadUser!=shareUser){
		alert("请在你的组合里添加!");
		return false;
	}
	return true;
}
function changeUpdSel(value){
	document.getElementById("updsel").value = value;
}
function checkUpd(text){
	if(isNaN(text.value)){
 	    alert("只能填写数值");
		text.value = "";
		text.focus();
	}
}
var t_time;
function setniuyueTime()
{
	var date = new Date();
    date=new Date(date.getTime()-43200000);//12*60*60*1000
	var year = date.getYear();
	var hours = date.getHours();
	var minuts = date.getMinutes();
	var seconds = date.getSeconds();
    if(year*1<2000)
    	year += 1900;

    if(hours<10){
    	hours = "0"+hours;
    	}
    if(minuts<10){
    	minuts="0"+minuts;
    	}
    if(seconds<10){
    	seconds="0"+seconds;
    	}
	document.getElementById("nowtime").innerHTML=year+"年"+(date.getMonth()+1)+"月"+date.getDate()+"日 "+hours+":"+minuts+":"+seconds;
	t_time=setTimeout("setniuyueTime()",1000);

}
function setlocalTime()
{
	var date = new Date();
   //  if(city=="beijing")
    var year = date.getYear();
    var hours = date.getHours();
	var minuts = date.getMinutes();
	var seconds = date.getSeconds();
    if(year*1<2000)//navigator.userAgent.indexOf("Firefox")>0
    	year += 1900;
	if(hours<10){
    	hours = "0"+hours;
    	}
    if(minuts<10){
    	minuts="0"+minuts;
    	}
    if(seconds<10){
    	seconds="0"+seconds;
    	}
	   document.getElementById("nowtime").innerHTML=year+"年"+(date.getMonth()+1)+"月"+date.getDate()+"日 "+hours+":"+minuts+":"+seconds;
	t_time=setTimeout("setlocalTime()",1000);
}
function showtime(city)
{
	clearTimeout(t_time);
	if(city=="niuyue")
	{
	    setniuyueTime();
	}
	else
	{
	   setlocalTime();
	}
}

function formSubmit(){
	var myForm = document.getElementById("quote");
	var IDStock0 = document.getElementById("IDStock0").value;
	var selectdiv = document.getElementById("search_suggest0");
	var str;
	var childDiv;
	if(selectdiv.style.display=="noon"){
		selectdiv.style.display=="none";
	}else{
		if(selectdiv.childNodes.length>0){
			childDiv=selectdiv.childNodes[0];
			str = childDiv.innerHTML;
			//alert(str);return false;
			if(IDStock0.length<5){
				document.getElementById("IDStock0").innerText=str;
				//document.getElementById("IDStock0").textContent=str;
			}
		}
	}
	myForm.submit();
}
//检测是否有权限修改组合的信息loadUser登陆用户shareUser共公资源的用户
function checkChangeCategory(loadUser,shareUser){
	if(loadUser!=shareUser){
		alert("你只能操作你的组合!");
		return false;
	}
	else
		return true;
}

