/**********************************************************
* Company Name  : KOBEKARA 
* Description   : Library Javascript - Process String
* Library Name  : lib_string.js
* Dated         : 24/09/2007
* Modified      : 
************************************************************/


/*******************************************************
* Function	: Strip whitespace (or other characters) from the beginning of a string 
* Return	: 
* Parameter : 
*		str		: String
*		limit	: Char that you want to be stripped
*********************************************************/
function lTrim(str, limit)
{
	n = limit.length
	while (str.substring(0,n)==limit)
	{
		str = str.substring(n,str.length)
	}
    return str
}

/*******************************************************
* Function	: Strip whitespace (or other characters) from the end of a string 
* Return	: 
* Parameter : 
*		str		: String
*		limit	: Char that you want to be stripped
*********************************************************/
function rTrim(str, limit)
{
	n = limit.length
	while (str.substring(str.length-n,str.length+n)==limit)
	{
		str = str.substring(0,str.length-n)
	}
    return str
}

/*******************************************************
* Function	: Strip whitespace (or other characters) from the beginning and end of a string 
* Return	: 
* Parameter : 
*		str		: String
*		limit	: Char that you want to be stripped
*********************************************************/
function Trim(str, limit)
{
	str = lTrim(str,limit)
	str = rTrim(str,limit)
	return str
}

/*******************************************************
* Function	: Return part of a string from the left n characters
* Return	: 
* Parameter : 
*		str	: String
*		n	: Number of Character
*********************************************************/
function leftStr(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}

/*******************************************************
* Function	: Return part of a string from the right n characters
* Return	: 
* Parameter : 
*		str	: String
*		n	: Number of Character
*********************************************************/
function rightStr(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}

/*******************************************************
* Function	: Convert string from NCR-Decimal to Unicode (Alert Javascript)
* Return	: 
* Parameter : 
*	    str1: String
*********************************************************/
function toRealCharCode(str1) 
{
	var c0
	var str2='' ;
	var strx=''
	var idx
 
	idx = str1.indexOf('&')
	if( idx<0 ) return str1

	var i = 0
	while ( i < str1.length )
	{
		c0 = str1.substring(i,i+1)
		i++
		if( c0 != '&' ) continue

		strx  += str1.substring(0,i-1)
		str1 = str1.substring(i-1,str1.length)
		idx = str1.indexOf(';')
		if(idx <0 ) break;
	  
		str2 = str1.substring(1,idx)
    
		//2001/03/26 Bo sung them phan nhan biet cac ky tu web (31 ky tu)
		//Cac ky tu co code < 255 khong duoc IE luu duoi dang &#xxx; ma duoi dang &abc;, do do phai chu y den ngoai le nay !!!
		if (str2=='aacute') str2='225' //a'
		else if (str2=='agrave') str2='224' //a`
		else if (str2=='atilde') str2='227'  //a~
		else if (str2=='Aacute') str2='193'  //A'
		else if (str2=='Agrave') str2='192'  //A`
		else if (str2=='Atilde') str2='195'  //A~

		else if (str2=='acirc') str2='226'  //a^
		else if (str2=='Acirc') str2='194'  //A^

		else if (str2=='eacute') str2='233'  //e'
		else if (str2=='egrave') str2='232'  //e`
		else if (str2=='Eacute') str2='201'  //e'
		else if (str2=='Egrave') str2='200'  //e`

		else if (str2=='ecirc') str2='234'  //e^
		else if (str2=='Ecirc') str2='202'  //E^ 

		else if (str2=='iacute') str2='237'  //i'
		else if (str2=='igrave') str2='236'  //i`
		else if (str2=='Iacute') str2='205'  //I'
		else if (str2=='Igrave') str2='204'  //I`

		else if (str2=='oacute') str2='243'  //o'
		else if (str2=='ograve') str2='242'  //o`
		else if (str2=='otilde') str2='245'  //o~
		else if (str2=='Oacute') str2='243'  //O'
		else if (str2=='Ograve') str2='242'  //O`
		else if (str2=='Otilde') str2='245'  //O~

		else if (str2=='ocirc') str2='244'  //o^
		else if (str2=='Ocirc') str2='212'  //O^

		else if (str2=='uacute') str2='250'  //u'
		else if (str2=='ugrave') str2='249'  //u`
		else if (str2=='Uacute') str2='218'  //U'
		else if (str2=='Ugrave') str2='217'  //U`

		else if (str2=='yacute') str2='253'  //y'
		else if (str2=='Yacute') str2='221' //Y'

		else str2=str2.substring(1,str2.length);

		str1 = str1.substring(idx+1,str1.length)

		strx += String.fromCharCode(str2)
		i = 0
	}
	return strx+str1 ;
}

