﻿    
    
//Function: Change Enter To Tab on Form
//Parameter:
//          LastControl--the last input control's ID
//          defaultbutton--the default submit button' ID
//          formID--the Form's ID
//DesignTime:2006年04月25日
//Warnning:you must use 'return' keyword before this function name where you invoted.
function KeyPress(LastControl,defaultbutton,formID)
{
    var obj;
    obj = document.activeElement;
    
    if(obj.name==LastControl)
    {   if(event.keyCode==13)
        {
            if(checkInput(formID))
            { 
                return WebForm_FireDefaultButton(event, defaultbutton)
            }
            else
            {
               return false;
            }
        }
    }
    else
    {
        if(event.keyCode==13 && event.srcElement.type!='button' && event.srcElement.type!='submit' && event.srcElement.type!='reset' && event.srcElement.type!='textRegion' && event.srcElement.type!='' && obj.type !='textarea') 
        {
            event.keyCode=9; 
        }
    }
   
}
    
    
//*************************************************
//功能:获得交验页面控件的脚本的字符串
//使用方法:
//      1.对提交按钮增加如下属性（Page_Load事件中）
//          btn_save.Attributes.Add("onclick", "javascript:return checkInput('form1')");
//          其中:btn_save为按钮ID 
//                需要交验的Form的ID统一为form1,如果不是,请修改相应的值
//      2.对页面需要交验的texbox、password等输入控件设置一下自定义属性:
//              MaxLength="12"     //最多允许输入字符数量
//              ConType //文本类型:
//						Phone:电话号码
//						MailBox:电子邮件
//						Chinese:必须是中文字
//                      English :必须是字母,数字或下划线字符； 
//						Date:日期
//						Postalcode:邮政编码
//						URL:网址
//                      RealNumber:实数;
//						Int:整数
//                      PInt:正整数
//						Number:全部都由数字组成
//              TipText = "名称" //文本框里输入信息的内容名称
//              Atleast="4"	      //最少输入字符数量,0表示允许为空.
//              PremitQ="0"        //是否允许单引号,0表示不允许,1表示允许.
//
//设计时间:2006年04月25日
function checkInput(fromname)
{
    var i;
    var obj;
    
    //----------------这里检测的是文本框的,如果是asp.net的服务器控件,那么TextMode＝"SingleLine"或者TextMode="Password"或者默认都适用------开始
    for (i = 0; i < document.forms[fromname].tags('input').length; i++)
    {
        obj = document.forms[fromname].tags('input')[i];
            
        //这里检测的是文本框的,如果是asp.net的服务器控件,那么TextMode＝"SingleLine"或者TextMode="Password"或者默认都适用。
        if(obj.type=='text'|| obj.type=='password')
        {
            if(obj.Atleast>0)
            {
                //设置了不能为空,而且设置了长度
                if(Getlength(obj.value)<obj.Atleast)
                {
                    AlertText2('Empty',obj.TipText,obj.Atleast);
                    obj.focus();
                    return false;
                }
            }
            
            if (!(Checklength(obj.value,obj.maxLength)))
            {
                AlertText2('Length',obj.TipText,obj.maxLength);
                obj.focus();
                return false;
            }
            
            if(obj.PremitQ==0)
            {
                if (!(CheckQ(obj.value)))
                {
                    AlertText2('SingleQuotes',obj.TipText,'');
                    obj.focus();
                    return false;
                }
            }
            
            //当输入的数据不为空时.根据类型来检测输入
            if(obj.value.length>0)
            {
                switch(obj.ConType)
                {
                    case 'Phone':
                        if(!IsPhone(obj.value))
                        {
                             AlertText2('Phone',obj.TipText,'');
                            obj.focus();
                            return false;
                        }
                    break;
                    
                    case  'MailBox':
                        if(!IsEmail(obj.value))
                        {
                             AlertText2('MailBox',obj.TipText,'');
                            obj.focus();
                            return false;
                        }
                    break;
                    
                    case 'Chinese':
                        if(!IsChineseStr(obj.value))
                        {
                            AlertText2('Chinese',obj.TipText,'');
                            obj.focus();
                            return false;
                        }
                    break;
                    
                    case 'English'://必须是字母,数字或下划线字符
                        if(!IsEnglish(obj.value))
                        {
                             AlertText2('English',obj.TipText,'');
                            obj.focus();
                            return false;
                        }
                    break;
                     
                    case 'Date':
                        if(!IsDateTime(obj.value))
                        {
                             AlertText2('Date',obj.TipText,'');
                            obj.focus();
                            return false;
                        }
                    break;
                    
                    case 'Postalcode':
                        if(!IsPostalcode(obj.value))
                        {
                             AlertText2('Postalcode',obj.TipText,'');
                            obj.focus();
                            return false;
                        }
                    break;
                    
                    case 'URL':
                        if(!IsURL(obj.value))
                        {
                             AlertText2('URL',obj.TipText,'');
                            obj.focus();
                            return false;
                        }
                    break;
                    
                    case 'RealNumber'://实数
                        if(!IsRealNumber(obj.value))
                        {
                             AlertText2('RealNumber',obj.TipText,'');
                            obj.focus();
                            return false;
                        }
                    break;
                    
                    case 'Int'://整数
                        if(!IsInt(obj.value))
                        {
                             AlertText2('Int',obj.TipText,'');
                            obj.focus();
                            return false;
                        }
                    break;
                    
                    case 'PInt'://正整数,全部是数字,但不包括0
                        if(!IsPlusInt(obj.value))
                        {
                        
                             AlertText2('PInt',obj.TipText,'');
                            obj.focus();
                            return false;
                        }
                    break;
                    
                    case 'Number'://全部是数字
                        if(!IsNumber(obj.value))
                        {
                             AlertText2('Number',obj.TipText,'');
                            obj.focus();
                            return false;
                        }
                    break;
                    
                    default:
                    break;
                }
            }
        }
    }
    //----------------这里检测的是文本框的,如果是asp.net的服务器控件,那么TextMode＝"SingleLine"或者TextMode="Password"或者默认都适用------结束
    
    
     //----------------这里检测的是多行文本框的,如果是asp.net的服务器控件,那么TextMode＝"MultiLine"------开始
    for (i = 0; i < document.forms[fromname].tags('textarea').length; i++)
    {
        obj = document.forms[fromname].tags('textarea')[i];
            
        if(obj.Atleast>0)
        {
            //设置了不能为空,而且设置了长度
            if(Getlength(obj.value)<obj.Atleast)
            {
                AlertText2('Empty',obj.TipText,obj.Atleast);
                obj.focus();
                return false;
            }
        }
        
        if (!(Checklength(obj.value,obj.maxLength)))
        {
            AlertText2('Length',obj.TipText,obj.maxLength);
            obj.focus();
            return false;
        }
        
        if(obj.PremitQ==0)
        {
            if (!(CheckQ(obj.value)))
            {
                AlertText2('SingleQuotes',obj.TipText,'');
                obj.focus();
                return false;
            }
        }
        
        //当输入的数据不为空时.根据类型来检测输入
        if(obj.value.length>0)
        {
            switch(obj.ConType)
            {
                case 'Phone':
                    if(!IsPhone(obj.value))
                    {
                         AlertText2('Phone',obj.TipText,'');
                        obj.focus();
                        return false;
                    }
                break;
                
                case  'MailBox':
                    if(!IsEmail(obj.value))
                    {
                         AlertText2('MailBox',obj.TipText,'');
                        obj.focus();
                        return false;
                    }
                break;
                
                case 'Chinese':
                    if(!IsChineseStr(obj.value))
                    {
                        AlertText2('Chinese',obj.TipText,'');
                        obj.focus();
                        return false;
                    }
                break;
                
                case 'English'://必须是字母,数字或下划线字符
                    if(!IsEnglish(obj.value))
                    {
                         AlertText2('English',obj.TipText,'');
                        obj.focus();
                        return false;
                    }
                break;
                 
                case 'Date':
                    if(!IsDateTime(obj.value))
                    {
                         AlertText2('Date',obj.TipText,'');
                        obj.focus();
                        return false;
                    }
                break;
                
                case 'Postalcode':
                    if(!IsPostalcode(obj.value))
                    {
                         AlertText2('Postalcode',obj.TipText,'');
                        obj.focus();
                        return false;
                    }
                break;
                
                case 'URL':
                    if(!IsURL(obj.value))
                    {
                         AlertText2('URL',obj.TipText,'');
                        obj.focus();
                        return false;
                    }
                break;
                
                case 'RealNumber'://实数
                    if(!IsRealNumber(obj.value))
                    {
                         AlertText2('RealNumber',obj.TipText,'');
                        obj.focus();
                        return false;
                    }
                break;
                
                case 'Int'://整数
                    if(!IsInt(obj.value))
                    {
                         AlertText2('Int',obj.TipText,'');
                        obj.focus();
                        return false;
                    }
                break;
                
                case 'PInt'://正整数,全部是数字,但不包括0
                    if(!IsPlusInt(obj.value))
                    {
                        AlertText2('PInt',obj.TipText,'');
                        obj.focus();
                        return false;
                    }
                break;
                
                case 'Number'://全部是数字
                    if(!IsNumber(obj.value))
                    {
                         AlertText2('Number',obj.TipText,'');
                        obj.focus();
                        return false;
                    }
                break;
                
                default:
                break;
            }
        }
        
    }
    //----------------这里检测的是多行文本框的,如果是asp.net的服务器控件,那么TextMode＝"MultiLine"------结束 
    
    
    
    
        
        //下面的暂时不知道有什么用，所以先注释了。
//    for (i = 0; i < document.forms[fromname].tags('TEXTRegion').length; i++)
//    {
//        obj = document.forms[fromname].tags('TEXTRegion')[i];
//        
//        if (!(Checklength(obj.value,obj.MaxLength)))
//        {
////            alert('对不起,在'+obj.TipText+'输入信息包含有特殊字符或中文,长度超过了' + obj.MaxLength + '！');
//            alert(obj.AlertText);
//            obj.focus();
//            return false;
//        }
//        
//        if(obj.PremitQ==0)
//        {
//            if (!(CheckQ(obj.value)))
//            {
////                alert('输入信息不能含有单引号,请重新输入！');
//                alert(obj.AlertText);
//                obj.focus();
//                return false;
//            }
//        }
//    }
    
    return true;
}


