// 重新显示验证码
function ReloadVCode() {
    var keyCode = Math.random();
    document.getElementById("validateCodeImage").src = "http://www.workabroad.com.cn:8080/ValidateCode?tag=" + keyCode;
}

/**
 * 全选CheckBox组件
 *
 * @param chknameStr 待选的checkbox组名称
 * @param chkallnameStr 全选按钮checkbox名称
 */
function ChkSelectAll(chknameStr, chkallnameStr) {
    var arrInput = document.getElementsByTagName("input");
    var arrCheckbox = [];
    var chkname = [];
    var chkallname = [];
    for (var j = 0; j < arrInput.length; j++) {
        if (arrInput[j].type.toLowerCase() == "checkbox") {
            arrCheckbox[arrCheckbox.length] = arrInput[j];
        }
    }
    for (j = 0; j < arrCheckbox.length; j++) {
        if (arrCheckbox[j].name == chknameStr) {
            chkname[chkname.length] = arrCheckbox[j];
        } else {
            if (arrCheckbox[j].name == chkallnameStr) {
                chkallname[chkallname.length] = arrCheckbox[j];
            }
        }
    }
    var length = chkname.length;
    if (chkallname.length == 1) {
        chkallname[0].checked = chkallname[0].checked | 0;
    } else {
        if (chkallname.length > 1 && ChkSelectAll.arguments[2]) {
            for (j = 0; j < chkallname.length; j++) {
                chkallname[j].checked = ChkSelectAll.arguments[2].checked | 0;
            }
        }
    }
    for (var i = 0; i < length; i++) {
        if (!chkname[i].disabled) {
            chkname[i].checked = chkallname[0].checked;
        }
    }
}
/**
 * 取消全选CheckBox组件
 *
 * @param chkallnameStr 全选按钮checkbox名称
 */
function unChkSelectAll(chkallnameStr) {
    var arrInput = document.getElementsByTagName("input");
    var arrCheckbox = [];
    var chkallname = [];
    for (var j = 0; j < arrInput.length; j++) {
        if (arrInput[j].type.toLowerCase() == "checkbox") {
            arrCheckbox[arrCheckbox.length] = arrInput[j];
        }
    }
    for (j = 0; j < arrCheckbox.length; j++) {
        if (arrCheckbox[j].name == chkallnameStr) {
            chkallname[chkallname.length] = arrCheckbox[j];
        }
    }
    for (j = 0; j < chkallname.length; j++) {
        if (chkallname[j].checked) {
            chkallname[j].checked = chkallname[j].checked & 0;
        }
    }
}

///////////--------------------------------------------------
/**
 * 获取表单对象ID
 * 
 * @param FormName 表单名称/ID
 * @param ObjName 表单对象名称/ID
 */
function GetObjID(FormName, ObjName) {
    var FormObj = eval("document." + FormName);
    for (var ObjID=0; ObjID < FormObj.elements.length; ObjID++) {
        if ( FormObj.elements[ObjID].name == ObjName ) {
            return(ObjID);
            break;
        }
    }
    return(-1);
}

/**
 * 表单下拉列表选项改变事件处理方法
 * 
 * @param FormName 表单名称/ID
 * @param ObjName 主下拉列表对象名称/ID
 * @param DesName 子下拉列表对象名称/ID
 * @param DetailOptionsName 下拉列表备选项字符串存放对象名称/ID
 * @param DefaultOptionName 默认选项名称 如：'----请选择----'
 * @param DefaultOptionValue 默认选项值 如：'-1'
 */
function ChangeOption(FormName, ObjName, DesName, DetailOptionsName, DefaultOptionName, DefaultOptionValue) {
    var FormObj = eval("document." + FormName);
    //GET OBJECT VALUE, ID OF DESTINATION OBJECT
    ObjID    = GetObjID(FormName, ObjName);
    DesObjID = GetObjID(FormName, DesName);
    if ( ObjID != -1 && DesObjID != -1 ) {
        CatValue = FormObj.elements[ObjID].value.substring(0, 2);
        if ( CatValue == "0" ) {
            FormObj.elements[DesObjID].length=0;
        } else { //PARSING
            FormObj.elements[DesObjID].length=0;
            // var tt = eval("document." + FormName + "." + DetailOptionsName).value;
            var tt = eval("document.getElementById('" + DetailOptionsName + "')").value;
            var SubCategory = tt.split(";");
            //GENERATE OPTIONS
            FormObj.elements[DesObjID].options[0] = new Option(DefaultOptionName, DefaultOptionValue);
            for (var i = 0,j = 1; i < SubCategory.length; i++ )
            {
                var pp = SubCategory[i].split(",");
                if (pp[0].substring(0,2) == CatValue && pp[0].substring(2,4) != "00") {
                    FormObj.elements[DesObjID].options[j] = new Option( pp[1], pp[0]);
                    j++;
                }
            }
        }
    }
}

