/**
 * 提示信息
 * @param msg 提示信息内容
 */
function showMsg(msg)
{
	alert(msg);
}
/**
 * 添加到收藏夹
 * @param url
 * @param title
 * @returns 
 */
function addfavor(url,title) {
	if(confirm("网站名称："+title+"\n网址："+url+"\n确定添加收藏?")){
		var ua = navigator.userAgent.toLowerCase();
		if(ua.indexOf("msie 8")>-1){
			external.AddToFavoritesBar(url,title,'');//IE8
		}else{
			try {
				window.external.addFavorite(url, title);
			} catch(e) {
				try {
					window.sidebar.addPanel(title, url, "");//firefox
				} catch(e) {
					alert("加入收藏失败，请使用Ctrl+D进行添加");
				}
			}
		}
	}
	return false;
}

/** 
 *功能：	打开窗口居中
 *参数：	theURL		窗口地址 
 *		winName：	窗口名称(目标) 
 *		features：	窗口的其他属性
 *返回：	新窗口 
 */ 
function openCenterWindow (theURL, winName, features)
{
    var nWidth;
    var nHeight;
    var nLeft;
    var nTop;
    var strVal;
    var nPos;
    var strComb;
    var i;
    var chVal;
    nLeft = 0;
    nTop = 0;
    if (features == null)
        return (window.open (theURL, winName, features));
    strVal = features.toUpperCase ();
    if (strVal.indexOf ("LEFT", 0) >= 0 || strVal.indexOf ("TOP", 0) >= 0)
        return (window.open (theURL, winName, features));
    if ((nPos = strVal.indexOf ("WIDTH", 0)) < 0)
        return (window.open (theURL, winName, features));
    if ((nPos = strVal.indexOf ("=", nPos)) < 0)
        return (window.open (theURL, winName, features));
    strComb = "";    
    for (i = nPos + 1; i < features.length; i ++)
    {
        chVal = features.charAt (i);
        if (chVal == " " || (chVal >= "0" && chVal <= "9"))
            strComb += chVal;
        else
            break;
    }
    if ((nWidth = eval (trimString (strComb))) <= 0)
        return (window.open (theURL, winName, features));
    if ((nPos = strVal.indexOf ("HEIGHT", 0)) < 0)
        return (window.open (theURL, winName, features));
    if ((nPos = strVal.indexOf ("=", nPos)) < 0)
        return (window.open (theURL, winName, features));
    strComb = "";
    for (i = nPos + 1; i < features.length; i ++)
    {
        chVal = features.charAt (i);
        if (chVal == " " || (chVal >= "0" && chVal <= "9"))
            strComb += chVal;
        else
            break;
    }
    if ((nHeight = eval (trimString (strComb))) <= 0)
        return (window.open (theURL, winName, features));
    nLeft = (window.screen.width - nWidth) / 2;
    nTop = (window.screen.height - nHeight) / 2;
    features += ",left=" + nLeft + ",top=" + nTop;
    return (window.open (theURL, winName, features));
}

