﻿
var Event = {
	add: function(obj,type,fn) {
		if (obj.attachEvent) {
			obj['e'+type+fn] = fn;
			obj[type+fn] = function() { obj['e'+type+fn](window.event); }
			obj.attachEvent('on'+type,obj[type+fn]);
		} else
		obj.addEventListener(type,fn,false);
	}
}
var ourForm;

function init() {
    var form_array = document.getElementsByTagName('form');
    for(var i = 0; i < form_array.length; i++) {
        var required = form_array[i].elements['required'];
        if(required) {
            ourForm = form_array[i];
            if(form_array[i].Submit) {               
                Event.add(form_array[i].Submit, 'click', checkValues);
            }
        }
    }   
}

function checkValues(evt) {
    var required = ourForm.elements['required'];
    var fields = required.value.split('|');
    var errors = '';
    
    for(var j = 0; j < fields.length; j++) {
        if(fields[j].length > 0) {
            var field = document.getElementsByName(fields[j]);
            
            var hasValue = false;
            if(field) {
                for(var k = 0; k < field.length; k++) {
                    
                    if(field[k].selectedIndex != null) {
                        if(field[k].options[field[k].selectedIndex].value.length > 0 && field[k].options[field[k].selectedIndex].value != '--') {
                            hasValue = true;
                        }
                    } else if(field[k].value.length > 0) {
                        hasValue = true;
                    }
                }                  
            }
            
            if(!hasValue) {
                errors += fields[j] + ' is required.\r\n';            
            }
        }
    }
    if(errors.length > 0) {
        alert(errors);
    } else {
        ourForm.submit();
    }
    
    return false;
}

window.onload = function() {
    init();
}


