function emailCheck (emailStr) 
{

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=emailStr.match(emailPat)
if (matchArray==null) {
	return false
}
var user=matchArray[1]
var domain=matchArray[2]

if (user.match(userPat)==null) {
    return false
}

var IPArray=domain.match(ipDomainPat)
if (IPArray!=null) {
    // this is an IP address
	  for (var i=1;i<=4;i++) {
	    if (IPArray[i]>255) {
		return false
	    }
    }
    return true
}

var domainArray=domain.match(domainPat)
if (domainArray==null) {
    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) {
   return false
}

if (len<2) {
   return false
}

return true;
}



// CHECK PENULISAN ANGKA

function CalcKeyCode(aChar) 
{
  var character = aChar.substring(0,1);
  var code = aChar.charCodeAt(0);
  return code;
}

function checkNumber(val) 
{

  var strPass = val.value;
  var strLength = strPass.length;
  var lchar = val.value.charAt((strLength) - 1);
  var cCode = CalcKeyCode(lchar);
  

  if (cCode < 48 || cCode > 57 )
   {
    var myNumber = val.value.substring(0, (strLength) - 1);
    val.value = myNumber;
  }
 
  return false;
}

function passwordStrength(password)
{
	var desc = new Array();
	desc[0] = "Sangat Lemah";
	desc[1] = "Lemah";
	desc[2] = "Baik";
	desc[3] = "Sedang";
	desc[4] = "Sangat Baik";
	desc[5] = "baik Sekali";

	var score   = 0;

	if (password.length > 6) score++;

	if ( ( password.match(/[a-z]/) ) && ( password.match(/[A-Z]/) ) ) score++;

	if (password.match(/\d+/)) score++;

	if ( password.match(/.[!,@,#,$,%,^,&,*,?,_,~,-,(,)]/) )	score++;

	if (password.length > 12) score++;

	 document.getElementById("passwordDescription").innerHTML = desc[score];
	 document.getElementById("passwordStrength").className = "strength" + score;
}

function number_format(nStr)
{
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + '.' + '$2');
	}
	return x1 + x2;
}

function trim(str){
	try{
    	return str.replace(/^\s+|\s+$/g,'');
	}catch(err) {}
}

function addOption(selectbox, value, text)
{
try{
	var optn = document.createElement("OPTION");
	optn.value = value;
	optn.text = text;
	selectbox.options.add(optn);
}catch(err) {}
}

function textCounter(field_id, cntfield_id, maxlimit) {
var field =  document.getElementById(field_id)
var cntfield =  document.getElementById(cntfield_id)

if (field.value.length > maxlimit)
field.innerHTML = field.value.substring(0, maxlimit);
else
cntfield.innerHTML = maxlimit - field.value.length;
}

