// ----------------------------------------------------------------------------
//       File Name: enduser.js
//       Subsystem: enduser
//   Document Type: Javascript include file
//         Purpose: contains all non-page specific enduser page Javascript
// ----------------------------------------------------------------------------

// ----------------------------------------------------------------------------

// validateDate fuction 
function validateDate(selectYear,selectMonth,selectDay)
{	
	if(selectMonth!="" || selectDay!="")
	{
	
		if(selectYear==""||selectYear==null)
		{
			alert("请输入年.");
			return false;
		}
		
	}
    	if(selectDay!="")
	{
		if(selectYear=="")
		{
			alert("请输入年.");
			return false;
		}
		if(selectMonth=="")
		{
			alert("请输入月.");
			return false;
		}
		
	}
	if ( selectYear!="")
	{		
		if( isNaN(selectYear) || eval(selectYear)<1800 || eval(selectYear)>9999 )		{
			
			strTemp = "年是数值型的,并且不小于1800";
			alert(strTemp) ;			
			return false ;
		}		
		if(selectMonth=="")
		{
			alert("请输入月.");
			return false;
		}
		if(selectDay=="")
		{
			alert("请输入日.");
			return false;
		}
	}
	return true;
}

// compare the search date whether right
function compareDate(selectYear1,selectMonth1,selectDay1,selectYear2,selectMonth2,selectDay2)
{	
    	if(eval(selectYear1)>eval(selectYear2))
	{
		alert("请填写正确年，查询的开始日期要小于查询的结束日期!");
		return false;
	}
   	if(eval(selectYear1)<=eval(selectYear2) && eval(selectMonth1)>eval(selectMonth2))
	{
		alert("请填写正确月，查询的开始日期要小于查询的结束日期!");
		return false;
	}
   	if(eval(selectYear1)<=eval(selectYear2) && eval(selectMonth1)<=eval(selectMonth2) && eval(selectDay1)>eval(selectDay2))
	{
		alert("请填写正确日，查询的开始日期要小于查询的结束日期!");
		return false;
	}
	 
	return true;
}

// validateDate is not null fuction 
function validateDateNotNull(selectYear,selectMonth,selectDay)
{	
    if(selectYear==""&&selectMonth==""&&selectDay=="")
	{
	alert("请正确填写日期!!!!!!");
	return false;
	}

	if(selectMonth!="" || selectDay!="")
	{
	
		if(selectYear==""||selectYear==null)
		{
			alert("请输入年.");
			return false;
		}
		
	}
    if(selectDay!="")
	{
	
		if(selectYear=="")
		{
			alert("请输入年.");
			return false;
		}
		if(selectMonth=="")
		{
			alert("请输入月.");
			return false;
		}
		
	}
	if(selectYear!="")
	{
	
		if(selectMonth=="")
		{
			alert("请输入月.");
			return false;
		}
		if(selectDay=="")
		{
			alert("请输入日.");
			return false;
		}
		
	}
	if ( selectYear!="")
	{		
		if( isNaN(selectYear) || eval(selectYear)<1800 || eval(selectYear)>9999 )		{
			
			strTemp = "年是数值型的,并且并且不小于1800";
			alert(strTemp) ;			
			return false ;
		}		
	}
	return true;
	
}


// ----------------------------------------------------------------------------

function field_data(int_msg, reqd_msg, not_complete_msg, oversz_msg,
                    mon_lbl, day_lbl, yr_lbl, hr_lbl, min_lbl, fields)
{
    this.int_msg          = int_msg;
    this.reqd_msg         = reqd_msg;
    this.not_complete_msg = not_complete_msg;
    this.oversz_msg       = oversz_msg;

    this.dt_lbl           = new Array(mon_lbl, day_lbl, yr_lbl, hr_lbl, min_lbl);
}

// ----------------------------------------------------------------------------

function field(name, label, type, maxlen, req)
{
    this.name   = name;
    this.label  = label;
    this.type   = type;
    this.maxlen = maxlen;
    this.req    = req;
}