/**
* 初始化下拉列表(解决struts2在进行类型转换出错后无法带回List中的值去填充下拉列表的问题)
*/
function InitSelectElement(FormName, ObjName, DetailOptionsName, DefaultOptionName, DefaultOptionValue){
	 var FormObj = eval("document." + FormName);
	 var tt = eval("document.getElementById('" + DetailOptionsName + "')").value;
     var SubCategory = tt.split(";");
     //GENERATE OPTIONS
     FormObj.elements[ObjName].options[0] = new Option(DefaultOptionName, DefaultOptionValue);
     for (var i = 0,j = 1; i < SubCategory.length; i++ )
     {
        var pp = SubCategory[i].split(",");
        FormObj.elements[ObjName].options[j] = new Option( pp[1], pp[0]);
        j++;
     }
}

///////////--------------------------------------------------

/**
 * 检查多选标签是否选择
 * 
 * @param FormName 表单名称/ID
 * @param CheckBoxName 多选CheckBox名称/ID
 * @param AlertStr 警告提示信息
 * @param ConfirmStr 确认提示信息
 * 
 * @return True/False
 */
function CheckSelected(FormName, CheckBoxName, AlertStr, ConfirmStr) {
    var FormObj = eval("document." + FormName + "." + CheckBoxName);
    var hasChecked = false;
    var select_length = FormObj.length;
    var VanID = "";
    if(select_length > 1) {
        for (var i = 0; i < select_length; i++) {
            if (FormObj[i].checked) {
                VanID = VanID + FormObj[i].value + ",";
                hasChecked = true;
            }
        }
        VanID=VanID.substr(0, VanID.length - 1);
    } else {
        if (FormObj.checked) {
            hasChecked = true;
            VanID = FormObj.value;
        }
    }
    if (!hasChecked) {
        alert(AlertStr);
        return false;
    } else if (window.confirm(ConfirmStr)) {
        return true;
    } else {
        return false;
    }
}

///////////--------------------------------------------------

/**
 * 移动Option从FromListObj到ToListObj
 * 
 * @param FromListObj 源List对象
 * @param ToListObj 目标List对象
 * @param IsSortItem 是否自动排序
 */
function MoveOptions(FromListObj, ToListObj, IsSortItem) {
    for(var i = 0; i < FromListObj.options.length; i++) {
        if(FromListObj.options[i].selected && FromListObj.options[i].value != "") {
            var newOption = new Option();
            newOption.value = FromListObj.options[i].value;
            newOption.text = FromListObj.options[i].text;
            ToListObj.options[ToListObj.options.length] = newOption;
            FromListObj.options[i].value = "";
            FromListObj.options[i].text = "";
        }
    }
    BumpUpOptions(FromListObj);
    if (IsSortItem) SortD(ToListObj);
}

/**
 * 
 */
function BumpUpOptions(ListObj)  {
    for (var i=0; i<ListObj.options.length; i++) {
        if (ListObj.options[i].value == "") {
            for(var j=i; j<ListObj.options.length-1; j++) {
                ListObj.options[j].value = ListObj.options[j+1].value;
                ListObj.options[j].text = ListObj.options[j+1].text;
            }
            var ln = i;
            break;
        }
    }
    if (ln < ListObj.options.length) {
        ListObj.options.length -= 1;
        BumpUpOptions(ListObj);
    }
}

function SortD(ListObj) {
    var temp_opts = new Array();
    var temp = new Object();
    for(var i = 0; i < ListObj.options.length; i++) {
        temp_opts[i] = ListObj.options[i];
    }
    for(var x=0; x<temp_opts.length-1; x++) {
        for(var y = (x + 1); y < temp_opts.length; y++) {
            if(temp_opts[x].text > temp_opts[y].text) {
                temp = temp_opts[x].text;
                temp_opts[x].text = temp_opts[y].text;
                temp_opts[y].text = temp;
                temp = temp_opts[x].value;
                temp_opts[x].value = temp_opts[y].value;
                temp_opts[y].value = temp;
            }
        }
    }
    for(var j = 0; j<ListObj.options.length; j++) {
        ListObj.options[j].value = temp_opts[j].value;
        ListObj.options[j].text = temp_opts[j].text;
    }
}

///////////--------------------------------------------------

