//窗口居中

function gFShowModalDialog(pPageURL,pWidth,pHeight)//打开模态窗口
{  
    var dialog;
  	dialog="help:0;edge:sunken;scroll:no;center:1;status:0;";
	dialog +="dialogWidth:"+pWidth+"px;"
	dialog +="dialogHeight:"+pHeight+"px;"
	window.showModalDialog(pPageURL,"",dialog);

}
function gFOpen(pWinName,pPageURL,pWidth,pHeight)//打开一般窗口
{  
   open(pPageURL,pWinName,WCenter(pWidth,pHeight));
}

function WCenter(ll_Width,ll_Height)
{
	var ll_Left;
	var ll_Top;
	var ls_Str;
	ll_Left=(screen.width -ll_Width)/2
	ll_Top=(screen.height -ll_Height)/2
	if (ll_Left<0)
	{
		ll_Left=0;
	}
	if (ll_Top<0)
	{
		ll_Top=0;
	}
	ls_Str = "left = " + ll_Left + ",top = " + ll_Top + ",width = " + ll_Width + ",height = " + ll_Height;
	return ls_Str;
}

function WCenterScroll(ll_Width,ll_Height)
{
	return "toolbar=no,scrollbars=yes,"+WCenter(ll_Width,ll_Height);
}


/*焦点函数
2002.11.1
操小华 
1.0
*/
function rollon(lo_obj) {
if (document.all(lo_obj).className == "inputc") {
	document.all(lo_obj).className = "inpute";
}
}

function rolloff(lo_obj) {
if (document.all(lo_obj).className == "inpute") {
	document.all(lo_obj).className = "inputc";
}
}

function GetDateFromCalendar(vv) 
{
  var rq;
//  var vv2=document.all(vv).value;
    rq=showModalDialog('../pub/c.htm',document.all(vv),'dialogWidth:480px;dialogHeight:400px;status:0;help:0;edge:sunken;scroll:no');
  if(rq !=null)
   {
      if(rq=="usenull")
      {
        document.all(vv).value="";
      }
      else
      {
        document.all(vv).value=rq;
      }
    
   }
  
}


function GetDateFromCalendar1(vv) 
{
  var rq;
//  var vv2=document.all(vv).value;
    rq=showModalDialog('pub/c.htm',document.all(vv),'dialogWidth:480px;dialogHeight:400px;status:0;help:0;edge:sunken;scroll:no');
  if(rq !=null)
   {
      if(rq=="usenull")
      {
        document.all(vv).value="";
      }
      else
      {
        document.all(vv).value=rq;
      }
    
   }
  
}


function GetDateFromCalendar2(vv) 
{
  var rq;
//  var vv2=document.all(vv).value;
    rq=showModalDialog('../pub/c.htm',document.all(vv),'dialogWidth:480px;dialogHeight:400px;status:0;help:0;edge:sunken;scroll:no');
  if(rq !=null)
   {
      if(rq=="usenull")
      {
        document.all(vv).value="";
      }
      else
      {
        document.all(vv).value=rq;
      }
    
   }
  
}

function GetDateFromCalendar3(vv) 
{
  var rq;
//  var vv2=document.all(vv).value;
    rq=showModalDialog('../../pub/c.htm',document.all(vv),'dialogWidth:480px;dialogHeight:400px;status:0;help:0;edge:sunken;scroll:no');
  if(rq !=null)
   {
      if(rq=="usenull")
      {
        document.all(vv).value="";
      }
      else
      {
        document.all(vv).value=rq;
      }
    
   }
  
}

function GetDateFromCalendar4(vv) 
{
  var rq;
//  var vv2=document.all(vv).value;
    rq=showModalDialog('../../../pub/c.htm',document.all(vv),'dialogWidth:480px;dialogHeight:400px;status:0;help:0;edge:sunken;scroll:no');
  if(rq !=null)
   {
      if(rq=="usenull")
      {
        document.all(vv).value="";
      }
      else
      {
        document.all(vv).value=rq;
      }
    
   }
  
}

