function $g(e) {return document.getElementById(e);}

document.getElementsByClassName = function(cl) {
    var retnode = [];
    var myclass = new RegExp('\\b'+cl+'\\b');
    var elem = this.getElementsByTagName('*');
    for (var i = 0; i < elem.length; i++) {
        var classes = elem[i].className;
        if (myclass.test(classes)) retnode.push(elem[i]);
    }
    return retnode;
}

function resizeImage(obj, MaxW, MaxH){
	var imageObject = obj;
	var state = imageObject.readyState;
	if(state!='complete') {
		setTimeout('resizeImage("+imageObject+","+MaxW+","+MaxH+")',50);
		return;
	}
	var oldImage = new Image();
	oldImage.src = imageObject.src;
	var dW = oldImage.width; 
	var dH = oldImage.height;
	if(dW>MaxW || dH>MaxH){
		a = dW/MaxW; b = dH/MaxH;
		if( b>a ) a = b;
		dW = dW/a; dH = dH/a;
	}
	if(dW > 0 && dH > 0) {
		imageObject.width = dW;
		imageObject.height = dH;
	}
}

function AutoResizeImage(objImg,maxWidth,maxHeight){
	var img = new Image();
	img.src = objImg.src;
	var hRatio;
	var wRatio;
	var Ratio = 1;
	var w = img.width;
	var h = img.height;
	wRatio = maxWidth / w;
	hRatio = maxHeight / h;
	if (maxWidth ==0 && maxHeight==0){
		Ratio = 1;
	}else if (maxWidth==0){//
		if (hRatio<1) Ratio = hRatio;
	}else if (maxHeight==0){
		if (wRatio<1) Ratio = wRatio;
	}else if (wRatio<1 || hRatio<1){
		Ratio = (wRatio<=hRatio?wRatio:hRatio);
	}
	if (Ratio<1){
		w = w * Ratio;
		h = h * Ratio;
	}
	objImg.height = h;
	objImg.width = w;
}

var regexEnum = 
{
	intege:"^-?[1-9]\\d*$",					//整数
	intege1:"^[1-9]\\d*$",					//正整数
	intege2:"^-[1-9]\\d*$",					//负整数
	num:"^([+-]?)\\d*\\.?\\d+$",			//数字
	num1:"^[1-9]\\d*|0$",					//正数（正整数 + 0）
	num2:"^-[1-9]\\d*|0$",					//负数（负整数 + 0）
	decmal:"^([+-]?)\\d*\\.\\d+$",			//浮点数
	decmal1:"^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$",　　	//正浮点数
	decmal2:"^-([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*)$",　 //负浮点数
	decmal3:"^-?([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*|0?.0+|0)$",　 //浮点数
	decmal4:"^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*|0?.0+|0$",　　 //非负浮点数（正浮点数 + 0）
	decmal5:"^(-([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*))|0?.0+|0$",　　//非正浮点数（负浮点数 + 0）

	email:"^\\w+((-\\w+)|(\\.\\w+))*\\@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[A-Za-z0-9]+$", //邮件
	color:"^[a-fA-F0-9]{6}$",				//颜色
	url:"^http[s]?:\\/\\/([\\w-]+\\.)+[\\w-]+([\\w-./?%&=]*)?$",	//url
	chinese:"^[\\u4E00-\\u9FA5\\uF900-\\uFA2D]+$",					//仅中文
	ascii:"^[\\x00-\\xFF]+$",				//仅ACSII字符
	zipcode:"^\\d{6}$",						//邮编
	mobile:"^(13|15)[0-9]{9}$",				//手机
	ip4:"^(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)$",	//ip地址
	notempty:"^\\S+$",						//非空
	picture:"(.*)\\.(jpg|bmp|gif|ico|pcx|jpeg|tif|png|raw|tga)$",	//图片
	rar:"(.*)\\.(rar|zip|7zip|tgz)$",								//压缩文件
	date:"^\\d{4}(\\-|\\/|\.)\\d{1,2}\\1\\d{1,2}$",					//日期
	qq:"^[1-9]*[1-9][0-9]*$",				//QQ号码
	tel:"^(([0\\+]\\d{2,3}-)?(0\\d{2,3})-)?(\\d{7,8})(-(\\d{3,}))?$",	//电话号码的函数(包括验证国内区号,国际区号,分机号)
	username:"^\\w+$",						//用来用户注册。匹配由数字、26个英文字母或者下划线组成的字符串
	letter:"^[A-Za-z]+$",					//字母
	letter_u:"^[A-Z]+$",					//大写字母
	letter_l:"^[a-z]+$",					//小写字母
	idcard:"^[1-9]([0-9]{14}|[0-9]{17})$"	//身份证
}

