function openpage(pageurl, pagename, pagewidth, pageheight) 
{                                          
	var attr;                                          
	attr="width="+pagewidth+",height="+pageheight+",scrollbars=yes,status=no,title=yes,toolbars=yes,resizable=yes"
	window.open(pageurl, pagename, attr);                                          
}

function openpage_noresize(pageurl, pagename, pagewidth, pageheight) 
{                                          
	var attr;                                          
	attr="width="+pagewidth+",height="+pageheight+",scrollbars=no,status=no,title=yes,toolbars=no,resizable=no"
	window.open(pageurl, pagename, attr);                                          
}

function trim(text)
{
	pos1=0;
	pos2=text.length-1;
	for(i=0;i<=text.length-1;i++)
		if(text.substr(i,1)==" ") pos1=i;
		else break;
	for(i=length-1;i>=0;i--)
		if(text.substr(i,1)==" ") pos2=i;
		else break;
	if (pos2<pos1) return ""
	return text.substr(pos1,pos2-pos1)
}

function trimstring(strin)
{
	var strtemp;	
	var i,  j; 
	strtemp="";
	i=0;
	
	while (strin.charAt(i) == " ")
	{
		i++;
	}
	
	for (var j=i; j<strin.length-1; j++){
		if (strin.charAt(j)==" ")
		{
			if (strin.charAt(j+1)==" ") 
			{
				strtemp=strtemp+strin.charAt(j);
			}
			else
			{
				strtemp=strtemp+strin.charAt(j);
			}
		}
		else {strtemp=strtemp+strin.charAt(j)} 
	}		
	
	if (strin.charAt(j)!= " " ) 
	{
		strtemp = strtemp + strin.charAt(j);
	}
	return strtemp;
}

/*
function trimstring(strin)
{ 
	var strtemp;
	var i; 
	strtemp="";
	i=0;
	if (strin.charAt(i)!=" "){strtemp=strtemp+strin.charAt(i);}
	for (var i=1;i<strin.length-1;i++){
		if (strin.charAt(i)==" "){
			if (strin.charAt(i+1)!=" ") {strtemp=strtemp+strin.charAt(i)}
		}
		else {strtemp=strtemp+strin.charAt(i)} 
	}
	i=strin.length;
	if (strin.charAt(i)!=" "){strtemp=strtemp+strin.charAt(i)}
	return strtemp; 
} 
*/
	
function trimfullstring(strin)
{ 
	var strtemp 
		strtemp="" 
		for (var i=0;i<strin.length;i++) 
			if (strin.charAt(i)!=" ") {strtemp=strtemp+strin.charAt(i)} 
		return strtemp; 
}

function IsNumberString(MyString)
{ 
	var checkOK = "0123456789"; 
	var checkStr = MyString ; 
	var allValid = true; 
	var decPoints = 0; 
	var allNum = ""; 
	if (checkStr.length<=0) { return (false); } 
	for (i = 0;  i < checkStr.length;  i++){ 
		ch = checkStr.charAt(i); 
		for (j = 0;  j < checkOK.length;  j++) 
			if (ch == checkOK.charAt(j)) 
				break; 
			if (j == checkOK.length) { 
				allValid = false; 
				break; 
			} 
			if (ch != ",") 
				allNum += ch; 
	} 
	if (!allValid) { return (false);} 
	return true; 
} 
	
function IsDoubleString(MyString)
{ 
	var checkOK = "0123456789."; 
	var checkStr = MyString ; 
	var allValid = true; 
	var decPoints = 0; 
	var allNum = ""; 
	if (checkStr.length<=0) { return (false); } 
	for (i = 0;  i < checkStr.length;  i++){ 
		ch = checkStr.charAt(i); 
		for (j = 0;  j < checkOK.length;  j++) 
			if (ch == checkOK.charAt(j)) 
				break; 
			if (j == checkOK.length) { 
				allValid = false; 
				break; 
			} 
			if (ch != ",") 
				allNum += ch; 
	} 
	if (!allValid) { return (false);} 
	return true; 
} 
	
function isDigit(c) 
{
	if((c=='0')||(c=='1')||(c=='2')||(c=='3')||(c=='4')||(c=='5')||(c=='6')||(c=='7')||(c=='8')||(c=='9'))
		return true;
	else
		return false;
}
	