function AlertText(Type,TipText,OtherErrorInfo)
{
    //这个函数专门为遇到JS里不能包含中文时设计的。
    switch(Type)
    {
        case "Empty":
            alert('对不起,'+ TipText + '不允许为空,且长度至少为:'+ OtherErrorInfo +' 个字符!请重新输入,谢谢.');
        break;
        
        case "Length":
            alert('对不起,您在' + TipText + '输入的信息包含有特殊字符或中文,长度超过了' + OtherErrorInfo + ',请重新输入,谢谢.');
        break;
        
        case "SingleQuotes":
            alert('对不起,您在' + TipText + '输入信息不能含有单引号,请重新输入,谢谢.');
        break;
        
        case "Phone":
            alert('对不起,您在' + TipText + '输入了不正确的电话号码,请重新输入,匹配形式如:0759-6688888 或者020-82347551 或者 020-82347551-222 或者 (0759)6688888,谢谢.');
        break;
        
        case "MailBox":
            alert('对不起,您在' + TipText + '输入了不正确的MailBox,请重新输入,谢谢.');
        break;
        
        case "Chinese":
            alert('对不起,您在' + TipText + '输入的不是中文字符,请重新输入,谢谢.');
        break;
        
        case "English":
            alert('对不起,您在' + TipText + '输入信息只能是字母,数字或下划线字符,请重新输入,谢谢.');
        break;
        
        case "Date":
            alert('对不起,您在' + TipText + '输入的时间格式不正确,请重新输入,如:2007-04-25,谢谢.');
        break;
        
        case "Postalcode":
            alert('对不起,您在' + TipText + '输入的邮政编码不正确,请重新输入6位数字,如:524400,谢谢.');
        break;
        
        case "URL":
            alert('对不起,您在' + TipText + '输入的网站地址不正确,请重新输入,如:http://www.qq.com,谢谢.');
        break;
        
        case "RealNumber":
            alert('对不起,您在' + TipText + '输入信息只能是实数,请重新输入,谢谢.');
        break;
        
        case "Int":
            alert('对不起,您在' + TipText + '输入信息只能是整数,请重新输入,谢谢.');
        break;

        case "PInt":
            alert('对不起,您在' + TipText + '输入信息只能是正整数,请重新输入,谢谢.');
        break;
        
        case "Number":
            alert('对不起,您在' + TipText + '输入信息只能是数字,请重新输入,谢谢.');
        break;
        
        default :
        break;
        
    }
}