/**
*格式化数字
*@param number表示要格式化的数
*@param pattern 格式
*alert(formatNumber(0,''));
*alert(formatNumber(12432.21,'#,###'));
*alert(formatNumber(12432.21,'#,###.000#'));
*alert(formatNumber(12432,'#,###.00'));
*alert(formatNumber('12432.415','#,###.0#'));
*/ 
function formatNumber(number,pattern){
    var str            = number.toString();
    var strInt;
    var strFloat;
    var formatInt;
    var formatFloat;
    if(/\./g.test(pattern)){
        formatInt        = pattern.split('.')[0];
        formatFloat      = pattern.split('.')[1];
    }else{
        formatInt        = pattern;
        formatFloat      = null;
    }
    
    var fix = '0';
    if(formatFloat!=null) fix = (0).toFixed(formatFloat.length);
	fix = fix.split('.')[1];
		
    if(/\./g.test(str) || /\./g.exec(str)){
        if(formatFloat!=null){
            var tempFloat    = Math.round(parseFloat('0.'+str.split('.')[1])*Math.pow(10,formatFloat.length))/Math.pow(10,formatFloat.length);
            strInt        = (Math.floor(number)+Math.floor(tempFloat)).toString();                
            strFloat    = /\./g.test(tempFloat.toString())?tempFloat.toString().split('.')[1]:fix;
        }else{
            strInt        = Math.round(number).toString();
            strFloat    = '0';
        }
    }else{
        strInt        = str;
        strFloat    = fix;
    }
    
    if(formatInt!=null){
        var outputInt    = '';
        var zero        = formatInt.match(/0*$/)[0].length;
        var comma        = null;
        if(/,/g.test(formatInt)){
            comma        = formatInt.match(/,[^,]*/)[0].length-1;
        }
        var newReg        = new RegExp('(\\d{'+comma+'})','g');

        if(strInt.length<zero){
            outputInt        = new Array(zero+1).join('0')+strInt;
            outputInt        = outputInt.substr(outputInt.length-zero,zero);
        }else{
            outputInt        = strInt;
        }

        var 
        outputInt            = outputInt.substr(0,outputInt.length%comma)+outputInt.substring(outputInt.length%comma).replace(newReg,(comma!=null?',':'')+'$1');
        outputInt            = outputInt.replace(/^,/,'');

        strInt    = outputInt;
    }

    if(formatFloat!=null){
        var outputFloat    = '';
        var zero        = formatFloat.match(/^0*/)[0].length;

        if(strFloat.length<zero){
            outputFloat        = strFloat+new Array(zero+1).join('0');
            //outputFloat        = outputFloat.substring(0,formatFloat.length);
            var outputFloat1    = outputFloat.substring(0,zero);
            var outputFloat2    = outputFloat.substring(zero,formatFloat.length);
            outputFloat        = outputFloat1+outputFloat2.replace(/0*$/,'');
        }else{
            outputFloat        = strFloat.substring(0,formatFloat.length);
        }

        strFloat    = outputFloat;
    }else{
        if(pattern!='' || (pattern=='' && strFloat=='0')){
            strFloat    = '';
        }
    }
   
    return strInt+(strFloat==''?'':'.'+strFloat);
}

