function NxDigitKeys(event)
{
	return(NxKeys(event,0,false,false,true,"")) ;
}

function NxKeys(event,lcase,allowall,allowaz,allow09,extraallow)
{
	var keyCode = (event.keyCode) ? event.keyCode : event.which ;
	var newCode = keyCode ;

	if((keyCode == 8) || (keyCode == 10) || (keyCode == 13))
		return ;
	if(lcase == 1)
		newCode = String.fromCharCode(keyCode).toUpperCase().charCodeAt(0) ;
	if(lcase == -1)
		newCode = String.fromCharCode(keyCode).toLowerCase().charCodeAt(0) ;
	if(newCode != keyCode)
	{
		if(event.keyCode)
		{
			event.keyCode = newCode ;
			keyCode = newCode ;
		}
		else
		{
			var new_event = document.createEvent("KeyEvents") ;
			new_event.initKeyEvent("keypress",false,true,document.defaultView,false,false,false,false,0,newCode) ;
			event.preventDefault() ;
			event.target.dispatchEvent(new_event) ;
			return ;
		}
	}
	if(allowall)
		return ;
	if((((keyCode >= 97) && (keyCode <= 122)) || ((keyCode >= 65) && (keyCode <= 90))) && allowaz)
		return ;
	if((keyCode >= 48) && (keyCode <= 57) && allow09)
		return ; 
	if(extraallow.indexOf(String.fromCharCode(keyCode)) != -1)
		return ; 
	if(event.keyCode)
		event.returnValue = false ;
	else
		event.preventDefault() ;
}

function NxDateKeys(event,separatorcode)
{
	var keyCode = (event.keyCode) ? event.keyCode : event.which ;
	var newCode = keyCode ;

	if((keyCode >= 48) && (keyCode <= 57))
		return ;
	if((keyCode == 45) || (keyCode == 46) || (keyCode == 47) || (keyCode == 58))
	{
		if(event.keyCode)
			event.keyCode = separatorcode ;
		else
		{
			var new_event=document.createEvent("KeyEvents") ;
			new_event.initKeyEvent("keypress",false,true,document.defaultView,false,false,false,false,0,separatorcode) ;
			event.preventDefault() ;
			event.target.dispatchEvent(new_event) ;
		}
		return ;
	}
	if((keyCode == 8) || (keyCode == 13))
		return ;

	if(event.keyCode)
		event.returnValue=false ;
	else
		event.preventDefault() ;
}

function NxCheckInt(s,nullable,minval,maxval)
{
	var i ;

	if(s == "")
		return ((nullable == true) ? true : false) ; 
	if(!NxCheckString(s,nullable,false,false,true,""))
		return false ; 
	i = parseInt(s,10) ; 
	if((minval != -1) && (i < minval))
		return false ; 
	if((maxval != -1) && (i > maxval))
		return false ; 
	return true ; 
}

function NxCheckString(s,nullable,allowlower,allowupper,allowdigit,extravalidchars)
{
	var i ;
	var ok = extravalidchars ;

	if(s == "")
		return ((nullable == true) ? true : false) ; 
	if(allowlower)
		ok = ok + "abcdefghijklmnopqrstuvwxyz" ;
	if(allowupper)
		ok = ok + "ABCDEFGHIJKLMNOPQRSTUVWXYZ" ;
	if(allowdigit)
		ok = ok + "0123456789" ;
	for(i = 0 ; i < s.length ; i++)
	{
		if(ok.indexOf(s.charAt(i)) == -1)
			return false ;
	}
	return true ;
}

function NxCheckString2(s,nullable,disallowlower,disallowupper)
{
	var i ;
	var nok = "" ;

	if(s == "")
		return ((nullable == true) ? true : false) ; 
	if(disallowlower)
		nok = nok + "abcdefghijklmnopqrstuvwxyz" ;
	if(disallowupper)
		nok = nok + "ABCDEFGHIJKLMNOPQRSTUVWXYZ" ;
	for(i = 0 ; i < s.length ; i++)
	{
		if(nok.indexOf(s.charAt(i)) != -1)
			return false ;
	}
	return true ;
}

function NxCheckDate(s,mandatory,year4,separator)
{
	var re ;

	if(s == '')
		return(mandatory ? false : true) ;
	if(separator == '/')
	{
		if(year4)
			re = /^\d{2}\/\d{2}\/\d{4}$/ ;
		else
			re = /^\d{2}\/\d{2}\/\d{2}$/ ;
	}
	else if(separator == '-')
	{
		if(year4)
			re = /^\d{2}\-\d{2}\-\d{4}$/ ;
		else
			re = /^\d{2}\-\d{2}\-\d{2}$/ ;
	}
	if(!re.test(s))
		return false ;
	var dArr = s.split(separator) ;
	var d = new Date() ;
	d.setFullYear(2001) ;
	d.setMonth(1) ;
	d.setDate(1) ;
	if(!year4)
		dArr[2] = parseInt(dArr[2],10)+2000 ;
	d.setFullYear(dArr[2]) ;
	d.setMonth(parseInt(dArr[1],10)-1) ;
	d.setDate(dArr[0]) ;
	return ((d.getMonth() + 1 == dArr[1]) && (d.getDate() == dArr[0]) && (d.getFullYear() == dArr[2])) ;
}

function NxCheckAttach(s,mandatory,extensions,maxlength)
{
	if(s == '')
		return(mandatory ? false : true) ;
	var eArr = extensions.toLowerCase().split(',') ;
  var ext = s.substr((s.lastIndexOf('.')+1)).toLowerCase() ;
	for(i = 0 ; i < eArr.length ; i++)
	{
		if(ext == eArr[i])
			return(true) ;
	}
	return(false) ;
}

function openImgPopup(picUrl,title)
{
	var html = "<HTML>\r\n" ;
	html = html + "<HEAD>\r\n" ;
	html = html + "<TITLE>" + title + "</TITLE>\r\n" ;
	html = html + "<script language=\"javascript\">\r\n" ;
	html = html + "function FitPic() {\r\n" ;
	html = html + "var NS = (navigator.appName==\"Netscape\")?true:false;\r\n" ;
	html = html + "iWidth = (NS)?window.innerWidth:document.body.clientWidth;\r\n" ;
	html = html + "iHeight = (NS)?window.innerHeight:document.body.clientHeight;\r\n" ;
	html = html + "iWidth = document.images[0].width - iWidth;\r\n" ;
	html = html + "iHeight = document.images[0].height - iHeight;\r\n" ;
	html = html + "window.resizeBy(iWidth, iHeight);\r\n" ;
	html = html + "self.focus();\r\n" ;
	html = html + "};\r\n" ;
	html = html + "</script>\r\n" ;
	html = html + "</HEAD>\r\n" ;
	html = html + "<BODY bgcolor=\"#000000\" onload=\"FitPic();\" topmargin=\"0\" marginheight=\"0\" leftmargin=\"0\" marginwidth=\"0\">\r\n" ;
	html = html + "<img src=\"" + picUrl + "\" border=\"0\">\r\n" ;
	html = html + "</BODY>\r\n" ;
	html = html + "</HTML>\r\n" ;	

	pop = window.open("",title,"width=100,height=100,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes") ;
	var tmp = pop.document ;
	tmp.write(html) ;
	tmp.close() ;
}