function isPosInt(s)	
{
	var n;
	n = s.length
	if(n==0) return false;
		for(i=0;i<n;i++)
			if(!isDigit(s.charAt(i))) return false;
		return true;
}

function isPosReal(s)
{
	var dot;
	s = trim(s);
	dot =0;
	for(i=0;i<s.length;i++)
		if(!isDigit(s.charAt(i))) 
		{
			if(s.charAt(i)=='.') 
			{
				dot++;
				if(i==s.length-1) return false;
				if(dot>1) return false;
			}
			else return false;	
		}
	return true;
}

function isValidDate(strDate)
{
	 var m;
	 var d;
	 var y;
	 var i1;
	 var i2;
	 
	 strDate=trim(strDate);
	 if(strDate=="") return false;
	 i1 = strDate.indexOf("/")
	 if(i1<0) return false;
	 m = strDate.substring(0,i1)
	 i2= strDate.indexOf("/",i1+1)
	 if(i2<0) return false;
	 d = strDate.substring(i1+1,i2)
	 y = strDate.substring(i2+1)

	 if((m=="")||(d=="")||(y=="")) return false;
	 if((m==0)||(d==0)||(y==0)) return false;
	 if(!isPosInt(m))
	 	 return false;
	 else
	 	{	
		 m = parseInt(m);
		 if(m>12) return false;
	 	}

	 if(!isPosInt(y))
	 	 return false;
	 else
		{
		 y = parseInt(y)
		 if(y>9999) return false;
		}

	 if(!isPosInt(d))
	 	 return false;
	 else
		{
		 d = parseInt(d)
		 if((m==1)||(m==3)||(m==5)||(m==7)||(m==8)||(m==10)||(m==12))
			 if(d>31) return false;
	 	 if((m==4)||(m==6)||(m==9)||(m==11))
			if(d>30) return false;

		 if(m==2)
			{
			 if(d>29) return false;
			 if((y%4)!=0) // not a leap year
			 	if(d>28) return false;
			}
		}

	return true;
}

function isValidDateVie(strDate)
{
	 var m;
	 var d;
	 var y;
	 var i1;
	 var i2;
	 
	 
	 strDate=trim(strDate);
	 if(strDate=="") return false;
	 i1 = strDate.indexOf("-")
	 if(i1<0) return false;
	 d = strDate.substring(0,i1)
	 i2= strDate.indexOf("-",i1+1)
	 if(i2<0) return false;
	 m = strDate.substring(i1+1,i2)
	 y = strDate.substring(i2+1,10)

	 if((m=="")||(d=="")||(y=="")) return false;
	 if((m==0)||(d==0)||(y==0)) return false;
	 if(!isPosInt(m))
	 	 return false;
	 else
	 	{	
		 m = parseInt(m);
		 if(m>12) return false;
	 	}

	 if(!isPosInt(y))
	 	 return false;
	 else
		{
		 y = parseInt(y);
		 if(y>9999) return false;
		}

	 if(!isPosInt(d))
	 	 return false;
	 else
		{
		 d = parseInt(d);
		 if((m==1)||(m==3)||(m==5)||(m==7)||(m==8)||(m==10)||(m==12))
			 if(d>31) return false;
	 	 if((m==4)||(m==6)||(m==9)||(m==11))
			if(d>30) return false;

		 if(m==2)
			{
			 if(d>29) return false;
			 if((y%4)!=0) // not a leap year
			 	if(d>28) return false;
			}
		}

	return true;
}