// ----------------------------------------------------------------------------

function upd_submenu(menu, submenu, submenu_data, all_str)
{
    var i, j = 1;

    submenu.legnth = 0;

    submenu.options[0]       = new Option();
    submenu.options[0].text  = all_str;
    submenu.options[0].value = '~any~';

    for (i = 0; i < submenu_data.length; i++)
        if (submenu_data[i].code == menu.options[menu.selectedIndex].value)
        {
            for ( ; j <= submenu_data[i].items.length; j++)
            {
                submenu.options[j]       = new Option();
                submenu.options[j].text  = submenu_data[i].items[j-1].name;
                submenu.options[j].value = submenu_data[i].items[j-1].code;
            }

            break;
        }
    
    submenu.length        = j;
    submenu.selectedIndex = 0;
}   

// ----------------------------------------------------------------------------

function alp_onload(page, gridsort)
{
    if (document.grid)
    {
        if (document.grid.p_page)
            document.grid.p_page.selectedIndex = page - 1;
        if (document.grid.p_gridsort)
            document.grid.p_gridsort.value = gridsort;
    }

    set_cursor();
}

// ----------------------------------------------------------------------------

function adp_print(refno, created, sid)
{
    window.open('prnt_adp.php?p_refno='+refno+'&p_created='+created
                +'&p_sid='+sid, 'print_answer', 'resizable,menubar,toolbar');
}

// ----------------------------------------------------------------------------

function adp_email(refno, sid) 
{ 
    window.open('email_adp.php?p_refno='+refno+'&p_sid='+sid, 
                'email_answer', 'resizable,width=700,height=392');
}

// ----------------------------------------------------------------------------
// CDT_DATE and CDT_DATETIME components are processed as individual CDT_MENU 
// fields

function check_fields(form_name, fld_data, fields)
{
    var fld, i, j, v, str;
    var num_exp    = new RegExp("[-+]?\\d+");
    var ws_exp     = new RegExp("(^\\s*|\\s*$)", "g");
    var strtok_exp = new RegExp("%s");
    var numtok_exp = new RegExp("%d");

    with (fld_data) for (i = 0; (i < fields.length) && fields[i].type; i++)
    {
        if ((fields[i].type != 4) && (fields[i].type != 7))
            fld = eval('document.'+form_name+'.'+fields[i].name);
        
        switch (fields[i].type)
        {
            case 1: // CDT_MENU
                if (fields[i].req && (fld.length > 1) && (fld.selectedIndex < 1))
                {
                    alert('\''+fields[i].label+'\' '+reqd_msg);
                    fld.focus();
                    return(false);
                }
                break;
            
            case 2: // CDT_BOOL
                if (fields[i].req && !fld[0].checked && !fld[1].checked)
                {
                    alert('\''+fields[i].label+'\' '+reqd_msg);
                    fld[0].focus();
                    return(false);
                }
                break;
                
            case 3: // CDT_INT
                fld.value = fld.value.replace(ws_exp, '');

                if (fld.value.length && !num_exp.test(fld.value))
                {
                    alert('\''+fields[i].label+'\' '+int_msg);
                    fld.focus();
                    return(false);
                }
                // deliberate drop through
                
            case 5: // CDT_VARCHAR
            case 6: // CDT_MEMO
                if (fields[i].maxlen && (fields[i].maxlen < fld.value.length))            
                {
                    str = oversz_msg.replace(strtok_exp, fields[i].label);
                    str = str.replace(numtok_exp, fields[i].maxlen);
                    str = str.replace(numtok_exp, 
                                      fld.value.length - fields[i].maxlen);

                    alert(str);
                    fld.focus();
                    return(false);
                }

                if (fields[i].type != 3)
                    fld.value = fld.value.replace(ws_exp, '');

                if (fields[i].req && (fld.value.length == 0))
                {
                    alert('\''+fields[i].label+'\' '+reqd_msg);
                    fld.focus();
                    return(false);
                }
                break;

            case 4: // CDT_DATETIME
            case 7: // CDT_DATE
                fld = new Array();

                fld[0] = eval('document.'+form_name+'.'+fields[i].name+'_mon');
                fld[1] = eval('document.'+form_name+'.'+fields[i].name+'_day');
                fld[2] = eval('document.'+form_name+'.'+fields[i].name+'_yr');

                if (fields[i].type == 4)
                {
                    fld[3] = eval('document.'+form_name+'.'+fields[i].name+'_hr');
                    fld[4] = eval('document.'+form_name+'.'+fields[i].name+'_min');
                }

                if (!fields[i].req)
                {
                    for (j = v = 0; j < fld.length; j++)
                        v += (fld[j].selectedIndex > 0) ? 0 : 1;

                    if ((v != 0) && (v != fld.length))
                    {
                        alert('\''+fields[i].label+'\' '+not_complete_msg);
                        fld[0].focus();
                        return(false);
                    }

                    break;
                }

                for (j = 0; j < fld.length; j++)
                    if ((fld[j].selectedIndex < 1))
                    {
                        alert('\''+fields[i].label+' ('+dt_lbl[j]+')\' '+reqd_msg);
                        fld[j].focus();
                        return(false);
                    }

                break;
        }
    }
    
    return(true);
}

