var jQ = jQuery.noConflict();

jQ.blockUI.defaults.css = {};
jQ.blockUI.defaults.css.top = '15%';
jQ.blockUI.defaults.css.left = '25%';

//Override the message display to show red cross instead of textual error
jQuery.validator.messages = {};
jQuery.validator.prototype.defaultMessage = function(element, method) {
	return this.findDefined(this.customMessage(element.name, method), this.customMetaMessage(element, method),
	// title is never undefined, so handle empty string as undefined
	element.title || undefined, jQuery.validator.messages[method], '<img src="img/validation-fail.gif" />');
};

//email validator to use same regex as cake
jQuery.validator.methods.email = function(value, element) {
	//return this.optional(element) || /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(element.value);
	return this.optional(element) || /^[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[a-z]{2,4}|museum|travel)$/i.test(element.value);
}

jQ(document).ready(function() {
	jQ("#loginLink").click(showLogin);
});

function showLogin() {
	jQ.blockUI({
		message: jQ('#loginBox')
	});
	return false;
}

function showContent(url) {
	if (document.getElementById("contentBox") === null) {
		jQ("body").append('<div id="contentBox" class="overlay"></div>');
	}

	jQ.blockUI({
		message: jQ('#contentBox')
	});

	jQ("#contentBox").load(url);

	return false;
}

function myErrorHandler(errorMap, errorList) {
	//console.log(errorList[0]["element"].name);
	if (!errorMap) {
		//show green tick
	} else {
		//tick = jQ("<img/>").attr('src', 'img/con-inscri-checkbox.gif');
		//tick.insertAfter(errorList[0]["element"]);
		//jQ(errorList[0]["element"]).append('<span><img src="img/con-inscri-checkbox.gif"></span>');
		//Show red cross
	}
	this.defaultShowErrors();
}

function toggleImage(id, to_img, hover_img) {
	if (hover_img != to_img) {
		jQ("#" + id).attr('src', to_img);
	}
}

function updateCities(srcEle, destEle, destEle2, url) {
	jQ(srcEle).blur( function() {
		var currZipCode = jQ(srcEle).val();
		if(!currZipCode || currZipCode == prevZipCode)
			return true;

		jQ(destEle).removeOption(/./);
		jQ.getJSON(url + currZipCode + '.json',
			function(data){
				if(data.cities)
					jQ(destEle).addOption(data.cities, false);
				if(data.country)
					jQ(destEle2).val(data.country);
			}
		)
		return true;
	});
}