﻿var ZP_JS_ADV = function() {
    return {
        pImg: 'http://myimg.zhaopin.com/images/blank.gif',
        separator: ',',
        objArr: new Array(),
        arrHotcity: ["530", "538", "763", "765", "531", "736", "854", "801", "600", "613", "599", "635", "702", "703", "653", "639", "636", "654", "551", "719", "749", "681", "682", "622", "565", "773"],
        arrProAbbr: { 549: '广西', 541: '安徽', 548: '广东', 546: '湖北', 556: '陕西', 552: '四川', 535: '辽宁', 536: '吉林', 539: '江苏', 544: '山东', 540: '浙江', 532: '河北', 533: '山西', 534: '内蒙', 542: '福建', 543: '江西', 545: '河南', 547: '湖南', 550: '海南', 553: '贵州', 554: '云南', 555: '西藏', 557: '甘肃', 558: '青海', 559: '宁夏', 560: '新疆', 537: '黑龙江', 561: '香港', 562: '澳门', 563: '台湾' },
        city: function(o, d, h, t, tit) {
            var s = this;
            ZP_JS_ADV.objArr.push(s);
            s.ClientID = o;
            s.data = d;
            s.$_data = new Array();
            s.$_data_topObj = new Array();
            s.$_data_flag = false;
            s.hidden = eval(h) ? eval(h) : null;
            s.nowID = s.hidden ? s.hidden.value : '';
            s.cacheID = s.nowID;
            s.trigger = eval(t) ? eval(t) : null;
            s.trigger_defaultV = (s.trigger && s.trigger.value) ? s.trigger.value : '选择/修改';
            s.title = tit;
            s.config = new Object();
            ZP_JS_ADV.extend(s, ZP_JS_ADV.commProperty);
            s.initrialize = function() {
                var s = this;
                if (!s.init_flag) {
                    ZP_JS_ADV.initDiv(s);
                    ZP_JS_ADV.createDiv(s.dDiv, '_zp_advJS_addedCity_' + s.ClientID, 'cityData_wrapper');
                    ZP_JS_ADV.createDiv(s.dDiv, '_zp_advJS_hotCity_' + s.ClientID, 'cityData_wrapper');
                    ZP_JS_ADV.createDiv(s.dDiv, '_zp_advJS_provinceCity_' + s.ClientID, 'cityData_wrapper');
                    ZP_JS_ADV.createDiv(s.dDiv, '_zp_advJS_specialCity_' + s.ClientID, 'cityData_wrapper special');

                    s.hDiv = document.getElementById('_zp_advJS_hotCity_' + s.ClientID);
                    s.pDiv = document.getElementById('_zp_advJS_provinceCity_' + s.ClientID);
                    s.sDiv = document.getElementById('_zp_advJS_specialCity_' + s.ClientID);
                    s.aDiv = document.getElementById('_zp_advJS_addedCity_' + s.ClientID);
                    s.init_flag = true;
                }
            };
            s.initrialize_sub = function() {
                var s = this;
                if (!s.init_flag_sub) {
                    ZP_JS_ADV.initDiv_sub(s);
                    s.init_flag_sub = true;
                }
            };
            s.arrHotcity = (typeof (ZP_JS_ADV.arrHotcity) != 'undefined' && ZP_JS_ADV.arrHotcity instanceof Array) ? ZP_JS_ADV.arrHotcity : new Array();
            s.arrOversea = new Array();
            s.initData = function() {
                var s = this;
                if (!s.$_data_flag) {
                    var i;
                    var temp = s.nowID;
                    if (temp != '') {
                        if (temp.charAt(0) != ZP_JS_ADV.separator) temp = ZP_JS_ADV.separator + temp;
                        if (temp.charAt(temp.length - 1) != ZP_JS_ADV.separator) temp = temp + ZP_JS_ADV.separator;
                    }
                    var tempArr = new Array();
                    for (i = 0; s.data[i]; i++) {
                        s.$_data[s.data[i][0]] = new ZP_JS_ADV.dataItem(s.ClientID, s.data[i][0], s.data[i][1], s.data[i][0], s.data[i][2], 'showChild', 'clickCheckbox', 'mouseoutLink');
                        if (s.$_data[s.$_data[s.data[i][0]].pId]) s.$_data[s.$_data[s.data[i][0]].pId].addChild(s.$_data[s.data[i][0]]);
                        else if (s.$_data[s.data[i][0]].pId == 0 && s.$_data[s.data[i][0]].id != 480 && s.$_data[s.data[i][0]].id != 489) tempArr.push(s.$_data[s.data[i][0]]);
                        else s.$_data_topObj.push(s.$_data[s.data[i][0]]);
                        if (s.data[i][1] == 0 && s.data[i][0] != 489 && s.data[i][0] != 480) s.arrOversea.push(s.data[i][0]);
                        if (temp != '') {
                            if (temp.indexOf(ZP_JS_ADV.separator + s.data[i][0] + ZP_JS_ADV.separator) > -1 || (s.$_data[s.data[i][0]].parent && s.$_data[s.data[i][0]].parent.checked)) s.$_data[s.data[i][0]].checked = true;
                            else s.$_data[s.data[i][0]].checked = false;
                        }
                    }
                    if (s.$_data[480]) {
                        for (i in tempArr) s.$_data[480].addChild(tempArr[i]);
                    }
                    s.$_data_flag = true;
                }
            };
            s.operLinkHTML = function() {
                var s = this;
                var str = ZP_JS_ADV.saveHTML(s) + '&nbsp;&nbsp;&nbsp;&nbsp;' + ZP_JS_ADV.closeDivHTML();
                return str;
            };
            /*s.operLinkHTML4button = function(){
            var s = this;
            var str = ZP_JS_ADV.saveHTML4button(s) + '&nbsp;&nbsp;&nbsp;&nbsp;' + ZP_JS_ADV.closeDivHTML4button();
            return str;
            };*/
            s.fnClickTrigger = function(e) {
                var s = this;
                s.initrialize();
                ZP_JS_ADV.setLoading(s, 1);
                switchVisibility(s.div.id, e, getXY(s.trigger).x, getXY(s.trigger).y + 22);
                s.nowID = s.hidden ? s.hidden.value : '';
                s.cacheID = s.nowID;
                s.hot = 'open';
                s.province = 'open';
                s.oversea = 'close';
                s.added = (s.cacheID == '' ? 'close' : 'open');
                s.initData();

                if (s.$_data_flag) {
                    var i, tempArr = [];
                    for (i in s.$_data) s.$_data[i].checked = false;
                    if (s.cacheID != '') tempArr = s.cacheID.split(ZP_JS_ADV.separator);
                    for (i = 0; tempArr[i]; i++) if (s.$_data[tempArr[i]]) s.$_data[tempArr[i]].setCheck(true);
                    s.dataHTML();
                    ZP_JS_ADV.setLoading(s, 0);
                    if (s.div.shim && s.div.shim.getStyle('visibility') == 'visible') s.div.shim.setStyle('visibility', 'visible');
                    if (getCurrentStyle(s.div, 'visibility') == 'visible') positionObject(s.div.id, getXY(s.trigger).x, getXY(s.trigger).y + 22);
                }
            };
            s.dataHTML = function() {
                var s = this;
                if (s.arrHotcity.length) s.hDiv.innerHTML = s.hotHTML();
                s.pDiv.innerHTML = s.provinceHTML(489);
                s.sDiv.innerHTML = '<div class="cityData_detail_china"><span class="' + (s.$_data[489].checked ? 'checkedItem' : 'uncheckedItem') + '">' + s.$_data[489].checkboxHTML() + '</span></div>' + '<div class="cityData_detail_oversea"><span class="' + (s.$_data[480].checked ? 'checkedItem' : 'uncheckedItem') + '">' + (s.$_data[480].haveChild ? s.$_data[480].linkHTML() : s.$_data[480].checkboxHTML()) + '</span></div>';
                s.aDiv.innerHTML = s.addedHTML();
            };
            s.hot = 'open';
            s.hotHTML = function() {
                var s = this;
                var arr = s.arrHotcity, str = '';
                if (arr.length) {
                    var i, indexCol, indexData = -1;
                    var col = s.config.hCol ? s.config.hCol : 2;
                    var tdWidth = parseInt(100 / col);
                    str += '<div id="_zp_advJS_hotCityTitle_' + s.ClientID + '" class="cityData_title"><span class="' + (s.hot == 'open' ? 'imgOpen' : 'imgClose') + '"' + ' onclick="ZP_JS_ADV.collapse(\'_zp_advJS_hotCityDetail_' + s.ClientID + '\',this,' + s.ClientID + ',\'hot\',' + (s.hot == 'open' ? '0' : '1') + ')">主要城市</span></div><div id="_zp_advJS_hotCityDetail_' + s.ClientID + '" class="cityData_detail" style="display:' + (s.hot == 'open' ? '' : 'none') + '"><table cellspacing="0" cellpadding="0" border="0">';
                    for (i = 0; arr[i]; i++) {
                        if (s.$_data[arr[i]]) {
                            s.$_data[arr[i]].type = 'hot';
                            indexData++;
                            indexCol = indexData % col;
                            if (indexCol == 0) str += '<tr>';
                            str += '<td class="' + (s.$_data[arr[i]].checked ? 'checkedItem' : 'uncheckedItem') + '" width="' + tdWidth + '%">' + (s.$_data[arr[i]].haveChild ? s.$_data[arr[i]].linkHTML() : s.$_data[arr[i]].checkboxHTML('_hot')) + '</td>';
                            if (indexCol == col - 1) str += '</tr>';
                        }
                    }
                    str += '</table></div>';
                }
                return str;
            };
            s.province = 'close';
            s.provinceHTML = function(pid) {
                var s = this;
                var pObj = s.$_data[pid];
                if (pObj && pObj.haveChild) {
                    var arr = pObj.child, str = '';
                    var strT = '<div id="_zp_advJS_provinceTitle_' + s.ClientID + '" class="cityData_title"><span class="' + (s.province == 'open' ? 'imgOpen' : 'imgClose') + '"' + ' onclick="ZP_JS_ADV.collapse(\'_zp_advJS_provinceDetail_' + s.ClientID + '\',this,' + s.ClientID + ',\'province\',' + (s.province == 'open' ? '0' : '1') + ')">其他省市</span></div>';
                    var i, indexCol, indexData = -1;
                    var col = s.config.pCol ? s.config.pCol : 2;
                    var tdTxtL = s.config.pTdTxtL ? s.config.pTdTxtL : s.config.tdTxtLength ? s.config.tdTxtLength : 5;
                    var tdW = parseInt(100 / col);
                    str += strT + '<div id="_zp_advJS_provinceDetail_' + s.ClientID + '" class="cityData_detail" style="display:' + (s.province == 'open' ? '' : 'none') + '"><table cellspacing="0" cellpadding="0" border="0">';
                    var tempArr = new Array();
                    for (i in arr) {
                        if (!arr[i].type || (arr[i].type && arr[i].type != 'hot')) {
                            //if(arr[i].haveChild){
                            indexData++;
                            indexCol = indexData % col;
                            if (indexCol == 0) str += '<tr>';

                            str += '<td class="' + (arr[i].checked ? 'checkedItem' : 'uncheckedItem') + '" width="' + tdW + '%">' + (arr[i].haveChild ? arr[i].linkHTML(null, 'arrProAbbr') : arr[i].checkboxHTML(null, 'arrProAbbr')) + '</td>';

                            if (indexCol == col - 1) str += '</tr>';
                            //}
                            //else{
                            //tempArr.push(arr[i]);
                            //continue;
                            //}
                        }
                    }
                    while (indexCol > -1 && indexCol < col - 1) {
                        indexCol++;
                        str += '<td width="' + tdW + '%"></td>';
                        if (indexCol == col - 1) str += '</tr>';
                    }
                    /*if(tempArr.length){
                    indexData = -1;
                    for(i in tempArr){
                    indexData++;
                    indexCol = indexData%col;
                    if(indexCol==0) str += '<tr>';
                    str += '<td class="'+(tempArr[i].checked?'checkedItem':'uncheckedItem')+'">'+(tempArr[i].haveChild?tempArr[i].linkHTML(null,'arrProAbbr'):tempArr[i].checkboxHTML(null,'arrProAbbr'))+'</td>';
                    if(indexCol==col-1) str += '</tr>';
                    }
                    }
                    while(indexCol>-1&&indexCol<col-1){
                    indexCol++;
                    str+='<td></td>';// width="'+tdW+'%"
                    if(indexCol==col-1) str += '</tr>';
                    }*/
                    str += '</table></div>';
                }
                return str;
            };
            s.subDataHTML = function(pid) {
                var s = this;
                var pObj = s.$_data[pid] ? s.$_data[pid] : null;
                var arr = (pObj != null ? pObj.child : s.$_data_topObj), str = '';
                var strT = '';
                var i, indexCol, indexData = -1;
                var col = s.config.col ? s.config.col : 5;
                str += strT + '<div id="_zp_advJS_subcityDetail_' + s.ClientID + '" class="cityData_detail"><table cellspacing="0" cellpadding="0" border="0">';
                str += '<tr><td colspan="' + col + '" class="' + (pObj.checked ? 'checkedItem' : 'uncheckedItem') + ' td4parent">' + pObj.checkboxHTML() + '</td>';
                var tempOther = null;
                for (i in arr) {
                    if (arr[i].id == 512) { tempOther = arr[i]; continue; }
                    indexData++;
                    indexCol = indexData % col;
                    if (indexCol == 0) str += '<tr>';
                    str += '<td class="' + (arr[i].checked ? 'checkedItem' : 'uncheckedItem') + '" nowrap>' + (arr[i].haveChild ? arr[i].linkHTML() : arr[i].checkboxHTML()) + '</td>';
                    if (indexCol == col - 1) str += '</tr>';
                }
                if (tempOther != null) {
                    str += (indexCol == col - 1 ? '<tr>' : '') + '<td class="' + (tempOther.checked ? 'checkedItem' : 'uncheckedItem') + '" nowrap>' + (tempOther.haveChild ? tempOther.linkHTML() : tempOther.checkboxHTML()) + '</td>';
                    if (++indexCol == col - 1) str += '</tr>';
                }
                str += '</table></div>';
                return str;
            };
            s.oversea = 'close';
            s.overseaHTML = function() {
                var s = this;
                var arr = s.arrOversea, str = '';
                if (arr.length) {
                    var i, indexCol, indexData = -1;
                    var col = s.config.oCol ? s.config.oCol : 2;
                    str += '<div id="_zp_advJS_overseaTitle_' + s.ClientID + '" class="cityData_title"><span class="' + (s.oversea == 'open' ? 'imgOpen' : 'imgClose') + ' substitute4a"' + ' onclick="ZP_JS_ADV.collapse(\'_zp_advJS_overseaDetail_' + s.ClientID + '\',this,' + s.ClientID + ',\'oversea\',' + (s.oversea == 'open' ? '0' : '1') + ')">国外</span></div><div id="_zp_advJS_overseaDetail_' + s.ClientID + '" class="cityData_detail" style="display:' + (s.oversea == 'open' ? '' : 'none') + '"><table cellspacing="0" cellpadding="0" border="0">';
                    var tempOther = null;
                    for (i = 0; arr[i]; i++) {
                        if (s.$_data[arr[i]]) {
                            if (s.$_data[arr[i]].id == 512) { tempOther = s.$_data[arr[i]]; continue; }
                            indexData++;
                            indexCol = indexData % col;
                            if (indexCol == 0) str += '<tr>';
                            str += '<td class="' + (s.$_data[arr[i]].checked ? 'checkedItem' : 'uncheckedItem') + '">' + (s.$_data[arr[i]].haveChild ? s.$_data[arr[i]].linkHTML() : s.$_data[arr[i]].checkboxHTML('_oversea')) + '</td>';
                            if (indexCol == col - 1) str += '</tr>';
                        }
                    }
                    if (tempOther != null) {
                        str += (indexCol == col - 1 ? '<tr>' : '') + '<td class="' + (tempOther.checked ? 'checkedItem' : 'uncheckedItem') + '">' + (tempOther.haveChild ? tempOther.linkHTML() : s.tempOther.checkboxHTML('_oversea')) + '</td>';
                        indexCol++;
                        if (indexCol == col - 1) str += '</tr>';
                    }
                    str += '</table></div>';
                }
                return str;
            };
            s.added = 'open';
            s.addedHTML = function() {
                var s = this;
                var str = '', arr = s.cacheID.split(ZP_JS_ADV.separator), dataObj;
                var i, indexCol = -1, indexData = -1;
                var col = s.config.aCol ? s.config.aCol : s.config.col ? s.config.col : 2;
                var tdTxtL = s.config.aTdTxtL ? s.config.aTdTxtL : s.config.tdTxtLength ? s.config.tdTxtLength : 5;
                var tdW = parseInt(100 / col);
                str += '<div id="_zp_advJS_added_' + s.ClientID + '" class="zp_advJS_added_wrapper"><div id="_zp_advJS_addedTitle_' + s.ClientID + '" class="cityData_title addedData_title">已添加的' + s.title + '&nbsp;&nbsp;&nbsp;&nbsp;<span class="substitute4a" onclick="' + s.ClientID + '.clearAdded()">清空所有选项</span></div><div id="_zp_advJS_addedDetail_' + s.ClientID + '" class="cityData_detail addedData_detail"><table cellspacing="0" cellpadding="0" border="0">';
                for (i = 0; arr[i]; i++) {
                    if (s.$_data[arr[i]]) {
                        dataObj = s.$_data[arr[i]];
                        indexData++;
                        indexCol = indexData % col;
                        if (indexCol == 0) str += '<tr>';
                        if (dataObj.text.length < tdTxtL) str += '<td width="' + tdW + '%">' + dataObj.checkboxHTML('_added') + '</td>';
                        else {
                            if (indexCol < col - 1) {
                                str += '<td width="' + tdW * 2 + '%" colspan="2">' + dataObj.checkboxHTML('_added') + '</td>';
                                indexCol++; indexData++;
                            }
                            else if (indexCol == col - 1) {
                                str += '<td width="' + tdW + '%"></td></tr>';
                                str += '<tr><td width="' + tdW * 2 + '%" colspan="2">' + dataObj.checkboxHTML('_added') + '</td>';
                                indexCol = 0; indexData = indexData + 2;
                            }
                        }
                        if (indexCol == col - 1) str += '</tr>';
                    }
                }
                while (indexCol < col - 1) {//indexCol>-1&&
                    indexCol++;
                    str += '<td width="' + tdW + '%"><img src="' + ZP_JS_ADV.pImg + '" width="0" height="22"></td>';
                    if (indexCol == col - 1) str += '</tr>';
                }
                str += '</table></div></div>';
                return str;
            };
            s.infoHTML = function() {
                var s = this;
                return '最多添加 <span class="alarm">' + (s.config.max ? s.config.max : '') + '</span> 项';
            };
            s.save = function() {
                var s = this;
                var flag = true, num = 0;
                var max = s.config.max ? s.config.max : 999999;
                if (s.cacheID != '') {
                    num = s.cacheID.split(ZP_JS_ADV.separator).length;
                    if (num > max) flag = false;
                }
                if (flag) {
                    s.nowID = s.cacheID;
                    s.hidden.value = s.nowID.charAt(s.nowID.length - 1) == ZP_JS_ADV.separator ? s.nowID.substring(0, s.nowID.length - 1) : s.nowID;
                    ZP_JS_ADV.closeDiv();
                    ZP_JS_ADV.showAddedItem(s);
                }
                else {
                    alert('最多可添加' + max + '个' + s.title + '，请删掉' + (num - max) + '个选项！');
                    return;
                }
            }
        },
        jobtype: function(o, d, h, t, tit) {
            var s = this;
            ZP_JS_ADV.objArr.push(s);
            s.ClientID = o;
            s.data = d;
            s.$_data = new Array();
            s.$_data_topObj = new Array();
            s.$_data_flag = false;
            s.hidden = eval(h) ? eval(h) : null;
            s.nowID = s.hidden ? s.hidden.value : '';
            s.cacheID = s.nowID;
            s.trigger = eval(t) ? eval(t) : null;
            s.trigger_defaultV = (s.trigger && s.trigger.value) ? s.trigger.value : '选择/修改';
            s.title = tit;
            s.config = new Object();
            ZP_JS_ADV.extend(s, ZP_JS_ADV.commProperty);
            s.initrialize = function() {
                var s = this;
                if (!s.init_flag) {
                    ZP_JS_ADV.initDiv(s);
                    ZP_JS_ADV.createDiv(s.dDiv, '_zp_advJS_addedJobtype_' + s.ClientID, 'jobtypeData_wrapper');
                    ZP_JS_ADV.createDiv(s.dDiv, '_zp_advJS_jobtype_' + s.ClientID, 'jobtypeData_wrapper');
                    s.jDiv = document.getElementById('_zp_advJS_jobtype_' + s.ClientID);
                    s.aDiv = document.getElementById('_zp_advJS_addedJobtype_' + s.ClientID);
                    s.init_flag = true;
                }
            };
            s.initrialize_sub = function() {
                var s = this;
                if (!s.init_flag_sub) {
                    ZP_JS_ADV.initDiv_sub(s);
                    s.init_flag_sub = true;
                }
            };
            s.initData = function() {
                var s = this;
                if (!s.$_data_flag) {
                    var i;
                    var temp = s.nowID;
                    if (temp != '') {
                        if (temp.charAt(0) != ZP_JS_ADV.separator) temp = ZP_JS_ADV.separator + temp;
                        if (temp.charAt(temp.length - 1) != ZP_JS_ADV.separator) temp = temp + ZP_JS_ADV.separator;
                    }
                    for (i = 0; s.data[i]; i++) {
                        s.$_data[s.data[i][0]] = new ZP_JS_ADV.dataItem(s.ClientID, s.data[i][0], s.data[i].length == 2 ? '0' : s.data[i][1], s.data[i][0], s.data[i].length == 2 ? s.data[i][1] : s.data[i][2], 'showChild', 'clickCheckbox', 'mouseoutLink');
                        if (s.$_data[s.$_data[s.data[i][0]].pId]) s.$_data[s.$_data[s.data[i][0]].pId].addChild(s.$_data[s.data[i][0]]);
                        else s.$_data_topObj.push(s.$_data[s.data[i][0]]);
                        if (temp != '') {
                            if (temp.indexOf(ZP_JS_ADV.separator + s.data[i][0] + ZP_JS_ADV.separator) > -1) s.$_data[s.data[i][0]].checked = true;
                            else s.$_data[s.data[i][0]].checked = false;
                        }
                    }
                    s.$_data_flag = true;
                }
            };
            s.operLinkHTML = function() {
                var s = this;
                var str = ZP_JS_ADV.saveHTML(s) + '&nbsp;&nbsp;&nbsp;&nbsp;' + ZP_JS_ADV.closeDivHTML();
                return str;
            };
            /*s.operLinkHTML4button = function(){
            var s = this;
            var str = ZP_JS_ADV.saveHTML4button(s) + '&nbsp;&nbsp;&nbsp;&nbsp;' + ZP_JS_ADV.closeDivHTML4button();
            return str;
            };*/
            s.fnClickTrigger = function(e) {
                var s = this;
                s.initrialize();
                ZP_JS_ADV.setLoading(s, 1);
                switchVisibility(s.div.id, e, getXY(s.trigger).x, getXY(s.trigger).y + 22);
                s.nowID = s.hidden ? s.hidden.value : '';
                s.cacheID = s.nowID;
                s.added = (s.cacheID == '' ? 'close' : 'open');
                s.initData();

                if (s.$_data_flag) {
                    var i, tempArr = [];
                    for (i in s.$_data) s.$_data[i].checked = false;
                    if (s.cacheID != '') tempArr = s.cacheID.split(ZP_JS_ADV.separator);
                    for (i = 0; tempArr[i]; i++) if (s.$_data[tempArr[i]]) s.$_data[tempArr[i]].setCheck(true);
                    s.dataHTML();
                    ZP_JS_ADV.setLoading(s, 0);
                    if (s.div.shim && s.div.shim.getStyle('visibility') == 'visible') s.div.shim.setStyle('visibility', 'visible');
                    if (getCurrentStyle(s.div, 'visibility') == 'visible') positionObject(s.div.id, getXY(s.trigger).x, getXY(s.trigger).y + 22);
                }
            };
            s.dataHTML = function() {
                var s = this;
                s.jDiv.innerHTML = s.jobtypeHTML(0);
                s.aDiv.innerHTML = s.addedHTML();
            };
            s.jobtypeHTML = function(pid) {
                var s = this;
                var pObj = s.$_data[pid] ? s.$_data[pid] : null;
                var arr = (pObj != null ? pObj.child : s.$_data_topObj), str = '';
                var strT = '';
                var i, indexCol, indexData = -1;
                var col = s.config.col ? s.config.col : 2;
                var tdWidth = parseInt(100 / col);
                str += strT + '<div id="_zp_advJS_jobtypeDetail_' + s.ClientID + '" class="jobtypeData_detail"><table cellspacing="0" cellpadding="0" border="0">';
                for (i in arr) {
                    indexData++;
                    indexCol = indexData % col;
                    if (indexCol == 0) str += '<tr>';
                    str += '<td class="' + (arr[i].checked ? 'checkedItem' : 'uncheckedItem') + '" width="' + tdWidth + '%">' + (arr[i].haveChild ? arr[i].linkHTML() : arr[i].checkboxHTML()) + '</td>';
                    if (indexCol == col - 1) str += '</tr>';
                }
                while (indexCol > -1 && indexCol < col - 1) {
                    indexCol++;
                    str += '<td width="' + tdWidth + '%"></td>';
                    if (indexCol == col - 1) str += '</tr>';
                }
                str += '</table></div>';
                return str;
            };
            s.subDataHTML = function(pid) {
                var s = this;
                var pObj = s.$_data[pid] ? s.$_data[pid] : null;
                var arr = (pObj != null ? pObj.child : s.$_data_topObj), str = '';
                var strT = '';
                var i, indexCol, indexData = -1;
                var col = s.config.col ? s.config.col : 2;
                str += strT + '<div id="_zp_advJS_subjobtypeDetail_' + s.ClientID + '" class="jobtypeData_detail"><table cellspacing="0" cellpadding="0" border="0">';
                str += '<tr><td colspan="' + col + '" class="' + (pObj.checked ? 'checkedItem' : 'uncheckedItem') + ' td4parent">' + pObj.checkboxHTML(null, null, '（全部）') + '</td>';
                for (i in arr) {
                    indexData++;
                    indexCol = indexData % col;
                    if (indexCol == 0) str += '<tr>';
                    str += '<td class="' + (arr[i].checked ? 'checkedItem' : 'uncheckedItem') + '" nowrap>' + (arr[i].haveChild ? arr[i].linkHTML() : arr[i].checkboxHTML()) + '</td>';
                    if (indexCol == col - 1) str += '</tr>';
                }
                str += '</table></div>';
                return str;
            };
            s.added = 'open';
            s.addedHTML = function() {
                var s = this;
                var str = '', arr = s.cacheID.split(ZP_JS_ADV.separator), dataObj;
                var i, indexCol = -1, indexData = -1;
                var col = s.config.aCol ? s.config.aCol : s.config.col ? s.config.col : 2;
                var tdWidth = parseInt(100 / col);
                var tdTxtL = s.config.aTdTxtL ? s.config.aTdTxtL : s.config.tdTxtLength ? s.config.tdTxtLength : 5;
                str += '<div id="_zp_advJS_added_' + s.ClientID + '" class="zp_advJS_added_wrapper"><div id="_zp_advJS_addedTitle_' + s.ClientID + '" class="jobtypeData_title addedData_title">已添加的' + s.title + '&nbsp;&nbsp;&nbsp;&nbsp;<span class="substitute4a" onclick="' + s.ClientID + '.clearAdded()">清空所有选项</span></div><div id="_zp_advJS_addedDetail_' + s.ClientID + '" class="jobtypeData_detail addedData_detail"><table cellspacing="0" cellpadding="0" border="0">';
                for (i = 0; arr[i]; i++) {
                    if (s.$_data[arr[i]]) {
                        dataObj = s.$_data[arr[i]];
                        indexData++;
                        indexCol = indexData % col;
                        if (indexCol == 0) str += '<tr>';

                        //str += '<td width="'+tdWidth+'%">'+dataObj.checkboxHTML('_added')+'</td>';
                        if (dataObj.text.length < tdTxtL) str += '<td width="' + tdWidth + '%">' + dataObj.checkboxHTML('_added') + '</td>';
                        else {
                            if (indexCol < col - 1) {
                                str += '<td width="' + tdWidth * 2 + '%" colspan="2">' + dataObj.checkboxHTML('_added') + '</td>';
                                indexCol++; indexData++;
                            }
                            else if (indexCol == col - 1) {
                                str += '<td width="' + tdWidth + '%"></td></tr>';
                                str += '<tr><td width="' + tdWidth * 2 + '%" colspan="2">' + dataObj.checkboxHTML('_added') + '</td>';
                                indexCol = 0; indexData = indexData + 2;
                            }
                        }

                        if (indexCol == col - 1) str += '</tr>';
                    }
                }
                while (indexCol < col - 1) {//indexCol>-1&&
                    indexCol++;
                    str += '<td width="' + tdWidth + '%"><img src="' + ZP_JS_ADV.pImg + '" width="0" height="22"></td>';
                    if (indexCol == col - 1) str += '</tr>';
                }
                str += '</table></div></div>';
                return str;
            };
            s.infoHTML = function() {
                var s = this;
                return '最多添加 <span class="alarm">' + (s.config.max ? s.config.max : '') + '</span> 项';
            };
            s.save = function() {
                var s = this;
                var flag = true, num = 0;
                var max = s.config.max ? s.config.max : 999999;
                if (s.cacheID != '') {
                    num = s.cacheID.split(ZP_JS_ADV.separator).length;
                    if (num > max) flag = false;
                }
                if (flag) {
                    s.nowID = s.cacheID;
                    s.hidden.value = s.nowID.charAt(s.nowID.length - 1) == ZP_JS_ADV.separator ? s.nowID.substring(0, s.nowID.length - 1) : s.nowID;
                    ZP_JS_ADV.closeDiv();
                    ZP_JS_ADV.showAddedItem(s);
                }
                else {
                    alert('最多可添加' + max + '个' + s.title + '，请删掉' + (num - max) + '个选项！');
                    return;
                }
            }
        },
        industry: function(o, d, h, t, tit) {
            var s = this;
            ZP_JS_ADV.objArr.push(s);
            s.ClientID = o;
            s.data = d;
            s.$_data = new Array();
            s.$_data_topObj = new Array();
            s.$_data_flag = false;
            s.hidden = eval(h) ? eval(h) : null;
            s.nowID = s.hidden ? s.hidden.value : '';
            s.cacheID = s.nowID;
            s.trigger = eval(t) ? eval(t) : null;
            s.trigger_defaultV = (s.trigger && s.trigger.value) ? s.trigger.value : '选择/修改';
            s.title = tit;
            s.config = new Object();
            ZP_JS_ADV.extend(s, ZP_JS_ADV.commProperty);
            s.initrialize = function() {
                var s = this;
                if (!s.init_flag) {
                    ZP_JS_ADV.initDiv(s);
                    ZP_JS_ADV.createDiv(s.dDiv, '_zp_advJS_industry_' + s.ClientID, 'industryData_wrapper');
                    s.jDiv = document.getElementById('_zp_advJS_industry_' + s.ClientID);
                    s.init_flag = true;
                }
            };
            s.initData = function() {
                var s = this;
                if (!s.$_data_flag) {
                    var i;
                    var temp = s.nowID;
                    if (temp != '') {
                        if (temp.charAt(0) != ZP_JS_ADV.separator) temp = ZP_JS_ADV.separator + temp;
                        if (temp.charAt(temp.length - 1) != ZP_JS_ADV.separator) temp = temp + ZP_JS_ADV.separator;
                    }
                    for (i = 0; s.data[i]; i++) {
                        s.$_data[s.data[i][0]] = new ZP_JS_ADV.dataItem(s.ClientID, s.data[i][0], '0', s.data[i][0], s.data[i][1], null, 'clickCheckbox');
                        if (s.$_data[s.$_data[s.data[i][0]].pId]) s.$_data[s.$_data[s.data[i][0]].pId].addChild(s.$_data[s.data[i][0]]);
                        else s.$_data_topObj.push(s.$_data[s.data[i][0]]);
                        if (temp != '') {
                            if (temp.indexOf(ZP_JS_ADV.separator + s.data[i][0] + ZP_JS_ADV.separator) > -1 || (s.$_data[s.data[i][0]].parent && s.$_data[s.data[i][0]].parent.checked)) s.$_data[s.data[i][0]].checked = true;
                            else s.$_data[s.data[i][0]].checked = false;
                        }
                    }
                    s.$_data_flag = true;
                }
            };
            s.operLinkHTML = function() {
                var s = this;
                var str = ZP_JS_ADV.unlimitedHTML(s) + '&nbsp;&nbsp;&nbsp;&nbsp;' + ZP_JS_ADV.saveHTML(s) + '&nbsp;&nbsp;&nbsp;&nbsp;' + ZP_JS_ADV.closeDivHTML();
                return str;
            };
            /*s.operLinkHTML4button = function(){
            var s = this;
            var str = ZP_JS_ADV.saveHTML4button(s) + '&nbsp;&nbsp;&nbsp;&nbsp;' + ZP_JS_ADV.closeDivHTML4button();
            return str;
            };*/
            s.fnClickTrigger = function(e) {
                var s = this;
                s.initrialize();
                ZP_JS_ADV.setLoading(s, 1);
                switchVisibility(s.div.id, e, getXY(s.trigger).x, getXY(s.trigger).y + 22);
                s.nowID = s.hidden ? s.hidden.value : '';
                s.cacheID = s.nowID;
                s.initData();

                if (s.$_data_flag) {
                    var i, tempArr = [];
                    for (i in s.$_data) s.$_data[i].checked = false;
                    if (s.cacheID != '') tempArr = s.cacheID.split(ZP_JS_ADV.separator);
                    for (i = 0; tempArr[i]; i++) if (s.$_data[tempArr[i]]) s.$_data[tempArr[i]].setCheck(true);
                    s.dataHTML();
                    ZP_JS_ADV.setLoading(s, 0);
                    if (s.div.shim && s.div.shim.getStyle('visibility') == 'visible') s.div.shim.setStyle('visibility', 'visible');
                    if (getCurrentStyle(s.div, 'visibility') == 'visible') positionObject(s.div.id, getXY(s.trigger).x, getXY(s.trigger).y + 22);
                }
            };
            s.dataHTML = function() {
                var s = this;
                s.jDiv.innerHTML = s.industryHTML();
            };
            s.industryHTML = function() {
                var s = this;
                var arr = s.$_data, str = '';
                if (s.data.length) {
                    var i, indexCol, indexData = -1;
                    var col = s.config.col ? s.config.col : 2;
                    str += '<div id="_zp_advJS_industryDetail_' + s.ClientID + '" class="industryData_detail"><table cellspacing="0" cellpadding="0" border="0">';
                    for (i in arr) {
                        indexData++;
                        indexCol = indexData % col;
                        if (indexCol == 0) str += '<tr>';
                        str += '<td class="' + (arr[i].checked ? 'checkedItem' : 'uncheckedItem') + '">' + arr[i].checkboxHTML() + '</td>';
                        if (indexCol == col - 1) str += '</tr>';
                    }
                    str += '</table></div>';
                }
                return str;
            };
            s.infoHTML = function() {
                var s = this;
                return '最多添加 <span class="alarm">' + (s.config.max ? s.config.max : '') + '</span> 项';
            };
            s.save = function() {
                var s = this;
                var flag = true, num = 0;
                var max = s.config.max ? s.config.max : 999999;
                if (s.cacheID != '') {
                    num = s.cacheID.split(ZP_JS_ADV.separator).length;
                    if (num > max) flag = false;
                }
                if (flag) {
                    s.nowID = s.cacheID;
                    s.hidden.value = s.nowID.charAt(s.nowID.length - 1) == ZP_JS_ADV.separator ? s.nowID.substring(0, s.nowID.length - 1) : s.nowID;
                    ZP_JS_ADV.closeDiv();
                    ZP_JS_ADV.showAddedItem(s);
                }
                else {
                    alert('最多可添加' + max + '个' + s.title + '，请删掉' + (num - max) + '个选项！');
                    return;
                }
            };
            s.unlimited = function() {
                var s = this;
                s.nowID = '';
                s.hidden.value = s.nowID;
                ZP_JS_ADV.closeDiv();
                ZP_JS_ADV.showAddedItem(s);
            };
        },
        genCheckboxItem: function(o, d, h, t, tit) {
            var s = this;
            ZP_JS_ADV.objArr.push(s);
            s.ClientID = o;
            s.data = d;
            s.$_data = new Array();
            s.$_data_topObj = new Array();
            s.$_data_flag = false;
            s.hidden = eval(h) ? eval(h) : null;
            s.nowID = s.hidden ? s.hidden.value : '';
            s.cacheID = s.nowID;
            s.trigger = eval(t) ? eval(t) : null;
            s.trigger_defaultV = (s.trigger && s.trigger.value) ? s.trigger.value : '选择/修改';
            s.title = tit;
            s.config = new Object();
            ZP_JS_ADV.extend(s, ZP_JS_ADV.commProperty);
            s.initrialize = function() {
                var s = this;
                if (!s.init_flag) {
                    ZP_JS_ADV.initDiv(s);
                    ZP_JS_ADV.createDiv(s.dDiv, '_zp_advJS_cbItem_' + s.ClientID, 'cbItemData_wrapper');
                    s.jDiv = document.getElementById('_zp_advJS_cbItem_' + s.ClientID);
                    s.init_flag = true;
                }
            };
            s.initData = function() {
                var s = this;
                if (!s.$_data_flag) {
                    var i;
                    var temp = s.nowID;
                    if (temp != '') {
                        if (temp.charAt(0) != ZP_JS_ADV.separator) temp = ZP_JS_ADV.separator + temp;
                        if (temp.charAt(temp.length - 1) != ZP_JS_ADV.separator) temp = temp + ZP_JS_ADV.separator;
                    }
                    for (i = 0; s.data[i]; i++) {
                        s.$_data[s.data[i][0]] = new ZP_JS_ADV.dataItem(s.ClientID, s.data[i][0], '0', s.data[i][0], s.data[i][1], null, 'clickCheckbox');
                        if (s.$_data[s.$_data[s.data[i][0]].pId]) s.$_data[s.$_data[s.data[i][0]].pId].addChild(s.$_data[s.data[i][0]]);
                        else s.$_data_topObj.push(s.$_data[s.data[i][0]]);
                        if (temp != '') {
                            if (temp.indexOf(ZP_JS_ADV.separator + s.data[i][0] + ZP_JS_ADV.separator) > -1 || (s.$_data[s.data[i][0]].parent && s.$_data[s.data[i][0]].parent.checked)) s.$_data[s.data[i][0]].checked = true;
                            else s.$_data[s.data[i][0]].checked = false;
                        }
                    }
                    s.$_data_flag = true;
                }
            };
            s.operLinkHTML = function() {
                var s = this;
                var str = ZP_JS_ADV.unlimitedHTML(s) + '&nbsp;&nbsp;&nbsp;&nbsp;' + ZP_JS_ADV.saveHTML(s) + '&nbsp;&nbsp;&nbsp;&nbsp;' + ZP_JS_ADV.closeDivHTML();
                return str;
            };
            /*s.operLinkHTML4button = function(){
            var s = this;
            var str = ZP_JS_ADV.saveHTML4button(s) + '&nbsp;&nbsp;&nbsp;&nbsp;' + ZP_JS_ADV.closeDivHTML4button();
            return str;
            };*/
            s.fnClickTrigger = function(e) {
                var s = this;
                s.initrialize();
                ZP_JS_ADV.setLoading(s, 1);
                switchVisibility(s.div.id, e, getXY(s.trigger).x, getXY(s.trigger).y + 22);
                s.nowID = s.hidden ? s.hidden.value : '';
                s.cacheID = s.nowID;
                s.initData();

                if (s.$_data_flag) {
                    var i, tempArr = [];
                    for (i in s.$_data) s.$_data[i].checked = false;
                    if (s.cacheID != '') tempArr = s.cacheID.split(ZP_JS_ADV.separator);
                    for (i = 0; tempArr[i]; i++) if (s.$_data[tempArr[i]]) s.$_data[tempArr[i]].setCheck(true);
                    s.dataHTML();
                    ZP_JS_ADV.setLoading(s, 0);
                    if (s.div.shim && s.div.shim.getStyle('visibility') == 'visible') s.div.shim.setStyle('visibility', 'visible');
                    if (getCurrentStyle(s.div, 'visibility') == 'visible') positionObject(s.div.id, getXY(s.trigger).x, getXY(s.trigger).y + 22);
                }
            };
            s.dataHTML = function() {
                var s = this;
                s.jDiv.innerHTML = s.cbItemHTML();
            };
            s.cbItemHTML = function() {
                var s = this;
                var arr = s.$_data, str = '';
                if (s.data.length) {
                    var i, indexCol, indexData = -1;
                    var col = s.config.col ? s.config.col : 2;
                    str += '<div id="_zp_advJS_cbItemDetail_' + s.ClientID + '" class="cbItemData_detail"><table cellspacing="0" cellpadding="0" border="0">';
                    for (i in arr) {
                        indexData++;
                        indexCol = indexData % col;
                        if (indexCol == 0) str += '<tr>';
                        str += '<td class="' + (arr[i].checked ? 'checkedItem' : 'uncheckedItem') + '">' + arr[i].checkboxHTML() + '</td>';
                        if (indexCol == col - 1) str += '</tr>';
                    }
                    str += '</table></div>';
                }
                return str;
            };
            s.save = function() {
                var s = this;
                var flag = true, num = 0;
                s.nowID = s.cacheID;
                s.hidden.value = s.nowID.charAt(s.nowID.length - 1) == ZP_JS_ADV.separator ? s.nowID.substring(0, s.nowID.length - 1) : s.nowID; ;
                ZP_JS_ADV.closeDiv();
                ZP_JS_ADV.showAddedItem(s);
            };
            s.unlimited = function() {
                var s = this;
                s.nowID = '';
                s.hidden.value = s.nowID;
                ZP_JS_ADV.closeDiv();
                ZP_JS_ADV.showAddedItem(s);
            };
        },
        genRadioItem: function(o, d, h, t, tit) {
            var s = this;
            ZP_JS_ADV.objArr.push(s);
            s.ClientID = o;
            s.data = d;
            s.$_data = new Array();
            s.$_data_topObj = new Array();
            s.$_data_flag = false;
            s.hidden = eval(h) ? eval(h) : null;
            s.nowID = s.hidden ? s.hidden.value : '';
            s.trigger = eval(t) ? eval(t) : null;
            s.trigger_defaultV = (s.trigger && s.trigger.value) ? s.trigger.value : '选择/修改';
            s.title = tit;
            s.config = new Object();
            ZP_JS_ADV.extend(s, ZP_JS_ADV.commProperty);
            s.initrialize = function() {
                var s = this;
                if (!s.init_flag) {
                    ZP_JS_ADV.initDiv(s);
                    ZP_JS_ADV.createDiv(s.dDiv, '_zp_advJS_rItem_' + s.ClientID, 'rItemData_wrapper');
                    s.jDiv = document.getElementById('_zp_advJS_rItem_' + s.ClientID);
                    s.init_flag = true;
                }
            };
            s.initData = function() {
                var s = this;
                if (!s.$_data_flag) {
                    var i;
                    var temp = s.nowID;
                    if (temp != '') {
                        if (temp.charAt(0) != ZP_JS_ADV.separator) temp = ZP_JS_ADV.separator + temp;
                        if (temp.charAt(temp.length - 1) != ZP_JS_ADV.separator) temp = temp + ZP_JS_ADV.separator;
                    }
                    for (i = 0; s.data[i]; i++) {
                        s.$_data[s.data[i][0]] = new ZP_JS_ADV.dataItem(s.ClientID, s.data[i][0], '0', s.data[i][0], s.data[i][1], 'clickLink');
                        if (s.$_data[s.$_data[s.data[i][0]].pId]) s.$_data[s.$_data[s.data[i][0]].pId].addChild(s.$_data[s.data[i][0]]);
                        else s.$_data_topObj.push(s.$_data[s.data[i][0]]);
                        if (temp != '') {
                            if (temp.indexOf(ZP_JS_ADV.separator + s.data[i][0] + ZP_JS_ADV.separator) > -1 || (s.$_data[s.data[i][0]].parent && s.$_data[s.data[i][0]].parent.checked)) s.$_data[s.data[i][0]].checked = true;
                            else s.$_data[s.data[i][0]].checked = false;
                        }
                    }
                    s.$_data_flag = true;
                }
            };
            s.operLinkHTML = function() {
                var s = this;
                var str = ZP_JS_ADV.closeDivHTML2();
                return str;
            };
            /*s.operLinkHTML4button = function(){
            var s = this;
            var str = ZP_JS_ADV.saveHTML4button(s) + '&nbsp;&nbsp;&nbsp;&nbsp;' + ZP_JS_ADV.closeDivHTML4button();
            return str;
            };*/
            s.fnClickTrigger = function(e) {
                var s = this;
                s.initrialize();
                ZP_JS_ADV.setLoading(s, 1);
                switchVisibility(s.div.id, e, getXY(s.trigger).x, getXY(s.trigger).y + 22);
                s.nowID = s.hidden ? s.hidden.value : '';
                s.initData();

                if (s.$_data_flag) {
                    var i, tempArr = [];
                    for (i in s.$_data)
                        if (s.nowID == s.$_data[i].id) s.$_data[i].checked = true;
                    else s.$_data[i].checked = false;
                    s.dataHTML();
                    ZP_JS_ADV.setLoading(s, 0);
                    if (s.div.shim && s.div.shim.getStyle('visibility') == 'visible') s.div.shim.setStyle('visibility', 'visible');
                    if (getCurrentStyle(s.div, 'visibility') == 'visible') positionObject(s.div.id, getXY(s.trigger).x, getXY(s.trigger).y + 22);
                }
            };
            s.dataHTML = function() {
                var s = this;
                s.jDiv.innerHTML = s.rItemHTML();
            };
            s.rItemHTML = function() {
                var s = this;
                var arr = s.$_data, str = '';
                if (s.data.length) {
                    var i, indexCol, indexData = -1;
                    var col = s.config.col ? s.config.col : 2;
                    str += '<div id="_zp_advJS_rItemDetail_' + s.ClientID + '" class="rItemData_detail"><table cellspacing="0" cellpadding="0" border="0">';
                    for (i in arr) {
                        indexData++;
                        indexCol = indexData % col;
                        if (indexCol == 0) str += '<tr>';
                        str += '<td class="' + (arr[i].checked ? 'checkedItem' : 'uncheckedItem') + '">' + arr[i].linkHTML() + '</td>';
                        if (indexCol == col - 1) str += '</tr>';
                    }
                    str += '</table></div>';
                }
                return str;
            };
        },
        dataItem: function(o, i, pi, v, t, aFn, cFn, oFn) {
            var s = this;
            s.ClientID = o;
            s.id = i;
            s.pId = pi ? pi : null;
            s.value = v;
            s.text = t;
            s.linkFn = aFn ? s.ClientID + '.' + aFn : 'ZP_JS_ADV.blankFun';
            s.checkboxFn = cFn ? s.ClientID + '.' + cFn : 'ZP_JS_ADV.blankFun';
            s.outlinkFn = oFn ? s.ClientID + '.' + oFn : 'ZP_JS_ADV.blankFun';
            s.parent = null;
            s.child = new Array();
            s.haveChild = false;
            s.childNum = 0;
            s.checked = false;
            s.addChild = function(c) {
                var s = this;
                c.parent = s;
                s.child[c.id] = c;
                if (!s.haveChild) s.haveChild = true;
                s.childNum++;
            };
            s.thisIsDes = function(p) {
                var s = this;
                var flag;
                if (s.parent != null) {
                    if (s.parent.id == p.id) return true;
                    else return s.parent.thisIsDes(p);
                }
                else return false;
            };
            s.hasDescendantChecked = function() {
                var s = this;
                var i, flag = false;
                if (!s.haveChild) flag = false;
                else {
                    for (i in s.child) {
                        if (s.child[i].checked) flag = true;
                        else {
                            if (s.child[i].haveChild) flag = s.child[i].hasDescendantChecked();
                        }
                        if (flag) break;
                    }
                }
                return flag;
            };
            s.hasAncestorChecked = function() {
                var s = this;
                var flag = false;
                if (!s.parent) flag = false;
                else {
                    if (s.parent.checked) flag = true;
                    else {
                        if (s.parent.parent) flag = s.parent.hasAncestorChecked();
                    }
                    if (flag) return flag;
                }
                return flag;
            };
            s.setCheck = function(value) {
                this.checked = value;
                if (value) s.setCheck_descendant(this, value);
                if (value) s.setCheck_ancestor(this, value);
            };
            s.setCheck_descendant = function(me, value) {
                var s = this;
                if (me.haveChild) {
                    var arr = me.child, i;
                    for (i in arr) {
                        if (arr[i].checked) arr[i].checked = false;
                        if (value && arr[i].haveChild) s.setCheck_descendant(arr[i], value);
                    }
                }
            };
            s.setCheck_ancestor = function(me, value) {
                var s = this;
                if (me.parent != null) {
                    if (value) {
                        if (me.parent.checked) me.parent.checked = false;
                    }
                    if (value && me.parent.parent != null) s.setCheck_ancestor(me.parent, value);
                }
            };
            s.linkHTML = function(fixId, fixTxt) {
                var s = this;
                var obj = eval(s.ClientID);
                if (obj.nowID.indexOf(ZP_JS_ADV.separator) > -1) var flag = obj.nowID == this.id + ZP_JS_ADV.separator ? true : false;
                else var flag = obj.nowID == this.id ? true : false;
                var showTxt = ZP_JS_ADV.encode['html'](s.text);
                if (fixTxt && ZP_JS_ADV[fixTxt] && ZP_JS_ADV[fixTxt][s.id] && typeof (ZP_JS_ADV[fixTxt][s.id]) == 'string') showTxt = ZP_JS_ADV.encode['html'](ZP_JS_ADV[fixTxt][s.id]);
                var str = '<span class="zp_advJS_a_' + s.ClientID + ' substitute4a itemSpan' + (flag ? ' focus' : '') + '" id="_zp_advJS_a_' + s.ClientID + ((fixId && typeof (fixId) == 'string') ? fixId : '') + '_' + ZP_JS_ADV.encode['para'](s.id) + '" onclick="' + s.linkFn + '(\'' + s.id + '\',event)" onmouseout="' + s.outlinkFn + '();ZP_JS_ADV.fnChangeBg(this,\'dataItemCSS4mouseover\',false)" onmouseover="ZP_JS_ADV.fnChangeBg(this,\'dataItemCSS4mouseover\',true)" style="padding-left:4px;">' + showTxt + '</span>';
                return str;
            };
            s.checkboxHTML = function(fixId, fixTxt, fixTxt_pre) {
                var s = this;
                var showTxt = ZP_JS_ADV.encode['html'](s.id == 512 ? s.text.replace('其他', '其他国家') : s.text);
                if (fixTxt && ZP_JS_ADV[fixTxt] && ZP_JS_ADV[fixTxt][s.id] && typeof (ZP_JS_ADV[fixTxt][s.id]) == 'string') showTxt = ZP_JS_ADV.encode['html'](ZP_JS_ADV[fixTxt][s.id]);
                if (fixTxt_pre && typeof (fixTxt_pre) == 'string') showTxt = fixTxt_pre + showTxt;
                var str = '<label class="' + (s.checked ? 'boxFocus' : 'boxBlur') + '" for="zp_advJS_c_' + s.ClientID + ((fixId && typeof (fixId) == 'string') ? fixId : '') + '_' + ZP_JS_ADV.encode['para'](s.id) + '" onfocus="this.blur()" onmouseover="ZP_JS_ADV.fnChangeBg(this,\'dataItemCSS4mouseover\',true)" onmouseout="ZP_JS_ADV.fnChangeBg(this,\'dataItemCSS4mouseover\',false)"><input type="checkbox" name="zp_advJS_c_' + s.ClientID + '" id="zp_advJS_c_' + s.ClientID + ((fixId && typeof (fixId) == 'string') ? fixId : '') + '_' + ZP_JS_ADV.encode['para'](s.id) + '" value="' + ZP_JS_ADV.encode['para'](s.id) + '" onclick="' + s.checkboxFn + '(this)"' + (s.checked ? ' checked="checked"' : '') + ' onfocus="this.blur()">' + showTxt + '</label>';
                s.checkboxID = 'zp_advJS_c_' + s.ClientID + ((fixId && typeof (fixId) == 'string') ? fixId : '') + '_' + s.id;
                return str;
            }
        },
        initrialize: function() {
            for (var i in ZP_JS_ADV.objArr) if (ZP_JS_ADV.objArr[i].initrialize && typeof (ZP_JS_ADV.objArr[i].initrialize) == 'function') ZP_JS_ADV.objArr[i].initrialize();
        },
        initDiv: function(o) {
            var objStyle = {};
            if (o.config && o.config.width && !isNaN(o.config.width) && o.config.width != 0) objStyle['width'] = o.config.width + 'px';
            var divParent = (o.trigger && o.trigger.parentNode.nodeType == 1 && o.trigger.parentNode.tagName.toLowerCase() != 'html' ? o.trigger.parentNode : document.body);
            o.div = ZP_JS_ADV.createDiv(divParent, '_zp_advJS_popupDiv_' + o.ClientID, 'zp_advJS_popupDiv', objStyle);
            o.div.shim.setStyle('visibility', 'hidden');
            o.div.innerHTML = ZP_JS_ADV.divHTML(o);
            o.loadingDiv = document.getElementById('_zp_advJS_loadingDiv_' + o.ClientID);
            o.dDiv = document.getElementById('_zp_advJS_dDiv_' + o.ClientID);
            o.oMouse = document.getElementById(o.ClientID + '_mMove');
            if (o.oMouse) {
                o.MOVER = function() { w_mmover(o.div.id); };
                o.MOUT = function() { w_mmout(); };
                o.MSELECT = function() { return false; };
                ZP_JS_ADV.EventUtils.addEvent(o.oMouse, 'selectstart', o.MSELECT);
                ZP_JS_ADV.EventUtils.addEvent(o.oMouse, 'mouseover', o.MOVER);
                ZP_JS_ADV.EventUtils.addEvent(o.oMouse, 'mouseout', o.MOUT);
            }
        },
        initDiv_sub: function(o) {
            var divParent = (o.trigger && o.trigger.parentNode.nodeType == 1 && o.trigger.parentNode.tagName.toLowerCase() != 'html' ? o.trigger.parentNode : document.body);
            o.div_sub = ZP_JS_ADV.createDiv(divParent, '_zp_advJS_popupDiv_sub_' + o.ClientID, 'zp_advJS_popupDiv_sub');
            o.div_sub.shim.setStyle('visibility', 'hidden');
            ZP_JS_ADV.EventUtils.addEvent(o.div_sub, 'mouseover', function() { o.div_sub.flagHidePopup = false; });
            ZP_JS_ADV.EventUtils.addEvent(o.div_sub, 'mouseout', function() { o.mouseoutLink(); });
            o.div_sub.innerHTML = ZP_JS_ADV.divHTML_sub(o);
            o.dDiv_sub = document.getElementById('_zp_advJS_dDiv_sub_' + o.ClientID);
        },
        setTriggerAction: function(o) {
            if (o.trigger && typeof (o.trigger) == 'object') {
                o.T = function(e) { o.fnClickTrigger(e); };
                //ZP_JS_ADV.EventUtils.addEvent(o.trigger,'click',o.T);
                if (typeof (window.event) != 'undefined') o.trigger.onclick = new Function(o.ClientID + ".fnClickTrigger(event)");
                else if (typeof (window.Event) != 'undefined') o.trigger.onclick = new Function(o.ClientID + ".fnClickTrigger(Event)");
                if (o.trigger.disabled) o.trigger.disabled = false;
            }
        },
        writeschtitle: function(o, title) {
            var paschtitle = ['职位类别', '行业类别', '发布日期', '工作年限', '月薪范围', '学历要求', '工作类型', '工作地区'];
            var uaschtitle = ['行业类别', '职位名称', '工作年限', '学历要求', '现居住地', '更新日期'];
            ZP_JS_ADV.writeschtitleobject(o, title, 'ctl00$ContentPlaceHolder1$paSchTitle', paschtitle); //个人高级搜索
            ZP_JS_ADV.writeschtitleobject(o, title, 'ctl00$ContentPlaceHolder1$paSchTitle1', paschtitle); //个人普通搜索
            ZP_JS_ADV.writeschtitleobject(o, title, 'ctl00$ContentPlaceHolder1$uaSchTitle', uaschtitle); //个人普通搜索
        },
        writeschtitleobject: function(o, title, inputid, schtitle) {
            var arrtitle = document.getElementById(inputid).value.toString().split(';');
            for (i = 0; schtitle[i]; i++) {
                if (o.title == schtitle[i]) arrtitle[i] = schtitle[i] + '：' + title;
            }
            document.getElementById(inputid).value = '';
            var str = '';
            for (i = 0; arrtitle[i]; i++) {
                str += (arrtitle[i].toString() + ";");
            }
            document.getElementById(inputid).value = str.substring(0, str.length - 1);
        },
        showAddedItem: function(o) {
            var title = '';
            if (o.config.conAdded && document.getElementById(o.config.conAdded)) {
                var html = document.getElementById(o.config.conAdded);
                var str = '';
                var arr = o.nowID.toString().split(ZP_JS_ADV.separator), i;
                for (i = 0; arr[i]; i++) {
                    if (o.$_data[arr[i]]) {
                        str += '<!--<label class="zp_advJS_addedItemOnMainPage" for="zp_advJS_cShow_' + o.ClientID + '_' + ZP_JS_ADV.encode['para'](o.$_data[arr[i]].id) + '" onfocus="this.blur()">--><input type="checkbox" checked="checked" id="zp_advJS_cShow_' + o.ClientID + '_' + ZP_JS_ADV.encode['para'](o.$_data[arr[i]].id) + '" name="zp_advJS_cShow_' + o.ClientID + '" value="' + ZP_JS_ADV.encode['para'](o.$_data[arr[i]].id) + '" onclick="ZP_JS_ADV.uncheckAddedItem2(this,' + o.ClientID + ',\'' + o.$_data[arr[i]].id + '\')" onfocus="this.blur()">' + ZP_JS_ADV.encode['html']((o.$_data[arr[i]].id == '512' ? o.$_data[arr[i]].text.replace('其他', '其他国家') : o.$_data[arr[i]].text)) + '<!--</label>-->&nbsp;&nbsp;&nbsp;&nbsp;';
                        title += (i == 0 ? '' : '/') + ZP_JS_ADV.encode['html']((o.$_data[arr[i]].id == '512' ? o.$_data[arr[i]].text.replace('其他', '其他国家') : o.$_data[arr[i]].text));
                    }
                }
                html.innerHTML = str;
                html.style.display = (str == '' ? 'none' : 'block');
            }
            else if (o.trigger && o.trigger.nodeType == 1 && o.trigger.tagName.toLowerCase() == 'input') {
                var str = '', fixStr = '';
                var arr = o.nowID.toString().split(ZP_JS_ADV.separator), i;
                for (i = 0; arr[i]; i++) {
                    if (o.$_data[arr[i]]) str += (i == 0 ? '' : '/') + ZP_JS_ADV.encode['html']((o.$_data[arr[i]].id == '512' ? o.$_data[arr[i]].text.replace('其他', '其他国家') : o.$_data[arr[i]].text));
                }
                if (str == '') {
                    if (o.ClientID == 'industryF') str = '不限';
                    else str = o.trigger_defaultV;
                }
                var showBL = (o.config && o.config.buttonL && !isNaN(o.config.buttonL)) ? o.config.buttonL : 22;
                fixStr = (ZP_JS_ADV.getRealLength(str) < showBL) ? str : (ZP_JS_ADV.subStringPro(str, showBL - 2) + '...');
                o.trigger.value = fixStr;
                o.trigger.title = str;
                title = str;
            }
            ZP_JS_ADV.writeschtitle(o, title);
        },
        uncheckAddedItem: function(o, id) {
            //if(o.nowID.toString().indexOf(id+ZP_JS_ADV.separator)>-1) o.nowID = o.nowID.replace(id+ZP_JS_ADV.separator,'');
            var tempStr = o.nowID;
            if (tempStr != '') {
                if (tempStr.charAt(tempStr.length - 1) != ZP_JS_ADV.separator) tempStr = tempStr + ZP_JS_ADV.separator;
                if (tempStr.charAt(0) != ZP_JS_ADV.separator) tempStr = ZP_JS_ADV.separator + tempStr;
            }
            if (tempStr.toString().indexOf(ZP_JS_ADV.separator + id + ZP_JS_ADV.separator) > -1) tempStr = tempStr.replace(ZP_JS_ADV.separator + id + ZP_JS_ADV.separator, ZP_JS_ADV.separator);
            if (tempStr != '') {
                if (tempStr.charAt(tempStr.length - 1) == ZP_JS_ADV.separator) tempStr = tempStr.substr(0, tempStr.length - 1);
                if (tempStr.charAt(0) == ZP_JS_ADV.separator) tempStr = tempStr.substring(1);
            }
            o.nowID = tempStr;
            o.hidden.value = o.nowID;
            ZP_JS_ADV.showAddedItem(o);
        },
        uncheckAddedItem2: function(c, o, id) {
            //if(o.nowID.toString().indexOf(id+ZP_JS_ADV.separator)>-1) o.nowID = o.nowID.replace(id+ZP_JS_ADV.separator,'');
            if (!c.checked) {
                var tempStr = o.nowID;
                if (tempStr != '') {
                    if (tempStr.charAt(tempStr.length - 1) != ZP_JS_ADV.separator) tempStr = tempStr + ZP_JS_ADV.separator;
                    if (tempStr.charAt(0) != ZP_JS_ADV.separator) tempStr = ZP_JS_ADV.separator + tempStr;
                }
                if (tempStr.toString().indexOf(ZP_JS_ADV.separator + id + ZP_JS_ADV.separator) > -1) tempStr = tempStr.replace(ZP_JS_ADV.separator + id + ZP_JS_ADV.separator, ZP_JS_ADV.separator);
                if (tempStr != '') {
                    if (tempStr.charAt(tempStr.length - 1) == ZP_JS_ADV.separator) tempStr = tempStr.substr(0, tempStr.length - 1);
                    if (tempStr.charAt(0) == ZP_JS_ADV.separator) tempStr = tempStr.substring(1);
                }
                o.nowID = tempStr;
                o.hidden.value = o.nowID;
            }
            else {
                o.nowID = o.nowID == '' ? id : o.nowID + ZP_JS_ADV.separator + id;
                o.hidden.value = o.nowID;
            }
            //ZP_JS_ADV.showAddedItem(o);
        },
        initShowAddedItem: function(o) {
            if (o.config.conAdded && document.getElementById(o.config.conAdded)) {
                var html = document.getElementById(o.config.conAdded);
                var str = '';
                var temp = o.hidden.value == '' ? ZP_JS_ADV.separator : o.hidden.value, i;
                if (temp.charAt(0) != ZP_JS_ADV.separator) temp = ZP_JS_ADV.separator + temp;
                if (temp.charAt(temp.length - 1) != ZP_JS_ADV.separator) temp = temp + ZP_JS_ADV.separator;
                for (i = 0; o.data[i]; i++) {
                    if (temp != ZP_JS_ADV.separator) {
                        if (temp.indexOf(ZP_JS_ADV.separator + o.data[i][0] + ZP_JS_ADV.separator) > -1) {
                            str += '<!--<label class="zp_advJS_addedItemOnMainPage" for="zp_advJS_cShow_' + o.ClientID + '_' + ZP_JS_ADV.encode['para'](o.data[i][0]) + '" onfocus="this.blur()">--><input type="checkbox" checked="checked" id="zp_advJS_cShow_' + o.ClientID + '_' + ZP_JS_ADV.encode['para'](o.data[i][0]) + '" name="zp_advJS_cShow_' + o.ClientID + '" value="' + ZP_JS_ADV.encode['para'](o.data[i][0]) + '" onclick="ZP_JS_ADV.initUncheckAddedItem(this,' + o.ClientID + ',\'' + o.data[i][0] + '\')" onfocus="this.blur()">' + ZP_JS_ADV.encode['html'](o.data[i].length == 2 ? (o.data[i][0] == '512' ? o.data[i][1].replace('其他', '其他国家') : o.data[i][1]) : (o.data[i][0] == '512' ? o.data[i][2].replace('其他', '其他国家') : o.data[i][2])) + '<!--</label>-->&nbsp;&nbsp;&nbsp;&nbsp;';
                            temp = temp.replace(ZP_JS_ADV.separator + o.data[i][0] + ZP_JS_ADV.separator, ZP_JS_ADV.separator);
                        }
                    }
                    else break;
                }
                html.innerHTML = str;
                html.style.display = (str == '' ? 'none' : 'block');
            }
            else if (o.trigger && o.trigger.nodeType == 1 && o.trigger.tagName.toLowerCase() == 'input') {
                var str = '', fixStr = '';
                var temp = o.hidden.value == '' ? ZP_JS_ADV.separator : o.hidden.value, i;
                if (temp.charAt(0) != ZP_JS_ADV.separator) temp = ZP_JS_ADV.separator + temp;
                if (temp.charAt(temp.length - 1) != ZP_JS_ADV.separator) temp = temp + ZP_JS_ADV.separator;
                for (i = 0; o.data[i]; i++) {
                    if (temp != ZP_JS_ADV.separator) {
                        if (temp.indexOf(ZP_JS_ADV.separator + o.data[i][0] + ZP_JS_ADV.separator) > -1) {
                            str += (str == '' ? '' : '/') + ZP_JS_ADV.encode['html'](o.data[i].length == 2 ? (o.data[i][0] == '512' ? o.data[i][1].replace('其他', '其他国家') : o.data[i][1]) : (o.data[i][0] == '512' ? o.data[i][2].replace('其他', '其他国家') : o.data[i][2]));
                            temp = temp.replace(ZP_JS_ADV.separator + o.data[i][0] + ZP_JS_ADV.separator, ZP_JS_ADV.separator);
                        }
                    }
                    else break;
                }
                if (str == '') str = o.trigger_defaultV;
                var showBL = (o.config && o.config.buttonL && !isNaN(o.config.buttonL)) ? o.config.buttonL : 22;
                fixStr = (ZP_JS_ADV.getRealLength(str) < showBL) ? str : (ZP_JS_ADV.subStringPro(str, showBL - 2) + '...');
                o.trigger.value = fixStr;
                o.trigger.title = str;
            }
        },
        initUncheckAddedItem: function(c, o, id) {
            //if(o.hidden.value.toString().indexOf(id+ZP_JS_ADV.separator)>-1) o.hidden.value = o.hidden.value.replace(id+ZP_JS_ADV.separator,'');
            if (!c.checked) {
                if (o.hidden.value != '') o.hidden.value = o.hidden.value + ZP_JS_ADV.separator;
                if (o.hidden.value.toString().indexOf(id + ZP_JS_ADV.separator) > -1) o.hidden.value = o.hidden.value.replace(id + ZP_JS_ADV.separator, '');
                if (o.hidden.value.charAt(o.hidden.value.length - 1) == ZP_JS_ADV.separator) o.hidden.value = o.hidden.value.substr(0, o.hidden.value.length - 1);
            }
            else {
                o.hidden.value = o.hidden.value == '' ? id : o.hidden.value + ZP_JS_ADV.separator + id;
            }
            //ZP_JS_ADV.initShowAddedItem(o);
        },
        setLoading: function(o, action) {
            if (action) {
                o.loadingDiv.style.display = '';
                o.dDiv.style.display = 'none';
            }
            else {
                o.loadingDiv.style.display = 'none';
                o.dDiv.style.display = '';
            }
        },
        collapse: function(divId, switcher, obj, flag, action) {
            var div = document.getElementById(divId);
            if (div) {
                if (action) {
                    div.style.display = '';
                    obj[flag] = 'open';
                }
                else {
                    div.style.display = 'none';
                    obj[flag] = 'close';
                }
                if (obj && obj.div && obj.div.shim && obj.div.shim.getStyle('visibility') == 'visible') obj.div.shim.setStyle('visibility', 'visible');
            }
            if (switcher && switcher.nodeType == 1) {
                if (action) {
                    switcher.className = switcher.className.replace('imgClose', 'imgOpen');
                    switcher.onclick = function() { ZP_JS_ADV.collapse(divId, switcher, obj, flag, 0); }
                }
                else {
                    switcher.className = switcher.className.replace('imgOpen', 'imgClose');
                    switcher.onclick = function() { ZP_JS_ADV.collapse(divId, switcher, obj, flag, 1); }
                }
            }
        },
        createDiv: function(p, i, c, s) {
            var newDiv = document.createElement('div');
            newDiv.id = i;
            newDiv.className = c;
            if (s) for (var i in s) newDiv.style[i] = s[i];
            if (p && p.appendChild) {
                try {
                    p.appendChild(newDiv);
                    if (!newDiv.shim) newDiv.shim = new iframeShim(newDiv);
                    return newDiv;
                }
                catch (e) { return null; }
            }
            return null;
        },
        getCurrentStyle: function(e, s) {//read only
            var retVal;
            if (e.currentStyle) retVal = e.currentStyle[s]; //IE
            else if (document.defaultView && document.defaultView.getComputedStyle) retVal = document.defaultView.getComputedStyle(e, null).getPropertyValue(MYRESUME.util.Dom.dashify(s)); //Mozilla
            else retVal = null; //Safari
            return retVal;
        },
        dashify: function(str) {
            return str.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase();
        },
        getXY: function(o) {
            function Point(iX, iY) {
                this.x = iX;
                this.y = iY;
            };
            var pt = new Point(0, 0);
            pt.x = MYRESUME.util.Dom.getLocalOffsetLeft(o);
            pt.y = MYRESUME.util.Dom.getLocalOffsetTop(o);
            return pt;
        },
        getLocalOffsetTop: function(o) {
            return MYRESUME.util.Dom.getLocalOffset(o, 'Top');
        },
        getLocalOffsetLeft: function(o) {
            return MYRESUME.util.Dom.getLocalOffset(o, 'Left');
        },
        getLocalOffset: function(o, d) {//d: Top Left
            var y = o['offset' + d];
            var div;
            try { div = o.offsetParent; }
            catch (ex) { return y; }
            while (div && MYRESUME.util.Dom.getCurrentStyle(div, 'position') == 'static') {
                y += div['offset' + d];
                try { div = div.offsetParent; }
                catch (ex) { return y; }
            }
            return y;
        },
        divHTML: function(o) {
            var str = '', tStr = '';
            str += '<table cellpadding="0" cellspacing="0" border="0" class="classTab">';
            str += '<tr><td class="topleft"><img src=' + ZP_JS_ADV.pImg + ' width="8" height="8"></td><td class="topcenter"><img src=' + ZP_JS_ADV.pImg + ' width="' + parseInt(o.config.width - 16) + '" height="7"></td><td class="topright"><img src=' + ZP_JS_ADV.pImg + ' width="8" height="8"></td></tr>';
            str += '<tr><td colspan="3" class="title" id="' + o.ClientID + '_mMove"><div class="left">' + o.title + '：<span id="' + o.ClientID + '_infoSpan" class="info">' + (o.infoHTML ? o.infoHTML() : '') + '</span></div><div class="right">';
            if (o.operLinkHTML && typeof (o.operLinkHTML) == 'function') {
                tStr = o.operLinkHTML();
                if (typeof (tStr) == 'string') str += tStr;
                tStr = '';
            }
            str += '</div></td></tr>';
            str += '<tr><td colspan="3" class="content">';
            if (o.tipsHTML && typeof (o.tipsHTML) == 'function') {
                tStr = o.tipsHTML();
                if (typeof (tStr) == 'string') str += tStr;
                tStr = '';
            }
            str += '<div id="_zp_advJS_loadingDiv_' + o.ClientID + '">数据加载中...</div>';
            str += '<div id="_zp_advJS_dDiv_' + o.ClientID + '"></div>';
            str += '<div id="_zp_advJS_bDiv_' + o.ClientID + '" class="divButton">';
            if (o.operLinkHTML4button && typeof (o.operLinkHTML4button) == 'function') {
                tStr = o.operLinkHTML4button();
                if (typeof (tStr) == 'string') str += tStr;
                tStr = '';
            }
            str += '</div>';
            str += '</td></tr>';
            str += '<tr><td class="bottomleft"><img src=' + ZP_JS_ADV.pImg + ' width="8" height="8"></td><td class="bottomcenter"><img src=' + ZP_JS_ADV.pImg + ' width="' + parseInt(o.config.width - 16) + '" height="4"></td><td class="bottomright"><img src=' + ZP_JS_ADV.pImg + ' width="8" height="8"></td></tr>';
            str += '</table>';
            return str;
        },
        divHTML_sub: function(o) {
            var str = '', tStr = '';
            str += '<div id="_zp_advJS_dDiv_sub_' + o.ClientID + '"></div>';
            return str;
        },
        saveHTML: function(o) {
            var str = '';
            str = '<span class="substitute4a" onclick="' + o.ClientID + '.save()">[ 确认 ]</span>';
            return str;
        },
        closeDivHTML4button: function() {
            var str = '<input type="button" value="取消" onclick="ZP_JS_ADV.closeDiv()"></input>';
            return str;
        },
        saveHTML4button: function(o) {
            var str = '';
            str = '<input type="button" value="确认" onclick="' + o.ClientID + '.save()"></input>';
            return str;
        },
        closeDivHTML: function() {
            var str = '<span class="substitute4a" onclick="ZP_JS_ADV.closeDiv()">[ 取消 ]</span>';
            return str;
        },
        closeDivHTML2: function() {
            var str = '<span class="substitute4a" onclick="ZP_JS_ADV.closeDiv()">[ 关闭 ]</span>';
            return str;
        },
        unlimitedHTML: function(o) {
            var str = '<span class="substitute4a" onclick="' + o.ClientID + '.unlimited()">[ 不限 ]</span>';
            return str;
        },
        closeDiv: function() {
            hideCurrentPopup();
        },
        extend: function(destination, source) {
            for (var property in source) {
                destination[property] = source[property]
            }
            return destination
        },
        commProperty: {
            setCacheID: function(id) {
                var s = this;
                var o = s.$_data[id];
                var arr, i;
                arr = s.cacheID.split(ZP_JS_ADV.separator);
                //var tempStr = s.cacheID.charAt(0)!=ZP_JS_ADV.separator?ZP_JS_ADV.separator+s.cacheID:s.cacheID.charAt(s.cacheID.length-1)!=ZP_JS_ADV.separator?s.cacheID+ZP_JS_ADV.separator:s.cacheID;
                var tempStr = s.cacheID;
                if (tempStr != '') {
                    if (tempStr.charAt(0) != ZP_JS_ADV.separator) tempStr = ZP_JS_ADV.separator + tempStr;
                    if (tempStr.charAt(tempStr.length - 1) != ZP_JS_ADV.separator) tempStr = tempStr + ZP_JS_ADV.separator;
                }
                for (i = 0; arr[i]; i++) if (s.$_data[arr[i]] && !s.$_data[arr[i]].checked) tempStr = tempStr.replace(ZP_JS_ADV.separator + arr[i] + ZP_JS_ADV.separator, ZP_JS_ADV.separator);
                if (o.checked) tempStr += id + ZP_JS_ADV.separator;
                //s.cacheID = tempStr.charAt(0)==ZP_JS_ADV.separator?tempStr.substring(1):tempStr;
                s.cacheID = tempStr.charAt(0) == ZP_JS_ADV.separator ? tempStr.substring(1) : tempStr;
                s.cacheID = s.cacheID.charAt(s.cacheID.length - 1) == ZP_JS_ADV.separator ? s.cacheID.substr(0, s.cacheID.length - 1) : s.cacheID;
            },
            setCacheID_check: function(o) {
                var s = this;
                if (o.checked) {
                    if (o.parent != null) {
                        if (o.parent.checked) s.setCacheID_check(o.parent);
                        else {
                            //s.cacheID += o.id+ZP_JS_ADV.separator;
                            s.cacheID = s.cacheID == '' ? o.id : ZP_JS_ADV.separator + o.id;
                            s.setCacheID_check_del(o);
                        }
                    }
                    else {
                        //s.cacheID += o.id+ZP_JS_ADV.separator;
                        s.cacheID = s.cacheID == '' ? o.id : ZP_JS_ADV.separator + o.id;
                        s.setCacheID_check_del(o);
                    }
                }
            },
            setCacheID_check_del: function(o) {
                var s = this;
                var arr = s.cacheID.split(ZP_JS_ADV.separator), i;
                for (i = 0; arr[i]; i++) if (s.$_data[arr[i]]) {
                    //if(s.$_data[arr[i]].thisIsDes(o)) s.cacheID = s.cacheID.replace(arr[i]+ZP_JS_ADV.separator,'');
                    if (s.$_data[arr[i]].thisIsDes(o)) s.cacheID = s.cacheID.replace(ZP_JS_ADV.separator + arr[i], '').replace(arr[i] + ZP_JS_ADV.separator, '').replace(arr[i], '');
                }
            },
            setCacheID_uncheck: function(o) {
                var s = this;
                if (!o.checked) {
                    var temp = s.cacheID, arr, i;
                    if (temp != '') {
                        if (temp.charAt(0) != ZP_JS_ADV.separator) temp = ZP_JS_ADV.separator + temp;
                        if (temp.charAt(temp.length - 1) != ZP_JS_ADV.separator) temp = temp + ZP_JS_ADV.separator;
                    }
                    //if(temp.indexOf(ZP_JS_ADV.separator+o.id+ZP_JS_ADV.separator)>-1) s.cacheID = s.cacheID.replace(o.id+ZP_JS_ADV.separator,'');
                    if (temp.indexOf(ZP_JS_ADV.separator + o.id + ZP_JS_ADV.separator) > -1) s.cacheID = s.cacheID.replace(ZP_JS_ADV.separator + o.id, '').replace(o.id + ZP_JS_ADV.separator, '').replace(o.id, '');
                }
            },
            setHTML_Checkbox: function() {
                var s = this, i, arrI = [], arrI1 = [], arrI2 = [], arrC = [];
                arrI1 = s.dDiv.getElementsByTagName('input');
                if (s.dDiv_sub) arrI2 = s.dDiv_sub.getElementsByTagName('input');
                for (i = 0; arrI1[i]; i++) arrI.push(arrI1[i]);
                for (i = 0; arrI2[i]; i++) arrI.push(arrI2[i]);
                for (i = 0; arrI[i]; i++) if (arrI[i].name == 'zp_advJS_c_' + s.ClientID) arrC.push(arrI[i]);
                for (i = 0; arrC[i]; i++) if (s.$_data[arrC[i].value]) {
                    arrC[i].checked = s.$_data[arrC[i].value].checked;
                    if (arrC[i].checked) arrC[i].parentNode.className = arrC[i].parentNode.className.replace('boxBlur', 'boxFocus');
                    else arrC[i].parentNode.className = arrC[i].parentNode.className.replace('boxFocus', 'boxBlur');
                }
            },
            clearAdded: function() {
                var s = this;
                var arrID = s.cacheID.split(ZP_JS_ADV.separator), i;
                for (i = 0; arrID[i]; i++) {
                    if (s.$_data[arrID[i]]) {
                        var dataObj = s.$_data[arrID[i]];
                        dataObj.setCheck(false);
                    }
                }
                s.setHTML_Checkbox();
                s.cacheID = '';
                s.added = 'close';
                if (s.aDiv) {
                    s.aDiv.innerHTML = s.addedHTML(); //'';
                    if (s.div.shim && s.div.shim.getStyle('visibility') == 'visible') s.div.shim.setStyle('visibility', 'visible');
                }
            },
            showChild: function(pid, e) {
                var s = this;
                s.initrialize_sub();
                s.div_sub.flagHidePopup = false;
                var trigger = e.target ? e.target : window.event.srcElement;
                var xy_p = getXY(s.div);
                var xy_t = getXY(trigger);
                /*var x = xy_p.x+xy_t.x;
                var y = xy_p.y+xy_t.y+15;*/
                var x = e.clientX;
                var y = e.clientY;
                var scrollTop = document.documentElement.scrollTop || document.body.scrollTop, scrollLeft = document.documentElement.scrollLeft || document.body.scrollLeft;
                x = parseInt(x) + parseInt(scrollLeft);
                y = parseInt(y) + parseInt(scrollTop);

                if (s.nowPopupID || s.div_sub.style.visibility != 'hidden') {
                    if (s.nowPopupID && s.nowPopupID == pid) {
                        //return;
                        positionObject(s.div_sub.id, x, y);
                        s.div_sub.shim.setStyle('visibility', 'visible');
                    }
                    else {
                        s.div_sub.shim.setStyle('visibility', 'hidden');
                        s.dDiv_sub.innerHTML = s.subDataHTML(pid);
                        positionObject(s.div_sub.id, x, y);
                        s.div_sub.shim.setStyle('visibility', 'visible');
                        s.nowPopupID = pid;
                    }
                }
                else {
                    s.dDiv_sub.innerHTML = s.subDataHTML(pid);
                    positionObject(s.div_sub.id, x, y);
                    s.div_sub.shim.setStyle('visibility', 'visible');
                    s.nowPopupID = pid;
                }
            },
            mouseoutLink: function() {
                var s = this;
                if (s.div_sub && s.div_sub.style.visibility != 'hidden') {
                    s.div_sub.flagHidePopup = true;
                    setTimeout(function() { s.hidePopupSub.apply(s) }, 500);
                }
            },
            hidePopupSub: function() {
                var s = this;
                if (s.div_sub) {
                    if (s.div_sub.flagHidePopup) {
                        s.div_sub.shim.setStyle('visibility', 'hidden');
                        s.nowPopupID = null;
                        s.div_sub.flagHidePopup = false;
                    }
                }
            },
            clickLink: function(id, e) {
                var s = this;
                s.nowID = id;
                s.hidden.value = s.nowID;
                ZP_JS_ADV.closeDiv();
                ZP_JS_ADV.showAddedItem(s);
            },
            clickCheckbox: function(c) {
                var s = this;
                if (c.tagName.toLowerCase() == 'input' && c.type.toLowerCase() == 'checkbox' && s.$_data[c.value]) {
                    var dataObj = s.$_data[c.value];
                    if (dataObj) {
                        var flag = false;
                        if (c.checked) {
                            flag = dataObj.hasAncestorChecked() || dataObj.hasDescendantChecked();
                            if (!flag) {
                                if (s.config && s.config.max && !isNaN(s.config.max)) {
                                    if (s.cacheID == '') flag = true;
                                    else {
                                        var tempArr = s.cacheID.split(ZP_JS_ADV.separator);
                                        var addedNum = 0;
                                        for (var i = 0; tempArr[i]; i++) if (s.$_data[tempArr[i]]) addedNum++;
                                        if (addedNum < s.config.max) flag = true;
                                    }
                                }
                            }
                        }
                        else flag = true;
                        if (flag) {
                            dataObj.setCheck(c.checked);
                            s.setHTML_Checkbox();
                            s.setCacheID(c.value);
                            if (s.aDiv) {
                                s.added = (s.cacheID == '' ? 'close' : 'open');
                                s.aDiv.innerHTML = s.addedHTML();
                                if (s.div.shim && s.div.shim.getStyle('visibility') == 'visible') s.div.shim.setStyle('visibility', 'visible');
                            }
                        }
                        else {
                            c.checked = false;
                            alert('最多添加 ' + ((s.config && s.config.max) ? s.config.max : '') + ' 个' + s.title + '！');
                        }
                    }
                }
            }
        },
        encode: {
            html: function(c) {
                var c = c.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;').replace(/ /g, '&nbsp;');
                return c;
            },
            para: function(c) {
                var c = c.replace(/"/g, '&quot;');
                return c;
            }
        },
        blankFun: function() {
        },
        getRealLength: function(strTemp) {
            var i, sum = 0;
            for (i = 0; i < strTemp.length; i++) { if ((strTemp.charCodeAt(i) >= 0) && (strTemp.charCodeAt(i) <= 255)) sum = sum + 1; else sum = sum + 2; }
            return sum;
        },
        subStringPro: function(str, length) {
            var stri = '';
            for (i = 0, j = 0; j < length; ) {
                if ((str.charCodeAt(i) >= 0) && (str.charCodeAt(i) <= 255)) { stri += str.charAt(i); j++; }
                else { stri += str.charAt(i); j += 2; }
                i++;
            }
            return stri;
        }
    }
} ();

ZP_JS_ADV.EventUtils = function(){
    return {
		addEvent : function(obj,type,fn,name_hash){
			if(obj.addEventListener){obj.addEventListener(type,fn,false);}
			else if(obj.attachEvent){
				var fn_name=type+fn+name_hash;
				obj["e"+fn_name]=fn;
				obj[fn_name]=function(){obj["e"+fn_name](window.event);}
				obj.attachEvent("on"+type,obj[fn_name]);
			}
			return fn;
		},
		removeEvent : function(obj,type,fn,name_hash){
			if(obj.removeEventListener){obj.removeEventListener(type,fn,false);}
			else if(obj.detachEvent){
				var fn_name=type+fn+name_hash;
				if(obj[fn_name]){
					obj.detachEvent("on"+type,obj[fn_name]);
					obj[fn_name]=null;
					obj["e"+fn_name]=null;
				}
			}
		},
		addLoadEvent:function(fn){
            this.addEvent(window,'load',fn);
        },
        addResizeEvent:function(fn)
        {
            this.addEvent(window, 'resize', fn);
        }
	}
}();

function divMask(theObj){
    this.obj=theObj;
	this.obj.selectObj=this.obj.getElementsByTagName('select');
    var newDiv=document.createElement("div");
    newDiv.className="divMask";
    newDiv.style.zIndex=getCurrentStyle(this.obj,'zIndex')*1+1;
    var offsetLeft=getLocalOffsetLeft(this.obj);
    newDiv.style.left=offsetLeft;
    var offsetTop=getLocalOffsetTop(this.obj);
    newDiv.style.top=offsetTop;
	newDiv.style.width=this.obj.scrollWidth?this.obj.scrollWidth:this.obj.offsetWidth?this.obj.offsetWidth:this.obj.clientWidth;
    newDiv.style.height=this.obj.scrollHeight?this.obj.scrollHeight:this.obj.offsetHeight?this.obj.offsetHeight:this.obj.clientHeight;
	if(typeof(newDiv.style.filter)!='undefined') newDiv.style.filter="progid:DXImageTransform.Microsoft.Alpha(Opacity=70)";
	else newDiv.style.MozOpacity=0.7;
    newDiv.style.position="absolute";
	newDiv.style.visibility='hidden';
	
	if(theObj.tagName.toLowerCase()!='body'){
		var id=this.obj.id;
		newDiv.onclick=function(){switchFocus(id);};
	}
	
    this.div=newDiv;
	this.maskFlag=false;
    if(this.obj.parentNode.tagName.toLowerCase()!='html') this.obj.parentNode.insertBefore(this.div,this.obj);
	else if(arguments[1]&&arguments[1].nodeType==1&&arguments[1].tagName.toLowerCase()!='body') arguments[1].appendChild(this.div);
	else document.body.appendChild(this.div);
	if(this.obj.currentStyle){//IE
        this.setOpacity=this.setOpacityIE;this.getOpacity=this.getOpacityIE;
    }else{//Non IE,just pass calls through
        this.setOpacity=this.setOpacityNonIE;this.getOpacity=this.getOpacityNonIE;
    }
}
divMask.prototype={
    setStyle:function(prop,val){
                        this.obj.style[prop]=val;
                        if(prop != 'position'){//div must remain position:absolute
	                        this.div.style[prop]=val;
                        }//Refresh div's width and height from the browser calculated offsets.
                        this.div.style.width=(this.obj.scrollWidth?this.obj.scrollWidth:this.obj.offsetWidth?this.obj.offsetWidth:this.obj.clientWidth)+"px";
	                    this.div.style.height=(this.obj.scrollHeight?this.obj.scrollHeight:this.obj.offsetHeight?this.obj.offsetHeight:this.obj.clientHeight)+"px";
	                    this.div.style.left=getLocalOffsetLeft(this.obj)+"px";
				        this.div.style.top=getLocalOffsetTop(this.obj)+"px";

                 },
	getStyle:function(prop) {return this.div.style[prop];},
    setOpacityNonIE:function(val){
                            if(val<0) val=0;if(val>1) val=1;
                            this.obj.style.opacity=val;
                      },
    setOpacityIE:function(val){
                        if(val<0) val=0;if(val>1) val=1;
                        this.obj.filters.alpha.opacity=(val*100); //div stays at opacity 0
                   },
    getOpacityNonIE:function(){return getCurrentStyle(this.obj,'opacity'); },
    getOpacityIE:function(){return this.obj.filters.alpha.opacity/100.0; },
	showMask2:function(){//Refresh div's width and height from the browser calculated offsets.
                        this.div.style.width=(this.obj.scrollWidth?this.obj.scrollWidth:this.obj.offsetWidth?this.obj.offsetWidth:this.obj.clientWidth)+"px";
	                    this.div.style.height=(this.obj.scrollHeight?this.obj.scrollHeight:this.obj.offsetHeight?this.obj.offsetHeight:this.obj.clientHeight)+"px";
	                    this.div.style.left=getLocalOffsetLeft(this.obj)+"px";
				        this.div.style.top=getLocalOffsetTop(this.obj)+"px";
						this.div.style.zIndex=getCurrentStyle(this.obj,'zIndex')*1+1;
						this.div.style.visibility='visible';
						if(this.div.currentStyle) for(var i=0;this.obj.selectObj[i];i++) this.obj.selectObj[i].disabled=true;
						this.maskFlag=true;
				},
	hideMask:function(){this.div.style.visibility='hidden';if(this.div.currentStyle) for(var i=0;this.obj.selectObj[i];i++) this.obj.selectObj[i].disabled=false;this.maskFlag=false;},
	showMask:function(){
		if(this.obj.tagName.toLowerCase()=='body'){
			if(!this.maskFlag2 || this.maskFlag){
				if(!this.maskFlag2) this.maskFlag2 = true;
				if(isDocumentLoaded()){
					this.showMask2();
					if(this.timeoutID) this.timeoutID = null;
					this.maskFlag2 = false;
				}
				else{
					this.showMask2();
					var T = this;
					this.timeoutID = setTimeout('document.body.mask.showMask()',100);
				}
			}
			else{
				if(this.timeoutID) this.timeoutID = null;
				this.maskFlag2 = false;
			}
		}
		else this.showMask2();
	}
};

function isDocumentLoaded(){
	return (null!=document.readyState&&"complete"!=document.readyState)?false:true;
};

if(!document.readyState) ZP_JS_ADV.EventUtils.addLoadEvent(function(){if(document.body.mask&&document.body.mask.maskFlag) document.body.mask.showMask()});

function dashify(str){
    return str.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();
}
function getCurrentStyle(element,styleProp){//read only
    var retVal;
    if(element.currentStyle){
       //IE
       retVal=element.currentStyle[styleProp];
    }
	else if(document.defaultView&&document.defaultView.getComputedStyle){
       //Mozilla
       retVal=document.defaultView.getComputedStyle(element,null).getPropertyValue(dashify(styleProp));
    }
	else{
       //Safari:(
       retVal=null;
    }
    return retVal;
}

function getLocalOffset(offset,direction){//direction: Top Left
	var y=offset['offset'+direction];
    var div;
    try{
        div=offset.offsetParent;
    }
	catch(ex){
        //with dhtml actions that change DOM IE may throw unspecified error when checking offsetParent property
        return y;
    }
    while(div&&getCurrentStyle(div,'position')=='static'){
        y+=div['offset'+direction];
        try{
            div=div.offsetParent;
        }
		catch(ex){
            // with dhtml actions that change DOM IE may throw unspecified error when checking offsetParent property
            return y;
        }
    }
    return y;
}
function getLocalOffsetTop(offset){
	return getLocalOffset(offset,'Top');
}
function getLocalOffsetLeft(offset){
    return getLocalOffset(offset,'Left');
}

function getXY(object){// function to get an object's absolute position:x & y
    var pt=new Point(0,0);
	pt.x=getLocalOffsetLeft(object);
	pt.y=getLocalOffsetTop(object);
    return pt;
}
function Point(iX,iY){
	this.x=iX;
	this.y=iY;
}

var zp_moveObj=new Object();
zp_moveObj.dragover=null;
zp_moveObj.dragobj=null;
document.onmousemove=mmove;
document.onmousedown=mdown;
document.onmouseup=mup;
function w_mmover(id){
    zp_moveObj.dragover=id;
}
function w_mmout(){
    zp_moveObj.dragover=null;
}
function mup(e){
	zp_moveObj.dragobj=null;	
}
function mdown(e){
	if(zp_moveObj.dragover!=null){
	zp_moveObj.dragobj=document.getElementById(zp_moveObj.dragover);
	var x=(!document.all)?e.pageX:event.x||event.clientX;
    var y=(!document.all)?e.pageY:event.y||event.clientY;
	if(document.all) y+=document.body.scrollTop;
    var id=zp_moveObj.dragover;
	if(zp_moveObj.dragobj!=null){
		zp_moveObj.clickedX=x-parseInt(document.getElementById(id).style.left+0); 
		zp_moveObj.clickedY=y-parseInt(document.getElementById(id).style.top+0);
	}}
}
function mmove(e,y){
	var x=(!document.all)?e.pageX:event.x||event.clientX;
    var y=(!document.all)?e.pageY:event.y||event.clientY;
	if(document.all&&document.body&&document.body.scrollTop) y+=document.body.scrollTop;
	if(zp_moveObj.dragobj!=null){
		nx=x-zp_moveObj.clickedX;
		ny=y-zp_moveObj.clickedY;
		var OK=moveOK(zp_moveObj.dragobj,nx,ny);
		if(!OK.x) nx=getLocalOffsetLeft(zp_moveObj.dragobj);
		if(!OK.y) ny=getLocalOffsetTop(zp_moveObj.dragobj);
		zp_moveObj.dragobj.style.left=nx+"px";
		zp_moveObj.dragobj.style.top=ny+"px";
		if(zp_moveObj.dragobj.shim&&zp_moveObj.dragobj.shim.iframe){
			zp_moveObj.dragobj.shim.iframe.style.left=nx+"px";
			zp_moveObj.dragobj.shim.iframe.style.top=ny+"px";
		}
	}
}
function moveOK(d,x,y){
	var objOK={x:true,y:true};
	var w=d.offsetWidth;
	var h=d.offsetHeight;
	var dWH = getDocumentWH();
	var t=10;
	var r=dWH.w-w-10;
	var b=dWH.h-h-10;
	var l=10;
	if(x<l||(r>0&&r>l&&x>r)) objOK.x=false;
	if(y<t||(b>0&&b>t&&y>b)) objOK.y=false;
	return objOK;
}

function resizeWin(){
	if(document.body.mask&&document.body.mask.maskFlag){
		var documentWH = getDocumentWH();
		document.body.mask.div.style.width=documentWH.w;
		document.body.mask.div.style.height=documentWH.h;
	}
};
ZP_JS_ADV.EventUtils.addEvent(window,'resize',resizeWin);

function getDocumentWH(){
	var d = {w:0,h:0};
	if(window.innerHeight&&window.scrollMaxY) d.h=window.innerHeight+window.scrollMaxY;
	else if(document.body.scrollHeight>document.body.offsetHeight) d.h=document.body.scrollHeight;
	else d.h=document.body.offsetHeight+document.body.offsetTop;
	if(window.innerWidth&&window.scrollMaxX) d.w=window.innerWidth+window.scrollMaxX;
	else if(document.body.scrollWidth>document.body.offsetWidth) d.w=document.body.scrollWidth;
	else d.w=document.body.offsetWidth+document.body.offsetLeft;
	return d;
}

ZP_JS_ADV.fnChangeBg = function(o,c,t){
	if(o&&o.nodeType==1){
		if(t){
			if(o.className.indexOf(c)==-1) o.className+=o.className==''?c:' '+c;
		}
		else{
			if(o.className.indexOf(c)>-1) o.className=o.className.replace(' '+c,'').replace(c,'');
		}
	}
}