function AlertText2(Type,TipText,OtherErrorInfo)
{
    //这个函数专门为遇到JS里不能包含中文时设计的。
    switch(Type)
    {
        case "Empty":
            ShowNoticeInfo('对不起,'+ TipText + '不允许为空,且长度至少为:'+ OtherErrorInfo +' 个字符!请重新输入,谢谢.');
        break;
        
        case "Length":
            ShowNoticeInfo('对不起,您在' + TipText + '输入的信息包含有特殊字符或中文,长度超过了' + OtherErrorInfo + ',请重新输入,谢谢.');
        break;
        
        case "SingleQuotes":
            ShowNoticeInfo('对不起,您在' + TipText + '输入信息不能含有单引号,请重新输入,谢谢.');
        break;
        
        case "Phone":
            ShowNoticeInfo('对不起,您在' + TipText + '输入了不正确的电话号码,请重新输入,匹配形式如:0759-6688888 或者020-82347551 或者 020-82347551-222 或者 (0759)6688888,谢谢.');
        break;
        
        case "MailBox":
            ShowNoticeInfo('对不起,您在' + TipText + '输入了不正确的MailBox,请重新输入,谢谢.');
        break;
        
        case "Chinese":
            ShowNoticeInfo('对不起,您在' + TipText + '输入的不是中文字符,请重新输入,谢谢.');
        break;
        
        case "English":
            ShowNoticeInfo('对不起,您在' + TipText + '输入信息只能是字母,数字或下划线字符,请重新输入,谢谢.');
        break;
        
        case "Date":
            ShowNoticeInfo('对不起,您在' + TipText + '输入的时间格式不正确,请重新输入,如:2007-04-25,谢谢.');
        break;
        
        case "Postalcode":
            ShowNoticeInfo('对不起,您在' + TipText + '输入的邮政编码不正确,请重新输入6位数字,如:524400,谢谢.');
        break;
        
        case "URL":
            ShowNoticeInfo('对不起,您在' + TipText + '输入的网站地址不正确,请重新输入,如:http://www.qq.com,谢谢.');
        break;
        
        case "RealNumber":
            ShowNoticeInfo('对不起,您在' + TipText + '输入信息只能是实数,请重新输入,谢谢.');
        break;
        
        case "Int":
            ShowNoticeInfo('对不起,您在' + TipText + '输入信息只能是整数,请重新输入,谢谢.');
        break;

        case "PInt":
            ShowNoticeInfo('对不起,您在' + TipText + '输入信息只能是正整数,请重新输入,谢谢.');
        break;
        
        case "Number":
            ShowNoticeInfo('对不起,您在' + TipText + '输入信息只能是数字,请重新输入,谢谢.');
        break;
        
        default :
        break;
        
    }
}

