function trim(inputString) {
   // Removes leading and trailing spaces from the passed string. Also removes
   // consecutive spaces and replaces it with one space. If something besides
   // a string is passed in (null, custom object, etc.) then return the input.
   if (typeof inputString != "string") { return inputString; }
   var retValue = inputString;
   var ch = retValue.substring(0, 1);
   while (ch == " ") { // Check for spaces at the beginning of the string
      retValue = retValue.substring(1, retValue.length);
      ch = retValue.substring(0, 1);
   }
   ch = retValue.substring(retValue.length-1, retValue.length);
   while (ch == " ") { // Check for spaces at the end of the string
      retValue = retValue.substring(0, retValue.length-1);
      ch = retValue.substring(retValue.length-1, retValue.length);
   }
   while (retValue.indexOf("  ") != -1) { // Note that there are two spaces in the string - look for multiple spaces within the string
      retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length); // Again, there are two spaces in each of the strings
   }
   return retValue; // Return the trimmed string back to the user
}

	function uji(obj)
	{
		var validdall, jml, validator, tipe, nilai, req, my_msg;
		my_msg='';
		hasil = new Array(2);
		validall = true;
		jml = obj.elements.length; //nanti dikurangi dengan tombol dan hidden yang statis

		
		for(i=0; i<jml-1; i++)
		{
			objek = obj.elements[i];

			objek.style.color = "black";
			objek.style.fontWeight = "normal";
			
			if(objek.id=="")
			{
			}
			else
			{
				validator	= objek.id.split("|");
				// updates by cihapit7 - 29102003
				field_name = trim(validator[0]);
				tipe		= trim(validator[1]);
				nilai		= trim(validator[2]);
				req			= trim(validator[3]);
				field_name = field_name.toUpperCase();
				// end updates
				
				//objek.readOnly = true;
				hasil = validasi( field_name,objek, tipe, nilai, req);
				validit   	= hasil[0];
				my_msg		+= hasil[1];
				if(!validit)
				{
					//objek.readOnly = false;
					objek.style.color = "red";
					objek.style.fontWeight = "bold";
					validall = false;
				}
			}
		}
		
		if(validall)
		{
			my_msg = "All data is valid";
		}
		
		alert(my_msg);
		return validall;
	}

// updates by cihapit7 untuk penamaan field - 29102003
function validasi( field_name,obj, tipe, nilai, req)
{
	var validit, data, mins, maks, tgl, bln, thn, my_msg;
	hasil = new Array(2);
	my_msg='';
	validit=true;
	switch (tipe)
	{
		case 'email':
			data = obj.value;

			if (data.length > 0)
			{
				// DHTML email validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
				var at="@";
				var dot=".";
				var lat=data.indexOf(at);
				var lstr=data.length;
				var ldot=data.indexOf(dot);

				if (data.indexOf(at)==-1){
					my_msg += field_name + ' is invalid\n\n';
					validit = false;
				} else

				if ((data.indexOf(at)==-1) || (data.indexOf(at)==0) || (data.indexOf(at)==lstr)){
					my_msg += field_name + ' is invalid\n\n';
					validit = false;
				} else

				if ((data.indexOf(dot)==-1) || (data.indexOf(dot)==0) || (data.indexOf(dot)==lstr)){
					my_msg += field_name + ' is invalid\n\n';
					validit = false;
				} else

				if (data.indexOf(at,(lat+1))!=-1){
					my_msg += field_name + ' is invalid\n\n';
					validit = false;
				} else

				if (data.substring(lat-1,lat)==dot || data.substring(lat+1,lat+2)==dot){
					my_msg += field_name + ' is invalid\n\n';
					validit = false;
				} else

				if (data.indexOf(dot,(lat+2))==-1){
					my_msg += field_name + ' is invalid\n\n';
					validit = false;
				} else

				if (data.indexOf(" ")!=-1){
					my_msg += field_name + ' is invalid\n\n';
					validit = false;
				}
			}
			break;
		// updates by Zeus untuk validasi telephone - 31102003
		case 'telp_fax':
			var data = obj.value;
			var cek_plus = data.indexOf('+');
			if (cek_plus == -1)
			{
				// jika menggunakan format (0...).......
				if (data.length > 0)
				{
					var pt = new RegExp("^[\(][0?][1-9]?([0-9]{2}|[0-9]{1})[\)?][0-9]+$");
					if (!pt.test(data))
					{
						my_msg += field_name + ' must be formatted:\n(099)99999999 or (0999)9999999\n\n';
						validit = false;
					} else
					{
						var panjang = data.length;
						if ((panjang < 12) && (data.length > 0))
						{
							my_msg += field_name + ' length is invalid\n\n';
							validit = false;
						}
					}
				}
			} else
			{
				// jika menggunakan format +62...
				if (data.length > 0)
				{
					var pt = new RegExp("^[\+][1-9]?[0-9]+$");
					if (!pt.test(data))
					{
						my_msg += field_name + ' must be formatted:\n+99999999999\n\n';
						validit = false;
					} else
					{
						var panjang = data.length;
						if ((panjang < 12) && (data.length > 0))
						{
							my_msg += field_name + ' length is invalid\n\n';
							validit = false;
						}
					}
				}
			}
			break;
		case 'decimal':
			var data = obj.value;

			if (data.length > 0)
			{
				var pt = new RegExp("^[1-9][0-9]*$");
				if (!pt.test(data))
				{
					my_msg += field_name + ' is invalid ! \n\n';
					validit = false;
				}
			}
			break;
		case '':
			break;
	}

	if(eval(req)==0)
	{
		nilai = trim(obj.value);
		if(nilai.length==0)
		{
			my_msg += field_name + ' must not empty !\n\n';
			validit = false;
		}
	} else if(eval(req)>0)
	{
		nilai = trim(obj.value);
		if(nilai.length!==eval(req))
		{
			my_msg += 'Length must be : ' + req + ' character on ' + field_name + ' !\n\n';
			validit = false;
		}
	}

	hasil[0] = validit;
	hasil[1] = my_msg;
	return hasil;
}
// end updates
