function selectRange(iFrom,iSelectLength,obj)
{
	var iLen = obj.value.length;
    var sMatch = obj.value.substr(iFrom, iSelectLength);
 	var oRange = obj.createTextRange();
    oRange.findText(sMatch);
    oRange.select();
}

function checkChar (obj, str) {
	var i;
	var row = 1;
	var col = 1;
	for( i = 0; i < str.length; i++ ) {
		if ( str.charCodeAt( i ) != 13 && str.charCodeAt( i ) != 10 ) {  
			if ( str.charCodeAt( i ) < 32 || str.charCodeAt( i ) > 126 ) {  
				alert("Illegal character: " + String.fromCharCode( str.charCodeAt( i ) ) + " at row = " + row + ", col = " + col );
				selectRange( i, 1, obj );
				return false;
			}
		}
		col++;
		if( str.charCodeAt( i ) == 10 ) {
			row++; col = 1;
		}
	}
	return true;
}

function doNothing(){
	return;
}

function goBack(){
	history.go(-1) ;
}

//untuk menambahkan url ke dalam favorit atau bookmark
function addBookMark(bookMarkURL, bookMarkTitle){
	if (document.all){
		window.external.AddFavorite(bookMarkURL,bookMarkTitle) ;
	}
}

//fungsi untuk mengisi nilai option pada suatu dropDown field, dengan menggunakan data berupa array
function populateDropDown(dropDownField, dataSourceName, selectedValue, sortMethod){
	var dataSource = eval(dataSourceName);
	var dataCount = dataSource.length ;
	if (sortMethod == "asc"){
		for (var i = 0; i <= (dataCount-1) ; i++){
			dropDownField.options[dropDownField.options.length] = new Option (dataSource[i][1], dataSource[i][0]) ;
			if (dataSource[i][0] == selectedValue){			
				dropDownField.options[dropDownField.options.length-1].selected = true ;
			}
		}
	}else{
		for (i = (dataCount-1); i >= 0; i--){
			dropDownField.options[dropDownField.options.length] = new Option (dataSource[i][1], dataSource[i][0]) ;
			if(dataSource[i][0] == selectedValue){
				dropDownField.options[dropDownField.options.length-1].selected = true ;
			}
		}
	}
}

//untuk melakukan fungsi trim terhadap nilai suatu textBox
function trim(item){
  var tmp = "";
  var item_length = item.value.length;
  var item_length_minus_1 = item.value.length - 1;
  for (index = 0; index < item_length; index++)
  {
    if (item.value.charAt(index) != ' ')
    {
      tmp += item.value.charAt(index);
    }
    else
    {
      if (tmp.length > 0)
      {
        if ((item.value.charAt(index+1) != ' ') && (index != item_length_minus_1))
        {
          tmp += item.value.charAt(index);
        }
      }
    }
  }
  return (tmp) ;
}

//Untuk mendeteksi penekanan tombol enter pada suatu filed dan melakukan aksi yang diinginkan
function detectEnter(eventObj, procName){
	var keyCode
	if (document.all){
		keyCode = eventObj.keyCode ;
	}else{
		keyCode = eventObj.which ;
	}
	if (keyCode == 13){
		eval(procName) ;
	}
}

//checking the keypress value
function keyCheck(eventObj, obj, allowDec)
{
	var keyCode	;
	if (document.all){ 
		keyCode=eventObj.keyCode ;
	}else{
		keyCode=eventObj.which ;
	}

	var str=obj.value ;

	if (allowDec){
		if(keyCode==46){ 
			if (obj.value.length == 0){
				return(false) ;
			}
			if (str.indexOf(".")>0){
				return (false) ;
			}
		}
		if((keyCode<48 || keyCode >58) && (keyCode != 46)){ // Allow only integers and decimal points
			return (false) ;
		}
		return (true) ;
	}else{
		if((keyCode<48 || keyCode >58)){ // Allow only integers
			return (false) ;
		}
		return (true) ;
	}	
}

// email address validation
function isEmail(str) {
  var supported = 0;
  if (window.RegExp) {
    var tempStr = "a";
    var tempReg = new RegExp(tempStr);
    if (tempReg.test(tempStr)) supported = 1;
  }
  if (!supported) 
    return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
  var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
  var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
  return (!r1.test(str) && r2.test(str));
}
// end of 3rd party scripts

// --> Common Macromedia DreamWeaver Scripts 
// --> Start Section
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v3.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}
// --> End Section