UNPKG

dzxstatic

Version:

The static files of Discuz! X

1 lines 5.34 kB
function xmlobj(){var e=new Object;return e.createXMLDoc=function(e){var t=!1;if(window.DOMParser&&document.implementation&&document.implementation.createDocument)try{t=(new DOMParser).parseFromString(e,"text/xml")}catch(e){}else if(window.ActiveXObject)for(var n=["MSXML2.DOMDocument.5.0","MSXML2.DOMDocument.4.0","MSXML2.DOMDocument.3.0","MSXML2.DOMDocument","Microsoft.XmlDom"],i=0;i<n.length;i++)try{(t=new ActiveXObject(n[i]))&&(t.async=!1,t.loadXML(e))}catch(e){}return t},e.xml2json=function(e,t){var n=t.attributes;if(null!=n){n.length&&null==e&&(e=new Object);for(var i=0;i<n.length;i++)e[n[i].name]=n[i].value}var o="text";null==t.text&&(o="textContent");var a=t.childNodes;if(null!=a){a.length&&null==e&&(e=new Object);for(i=0;i<a.length;i++)null!=a[i].tagName&&(null!=a[i].childNodes[0]&&a[i].childNodes.length<=1&&(3==a[i].childNodes[0].nodeType||4==a[i].childNodes[0].nodeType)?null==e[a[i].tagName]?e[a[i].tagName]=a[i][o]:"object"==typeof e[a[i].tagName]&&e[a[i].tagName].length?e[a[i].tagName][e[a[i].tagName].length]=a[i][o]:(e[a[i].tagName]=[e[a[i].tagName]],e[a[i].tagName][1]=a[i][o]):a[i].childNodes.length?null==e[a[i].tagName]?(e[a[i].tagName]=new Object,this.xml2json(e[a[i].tagName],a[i])):e[a[i].tagName].length?(e[a[i].tagName][e[a[i].tagName].length]=new Object,this.xml2json(e[a[i].tagName][e[a[i].tagName].length-1],a[i])):(e[a[i].tagName]=[e[a[i].tagName]],e[a[i].tagName][1]=new Object,this.xml2json(e[a[i].tagName][1],a[i])):e[a[i].tagName]=a[i][o])}},e}var xml=new xmlobj,xmlpar=xml.createXMLDoc(forum_optionlist),forum_optionlist_obj=new Object;function changeselectthreadsort(e,t,n){if("0"!=e){var i="s"+t,o="s"+e;forum_optionlist=forum_optionlist_obj.forum_optionlist;var a=forum_optionlist[i].schoices,r=1,s=issearch=id=nameid="";"search"==n?(issearch=", 'search'",s=' name="searchoption['+t+'][value]"',id='id="'+forum_optionlist[i].sidentifier+'"'):(s=' name="typeoption['+forum_optionlist[i].sidentifier+']"',id='id="typeoption_'+forum_optionlist[i].sidentifier+'"'),1!=a[o].slevel&&"search"!=n||1!=a[o].scount||(nameid=s+" "+id);var l="<select"+nameid+' class="ps vm" onchange="changeselectthreadsort(this.value, \''+t+"'"+issearch+");checkoption('"+forum_optionlist[i].sidentifier+"', '"+forum_optionlist[i].srequired+"', '"+forum_optionlist[i].stype+"')\" "+(1==forum_optionlist[i].sunchangeable&&"update"==n?"disabled":"")+'><option value="0">请选择</option>';for(var c in a){if(nameid="",1!=a[o].slevel&&"search"!=n||a[c].scount!=a[o].scount||(nameid=s+" "+id),"0"!=a[c].sfoptionid){var m=new RegExp("^"+a[c].sfoptionid+"\\.","i"),p=new RegExp("^"+a[c].sfoptionid+"$","i");if(null==e.match(m)&&null==e.match(p))continue}if(a[c].scount!=r){if(parseInt(a[c].scount)>=parseInt(a[o].scount)+parseInt(a[o].slevel))break;l+="</select>\r\n<select"+nameid+' class="ps vm" onchange="changeselectthreadsort(this.value, \''+t+"'"+issearch+");checkoption('"+forum_optionlist[i].sidentifier+"', '"+forum_optionlist[i].srequired+"', '"+forum_optionlist[i].stype+"')\" "+(1==forum_optionlist[i].sunchangeable&&"update"==n?"disabled":"")+'><option value="0">请选择</option>',r=parseInt(a[c].scount)}m=new RegExp("^"+a[c].soptionid+"\\.","i"),p=new RegExp("^"+a[c].soptionid+"$","i");var u="";1!=parseInt(a[c].slevel)&&(u="&raquo;"),null!=e.match(m)||null!=e.match(p)?l+='\r\n<option value="'+a[c].soptionid+'" selected="selected">'+a[c].scontent+u+"</option>":l+='\r\n<option value="'+a[c].soptionid+'">'+a[c].scontent+u+"</option>"}l+="</select>","search"==n&&(l+='\r\n<input type="hidden" name="searchoption['+t+'][type]" value="select">'),$("select_"+forum_optionlist[i].sidentifier).innerHTML=l}}function checkoption(e,t,n,i,o,a){if("image"!=n&&"select"!=n&&!$("typeoption_"+e)||!$("check"+e))return!0;var r=$("check"+e);if(r.innerHTML="","select"==n){if("0"!=t&&(null==$("typeoption_"+e)||"0"==$("typeoption_"+e).value))return warning(r,"必填项目没有填写"),!1;if("0"==t&&(null==$("typeoption_"+e)||"0"==$("typeoption_"+e).value))return r.innerHTML='<img src="'+IMGDIR+'/check_error.gif" width="16" height="16" class="vm" /> 请选择下一级',r.className="warning",!0}if("radio"==n||"checkbox"==n){for(var s=$("typeoption_"+e).parentNode.parentNode.parentNode.getElementsByTagName("INPUT"),l=!1,c=0;c<s.length;c++)s[c].id=="typeoption_"+e&&s[c].checked&&(l=!0);if(!l&&"0"!=t)return warning(r,"必填项目没有填写"),!1}if("image"==n)var m=$("sortaid_"+e).value;else m=$("typeoption_"+e).value;if("0"!=t){if(""==m)return warning(r,"必填项目没有填写"),!1;r.innerHTML='<img src="'+IMGDIR+'/check_right.gif" width="16" height="16" class="vm" />'}if(m){if("email"==n&&!/^[\-\.\w]+@[\.\-\w]+(\.\w+)+$/.test(m))return warning(r,"邮件地址不正确"),!1;if(("text"==n||"textarea"==n)&&"0"!=a&&mb_strlen(m)>a)return warning(r,"填写项目长度过长"),!1;if("number"==n||"range"==n){if(isNaN(m))return warning(r,"数字填写不正确"),!1;if("0"!=i&&parseInt(m)>parseInt(i))return warning(r,"大于设置最大值"),!1;if("0"!=o&&parseInt(m)<parseInt(o))return warning(r,"小于设置最小值"),!1}else if("url"==n&&!/(http[s]?|ftp):\/\/[^\/\.]+?\..+\w[\/]?$/i.test(m))return warning(r,"请正确填写以http://开头的URL地址"),!1;r.innerHTML='<img src="'+IMGDIR+'/check_right.gif" width="16" height="16" class="vm" />'}return!0}xml.xml2json(forum_optionlist_obj,xmlpar);