function ShowNoticeInfo(strErrorInfo)
{
    if(document.getElementById('divNoticeInfo') != null  && document.getElementById('lblNoticeInfo') != null)
    {
        document.body.style.overflow="hidden";
        document.getElementById('divNoticeInfo').style.display = 'block';
        document.getElementById('lblNoticeInfo').innerHTML = strErrorInfo;
    }
    else
    {
        alert(strErrorInfo);
    }
}

function sAlert(str)
{
		var msgw,msgh,bordercolor;
		msgw=400;//提示窗口的宽度
		msgh=100;//提示窗口的高度
		titleheight=25 //提示窗口标题高度
		bordercolor="#336699";//提示窗口的边框颜色
		titlecolor="#99CCFF";//提示窗口的标题颜色
		
		var sWidth,sHeight;
		sWidth=document.body.offsetWidth;
		sHeight=screen.height;
                
		var bgObj=document.createElement("div");
		bgObj.setAttribute('id','bgDiv');
		bgObj.style.position="absolute";
		bgObj.style.top="0";
		bgObj.style.background="#777";
		bgObj.style.filter="progid:DXImageTransform.Microsoft.Alpha(style=3,opacity=25,finishOpacity=75)";
		bgObj.style.opacity="0.6";
		bgObj.style.left="0";
		bgObj.style.width=sWidth + "px";
		bgObj.style.height=sHeight + "px";
		bgObj.style.zIndex = "10000";
		document.body.appendChild(bgObj);
		
		var msgObj=document.createElement("div")
		msgObj.setAttribute("id","msgDiv");
		msgObj.setAttribute("align","center");
		msgObj.style.background="white";
		msgObj.style.border="1px solid " + bordercolor;
    	msgObj.style.position = "absolute";
        msgObj.style.left = "50%";
        msgObj.style.top = "50%";
        msgObj.style.font="12px/1.6em Verdana, Geneva, Arial, Helvetica, sans-serif";
        msgObj.style.marginLeft = "-225px" ;
        msgObj.style.marginTop = -75+document.documentElement.scrollTop+"px";
        msgObj.style.width = msgw + "px";
        msgObj.style.height =msgh + "px";
        msgObj.style.textAlign = "center";
        msgObj.style.lineHeight ="25px";
        msgObj.style.zIndex = "10001";

	   var title=document.createElement("h4");
	   title.setAttribute("id","msgTitle");
	   title.setAttribute("align","right");
	   title.style.margin="0";
	   title.style.padding="3px";
	   title.style.background=bordercolor;
	   title.style.filter="progid:DXImageTransform.Microsoft.Alpha(startX=20, startY=20, finishX=100, finishY=100,style=1,opacity=75,finishOpacity=100);";
	   title.style.opacity="0.75";
	   title.style.border="1px solid " + bordercolor;
	   title.style.height="18px";
	   title.style.font="12px Verdana, Geneva, Arial, Helvetica, sans-serif";
	   title.style.color="white";
	   title.style.cursor="pointer";
	   title.innerHTML="关闭";
	   title.onclick=function()
	   {
	        document.body.removeChild(bgObj);
            document.getElementById("msgDiv").removeChild(title);
            document.body.removeChild(msgObj);
       }
       
	   document.body.appendChild(msgObj);
	   document.getElementById("msgDiv").appendChild(title);
	   var txt=document.createElement("p");
	   txt.style.margin="1em 0"
	   txt.setAttribute("id","msgTxt");
	   txt.innerHTML=str;
       document.getElementById("msgDiv").appendChild(txt);
}



