/*****************************************
功能：判断字符串是否全由0-9之间的数字组成
输入：ParseString        供解析的字符串
输出：是则返回true，否则返回false
******************************************/
function isInteger(ParseString) 
{
    if (ParseString == "")
    {  //若为空
        return false;
    }
    else 
    {
        for(var i=0;i<ParseString.length;++i)
        {
            if(ParseString.charAt(i) < "0" || ParseString.charAt(i) > "9")
            {
                return false
            }
        }
    }
    return true;
}

/*
 * 功能:判断字符串是否为正确的货币形式
 * 输入: 字符串
 * 输出: 是则返回true,否返回false
 */
function isMoneyValid(money) {
	var p1 = new RegExp("^[0-9]+\.?[0-9]{0,2}$");
    return (!isNaN(money) && p1.exec(money));
}

/*****************************************
功能：判断字符串是否为空字符串或全为空格
输入：ParseString        供解析的字符串
输出：是则返回true，否则返回false
******************************************/
function isBlank(ParseString)
{
    if(ParseString.length==0)
    {
        return true
    }
    else
    {
        for(var i=0;i<ParseString.length;++i)
        {
            if(ParseString.charAt(i)!=" ")
            {
                return false
            }
        }
    }
    return true
}

/**********************************
 * 是否为数字
 * @param {} aValue
 * @return {Boolean}
 */
function isNumberic(aValue){
  var Letters = "0123456789";
  for (i=0; i< aValue.length; i++){
    var CheckChar = aValue.charAt(i);
    if (Letters.indexOf(CheckChar) == -1){
      return false;
    }
  }
  return true;
}

/******************************************
 *判断字符串是否为邮箱格式
 *规则：包含@的任意字符（不包括空格）
 *  val    字符串
 *
 **********************************/
function isEmail(val){
//开始验证
	if(isBlank(val)){
		return false;
	}
	var pattern = /^[\S+]+@[\S]/;
	return pattern.test(val);
}

/***********************************************
 * 判断手机号是否合法
 * 手机：1开头，后面10位数字
 * 小灵通：0开头加两位数字-8位数字
 * 		   0开头加三位数字-7位数字
 * @param {} val
 * @return {Boolean}
 */
function isCellPhone(val){
	if(isBlank(val)){
		return false;
	}
	var pattern = /^1\d{10}|0\d{2}-\d{8}|0\d{3}-\d{7}$/;
	return pattern.test(val);
}


/*******************************************************
 * 判断电话号码是否合法
 * 电话号码：0开头加两位数字-8位数字
 * 		     0开头加三位数字-7位数字
 * @param {} val
 * @return {Boolean}
 */
function isPhone(val){
	if(isBlank(val)){
		return false;
	}
	var pattern = /^0\d{2}-\d{8}|0\d{3}-\d{7}$/;
	return pattern.test(val);
}
/*******************************************************
 * 判断邮编是否合法
 * 规则：6位数字
 * @param {} val
 * @return {Boolean}
 */
function isPostcode(val){
	if(isBlank(val)){
		return false;
	}
	var pattern = /^\d{6}$/;
	return pattern.test(val);
}

/******************************************************
 * 密码4-16位 字母数字下划线美元符组成
 * @param {} val
 * @return {Boolean}
 */
function isPwd(val){
	if(isBlank(val)){
		return false;
	}
	var pattern = /^\S{4,16}$/;
	return pattern.test(val);
}

/******************************************************
 * 验证码4位 数字组成
 * @param {} val
 * @return {Boolean}
 */
function isCode(val){
	if(isBlank(val)){
		return false;
	}
	var pattern = /^\d{4}$/;
	return pattern.test(val);
}

/*************************************************
功能：将字符串中的某子串全部替换为另一子串
输入：
        parseString: 原始字符串(供解析的字符串)
        sourceSubstr: 要替换的子串
        objecSubstr:    替换为的字串
输出：返回替换后的字符串
*************************************************/
function userReplace(parseString, sourceSubstr, objecSubstr) 
{
    lengthOfsourceSubstr = sourceSubstr.length;    //要替换的字符串的长度
    startPos = 0;    //每次查找的开始位置
    foundPos = -1;    //找到的位置
    returnedString = "";    //该方法将返回的字符串

    foundPos = parseString.indexOf(sourceSubstr, startPos);
    while (foundPos >= 0) 
    {
        returnedString = returnedString + parseString.substring(startPos, foundPos) + objecSubstr;
        startPos = foundPos + lengthOfsourceSubstr;    //变化查找位置
        foundPos = parseString.indexOf(sourceSubstr, startPos);
    }
    returnedString = returnedString + parseString.substring(startPos);

    return returnedString;
}

