﻿//----------------------------------------
// page.js
//----------------------------------------
// page.js

//页面命名空间
var page = new Object();
//主页面
page.main = new Object();
//清空箭头的定时器
page.main.clearArrowTimer = null;
//前台缓存
page.caching = new Object();
page.data = new Object();
//页面状态集合
page.status = new Object();
//快速交易对象
page.quickTrade = new Object();
page.quickTrade.page1 = new Object();
page.quickTrade.page2 = new Object();
page.quickTrade.page3 = new Object();

page.content = new Object();
page.panel = new Object();
//六个主标签页
page.panel1 = new Object();
page.panel2 = new Object();
page.panel3 = new Object();
page.panel4 = new Object();
page.panel5 = new Object();
page.panel6 = new Object();
//指向当前标签页
page.currentPanel = null;

//组合管理对象
page.groupManager = new Object();
//交易管理对象
page.tradeManager = new Object();

//----------------------------------------
// page.main.js
//----------------------------------------
// page.main.js

//刷新最新行情时间
page.main.refreshTime = function(timeString){
	$("#info_realtime").text(timeString);
}

//刷新页面顶部的上证指数和深证成指
page.main.refreshIndex = function(indexStock){
	var code = indexStock.get("code");
	var span = null;
	if(code=='0000001'){
		span = $("#info_sh000001");
		//观察觉得上证以及其它个股实时性好，深成慢了几秒
		//所以用上证的时间作为最新时间
		$("#info_realtime").text(indexStock.get("time"));
	}else if(code=='1399000'){
		span = $("#info_sz399000");
	}else{
		alert("不应该这样的.");	
		return;
	}
	ud_rate = indexStock.get("updown_rate")*100;
	//Price
	var price = span.find("span[mytype='price']");
	price.removeClass("cRed cGreen cBlack");
	price.addClass(my.ui.getColorCss(ud_rate));
	price.text(indexStock.get("price"));
	//涨跌
	var updown = span.find("span[mytype='updown']");
	updown.removeClass("cRed cGreen cBlack");
	updown.addClass(my.ui.getColorCss(ud_rate));
	updown.text(indexStock.get("updown"));
	//涨跌幅
	var updown_rate = span.find("span[mytype='updown_rate']");
	updown_rate.removeClass("cRed cGreen cBlack");
	updown_rate.addClass(my.ui.getColorCss(ud_rate));
	updown_rate.text(ud_rate.toFixed(2) + "%");
	//交易量1
	var shareamount = span.find("span[mytype='shareamount1']");
	shareamount.text(indexStock.get("shareamount1"));
}

//显示通行证ID
page.main.setUserId = function(){
	var userId = my.cookie.getValue('USERNAME');
	$("#spanUsername").text(userId);
}

//退出自选股
page.main.logout = function(){
	window.location = "http://custom.quotes.money.163.com/logout.do";
}

//页面管理自选股的按钮
page.main.onGroupManagerClick = function(){
	page.groupManager.show();
}

//列表排序,attr为要排序的mytype值
page.main.sort = function(pageid, groupid, mytype, compareAttr, type){
	var array = page.main.getStockLiArray(pageid, groupid);
	var chace_key = "sort_" + pageid + "_" + groupid + "_" + mytype;
	var asc = page.caching.cache.get(chace_key);
	if(asc == null){
		asc = true;
	}else{
		asc = !asc;
	}
	page.caching.cache.set(chace_key, asc);//将最近的排序方向存入缓存
	
	my.common.sort(array, 'mytype', mytype, compareAttr, type, asc);
}

//配合page.main.sort的使用，返回股票列表li的数组
page.main.getStockLiArray = function(pageid, groupid){
	var array = new Array();
	var groupArea = my.ui.group.findGroupArea(pageid, groupid);
	var list = groupArea.find("li[mytype='stockItem']");
	for(var i=0; i<list.length; i++){
		array.push(list[i]);
	}
	return array;
}


//----------------------------------------
// page.caching.js
//----------------------------------------
// page.caching.js

//通用缓存
page.caching.cache = new my.type.HashList();

//个股下拉信息缓存
page.caching.stockDetail = new my.type.HashList();

//股票评级数据缓存
page.caching.stockRank = new my.type.HashList();

//大事提醒缓存
page.caching.stockAlert = new my.type.HashList();


//----------------------------------------
// page.content.js
//----------------------------------------
// page.content.js

page.content.onTabClick = function(index){
	page.content.currentPage = page.panel.getPanel(index);
	if(!page.content.currentPage.inited){
		page.content.currentPage.init();
	}
	page.content.showPage(index);
	page.content.currentPage.refresh();
}

page.content.showPage = function(index){
	for(var i=0; i<6; i++){
		var panel = page.panel.getPanel(i);
		if(i==index){
			panel.show();
		}else{
			panel.hide();
		}
	}
}



//----------------------------------------
// page.data.js
//----------------------------------------
// page.data.js

//开始载入组合与自选股时发生
page.data.onGroupLoadStart = function(){
	page.status.loadingGroup = true;
}

//载入完成后发生
page.data.onGroupLoaded = function(result){
	page.status.loadingGroup = false;
	page.status.loadGroupOnce = true;
  //分割组合与股票列表原始数据
 	var g_s_Pair = my.common.split(result, '|');//102,金融股组合,true,1=0000002,4444.0,400;0600095,4444.0,400;|...
  
 	//分割组合与其股票列表
  for(var i=0; i<g_s_Pair.length; i++){
	  var g_s_Info_Pair = my.common.split(g_s_Pair[i], '=');
	  
	  var g_info = g_s_Info_Pair[0];//102,金融股组合,true,1
	  var s_list = g_s_Info_Pair[1];//0000002,4444.0,400;0600095,4444.0,400;
	  
	  //从字符串数据创建组合对象
	  var group = my.common.getGroup(g_info);
	  //判断是否有股票列表
	  if(s_list != undefined){
		  var s_list_Pair = my.common.split(s_list, ';');
		  //分割股票列表
		  for(var k=0; k<s_list_Pair.length; k++){
			  var s_info = s_list_Pair[k];
			  var stock = my.common.getStock(s_info);
			  //添加股票到组合
			  if(stock != null){
				group.stocks.add(stock.get('code'), stock);
			  }
		  }
	  }
	  //添加组合
	  my.groups.add(group.id, group);
  }
}

//开始载入基本面信息时发生
page.data.onBasicLoadStart = function(){
	page.status.loadingBasic = true;
}
//载入完成后发生
page.data.onBasicLoaded = function(result){
	var s_list = my.common.split(result, ";");
	for(var i=0; i<s_list.length; i++){
		var s_info = my.common.split(s_list[i],"=");
		var code = s_info[0];
		var data = s_info[1];
		var stock = my.common.findStock(code);
		if(stock != null){
			var a = my.common.split(data,",");
			my.data.stock.fillStockBasic(stock, a);
		}
	}
	page.status.loadingBasic = false;
	page.status.loadBasicOnce = true;
}

//开始载入交易记录时发生
page.data.onTradeLoadStart = function(){
	
}
//载入完成后发生
page.data.onTradeLoaded = function(result){

}

//载入组合与自选股数据
page.data.loadGroup = function(callback_success, callback_fail){
	$('#divTip').ajaxStart(function(){
		$(this).show();
	}); 
	$("#divTip").ajaxSuccess(function(evt, request, settings){
		$(this).hide();
	}); 
	page.data.onGroupLoadStart();
	$.get('ajax/group_stock_list.do?' + (new Date()).getTime(),
		  function(result){
				//检查返回结果
				page.data.checkResult(result);
			  page.data.onGroupLoaded(result);
			  //回调成功函数
			  if(callback_success) callback_success();
		  });
}

//开始载入股票实时数据时发生
page.data.onStockLoadStart = function(){
	page.status.loadingStock = true;
}
//载入完成后发生
page.data.onStockLoaded = function(result){
	var pattern = new RegExp("\\'[^\\']*\\'", "g"); //全局匹配
	var s_info = pattern.exec(result);
	while(s_info != null){
		//填充股票数据,先删除左右两个引号
		var a = s_info[0].replace("'",'').replace("'",'').split(';');
		var code=a[0];
		//在组合信息里查找
		var stock = my.common.findStock(code);
		if(stock != null){
			my.data.stock.fillStockInfo(stock, a);//填充
			//alert(stock.getKeyString(';'));
		}else{
			//组合里没有的股票必定是上证和深成
			if(code=='0000001'){
				my.data.stock.fillStockInfo(my.data.stock.sh, a);//填充
			}else if(code=='1399000'){
				my.data.stock.fillStockInfo(my.data.stock.sz, a);//填充
			}
		}
		//获取下一个股票
		s_info = pattern.exec(result);
	}
	page.status.loadingStock = false;
	page.status.loadStockOnce = true;
	//刷新实时信息
	my.ui.refreshPageInfo(page.currentPanel.id);
}

//Script方法载入完成时发生
page.data.loadStockFinish = function(){
	var list = my.data.stock.getAllStocks();
	for(var i=0; i<list.length; i++){
		var stock = list[i];
		var data = null;
		try{
			//绑定变量
			var data = eval("quote_"+stock.get("code"));
		}catch(e){
			data = null;
			//出错则填充空数据
			my.data.stock.fillEmptyStockInfo(stock);
		}
		if(data==null) continue;
		var a = data.split(";");
		var code = a[0];
		my.data.stock.fillStockInfo(stock, a);//填充
	}
	//获取上证和深成数据
	try{
		var sh = eval("quote_0000001");
		a = sh.split(";");
		my.data.stock.fillStockInfo(my.data.stock.sh, a);//填充
		var sz = eval("quote_1399000");
		a = sz.split(";");
		my.data.stock.fillStockInfo(my.data.stock.sz, a);//填充
	}catch(e2){
		
	}
	
	page.status.loadingStock = false;
	page.status.loadStockOnce = true;
	//刷新实时信息
	my.ui.refreshPageInfo(page.currentPanel.id);
}

