/**
 * 游戏管理左边的菜单栏
 */
$.registerNameSpace("cga.apps.index.gameBar");
$.cga.apps.index.gameBar = {
		//单个元素上下移动
	moveElement:function(index,cursor){
			
		var new_index = parseInt(index + cursor);
		var gid = $(".bar_menu ul li.game[index="+new_index+"]").attr("gid");
		var atr=$("i[name='clock'][gid='"+gid+"']").attr('attr');
		if(parseInt(atr)==0){
			return false;
		}
		if(new_index>0&&new_index<$(".bar_menu ul li.game").length+1){
			
			$(".bar_menu ul li.game[index="+index+"]").attr("index",0);
			$(".bar_menu ul li.game[index="+new_index+"]").attr("index",index);
			$(".bar_menu ul li.game[index=0]").attr("index",new_index);
		
			this.sequenceGameHtml();
		}
	},
	//排序
	sortIndex:function(index){
		index.sort(function(a,b){
			return parseInt(a)>parseInt(b)?1:-1;
		});
		return index;
	},
	sequenceGameHtml:function(){
		var arr = new  Array();
		$(".bar_menu ul li.game").each(function(){
			arr.push($(this).attr('index'));
		})
		arr = this.sortIndex(arr);
		var html = "";
		for(var i=0;i<arr.length;i++){
			html += this.getGameHtml(arr[i]);
		}
		$("li.game").remove();
		$(".bar_menu ul").append(html);
	},
	getGameHtml:function(index){
		var obj =$(".bar_menu ul li.game[index="+index+"]");
		obj.find(".idel").hide();
		var html='<li class="game" index="'+index+'" gid="'+obj.attr('gid')+'" state="'+obj.attr('state')+'" gtype="'+(obj.attr("gtype") ? obj.attr("gtype") : '')+'">'
		html+=obj.html();
		html+='</li>';
		return html;
	},
	//置顶
	setTop:function(index){
		index=parseInt(index);
		$(".bar_menu ul li.game[index="+index+"]").attr('index',0);
		if(index>1){
			$(".bar_menu ul li.game").each(function(){
				var i = $(this).attr("index");
				if(parseInt(i)<index){
					var n = parseInt(i)+1;
					$(this).attr("index",n);
				}
			});
		}
		$(".bar_menu ul li.game[index=0]").attr('index',1);
		//$(".bar_menu ul li.game[index="+index+"]").attr('index',1);
		this.sequenceGameHtml();
	},
	//编辑状态置顶
	setUnclockTop:function(index){
		index=parseInt(index);
		//alert('this'+index);
		$(".bar_menu ul li.game[index="+index+"]").attr('index',0);
		if(index>1){
			$(".bar_menu ul li.game[state='edit']").each(function(){
				var i = $(this).attr("index");
				if(parseInt(i)<index&&i>0){
					var n = parseInt(i)+1;
					$(this).attr("index",n);
				}
			});
		}
		var len = $(".bar_menu ul li.game[state='save']").length;
		var new_index = len+1;
		//alert(new_index);
		$(".bar_menu ul li.game[index=0]").attr('index',new_index);
		this.sequenceGameHtml();
	},
	//保存后解锁
	unclock:function(index){
		var len = $(".bar_menu ul li.game[state='save']").length;
		//alert(len);
		var new_index = len+1;
		if(new_index == index){
			this.sequenceGameHtml();
			return ;
		}
		$(".bar_menu ul li.game[index="+new_index+"]").attr('index',0);
		$(".bar_menu ul li.game[index="+index+"]").attr('index',new_index);
		//return;
		$(".bar_menu ul li.game[state='save']").each(function(){
			var i = $(this).attr("index");
			if(parseInt(i)>index){
				var n = parseInt(i)-1;
				$(this).attr("index",n);
			}
		});
		
		$(".bar_menu ul li.game[index=0]").attr('index',len);
		
		this.sequenceGameHtml();
	},
	delElement:function(index){
		var obj = $(".bar_menu ul li.game[index="+index+"]").remove();
		$(".bar_menu ul li.game[state='edit']").each(function(){
			var i = $(this).attr("index");
			if(parseInt(i)>index){
				var n = parseInt(i)-1;
				$(this).attr("index",n);
			}
		});
		this.sequenceGameHtml();
		initJsCrollPane();
	},
	//打开游戏加入左边的菜单
	openGameAddMenu:function(obj){
		var gtype = typeof obj.type == 'undefined' ? '' : obj.type;
		var index = $(".bar_menu ul li.game[gid="+obj.game_id+"][gtype="+gtype+"]").attr('index');

		if(parseInt(index)>0){
			var state = $(".bar_menu ul li.game[index="+index+"]").attr('state');
			state=='save'? this.setTop(index):this.setUnclockTop(index);
			this.submitUserGame(gtype);
		}else{
			
			var new_index =this.getNewGameListIndex();
			obj.index = new_index;
			var html = this.createGameListHtml(obj);

			if($(".bar_menu ul li.game").length == 0){
				$(".bar_menu ul").append(html);
			}else{
				$(".bar_menu ul li.game").eq(new_index-2).after(html);
			}
			//保存数据
			this.sequenceGameHtml();
			this.submitUserGame(gtype);
			
			initJsCrollPane();
		}
		
	},
	initGameHtml:function(){
		if($('#bar_button a').attr('abr')!='2'){
			$(".bar_menu ul li.game").each(function(){
				
				var gid = $(this).attr('gid');
				$('i[gid="'+gid+'"]').hide();
			});
		}
	},
	getGameListData:function(){
		var jsonStr='[';
		var type = '';
		$(".bar_menu ul li.game").each(function(){
			type = $(this).attr('gtype');
			jsonStr +="{\"game_id\":\""+$(this).attr('gid')+"\",";
			jsonStr +="\"state\":\""+$(this).attr('state')+"\",";
			if(type) jsonStr +="\"type\":\""+type+"\",";
			jsonStr +="\"index\":\""+$(this).attr('index')+"\"},";
		});
		jsonStr = jsonStr.substr(0,jsonStr.length-1);
		jsonStr +=']';
		this.initGameHtml();
		return  jsonStr;
	},
	submitUserGame:function(gtype){
		gtype = gtype ? gtype : 'war';
		var url = gtype == 'war' ? "/user/gameMenu" : '/app/appMenu';
		$.ajax({
			url:url,
			data:{'data':this.getGameListData(),'client':$("#client").val()},
			type:"post",
			//async:false,
			dataType:'json',
			success:function(ref){
				if(ref.code==-2){
					$.cga.client.client.openLoginWindow();
				}
			},
			error:function(e){
				//alert(e);
			}
		});
	},
	createGameListHtml:function(obj){
		var style = "";
		var type = obj.type ? obj.type : '';
		var url = {"war":"/game?game_id=", "pc":"/app?app_id="};
		url = type ? eval('url.'+type) : url.war;
		if(type) obj.game_name = $.cga.common.func.cutFontLength(obj.game_name,7,'');
		if($('#bar_button a').attr('abr')!='2'){
			style = 'style="display:none"';
		}
		var  html ="";
		html +='<li class="game" gid='+obj.game_id+' index="'+obj.index+'" state="edit" gtype="'+type+'">';
        html +='<a href="'+url+obj.game_id+'" class="g_menu" target="mainIframe" onfocus="this.blur()">';
        html += '<span class="avatar">';
        html += '<img src="'+obj.game_icon+'" width="48" height="48" alt="">';
        html += '<i class="ico iunlock" '+style+' name="clock" attr="1" gid='+obj.game_id+'></i>';
        html += '<i class="ico idel" style="display:none" gid='+obj.game_id+'></i>';
        html += '</span>';
        html += '<strong> '+obj.game_name+'</strong>';
        html += '<i class="ico iup" href="#" '+style+'  name="move" cursor="-1" gid='+obj.game_id+'></i>';
        html += '<i href="#" class="ico idown" '+style+' name="move" cursor="1" gid='+obj.game_id+'></i>';
        html += '</a></li>';
        return  html;		
	},
	getNewGameListIndex:function(){
		var save_index = $(".bar_menu ul li.game[state='save']").length;
		
		var new_index = save_index+1;
		
		var edit_index =$(".bar_menu ul li.game[state='edit']").length;
		if(edit_index>0){
			$(".bar_menu ul li.game[state='edit']").each(function(){
				var i = parseInt($(this).attr('index'))+1;
				$(this).attr('index',i);
			});
		}
		
		return  new_index;	
	}
	
}