function $() {
    var elements = new Array;
    for (var i = 0; i < arguments.length; i++) {
        var element = arguments[i];
        if (typeof element == "string") {
            element = document.getElementById(element);
        }
        if (arguments.length == 1) {
            return element;
        }
        elements.push(element);
		}
    return elements;
	}

function check_form(n, avar, msg) {
	var elems = $(n).elements;
	var elems_count = elems.length;
	var error = "";
	
	//if (cssjs("check",n,"cms_form_send") == true) { var cms_form = true; }
	//if (cssjs("check",n,"cms_form_redirect") == true) { var cms_form = true; }
	
	for (i=0; i < elems_count; i++) {
		if (elems[i].getAttribute("required")!=null && !(elems[i].disabled)) {
			if ((elems[i].value == "") || (elems[i].value == elems[i].title)) {
				cssjs("add",elems[i],"form_error");
				if (elems[i].title != "") {
					error +="\n'" + elems[i].title + "' is empty";
				} else {
					error +="\n'" + elems[i].name + "' is empty";
					}
			} else if ((elems[i].name.search(/^email$/gi) != -1) || elems[i].title.search(/^email$/gi) != -1) {
				if (isEmail(elems[i].value) == false) {
					cssjs("add",elems[i],"form_error");
					if (elems[i].title != "") {
						error +="\n'" + elems[i].title + "' is not a valid email address";
					} else {
						error +="\n'" + elems[i].name + "' is not a valid email address";
						}
					}
			} else {
				cssjs("remove",elems[i],"form_error");
				}
			}
		}
	
	if (error != "") {
		alert("The following errors were found:\n" + error);
		return false ;
	} else {
		for (i=0; i < elems_count; i++) {
			if ((elems[i].value == elems[i].title)) {
				elems[i].value = "";
				}
			}
		if (msg != null) {
			var agree=confirm(msg);
			if (agree) {
				//setActionVar(avar);
				$(n).submit();
			} else {
				return false ;
				}
		} else if(avar != null) {
			//setActionVar(avar);
			$(n).submit();
		} else {
			$(n).submit();
			}
		}
	}

function cssjs(a,o,c1,c2) {
	switch (a) {
		case 'swap':
			o.className=!cssjs('check',o,c1)?o.className.replace(c2,c1):o.className.replace(c1,c2);
		break;
		case 'add':
			if(!cssjs('check',o,c1)){o.className+=o.className?' '+c1:c1;}
		break;
		case 'remove':
			var rep=o.className.match(' '+c1)?' '+c1:c1;
			o.className=o.className.replace(rep,'');
		break;
		case 'check':
			return new RegExp('\\b'+c1+'\\b').test(o.className)
		break;
		}
	}

	
function isEmail(string) {
	if (string.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
		return true;
	else
		return false;
	}	