/*
// Form Tools
// r411
// Created By
// Alex Vaos
// avaos@auction123.com
// 1/6/2010
*/ 

var formTools = function(){

	var _form = "formTools";
	var _captchaImage = "captchaImage";
	var _requiredFields = new Array();
	
	var _useForm = function(el) {
		_form = el;
		if (typeof(_form) == "string") {
			_form = document.getElementById(_form);
		}
		if (!_form || typeof(_form) == "undefined") alert("CANNOT FIND FORM: \n" + el + "\n" + "PLEASE SEARCH JAVASCRIPT FOR:\n" + "formTools.useForm");
		return;
	};

	var _validateEmail = function(val) {
		if (window.RegExp)
			return ! new RegExp('^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$').test(val);
		else
			return (!((val.indexOf('@') >= 0)&&(val.indexOf('.') >= 0)));
	};
	
	var _addRequiredField = function(el, msg) {
		_requiredFields[el] = msg;
	};
	
	var _formSubmit = function() {
		
		var err = 0;
		var firsterror = "";
		if (_requiredFields) {
			for (el in _requiredFields) {
			
				if (typeof(_form.elements[el]) != "undefined" && el != "") {
			
					if (_form.elements[el].value == '') {
						err++;
						if (firsterror == "") firsterror = el;
					} else if (el == "email") {
						if (_validateEmail(_form.elements[el].value)) {
							err++;
							if (firsterror == "") firsterror = el;
						}
					}
					
				} else {
					alert("ERROR UNDEFINED VARIABLE: " + el);
					err = -1000;
				}
			}
		}
		if (err > 0) {
			alert (_requiredFields[firsterror]);
			_form.elements[firsterror].focus();
		} else if (err == 0) {
			_form.submit();
		}
	};
	
	var _tell = function() {
		return(_form);	
	}
	
	function setIfEmpty(elm, val) {
		var el = document.getElementById(elm);
		if (el.value == "" || !el.value)
			el.value = val;
		el.onclick = function () {
			if (el.value == val) el.value = "";
		};
	}
	
	var _captchaRefresh = function () {
		var objImage = document.images[_captchaImage];
		if (objImage == undefined) {
			return;
		}
		var now = new Date();
		objImage.src = objImage.src.split('?')[0] + '?x=' + now.toUTCString();
	}
	
	/*INIT*/
	
	return {
		formSubmit: _formSubmit,
		requiredFields: _requiredFields,
		addRequiredField: _addRequiredField,
		useForm: _useForm,
		tell: _tell,
		captchaRefresh: _captchaRefresh
		
	}
}();