//加载股票实时数据(默认获取0000001;1399000;上证、深成)
page.data.loadStock = function(callback_success, callback_fail){
	page.data.onStockLoadStart();
	//用Javascript方法载入实时数据
	var time = my.common.getTimeString();
	var parmlist = my.common.getStockList(';');
	var url = "http://data.quotes.money.163.com/"+time+"?0000001;1399000;"+parmlist;
	var stockData = document.getElementById("custom_quote_data_id");
	if(stockData){
		stockData.parentNode.removeChild(stockData);
	}
	
	stockData=document.createElement("script");
	stockData.type="text/javascript";
	stockData.src=url;
	stockData.id="custom_quote_data_id";	  
	document.body.appendChild(stockData);
	
	return;//截断下面的
	
	$.get('temp/data.jsp?time=' + time + "&list=0000001;1399000;" + parmlist,
		  function(result){
				//检查返回结果
				page.data.checkResult(result);
				page.data.onStockLoaded(result);
				//回调成功函数
			  if(callback_success) callback_success();
		  });
}

//加载基本面信息
page.data.loadBasic = function(callback_success, callback_fail){
	//0600095=0.06,4.77,82.19,85.60,2.72,1,849,669,452.80,36,126.36,645,751,744.00,32,378,284.00;0600183=
	//code=每股收益，净资产收益率，市盈率LYR，市盈率TTM，市净率，总市值，总股本，主营收入，净利润;code=
	page.data.onBasicLoadStart();
	$.get('ajax/stock_basic_info.do?' + "&t=" + (new Date()).getTime(),
		function(result){
			//检查返回结果
			page.data.checkResult(result);
			page.data.onBasicLoaded(result);
			//回调成功函数
			if(callback_success) callback_success();
		}
	);
}

//检查Ajax请求的返回数据，以执行服务器的操作请求
page.data.checkResult = function(result){
	//[redirect]表示未登录要求跳转
	if(result.substring(0,10)=="[redirect]"){
		//alert("你还没登录或登录超时，请重新登录以查看该页面 :<");
		window.location = result.substring(10);
		return;
	}
}

//加载组合信息用于更新持仓
page.data.refreshChiCang = function(callback_success, callback_fail){
	$.get('ajax/group_stock_list.do?' + (new Date()).getTime(),
		  function(result){
				//检查返回结果
				page.data.checkResult(result);
			  //分割组合与股票列表原始数据
			  var g_s_Pair = my.common.split(result, '|');//102,金融股组合,true,1=0000002,4444.0,400;0600095,4444.0,400;|...
			  
			  //分割组合与其股票列表
			  for(var i=0; i<g_s_Pair.length; i++){
				  var g_s_Info_Pair = my.common.split(g_s_Pair[i], '=');
				  
				  var g_info = g_s_Info_Pair[0];//102,金融股组合,true,1
				  var s_list = g_s_Info_Pair[1];//0000002,4444.0,400;0600095,4444.0,400;
					
				  //判断是否有股票列表
				  if(s_list != undefined){
					  var s_list_Pair = my.common.split(s_list, ';');
					  //分割股票列表
					  for(var k=0; k<s_list_Pair.length; k++){
						  var s_info = s_list_Pair[k];
							var s_info_arr = my.common.split(s_info,",");
							var code = s_info_arr[0];
						  var stock = my.common.findStock(code);
							if(stock==null){	//这个是新增的股票
								//分解g_info获得组合对象
								var g_info_arr = my.common.split(g_info,",");
								var group = my.groups.get(g_info_arr[0]);
								stock = my.common.getStock(s_info);
								group.stocks.add(code, stock);
							}
							//初步计算买入均价
							var buy_cost = Number(s_info_arr[1]);
							var hold_amount = Number(s_info_arr[2]);
							stock.set('buy_cost', buy_cost);
							stock.set('hold_amount', hold_amount);
							var buy_cost_avg = 0;
							if(hold_amount>0){
								buy_cost_avg = (buy_cost / hold_amount).toFixed(2); //买入均价
							}
							stock.set('buy_cost_avg', buy_cost_avg);
					  }
				  }
			  }
			  //回调成功函数
			  callback_success();
		  });
}

//载入全部交易记录
page.data.loadAllTrade = function(callback_success, callback_fail){
	//4,0600095,2008-04-18,false,100,13.0,5.0,5.0,5.0;3,0600095,
	//交易记录id，code，日期，类型（买入false/卖出true），数量，价格，佣金，手续费，印花税；交易记录id，code，..
	my.status.loadingAllTrade = true;//开始载入
	$.get('ajax/trade.do?action=getall' + "&t=" + (new Date()).getTime(),
		function(result){
			//检查返回结果
			page.data.checkResult(result);
			//清空旧的交易信息
			if(my.status.loadAllTradeOnce){
				var stocks = my.data.stock.getAllStocks();
				for(var j=0; j<stocks.length; j++){
					var stock = stocks[j];
					stock.get("trades").clear();
				}
			}
			var t_list = my.common.split(result, ";");
			for(var i=0; i<t_list.length; i++){
				var trade = my.common.getTradeItem(t_list[i]);
				var stock = my.common.findStock(trade.code);
				if(stock!=null){
					var tradeList = stock.get("trades");
					tradeList.add(trade.id, trade);//加入到所属的股票交易记录列表
				}
			}
			my.status.loadingAllTrade = false;//已载入
			my.status.loadAllTradeOnce = true;//标记为已载入基本面信息
			my.status.shouldLoadTrade = false;//此时已有最新数据了
			callback_success();
		}
	);
}


//----------------------------------------
// page.panel.js
//----------------------------------------
// page.panel

//获取panel
page.panel.getPanel = function(index){
	switch(index){
		case 0:
			return page.panel1;
			break;
		case 1:
			return page.panel2;
			break;
		case 2:
			return page.panel3;
			break;
		case 3:
			return page.panel4;
			break;
		case 4:
			return page.panel5;
			break;
		case 5:
			return page.panel6;
			break;
	}
	return null;
}
//标签点击
page.panel.tabClick = function(index){
	if(page.currentPanel!=null && page.currentPanel.index==index){
		return;
	}
	page.currentPanel = page.panel.getPanel(index);
	
	if(!page.status.loadGroupOnce){
		alert("正在加载自选股列表，请稍等 :< \n\n如果等待时间过长，可能由于网络错误，请刷新页面.");
		return;
	}
	//交易管理里显示的股票名称要等待loadStock返回
	if(index ==5 && !page.status.loadStockOnce){
		alert("正在加载股票信息，请稍等 ：<");
		return;
	}
	
	//终止更新上一个页面的定时器
	if(page.main.clearArrowTimer){
		window.clearTimeout(page.main.clearArrowTimer);
		page.main.clearArrowTimer = null;
	}
	
	var panel = $('#page'+(index+1));
	page.currentPanel.id = 'page' + (index+1);
	
	for(var i=0; i<6; i++){
		$('#page'+(i+1)).hide();
		if(i == index){
			$('#tab'+i).parent('h3').addClass('on');
		}else{
			$('#tab'+i).parent('h3').removeClass('on');
			
		}
	}

	if(panel.attr('created') != 'true'){
		window.setTimeout(
			function(){
				page.currentPanel.create();
				panel.show();
				window.setTimeout(function(){my.ui.refreshPageInfo(page.currentPanel.id);}, 10);
			}, 10);
	}
	panel.show();
	//立刻刷新一下
	window.setTimeout(function(){my.ui.refreshPageInfo(page.currentPanel.id);}, 50);
}

//根据模板modelid创建页面pageid
page.panel.create = function(modelid, pageindex){
	var pageid = "page" + (pageindex+1);
	var panel = $('#'+pageid);
	panel.attr('created', 'true');//标记为已创建
	
	//对于交易管理做特别处理
	if(pageindex==5){
		my.ui.trade.createTradePanel();//初始化
		my.ui.trade.loadTrade();
		return;
	}

	var first = true; //使得第一个组合的列表展开(显示)
	for(var i = 0; i < my.groups.getLength(); i ++){
		var group = my.groups.getByIndex(i);
		if(group.visible == 'true'){
			group.expanded = first;
			var groupArea = null;
			if(pageindex<4){
				groupArea = my.ui.createGroupArea(modelid, pageid, group, group.expanded);
			}else if(pageindex==4){
				groupArea = my.ui.createGroupAreaImage(modelid, pageid, group, group.expanded);
			}
			first = false;
			panel.append(groupArea);
		}
	}
	panel.append('<div class="clear blank12"></div>');
}

//清空趋势箭头
page.panel.clearTrendArrow = function(){
	if(page.currentPanel.id=="page1" || page.currentPanel.id=="page2" || page.currentPanel.id=="page4"){
		var panel = $('#' + page.currentPanel.id);
		var stocklist = panel.find("li[mytype='stockItem']");
		for(var j=0; j<stocklist.length; j++){
			var stockLi = $(stocklist[j]);//获得股票行
			//清除箭头
			var price = stockLi.find('div[mytype="info_price"] > span');
			if(price.length>0){
				var text = price.text();
				text = text.replace(/[↓↑]/g,"　");//替换成全角空格
				price.text(text);
			}
		}
	}
}

//----------------------------------------
// page.panel1.js
//----------------------------------------
// page.panel1.js

page.panel1.id = "page1";
page.panel1.index = 0;

page.panel1.create = function(){
	page.panel.create(my.model[page.panel1.id], 0);
}

//隐藏面板
page.panel1.hide = function(){
	$("#"+page.panel1.id).hide();
}

