//改变enabled状态
function toggleEnabled(form,namelist,status){
	if(typeof(namelist)=='string') namelist=namelist.replace(/, +/g,',').split(',');
	for(var i=0;i<namelist.length;i++){
		var e=form.elements[namelist[i]];
		if(e[0]){
			for(var j=0;j<e.length;j++){
				e[j].disabled = status!=undefined ? !status : (e[j].disabled?0:1);
			}
		}else{
			e.disabled = status!=undefined ? !status : (e.disabled?0:1);
		}
	}
}

//检查表单各项是否已填写
function checkForm(form,namelist){
	selectAll(form);
	if(typeof(namelist)=='string') namelist=namelist.replace(/, +/g,',').split(',');
	for(var i=0;i<namelist.length;i++){
		if(isEmpty(form.elements[namelist[i]])) return false;
	}
	return true;
}

//检查某个字段是否已填写
function isEmpty(field){	
	if(field.value==undefined && field[0]){
		for(var i=0;i<field.length;i++){
			if(field[i].checked) return false;
		}
		alert('请填写所有带*项目！');
		try{field[0].focus();}catch(e){}
		return true;
	}else if( (field.type=='checkbox' || field.type=='radio')
			? !field.checked
			: field.value.replace(/(^[\s　]+|[\s　]+$)/g,'')=='')
	{
		alert('请填写所有带*项目！');
		try{field.focus();}catch(e){}
		return true;
	}
	return false;
}

//全选/取消checkbox
function checkAll(form,boxname,btnref,btntext){
	var chkbx=form.elements[boxname], checked=1;
	if(btnref){
		if(btnref.type=='button'){
			if(btntext==undefined) btntext=['全选','取消'];
			checked=btnref.value!=btntext[1]?1:0;
			btnref.value=btnref.value!=btntext[1]?btntext[1]:btntext[0];
		}else{
			checked=btnref;
		}
	}
	if(chkbx[0]){
		for(var i=0;i<chkbx.length;i++) chkbx[i].checked=checked;
	}else{
		chkbx.checked=checked;
	}
}

//全选select
function selectAll(form,namelist){
	if(!namelist){
		var els=form.getElementsByTagName('select');
		for(var i=0;i<els.length;i++){
			if(els[i].type=='select-multiple'){
				for(j=0;j<els[i].options.length;j++){
					els[i].options[j].selected=1;
				}
			}
		}
	}else{
		if(typeof(namelist)=='string') namelist=namelist.replace(/, +/g,',').split(',');
		for(var i=0;i<namelist.length;i++){	
			var e=form.elements[namelist[i]];
			for(var j=0;j<e.options.length;j++){
				e.options[j].selected=1;
			}
		}
	}
}

//限制select-multiple选择数目
function limitSelect(select,max){	
	if(typeof(select)=='string') select=document.getElementById(select);
	var selectnum=0,i;
	for(i=0;i<select.length;i++){
		if(select.options[i].selected && ++selectnum>max){
			alert('最多可选'+max+'项!');
			break;
		}
	}
	for(;i<select.length;i++) select.options[i].selected=false;
}

//限制向select中添加的options数目
function limitLength(select,max){
	if(typeof(select)=='string') select=document.getElementById(select);
	if(select.options.length>max){
		alert('最多可添加'+max+'项！');
		while(select.options[max]){
			select.options[max]=null;
		}
	}
}

//显示/隐藏搜索框
function showSearchBox(boxid){
	if(!boxid) boxid='searchbox';
	var s=document.getElementById("searchbox");
	s.style.left=(s.offsetLeft==-9999?(document.body.offsetWidth-s.offsetWidth)/2:-9999)+"px";

	//如果有类型选择框就隐藏
	if(typeof($)=='function' && s.offsetLeft==-9999) $('#multisel').hide();
}

//确认删除提示
function confirmDelete(msg){
	if(!msg) msg="确定要删除所有选择的记录吗?";
	return confirm(msg);
}