/*************************************************
功能：判断字符串中的每个字母是否都在给定的字符串中
输入：
        parseString: 原始字符串(供解析的字符串)
        givedString: 给定的字符串

输出：
        true     供解析的字符串的字母都在给定的字符串
        flase    供解析的字符串的字母没有全部在给定的字符串
*************************************************/
function isGivedString(parseString,givedString)
{
    for(i=0;i<parseString.length;i++)
    {
        if(givedString.indexOf(parseString.substring(i,i+1))<0)
            return false;
    }
    return true;
}

/*************************************************
功能：取出某个字符串中的子串，如"aaaa;fdsaf;sadf;ueru;werr;"
输入：
        parseString: 原始字符串（供解析的字符串）
        givedNo: 给定的字符串序号（从1开始）

输出：
        子串
*************************************************/
function getSubString(parseString,givedNo)
{

    for(i=0;i<parseString.length;i++)
    {
        if(givedString.indexOf(parseString.substring(i,i+1))<0)
            return false;
    }
    return true;
}


/************************************************
功能：弹出新窗口， 该窗口仅有标题栏，可缩放。
输入：    top - 顶部位置；
                left - 左边位置；
                width - 窗口宽度；
                height - 高度。单位：pixels
                winName - 窗口名称；
                url - 要打开的url
                options - 附加选项
输出：新窗口句柄 
*************************************************/
function popupNewWindow(top, left, width, height, winName, url, options) 
{
    var optionStr = "top=" + top + ", left=" + left + ",width=" + width + " ,height=" + height +
            ",toolbar=No,scrollbars=Yes, resizable=Yes,status=Yes" +
            (options == "" ? "" : "," + options);
    return window.open(url, winName, optionStr);
}

function popupNewModalDialog(url,winName)
{
	return window.showModalDialog(url,winName,"dialogwidth:750px;dialogheight:750px;center:yes;status:no;scroll:no;help:no");
}

function popupNewWindowForOther(top, left, width, height, winName, url, options) 
{
    var optionStr = "top=" + top + ", left=" + left + ",width=" + width + " ,height=" + height +
            ",toolbar=No,scrollbars=no, resizable=no,status=no" +
            (options == "" ? "" : "," + options);
    return window.open(url, winName, optionStr);
}

/*****************************************
功能：将表单中的所有复选框选择或不选择
输入：
            formObj                    表单对象
            selDeselChkBox     全选/不选复选框
******************************************/
function selDeselAll(formObj, selDeselChkBox) 
{
    for(var i = 0; i < formObj.elements.length; i++) 
    {
        if (formObj.elements[i].type == "checkbox") 
        {
            if (selDeselChkBox.checked) formObj.elements[i].checked = true;
            else formObj.elements[i].checked = false;
        }
    }
}

/**********************************************
功能：检查表单中的指定名称的复选框是否都已选择
输入：
            formObj                    表单对象
            chkBoxName             选项框名称
输出：是返回true，否返回false
**********************************************/
function allSelected (formObj, chkBoxName) 
{
    for(var i = 0; i < formObj.elements.length; i++) 
    {
        if (formObj.elements[i].type == "checkbox" && formObj.elements[i].name == chkBoxName) 
        {
            if (!formObj.elements[i].checked) return false;
        }
    }
    return true;
}

/**********************************************
功能：检查表单中的指定名称的复选框是否都未选择
输入：
            formObj                    表单对象
            chkBoxName             选项框名称
输出：是返回true，否返回false
**********************************************/
function allUnSelected (formObj, chkBoxName) 
{
    for(var i = 0; i < formObj.elements.length; i++) 
    {
        if (formObj.elements[i].type == "checkbox" && formObj.elements[i].name == chkBoxName) 
        {
            if (formObj.elements[i].checked) return false;
        }
    }
    return true;
}