//---------------------------------------------------------
//get the length of inputed data
//---------------------------------------------------------
function Getlength(strInput)
{
	var j = 0;
	for (var i=0; i<strInput.length;i++)
	{
		if (strInput.substr(i,1).charCodeAt(0)>255)
			j = j + 2;
		else
			j++;
	}	
	return j;
}


//---------------------------------------------------------
//checking the inputed data's length
//---------------------------------------------------------
function Checklength(strInput,intLength)
{
	var j = 0;
	for (var i=0; i<strInput.length;i++)
	{
		if (strInput.substr(i,1).charCodeAt(0)>255)
			j = j + 2;
		else
			j++;
	}	
	if(j>intLength)
		return false;
	else
		return true; 
}


//checking the inputed have single quotes.
function CheckQ(strInput)
{
	var ilength=strInput.length;
	for(i=0;i<ilength;i++)
	{  
		if(strInput.charCodeAt(i)==39)
		{
			return false; 	
		}
	}	
	return true;
}


//checking the inputed data is validate telephone number.
function IsPhone(strInput)
{
//    try{
//	    if (!sIn) return false;
//	    var s=sIn.split(";");
//	    var re1=/^0\d{2}\-\d{8}$/;
//	    var re2=/^0\d{3}\-\d{7}$/;
//	    var re3=/^0?13\d{9}$/;
//	    var re4=/^\d{7,8}$/;
//	    if (s[0]) flag1=re1.test(s[0]) || re2.test(s[0]) || re3.test(s[0]) || re4.test(s[0]);
//	    if (s[1]) flag2=re1.test(s[1]) || re2.test(s[1]) || re3.test(s[1]) || re4.test(s[1]);
//	    return s[1]?(flag1 && flag2):flag1;
//	}
//	catch(e){}
    
    var reg = /^(\(\d{3,4}\)|\d{3,4}-)?\d{7,8}((-\d{3})?)$/;//区号3到4位,号码7到8位,分基号3位
    return reg.test(strInput);
}