function formatNumber1(number,pattern){
    var str            = number.toString();
    var strInt;
    var strFloat;
    var formatInt;
    var formatFloat;
    if(/\./g.test(pattern)){
        formatInt        = pattern.split('.')[0];
        formatFloat      = pattern.split('.')[1];
    }else{
        formatInt        = pattern;
        formatFloat      = null;
    }
    
    var fix = '0';
    if(formatFloat!=null) fix = (0).toFixed(formatFloat.length);
	fix = fix.split('.')[1];
		
    if(/\./g.test(str) || /\./g.exec(str)){
        if(formatFloat!=null){
            var tempFloat    = Math.round(parseFloat('0.'+str.split('.')[1])*Math.pow(10,formatFloat.length))/Math.pow(10,formatFloat.length);
            strInt        = (Math.floor(number)+Math.floor(tempFloat)).toString();                
            strFloat    = /\./g.test(tempFloat.toString())?tempFloat.toString().split('.')[1]:fix;
        }else{
            strInt        = Math.round(number).toString();
            strFloat    = '0';
        }
    }else{
        strInt        = str;
        strFloat    = fix;
    }
    
    if(formatInt!=null){
        var outputInt    = '';
        var zero        = formatInt.match(/0*$/)[0].length;
        var comma        = null;
        if(/,/g.test(formatInt)){
            comma        = formatInt.match(/,[^,]*/)[0].length-1;
        }
        var newReg        = new RegExp('(\\d{'+comma+'})','g');

        if(strInt.length<zero){
            outputInt        = new Array(zero+1).join('0')+strInt;
            outputInt        = outputInt.substr(outputInt.length-zero,zero);
        }else{
            outputInt        = strInt;
        }

        var 
        outputInt            = outputInt.substr(0,outputInt.length%comma)+outputInt.substring(outputInt.length%comma).replace(newReg,(comma!=null?',':'')+'$1');
        outputInt            = outputInt.replace(/^,/,'');

        strInt    = outputInt;
    }

    if(formatFloat!=null){
        var outputFloat    = '';
        var zero        = formatFloat.match(/^0*/)[0].length;

        if(strFloat.length<zero){
            outputFloat        = strFloat+new Array(zero+1).join('0');
            //outputFloat        = outputFloat.substring(0,formatFloat.length);
            var outputFloat1    = outputFloat.substring(0,zero);
            var outputFloat2    = outputFloat.substring(zero,formatFloat.length);
            outputFloat        = outputFloat1+outputFloat2.replace(/0*$/,'');
        }else{
            outputFloat        = strFloat.substring(0,formatFloat.length);
        }

        strFloat    = outputFloat;
    }else{
        if(pattern!='' || (pattern=='' && strFloat=='0')){
            strFloat    = '';
        }
    }
    
    if(strFloat != '' && parseFloat(strFloat) <= 0)
    	strFloat = ''; 
   
    return strInt+(strFloat==''?'':'.'+strFloat);
}
//日期格式化
function getFormatDate(objDate, format){
    var o = 
    {
        "M+" : objDate.getMonth()+1, //month
        "d+" : objDate.getDate(),    //day
        "h+" : objDate.getHours(),   //hour
        "m+" : objDate.getMinutes(), //minute
        "s+" : objDate.getSeconds(), //second
        "q+" : Math.floor((objDate.getMonth()+3)/3), //quarter
        "S" : objDate.getMilliseconds() //millisecond
    };
    
    if(/(y+)/.test(format)) 
    format=format.replace(RegExp.$1,(objDate.getFullYear()+"").substr(4 - RegExp.$1.length));
    for(var k in o)
    if(new RegExp("("+ k +")").test(format))
    format = format.replace(RegExp.$1,RegExp.$1.length==1 ? o[k] : ("00"+ o[k]).substr((""+ o[k]).length));
    return format;  
}
//获取当前日期
function getCurrentDate(){
    var date = new Date();
    return getFormatDate(date,'yyyy-MM-dd');
}

function getCurrentTime(){
    var date = new Date();
    return getFormatDate(date,'yyyy-MM-dd hh:mm:ss');
}

//日期加减
function dateAddDay(day){
    var date = new Date();
    date = date.valueOf();
    date = date + parseInt(day) * 24 * 60 * 60 * 1000;
    date = new Date(date);
    return getFormatDate(date,'yyyy-MM-dd');
}
//日期加减
function dateAddMonth(month){
    var date = new Date(); 
    date.setMonth( date.getMonth() + parseInt(month)); 
    date = new Date(date);
    return getFormatDate(date,'yyyy-MM-dd');
}
/**
*功能：	获取字符串的长度
*参数：	strVal：	字符串
*返回：	返回字符串的字节长度
*/
function getReaLength(strVal)
{
	var tempStr ;
	tempStr = strVal.replace(/(^\s*)|(\s*$)/g, '');

	return tempStr.replace(/[^\x00-\xff]/g,"**").length;
}

/**
用途：检查输入字符串是否为空或者全部都是空格
输入：str
返回：
 如果全是空返回true,否则返回false
*/
function isNull(str){
    if(str == "" || str == null || str.length == 0) return true;
    var regu = "^[ 　]+$";
    var re = new RegExp(regu);
    return re.test(str);
}


/**
*功能：	检查参数对象的值是否符合E-Mail格式
*参数：	str：	参数的字符串
*返回：	如果通过验证返回true,否则返回false
*/
function isEmail(strEmail)
{

	var myReg = /^[_a-zA-Z][_a-zA-Z0-9]*@[_a-z0-9]+\.[a-zA-Z]{2,5}(\.[a-zA-Z]{2,3})?$/;

	var emailReg = /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;

	if(emailReg.test(strEmail))

		return true;

	return false;

}