//刷新持仓股票数据
page.panel1.refresh = function(){
	var panel = $('#' + page.panel1.id);
	for(var i = 0; i < my.groups.getLength(); i ++){
		var group = my.groups.getByIndex(i);
		var groupArea = panel.find("div[mytype='groupArea'][groupid='"+group.id+"']");
		if(groupArea.length == 0) continue;//跳过被隐藏的组合
		var stockUl = groupArea.find("ul[mytype='stockList']");
		var listLi = stockUl.find("li[mytype='stockItem']");
		var hold_amnount_sum = 0;
		var buy_cost_sum = 0;
		var market_price_sum = 0;
		var profit_sum = 0;
		for(var j=0; j<listLi.length; j++){
			var stockLi = $(listLi[j]);//获得股票行
			var stock = group.stocks.get(stockLi.attr('stock'));
			if(stock == null) continue;//跳过意外为空
			stockLi.attr('stock', stock.get('code'));
			stockLi.find('div[mytype="info_name"] > a').text(stock.get('name'));
			stockLi.find('div[mytype="info_name"] > a').attr('href','http://quotes.money.163.com/'+stock.get('code')+'.html');
			stockLi.find('div[mytype="info_code"] > a').text(stock.get('short_code'));
			stockLi.find('div[mytype="info_code"] > a').attr('href','http://quotes.money.163.com/'+stock.get('code')+'.html');
			var updown_rate = stockLi.find('div[mytype="info_updown_rate"] > span');
			updown_rate.text((stock.get('updown_rate') * 100).toFixed(2) + '%');
			updown_rate.removeClass("cRed cGreen cBlack");
			updown_rate.addClass(my.ui.getColorCss(stock.get('updown_rate')));
			var price = stockLi.find('div[mytype="info_price"] > span');
			price.text(stock.get('arrow') + stock.get('price'));
			price.removeClass("cRed cGreen cBlack");
			price.addClass(my.ui.getColorCss(stock.get('updown')));
			stockLi.find('div[mytype="info_sharevolume"] > span').text(stock.get('sharevolume'));
			stockLi.find('div[mytype="info_shareamount"] > span').text(stock.get('shareamount'));
			stockLi.find('div[mytype="info_hold_amount"]').text(stock.get('hold_amount'));
			stockLi.find('div[mytype="info_buy_cost"]').text(stock.get('buy_cost').toFixed(2));
			stockLi.find('div[mytype="info_buy_cost_avg"]').text(stock.get('buy_cost_avg'));
			stockLi.find('div[mytype="info_market_price"]').text(stock.get('market_price'));
			//盈亏率
			var profit_rate = stockLi.find('div[mytype="info_profit_rate"] > span');
			profit_rate.text((stock.get('profit_rate') * 100).toFixed() + '%');
			profit_rate.removeClass("cRed cGreen cBlack");
			profit_rate.addClass(my.ui.getColorCss(stock.get('profit_rate')));
			//盈亏额度
			var profit = stockLi.find('div[mytype="info_profit"] > span');
			profit.text(stock.get('profit'));
			profit.removeClass("cRed cGreen cBlack");
			profit.addClass(my.ui.getColorCss(stock.get('profit')));
			
			stockLi.find('div[mytype="info_"]').text("-");
			
			hold_amnount_sum += Number(stock.get('hold_amount'));
			buy_cost_sum += Number(stock.get('buy_cost'));
			market_price_sum += Number(stock.get('market_price'));
			profit_sum += Number(stock.get('profit'));
		}
		//更新汇总信息
		ulBottom = groupArea.find("ul[mytype='bottom']");
		
		var jhold_amnount_sum = ulBottom.find("div[mytype='info_hold_amnount_sum'] > span");
		jhold_amnount_sum.text(hold_amnount_sum.toFixed());
		jhold_amnount_sum.removeClass("cRed cGreen cBlack");
		jhold_amnount_sum.addClass(my.ui.getColorCss(hold_amnount_sum.toFixed()));
		
		var jbuy_cost_sum = ulBottom.find("div[mytype='info_buy_cost_sum'] > span > span");
		jbuy_cost_sum.text(buy_cost_sum.toFixed(2));
		jbuy_cost_sum.removeClass("cRed cGreen cBlack");
		jbuy_cost_sum.addClass(my.ui.getColorCss(buy_cost_sum.toFixed(2)));
																																			
		var jmarket_price_sum = ulBottom.find("div[mytype='info_market_price_sum'] > span");
		jmarket_price_sum.text(market_price_sum.toFixed(2));
		jmarket_price_sum.removeClass("cRed cGreen cBlack");
		jmarket_price_sum.addClass(my.ui.getColorCss(market_price_sum.toFixed(2)));
		
		var jprofit_sum = ulBottom.find("div[mytype='info_profit_sum'] > span");
		jprofit_sum.text(profit_sum.toFixed(2));
		jprofit_sum.removeClass("cRed cGreen cBlack");
		jprofit_sum.addClass(my.ui.getColorCss(profit_sum.toFixed(2)));
	}
}




//----------------------------------------
// page.panel2.js
//----------------------------------------
// page.panel2.js

page.panel2.id = "page2";
page.panel2.index = 1;

page.panel2.create = function(){
	page.panel.create(my.model[page.panel2.id], 1);
}

//隐藏面板
page.panel2.hide = function(){
	$("#"+page.panel2.id).hide();
}

//刷新今日走势股票数据
page.panel2.refresh = function(){
	var panel = $('#' + page.panel2.id);
	for(var i = 0; i < my.groups.getLength(); i ++){
		var group = my.groups.getByIndex(i);
		var groupArea = panel.find("div[mytype='groupArea'][groupid='"+group.id+"']");
		if(groupArea.length == 0) continue;//跳过被隐藏的组合
		var stockUl = groupArea.find("ul[mytype='stockList']");
		var listLi = stockUl.find("li[mytype='stockItem']");
		for(var j=0; j<listLi.length; j++){
			var stockLi = $(listLi[j]);//获得股票行
			var stock = group.stocks.get(stockLi.attr('stock'));
			if(stock == null) continue;//跳过被隐藏的对象
			stockLi.attr('stock', stock.get('code'));
			stockLi.find('div[mytype="info_name"] > a').text(stock.get('name'));
			stockLi.find('div[mytype="info_name"] > a').attr('href','http://quotes.money.163.com/'+stock.get('code')+'.html');
			stockLi.find('div[mytype="info_code"] > a').text(stock.get('short_code'));
			stockLi.find('div[mytype="info_code"] > a').attr('href','http://quotes.money.163.com/'+stock.get('code')+'.html');
			var updown_rate = stockLi.find('div[mytype="info_updown_rate"] > span');
			updown_rate.text((stock.get('updown_rate') * 100).toFixed(2) + '%');
			updown_rate.removeClass("cRed cGreen cBlack");
			updown_rate.addClass(my.ui.getColorCss(stock.get('updown_rate')));
			var updown = stockLi.find('div[mytype="info_updown"] > span');
			updown.text(stock.get('updown').toFixed(2));
			updown.removeClass("cRed cGreen cBlack");
			updown.addClass(my.ui.getColorCss(stock.get('updown')));
			var price = stockLi.find('div[mytype="info_price"] > span');
			price.text(stock.get('arrow') + stock.get('price'));
			price.removeClass("cRed cGreen cBlack");
			price.addClass(my.ui.getColorCss(stock.get('updown')));
			stockLi.find('div[mytype="info_sharevolume"] ').text(stock.get('sharevolume'));
			stockLi.find('div[mytype="info_shareamount"] ').text(stock.get('shareamount'));
			stockLi.find('span[mytype="info_close"]').text(stock.get('previousclose'));
			var open = stockLi.find('span[mytype="info_open"]');
			open.text(stock.get('openprice'));
			open.removeClass("cRed cGreen cBlack");
			open.addClass(my.ui.getColorCss(stock.get('openprice-previousclose')));
			stockLi.find('span[mytype="info_high"]').text(stock.get('todayhigh'));
			stockLi.find('span[mytype="info_low"]').text(stock.get('todaylow'));
			stockLi.find('div[mytype="info_"]').text("-");
		}
	}
}


//----------------------------------------
// page.panel3.js
//----------------------------------------
// page.panel3.js

page.panel3.id = "page3";
page.panel3.index = 2;

page.panel3.create = function(){
	page.panel.create(my.model[page.panel3.id], 2);
}

//隐藏面板
page.panel3.hide = function(){
	$("#"+page.panel3.id).hide();
}

//刷新基本面股票数据
page.panel3.refresh = function(){
	var pageid = "page3";
	var panel = $('#' + page.panel3.id);
	for(var i = 0; i < my.groups.getLength(); i ++){
		var group = my.groups.getByIndex(i);
		var groupArea = panel.find("div[mytype='groupArea'][groupid='"+group.id+"']");
		if(groupArea.length == 0) continue;//跳过被隐藏的组合
		var stockUl = groupArea.find("ul[mytype='stockList']");
		var listLi = stockUl.find("li[mytype='stockItem']");
		for(var j=0; j<listLi.length; j++){
			var stockLi = $(listLi[j]);//获得股票行
			var stock = group.stocks.get(stockLi.attr('stock'));
			if(stock == null) continue;//跳过被隐藏的对象
			stockLi.attr('stock', stock.get('code'));
			stockLi.find('div[mytype="info_name"] > a').text(stock.get('name'));
			stockLi.find('div[mytype="info_name"] > a').attr('href','http://quotes.money.163.com/'+stock.get('code')+'.html');
			stockLi.find('div[mytype="info_code"] > a').text(stock.get('short_code'));
			stockLi.find('div[mytype="info_code"] > a').attr('href','http://quotes.money.163.com/'+stock.get('code')+'.html');
			stockLi.find('div[mytype="info_总市值"] > span').text((stock.get('总市值')/100000000).toFixed(2));
			stockLi.find('div[mytype="info_总股本"] > span').text(stock.get('总股本'));
			stockLi.find('div[mytype="info_主营收入"]').text((stock.get('主营收入')/100000000).toFixed(2));
			stockLi.find('div[mytype="info_净利润"]').text((stock.get('净利润')/100000000).toFixed(2));
			stockLi.find('div[mytype="info_市盈率LYR"]').text(stock.get('市盈率LYR'));
			stockLi.find('div[mytype="info_市净率"]').text(stock.get('市净率'));
			stockLi.find('div[mytype="info_每股收益"] > span').text(stock.get('每股收益'));
			stockLi.find('div[mytype="info_净资产收益率"] > span').text(stock.get('净资产收益率') + '%');
			stockLi.find('div[mytype="info_"]').text("");
		}
	}
}