//获取指定字符串的长度
function getLength(obj){
    var srcjo = $(obj);
    var sType = srcjo.get(0).type;
    var len = 0;
    switch(sType)
	{
		case "text":
		case "hidden":
		case "password":
		case "textarea":
		case "file":
	        var val = srcjo.val();
			for (var i = 0; i < val.length; i++) 
            {
		        if (val.charCodeAt(i) >= 0x4e00 && val.charCodeAt(i) <= 0x9fa5){ 
			        len += 2;
		        }else {
			        len++;
				}
	        }
	        break;
		case "checkbox":
		case "radio": 
			len = $("input[type="+sType+"][name="+srcjo.attr("name")+"]:checked").length;
			break;
	    case "select-one":
		case "select-multiple":
			len = $("select[name="+srcjo.get(0).name+"] option:selected").length;
			break;
    }
	return len;
}

function checkform(formobj){
	var ret=false;
	var condcnt=0,passcnt=0;
	$(formobj).find("*[name]").each(function(){
		if(typeof($(this).attr("empty"))!='undefined'){
			if($(this).attr("empty")=="false"){
				condcnt++;
				var pass=true;
				var len=getLength(this);
				if(this.type=="select-one"){
					var val=$.trim($(this).val());
					pass=val.length>0?true:false;
				}
				if(len>0 && pass){
					if($(this).attr("datatype")){
						// 验证数据类型
						regexpress=eval("regexEnum."+$(this).attr("datatype"));
						if(!(regexpress==undefined || regexpress=="")){
							var exp = new RegExp(regexpress,"i");
							if (exp.test(val)){
								passcnt++;
							}else{
								alert($(this).attr("ctlname")+"输入格式不正确，请检查!");
								// 当为隐藏字段时，focus事件不存在
								if(this.type!="hidden") {
									// 当验证项目display为none时，IE下出错导致表单验证未通过情况下被提交，这里做错误捕获
									try{this.focus();}catch(e){};
								}
								return false;
							}
						}else{
							// 未定义的数据类型，保留用作自定义验证规则部分
						}
					}else{
						passcnt++;
					}
				}else{
					alert($(this).attr("ctlname")+"不能为空!"); if(this.type!="hidden") { try{this.focus();}catch(e){};} return false;
				}
				if($(this).attr("eqctl")){
					condcnt++;
					if($(this).val()==$("#"+$(this).attr("eqctl")).val()){
						passcnt++;
					}else{
						alert($("#"+$(this).attr("eqctl")).attr("ctlname")+"与"+$(this).attr("ctlname")+"输入不一致!"); if(this.type!="hidden") { try{this.focus();}catch(e){};}; return false;
					}
				}
			}
		}
	});
	if(condcnt==passcnt) { ret=true;}
	return ret;
}

function AddFavorite(sURL, sTitle){
	try{
		window.external.addFavorite(sURL, sTitle);
	}catch (e){
		try{
			window.sidebar.addPanel(sTitle, sURL, "");
		}catch (e){
			alert("加入收藏失败，请使用Ctrl+D进行添加");
		}
	}
}


/*
通用三级联动说明
参数配置如下，配置select的三个ID和默认值就行，无默认值填写为null
var defaults = {
	s1:'Select1',
	s2:'Select2',
	s3:'Select3',
	v1:null,
	v2:null,
	v3:null
};
*/