/**
*规则：	移动: 前3位 134-139  或者 150-159   一共11位
*		联通: 前3位 130-133  或者 150-159   一共11位
* 		新增18号段
*		小灵通: 第一位为0 一共11位
*	     这是最新规则
*功能：	检查参数的电话号码格式是否正确（仅手机号）
*参数：	str：	字符串
*返回：	如果通过验证返回true,否则返回false
*/
function isMobile(str){
	var regu =/(^[1][3][0-9]{9}$)|(^[1][5][0-9]{9}$)|(^[1][8][0-9]{9}$)|(^[0][1-9]{1}[0-9]{9}$)/;
	var reg = new RegExp(regu);
	if (reg.test(str)) {
		return true;
	}else{
		return false;
	}
}

/**
*格式要求 (1)国家代码(2到3位)-区号(2到3位)-电话号码(7到8位)-分机号(2到5位)
*			/^(([0\+]\d{2,3}-)?(0\d{2,3})-)?(\d{7,8})(-(\d{2,5}))?$/
*		(2)手机号
*			/(^0{0,1}13[0-9]{9}$)|(^0{0,1}15[0-9]{9}$)|(^0{0,1}18[0-9]{9}$)/
*		(2)小灵通
*			/^[0][1-9]{1}[0-9]{9}$/
*功能：	检查参数的电话号码格式是否正确(包含手机)
*参数：	str：	字符串
*返回：	如果通过验证返回true,否则返回false
*/
function isPhone(str){

	var regu = /(^(([0\+]\d{2,3}-)?(0\d{2,3})-)?(\d{7,8})(-(\d{2,5}))?$)|(^0{0,1}13[0-9]{9}$)|(^0{0,1}15[0-9]{9}$)|(^0{0,1}18[0-9]{9}$)|(^[0][1-9]{1}[0-9]{9}$)/;

	var reg = new RegExp(regu);

	if (reg.test(str)) {

		return true;

	}else{

		return false;

	}

}

/**
*功能：	检查参数对象的值是否符邮政编码格式
*参数：	str：		参数的字符串
*返回：	如果通过验证返回true,否则返回false
*/
function isZip(str){
	//var filter=/^[1-9]\d{5}$/;
	var filter = /^[0-9]{6}$/;
	if(!filter.test(str)) return false;
	return true;
}

/**
*功能：	判断用户名是否是字母 数字 . _等组成并且6-20位
*参数：	str：		参数的字符串
*返回：	如果通过验证返回true,否则返回false
*/
function isUsername(str){

	var filter=/^\s*[.A-Za-z0-9_-]{6,20}\s*$/;

	if(!filter.test(str)) return false;

	return true;

}

