var sortCol=-1;
var sortTitle="";
var sortImgPath="";
var sortSeq = false;
var desc;

function getSortColumn(trObj){
	for (var i=0;i<trObj.cells.length;i++){
		var imgOjb = trObj.cells[i].lastChild;
		if (imgOjb && (imgOjb.tagName=="IMG" || imgOjb.tagName=="img")){
			if (imgOjb.src.indexOf("droparr1.gif")>0 || imgOjb.src.indexOf("risearr1.gif")>0)
				return i;
		}
	}
	return -1;
}

function sortBy(obj,col,type,classname){
	var sortPrompt = "排序中，请您稍候...";
	showBestrowDiv(sortPrompt);
	loadingPercent = "0%";
	//alert (loadingPercent);
	loadInterval = window.setInterval(showLoadingPercent,100);
	sortCol = getSortColumn(obj.parentNode);
	/*
	if (sortCol==col || sortCol==-1){
		if (desc)
			desc = false;
		else
			desc = true;	
	}else{
		desc = true;
	}
	*/
	desc = true;
	//var imgOjb = obj.lastChild;
	var imgOjb = getSortImgObj(obj);
	if (imgOjb && (imgOjb.tagName=="IMG" || imgOjb.tagName=="img")){
		if (imgOjb.src.indexOf("droparr1.gif")>0)
			desc = false;
	}
	
	if (typeof(type) == "undefined")
		type = 0;
	//if (typeof(classname) == "undefined")
	//	classname = "";

	sortCol = col;
	//sortField=field;
	var t1 = new Date();
	//sortFunds(field);
	row_array = [];
	//alert (obj.nodeName);
	//alert (obj.parentNode.nodeName);
	
	var sortTb = obj.parentNode;
	while(sortTb.tagName.toLowerCase()!="table"){
		sortTb = sortTb.parentNode;
	}
	sortTb = sortTb.tBodies[sortTb.tBodies.length-1];

	//alert ("tbody rows:=" + sortTb.rows.length);
	for (var j=0; j<sortTb.rows.length; j++) {
			//alert ("sortTb.rows["+j+"].cells["+col+"]:" + sortTb.rows[j].cells[col].innerHTML);
		var cell = sortTb.rows[j].cells[col];
		if (cell.firstChild && cell.firstChild.innerHTML){
			cell = cell.firstChild;
		}
		loadingPercent = ((j+1)*50/sortTb.rows.length).toFixed(0) + "%";
    	row_array[row_array.length] = [cell.innerHTML, sortTb.rows[j]];
	    	
	}
	if (type==1)
		row_array.sort(sort_string);
	else
		row_array.sort(sort_numeric);
		
	for (var j=0; j<sortTb.rows.length; j++) {
	    //row_array[row_array.length] = [sortTb.rows[j].cells[col], rows[j]];
	    var row = row_array[sortTb.rows.length-1-j][1];
	    if (sortSeq){
	    	row.cells[0].innerHTML=j+1;
	    }
	    sortRowHook(row,j);
	    if (typeof(classname) != "undefined"){
		    if (j%2==0){
		    	row.className=classname;
		    }else{
		    	row.className="";
		    }
	    }
	    loadingPercent = (50+(j+1)*50/sortTb.rows.length).toFixed(0) + "%";
	    sortTb.appendChild(row);
	    //row_array[sortTb.rows.length-1-j][1].cells[0].innerHTML=j+1;
	    //sortTb.appendChild(row_array[sortTb.rows.length-1-j][1]);
	}
	delete row_array;
	var t2 = new Date();
	sortImg1(obj);
	//alert ("排序时间2:" + (t2.valueOf() - t1.valueOf()));
	hideBestrowDiv();
}

function sortRowHook(row,sortIdx){

}

function sortImg1(sortColObj){
	var headObj = sortColObj.parentNode.parentNode;
	for (var j=0;j<headObj.rows.length;j++){
		var trObj = headObj.rows[j];
		for (var i=0;i<trObj.cells.length;i++){
			var imgOjb = getSortImgObj(trObj.cells[i]);
			//if (imgOjb && (imgOjb.tagName=="IMG" || imgOjb.tagName=="img")){
			if (imgOjb){
				var imgPath = getImagePath(imgOjb);
				if (trObj.cells[i]==sortColObj){
					if (desc){
						imgOjb.src =  imgPath + "droparr1.gif";
					}else{
						imgOjb.src = imgPath + "risearr1.gif";
					}
				}else{
					imgOjb.src = imgPath + "taxis.gif";
				}
			}
		}
	}
}