function threeSelect(srcdata,config){
	var $s1=$("#"+config.s1);
	var $s2=$("#"+config.s2);
	var $s3=$("#"+config.s3);
	var v1=config.v1?config.v1:null;
	var v2=config.v2?config.v2:null;
	var v3=config.v3?config.v3:null;
	$.each(srcdata,function(k,v){
		appendOptionTo($s1,k,v.val,v1);
	});
	$s1.change(function(){
		$s2.html("");
		$s3.html("");
		if(this.selectedIndex==-1) return;
		var s1_curr_val = this.options[this.selectedIndex].value;
		$.each(srcdata,function(k,v){
			if(s1_curr_val==v.val){
				if(v.items){
					$.each(v.items,function(k,v){
						appendOptionTo($s2,k,v.val,v2);
					});
				}
			}
		});
		if($s2[0].options.length==0){appendOptionTo($s2,"...","",v2);}
		$s2.change();
	}).change();
	$s2.change(function(){
		$s3.html("");
		var s1_curr_val = $s1[0].options[$s1[0].selectedIndex].value;
		if(this.selectedIndex==-1) return;
		var s2_curr_val = this.options[this.selectedIndex].value;
		$.each(srcdata,function(k,v){
			if(s1_curr_val==v.val){
				if(v.items){
					$.each(v.items,function(k,v){
						if(s2_curr_val==v.val){
							$.each(v.items,function(k,v){
								appendOptionTo($s3,k,v,v3);
							});
						}
					});
					if($s3[0].options.length==0){appendOptionTo($s3,"...","",v3);}
				}
			}
		});
	}).change();
	function appendOptionTo($o,k,v,d){
		var $opt=$("<option>").text(k).val(v);
		if(v==d){$opt.attr("selected", "selected")}
		$opt.appendTo($o);
	}
}

function IsNumeric(sText){
	var ValidChars = "0123456789.";
	var IsNumber=true;
	var Char;
	for (i = 0; i < sText.length && IsNumber == true; i++) { 
		Char = sText.charAt(i); 
		if (ValidChars.indexOf(Char) == -1) {
			IsNumber = false;
		}
	}
	return IsNumber;
}

