/*
Concept taken from http://www.willjessup.com/sandbox/jquery/form_validator/form_validate.html
*/

new function() {
	// $.fn.validate = validate() {};
	$.fn.validate = {
		lang_wrongconfirm: String("wrong password conirmation"),
		init: function(o) {
			if(o.name == 'reg_form[Login]') { doValidate(o) }
			else if(o.name == 'reg_form[Name]') { doValidate(o) }
			else if(o.name == 'reg_form[Password]') { doValidate(o) }
			else if(o.name == 'reg_form[Email]') { doValidate(o) }
			else if(o.name == 'reg_form[Phone]') { doValidate(o) }
			else if(o.name == 'reg_form[Occupation]') { doValidate(o) }
			else if(o.name == 'keystring') { doValidate(o) }
			else if(o.name == 'Password2') { this.passwordconfirm(o) }
			else if(o.name == 'OldPassword') { this.oldpassword(o) }
			else if(o.name == 'reg_form[NewPassword]') { this.newpassword(o) }
			else if(o.name == 'NewPassword2') { this.newpasswordconfirm(o) }
		},
		passwordconfirm: function(o) {
			$_id = $('#' + o.id);
			$_id.prev().prev().remove();
			$_id.prev().prev().remove();
			if(o.value==document.getElementById('password').value)
				doSuccess(o);
			else
				doError(o, this.lang_wrongconfirm);
		},
		oldpassword: function(o) {
			if(o.value!="") {
				doValidate(o);
			}
		},
		newpassword: function(o) {
			if(document.getElementById('oldpassword').value!="" && o.value!="") {
				doValidate(o);
			}
		},
		newpasswordconfirm: function(o) {
			if(document.getElementById('oldpassword').value!="" && document.getElementById('newpassword').value!="") {
				$_id = $('#' + o.id);
				$_id.prev().prev().remove();
				$_id.prev().prev().remove();
				if(o.value==document.getElementById('newpassword').value)
					doSuccess(o);
				else
					doError(o, this.lang_wrongconfirm);

				$_id.attr('last_value', $_id.attr('value'));
			}
		}
	};

	function doSuccess(o) {
		$_id = $('#' + o.id);
		$('#' + o.id + '_img').html('<img class="info" src="/includes/jquery.formvalidate/images/accept.gif" border="0" />');
		$_id.parent().parent().removeClass("error");
		$('#' + o.id + '_msg').html("");
		$_id.parent().parent().addClass("success");
	}

	function doError(o,m) {
		$_id = $('#' + o.id);
		$('#' + o.id + '_img').html('<img class="info" src="/includes/jquery.formvalidate/images/exclamation.gif" border="0" />');
		$_id.parent().parent().addClass("error");
		$('#' + o.id + '_msg').html(m+"<br />");
		$_id.parent().parent().removeClass("success");
	}

	//private helper, validates each type after check
	function doValidate(o) {
		var $_id = $('#' + o.id);
		if($_id.attr('value')!=$_id.attr('last_value')) {
			var $_prev = $_id.prev().prev();
			if($_prev[0]!=null && $_prev[0].nodeName!='IMG') {
				$_prev.remove();
			}
			$_prev = $_id.prev().prev();
			if($_prev[0]!=null && $_prev[0].nodeName!='IMG') {
				$_prev.remove();
			}
			$('#' + o.id + '_img').html('<img class="info" src="/includes/jquery.formvalidate/images/loading.gif" border="0" />');
			$.post('/registration/ajax.php', { id: o.id, value: o.value }, function(json) {
				eval("var args = " + json);
				if (args.success == true) {
					doSuccess(o);
				}
				else {
					doError(o,args.msg);
				}
			});

			$_id.attr('last_value', $_id.attr('value'));
		}
	};
};