//checking the inputed is validate MailBox.
function IsEmail(strInput)
{
//		if (s.length > 128)
//		{
//				return false;
//		}
//		var regu = "^(([0-9a-zA-Z]+)|([0-9a-zA-Z]+[_.0-9a-zA-Z-]*[0-9a-zA-Z]+))@([a-zA-Z0-9-]+[.])+([a-zA-Z]{2}|net|NET|com|COM|gov|GOV|mil|MIL|org|ORG|edu|EDU|int|INT|cn|CN)$";
//		var re = new RegExp(regu);
//		if (s.search(re) != -1)
//		{
//			return true;
//		}
//		else
//		{
//			return false;
//		}

    var reg = /\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
    return reg.test(strInput);
}

//checking the inputed is validate Chinese.
function IsChineseStr(strInput)
{
	return (strInput)?(!/[^\u4E00-\u9FA5]+/.test(strInput)):false;
}


function IsEnglish(strInput)
{
    var reg = /^\w+$/;
    return reg.test(strInput);
    
}


//---------------------------------------------------------					
// Function:checking string is validate date type					
// Parameters:					
//---------------------------------------------------------
function IsDateTime(strInput)
{
var timeArray;
	timeArray=strInput.split("-");
	if (timeArray.length<2||timeArray.length>3)
	{
		return false;
	}
	if (timeArray.length==2)
	{
		timeArray[2]=1
	}
if (!IsNumber(timeArray[0]))
	{
		return false;
	}
	if (!IsNumber(timeArray[1]))
	{
		return false;	
	}
	if (!IsNumber(timeArray[2]))
	{
		return false;
	}

		
	if (!isValidDate(timeArray[0],timeArray[1],timeArray[2]))
		{
		return false;
	}	
	return true;
}


//----------------------------------------------------------
// function:check the string is validate postalcode					
// Parameters:strInput					
//---------------------------------------------------------
function IsPostalcode(strInput)
{
    var reg = /^\d{6}$/;
    return reg.test(strInput);
}



//----------------------------------------------------------
// function:check the string is validate Number					
// Parameters:strInput					
//---------------------------------------------------------
function IsNumber(strInput)
{
//	var j = 0;
//	var i;
//	var TemporaryParms;
//	for (var i=0;i<strInput.length;i++)
//	{
//		TemporaryParms = strInput.substr(i,1);
//		if (!((TemporaryParms >= '0') && (TemporaryParms <= '9')))
//		{
//			return false;
//		}
//	}
//	return true;

    var reg = /^\d*$/;
    return reg.test(strInput);
}

//----------------------------------------------------------
// function:check the string is validate Int					
// Parameters:strInput					
//---------------------------------------------------------

function IsInt(strInput)
{
    //包括正整数和负整数,还有0
    if(Math.round(strInput) == strInput)//Math.round(strInput)返回strInput的最接近的整数
    {
        return true;
    }
    else
    {
        return false;
    }
}

function IsPlusInt(strInput)
{
    //正整数
    var reg = /^\d*$/;
    var TemporaryParms;
    if(reg.test(strInput))
    {
	    for (var i=0;i<strInput.length;i++)
	    {
		    TemporaryParms = strInput.substr(i,1);
		    if (TemporaryParms > '0')
		    {
			    return true;
		    }
		    else
		    {
		        return false;
		    }
	    }
    }
    else
    {
        return false;
    }
}




//----------------------------------------------------------
//checking the inputed is validate URL
//----------------------------------------------------------
function IsURL(strInput)
{
	var strURL="^http://";
	var re = new RegExp(strURL);
	if(strInput.search(re)!=-1)
	{
		return true;
	}
	else
	{
		return false;
	}
    
//    var reg =  new RegExp("^http(s)?://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$");
//    return reg.test(strInput);
}


function IsRealNumber(strInput)
{   
    //是否是实数
    var reg = /^(-|\+)?\d+(\.\d+)?$/;  
    return reg.test(strInput);
}   


//Get Object by ID
function FindHTMLObjectByID(ControlID)
{ 	
	var obj;
	if (ControlID)
	{
		if (document.layers)
		{
			obj = document.layers[ControlID];
		} 
		else if (document.all)
		{
			obj = document.all(ControlID);
		} 
		else if (document.getElementById)
		{
			obj = document.getElementById(ControlID);
		}        
		return obj;
    }
    
    obj = null;
    return obj;
}