$(document).ready(function() {
    var url = window.location.toString(),
	    titulo = $('h1.titulo').text(),
	    getFormBox = function(){
	    var innerForm = 
		'<div class="fleft">'+
			'<label for="nome">Seu nome:<span class="req">*</span></label>' +
			'<input id="nome" type="text" />'+
			'<label for="email">Seu email:<span class="req">*</span></label>' +
			'<input id="email" type="text" />'+
			'<label for="email-dest">E-mail do destinatário:<span class="req">*</span></label>' +
			'<input id="email-dest" type="text" />'+
			'<label for="email-cc">Com cópia para:</label>' +
			'<input id="email-cc" type="text" />'+
			'<label id="aux">Obs: Use vírgula para separar emails</label>'+
		'</div>'+
		'<div class="fright">'+
			'<label for="comentario">Seu comentário:</label>' +
			'<textarea id="comentario" rows="7"></textarea>'+
		'</div>'+
		'<div style="clear: both"></div>' +
		'<input class="btn-enviar" type="submit" value="" />';
		
        var wrapper = $('<div/>').addClass('form-artcle-wrapper').css({'width':'450px','height':'280px','padding': '10px'}).html('<div class="response"></div>');
		$('<form />').attr({'action':'ajax/email','method':'POST'}).html(innerForm).submit(function (e) {validaForm(e)}).appendTo(wrapper);
        //wrapper.appendTo('body');
		return wrapper;
	}
		
    $("#bt-enviarEmail a").click(function() {
	    $.fancybox({
		    'hideOnContentClick' : false,
		    'content' : getFormBox()
		});
	});
	
	function validaForm(e) {
	    var form      = $(e.target),
		    nome      = form.find('#nome').val(),
			emailFrom = form.find('#email').val(),
			emailTo   = form.find('#email-dest').val(),
			emailcc   = (form.find('#email-cc').val()).split(/[\s]*?[\,]+[\s]*/),
			comentario= form.find('#comentario').val(),
			isValidName =  function(e) { return /^[^\d]{3,}$/.test(e)},
			isValidEmail = function(e) { return /^[a-z0-9_\-]+(\.[_a-z0-9\-]+)*@([_a-z0-9\-]+\.)+([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|jobs|mil|museum|name|nato|net|org|pro|travel)$/.test(e)},
			getEmailsCC  = function() { for(var i=0;i<emailcc.length;i++) if(emailcc[i]) this['emailcc'+ (i+1)] = emailcc[i]},
			invMail   = 'Um ou mais emails não são válidos.',
			invName  = '\'' + nome + '\' não é um nome válido.' ,
		    valido    = true,
			response = $('.response'),
			responseText,
			params = {},
			i;
		
	    response.attr({'class': 'response'}).empty();
		
		if(!isValidName(nome)) {
		    valido   = false;
		    responseText = responseText || invName;
		}
		
		if(!isValidEmail(emailFrom) || !isValidEmail(emailTo)) {
		    valido   = false;
		    responseText = responseText || invMail;
		}
		
		if(emailcc.length > 0) {
			for(var i=0; i<emailcc.length;i++) {
			    if(emailcc[i].length > 0 && !isValidEmail(emailcc[i])) {
					valido   = false;
					responseText = responseText || invMail;
				}
			}
		}
		
		if(!valido) {
		    response.addClass('error').text(responseText);
		} else {
		    params.nome      = nome;
			params.emailfrom = emailFrom;
			params.emailto   = emailTo;
			getEmailsCC.call(params);
			params.comentario = comentario;
			params.url        = url;
			params.titulo     = titulo;
			
			$.ajax({
			    url : '/ajax/email',
				type : 'POST',
			    data : params,
				beforeSend : function() {
				    form.unbind().submit(function() {e.preventDefault();});
				},
				beforeSend : function() {
				    $('.response').eq(0).html('<img src="/img/ajax-loader.gif" /> Enviando...')
				},
				complete : function() {
				    $('.response').eq(0).empty();
				    form.html('<div class="sucesso">Email(s) enviado(s) com sucesso.</div>');
					$('<div class="bt-fechar" />').text('OK').click(function(){
					    $.fancybox.close();
					}).appendTo(form);
				}
			})
		}
		e.preventDefault();
		
	}
});