// ----------------------------------------------------------------------------

function validate_acctinfo(userid, passwd1, passwd2, msgs)
{
   var msg = -1, fld;
   
   if (userid.value.indexOf(' ') != -1)
   {
       msg = 0;
       fld = userid;
   }

   if (userid.value.indexOf('\"') != -1)
   {
       msg = 1;
       fld = userid;
   }

   if (passwd1 && (passwd1.value != passwd2.value))
   {
       msg = 2;
       fld = passwd1;
   }

   if (msg != -1)
   {
       alert(msgs[msg]);
       fld.focus();
       fld.select();
       return(false);
   }

   return(true);
}


// ----------------------------------------------------------------------------

function set_cursor()
{
    var i, j;
    
    for (i = 0; i < document.forms.length; i++)
        for (j = 0; j < document.forms[i].length; j++)
           with (document.forms[i])
               if (elements[j].type && ((elements[j].type == 'text') || (elements[j].type == 'textarea')))
               {
                   elements[j].focus();
                   if (elements[j].value.length)
                       elements[j].select();
                   return;
               }
}

// ----------------------------------------------------------------------------
function validateInt(value)
{
	for(var i=0;i<value.length;i++)
	{
		if(value.charAt(i)<'0' || value.charAt(i)>'9')
		{
			return false;
		}
	}
	return true;
}
// ----------------------------------------------------------------------------
function validateYear(value)
{	
    if(validateInt(value))
    {
		if(eval(value)<1900 ||eval(value)>9999)
		{
			alert("请填写正确年!") ;			
			return false;
		}
    }
	else
	{		
			strTemp = "年是数值型的,并且是4位";
			alert(strTemp) ;			
			return false ;
	}
	return true;
}
// ----------------------------------------------------------------------------
function validateAllDate(selectYear, selectMonth, selectDay)
{

	if(selectYear)
	{
		if(!selectMonth)
		{
			alert("请您先选择年");
			return false;
		}
		if(!selectDay)
		{
			alert("请您先选择年");
			return false;
		}
	}
	else{
		if(selectMonth)
		{
			if(!selectDay)
			{
				alert("请您先选择月");
				return false;
			}
		}
	}
	return true;
}

// ----------------------------------------------------------------------------
function validateQueryDate(selectYear, selectMonth, selectDay)
{	
	
	if(selectYear!="")
	{
		if(selectMonth=="")
		{
			if(selectDay!="")
			{
				alert("请您先选择月");
				return false;
			}
		}
		if(selectYear<1753)	
		{
				alert("查询年不能小于1752年");
				return false;
		}


	}
	else{
		if(selectMonth!="")
		{
			alert("请您先选择年");
			return false;
		}
		if(selectDay!="")
		{
			alert("请您先选择年");
			return false;
		}
	}
	return true;
}




