// $Id: form.js 8856 2009-04-30 10:50:32Z hrunin $
function checkFields(form){
	form = document.forms[form];
	if(!form.tagName || form.tagName != 'FORM') return true;
	
	var e = form.elements;
	var missed = 'Вы не заполнили все обязательные поля или допустили ошибки при их заполнении:\n\n';
	var reqFields = new Array();
	for(var i in e){
		var exp = /(SELECT|OPTION)/;
		if(e[i] && !e[i].tagName && e[i].length){
			missed += ((e[i][0] && e[i][0].tagName == 'INPUT') ? e[i][0].outerHTML + "\n\n" : '');
		}
		if(!e[i] || !e[i].attributes || !e[i].attributes['req']) continue;
		if(((e[i].type.indexOf('text') != -1 || e[i].type == 'password') && e[i].value.length > 0)) continue;
		if((e[i].type == 'select' && e[i].selectedIndex >= 0)) continue;
		if(((e[i].type == 'checkbox' || e[i].type == 'radio') && e[i].checked)) continue;
		reqFields[reqFields.length] = e[i];
	}
	if(!reqFields.length) return true;
	for(var i in reqFields){
		if(!reqFields[i]) continue;
		if(!form[reqFields[i].name].length || reqFields[i].type == 'select' || !checkMultiple(form, reqFields[i].name)){
			missed += ' - не заполнено поле ' + reqFields[i].attributes['req'].value.substring(3) + '\n';
			continue;
		}
	}
	window.alert(missed);
	return false;
}

function checkMultiple(form, name){
	var obj = form[name];
	for(var i in obj) if(obj[i] && obj[i].checked) return true;
	return false;
}
/*
fieldsArray = new Array();

function formField(name,type,title) {
 this.name=name;
 this.type=type;
 this.title=title;
}

function getFormField(form,name) {
 var field = new Array();
 for(var i=0;i<document.forms[form].elements.length;i++) {
  var e = document.forms[form].elements[i];
  if(e.name == name)
    field[field.length] = e;
 }
 return field;
}

function checkFields1(form) {
 var missed = '';
 for(var name in fieldsArray) {
  var f = fieldsArray[name];
  var field = getFormField(form,name);
  if(field.length==0)
   continue;
  var value = 0;
  switch(f.type) {
    case "text":
    case "textarea":
    case "password":
     if(field[0].value.length > 0) {
       value = 1;
       if(name == 'email' && (field[0].value.indexOf('@') == -1 || field[0].value.length < 4))
         missed+='- ' + f.title + ' содержит некорректный e-mail адрес\n';
     }
    break;

    case "number":
     if(String(parseInt(field[0].value)) == field[0].value || String(parseFloat(field[0].value)) == field[0].value)
       value = 1;
    break;

    case "date":
    case "datetime":
     value=1;
     for(var i=0;i<field.length;i++)
      if(String(parseInt(field[0].value)) != field[0].value) {
        value=0;
        break;
      }
    break;

    case "checklist":
    case "radio":
     for(var i=0;i<field.length;i++)
      if(field[i].checked) {
        value=1;
        break;
      }
    break;

    case "select":
     if(field[0].selectedIndex > 0)
      value = 1;
    break;

    case "multiselect":
     for(var i=0;i<field[0].options.length;i++) {
      if(field[0].options[i].selected)
        value = 1;
     }
    break;

    default:
     value = 1;
  }
  if(value == 0)
   missed+='- не заполнено поле "' + f.title + '"\n';
 }
 if(missed != '')  {
  alert('Вы не заполнили все обязательные поля или допустили ошибки при их заполнении:\n\n' + missed);
  return false;
 }
 else {
  return true;
 }
}
*/
