var SORTBYPRICEUP_ACT 	= "/images/sortby_price_up_act.gif";
var SORTBYPRICEUP_DIS 	= "/images/sortby_price_up_dis.gif";
var SORTBYPRICEDOWN_ACT = "/images/sortby_price_down_act.gif";
var SORTBYPRICEDOWN_DIS = "/images/sortby_price_down_dis.gif";

var sortImages = new Array(SORTBYPRICEUP_ACT,SORTBYPRICEUP_DIS,SORTBYPRICEDOWN_ACT,SORTBYPRICEDOWN_DIS);

function convert(sValue, sDataType) {
	switch(sDataType) {
		case "int":
        	return parseInt(sValue);
        case "float":
            return parseFloat(sValue);
        case "date":
            return new Date(Date.parse(sValue));
		case "lifttime":
			return parseInt(sValue.replace(":",""));
        default:
            return sValue.toString();
	}
}

//图片转换公共函数
function TraverseImages(name,iCol){
	var imagesObj = document.getElementsByName(name);
	for (var i=0; i<imagesObj.length ;i++){
		for (var j=0; j<sortImages.length; j++){
			if(imagesObj[i].src.indexOf(sortImages[j])>-1){
				if(i==iCol&&j%2==0){break;}//处理点击的,red
				else if(i==iCol&&j%2!=0){imagesObj[i].setAttribute("src",sortImages[j-1]);break;}
				else if(i!=iCol&&j%2==0){imagesObj[i].setAttribute("src",sortImages[j+1]);break;}//red
				else{break;}
			}
		}
	}
}

//以下是表格排序的3个函数
function generateCompareTRs(sDataType,value) {
	return  function compareTRs(oTR1, oTR2) {
    	var vValue1 = convert(oTR1.cells[0].getAttribute(value), sDataType);
		var vValue2 = convert(oTR2.cells[0].getAttribute(value), sDataType);
        if (vValue1 < vValue2) {
        	return -1;
        } else if (vValue1 > vValue2) {
            return 1;
        } else {
            return 0;
        }
	};
}

function generateCompareTRs_DESC(sDataType,value) {
	return  function compareTRs(oTR1, oTR2) {
    	var vValue1 = convert(oTR1.cells[0].getAttribute(value), sDataType);
		var vValue2 = convert(oTR2.cells[0].getAttribute(value), sDataType);
        if (vValue1 < vValue2) {
        	return 1;
        } else if (vValue1 > vValue2) {
            return -1;
        } else {
            return 0;
        }
	};
}
           
function sortTable(sTableID,iCol,sDataType,value,imgName) {
	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];
    }
    if(iCol%2==0){
		aTRs.sort(generateCompareTRs(sDataType,value));
	}else{
		aTRs.sort(generateCompareTRs_DESC(sDataType,value));
	}
	TraverseImages(imgName,iCol);
    var oFragment = document.createDocumentFragment();
    for (var i=0; i < aTRs.length; i++) {
    	oFragment.appendChild(aTRs[i]);
    }
       
    oTBody.appendChild(oFragment);
    oTable.sortCol = iCol;
}

//以下是div排序的三个函数
function generateCompareDIVs(sDataType,value) {
	return function compareDIVs(oDIV1, oDIV2) {
    	var vValue1 = convert(oDIV1.getAttribute(value), sDataType);
		var vValue2 = convert(oDIV2.getAttribute(value), sDataType);
		if (vValue1 < vValue2) {
        	return -1;
        } else if (vValue1 > vValue2) {
            return 1;
        } else {
            return 0;
        }
	};
}

function generateCompareDIVs_DESC(sDataType,value) {
	return function compareDIVs(oDIV1, oDIV2) {
    	var vValue1 = convert(oDIV1.getAttribute(value), sDataType);
		var vValue2 = convert(oDIV2.getAttribute(value), sDataType);
		if (vValue1 < vValue2) {
        	return 1;
        } else if (vValue1 > vValue2) {
            return -1;
        } else {
            return 0;
        }
	};
}

function sortDIV(divName,iCol,sDataType,value,imgName,priceDiv){
	var odivs = document.getElementsByName(divName);
	if(priceDiv == null){
		priceDiv = "priceDIVs";	
	}
    var oTDivs = document.getElementById(priceDiv);
    var aDIVs = new Array;
    var length = odivs.length;
    for (var i=0; i < length; i++) {
    	aDIVs[i] = odivs[i];
    }
	if(iCol%2==0){
		aDIVs.sort(generateCompareDIVs(sDataType,value));
	}else{
    	aDIVs.sort(generateCompareDIVs_DESC(sDataType,value));
	}
	TraverseImages(imgName,iCol);
    var oFragment = document.createDocumentFragment();
    for (var i=0; i < length; i++) {
    	oFragment.appendChild(aDIVs[i]);
    }
    oTDivs.appendChild(oFragment);
}