//插入上传附件
function addUploadItem(id,type,path){
	var oEditor = parent.FCKeditorAPI.GetInstance(id);
	EditType="FCkEditor";
	type=type.toLowerCase()
 	 switch(type){
 	  case 'gif':
        oEditor.InsertHtml('<img src="'+path+'" alt=""/>');
 	  	break;
 	  case 'jpg':
        oEditor.InsertHtml('<img src="'+path+'" alt=""/>');
 	  	break;
 	  case 'png':
        oEditor.InsertHtml('<img src="'+path+'" alt=""/>');
 	  	break;
 	  case 'bmp':
        oEditor.InsertHtml('<img src="'+path+'" alt=""/>');
 	  	break;
 	  case 'jpeg':
        oEditor.InsertHtml('<img src="'+path+'" alt=""/>');
 	  	break;
 	  case 'mp3':
        oEditor.InsertHtml('<object classid="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95"  id="MediaPlayer" width="450" height="70"><param name=""showStatusBar" value="-1"><param name="AutoStart" value="False"><param name="Filename" value="'+path+'"></object>');
 	  	break;
 	  case 'wma':
        oEditor.InsertHtml('<object classid="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95"  id="MediaPlayer" width="450" height="70"><param name=""showStatusBar" value="-1"><param name="AutoStart" value="False"><param name="Filename" value="'+path+'"></object>');
 	  	break;
 	  case 'rm':
        oEditor.InsertHtml('<object classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" width="400" height="300"><param name="SRC" value="'+path+'" /><param name="CONTROLS" VALUE="ImageWindow" /><param name="CONSOLE" value="one" /><param name="AUTOSTART" value="true" /><embed src="'+path+'" nojava="true" controls="ImageWindow" console="one" width="400" height="300"></object><br/><object classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" width="400" height="32" /><param name="CONTROLS" value="StatusBar" /><param name="AUTOSTART" value="true" /><param name="CONSOLE" value="one" /><embed src="'+path+'" nojava="true" controls="StatusBar" console="one" width="400" height="24" /></object><br/><object classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" width="400" height="32" /><param name="CONTROLS" value="ControlPanel" /><param name="AUTOSTART" value="true" /><param name="CONSOLE" value="one" /><embed src="'+path+'" nojava="true" controls="ControlPanel" console="one" width="400" height="24" autostart="true" loop="false" /></object>');
 	  	break;
 	  case 'rmvb':
        oEditor.InsertHtml('<object classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" width="400" height="300"><param name="SRC" value="'+path+'" /><param name="CONTROLS" VALUE="ImageWindow" /><param name="CONSOLE" value="one" /><param name="AUTOSTART" value="true" /><embed src="'+path+'" nojava="true" controls="ImageWindow" console="one" width="400" height="300"></object><br/><object classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" width="400" height="32" /><param name="CONTROLS" value="StatusBar" /><param name="AUTOSTART" value="true" /><param name="CONSOLE" value="one" /><embed src="'+path+'" nojava="true" controls="StatusBar" console="one" width="400" height="24" /></object><br/><object classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" width="400" height="32" /><param name="CONTROLS" value="ControlPanel" /><param name="AUTOSTART" value="true" /><param name="CONSOLE" value="one" /><embed src="'+path+'" nojava="true" controls="ControlPanel" console="one" width="400" height="24" autostart="true" loop="false" /></object>');
 	  	break;
 	  case 'ra':
        oEditor.InsertHtml('<object classid="clsid:CFCDAA03-8BE4-11CF-B84B-0020AFBBCCFA" id="RAOCX" width="450" height="60"><param name="_ExtentX" value="6694"><param name="_ExtentY" value="1588"><param name="AUTOSTART" value="true"><param name="SHUFFLE" value="0"><param name="PREFETCH" value="0"><param name="NOLABELS" value="0"><param name="SRC" value="'+path+'"><param name="CONTROLS" value="StatusBar,ControlPanel"><param name="LOOP" value="0"><param name="NUMLOOP" value="0"><param name="CENTER" value="0"><param name="MAINTAINASPECT" value="0"><param name="BACKGROUNDCOLOR" value="#000000"><embed src="'+path+'" width="450" autostart="true" height="60"></embed></object>');
 	  	break;
 	  case 'asf':
        oEditor.InsertHtml('<object classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95" codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,0,02,902" type="application/x-oleobject" standby="Loading..." width="400" height="300"><param name="FileName" VALUE="'+path+'" /><param name="ShowStatusBar" value="-1" /><param name="AutoStart" value="true" /><embed type="application/x-mplayer2" pluginspage="http://www.microsoft.com/Windows/MediaPlayer/" src="'+path+'" autostart="true" width="400" height="300" /></object>');
 	  	break;
 	  case 'avi':
        oEditor.InsertHtml('<object classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95" codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,0,02,902" type="application/x-oleobject" standby="Loading..." width="400" height="300"><param name="FileName" VALUE="'+path+'" /><param name="ShowStatusBar" value="-1" /><param name="AutoStart" value="true" /><embed type="application/x-mplayer2" pluginspage="http://www.microsoft.com/Windows/MediaPlayer/" src="'+path+'" autostart="true" width="400" height="300" /></object>');
 	  	break;
 	  case 'wmv':
        oEditor.InsertHtml('<object classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95" codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,0,02,902" type="application/x-oleobject" standby="Loading..." width="400" height="300"><param name="FileName" VALUE="'+path+'" /><param name="ShowStatusBar" value="-1" /><param name="AutoStart" value="true" /><embed type="application/x-mplayer2" pluginspage="http://www.microsoft.com/Windows/MediaPlayer/" src="'+path+'" autostart="true" width="400" height="300" /></object>');
 	  	break;
 	  case 'swf':
        oEditor.InsertHtml('<object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="400" height="300"><param name="movie" value="'+path+'" /><param name="quality" value="high" /><param name="AllowScriptAccess" value="never" /><embed src="'+path+'" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="400" height="300" /></object>');
 	  	break;
 	  default :
        oEditor.InsertHtml('<a href="'+path+'"><img border="0" src="/resource/icon/download.gif" alt="" style="margin:0px 2px -4px 0px"/>点击下载此文件</a>');
        break;
     }
}

function fav_it(id){
	$.ajax({
		type:"POST",
		url:"include/ajax.asp",
		data:"act=fav&id="+id,
		success:function(data){
			switch(data){
			case "ok":
				alert("收藏信息成功！"); break;
			case "loginfalse":
				alert("登录后才可以收藏！"); break;
			case "has_fav":
				alert("您已经收藏过，不用重复收藏！"); break;
			default:
				alert("收藏信息失败！");
			}
		}
	});
}
