//**********************************************************************
//文件名　：EC公共脚本文件
//编写人　：潘德伟
//版本号  ：v1.0
//编写日期：2007-07-07
//修改人　：
//修改日期：
//实现功能：公共调用脚本
//			判断是否为数字，去掉字符串前后空格，替换字符串，验证是否为数字，
//			判断小数位数是否大于pos位，检验数量控件上的错误，
//			日期间隔，字符串转日期,增加时间
//**********************************************************************


//*******************************
//字符串操作
//*******************************

//去掉字符串前后空格
//str:需要处理的字符串(不能去中文(全角)空格)
function MyTrim(str)
{
	return str.replace(/(^\s*)|(\s*$)/g,"");
}

//替换字符串
//将str1 中的 str2 替换为 str3
function MyReplace(str1, str2, str3)
{
	var regS = new RegExp(str2,"gi"); 
	return str1.replace(regS, str3);
}

//去掉字符串前后空格
function trim(value) {
    return value.replace(/(^\s*)|(\s*$)/g, "");
}


//*******************************
//数字处理
//*******************************
 
 //判断是否为数字
//str:需要处理的字符串
function checkNumber(str)
{
	var reg = /^\-?([1-9]\d*|0)(\.\d+)?$/;
	
	return reg.test(str);
}
 
 
//验证是否为数字
function isNumber(oNum)
{
	if(!oNum) return false;
	
	var strP=/^\d+(\.\d+)?$/;
	if(!strP.test(oNum)) return false;
	
	try
	{
		if(parseFloat(oNum)!=oNum) return false;
	}
	catch(ex)
	{
		return false;
	}
	
	return true;
}


//判断小数位数是否大于pos位
//输入的必须为正确的数字
//str 正确的数字
//pos 小数位数
function CheckPos(str, pos)
{
	var strArr = new Array();
	
	strArr = str.split(".");
	
	if (strArr.length > 1)
	{
		if(strArr[1].length > pos)
		{
			return true;
		}
	}
	
	return false;
}



//*******************************
//界面操作及验证
//*******************************

//返回界面上有可能被隐藏的控件对象
//主要原因是：当控件被隐藏以后，利用document.getElementById("")获取该对象会出现找不到对象现象
//objName:控件name或id
function GetHidenObject(objName)
{
	for (var i=0;i<document.all.length; i++)
	{
		Control = document.all(i); 
		if (Control.name==objName || Control.id==objName)
		{
			return Control;
			break;
		}
	}
}


//检验数量控件上的错误
//strMsg　控件出错时的名字
//obj　控件对象
function CheckAmountControl(strMsg, obj)
{
	var str = obj.value;
	
	//为空
	if (str == "")
	{
		alert(strMsg + "不能为空！");
		obj.focus();
		return false;
	}
	//非法字符
	if (!isNumber(MyTrim(str)))
	{
		alert("输入的" + strMsg + "有非法字符！");
		obj.focus();
		return false;
	}
	//判断输入的数字是否大于2位
	if (CheckPos(MyTrim(str), 2))
	{
		alert("输入的" + strMsg + "小数位不能大于2位！");
		obj.focus();
		return false;
	}
	//数量为0
	if (parseFloat(MyTrim(str)) <= 0)
	{
		alert("输入的" + strMsg + "不能小于或等于 0 ！");
		obj.focus();
		return false;
	}
	
	return true;
}


//检查文本框中数据是否为正确的数字(可以为空，也可以等于0)
function CheckAmount(strMsg, obj)
{
	var str = obj.value;
	
	if (str != "")
	{
		//非法字符
		if (!isNumber(MyTrim(str)))
		{
			alert("输入的" + strMsg + "有非法字符！");
			obj.focus();
			return false;
		}
		//判断输入的数字是否大于2位
		if (CheckPos(MyTrim(str), 2))
		{
			alert("输入的" + strMsg + "小数位不能大于2位！");
			obj.focus();
			return false;
		}
		//数量为0
		if (parseFloat(MyTrim(str)) < 0)
		{
			alert("输入的" + strMsg + "不能小于 0 ！");
			obj.focus();
			return false;
		}
	}
	
	return true;
}


//获取单选框值
function GetRedioValue(name)
{ 
    var r = document.getElementsByName(name); 

    for (i=0;i<r.length;i++)
    {
        if (r[i].checked)
        { 
                return r[i].value; 
        } 
    }
}



//*******************************
//日期操作
//*******************************

//取得日期间的间隔
function GetDayDiff(d1, d2)
{  
	var diffDays;
	
	//var dt1 = new Date(d1.replace(/-/g,"/"));

	diffDays = Math.round((d2.getTime()-d1.getTime())/(24*3600*1000));

    return diffDays;
}


//字符串转为日期
//字符串格式"2007-07-07" 或 "2007-7-7"
function StringToDate(str)
{
	return new Date(str.split("-").join("/"));
	
	//return new Date(str.replace(/-/g,"/"));
}


//增加时间
function addDate(type,NumDay,dtDate)
{
	var date = new Date(dtDate)
	type = parseInt(type) //类型 
	lIntval = parseInt(NumDay)//间隔
	switch(type)
	{
		case 6 ://年
			date.setYear(date.getYear() + lIntval)
		break;
		case 7 ://季度
			date.setMonth(date.getMonth() + (lIntval * 3) )
		break;
		case 5 ://月
			date.setMonth(date.getMonth() + lIntval)
		break;
		case 4 ://天
			date.setDate(date.getDate() + lIntval)
		break
		case 3 ://时
			date.setHours(date.getHours() + lIntval)
		break
		case 2 ://分
			date.setMinutes(date.getMinutes() + lIntval)
		break
		case 1 ://秒
			date.setSeconds(date.getSeconds() + lIntval)
		break;
		default:
	} 
	
	return date.getYear() +'-' +  (date.getMonth()+1) + '-' +date.getDate()+ ' '+ date.getHours()+':'+date.getMinutes()+':'+date.getSeconds()
} 



//*******************************
//其他
//*******************************

//创建一个XMLHttpRequest对象
function AjaxObj()
{
	var A=null; 
	
	try 
	{ 
		A=new ActiveXObject("Ms"+"xml2.XML"+"HTTP"); 
	} 
	catch(e)
	{ 
		try 
		{ 
			A=new ActiveXObject("Micro"+"soft.XML"+"HTTP"); 
		}
		catch(oc)
		{ 
			A=null 
		} 
	} 
	
	if ( !A && typeof XMLHttpRequest != "undefined" ) 
	{ 
		A=new XMLHttpRequest() 
	} 
	
	return A 
}


//加入收藏夹
function AddFavorite(sURL, sTitle)
{
   try
   {
       window.external.addFavorite(sURL, sTitle);
   }
   catch (e)
   {
       try
       {
           window.sidebar.addPanel(sTitle, sURL, "");
       }
       catch (e)
       {
           alert("加入收藏失败，请使用Ctrl+D进行添加");
       }
   }
}


//设为首页
function setHomepage(sURL)
{
 if (document.all)
    {
        document.body.style.behavior='url(#default#homepage)';
		document.body.setHomePage(sURL);
    }
    else if (window.sidebar)
    {
    if(window.netscape)
    {
        try
		{  
            netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");  
         }  
         catch (e)  
         {  
			alert( "该操作被浏览器拒绝，如果想启用该功能，请在地址栏内输入 about:config,然后将项 signed.applets.codebase_principal_support 值该为true" );  
         }
    } 
    var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components. interfaces.nsIPrefBranch);
    prefs.setCharPref('browser.startup.homepage',sURL);
 }
}