function GetDateFromCalendar5(vv,ww) 
{
  var rq;
//  var vv2=document.all(vv).value;
    rq=showModalDialog(ww,document.all(vv),'dialogWidth:480px;dialogHeight:400px;status:0;help:0;edge:sunken;scroll:no');
  if(rq !=null)
   {
      if(rq=="usenull")
      {
        document.all(vv).value="";
      }
      else
      {
        document.all(vv).value=rq;
      }
    
   }
  
}


/*********************************************************************************
* FUNCTION: isBetween
* PARAMETERS: val AS any value
* lo AS Lower limit to check
* hi AS Higher limit to check
* CALLS: NOTHING
* RETURNS: TRUE if val is between lo and hi both inclusive, otherwise false.
**********************************************************************************/
function isBetween (val, lo, hi) {
if ((val < lo) || (val > hi)) { return(false); }
else { return(true); }
}

/*********************************************************************************
* FUNCTION: isDate checks a valid date
* PARAMETERS: theStr AS String
* CALLS: isBetween, isInt
* RETURNS: TRUE if theStr is a valid date otherwise false.
**********************************************************************************/

function isDateA(theStr)
{
   if(theStr=='')
   {
      return true;
   }
   else
   {
      return isDate (theStr);
   }

}

function isDate (theStr) {
	var the1st = theStr.indexOf('-');
	var the2nd = theStr.lastIndexOf('-');

	if (the1st == the2nd) { return(false); }
	else {
		var y = theStr.substring(0,the1st);
		var m = theStr.substring(the1st+1,the2nd);
		var d = theStr.substring(the2nd+1,theStr.length);
		var maxDays = 31;

		if (isInt(m)==false || isInt(d)==false || isInt(y)==false) {
			return(false); }
		else if (y.length < 4) { return(false); }
		else if (!isBetween (m, 1, 12)) { return(false); }
		else if (m==4 || m==6 || m==9 || m==11) maxDays = 30;
		else if (m==2) {
		if (y % 4 > 0) maxDays = 28;
		else if (y % 100 == 0 && y % 400 > 0) maxDays = 28;
		else maxDays = 29;
		}
		if (isBetween(d, 1, maxDays) == false) { return(false); }
		else { return(true); }
	}
}

/*********************************************************************************
* FUNCTION: isEuDate checks a valid date in British format
* PARAMETERS: theStr AS String
* CALLS: isBetween, isInt
* RETURNS: TRUE if theStr is a valid date otherwise false.
**********************************************************************************/
function isEuDate (theStr) {
if (isBetween(theStr.length, 8, 10) == false) { return(false); }
else {
var the1st = theStr.indexOf('/');
var the2nd = theStr.lastIndexOf('/');

if (the1st == the2nd) { return(false); }
else {
var m = theStr.substring(the1st+1,the2nd);
var d = theStr.substring(0,the1st);
var y = theStr.substring(the2nd+1,theStr.length);
var maxDays = 31;

if (isInt(m)==false || isInt(d)==false || isInt(y)==false) {
return(false); }
else if (y.length < 4) { return(false); }
else if (isBetween (m, 1, 12) == false) { return(false); }
else if (m==4 || m==6 || m==9 || m==11) maxDays = 30;
else if (m==2) {
if (y % 4 > 0) maxDays = 28;
else if (y % 100 == 0 && y % 400 > 0) maxDays = 28;
else maxDays = 29;
}

if (isBetween(d, 1, maxDays) == false) { return(false); }
else { return(true); }
}
}

}
/********************************************************************************
* FUNCTION: Compare Date! Which is the latest!
* PARAMETERS: lessDate,moreDate AS String
* CALLS: isDate,isBetween
* RETURNS: TRUE if lessDate<moreDate
*********************************************************************************/
function isComdate (lessDate , moreDate)
{
if (!isDate(lessDate)) { return(false);}
if (!isDate(moreDate)) { return(false);}
var less1st = lessDate.indexOf('-');
var less2nd = lessDate.lastIndexOf('-');
var more1st = moreDate.indexOf('-');
var more2nd = moreDate.lastIndexOf('-');
var lessy = lessDate.substring(0,less1st);
var lessm = lessDate.substring(less1st+1,less2nd);
var lessd = lessDate.substring(less2nd+1,lessDate.length);
var morey = moreDate.substring(0,more1st);
var morem = moreDate.substring(more1st+1,more2nd);
var mored = moreDate.substring(more2nd+1,moreDate.length);
var Date1 = new Date(lessy,lessm,lessd); 
var Date2 = new Date(morey,morem,mored); 
if (Date1>Date2) { return(false);}
return(true); 

}

