// displaytagex.js

function DisplayTag() {}

DisplayTag.enableSelColumn = function(id){

	if(!$(id)){
		_alert("无效的表格ID");
		return;
	}

   	var panel = $(id).previousSibling;
   	var insPos = "beforeEnd";
   	if(!panel){
   		panel = $(id);
   		insPos = "beforeBegin";
   	}else if( panel.nodeName == "#text" ){
   		panel = panel.previousSibling;
   	}
   	var insHtml = "&nbsp;&nbsp;<a href='javascript:;' onclick=\"DisplayTag.showSelColumnWindow('" + id + "')\" >显示列</a>";
   	panel.insertAdjacentHTML(insPos, insHtml);
   	
   	DisplayTag.hideColumn( id );
   		
}

DisplayTag.selallbox_onclick = function (){
	var selboxes = document.getElementsByName("selbox");
	for(var i=0; i<selboxes.length; i++){
		selboxes[i].checked = $("selallbox").checked;
	}
}

DisplayTag.showSelColumnWindow = function(id){
   	var table = $(id);
   	var heads = new Array();
   	//alert( table.tHead.rows[0] );
   	var cells = table.tHead.rows[0].cells;
   	var headstr = DisplayTag.loadData( id );
   	
   	for(var i=0; i<cells.length;i++ ){
   		var col = new Object();
   		col.name = cells[i].innerText;
   		if( headstr.get(col.name)=="none" ){
   			col.status = "";
   		}else{
   			col.status = "checked";
   		}
   		heads.push( col );
   	}
   	
   	var winId = "selColumn";
   	
   	if($(winId)){
   		DestroyWindow(winId);
   	}
	
	var width = 200;
   	var height = 200;
   	var left = document.documentElement.scrollLeft;// + document.body.clientWidth - width -40;
	var top	 = document.documentElement.scrollTop;
	   	
   	var winStyle = "overflow-y: scroll; overflow-x: hidden; width: 230px; line-height: 20px; height: 250px";
   	var selall = "<input type='checkbox' id=selallbox name='selallbox' title='全选' onclick='DisplayTag.selallbox_onclick()'/><label for='selallbox'>全选</label>";
   	var body = "<div id='LrcShower" + winId + "' style=\""+winStyle + "\" ><table class=\"list\" style='width:200px'><thead><tr><th>待选列</th><th>" + selall + "</th></tr></thead><tbody id='selColumnTBody'></tbody></table></div>";
   	body = body + "<div align='center'>" + "<input type='checkbox' id='" + id + "_isclose' checked/><label for='isclose'>确定后关闭</label> " 
   			+ "<input type='button' value='确定' onclick=\"DisplayTag.onOk('" + id + "');\" /></div>";
   	
   	var win = new CoolWin(winId, width, height, left, top, "显示列", body );
   	
   	DWRUtil.removeAllRows("selColumnTBody");
   	var cellFuns = [ function(col){return col.name},
				function(col){ 
					var ctl = "<input type='checkbox' " + col.status + " name='selbox' />"
					return ctl; 
				}
				];
   	
   	DWRUtil.addRows("selColumnTBody", heads, cellFuns);
   	
} 

DisplayTag.onOk = function( id ){
	DisplayTag.saveData( id );
	DisplayTag.hideColumn( id );
	
	if( $(id+"_isclose").checked ){
		DestroyWindow("selColumn");
	}
	
}



DisplayTag.showAll = function( tabId ){

	var thcells = table.tHead.rows[0].cells;
	var tbRows = table.tBodies[0].rows;
	
	for(var i=0; i<thcells.length; i++){
		thcells[i].style.display = "";
		for(var j=0; j<tbRows.length; j++){
			tbRows[j].cells[i].style.display = "";
		}
	}

}


DisplayTag.hideColumn = function( tableid ){
	var table = $(tableid);
	
	var headMap = DisplayTag.loadData(tableid);
	
	var thcells = table.tHead.rows[0].cells;
	var tbRows = table.tBodies[0].rows;
	
	var thcells = table.tHead.rows[0].cells;
	var tbRows = table.tBodies[0].rows;
	for(var i=0; i<thcells.length; i++){
		var thcell = thcells[i];
		var cellname = thcell.innerText;
		var display = headMap.get(cellname)?headMap.get(cellname):"";
		thcell.style.display = display;
		for(var j=0; j<tbRows.length; j++){
			var cellcount = tbRows[j].cells.length;
			if( cellcount<=i )break;
			tbRows[j].cells[i].style.display = display;
		}
	}
}

DisplayTag.saveData = function( id ){
	
	var heads = new Array();
	var thcells = $(id).tHead.rows[0].cells;
	var selboxs = document.getElementsByName("selbox");
	
	var headStr = new String();
	for(var i=0; i<selboxs.length; i++){
		
		var key = thcells[i].innerText;
		if(selboxs[i].checked){
			headStr = headStr.put( key, "" , true);
		}else{
			headStr = headStr.put( key, "none", true );
		}
		
	}
	
	var data = headStr;
	
	with($(id)){
		style.behavior = "url(#default#userdata);";
		setAttribute(DisplayTag.getSaveKey( id ), data);
		try{
	        save("heads");
	    }catch(e){
	    	_alert("保存数据失败[" + e.message +"] !");
	    }
	}
	
}

DisplayTag.loadData = function( id ){
	
	var data;
	var table = $(id);
	with(table){
		style.behavior = "url(#default#userdata);";
		//try{
		load("heads");
		//}catch(e){}
		data = getAttribute( DisplayTag.getSaveKey( id ));
	}
	
	if(data){
		return data;
	}else{
		return new String();
	}
}

DisplayTag.getSaveKey = function( id ){
	var filename = getFileName();
	var key1 = filename.split("?")[0];
	return "data_" + key1 + "_" + id;
	
}