function validateYearNotNull(selectYear,selectMonth,selectDay)
{	
    if(selectYear==""&&selectMonth==""&&selectDay=="")
	{
	alert("请填写日期!!!!!!");
	return false;
	}

	if(selectMonth!="" || selectDay!="")
	{
	
		if(selectYear==""||selectYear==null)
		{
			alert("请输入年.");
			return false;
		}
		
	}
    if(selectDay!="")
	{
	
		if(selectYear=="")
		{
			alert("请输入年.");
			return false;
		}
		if(selectMonth=="")
		{
			alert("请输入月.");
			return false;
		}
		
	}
	
	if ( selectYear!="")
	{		
		if( isNaN(selectYear) || eval(selectYear)<1800 || eval(selectYear)>9999 )		{
			
			strTemp = "年是数值型的,并且并且不小于1800";
			alert(strTemp) ;			
			return false ;
		}		
	}
	return true;
}




//去掉字串左边的空格
function lTrim(str)
{
	if (str.charAt(0) == " ")
	{
	//如果字串左边第一个字符为空格
	str = str.slice(1);//将空格从字串中去掉
	//这一句也可改成 str = str.substring(1, str.length);
	str = lTrim(str); //递归调用
	}
	return str;
}

//去掉字串右边的空格
function rTrim(str)
{
	var iLength;
	
	iLength = str.length;
	if (str.charAt(iLength - 1) == " ")
	{
	//如果字串右边第一个字符为空格
	str = str.slice(0, iLength - 1);//将空格从字串中去掉
	//这一句也可改成 str = str.substring(0, iLength - 1);
	str = rTrim(str); //递归调用
	}
	return str;
}

//去掉字串两边的空格
function trim(str)
{
	return lTrim(rTrim(str));
}


function compareTime(selectHour1,selectMinute1,selectHour2,selectMinute2)
{	
    if(eval(selectHour1)>eval(selectHour2))
	{
	alert("请填写正确时间!");
	return false;
	}
   if(eval(selectHour1)==eval(selectHour2) && eval(selectMinute1)>eval(selectMinute2))
	{
	alert("请填写正确时间!");
	return false;
	}
	return true;
}
//--------------------------------------------
//------------- 2004-06-14 Added by kwang -----------
function compareDateTime(selectYear1,selectMonth1,selectDay1,selectHour1,selectMinute1,selectYear2,selectMonth2,selectDay2,selectHour2,selectMinute2)
{	 

	if(eval(selectYear1)>eval(selectYear2))
	{
	    
		alert("请填写正确年!");
		return false;
	}
	if(eval(selectYear1)==eval(selectYear2))
	{ 
	    if(eval(selectMonth1)>eval(selectMonth2))
		{
			alert("请填写正确月!");
			return false;
		}
		if(eval(selectMonth1)==eval(selectMonth2))
		{
			if(eval(selectDay1)>eval(selectDay2))
			{
				alert("请填写正确日!");
				return false;
			}
			if(eval(selectDay1)==eval(selectDay2))
		    {
		    	if(eval(selectHour1)>eval(selectHour2))
				{
					alert("请填写正确小时!");
					return false;
				}   
				if(eval(selectHour1)==eval(selectHour2))
		    	{
		    	    if(eval(selectMinute1)>=eval(selectMinute2))
					{
						alert("请填写正确分!");
						return false;
					} 
		    	}
		    }
		}
	}
	return true;
} 


//------------- 2004-06-14 Added by kwang -----------
function compareDateValid(selectYear1,selectMonth1,selectDay1,selectYear2,selectMonth2,selectDay2,day)
{	
    var count=(selectYear2-selectYear1)*365+(selectMonth2-selectMonth1)*31+selectDay2-selectDay1+1;
    if(count<day)
    {
    	return false;    
    }
	return true;
}
//--------------------------------------------