//----------------------------------------------------------------------------------------
// General Function ~ General Function ~ General Function ~ General Function
//----------------------------------------------------------------------------------------
function jvTrim(param)
{
	while('' + param.charAt(param.length-1) == ' ')
	{
		param = param.substring(0,param.length-1);
	}

	while('' + param.charAt(0) == ' ')
	{
		param = param.substring(1,param.length);
	}

	return param;
}

function jvAutoCurrency(param)
{
	var strCheck = '0123456789';
	var milSep = ",";
	var decSep = "";

	for(i = param.value.length; i >= 0; i--)
	{
		if(param.value.charAt(i) == '.')
		{
			decSep="decoy";
			break;
		}
	}

	if(event.keyCode == 46)
	{
		if(decSep == "")
			param.value += ".";
		else
			return false;
	}

	if(decSep=="decoy")
	{
		param.value += String.fromCharCode(event.keyCode);
		return false;
	}

	if (strCheck.indexOf(String.fromCharCode(event.keyCode)) == -1)
		return false;

	len = param.value.length;
	for(i = 0; i < len; i++)
	{
		if ((param.value.charAt(i) != '0'))
			break;
	}

	aux = '';
	for(i = 0; i < len; i++)
	{
		if (strCheck.indexOf(param.value.charAt(i))!=-1)
			aux += param.value.charAt(i);
	}

	aux += String.fromCharCode(event.keyCode);
	len = aux.length;

	if(len <= 3)
		param.value = param.value;

	if (len > 3)
	{
		aux1 = '';

		for (j = 0, i = len; i >= 0; i--)
		{
			if (j == 4)
			{
				aux1 += milSep;
				j = 1;
			}

			aux1 += aux.charAt(i);
			j++;
		}

		param.value = "";
		len1 = aux1.length;

		for (i = (len1 - 1); i >= 1; i--)
			param.value += aux1.charAt(i);
	}
}

function jvUnAutoCurrency(param)
{
 	var paramx = param.value.split(".");
	param0 = paramx[0];
	param1 = paramx[1];

	if(!param1)
		param1 = "00";

	param0 = param0.toString().replace(/\$|\,/g,'');

	if(isNaN(param0))
		param0 = "0";

	sign = (param0 == (param0 = Math.abs(param0)));
	param0 = Math.floor(param0*100+0.50000000001);
	cents = param0%100;
	param0 = Math.floor(param0/100).toString();

	if(cents<10)
		cents = "0" + cents;

	for (var i = 0; i < Math.floor((param0.length-(1+i))/3); i++)
	{
		param0 = param0.substring(0,param0.length-(4*i+3))+','+param0.substring(param0.length-(4*i+3));
	}

	param.value = param0 + "." + param1;
}

//----------------------------------------------------------------------------------------
// User Interaction ~ User Interaction ~ User Interaction ~ User Interaction
//----------------------------------------------------------------------------------------
function jvFocus(param)
{
	param.style.backgroundColor = '#CED7E5';
}

function jvBlur(param)
{
	param.style.backgroundColor = '';
}

function jvNumeric()
{
	if((window.event.keyCode < 48 || window.event.keyCode > 57) && window.event.keyCode != 13)
		window.event.keyCode = 0;
}

function jvDate()
{
	if((window.event.keyCode < 48 || window.event.keyCode > 57) && window.event.keyCode != 45 && window.event.keyCode != 13)
		window.event.keyCode=0;
}

function jvCurrency()
{
	if((window.event.keyCode < 48 || window.event.keyCode > 57) && window.event.keyCode != 13 && window.event.keyCode != 45 && window.event.keyCode != 46)
		window.event.keyCode = 0;
}


//----------------------------------------------------------------------------------------
// Validation ~ Validation ~ Validation ~ Validation
//----------------------------------------------------------------------------------------
function jvMailvlidate(param)
{
	var str = param.value;

	if(str!="")
	{
		var emailPat=/^(.+)@(.+)$/;
		var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
		var validChars="\[^\\s" + specialChars + "\]";
		var quotedUser="(\"[^\"]*\")";
		var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
		var atom=validChars + '+';
		var word="(" + atom + "|" + quotedUser + ")";
		var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
		var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");

		var matchArray=str.match(emailPat);
		if (matchArray==null)
		{
			alert("Alamat email tidak valid ..!");
			param.focus();
			return false;
		}

		var user=matchArray[1];
		var domain=matchArray[2];

		if (user.match(userPat)==null)
		{
		    alert("Alamat email tidak valid ..!");
		    param.focus();
		    return false;
		}

		var IPArray=domain.match(ipDomainPat);
		if (IPArray!=null)
		{
			  for (var i=1;i<=4;i++)
			  {
			    if (IPArray[i]>255)
			    {
			        alert("Alamat email tidak valid ..!");
			        param.focus();
							return false;
			    }
		    }
		    return true
		}

		var domainArray=domain.match(domainPat);
		if (domainArray==null)
		{
			alert("Alamat email tidak valid ..!");
			param.focus();
			return false;
		}

		var atomPat=new RegExp(atom,"g");
		var domArr=domain.match(atomPat);
		var len=domArr.length;
		if (domArr[domArr.length-1].length<2 ||
		    domArr[domArr.length-1].length>3)
		{
		   alert("Alamat email tidak valid ..!");
		   param.focus();
		   return false;
		}

		if (len<2)
		{
		   var errStr="Alamat email tidak valid ..!";
		   alert(errStr);
		   param.focus();
		   return false;
		}
	}
}

//----------------------------------------------------------------------------------------
// Testing Area ~ Testing Area ~ Testing Area ~ Testing Area
//----------------------------------------------------------------------------------------