function getSortImgObj(cell){
	var imgs = cell.getElementsByTagName("img");
	if (imgs && imgs.length>0){
		return imgs[0];
	}
}

function getImagePath(imgOjb){
	if (sortImgPath==""){
		var path = imgOjb.src;
		var idx = path.lastIndexOf("/");
		path = path.substring(0, idx+1);
		sortImgPath = path;
	}else{
		path = sortImgPath;
	}
	return path;
}

function sortTable(classname,tbid,col){
	if (sortCol==col){
		if (desc) 
			desc=false;
		else
			desc=true;	
	}else{
		desc = true;
	}
	sortCol = col;
	var tb = document.getElementById(tbid);
	row_array = [];
	for (var j=0; j<tb.rows.length; j++) {
	    row_array[row_array.length] = [tb.rows[j].cells[col].innerHTML, tb.rows[j]];
	}
	row_array.sort(sort_numeric);
	for (var j=0; j<tb.rows.length; j++) {
	    //row_array[row_array.length] = [tb.rows[j].cells[col], rows[j]];
	    //row_array[tb.rows.length-1-j][1].cells[0].innerHTML=j+1;
	    var row = row_array[tb.rows.length-1-j][1];
	    if (j%2==0){
	    	row.className=classname;
	    }else{
	    	row.className="";
	    }
	    tb.appendChild(row);
	}
	sortImg(tb.parentNode.rows[0],col);
	//delete row_array;
	
}

function sortImg(trObj,colIndex){
	//var trObj = sortColObj.parentNode;
	var sortColObj;
	for (var i=0;i<trObj.cells.length;i++){
		var imgOjb = trObj.cells[i].firstChild;
		if (imgOjb && (imgOjb.tagName=="IMG" || imgOjb.tagName=="img")){
			trObj.cells[i].removeChild(imgOjb);
		}
		if (colIndex==i+1){
			sortColObj=trObj.cells[i]
		}
	}
	var tdHTML = sortColObj.innerHTML;
	if (desc){
		tdHTML = "<img src=\"/images/droparr.gif\">" + tdHTML;
	}else{
		tdHTML = "<img src=\"/images/risearr.gif\">" + tdHTML;
	}
	sortColObj.innerHTML = tdHTML;
}



function sort_numeric(a,b) {
    aa = parseFloat(a[0].replace(/[^0-9.-]/g,''));
    if (isNaN(aa)) return -1;
    bb = parseFloat(b[0].replace(/[^0-9.-]/g,'')); 
    if (isNaN(bb)) return 1;
    if (desc)
    	return aa-bb;
    else
    	return bb-aa;	
}

function sort_string(a,b) {
	if (a=="" || a=="&nbsp;" || a=="-")
		return -1;
	if (b=="" || b=="&nbsp;" || b=="-")
		return -1;	
	if (desc)
	    return a[0].localeCompare(b[0]);
	else
		return b[0].localeCompare(a[0])
}

/* 排序效果 */
//document.writeln("<div id=\"bestrowDiv\" class='undis'  style='position:absolute;'></div>");
//document.writeln("<div id=\"loadingArea1\" class='undis'></div>")

var loadingArea1;
var loadingPercent;
var loadInterval;
function showBestrowDiv(prompt){
	//loadingArea1 = ById("loadingArea1");
	//loadingArea1.innerHTML =prompt;
	//var bodySize = getBodySize();
	//ById("bestrowDiv").style.width=bodySize[0] + 'px';
	//ById("bestrowDiv").style.height=bodySize[1] + 'px';
	//ById("zIframe").style.width=bodySize[0] + 'px';
	//ById("zIframe").style.height=bodySize[1] + 'px';	
	//ById("bestrowDiv").className="dis";
	//loadingArea1.className="loadingTaxis";
	//var accessionFundTop=loadingArea1.style.top=(document.documentElement.scrollTop+(document.documentElement.clientHeight-ById("loadingArea1").offsetHeight)/2)+"px";
	//var accessionFundLeft=loadingArea1.style.left=(document.documentElement.scrollLeft+(document.documentElement.clientWidth-ById("loadingArea1").offsetWidth)/2)+"px";
	//alert (prompt);
	//trace(prompt);
	var aa = prompt;
}

function setBestrowPrompt(prompt){
	//ById("loadingArea1").innerHTML =prompt;
	//loadingArea1.innerHTML =prompt;
}

function showLoadingPercent(){
	//loadingArea1.innerHTML =loadingPercent;
}

function hideBestrowDiv(){
	if (loadInterval){
		clearInterval(loadInterval);
	}
	//ById("bestrowDiv").className="undis";
	//ById("loadingArea1").className="undis";
}