/*******************************************************
* Function	: Check input Integer number
* Return	: None
* Parameter : 
*		e		: Event object
*********************************************************/
function checkNumInt(e)
{
	if (window.event) 
		keycode = window.event.keyCode;
	else if (e) 
		keycode = e.which;

	if (keycode>31 && (keycode < 48 || keycode > 57))
	{
		e.cancelBubble = true
		e.preventDefault? e.preventDefault() : e.returnValue = false;	
	}		
}
/*******************************************/

/*******************************************************
* Function	: Check input Real number
* Return	: None
* Parameter : 
*		field	: "this" pointer of control
*		e		: Event object
*********************************************************/
function checkNumReal(field, e)
{		
	check=true;
	if (window.event) 
		keycode = window.event.keyCode;
	else if (e) 
		keycode = e.which;
	if(keycode<=31)
		return;
	var keychar = String.fromCharCode(keycode);
	str=field.value;

	if(str=='')			
		reg = new RegExp("[0-9]")
	else
		reg = new RegExp("[0-9,]")
	if (!reg.test(keychar))
		check=false;
	else
	{
		count=0;
		if(str.indexOf(",")==0)
			check=false;
		else
		{
			for(i=0;i<str.length;i++)
				if(str.indexOf(",")>0)
					count++;
			if(count>1	&&	keychar==",")
			{
				check=false;
			}
		}
	}
	if(check==false)
	{
		e.cancelBubble = true
		e.preventDefault? e.preventDefault() : e.returnValue = false;
	}
		
}

/*******************************************************
* Function	: Check input valid character
* Return	: None
* Parameter : 
*		e		: Event object
*********************************************************/
/*Check invalid character*/
function checkInvalidChar(e)
{
	if (window.event) 
		keycode = window.event.keyCode;
	else if (e) 
		keycode = e.which;
	
	var keychar = String.fromCharCode(keycode);

	reg=new RegExp("[\~\`\$\#\%\^\&\*\^\{\}\"]");

	if(reg.test(keychar))
	{
		e.cancelBubble = true
		e.preventDefault? e.preventDefault() : e.returnValue = false;	
	}
}

/*******************************************************
* Function	: Check only input char
* Return	: None
* Parameter : 
*		e		: Event object
*********************************************************/
function inputOnlyChar(e)
{
	if (window.event) 
		keycode = window.event.keyCode;
	else if (e) 
		keycode = e.which;
	
	var keychar = String.fromCharCode(keycode);

	reg=new RegExp("[^a-zA-Z]");

	if(reg.test(keychar))
	{
		e.cancelBubble = true
		e.preventDefault? e.preventDefault() : e.returnValue = false;	
	}
}

/*********************************************************
* Function  : check phone number
* Return    : None
* Parameter :
*		e	: event
*********************************************************/
function checkFoneNum(e)
{
	if (window.event) 
		keycode = window.event.keyCode;
	else if (e) 
		keycode = e.which;

	if(keycode==8 || keycode==0)
		keycode = 55;

	var keychar = String.fromCharCode(keycode);

	reg=new RegExp("[^0-9\-\ \(\)\.\+\]");

	if(reg.test(keychar))
	{
		e.cancelBubble = true
		e.preventDefault? e.preventDefault() : e.returnValue = false;	
	}		
}	

/*********************************************************
* Function  : check phone number
* Return    : None
* Parameter :
*		e	: event
*********************************************************/
function checkNum(e)
{
	if (window.event) 
		keycode = window.event.keyCode;
	else if (e) 
		keycode = e.which;

	if(keycode==8 || keycode==0)
		keycode = 55;

	var keychar = String.fromCharCode(keycode);

	reg=new RegExp("[^0-9\]");

	if(reg.test(keychar))
	{
		e.cancelBubble = true
		e.preventDefault? e.preventDefault() : e.returnValue = false;	
	}		
}	

function formatCurrency(num) 
{
	num = num.toString().replace(/\$|\,/g,'');
	num = Math.floor(num*100+0.50000000001);
	num = Math.floor(num/100).toString();
	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  num ;
}


/*********************************************************
* Function  : Events of User when Click on Email to open new Outlook
* Return    : None
* Parameter :
*		email	: address of Email 
*********************************************************/
function emailTo(email)
{ 
	var daReferrer = document.referrer; 

	var mailto_link = 'mailto:'+email;

	win = window.open(mailto_link,'emailWindow'); 
	if (win && win.open &&!win.closed) win.close(); 
} 

/*********************************************************
* Function  : Events of User when Click on Email to open selected web
* Return    : None
* Parameter :
*		web	: address of Web 
*********************************************************/
function openWeb(web)
{ 
	var load = window.open(web);
}