function LT_Transfer( sourceID, destinationID, selectedOnly, add, remove, allowDuplicates) {
    var sourceList = document.getElementById(sourceID);
    var destinationList = document.getElementById(destinationID);
    var itemsForTransfer = new Array();
    var i;
    for(i = 0; i < sourceList.options.length; i++) {
        var option = sourceList.options[i];
        if(option.selected || !selectedOnly) {
            itemsForTransfer[itemsForTransfer.length] = new Option(option.text, option.value);
        }
    }
    if(remove){
        for(i = 0; i < sourceList.options.length; i++){
            var option = sourceList.options[i];
            if(option.selected || !selectedOnly){
                sourceList.options[i] = null;
                i--;
            }
        }
    } 
    for(i = 0; i < itemsForTransfer.length; i++){
        var option = itemsForTransfer[i];
        if(add && ( allowDuplicates || !LT_Contains( destinationList, option))){
            destinationList.options[destinationList.options.length] = option;
        }
    }
    //LT_StoreListState(sourceList);
    //LT_StoreListState(destinationList);
    /*var state = "";
    for(i = 0; i < destinationList.options.length; i++){
    	if (state != "") {
    		state += ", ";
    	}
        state += destinationList.options[i].value;
    }
    eval("document.getElementById('" + destinationList.id.substring(0, destinationList.id.length - 6) + "').value = state;");*/
}

/**
 * 列表元素位置上下移动
 */
function LT_Move(listID, moveUp){
    var list = document.getElementById(listID);
    if(!moveUp){
        for(i = list.options.length - 2; i >= 0; i--){
            if(list.options[i].selected && !list.options[i + 1].selected ){
                var option = list.options[i];
                list.options[i] = new Option(list.options[i + 1].text, list.options[i + 1].value);
                list.options[i + 1] = new Option(option.text, option.value);
                list.options[i + 1].selected = true;
            }
        }
    } else {
        for(i = 1; i < list.options.length; i++){
            if(list.options[i].selected && !list.options[i - 1].selected ){
                var option = list.options[i];
                list.options[i] = new Option(list.options[i - 1].text, list.options[i - 1].value);
                list.options[i - 1] = new Option(option.text, option.value);
                list.options[i - 1].selected = true;
            }
        }
    }
    //LT_StoreListState(list);
}

/**
 * 检查list中是否包含option
 */
function LT_Contains(list, option){
    for(var i = 0; i < list.options.length; i++){
        if (list.options[i].value == option.value) {
            return true;
        }
    }
    return false;
}

/**
 * 保存list列表的状态
 */
function LT_StoreListState(list){
    var i;
    var state = "1";
    for(i = 0; i < list.options.length; i++){
        state += "|" + list.options[i].text + "|" + list.options[i].value;
    }
    eval("document.forms[0]." + list.id + "_State.value = state");
}

///////////--------------------------------------------------

function SelectAll(ObjID){
    var list = document.getElementById(ObjID);
    for(var i = 0; i < list.length; i++){
        list.options[i].selected = true;
    }
}

function UnSelectAll(ObjID){
    var list = document.getElementById(ObjID);
    for(var i = 0; i < list.length; i++) {
        list.options[i].selected = false;
    }
}

///////////--------------------------------------------------

/**
 * 采用MD5的形式加密字符串
 */