//----------------------------------------
// page.panel4.js
//----------------------------------------
// page.panel4.js

page.panel4.id = "page4";
page.panel4.index =3;

page.panel4.create = function(){
	page.panel.create(my.model[page.panel4.id], 3);
}

//隐藏面板
page.panel4.hide = function(){
	$("#"+page.panel4.id).hide();
}

//刷新机构散户动向股票数据
page.panel4.refresh = function(){
	var panel = $('#' + page.panel4.id);
	for(var i = 0; i < my.groups.getLength(); i ++){
		var group = my.groups.getByIndex(i);
		var groupArea = panel.find("div[mytype='groupArea'][groupid='"+group.id+"']");
		if(groupArea.length == 0) continue;//跳过被隐藏的组合
		var stockUl = groupArea.find("ul[mytype='stockList']");
		var listLi = stockUl.find("li[mytype='stockItem']");
		for(var j=0; j<listLi.length; j++){
			var stockLi = $(listLi[j]);//获得股票行
			var stock = group.stocks.get(stockLi.attr('stock'));
			if(stock == null) continue;//跳过被隐藏的对象
			stockLi.attr('stock', stock.get('code'));
			stockLi.find('div[mytype="info_name"] > a').text(stock.get('name'));
			stockLi.find('div[mytype="info_name"] > a').attr('href','http://quotes.money.163.com/'+stock.get('code')+'.html');
			stockLi.find('div[mytype="info_code"] > a').text(stock.get('short_code'));
			stockLi.find('div[mytype="info_code"] > a').attr('href','http://quotes.money.163.com/'+stock.get('code')+'.html');
			var updown_rate = stockLi.find('div[mytype="info_updown_rate"] > span');
			updown_rate.text((stock.get('updown_rate') * 100).toFixed(2) + '%');
			updown_rate.removeClass("cRed cGreen cBlack");
			updown_rate.addClass(my.ui.getColorCss(stock.get('updown_rate')));
			var updown = stockLi.find('div[mytype="info_updown"] > span');
			updown.text(stock.get('updown').toFixed(2));
			updown.removeClass("cRed cGreen cBlack");
			updown.addClass(my.ui.getColorCss(stock.get('updown')));
			var price = stockLi.find('div[mytype="info_price"] > span');
			price.text(stock.get('arrow') + stock.get('price'));
			price.removeClass("cRed cGreen cBlack");
			price.addClass(my.ui.getColorCss(stock.get('updown')));
			stockLi.find('div[mytype="info_sharevolume"] ').text(stock.get('sharevolume'));
			stockLi.find('div[mytype="info_shareamount"] ').text(stock.get('shareamount'));
			stockLi.find('span[mytype="info_close"]').text(stock.get('previousclose'));
			var open = stockLi.find('span[mytype="info_open"]');
			open.text(stock.get('openprice'));
			open.removeClass("cRed cGreen cBlack");
			open.addClass(my.ui.getColorCss(stock.get('openprice-previousclose')));
			stockLi.find('span[mytype="info_high"]').text(stock.get('todayhigh'));
			stockLi.find('span[mytype="info_low"]').text(stock.get('todaylow'));
			stockLi.find('div[mytype="info_"]').text("-");
		}
	}
}

//----------------------------------------
// page.panel5.js
//----------------------------------------
// page.panel5.js

page.panel5.id = "page5";
page.panel5.index = 4;

page.panel5.create = function(){
	page.panel.create(my.model[page.panel5.id], 4);
}

//隐藏面板
page.panel5.hide = function(){
	$("#"+page.panel5.id).hide();
}

//刷新多图同列
page.panel5.refresh = function(){
	var panel = $("#page5");
	var stockList = panel.find("div[mytype='listOfGroup']");
	//alert(stockList.html());
	var list = stockList.find("li[mytype='stockItem']");
	
	for(var i=0; i<list.length; i++){
		var stockLi = $(list[i]);
		var code = stockLi.attr('stockcode');
		var imgLnk = stockLi.find("a[mytype='stockimage']");
		var dt = new Date();
		var imgUrl = "http://img1.quotes.ws.126.net/chart/stimechart/"+code+".png?" + dt.getTime();
		imgLnk.find('img').attr('src', imgUrl);
	}
}


//----------------------------------------
// page.panel6.js
//----------------------------------------
// page.panel6.js

page.panel6.id = "page6";
page.panel6.index = 5;

page.panel6.create = function(){
	page.panel.create(my.model[page.panel6.id], 5);
}

//隐藏面板
page.panel6.hide = function(){
	$("#"+page.panel6.id).hide();
}

//刷新交易管理，基本上是买入新股票的时候没有获取它的名称
page.panel6.refresh = function(){
	//var panel = $("#page6");
	var panelall = $("#page6 > div[mytype='alltrade']");
	var tradeList = panelall.find("ul[mytype='tradeList']");
	var tradeItems = tradeList.find("li[mytype='tradeItem']");
	for(var i=0; i<tradeItems.length; i++){
		var tradeItem = $(tradeItems[i]);
		var stock = my.common.findStock(tradeItem.attr("stock"));
		var name = tradeItem.find("a[mytype='stockname']");
		name.text(stock.get("name"));
		var stockcode = tradeItem.find("a[mytype='stockcode']");
		stockcode.text(stock.get("short_code"));
	}
}

//获取已排序的交易记录
page.panel6.getAllTradeSorted = function(){
	var tradeList = new Array();
	//获取所有股票
	var list = my.data.stock.getAllStocks();
	for(var i=0; i<list.length; i++){
		var stock = list[i];
		var trade = stock.get("trades");
		for(var j=0; j<trade.getLength(); j++){
			tradeList.push(trade.getByIndex(j));
		}
	}
	//按日期排序
	tradeList.sort(
			function(left, right){	//Desc
				if(left.date>right.date) return -1;
				if(left.date<right.date) return 1;
				return 0;
			}
	);
	return tradeList;
}

//----------------------------------------
// page.quickTrade.js
//----------------------------------------
/*
 * History
 * 
 * Version		Date		By			Description
 * ======================================================================================
 * 				080616		hrchen		修改 onAddClick()，去除对代码的验证
 * 										修改 onAddStockFinish()，添加对返回值为-1（股票已存在）的处理
 */

// page.js

page.quickTrade.selectedIndex = -1;
//快速交易标签被点击时发生
page.quickTrade.onTabClick = function(index){
	if(page.quickTrade.selectedIndex == index) return;
	if(!page.status.loadGroupOnce){
		alert("正在加载自选股列表，请稍等 :< \n\n如果等待时间过长，可能由于网络错误，请刷新页面.");
		return;
	}
	//卖出里显示股票名称要等待loadStock返回
	if(index == 2 && !page.status.loadStockOnce){
		alert("正在加载股票信息，请稍等 ：<");
		return;
	}
	page.quickTrade.selectedIndex = index;
	page.quickTrade.showPage(index);
}

//点击添加按钮
page.quickTrade.onAddClick = function(){
	if(my.status.tradeEditSaving){
		alert("正在保存你上一次的修改，请稍等.");
		return;
	}
	var panel = $('#pageQuickTrade0');
	var input = $("#keyWordInput");
	var sel = panel.find("#quickTrade_groupList");
	var groupid = sel[0].options[sel[0].selectedIndex].value;
	var txt = input.attr("value");
	if(txt== undefined || txt.trim()=="" || txt == my.ui.trade.quickTradeAddTip){
		alert("请在左边输入股票的 拼音/代码/汉字 :>");
		return;
	}
	//分割去掉空串及其前后空格
	var arr = my.common.split(txt, ",", true);
	//构造添加字符串
	var stockArr = new Array();
	if(arr.length==1 && isNaN(arr[0]) && _firstCode!=null){
		stockArr.push(_firstCode);
	}else if(arr.length==1 && isNaN(arr[0]) && _firstCode==null){
		alert("找不到任何匹配的股票.");
		return;
	}else{
		for(var i=0; i<arr.length; i++){
			if(isNaN(arr[i])){
				alert('用汉字添加股票时,一次只能添加一个.');
				return;
			}
			var code = my.common.getStockExchange(arr[i]) + arr[i].toString();
			var allStock = my.data.stock.getAllStocks();
			var exist = false;
			for(var j=0; j<allStock.length; j++){
				var stock = allStock[j];
				if(stock.get("code")==code){
					exist = true;
					break;
				}
			}
			if(!exist){
				stockArr.push(code);
			}
		}
	}
	
	if(stockArr.length == 0){
		alert("您已经添加过该股票！");
		return;
	}
	//发送请求
	page.quickTrade.addStock(groupid, stockArr);
}
//点击买入按钮
page.quickTrade.onBuyClick = function(){
	if(my.status.tradeEditSaving){
		alert("正在保存你上一次的修改，请稍等.");
		return;
	}
	var tradeInfo = page.quickTrade.getBuyInfo();
	page.quickTrade.doTrade(tradeInfo,
			function(tradeInfo, type, status, inserted){
				//处理页面更新
				my.ui.trade.refreshTrade(inserted);
			});
}
//点击卖出按钮
page.quickTrade.onSellClick = function(){
	if(my.status.tradeEditSaving){
		alert("正在保存你上一次的修改，请稍等.");
		return;
	}
	var tradeInfo = page.quickTrade.getSellInfo();
	page.quickTrade.doTrade(tradeInfo,
			function(tradeInfo, type, status, inserted){
				//处理页面更新
				my.ui.trade.refreshTrade(inserted);
			});
}

page.quickTrade.showPage = function(index){
	if(index==2){
		//填充快速交易的股票卖出
		page.quickTrade.refreshStockList();
	}
	for(var i=0; i<3; i++){
		var panel = $('#pageQuickTrade' + i);
		panel.hide();
		var tab = $("#tabQuickTrade" + i)
		if(i == index){
			tab.addClass('on');
		}else{
			tab.removeClass('on');
		}
	}
	var tab = $('#pageQuickTrade'+index);
	if(tab.attr('created')!='true'){
		page.quickTrade.initQuickTrade(index);
		tab.attr('created','true');
	}
	tab.show();
}