/*****************************************************
功能：判断是否选择了指定的单选或复选项框中的至少一项
输入：
            formObj                    表单对象
            elemName                 单选或复选钮名称
输出：若有选择的记录，则返回true，否则，返回false
*****************************************************/
function hasSelections(formObj, elemName) 
{
    for(var i = 0; i < formObj.elements.length; i++) 
    {
        if ((formObj.elements[i].type == "radio" || formObj.elements[i].type == "checkbox") &&
                formObj.elements[i].name == elemName && formObj.elements[i].checked) 
        {
            return true;
        }
    }
    return false;
}

/*****************************************************
功能：判断选择了指定的单选或复选项框中的项数
输入：
            formObj                    表单对象
            elemName                 单选或复选钮名称
输出：返回已选择的项数
*****************************************************/
function seledItems(formObj, elemName) {
    var count = 0;
    for(var i = 0; i < formObj.elements.length; i++) 
    {
        if ((formObj.elements[i].type == "radio" || formObj.elements[i].type == "checkbox") &&
                formObj.elements[i].name == elemName && formObj.elements[i].checked) 
        {
            count++;
        }
    }
    return count;
}

function getSelectedRadioSingleValue(radiosName){
	var radios = document.getElementsByName(radiosName);
	var result = "";
	for(var i=0; i < radios.length; i++){
		if(radios[i].checked == true){
			result = radios[i].value;
		}
	}
	return result;
}


/****************************************************************
功能：移去列表框中选择的项，但不移去第一项
输入：
            listObj     列表框
*****************************************************************/
function removeOptions(listObj) 
{
    var selectedCounts = 0;    //已选项数
    if (listObj.options.length > 0) 
    {
        for (var i = 0; i < listObj.options.length; i++) 
        {
            if (listObj.options[i].selected) 
            {
                selectedCounts++;
            }
        }
        for (var i = 0; i < selectedCounts; i++) 
        {
            for (var j = 0; j < listObj.options.length; j++) 
            {
                if (listObj.options[j].selected && j != 0) 
                {
                    listObj.options.remove(j);
                    break;
                }
            }
        }
    }
}

/************************************************
功能：除列表框中第一项外，其他项均置为选择（列表框必须有multiple属性）；
      第一项置为不选择
输入：
            listObj     列表框
**************************************************/
function selAllExcludeFirst(listObj) 
{
    if (listObj.options.length > 0) 
    {
        for (var i = 0; i < listObj.options.length; i++) 
        {
            if (i != 0) 
            {
                listObj.options[i].selected = true;
            } 
            else 
            {
                listObj.options[i].selected = false;
            }
        }
    }
}



/**
 * 功能：用十六进制值替换URL中的特殊字符
 * 输入：aStr: 要替换的字符串
 * 输出：替换后的字符串值
 */
function replaceSpecialChar(aStr)
{
    aStr=userReplace(aStr,"%","%25");
    aStr=userReplace(aStr,"+","%2B");
    aStr=userReplace(aStr," ","%20");
    aStr=userReplace(aStr,"/","%2F");
    aStr=userReplace(aStr,"?","%3F");
    aStr=userReplace(aStr,"#","%23");
    aStr=userReplace(aStr,"&","%26");
    aStr=userReplace(aStr,"=","%3D");
    return aStr;
}


/**
 *检查域名合法性
 */
function checkUrlValid(val) {
	var obj=document.getElementById(val);
	if(isBlank(obj.value)){
		alert("域名不能为空！");
		return false;
	}
	var partern = /^w{3}\.[\S]+\.[A-Za-z0-9]{2,}$|^w{3}\.[\S]+\.[A-Za-z0-9]{2,}\.[a-zA-Z0-9]{2,}$/;
	if(!partern.test(obj.value)){
		alert('域名不合法，正确域名示例:www.gtonesea.com');
		return false;
	}
	
 	return true;
}

/**
 *检查多选框是否有选中
 */
