var RegNames = new Array();
RegNames	=	['Email','Phone','Require','Number','Zip','Double','Currency','Mobile'];
var RegArray = {
	Require : /.+/,
	Email : /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,
	Phone : /^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/,
	Mobile : /^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$/,
	Url : /^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/,
	Currency : /^\d+(\.\d+)?$/,
	Number : /^\d+$/,
	Zip : /^[1-9]\d{5}$/,
	QQ : /^[1-9]\d{4,8}$/,
	Integer : /^[-\+]?\d+$/,
	Double : /^[-\+]?\d+(\.\d+)?$/,
	English : /^[A-Za-z]+$/,
	Chinese :  /^[\u0391-\uFFE5]+$/,
	Username : /^[a-z]\w{3,}$/i,
	UnSafe : /^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\"]*)|.{0,5})$|\s/
}

function trim(s)
{
	return s.replace( /^\s*/, "" ).replace( /\s*$/, "" );
}
function setBgColor(txtObjId){
	var tempColor;
	var Hcolor = document.getElementById("dlgHelper").ChooseColorDlg(tempColor).toString(16);
	value = "#"+((Hcolor.length<6)?"000000".substring(0,6-Hcolor.length):"") + Hcolor;
	document.getElementById(txtObjId).value=value;
	with(event.srcElement){
		// style.backgroundColor =value;
	}
}
function isNumber(str){
	if(/^(\-?)(\d+)/.test(str)){
		return true;
	}else{
		return false;
	}
}
function isEmpty(param) {
	if ((trim(param) == "") || (param == "undefined") || (param == "undefined")) {
		return true;
	} else {
		return false;
	}
}
function checkall(form, checkAll, check) {
	for (var i = 0; i < eval(form + ".elements.length"); i++) {
		var e = eval(form + ".elements[i]");
		if (e.name == eval(check)) {
			e.checked = eval(form + "." + checkAll + ".checked");
		}
	}
}
//主函数
function checkForm(oForm,target)
{

	var els = oForm.elements;

	//遍历所有表元素
	for(var i=0;i<els.length;i++)
	{
		//是否需要验证
		if(els[i].getAttribute("check"))
		{
			//取得验证的正则字符串
			var sReg = Filter(trim(els[i].getAttribute("check")));
			//取得表单的值,用通用取值函数
			var sVal = GetValue(els[i]);
			//字符串->正则表达式,不区分大小写
			var reg = new RegExp(sReg,"i");
			if(!reg.test(sVal))
			{
				//验证不通过,弹出提示warning
				//els[i].styles.border = '1pt solid orange';
				if (target==undefined)
				{
					alert(els[i].getAttribute("warning"));
				}else {
					var targetDiv=document.getElementById(target);
					targetDiv.style.display='block';
					targetDiv.innerHTML	=	'<div style="font-weight:bold;color:red">'+els[i].getAttribute("warning")+'</div>';
					this.intval = window.setTimeout(function (){
						//var myFx = new Fx.Style(target, 'opacity',{duration:1000}).custom(1,0);
						targetDiv.style.display='none';targetDiv.innerHTML='';},3000);
				}

				//该表单元素取得焦点,用通用返回函数
				GoBack(els[i]);
				return false;
			}
		}
	}
	return true;
}
//过滤和转换正则表达式
//支持预定义正则和表达式两种
//预定义正则参考RegNames数组
function Filter(str)
{
	if (RegNames.toString().indexOf(str)!=-1)
	{
		return RegArray[str].toString().replace( /^\/*/, "" ).replace( /\/*$/, "" );
	}
	return str;
}
// 通用取值函数分三类进行取值
// 文本输入框,直接取值el.value
// 单多选,遍历所有选项取得被选中的个数返回结果"00"表示选中两个
// 单多下拉菜单,遍历所有选项取得被选中的个数返回结果"0"表示选中一个
function GetValue(el)
{
	// 取得表单元素的类型
	var sType = el.type;
	switch(sType)
	{
		case "text":
		case "hidden":
		case "password":
		case "file":
		case "textarea": return el.value;
		case "checkbox":
		case "radio": return GetValueChoose(el);
		case "select-one":
		case "select-multiple": return GetValueSel(el);
	}
}
// 取得radio,checkbox的选中数,用"0"来表示选中的个数,我们写正则的时候就可以通过0{1,}来表示选中个数
function GetValueChoose(el)
{
	var sValue = "";
	// 取得第一个元素的name,搜索这个元素组
	var tmpels = document.getElementsByName(el.name);
	for(var i=0;i<tmpels.length;i++)
	{
		if(tmpels[i].checked)
		{
			sValue += "0";
		}
	}
	return sValue;
}
// 取得select的选中数,用"0"来表示选中的个数,我们写正则的时候就可以通过0{1,}来表示选中个数
function GetValueSel(el)
{
	var sValue = "";
	for(var i=0;i<el.options.length;i++)
	{
		// 单选下拉框提示选项设置为value=""
		if(el.options[i].selected && el.options[i].value!="")
		{
			sValue += "0";
		}
	}
	return sValue;
}


// 通用返回函数,验证没通过返回的效果.分三类进行取值
// 文本输入框,光标定位在文本输入框的末尾
// 单多选,第一选项取得焦点
// 单多下拉菜单,取得焦点
function GoBack(el)
{
	// 取得表单元素的类型
	var sType = el.type;
	switch(sType)
	{
		case "text":
		case "hidden":
		case "password":
		case "file":
		case "textarea": el.focus();var rng = el.createTextRange(); rng.collapse(false); rng.select();
		case "checkbox":
		case "radio": var els = document.getElementsByName(el.name);els[0].focus();
		case "select-one":
		case "select-multiple":el.focus();
	}
}
function locateAction(action) {
	self.location = action;
}
function openWindow(location,width,height,left,top){
	window.open(location,'diaochaWin','height='+height+', width='+width+', top='+top+', left='+left+', toolbar=no, menubar=no, scrollbars=yes,resizable=yes,location=no, status=no');
}

function openWindow2(location, width, height, left, top) {
	window.open(location, "noticeWin", "height=" + height + ", width=" + width + ", top=" + top + ", left=" + left + ", toolbar=no, menubar=no, scrollbars=yes,resizable=yes,location=no, status=no");
}
function strlen(str) {
	var len;
	var i;
	len = 0;
	for (i = 0; i < str.length; i++) {
		if (str.charCodeAt(i) > 255) {
			len += 2;
		} else {
			len++;
		}
	}
	return len;
}


function copyToClipboard(txt) {
    if(window.clipboardData) {
            window.clipboardData.clearData();
            window.clipboardData.setData("Text", txt);
    } else if(navigator.userAgent.indexOf("Opera") != -1) {
         window.location = txt;
    } else if (window.netscape) {
         try {
              netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
         } catch (e) {
              alert("被浏览器拒绝！\n请在浏览器地址栏输入'about:config'并回车\n然后将'signed.applets.codebase_principal_support'设置为'true'");
         }
         var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
         if (!clip)
              return;
         var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
         if (!trans)
              return;
         trans.addDataFlavor('text/unicode');
         var str = new Object();
         var len = new Object();
         var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
         var copytext = txt;
         str.data = copytext;
         trans.setTransferData("text/unicode",str,copytext.length*2);
         var clipid = Components.interfaces.nsIClipboard;
         if (!clip)
              return false;
         clip.setData(trans,null,clipid.kGlobalClipboard);
    }
    alert("复制成功");
}
// 字符串替换 参数:源字串 替换字串 替换后的字串
function replacestr(source, obj, target)
{
    var reg = new RegExp(obj,"g");
    return(source.replace(reg, target));
}
function drawImage(ImgId,maxwidth,maxheight){
	// 本程序将图像控制在宽为maxwidth且高为maxheight的框内
	// ImgId是图像ID，maxwidth、maxheight是图像最大显示宽度和高度
	var image=new Image();
	var pImage=document.getElementById(ImgId);
	image.src=pImage.src;
	var imgwidth=image.width;
	var imgheight=image.height;
	if(imgwidth>0 && imgheight>0 && maxwidth>0 && maxheight>0){
		if(imgwidth>maxwidth || imgheight>maxheight){
		   if(imgwidth/imgheight>= maxwidth/maxheight){
		    	pImage.width=maxwidth;
		    	pImage.height=(imgheight*maxwidth)/imgwidth;
		   }
		   else{
		    pImage.height=maxheight;
		    pImage.width=(imgwidth*maxheight)/imgheight;
		   }
		}else{
		   pImage.width=imgwidth;
		   pImage.height=imgheight;
		}
	}
}
/**
 * 返回json数据
 * @param formId
 * @param url
 * @param beforeFn
 * @param afterFn
 * @param targetDiv
 */
function formAjaxSubmit(formId,url,beforeFn,afterFn,targetDiv){
	var theForm =document.getElementById(formId);

	if (checkForm(theForm)){//表单数据验证
		var options = {
				 url:url,
				 beforeSubmit:beforeFn,
			     success:afterFn,
			     target:"#"+targetDiv,
			     type:"post",
			     dataType:"json",
			     contentType: "application/x-www-form-urlencoded; charset=utf-8",
			     resetForm : false};
		$("#"+formId).ajaxSubmit(options);
	}

}
/**
 * 直接提交到targetDiv
 * @param formId
 * @param url
 * @param beforeFn
 * @param afterFn
 * @param targetDiv
 */
function formAjaxSubmitForTarget(formId,url,beforeFn,afterFn,targetDiv){
	var options = {
		 url:url,
		 beforeSubmit:beforeFn,
	     success:afterFn,
	     target:"#"+targetDiv,
	     type:"post",
	     contentType: "application/x-www-form-urlencoded; charset=utf-8",
	     resetForm : true
	};
	$("#"+formId).ajaxSubmit(options);

}
function addPoll(){
	//判断是否在个人中心
	var value=$('#rightColumn').length;
	var random = Math.round(Math.random() * 10000);
	if(value>0){
		$("#rightColumn").load(APP+"/Center/Poll/add/random/" + random);
	}else{
		window.location = APP+'/Center/User/index';
	}

}