//初始化快速交易面板
page.quickTrade.initQuickTrade = function(index){
	var panel = $('#pageQuickTrade'+index);
	if(index==0){ //添加关注
		var butAdd = $("#quickTrade_add");
		butAdd[0].onclick = page.quickTrade.onAddClick;
		
	}else if(index==1){ //买入
		var txtCode = $("#keyWordInput2");
		txtCode[0].onfocus = function(){
			curInputId = "keyWordInput2"; //设置自动完成框对应的Input
			if($(this).attr("value")=="拼音/代码/汉字"){
				$(this).attr("value","");
			}
		}
		txtCode[0].onblur = function(){
			var _self = $(this);
			if(_self.attr("value")==undefined || _self.attr("value")==""){
				_self.attr("value", "拼音/代码/汉字");
			}
		}
		var txtDate = $("#quickTrade_buy_date");
		txtDate.attr("value", my.common.getShortDate());
		var butBuy = $("#quickTrade_buy_button");
		butBuy[0].onclick = page.quickTrade.onBuyClick;
	}else if(index==2){ //卖出
		var txtDate = $("#quickTrade_sell_date");
		txtDate.attr("value", my.common.getShortDate());
		var butSell = $("#quickTrade_sell_button");
		butSell[0].onclick = page.quickTrade.onSellClick;
	}
}

//开始添加关注
page.quickTrade.onAddStockStart = function(){
	page.status.quickTradeAdding = true;
}

//添加关注完成，处理返回结果
page.quickTrade.onAddStockFinish = function(result, callback_success){
	page.status.quickTradeAdding = false;
	var arr = my.common.split(result, ";");
	var group = my.groups.get(arr[0]);
	var s_list = new Array();
	var existCount = 0;	// 保存已添加过的股票的数目
	var existStr = "";	// 保存已添加过的股票代码
	for(var i=1; i<arr.length; i++){
		var s_info = my.common.split(arr[i], ",");
		if(s_info[1] == '1'){	//添加成功的
			var data = s_info[0] + ",0,0";//构建字符串
			var stock = my.common.getStock(data);
			group.stocks.add(s_info[0],stock);
			s_list.push(stock);//临时存放
		}
// 080616 add start
		if (s_info[1] == '-1') {
			existCount += 1;
			existStr += s_info[0].substr(1) + ", ";
		}
// 080616 add end
	}
	if(s_list.length==0){
		alert("您已经添加过该股票！");
		return;
	}
// 080616 update start
	var alertStr = "你成功添加了 "+s_list.length+" 只股票.";
	if (existCount != 0) {
		alertStr += "\n有" + existCount + "只股票已经存在：" + existStr.substr(0, existStr.length-2);
	}
	alert(alertStr);
// 080616 update end
	my.ui.reCreatePage(page.currentPanel.id);
	my.ui.resetOtherPage(page.currentPanel.index);
	page.data.loadStock();//载入实时数据
	
	//发出添加成功的反馈
	if(callback_success) callback_success();
}

//快速交易：添加股票关注(添加自选股)
page.quickTrade.addStock = function(groupid, stockArr, callback_success, callback_fail){
	page.quickTrade.onAddStockStart();
	var list = "";
	for(var i=0; i<stockArr.length; i++){
		list += stockArr[i];
		list += ";";
	}
	$.get('ajax/stock_mgr.do?action=add&gid=' + groupid + "&list=" + list + "&t=" + (new Date()).getTime(),
		  function(result){	//101;600629,1;...
				if(result.substring(0,10)=="[redirect]"){
					alert("你还没登录或登录超时，请重新登录以查看该页面 :<");
					window.location = result.substring(10);
					return;
				}
				page.quickTrade.onAddStockFinish(result, callback_success);
			}
	)
}

//交易开始
page.quickTrade.onDoTradeStart = function(){
	page.status.quickTradeDoing = true;
}

//交易完成
page.quickTrade.onDoTradeFinish = function(result, tradeInfo, callback_success){
	page.status.quickTradeDoing = false;
	//code, type,result
	var arr = my.common.split(result, ",");
	var code = arr[0];
	var type = arr[1]=="true" ? "买入" : "卖出";
	var status = arr[2];
	var inserted = arr[3]=="1" ? true : false;//有否插入新持仓
	
	if(status=='-1'){
		alert("卖出操作失败！您所输入的卖出数量大于您的买入数量。");	
		return;
	}
	if(status!='1'){
		alert("出现未处理错误，"+type+tradeInfo.code+"失败 :<");
		return;
	}
	if(type=="买入"){
		alert("买入"+tradeInfo.code+"成功 :>");
	}else if(type=="卖出"){
		alert("卖出"+tradeInfo.code+"成功 :>");
	}
	
	if(callback_success) callback_success(tradeInfo, type, status, inserted);
}

//验证交易数据(tradeType=1买入，tradeType=0卖出）
my.ui.trade.validateTradeInfo = function(tradeInfo){
	if(my.status.tradeEditSaving){
		alert("正在保存你上一次的修改，请稍等.");
		return false;
	}
	//验证股票
	if(!my.validator.checkInput(tradeInfo.code,"拼音/代码/汉字")){
		alert("请输入股票代码 :)");
		return false;
	}
	tradeInfo.code=tradeInfo.code.trim();
	if(tradeInfo.code.length != 7){
		alert("请输入正确的股票代码 :)");
		return false;
	}
	//获得正确的股票代码
	var code = my.common.getStockExchange(tradeInfo.code) + tradeInfo.code;	// 080617 貌似该变量无用？？
	
	//验证数量
	if(!my.validator.checkInput(tradeInfo.amount,"0")){
		alert("请输入正确的交易数量,交易数量必须大于0且不超过100万.");
		return false;
	}
	tradeInfo.amount = tradeInfo.amount.trim();
	if(!my.validator.checkNumber(tradeInfo.amount,0,1000000)){	//数量的单位是股，数值不能超过100万（即六位数）
		alert("请输入正确的交易数量,交易数量必须大于0且不超过100万.");
		return false;
	}
	
	//验证价格
	if(!my.validator.checkInput(tradeInfo.price,"0")){
		alert("请输入正确的价格,价格必须大于0且不超过1000元.");
		return false;
	}
	tradeInfo.price = tradeInfo.price.trim();
	if(!my.validator.checkNumber(tradeInfo.price,0,1000)){				//价格单位是元，数值不能超过1000元（即三位数）
		alert("请输入正确的价格,价格必须大于0且不超过1000元.");
		return false;
	}
	//验证日期
	if(!my.validator.checkInput(tradeInfo.date,"")){
		alert("请输入日期 :)");
		return false;
	}
	tradeInfo.date = tradeInfo.date.trim();
	if(!my.validator.checkShortDate(tradeInfo.date)){
		alert("请输入正确的日期 :)");
		return false;
	}
	//验证佣金
	if(!my.validator.checkInput(tradeInfo.commission_rate,"")){
		tradeInfo.commission_rate = "0";
	}
	tradeInfo.commission_rate = tradeInfo.commission_rate.trim();
	if(!my.validator.checkNumber(tradeInfo.commission_rate,0,10000)){ //佣金的单位是‰，数值不能超过10（即10000‰）
		alert("请输入正确的佣金,佣金不能超过10000‰ .");
		return false;
	}
	tradeInfo.commission_rate = Number(tradeInfo.commission_rate)/1000;
	//验证手续费
	if(!my.validator.checkInput(tradeInfo.commission,"")){
		tradeInfo.commission = "0";
	}
	tradeInfo.commission = tradeInfo.commission.trim();
	if(!my.validator.checkNumber(tradeInfo.commission,0,10000)){//手续费单位是元，数值不能超过10000元（即四位数）
		alert("请输入正确的手续费,手续费不能超过10000元");
		return false;
	}
	//验证印花税
	if(!my.validator.checkInput(tradeInfo.stamptax,"")){
		tradeInfo.stamptax = "0";
	}
	tradeInfo.stamptax = tradeInfo.stamptax.trim();
	if(!my.validator.checkNumber(tradeInfo.stamptax,0,10000)){//印花税的单位是‰，数值不能超过10（即10000‰）
		alert("请输入正确的印花税,印花税不能超过10000‰ .");
		return false;
	}
	tradeInfo.stamptax = Number(tradeInfo.stamptax)/1000;	
	return true;
}


//发出一次交易请求
page.quickTrade.doTrade = function(tradeInfo, callback_success, callback_fail){
	if(!my.ui.trade.validateTradeInfo(tradeInfo)){
		return;
	}
	page.quickTrade.onDoTradeStart();
	var query = "action=trade&groupid="+tradeInfo.groupId+"&type="+tradeInfo.type+"&code="+tradeInfo.code+"&date="+tradeInfo.date+"&amount="+tradeInfo.amount+"&price="+tradeInfo.price+"&commission_rate="+tradeInfo.commission_rate+"&commission="+tradeInfo.commission+"&stamptax="+tradeInfo.stamptax;
	$.get("ajax/trade.do?" + query  + "&t=" + (new Date()).getTime(),
		  function(result){
				//检查返回结果
				page.data.checkResult(result);
				page.quickTrade.onDoTradeFinish(result, tradeInfo, callback_success);
			}
	)
}