function isChecked(val){
	flag = false;
	var grp = document.getElementsByName(val);
	if(grp == null || grp.length < 1) return;
	for(var i=0;i<grp.length;i++){
		if(grp[i].checked) flag = true;
	}
	return flag;
}
/**
 *将多选框的值拼成一个数组
 *val 多选框名字
 */
 function getSelectedCheckBoxArrayValue(val){
 	var array = null;
 	var grp = document.getElementsByName(val);
 	var str = "";
	if(grp == null || grp.length < 1) return null;
	for(var i=0;i<grp.length;i++){
		if(grp[i].checked){
			str += (grp[i].value + '|'); 
		}
	}
	str = str.substring(0,str.length-1);
	array = str.split('|');
	return array;
 }
 /**
  *得到checkbox的被选中的数量且选中的值不为val2
  */
 function getSelectedCheckBoxQuntity(val,val2){
 	var grp = document.getElementsByName(val);
 	var sum = 0;
	if(grp == null || grp.length < 1) return null;
	for(var i=0;i<grp.length;i++){
		if(grp[i].checked && grp[i].value!=val2){
			sum ++;
		}
	}
	return sum;
 }
  /**
  *得到checkbox的被选中的数量
  */
function getSelectedCheckBoxQuntity2(val){
 	var grp = document.getElementsByName(val);
 	var sum = 0;
	if(grp == null || grp.length < 1) return null;
	for(var i=0;i<grp.length;i++){
		if(grp[i].checked){
			sum ++;
		}
	}
	return sum;
 }
 
 /**
  *得到select被选中的值
  */
function getSelectedSelectValue(val){
	var obj = document.getElementById(val);
	return obj.options[obj.selectedIndex].value;
}

function isIP(val){
	var ip = document.getElementById(val).value;
	var exp = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/;     
	var reg = ip.match(exp);   	
	var	ErrMsg="你输入的是一个非法的IP地址段！\nIP段为：:xxx.xxx.xxx.xxx（xxx为0-255)！";
	if(reg==null) {     
		alert(ErrMsg);   			
		return false;
	}else{
		return true;
	}
}

/**
 * 判断字符串arg1是不是以arg2开头
 * @param {} arg1
 * @param {} arg2
 */
function startsWith(arg1,arg2){
	var flag = true;
	if(isBlank(arg1)){
		flag = false;
	}
	if(arg1.indexOf(arg2) == -1){
		flag = false;
	}
	if(arg1.substring(0,arg2.length) != arg2){
		flag = false;
	}
	return flag;
}
/**
 * 使多选框都不选中
 * @param {} val
 */
function disSelectCheckBox(val){
	var grp = document.getElementsByName(val);
	for(var i=0; i!=grp.length;i++){
		if(grp[i].checked){
			grp[i].checked = false;
		}
	}
}

//浏览器的判断 
brower = function() { 
	var ua = navigator.userAgent.toLowerCase(); 
	var os = new Object(); 
	os.isFirefox = ua.indexOf ('firefox') != -1; 
	os.isOpera = ua.indexOf ('opera') != -1; 
	os.isChrome = ua.indexOf ('chrome') != -1; 
	os.isIE = !os.isOpera  &&  ua.indexOf ('msie') != -1; 
	os.isIE7 = os.isIE  &&  ua.indexOf ('7.0') != -1; 
	os.isIE8 = os.isIE  &&  ua.indexOf ('trident/4.0') != -1; 
	return os; 
} 

//3>只能输数字（包含换行，空格） 
/*
*@param obj 文本框对象 
*@param b 浏览器类型 
*/ 
function filterNumber(obj,b) 
{ 
	if(brower().isIE7 && b=='IE7') 
	{ 
		if(/[^\d\r\n]/ig.test(obj.value))obj.value=obj.value.replace(/[^\d\r\n]/ig,''); 
	} 
	else if(brower().isIE  && b=='FF') 
	{ 
		if(/[^\d\r\n]/ig.test(obj.value))obj.value=obj.value.replace(/[^\d\r\n]/ig,''); 
	} 
	else if(brower().isFirefox  && b=='FF') 
	{ 
		if(/[^\d\r\n]/ig.test(obj.value))obj.value=obj.value.replace(/[^\d\r\n]/ig,''); 
	} 
	else if(brower().isChrome  && b=='FF') 
	{ 
		if(/[^\d\r\n]/ig.test(obj.value))obj.value=obj.value.replace(/[^\d\r\n]/ig,''); 
	} 
	else if(brower().isIE8  && b=='FF') 
	{ 
		if(/[^\d\r\n]/ig.test(obj.value))obj.value=obj.value.replace(/[^\d\r\n]/ig,''); 
	} 
}
