EG.Widgets.custom_modal = function(el,target){

	this.el = $(el);
	this.target = $(target);
	this._boundClickHandler = $.bind(this,this._clickHandler);
	$(el).live('click', this._boundClickHandler);

}
EG.Widgets.custom_modal.prototype._clickHandler = function(e){

	$(this.target).modal(this.modal_defaults);

}

EG.Widgets.custom_modal.prototype.modal_defaults = {
	escClose: true,
	overlayClose: true,
	opacity: 60,
	onOpen: function(dialog) {
		dialog.wrap.css({
            'overflow':'hidden'
        });
		dialog.container.css({
			margin: 'auto',
			height: 'auto',
			width: '500px',
			left: '440px',
			top: '100px'
		});
		dialog.data.css({
			display: 'block',
			background: '#FFF',
			padding: '30px 10px'
		});
		dialog.overlay.fadeIn(200, function () {
			dialog.container.slideDown(500);
		});
		this.setPosition();
	},
	onClose: function(dialog) {
		dialog.wrap.css({overflow:'hidden'});
		dialog.container.slideUp(500, function () {
			dialog.overlay.fadeOut(200, function(){
				$.modal.close();
			});
		});
	}
}

EG.Widgets.custom_modal.prototype.modal_scroll = {
	escClose: true,
	overlayClose: true,
	opacity: 60,
	onOpen: function(dialog) {
		dialog.container.css({
			margin: '0',
			width: '500px',
			left: '440px',
			top: '100px',
			'background-color': '#fff'
		});
		dialog.data.css({
			display: 'block',
			background: '#FFF',
			padding: '30px 10px',
            margin: '15px 0 15px 15px' 
        });
        $('.simplemodal-close').css({
            top: '-20px',
            right: '-22px',
            '_top': '-17px',
	        '_right': '-19px'
        });
        $('.simplemodal-container').css({
            height: '515px'
        });
        $('.simplemodal-data').css({
            padding: '0'
        });		
        dialog.overlay.fadeIn(200, function () {
			dialog.container.slideDown(500);
		});
		this.setPosition();
	},
	onClose: function(dialog) {
		dialog.wrap.css({overflow:'hidden'});
		dialog.container.slideUp(500, function () {
			dialog.overlay.fadeOut(200, function(){
				$.modal.close();
			});
		});
	}
}

function modalCidade(inputCidade) {
	var cidadeStr = inputCidade.val(),
	form = inputCidade.closest('form')[0],
	inputHidden = $('input[name=cidade_id][type=hidden]'),
	divBloqueada = inputCidade.closest('form').parent()
	
	divBloqueada.block({
		message		: '<img src="/static/img/EG_loading_2.gif" /> ',
		css			: { border: '1px solid #EEE', width: '134px' },
		overlayCSS	: { backgroundColor: 'white' }
	 })
	
	$.post("/webservices/", {name: "cidade", cidade: cidadeStr}, function(data) {
		var cidades = data.cidades

		//se só encontrarmos uma cidade, e o nome dela for igual ao que o usuário digitou, pula o modal
		if (cidades.length == 1 && cidadeStr.toUpperCase() == cidades[0].nomeSimples.toUpperCase()) {
			inputHidden.val(cidades[0].id)
			form.submit()
		}
		//mas se ele digitou um nome incompleto, ou se for encontrada mais de uma cidade, vamos confirmar com o modal onde ele mora
		else {
			if (cidades.length > 1) {
				for (var i in cidades) {
					if (cidades[i].id == inputHidden.val()) {
						form.submit()
						return
					}
				}
			}
			var div = $('#modal_escolher_cidade div.aquiEntramOsDados')
			div.empty()
			
			if (cidades.length == 0) {
				div.prev().hide(); // escondendo a msg padrão.
				var erroMsg = 'Não encontramos a cidade ' + cidadeStr + ' no Brasil, por favor tente novamente. Caso tenha nascido fora do Brasil, clique <a href="/cadastro/">aqui</a> para fazer seu horóscopo personalizado.';
				div.append('<div class="error_box"><p>' + erroMsg + '</p></div>')
				div.append('<br /><input type="button" class="btn btn_peq simplemodal-close" value="Voltar" />')
			}
			else {
				var cidade,
				select = document.createElement('select'),
				option

				select.name = 'cidade_nascimento'

				for (var i in cidades) {
					cidade = cidades[i]
					option = document.createElement('option')
					option.value = cidade.id
					option.innerHTML = cidade.nome
					select.appendChild(option)
				}

				div.append(select)
				div.append('<input type="submit" value="Enviar" class="btn btn_peq" />')

				$('input[type=submit]', div).click(function() {
					inputHidden.val($('select', div).val())
					form.submit()
				})
			}

			$('#modal_escolher_cidade').modal(EG.Widgets.custom_modal.prototype.modal_defaults)
			divBloqueada.unblock()
		}
	})
}

$('#alert_sucesso_alt_dados input.btn').live('click', function() {
	window.location = '/horoscopo/personalizado/';
});

function abrirModalConvideVazia() {
	var form = $("#widget_convide_seus_amigos .envie_convites .box_auth form")[0];
	
	exibeContatosParaConvite(form);
	$(".modal_clubeeg_getmember").parent().unblock();
	$("#modal_container_clubeeg_getmember").modal(EG.Widgets.custom_modal.prototype.modal_scroll);
	$(".modal_clubeeg_getmember, .modal_clubeeg_getmember .erro").css("display","");
}