//获取买入数据
page.quickTrade.getBuyInfo = function(){
	if(my.status.tradeEditSaving){
		alert("正在保存你上一次的修改，请稍等.");
		return;
	}
	var tradeInfo = my.type.TradeInfo();
	tradeInfo.code = $("#keyWordInput2").attr("value");
	tradeInfo.price = $("#quickTrade_buy_price").attr("value");
	tradeInfo.amount = $("#quickTrade_buy_amount").attr("value");
	tradeInfo.date = $("#quickTrade_buy_date").attr("value");
	tradeInfo.commission_rate = $("#quickTrade_buy_commission_rate").attr("value");
	tradeInfo.commission = $("#quickTrade_buy_commission").attr("value");
	tradeInfo.stamptax = $("#quickTrade_buy_stamptax").attr("value");
	tradeInfo.type = 1; //1 marked buy
	if(tradeInfo.code=="拼音/代码/汉字"){
		tradeInfo.code = "";
	}
	if(my.common.getStockExchange(tradeInfo.code)!=""){
		var code = my.common.getStockExchange(tradeInfo.code) + tradeInfo.code;
		tradeInfo.code = code;
	}
	tradeInfo.groupId = my.groups.getByIndex(0).id;//如果未添加该股票就取第一个组合
	for(var i=0; i<my.groups.getLength(); i++){
		if(my.groups.getByIndex(i).stocks.contains(tradeInfo.code)){
			tradeInfo.groupId = my.groups.getByIndex(i).id;//如果已添加就取原有的组合id
			break;
		}
	}
	return tradeInfo;
}
//获取卖出数据
page.quickTrade.getSellInfo = function(){
	var tradeInfo = my.type.TradeInfo();
	var list =  $("#quickTrade_stockList")[0];
	if(list.selectedIndex<0){
		tradeInfo.code = "";
	}else{
		tradeInfo.code = list.options[list.selectedIndex].value;
	}
	tradeInfo.price = $("#quickTrade_sell_price").attr("value");
	tradeInfo.amount = $("#quickTrade_sell_amount").attr("value");
	tradeInfo.date = $("#quickTrade_sell_date").attr("value");
	tradeInfo.commission_rate = $("#quickTrade_sell_commission_rate").attr("value");
	tradeInfo.commission = $("#quickTrade_sell_commission").attr("value");
	tradeInfo.stamptax = $("#quickTrade_sell_stamptax").attr("value");
	tradeInfo.type = 0; //0 marked sell
	for(var i=0; i<my.groups.getLength(); i++){
		if(my.groups.getByIndex(i).stocks.contains(tradeInfo.code)){
			tradeInfo.groupId = my.groups.getByIndex(i).id;//如果已添加就取原有的组合id
			break;
		}
	}
	return tradeInfo;
}

//刷新关注那里的组合列表
page.quickTrade.refreshGroupList = function(){
	var select = $("#quickTrade_groupList");
	select.empty();
	for(var i=0; i<my.groups.getLength(); i++){
		var group = my.groups.getByIndex(i);
		select.append("<option value='"+group.id+"'>"+group.name+"</option>");
	}
	select[0].selectedIndex  = 0;
}

//刷新卖出那里的股票列表
page.quickTrade.refreshStockList = function(){
	var select = $("#quickTrade_stockList");
	select.empty();
	var everAdd = false;
	var list = my.data.stock.getAllStocks();
	for(var i=0; i<list.length; i++){
		var stock = list[i];
		var hold_amount = stock.get("hold_amount");
		//只显示有持仓的股票
		if(hold_amount>0){
			select.append("<option value='"+stock.get('code')+"'>"+stock.get('name')+"("+stock.get('short_code')+")"+"</option>");
			everAdd = true;
		}
	}
	if(everAdd){
		select[0].selectedIndex  = 0;
	}
}

//----------------------------------------
// page.status.js
//----------------------------------------
// page.status.js

page.status.loadingGroup = false;
page.status.loadGroupOnce = false;
page.status.loadingStock = false;
page.status.loadStockOnce = false;
page.status.loadingBasic = false;
page.status.loadBasicOnce = false;

page.status.groupViewChanged = false;
page.status.tradeChanged = false;
//交易记录的信息改变了，该标志位要求刷新，但不需要重新加载
page.status.panel6InfoChanged = false;

//快速交易相关(quickTrade)
page.status.quickTradeAdding = false;
page.status.quickTradeDoing = false;
page.status.tradeManagerDoing = false;

//----------------------------------------
// page.tradeManager.js
//----------------------------------------
// page.tradeManager.js

//交易管理的可见性
page.tradeManager.visible = false;
page.tradeManager.stockCode = null;
//显示交易管理
page.tradeManager.show = function(stockCode){
	if(!page.status.loadStockOnce){
		alert("正在加载自选股基本，请稍等 :<");
		return;
	}
	my.ui.cover.onclick = function(){
		page.tradeManager.hide();
	}
	var tradeMgr = $('#pageTradeMgr');

	my.ui.showCenter(tradeMgr[0], my.ui.cover.zIndex + 1);
	my.ui.cover.show();
	tradeMgr.show();
	page.tradeManager.onTabClick(0);
	var stock = my.common.findStock(stockCode);
	page.tradeManager.fillInfo(stock);
	page.tradeManager.visible = true;
	page.tradeManager.stockCode = stockCode;
	//（兼容IE6的遮罩层无法覆盖select）
	$("body").find("select:visible").hide();
}

//隐藏交易管理
page.tradeManager.hide = function(){
	var tradeMgr = $('#pageTradeMgr');
	tradeMgr.hide();
	my.ui.cover.hide();
	//刷新页面数据
	my.ui.refreshPageInfo(page.currentPanel.id);
	page.tradeManager.visible = false;
	page.tradeManager.stockCode = null;
	//（兼容IE6的遮罩层无法覆盖select）
	$("body").find("select:hidden").show();
}

//当前选中的标签
page.tradeManager.selectedIndex = -1;
//点击标签
page.tradeManager.onTabClick = function(index){
	if(index == page.tradeManager.selectedIndex) return;
	var tradeMgr = my.ui.trade.tradeMgr;
	page.tradeManager.selectedIndex = index;
	for(var i=0; i<2; i++){
		var tabObj = $("#tradeManager_tab"+i);
		if(i==index){
			tabObj.addClass('on');
		}else{
			tabObj.removeClass('on');
		}
	}
	var butBuySell = tradeMgr.find("#tradeManager_trade_button");
	if(index == 0){
		butBuySell.attr('value',"买入");
	}else{
		butBuySell.attr('value',"卖出");
	}
}

page.tradeManager.onBuySellClick = function(){
	if(my.status.tradeEditSaving){
		alert("正在保存你上一次的修改，请稍等.");
		return;
	}
	var tradeInfo = page.tradeManager.getTradeInfo();
	page.tradeManager.doTrade(tradeInfo,
			function(tradeInfo, type, status, inserted){
				//处理页面更新
				my.ui.trade.refreshTrade(inserted);
			});
}

//发出一次交易请求
page.tradeManager.doTrade = function(tradeInfo, callback_success, callback_fail){
	if(!my.ui.trade.validateTradeInfo(tradeInfo)){
		return;
	}
	page.tradeManager.onDoTradeStart();
	var query = "action=trade&groupid="+tradeInfo.groupId+"&type="+tradeInfo.type+"&code="+tradeInfo.code+"&date="+tradeInfo.date+"&amount="+tradeInfo.amount+"&price="+tradeInfo.price+"&commission_rate="+tradeInfo.commission_rate+"&commission="+tradeInfo.commission+"&stamptax="+tradeInfo.stamptax;
	$.get("ajax/trade.do?" + query  + "&t=" + (new Date()).getTime(),
		  function(result){
				//检查返回结果
				page.data.checkResult(result);
				page.tradeManager.onTradeFinish(result, tradeInfo, callback_success);
			}
	)
}

//交易开始
page.tradeManager.onDoTradeStart = function(){
	page.status.tradeManagerDoing = true;
}

//弹出管理里的交易完成
page.tradeManager.onTradeFinish = function(result, tradeInfo, callback_success){
	page.status.quickTradeDoing = false;
	//code, type,result
	var arr = my.common.split(result, ",");
	var code = arr[0];
	var type = arr[1]=="true" ? "买入" : "卖出";
	var status = arr[2];
	var inserted = arr[3]=="1" ? true : false;//有否插入新持仓
	
	if(status=='-1'){
		alert("卖出操作失败！您所输入的卖出数量大于您的买入数量。");	
		return;
	}
	if(status!='1'){
		alert("出现未处理错误，"+type+tradeInfo.code+"失败 :<");
		return;
	}
	if(type=="买入"){
		alert("买入"+tradeInfo.code+"成功 :>");
	}else if(type=="卖出"){
		alert("卖出"+tradeInfo.code+"成功 :>");
	}
	
	if(callback_success) callback_success(tradeInfo, type, status, inserted);
}

page.tradeManager.onEditClick = function(tradeId){
	
}

page.tradeManager.onSaveClick = function(tradeId){
	
}

page.tradeManager.onSelectClick = function(selected){
	
}

//交易管理全选
page.tradeManager.onSelectAllClick = function(checked){
	var tradeMgr = $('#pageTradeMgr');
	var ul = tradeMgr.find("ul[mytype='tradeList']");
	
	var lis = ul.find("li[mytype='tradeItem']");
	var checks = lis.find("input[mytype='chkSelect']");
	for(var i=0; i<checks.length; i++){
		checks[i].checked = checked;
	}
}

//开始删除交易记录
page.tradeManager.onDeleteStart = function(){
	
}


//删除完成
page.tradeManager.onDeleteFinish = function(result, callback_success){
	//result(1 for success/-1 for 数量不符而失败 0 其它失败)
	if(result=="-1"){
		alert("抱歉，持仓数量必须大于0，无法同时删除选中的交易记录. :<");
		return;
	}else if(result=="0"){
		alert("抱歉，出现未知错误.");
	}
	//删除成功,执行更新 false不涉及到新增持仓
	my.ui.trade.refreshTrade(false);
	
	if(callback_success) callback_success();
}

//删除交易记录(param:?action=delete&list=code,tradeid;code,tradeid;…)
page.tradeManager.deleteTrades = function(list, callback_success, callback_fail){
	page.tradeManager.onDeleteStart();
	$.get("ajax/trade.do?action=delete&list=" + list + "&t=" + (new Date()).getTime(),
		  function(result){
				//检查返回结果
				page.data.checkResult(result);
				page.tradeManager.onDeleteFinish(result, callback_success);
			}
	)
}