function isValidDateEng(strDate)
{
	 var m;
	 var d;
	 var y;
	 var i1;
	 var i2;
	 
	 
	 strDate=trim(strDate);
	 if(strDate=="") return false;
	 i1 = strDate.indexOf("-")
	 if(i1<0) return false;
	 m = strDate.substring(0,i1)
	 i2= strDate.indexOf("-",i1+1)
	 if(i2<0) return false;
	 d = strDate.substring(i1+1,i2)
	 y = strDate.substring(i2+1,10)

	 if((m=="")||(d=="")||(y=="")) return false;
	 if((m==0)||(d==0)||(y==0)) return false;
	 if(!isPosInt(m))
	 	 return false;
	 else
	 	{	
		 m = parseInt(m);
		 if(m>12) return false;
	 	}

	 if(!isPosInt(y))
	 	 return false;
	 else
		{
		 y = parseInt(y);
		 if(y>9999) return false;
		}

	 if(!isPosInt(d))
	 	 return false;
	 else
		{
		 d = parseInt(d);
		 if((m==1)||(m==3)||(m==5)||(m==7)||(m==8)||(m==10)||(m==12))
			 if(d>31) return false;
	 	 if((m==4)||(m==6)||(m==9)||(m==11))
			if(d>30) return false;

		 if(m==2)
			{
			 if(d>29) return false;
			 if((y%4)!=0) // not a leap year
			 	if(d>28) return false;
			}
		}

	return true;
}

function isEmail(strEmail)
{
	var intlen;
	var ctmp;
	strEmail = trim(strEmail);
	if(strEmail=='') return false;
	intlen=strEmail.length;
	if(intlen<5) return false;
	if(strEmail.indexOf('@')==-1) return false;
	if(strEmail.indexOf('.')==-1) return false;
	if(intlen - strEmail.lastIndexOf('.') -1 > 3) return false; 
	if((strEmail.indexOf("_")!=-1) && (strEmail.lastIndexOf("_") > strEmail.lastIndexOf("@"))) return false;
	if(strEmail.lastIndexOf(".") <= strEmail.lastIndexOf("@")+1)  return false;
	if(strEmail.indexOf("@")!=strEmail.lastIndexOf("@")) return false;
	if(intlen -1 == strEmail.lastIndexOf('.')) return false;
	if(strEmail.charAt(strEmail.indexOf('@')+1)=='.') return false;
	if(strEmail.indexOf(" ")!=-1) return false;
	if(strEmail.indexOf("..")!=-1) return false;
 
	strEmail=strEmail.toLowerCase();
	for(intcnt=0;intcnt<intlen;intcnt++)
	{
		ctmp = strEmail.charAt(intcnt)
		if((!isDigit(ctmp))&& ((ctmp>'z')||(ctmp<'a')) && (ctmp!='-') && (ctmp!='.') && (ctmp!='@') && (ctmp!='_')) return false;
	}
	return true	;
}

function isZip(str)
{
	str=trim(str);
	if(str=='') return false;
	if(str.length!=5) return false;
	if(!isPosInt(str)) return false;
	return true;
}

function getFileName(str)
{
	var bpos
	var filename
	if((str=='')||(str.indexOf("\\")==-1)) return(str);
	bpos = str.lastIndexOf("\\");
	filename = str.substring(bpos+1,str.length)
	return(filename);
}

function getFileType(str)
{
	var filename;
	var fileext;
	var dotpos;
	fileext ='';
	filename = getFileName(str);
	dotpos = filename.lastIndexOf(".");
 
	if(dotpos!=-1)
	{
		fileext = filename.substring(dotpos+1,filename.length);
		fileext = fileext.toLowerCase();
	}
	else
	{
		fileext = '';
	}
	return(fileext);
}

function validate_periodtime(form) 
{
	var dayfrom, monthfrom, yearfrom;
	var dayto, monthto, yearto;
	var datefrom, dateto;
	var ValidateDate;
	ValidateDate=true;
	dayfrom=parseInt(form.dayfrom.options[form.dayfrom.selectedIndex].value);
	monthfrom=parseInt(form.monthfrom.options[form.monthfrom.selectedIndex].value);
	yearfrom=parseInt(form.yearfrom.options[form.yearfrom.selectedIndex].value);
	dayto=parseInt(form.dayto.options[form.dayto.selectedIndex].value);
	monthto=parseInt(form.monthto.options[form.monthto.selectedIndex].value);
	yearto=parseInt(form.yearto.options[form.yearto.selectedIndex].value);
	switch (monthfrom) {
		case 4:
		case 6:
		case 9:
		case 11:
			if (dayfrom==31) ValidateDate=false;
			break;
		case 2:
			if (dayfrom>28) {
				if (dayfrom==29) {
					if ((yearfrom % 4)!=0) ValidateDate=false;
				}
				else ValidateDate=false;
			}
	}

	if (ValidateDate==false) {
		alert("The date is invalid...");
		form.dayfrom.focus();
		return false; 
	}

	switch (monthto) {
		case 4:
		case 6:
		case 9:
		case 11:
			if (dayto==31) ValidateDate=false;
			break;
		case 2:
			if (dayto>28) {
				if (dayto==29) {
					if ((yearto % 4)!=0) ValidateDate=false;
				}
				else ValidateDate=false;
			}
	}
	
	if (ValidateDate==false){
		alert("The date is invalid...");
		form.dayto.focus();
		return false;
	}
	
	datefrom=monthfrom + '/' + dayfrom + '/' + yearfrom;
	dateto=monthto + '/' + dayto + '/' + yearto;
	
	if (yearfrom < yearto) return true;
	if (yearfrom > yearto) {ValidateDate=false;}
	if (yearfrom == yearto){
		if (monthfrom < monthto) return true;
		if (monthfrom > monthto) {ValidateDate=false;}
		if (monthfrom == monthto){
			if (dayfrom <= dayto) return true;
			if (dayfrom > dayto) {ValidateDate=false; }
		}
	}
		
	if (ValidateDate==false){
		alert('From: ' + datefrom+' > To: '+dateto+' ?? ');
		return false;
	}

}

