var msgNumber  = "بايد يك عدد باشد";
var msgEMail   = "وارد شده معتبر نيست";
var msgURL     = "آدرس وب صحيح نمي‌باشد";
var msgFillOut = "خالي است";
var msgNoForm  = "Form does not exist";
var msgNoField = "Field does not exist";
function _trim(str) {
if(str) {
str = str.replace(/^\s+/, "");
str = str.replace(/\s+$/, "");}
return str;}
function checkForm() {
var args = checkForm.arguments;
var f = args[0];
var msg = "";
var arr, field, title, type, minLength, elem, val, cnt, i, j;
var valid_url = /^(https?|ftp):\/\/([a-z0-9._-]+:[a-z0-9._-]+@)?[a-z0-9#._\/~% -]+(\?([a-z0-9_-]+(=[a-zA-Z0-99+%?_-]+&?)?)*)?$/;
var valid_mail = /^[a-z0-9._-]+@[a-z0-9.-]+\.[a-z]{2,4}$/;
if(document.forms[f]) {
for(i = 1; i < args.length; i++) {
arr = args[i].split(":");
field = _trim(arr[0]);
title = _trim(arr[1]);
if(!title) title = field;
type = _trim(arr[2]);
minLength = _trim(arr[3]);
elem = document.forms[f].elements[field];
if(elem) {
val = _trim(elem.value);
if(val != "") {
if(type == "number") {
val = val.replace(",", ".");
if(isNaN(val)) msg += '"' + title + '" ' + msgNumber + "\n";}
else if(type == "mail" && val.search(valid_mail) == -1) msg += title +' '+ msgEMail + "\n";
else if(type == "url" && val.search(valid_url) == -1) msg += '"' + title + '" ' + msgURL + "\n";}
if(minLength) {
if(elem.length) {
if(elem.options) {
for(j = cnt = 0; j < elem.options.length; j++) {
if(elem.options[j].selected && elem.options[j].value != "") cnt++;}}
else for(j = cnt = 0; j < elem.length; j++) {
if(elem[j].checked) cnt++;}}
else if(elem.type == "checkbox") cnt = elem.checked ? 1 : 0;
else cnt = val.length;
//if(cnt < minLength) msg += msgFillOut + ' "' + title + '"\n';}}
if(cnt < minLength) msg +=  title +' '+ msgFillOut + '\n';}}
else msg += msgNoField + ': "' + field + '"\n';}
if(msg) alert(msg);
else document.forms[f].submit();}
else alert(msgNoForm + ': "' + f + '"');}