function MD5(sMessage) {
	function RotateLeft(lValue, iShiftBits) {
		return (lValue << iShiftBits) | (lValue >>> (32 - iShiftBits));
	}
	function AddUnsigned(lX, lY) {
		var lX4, lY4, lX8, lY8, lResult;
		lX8 = (lX & 2147483648);
		lY8 = (lY & 2147483648);
		lX4 = (lX & 1073741824);
		lY4 = (lY & 1073741824);
		lResult = (lX & 1073741823) + (lY & 1073741823);
		if (lX4 & lY4) {
			return (lResult ^ 2147483648 ^ lX8 ^ lY8);
		}
		if (lX4 | lY4) {
			if (lResult & 1073741824) {
				return (lResult ^ 3221225472 ^ lX8 ^ lY8);
			} else {
				return (lResult ^ 1073741824 ^ lX8 ^ lY8);
			}
		} else {
			return (lResult ^ lX8 ^ lY8);
		}
	}
	function F(x, y, z) {
		return (x & y) | ((~x) & z);
	}
	function G(x, y, z) {
		return (x & z) | (y & (~z));
	}
	function H(x, y, z) {
		return (x ^ y ^ z);
	}
	function I(x, y, z) {
		return (y ^ (x | (~z)));
	}
	function FF(a, b, c, d, x, s, ac) {
		a = AddUnsigned(a, AddUnsigned(AddUnsigned(F(b, c, d), x), ac));
		return AddUnsigned(RotateLeft(a, s), b);
	}
	function GG(a, b, c, d, x, s, ac) {
		a = AddUnsigned(a, AddUnsigned(AddUnsigned(G(b, c, d), x), ac));
		return AddUnsigned(RotateLeft(a, s), b);
	}
	function HH(a, b, c, d, x, s, ac) {
		a = AddUnsigned(a, AddUnsigned(AddUnsigned(H(b, c, d), x), ac));
		return AddUnsigned(RotateLeft(a, s), b);
	}
	function II(a, b, c, d, x, s, ac) {
		a = AddUnsigned(a, AddUnsigned(AddUnsigned(I(b, c, d), x), ac));
		return AddUnsigned(RotateLeft(a, s), b);
	}
	function ConvertToWordArray(sMessage) {
		var lWordCount;
		var lMessageLength = sMessage.length;
		var lNumberOfWords_temp1 = lMessageLength + 8;
		var lNumberOfWords_temp2 = (lNumberOfWords_temp1 - (lNumberOfWords_temp1 % 64)) / 64;
		var lNumberOfWords = (lNumberOfWords_temp2 + 1) * 16;
		var lWordArray = Array(lNumberOfWords - 1);
		var lBytePosition = 0;
		var lByteCount = 0;
		while (lByteCount < lMessageLength) {
			lWordCount = (lByteCount - (lByteCount % 4)) / 4;
			lBytePosition = (lByteCount % 4) * 8;
			lWordArray[lWordCount] = (lWordArray[lWordCount] | (sMessage.charCodeAt(lByteCount) << lBytePosition));
			lByteCount++;
		}
		lWordCount = (lByteCount - (lByteCount % 4)) / 4;
		lBytePosition = (lByteCount % 4) * 8;
		lWordArray[lWordCount] = lWordArray[lWordCount] | (128 << lBytePosition);
		lWordArray[lNumberOfWords - 2] = lMessageLength << 3;
		lWordArray[lNumberOfWords - 1] = lMessageLength >>> 29;
		return lWordArray;
	}
	function WordToHex(lValue) {
		var WordToHexValue = "", WordToHexValue_temp = "", lByte, lCount;
		for (lCount = 0; lCount <= 3; lCount++) {
			lByte = (lValue >>> (lCount * 8)) & 255;
			WordToHexValue_temp = "0" + lByte.toString(16);
			WordToHexValue = WordToHexValue + WordToHexValue_temp.substr(WordToHexValue_temp.length - 2, 2);
		}
		return WordToHexValue;
	}
	var x = Array();
	var k, AA, BB, CC, DD, a, b, c, d;
	var S11 = 7, S12 = 12, S13 = 17, S14 = 22;
	var S21 = 5, S22 = 9, S23 = 14, S24 = 20;
	var S31 = 4, S32 = 11, S33 = 16, S34 = 23;
	var S41 = 6, S42 = 10, S43 = 15, S44 = 21;
    // Steps 1 and 2.  Append padding bits and length and convert to words
	x = ConvertToWordArray(sMessage);
    // Step 3.  Initialise
	a = 1732584193;
	b = 4023233417;
	c = 2562383102;
	d = 271733878;
    // Step 4.  Process the message in 16-word blocks
	for (k = 0; k < x.length; k += 16) {
		AA = a;
		BB = b;
		CC = c;
		DD = d;
		a = FF(a, b, c, d, x[k + 0], S11, 3614090360);
		d = FF(d, a, b, c, x[k + 1], S12, 3905402710);
		c = FF(c, d, a, b, x[k + 2], S13, 606105819);
		b = FF(b, c, d, a, x[k + 3], S14, 3250441966);
		a = FF(a, b, c, d, x[k + 4], S11, 4118548399);
		d = FF(d, a, b, c, x[k + 5], S12, 1200080426);
		c = FF(c, d, a, b, x[k + 6], S13, 2821735955);
		b = FF(b, c, d, a, x[k + 7], S14, 4249261313);
		a = FF(a, b, c, d, x[k + 8], S11, 1770035416);
		d = FF(d, a, b, c, x[k + 9], S12, 2336552879);
		c = FF(c, d, a, b, x[k + 10], S13, 4294925233);
		b = FF(b, c, d, a, x[k + 11], S14, 2304563134);
		a = FF(a, b, c, d, x[k + 12], S11, 1804603682);
		d = FF(d, a, b, c, x[k + 13], S12, 4254626195);
		c = FF(c, d, a, b, x[k + 14], S13, 2792965006);
		b = FF(b, c, d, a, x[k + 15], S14, 1236535329);
		a = GG(a, b, c, d, x[k + 1], S21, 4129170786);
		d = GG(d, a, b, c, x[k + 6], S22, 3225465664);
		c = GG(c, d, a, b, x[k + 11], S23, 643717713);
		b = GG(b, c, d, a, x[k + 0], S24, 3921069994);
		a = GG(a, b, c, d, x[k + 5], S21, 3593408605);
		d = GG(d, a, b, c, x[k + 10], S22, 38016083);
		c = GG(c, d, a, b, x[k + 15], S23, 3634488961);
		b = GG(b, c, d, a, x[k + 4], S24, 3889429448);
		a = GG(a, b, c, d, x[k + 9], S21, 568446438);
		d = GG(d, a, b, c, x[k + 14], S22, 3275163606);
		c = GG(c, d, a, b, x[k + 3], S23, 4107603335);
		b = GG(b, c, d, a, x[k + 8], S24, 1163531501);
		a = GG(a, b, c, d, x[k + 13], S21, 2850285829);
		d = GG(d, a, b, c, x[k + 2], S22, 4243563512);
		c = GG(c, d, a, b, x[k + 7], S23, 1735328473);
		b = GG(b, c, d, a, x[k + 12], S24, 2368359562);
		a = HH(a, b, c, d, x[k + 5], S31, 4294588738);
		d = HH(d, a, b, c, x[k + 8], S32, 2272392833);
		c = HH(c, d, a, b, x[k + 11], S33, 1839030562);
		b = HH(b, c, d, a, x[k + 14], S34, 4259657740);
		a = HH(a, b, c, d, x[k + 1], S31, 2763975236);
		d = HH(d, a, b, c, x[k + 4], S32, 1272893353);
		c = HH(c, d, a, b, x[k + 7], S33, 4139469664);
		b = HH(b, c, d, a, x[k + 10], S34, 3200236656);
		a = HH(a, b, c, d, x[k + 13], S31, 681279174);
		d = HH(d, a, b, c, x[k + 0], S32, 3936430074);
		c = HH(c, d, a, b, x[k + 3], S33, 3572445317);
		b = HH(b, c, d, a, x[k + 6], S34, 76029189);
		a = HH(a, b, c, d, x[k + 9], S31, 3654602809);
		d = HH(d, a, b, c, x[k + 12], S32, 3873151461);
		c = HH(c, d, a, b, x[k + 15], S33, 530742520);
		b = HH(b, c, d, a, x[k + 2], S34, 3299628645);
		a = II(a, b, c, d, x[k + 0], S41, 4096336452);
		d = II(d, a, b, c, x[k + 7], S42, 1126891415);
		c = II(c, d, a, b, x[k + 14], S43, 2878612391);
		b = II(b, c, d, a, x[k + 5], S44, 4237533241);
		a = II(a, b, c, d, x[k + 12], S41, 1700485571);
		d = II(d, a, b, c, x[k + 3], S42, 2399980690);
		c = II(c, d, a, b, x[k + 10], S43, 4293915773);
		b = II(b, c, d, a, x[k + 1], S44, 2240044497);
		a = II(a, b, c, d, x[k + 8], S41, 1873313359);
		d = II(d, a, b, c, x[k + 15], S42, 4264355552);
		c = II(c, d, a, b, x[k + 6], S43, 2734768916);
		b = II(b, c, d, a, x[k + 13], S44, 1309151649);
		a = II(a, b, c, d, x[k + 4], S41, 4149444226);
		d = II(d, a, b, c, x[k + 11], S42, 3174756917);
		c = II(c, d, a, b, x[k + 2], S43, 718787259);
		b = II(b, c, d, a, x[k + 9], S44, 3951481745);
		a = AddUnsigned(a, AA);
		b = AddUnsigned(b, BB);
		c = AddUnsigned(c, CC);
		d = AddUnsigned(d, DD);
	}
    // Step 5.  Output the 128 bit digest
	var temp = WordToHex(a) + WordToHex(b) + WordToHex(c) + WordToHex(d);
	return temp.toLowerCase();
}

/** 广告轮询 */
function switchAd(adpId, index) {
	var adp = document.getElementById(adpId);
	var ads = adp.getElementsByTagName("div");
	for(i = 0; i < ads.length; i++) {
		ads[i].style.display = "none";
	}
	if (ads.length > 0) {
		ads[index].style.display = "block";
	}
}