//类型选择窗口
function displayCatSelection(button,module,multiple){
	var msid='multisel';
	var $ms=$('#'+msid);
	if(!$ms.length){	//初次展开
		$ms=$('<div id="'+msid+'"/>').hide()
			.css({background:'#EEE', border:'solid 1px #CCC', position:'absolute'});
		$('<iframe/>').appendTo($ms).css('margin','25px 0 5px')
			.attr({frameBorder:0, width:120, height:000, src:'about:blank',id:msid+"_frame"});
		var ctrl=$("<div/>").css({textAlign:'center',whiteSpace:'noWrap'}).appendTo($ms);
		$ms.wrapInner('<div style="border:solid 1px #eee;padding:4px"></div>');

		//确定按钮
		$("<input type='button' value='确定'/>").appendTo(ctrl)
			.after("&nbsp;<input type='button' value='取消' onclick='displayCatSelection()'/>")
			.click(function(){

			var field=$('#'+msid).next();
			var button=field.next();
			var collect=$('#'+msid+'_frame').contents().find('input[name=catid]');
			var checked=false;

			for(var i=0;i<collect.length;i++){
				if(collect[i].checked){
					checked=true;
					break;
				}
			}

			if(!checked){
				alert('请选择类别！');
				return;
			}else if(field.attr('type')=='select-multiple'){
				field.find('option').remove();
				for(i=0;i<collect.length;i++){
					if(collect[i].checked){
						$("<option/>").text($(collect[i]).next('label').html())
							.val(collect[i].value).appendTo(field);
					}
				}
			}else{
				for(i=0;i<collect.length;i++){
					if(collect[i].checked){
						button.val($(collect[i]).next('label').html());
						field.val(collect[i].value);
						break;
					}
				}
			}

			displayCatSelection();
			field.trigger('change');
		});//end确定按钮
	}

	//确定网站根目录
	if(!window.siteurl){
		var els=document.getElementsByTagName('script');
		for(var i=0;i<els.length;i++){
			if(els[i].src && /\bjs\/form\.js$/i.test(els[i].src)){
				window.siteurl=els[i].src.replace(/js\/[^\/]+$/,'');
				break;
			}
		}
	}

	var url=siteurl+'category_sel.php?m='+module+'&multiple='+multiple;
	var isie=$.browser.msie;
	button=$(button);

	//如是隐藏的就直接显示
	if($ms.css('display')=='none'){
		var offset=button.css('position','relative').addClass('multisel_btn').position();
		$ms.insertBefore(button.prev()).css({left:offset.left-5, top:offset.top-5});
		isie?$ms.show('fast'):$ms.show();
		document.getElementById(msid+'_frame').contentWindow.document.location.replace(url);
	
	//点击的是[取消]或者和展开用的同一个按钮，直接隐藏
	}else if(!arguments.length || button.is('.multisel_btn')){
		isie?$ms.hide('fast'):$ms.hide();
		$('.multisel_btn').removeClass('multisel_btn').css('position','static');
		document.getElementById(msid+'_frame').contentWindow.document.location.replace('about:blank');
	
	//点击的是另一个展开按钮，就把层移动过来
	}else{
		$ms.hide();
		$('.multisel_btn').removeClass('multisel_btn').css('position','static');
		var offset=button.css('position','relative').addClass('multisel_btn').position();
		$ms.insertBefore(button.prev()).css({left:offset.left-5, top:offset.top-5});
		isie?$ms.show('fast'):$ms.show();
		document.getElementById(msid+'_frame').contentWindow.document.location.replace(url);
	}
}

//限制文章关键字
function checkKeyword(fKeyword,fTitle,num){
	if(num==undefined) num=4;
	fKeyword.value=fKeyword.value.replace(/[\s　]+/g," ");
	var k=fKeyword.value.split(" ");
	for(var i=0;i<k.length;i++){
		if(i>num){
			alert("关键字数目不得超过"+num+"个！");
			fKeyword.focus();
			return false;
		}else if(-1==fTitle.value.indexOf(k[i])){
			alert("关键字须为标题中出现的词语！");
			fKeyword.focus();
			return false;
		}
	}
	return true;
}