//点击删除按钮
page.tradeManager.onDeleteClick = function(){
	var liArray = page.tradeManager.getSelectedTradeLi();
	if(liArray.length==0){
		alert("请先选中要删除的交易记录.");
		return;
	}
	var list = "";
	for(var i=0; i<liArray.length; i++){
		var li = $(liArray[i]);
		list += li.attr("stock");//获取属性
		list += ",";
		list += li.attr("tradeid");
		list += ";";
	}
	if(confirm("你确实要删除选中的" + liArray.length + "条交易记录吗?")){
		page.tradeManager.deleteTrades(list);
	}
}

page.tradeManager.onCloseClick = function(){
	page.tradeManager.hide();
}

//获取选中的交易记录(Aray，元素为li)
page.tradeManager.getSelectedTradeLi = function(){
	var array = new Array();
	var ul = $("#tradeManager_tradeList");
	var lis = ul.find("li[mytype='tradeItem']");
	for(var i=0; i<lis.length; i++){
		var li = $(lis[i]);
		check = li.find("input[mytype='chkSelect']");
		if(check[0].checked){
			array.push(li);
		}
	}
	return array;
}

//获取交易数据
page.tradeManager.getTradeInfo = function(){
	var tradeInfo = new my.type.TradeInfo();
	tradeInfo.amount = $("#tradeManager_amount").attr("value");
	tradeInfo.price = $("#tradeManager_price").attr("value");
	tradeInfo.date = $("#tradeManager_date").attr("value");
	tradeInfo.commission_rate = $("#tradeManager_commission_rate").attr("value");
	tradeInfo.commission = $("#tradeManager_commission").attr("value");
	tradeInfo.stamptax = $("#tradeManager_stamptax").attr("value");
	
	tradeInfo.code = page.tradeManager.stockCode;
	
	if(page.tradeManager.selectedIndex==0){	//第一个是买入标签
		tradeInfo.type = 1;//1 marked 买入
	}else{
		tradeInfo.type = 0;//0 marked 卖出
	}
	for(var i=0; i<my.groups.getLength(); i++){
		if(my.groups.getByIndex(i).stocks.contains(tradeInfo.code)){
			tradeInfo.groupid = my.groups.getByIndex(i).id;
			break;
		}
	}
	return tradeInfo;
}

//将指定股票数据填充到交易管理面板
page.tradeManager.fillInfo = function(stock){
	if(my.status.loadingAllTrade){
		alert("正在处理你上一次的请求，请稍等.");
		return;
	}
	var tradeMgr = $('#pageTradeMgr');
	
	var butClose = $("#tradeManager_close");
	
	var title = tradeMgr.find("#tradeManager_title");
	title.text(stock.get('name') + "["+stock.get('short_code')+"]");
	
	$("#tradeManager_name").attr('value', stock.get('name') + '('+stock.get('short_code')+')');
	$("#tradeManager_price").attr('value', stock.get('price'));
	$("#tradeManager_date").attr('value', my.common.getShortDate());
	
	//如果未层曾载入过数据
	if(!my.status.loadAllTradeOnce || my.status.shouldLoadTrade){
		page.data.loadAllTrade(function(){page.tradeManager.fillTradeList(stock);});
	}else{
		page.tradeManager.fillTradeList(stock);
	}
	
}

//填充交易记录到弹出管理
page.tradeManager.fillTradeList = function(stock){
	var tradeMgr = $('#pageTradeMgr');
	var butDelete = $("#tradeManager_delete");
	//填充交易列表
	var ul = $("#tradeManager_tradeList");
	var code = stock.get('code');
	var trades = stock.get('trades');
	var tradeItemModel = page.caching.cache.get("cache_pop_trade_stockitem");
	if(tradeItemModel==null){
		tradeItemModel = ul.find("li[mytype='tradeItem']");
		page.caching.cache.set("cache_pop_trade_stockitem",tradeItemModel);
		tradeItemModel.remove();
	}
	ul.empty();
	for(var i=0; i<trades.getLength(); i++){
		var trade = trades.getByIndex(i);
		var tradeItem = tradeItemModel.clone();
		tradeItem.attr("tradeid",trade.id);
		tradeItem.attr("stock",code);
		var itemId = "popmgr_"+code+"_"+trade.id;
		tradeItem.attr("id",itemId);//记录id
		tradeItem.find("div[mytype='date']").text(trade.date);
		tradeItem.find("div[mytype='tradetype']").text((trade.type=='true')?'买入':'卖出');
		tradeItem.find("div[mytype='amount']").text(trade.amount);
		tradeItem.find("div[mytype='price']").text(trade.price);
		tradeItem.find("div[mytype='commission_rate']").text(trade.commission_rate);
		tradeItem.find("div[mytype='commission']").text(trade.commission);
		tradeItem.find("div[mytype='stamptax']").text(trade.stamptax);
		//编辑交易记录
		var butEdit = tradeItem.find("a[mytype='butEdit']");
		butEdit.attr('itemId',itemId);
		butEdit.attr("href","javascript:my.ui.trade.startTradeEdit('"+itemId+"','"+code+"','"+trade.id+"');");
		//右键取消编辑
		butEdit[0].oncontextmenu = function(){
			if(my.status.tradeEditSaving){
				alert("正在保存你上一次的修改，请稍等.");
				return;
			}
			var _self = $(this);
			if(_self.attr('editing') != 'true') return;
			
			var parentItem = _self.parent("li[mytype='tradeItem']");
			my.ui.trade.cancelTradeEdit(_self.attr("itemId"), parentItem.attr("stock"), parentItem.attr("tradeid"));
			_self.find("img").attr("src","privyimg/bg49.gif");
			_self.attr('editing','false');
		}
		ul.append(tradeItem);
	}	
}

//----------------------------------------
// page.groupManager.js
//----------------------------------------
// page.groupManager.js

//组合管理是否弹出
page.groupManager.visible = false;

//显示组合管理
page.groupManager.show = function(){
	if(!page.status.loadGroupOnce){
		alert("正在加载自选股列表，请稍等 :< \n\n如果等待时间过长，可能由于网络错误，请刷新页面.");
		return;
	}
	my.ui.cover.onclick = function(){
		page.groupManager.hide();
	}
	var pageGroup = $('#page_group');

	my.ui.showCenter(pageGroup[0], my.ui.cover.zIndex + 1, 748);
	my.ui.cover.show();
	pageGroup.show();
	page.groupManager.visible = true;
	//（兼容IE6的遮罩层无法覆盖select）
	$("body").find("select:visible").hide();
}

//隐藏组合管理
page.groupManager.hide = function(){
	$('#page_group').hide();
	my.ui.cover.hide();
	page.groupManager.visible = false;
	//（兼容IE6的遮罩层无法覆盖select）
	$("body").find("select:hidden").show();
}

//点击了Done
page.groupManager.onDoneClick = function(){

	if(page.status.groupViewChanged){
		var allHidden = page.groupManager.isAllGroupHidden();
		if(allHidden){
			alert("抱歉，无法将所有自选股组合隐藏，默认显示第一个组合.");
			my.groups.getByIndex(0).visible = "true";
		}
		my.ui.group.changeViewFinish();//先刷新再发请求
		my.data.group.changeView(function(result){});
	}else{
		page.groupManager.hide();
	}
}

//判断是否全部组合不可见
page.groupManager.isAllGroupHidden = function(){
	var allHidden = true;
	for(var i=0; i<my.groups.getLength(); i++){
		var group = my.groups.getByIndex(i);
		if(group.visible == "true"){
			allHidden = false;
			break;
		}
	}
	return allHidden;
}

//点击添加按钮时触发
page.groupManager.onAddClick = function(){
	var pageGroup = $('#page_group');
	
	var button = pageGroup.find("a[mytype='butAddGroup']");
	if(button.attr('showed') == 'true') return;
	button.attr('showed', 'true');//标记为正在创建
	
	var ulGroupList = pageGroup.find("ul[mytype='groupList']");
	var liGroupModel = ulGroupList.find("li[mytype='groupItem']");
	var ulGroupEdit = pageGroup.find("ul[mytype='groupEdit']");
	var ulGroupAdd = pageGroup.find("ul[mytype='groupAdd']");
	var ulGroupBottom = pageGroup.find("ul[mytype='groupBottom']");
	
	var input = ulGroupAdd.find("input[name='txtName']");
	var save = ulGroupAdd.find("input[name='butSave']");
	var cancel = ulGroupAdd.find("input[name='butCancel']");

	//只绑定一次事件
	if(ulGroupAdd.attr('bined') != 'true'){
		ulGroupAdd.attr('bined', 'true');
		save[0].onclick = page.groupManager.onAddSaveClick;
		cancel[0].onclick = page.groupManager.onAddCancelClick;
	}
	//button.hide();
	//显示添加行
	ulGroupAdd.show();
}

//点击保存
page.groupManager.onAddSaveClick = function(){
	var pageGroup = $('#page_group');
	var ulGroupAdd = pageGroup.find("ul[mytype='groupAdd']");
	var input = ulGroupAdd.find("input[name='txtName']");
	if(!input.attr('value') || input.attr('value') == '请输入新组合的名字'){
		alert('请输入新组合的名字:>');
	}else if(input.attr('value').getCharLength()>40){
		alert("组合名称不能超过20个汉字或40个字符");
	}else{
		page.status.groupViewChanged = true;
		page.groupManager.addGroup(input.attr('value'), page.groupManager.onAddFinish);
	}
}

//添加完成后的操作
page.groupManager.onAddFinish = function(group){
	//alert('添加成功:' + group.name);
	page.groupManager.reCreate();
	//快速交易的组合列表
	page.quickTrade.refreshGroupList();
}

//发出添加请求
page.groupManager.addGroup = function(name, callback_success, callback_fail){
	$.get('ajax/group_mgr.do?action=add&name=' + escape(name) + "&t=" + (new Date()).getTime(),
		function(result){ //result格式:(结果,id,name,visible,weight)
			//检查返回结果
			page.data.checkResult(result);
			var a = my.common.split(result, ',');
			if(a[0] == '1'){
				var group = new my.type.Group();
				group.id = a[1];
				group.name = a[2];
				group.visible = 'true';
				group.weight = a[4];
				my.groups.add(group.id, group);
				callback_success(group);
			}
		}
	);
}