/*********************************************************************************
* FUNCTION isEmpty checks if the parameter is empty or null
* PARAMETER str AS String
**********************************************************************************/
function isEmpty (str) {
if ((str==null)||(str.length==0)) return true;
else return(false);
}

/*********************************************************************************
* FUNCTION: isInt
* PARAMETER: theStr AS String 
* RETURNS: TRUE if the passed parameter is an integer, otherwise FALSE
* CALLS: isDigit
**********************************************************************************/
function isInt (theStr) {
	var flag = true;

	if (isEmpty(theStr)) { flag=false; }
	else
	{ 
		for (var i=0; i<theStr.length; i++) {
			if (isDigit(theStr.substring(i,i+1)) == false) {
			flag = false; break;
			}
		}
	}
	return(flag);
}

/*********************************************************************************
* FUNCTION: isReal
* PARAMETER: heStr AS String 
decLen AS Integer (how many digits after period)
* RETURNS: TRUE if theStr is a float, otherwise FALSE
* CALLS: isInt
**********************************************************************************/
function isReal (theStr, decLen) {
var dot1st = theStr.indexOf('.');
var dot2nd = theStr.lastIndexOf('.');
var OK = true;

if (isEmpty(theStr)) return false;

if (dot1st == -1) {
	if (!isInt(theStr)) return(false);
	else return(true);
}
else if (dot1st != dot2nd) return (false);
else if (dot1st==0) return (false);
else {
var intPart = theStr.substring(0, dot1st);
var decPart = theStr.substring(dot2nd+1);

if (decPart.length > decLen) return(false);
else if (!isInt(intPart) || !isInt(decPart)) return (false);
else if (isEmpty(decPart)) return (false);
else return(true);
}
}

/*********************************************************************************
* FUNCTION: isEmail
* PARAMETER: String (Email Address)
* RETURNS: TRUE if the String is a valid Email address
* FALSE if the passed string is not a valid Email Address
* EMAIL FORMAT: AnyName@EmailServer e.g; webmaster@hotmail.com
* @ sign can appear only once in the email address.
*********************************************************************************/
function isEmail (theStr) {
var atIndex = theStr.indexOf('@');
var dotIndex = theStr.indexOf('.', atIndex);
var flag = true;
theSub = theStr.substring(0, dotIndex+1)

if ((atIndex < 1)||(atIndex != theStr.lastIndexOf('@'))||(dotIndex < atIndex + 2)||(theStr.length <= 

theSub.length)) 
{ return(false); }
else { return(true); }
}
/*********************************************************************************
* FUNCTION: newWindow
* PARAMETERS: doc -> Document to open in the new window
hite -> Height of the new window
wide -> Width of the new window
bars -> 1-Scroll bars = YES 0-Scroll Bars = NO
resize -> 1-Resizable = YES 0-Resizable = NO
* CALLS: NONE
* RETURNS: New window instance
**********************************************************************************/
function newWindow (doc, hite, wide, bars, resize) {
var winNew="_blank";
var opt="toolbar=0,location=0,directories=0,status=0,menubar=0,";
opt+=("scrollbars="+bars+",");
opt+=("resizable="+resize+",");
opt+=("width="+wide+",");
opt+=("height="+hite);
winHandle=window.open(doc,winNew,opt);
return;
}
/*********************************************************************************
* FUNCTION: DecimalFormat
* PARAMETERS: paramValue -> Field value
* CALLS: NONE
* RETURNS: Formated string
**********************************************************************************/
function DecimalFormat (paramValue) {
var intPart = parseInt(paramValue);
var decPart =parseFloat(paramValue) - intPart;

str = "";
if ((decPart == 0) || (decPart == null)) str += (intPart + ".00");
else str += (intPart + decPart);

return (str);
}

//校验是否全由数字组成
function isDigit(s)
{
var patrn=/^[0-9]{1,20}$/;
if (!patrn.exec(s)) return(false);
return(true);
}



