var DHE = {
	valid : true,
	required : []
};

DHE.adjustField = function (which) {
	var _field = $(which),
		placeholder = _field.attr("placeholder");

	_field.closest("fieldset").removeClass("validate");

	if (_field.val() === "" || _field.val() === " ") {
		_field.val(placeholder)
			.addClass("placeholder")
			.removeClass("focus");
	}
	else if (_field.val() == placeholder) {
		_field.val("")
			.addClass("focus")
			.removeClass("placeholder");
	}
	else {
		_field.removeAttr("rel");
	}
}

DHE.validateEmail = function (which) {
	var _field = $(which),
		address = _field.val()
		invalid = true;
	if(address !== _field.attr("placeholder")) {		
		if (address.indexOf("@") != -1) {
			if (address.split("@")[1].indexOf(".") != -1) {
				invalid = false;
			}	
		}

		if(invalid) {
			_field.closest("fieldset").addClass("invalid");
			_field.attr("rel","required");
		}
	}
}

DHE.submit = function () {
	DHE.required.length = 0;
	DHE.valid = true;

	$(":text, textarea").each(function(i){
		var _field = $(this);

		if (_field.attr("rel") == "required") {
			DHE.required.push(true);
			_field.closest("fieldset").addClass("validate");
		}
		else {
			DHE.required.push(false);
		}
	});
	
	for (var i = 0, l = DHE.required.length; i < l; i ++) {
		if(DHE.required[i]) {
			DHE.valid = false;
			break;
		}
	}

	if (DHE.valid) {
		var $form = $("form.validate"),
			action = ($form.attr("id") == "static-form") ? "/contact/submit" : "/send_to_friend_process";

		$form.attr("action",action).submit();
	}
}

DHE.init = function () {
	if ($("form.validate").length) {
		$(".field").focus(function(){
			DHE.adjustField(this)
		}).blur(function(){
			DHE.adjustField(this);
		}).each(function(i){
			var _field = $(this);
			if (_field.hasClass("required")) _field.attr("rel","required");
			if (_field.val() === _field.attr("placeholder")) _field.addClass("placeholder");
		});

		$(".field-email").blur(function(){
			DHE.validateEmail(this);
		});

		$("form.validate button").click(function(){
			DHE.submit();
			return false;
		});
	}
}

$(function(){
	DHE.init()
})