function showhide(objshowhide, textshowhide)
{
	var g=document.all(objshowhide); 
	var x=document.all(textshowhide); 
		var w=this.offsetWidth;
		if (g.style.display!='none') 
		{
			g.style.display='none';
			x.innerHTML='(show)';
		} 
		else 
		{
			g.style.display='block';
			x.innerHTML='(Hide)';
		}
}

function checkPeriod(DATE_FROM, DATE_TO)
{
	var str1 = DATE_FROM;
	var str2 = DATE_TO;
	var d;
	var i1, i2;
	var y1, y2;
	var m1, m2;
	var d1, d2;				
	
						
	i1 = str1.indexOf("-");					
	d1 = parseInt(str1.substring(0,i1),0);											
	i2= str1.indexOf("-",i1+1);
	m1 = parseInt(str1.substring(i1+1,i2),0);	
	y1 = parseInt(str1.substring(i2+1),0);																				
	
	i1 = i2= 0;
	i1 = str2.indexOf("-");
	d2 = parseInt(str2.substring(0,i1),0);											
	i2= str2.indexOf("-",i1+1);
	m2 = parseInt(str2.substring(i1+1,i2),0);																		
	y2 = parseInt(str2.substring(i2+1));																				
	
	if (y1<y2)
	{	
		return true;
	}
	else if (y1>y2)
	{	
		return false;
	}
	else if (y1=y2)
	{						
		if (m1<m2)
		{
			return true;
		}
		else if (m1>m2)
		{
			return false;						
		}
		else if (m1=m2)
		{
			if (d1<=d2)
			{
				return true;
			}
			else if (d1>d2)
			{						
				return false;								
			}
							
		}
	}
	return true;											
}			

function formatNumeric(num) 
{			
	var strDeci;
	var neg="";									
	strDeci = repl2(num.toString());			
	num = replStr(num.toString());						
	if (isNaN(num))
	{ 
		num = "0"
		strDeci=''
	}
	else
		if (parseInt(num)<0)
		{
			num=absStr(num);
			neg="-";			
		}
		else
			neg="";			
	
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
				num = num.substring(0,num.length-(4*i+3)) + ',' + num.substring(num.length-(4*i+3));
							
	return (neg+num+strDeci);							
}

function replStr(str)
{
	var strResult="";			
	var endIdx = str.indexOf(".");
	if (endIdx<0) endIdx=str.length;
	
	for(i=0;i<endIdx;i++)
				if ((str.charAt(i)!="$")&&(str.charAt(i)!=","))
							strResult=strResult + str.charAt(i)			
	return strResult;			
}


function repl2(str)
{
	var strResult="";						
	var startIdx = str.indexOf(".");			
	if ((startIdx>-1)&&(startIdx<str.length))
	{
		strResult=str.substring(startIdx, str.length);
	}			
	return strResult;		
}

function absStr(str)
{
	var strResult="";
	for(i=0;i<str.length;i++)
		if ((str.charAt(i)!="-"))
			strResult=strResult + str.charAt(i)
	return strResult;
}
 