/**
*功能：	判断字符串中是否含有特殊字符
*参数：	str：		验证的字符串
*		spChars：	特殊字符
*返回：	如果通过验证返回true,否则返回false
*/
function isValidCode(str, special){


	var spChars = /[~!@%^&*();\'\"\"?><\[\]{}\|,:\/=+—“”‘]/;



	if(typeof(special) != 'undefined') spChars = special;



	if (spChars.test(str)){

        alert("不能以含有非法字符("+str.match(spChars)+")！");

        return true;

	}

	return false;

}

/**
*功能：	判断密码是否是字母 数字等组成并且6-20位
*参数：	str：		参数的字符串
*返回：	如果通过验证返回true,否则返回false
*/
function isPassword(str){

	var filter = /^([0-9a-zA-Z]){6,20}$/;

	if (!filter.exec(str)) return false;

		return true;

}
/** 
*功能：	判断字符串是否排列有序的字符
*参数：	str：		参数的字符串 
*返回：	如果通过验证返回true,否则返回false 
*/ 
function isSequence(str){
	var intcount = 0;
	var inttemp = 0;
	for(i = 0;i < str.length;i++)
	{
		if(str.charCodeAt(i) - inttemp == 1)
		{
			intcount = intcount + 1;
		}
		else
		{
			intcount = 1;
		}
		inttemp = str.charCodeAt(i);
		if(intcount >= 3)
		{
			return true;
		}
	}
	return false;
}

/** 
*功能：	判断字符串是否有3个以上的连续相同字符
*参数：	str：		参数的字符串 
*返回：	如果通过验证返回true,否则返回false 
*/ 
function isSameChar(str){	
	//检验是否有三个相同的字符
	for(i = 0;i < str.length - 2;i++)
	{
		if(str.substr(i,1) == str.substr(i + 1,1) && str.substr(i,1) == str.substr(i + 2,1))
		{			
			return true;
		}
	}	
	return false;
}

/**	
 * ^[1-9]d*$　 　 //匹配正整数
 * ^-[1-9]d*$ 　 //匹配负整数
 * ^-?[1-9]d*$　　 //匹配整数
 * ^[1-9]d*|0$　 //匹配非负整数（正整数 + 0）
 * ^-[1-9]d*|0$　　 //匹配非正整数（负整数 + 0）
 * ^[1-9]d*.d*|0.d*[1-9]d*$　　 //匹配正浮点数
 * ^-([1-9]d*.d*|0.d*[1-9]d*)$　 //匹配负浮点数
 * ^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$　 //匹配浮点数
 * ^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$　　 //匹配非负浮点数（正浮点数 + 0）
 * ^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$　　//匹配非正浮点数（负浮点数 + 0）
 * 功能：	判断是否为数字
 * 参数：	strNumber：		数字字符串
 *		flag：			数字字符串类型
 * 返回：	如果通过验证则返回true,否则返回false 
 */
function isNumeric(strNumber, flag) 
{ 
	if(isNaN(strNumber)) 
	{ 
		return false; 
	} 
	//正数去掉+号
	switch(flag) 
	{ 
		case "r"://实数  
			return /^(-¦\+)?\d+(\.\d+)?$/.test(strNumber); 
		case "+"://正数  + 0
			return /^\d+(\.\d+)?$/.test(strNumber); 
		case "-"://负数  
			return /^-\d*\.?\d+$/.test(strNumber); 
		case "i"://整数 
			return /^-?\d+$/.test(strNumber); 
		case "+i"://正整数 
			return /^[0-9]*[1-9][0-9]*$/.test(strNumber); 
		case "i+"://非负整数(正整数 + 0)
			return /^\d+$/.test(strNumber); 
		case "-i"://负整数 
			return /^-[0-9]*[1-9][0-9]*$/.test(strNumber);  
		case "i-"://非正整数（负整数 + 0）
			return /^((-\d+)|(0+))$/.test(strNumber); 
		case "f"://浮点数 
			return /^(-?\d+)(\.\d+)?$/.test(strNumber); 
		case "+f"://正浮点数 
			return /^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/.test(strNumber); 
		case "f+"://非负浮点数 
			return /^\d+(\.\d+)?$/.test(strNumber); 
		case "-f"://负浮点数 
			return /^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/.test(strNumber); 
		case "f-"://非正浮点数 
			return /^((-\d+(\.\d+)?)|(0+(\.0+)?))$/.test(strNumber); 
		default://缺省 (数字)
			return /^[0-9]*$/.test(strNumber);
	} 
}
/**
 * 验证文件类型
 * @param fname 文件名称
 * @param allowExt 文件类型
 * @returns {Boolean}
 */
function checkext(fname, allowExt)
{
    var accept = false;
    //var exts = new Array(".gif", ".jpg", ".png", ".jpeg");
    var pos = fname.lastIndexOf(".")+1;
    var ext = fname.substring(pos, fname.length);
    for(var i = 0; i < allowExt.length; i++)
    {
        if(ext.toLowerCase() == allowExt[i])
        {
            accept = true;
            break;
        }
    }
    if(!accept)
    {
        alert("只允许上传"+allowExt.join(',')+"格式的文件");
        return false;
    }
    else 
        return true;
}

/**
 * 弹出窗口
 */
function pop()
{
	window.open('pop.html','newwindow','height=530,width=500,left=0,top=0,toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no');
}