//点击取消
page.groupManager.onAddCancelClick = function(){
	var pageGroup = $('#page_group');
	var ulGroupAdd = pageGroup.find("ul[mytype='groupAdd']");
	var button = pageGroup.find("a[mytype='butAddGroup']");
	button.attr('showed', 'false');//取消编辑状态
	ulGroupAdd.hide();
}

//重命名
page.groupManager.onRenameClick = function(groupid){
	var group = my.groups.get(groupid);
	
	var pageGroup = $('#page_group');
	
	var ulGroupList = pageGroup.find("ul[mytype='groupList']");
	var ulGroupEdit = pageGroup.find("ul[mytype='groupEdit'][groupid='0']").clone();
	var ulGroupAdd = pageGroup.find("ul[mytype='groupAdd']");
	var ulGroupBottom = pageGroup.find("ul[mytype='groupBottom']");
	
	var liGroup = ulGroupList.find("li[mytype='groupItem'][groupid='"+groupid+"']");
	liGroup.after(ulGroupEdit);//插入编辑行
	ulGroupEdit.show();
	liGroup.hide();//隐藏自己
	
	ulGroupEdit.attr('groupid', groupid);
	
	var input = ulGroupEdit.find("input[name='txtName']");
	var save = ulGroupEdit.find("input[name='butSave']");
	var cancel = ulGroupEdit.find("input[name='butCancel']");

	input.attr('value', group.name);
	
	save.attr('groupid', groupid);
	cancel.attr('groupid', groupid);
	//只绑定一次事件
	if(ulGroupEdit.attr('bined') != 'true'){
		ulGroupEdit.attr('bined', 'true');
		save[0].onclick = function(){
			page.groupManager.onRenameSaveClick($(this).attr('groupid'));
		};
		cancel[0].onclick = function(){
			page.groupManager.onRenameCancelClick($(this).attr('groupid'));
		};
	}
}

//点击保存重命名
page.groupManager.onRenameSaveClick = function(groupid){
	var pageGroup = $('#page_group');
	var ulGroupEdit = pageGroup.find("ul[mytype='groupEdit'][groupid='"+groupid+"']");
	var input = ulGroupEdit.find("input[name='txtName']");
	if(input.attr('value') == undefined){
		alert('请输入组合名称');
	}else{
		page.groupManager.rename(groupid, input.attr('value'));
	}
}

//重命名完成
page.groupManager.onRenameFinish = function(groupid, newname){
	var group = my.groups.get(groupid);
	group.name = newname;
				
	var pageGroup = $('#page_group');
	var ulGroupList = pageGroup.find("ul[mytype='groupList']");
	var ulGroupEdit = pageGroup.find("ul[mytype='groupEdit'][groupid='"+groupid+"']");
	var liGroup = ulGroupList.find("li[mytype='groupItem'][groupid='"+groupid+"']");
	liGroup.find('.c1 > span').text(newname);
	ulGroupEdit.remove();
	liGroup.show();
	//快速交易的组合列表
	page.quickTrade.refreshGroupList();
}

//发出啊重命名请求
page.groupManager.rename = function(groupid, newname, callback_success, callback_fail){
	//制造烟幕: 先改变页面再发请求
	page.groupManager.onRenameFinish(groupid, newname);
	
	$.get('ajax/group_mgr.do?action=rename&gid=' + groupid + '&newname=' + escape(newname) + "&t=" + (new Date()).getTime(),
		function(result){ //result格式：(结果,id,name)
			//检查返回结果
			page.data.checkResult(result);
			var a = my.common.split(result, ',');
			if(a[0] == '1'){
				var group = my.groups.get(a[1]);
				group.name = a[2];
				if(callback_success) callback_success(group.id, group.name);
			}
		}
	);
}

//取消重命名
page.groupManager.onRenameCancelClick = function(groupid){
	var pageGroup = $('#page_group');
	var ulGroupList = pageGroup.find("ul[mytype='groupList']");
	var ulGroupEdit = pageGroup.find("ul[mytype='groupEdit'][groupid='"+groupid+"']");
	var liGroup = ulGroupList.find("li[mytype='groupItem'][groupid='"+groupid+"']");
	ulGroupEdit.remove();
	liGroup.show();
}

//删除组合
page.groupManager.onDeleteClick = function(groupid){
	var pageGroup = $('#page_group');
	var ulGroupList = pageGroup.find("ul[mytype='groupList']");
	
	var liGroup = ulGroupList.find("li[mytype='groupItem'][groupid='" + groupid + "']");
	//保留一个组合
	if(my.groups.getLength()==1){
		alert("无法删除，至少要保留一个组合.");
		return;
	}
	var group = my.groups.get(groupid);
	var result = confirm('你真的要删除 '+group.name+'组合 吗？该组合下的所有股票将会被一起删除！');
	if(result == true){
		page.status.groupViewChanged = true;
		page.groupManager.onDeleteFinish(groupid);//先刷新再请求
		page.groupManager.deleteGroup(groupid, function(groupid){});
	}
}

//删除完成后的处理
page.groupManager.onDeleteFinish = function(groupid){
	my.groups.remove(groupid);
	page.groupManager.reCreate();
	//快速交易的组合列表
	page.quickTrade.refreshGroupList();
}

//删除
page.groupManager.deleteGroup = function(groupid, callback_success, callback_fail){
	//制造烟幕: 立刻显示删除效果 
	page.groupManager.onDeleteFinish(groupid);
	$.get('ajax/group_mgr.do?action=delete&gid=' + groupid  + "&t=" + (new Date()).getTime(),
		function(result){ //result格式:1表示成功， 0表示失败
			//检查返回结果
			page.data.checkResult(result);
			if(result == '1'){
				if(callback_success) callback_success(groupid);
			}
		}
	);
}

page.groupManager.onSelectClick = function(groupId){
	
}

//点击组合上移
page.groupManager.onMoveUpClick = function(groupid){
	var index = my.groups.indexOf(groupid);
	if(index == -1){
		alert('找不到该分组信息:<');
		return;
	}
	if(index == 0){
		alert('已经移到顶部了:<');
		return;
	}
	my.groups.move(groupid, index-1);
	page.status.groupViewChanged = true;
	page.groupManager.reCreate();
}

//点击组合下移
page.groupManager.onMoveDownClick = function(groupid){
	var index = my.groups.indexOf(groupid);
	if(index == -1){
		alert('找不到该分组信息:<');
		return;
	}
	if(index == my.groups.getLength()-1){
		alert('已经移到底部了:<');
		return;
	}
	//alert(my.ui.group.move.getGroupViewList());
	my.groups.move(groupid, index+1);
	page.status.groupViewChanged = true;
	page.groupManager.reCreate();
}

//构造组合列表
page.groupManager.create = function(){
	var pageGroup = $('#page_group');
	if(pageGroup.attr('created') == 'true'){
		return;
	}
	pageGroup.attr('created','true');//标记为已创建
	
	var groupMgr = $('#model_group .leftList8').clone();
	var ulGroupList = groupMgr.find("ul[mytype='groupList']");
	var liGroupModel = ulGroupList.find("li[mytype='groupItem']");
	var ulGroupEdit = groupMgr.find("ul[mytype='groupEdit']");
	var ulGroupAdd = groupMgr.find("ul[mytype='groupAdd']");
	var ulGroupBottom = groupMgr.find("ul[mytype='groupBottom']");
	
	liGroupModel.remove();
	ulGroupEdit.hide();
	ulGroupAdd.hide();
	
	//绑定文本框事件
	var addInput = ulGroupAdd.find("input[name='txtName']");
	addInput[0].onfocus = function(){
			if($(this).attr('value') == '请输入新组合的名字'){
				$(this).attr('value', '');
			}
		}
	pageGroup.prepend(groupMgr);
	for(var i=0; i<my.groups.getLength(); i++){
		var group = my.groups.getByIndex(i);
		var liGroup = liGroupModel.clone();
		ulGroupList.append(liGroup);
		if(i % 2 == 1){
			liGroup.removeClass('bg1');
		}else{
			liGroup.addClass('bg1');
		}
		liGroup.attr('id',"groupManager_group" + group.id);
		liGroup.attr('groupid',group.id);
		var check = liGroup.find("input[mytype='input_select']");
		check.attr('groupid',group.id);
		liGroup.find("input[mytype='input_select']")[0].checked = (group.visible == 'false' ? false : true);
		//点击组合前的checkbox
		check[0].onclick = function(){
				var group = my.groups.get($(this).attr('groupid'));
				group.visible = this.checked.toString();
				//标记改变过可见性
				page.status.groupViewChanged = true;
			};
		liGroup.find("span[mytype='info_group_name']").text(group.name);
		//重命名
		var rename = liGroup.find("a[mytype='rename']");
		rename.attr('groupid',group.id);
		rename[0].onclick = function(){
			page.groupManager.onRenameClick($(this).attr('groupid'));
			page.status.groupViewChanged = true;
		};
		
		//删除
		var del = liGroup.find("a[mytype='delete']");
		del.attr('groupid',group.id);
		del[0].onclick = function(){
			page.groupManager.onDeleteClick($(this).attr('groupid'));
		};
		//上移下移
		var moveUp = liGroup.find("a[mytype='moveUp']");
		var moveDown = liGroup.find("a[mytype='moveDown']");
		moveUp.attr('href', "javascript:page.groupManager.onMoveUpClick('"+group.id+"')");
		moveDown.attr('href', "javascript:page.groupManager.onMoveDownClick('"+group.id+"')");
	}

	
	var done = ulGroupBottom.find("input[name='butDone']");//done按钮

}

//添加删除后重新显示组合管理
page.groupManager.reCreate = function(){
	var pageGroup = $('#page_group');
	pageGroup.attr('created','false');//取消已创建标记
	pageGroup.empty();
	page.groupManager.create();
}



