$.extend($.tooltip.defaults, {
	bodyHandler: function() {
		return '<div class="fg-tooltip fg-tooltip-center ui-widget ui-state-error ui-corner-all">' + this.tooltipText + '<div class="fg-tooltip-pointer-down ui-state-error"><div class="fg-tooltip-pointer-down-inner"></div></div></div>';
	},
	showURL: false,
	delay: 0,
	fade: true,
	track: true,
	top: -75,
	left: -180
});


$().ajaxError(
		function (xhr, desc, exceptionobj, x)
		{		
			//console.log(this, xhr, desc, exceptionobj, x);
			//console.log(xhr);
			$("#dialogLoading").dialog('close');
			$("#dialogError ul")
				.empty()
				//.append("<li>"+desc+"</li><li>"+xhr.responseText+"</li>")
				.append("<li>Houve um erro. Por favor, contate o suporte da Prestus®</li>")
				.append("<li>através do telefone (11) 4063-4079 ou (21) 4063-4079 ou (19) 4062-8486..</li>")
				.parents("div").dialog("open")
			;
		}
	);

jQuery.fn.inputStyle = function()
{
	this
		.addClass('ui-state-default ui-corner-all')
		.bind('focus', function(){ 
			$(this).addClass('ui-state-hover'); 
		})
		.bind('keypress', function(){ 
			$(this).addClass('ui-state-hover'); 
		})
		.bind('mouseover focus', function(){ 
			$(this).addClass('ui-state-hover'); 
		})
		.bind('mouseout blur', function(){
			$(this).removeClass('ui-state-hover'); 
		})
	;
};

function jsonError(json)
{
	$("#dialogLoading").dialog('close');
	$("#dialogError ul").empty().parents("div").dialog("open");
	
	if($.isArray(json))
		$.each(
			json,
			function()
			{
				$("#dialogError ul").append("<li>"+this+"</li>");
			}
		)
	else
		$("#dialogError ul").append("<li>"+json+"</li>");
		
};

$(document).ready(function(){
/*
    $("body").append("<div id='debug'><a href='' id='togglegrid'>" + gridstate() + "</a></div>");
    $("#debug").css("position", "absolute");
    $("#debug").css("bottom", "0");
    $("#togglegrid").click(toggle_grid);
*/
	/*
	if ( $("#bannerf").length)
		 $('#bannerf').flash(   {  
			 	swf: '/files/banner_revG.swf',
			 		height: "100%",   width: "100%" 		
		 }   );*/
			 
		//$("#bannerf").flashembed({src: "/files/banner_revB.swf", wmode: 'opaque'}); //w3c: true,
	/*
		$("#bannerf").flash(
			{ 
				src: "/files/banner_revB.swf"
					,
				width: 720,
				height: 480
			},
			{ version: 8 }
		);
		*/
		//
	
    $("#linkEntrar")
    	.click(
    		function()
    		{
    			$("#dialogLogin").dialog("open");
    			return false;
    		}
    	)
    ;
    
	$("#frmLogin")
		.submit(
			function()
			{
	
				var inputs = [];
				$(":input", this).each(
					function()
					{
						inputs.push(this.name + "=" + escape(this.value));
					}
				);
				
				$.ajax(
				{
					url: "/user/login",
					type: "post",
					dataType: "json",
					timeout: 25000,
					data: inputs.join("&"),
					beforeSend: function(XMLHttpRequest)
					{
						$("#dialogLoading").dialog('open');
					},
					complete: function (XMLHttpRequest, textStatus)
					{
						//$("#dialogLoading").dialog('close');
					},
					success: function(json, textStatus)
					{
						if (json.error)
						{ 
							$("#dialogError ul")
								.empty()
								.append("<li>"+json+"</li>")
								.parents("div").dialog("open")
							;
							return;
						}

						if (json.status != "valid")
						{
							if (json.status=="noActive")
								var sMsg =	"Conta não validada. Verifique sua caixa de e-mail contendo o link para validar o cadastro.";
							else if (json.status=="Cancelled")
								var sMsg =	"Sua conta foi cancelada. <br /><br /><center>Entre em contato com <a	href=\"mailto:prestus@prestus.com.br\">prestus@prestus.com.br</a></center>";
							else if (json.status=="logged")
								var sMsg =	"Você já está logado.";
							else if (json.status == "oldUser")
								//var sMsg =	"Sua conta foi cancelada. <br /><br /><center>Entre em contato com <a	href=\"mailto:prestus@prestus.com.br\">prestus@prestus.com.br</a></center>";
								window.location = "/reativacao";
							else
								var sMsg = "Login e/ou senha inválidos.";
							
							$("#dialogError ul")
								.empty()
								.append("<li>"+sMsg+"</li>")
								.parents("div").dialog("open")
							;
							$("#dialogLoading").dialog('close');
						}
						else
						{
							$("#dialogLogin").dialog('close');
							window.location = "/panel";
						}
						
					}
				});
				
				return false;	
			}
		)
	;
    
	$("#frmNews")
		.ajaxForm(
			{
				dataType: 'json',
				beforeSubmit: function()
				{
					$("#dialogLoading").dialog('open');
				},
				success: function(json)
				{
					$("#dialogLoading").dialog('close');
					
					if (json.status=="1")
					{
						alert("Obrigado pelo interesse em nossa newsletter de dicas de eficiência,\n para uma vida melhor e mais produtiva. \n Em breve você receberá sua primeira edicão via e-mail.");
						$("#dialogNews").dialog('close');
					}
					else if (json.errors)
					{ 
						jsonError(json.errors);
						return;
					}

				}
			}
		)
	;
	
	$("#dialogLogin")
		.dialog(
			{
				bgiframe: true,
				resizable: false,
				modal: true,
				autoOpen: false, 
				overlay: {
					backgroundColor: '#000',
					opacity: 0.5
				},
				buttons: {
					"Entrar": function() {
						$("#frmLogin").trigger("submit");
					},
					"Cancelar": function() {
						$(this).dialog('close');
					}
				},
				width:415,
				title: "Entrar"
			}
		)
	;
	
	$("#dialogNews")
		.dialog(
			{
				bgiframe: true,
				resizable: false,
				modal: true,
				autoOpen: false, 
				overlay: {
					backgroundColor: '#000',
					opacity: 0.5
				},
				buttons: {
					"Cadastrar": function() {
						$("#frmNews").trigger("submit");
					},
					"Sair": function() {
						$(this).dialog('close');
					}
				},
				width:415,
				title: "Cadastro Newsletter"
			}
		)
	;
    
	$("a.doNewsletter")
		.click(
			function()
			{
				$("#dialogNews").dialog("open");
				/*$("#frmNews select").selectmenu({style:'dropdown',maxHeight: 220});*/
				return false;
			}
		)
	;
			
	$("#dialogLoading").dialog({
		bgiframe: true,
		resizable: false,
		modal: true,
		autoOpen: false, 
		overlay: {
			backgroundColor: '#000',
			opacity: 0.5
		},
		width:90,
		minHeight:65
	});
	$(".ui-dialog-titlebar",$("#dialogLoading").parent()).hide();
	
	$("#dialogError").dialog({
		bgiframe: true,
		resizable: false,
		modal: true,
		autoOpen: false,
		title: "Erros ocorreram no envio dos dados",
		overlay: {
			backgroundColor: '#000',
			opacity: 0.5
		},
		buttons: {
			"Ok": function() {
				$(this).dialog('close');
			}
		}
	});
	
	$("#dialogPass").dialog({
		bgiframe: true,
		resizable: false,
		modal: true,
		autoOpen: false,
		title: "Envio de senha",
		overlay: {
			backgroundColor: '#000',
			opacity: 0.5
		},
		buttons: {
			"Ok": function() {
				$(this).dialog('close');
			}
		}
	});

	$("#lostPasswordMain")
		.click(
			function()
			{
				
				var email = $("#frmLogin input[name=email]").val();
				
				if (email=="")
					$("#dialogError ul")
						.empty()
						.append("<li>Informe seu e-mail.</li>")
						.parents("div").dialog("open")
					;
				else
				{
				
					$.ajax(
							{
								url: "/user/password",
								type: "post",
								dataType: "json",
								timeout: 25000,
								data: "email="+$("#frmLogin input[name=email]").val(),
								beforeSend: function(XMLHttpRequest)
								{
									$("#dialogLoading").dialog('open');
								},
								complete: function (XMLHttpRequest, textStatus)
								{
									$("#dialogLoading").dialog('close');
								},
								success: function(json, textStatus)
								{
									if (json.error)
									{ 
										$("#dialogError ul")
											.empty()
											.append("<li>"+json+"</li>")
											.parents("div").dialog("open")
										;
										return;
									}
				
									if (json.status=="ok")
									{
										
										$("#dialogPass ul")
											.empty()
											.append("<li>Um nova senha foi enviada para seu e-mail.</li>")
											.parents("div").dialog("open")
										;
										$("#dialogLogin").dialog("close");
										
									}
									else
									{
										
										$("#dialogError ul")
											.empty()
											.append("<li>E-mail para envio de senha inválido.</li>")
											.parents("div").dialog("open")
										;

									}

								}
							});
					
				}

				return false;
			}
		)
	;
	$(".fg-button:not(.ui-state-disabled)")
	.hover(
		function(){ 
			$(this).addClass("ui-state-hover"); 
		},
		function(){ 
			$(this).removeClass("ui-state-hover"); 
		}
	)
	.mousedown(function(){
			$(this).parents('.fg-buttonset-single:first').find(".fg-button.ui-state-active").removeClass("ui-state-active"
			);
			if( $(this).is('.ui-state-active.fg-button-toggleable, .fg-buttonset-multi .ui-state-active') ){
				$(this).removeClass("ui-state-active"); }
			else { $(this).addClass("ui-state-active"); }	
	})
	.mouseup(function(){
		if(! $(this).is('.fg-button-toggleable, .fg-buttonset-single .fg-button,  .fg-buttonset-multi .fg-button'
			) ){
			$(this).removeClass("ui-state-active");
		}
	});
	
	$("input[type=text], input[type=password]")
		.not(".noStyle")
		.addClass('ui-state-default ui-corner-all')
		.bind('focus', function(){ 
			$(this).addClass('ui-state-hover'); 
		})
		.bind('keypress', function(){ 
			$(this).addClass('ui-state-hover'); 
		})
		.bind('mouseover focus', function(){ 
			$(this).addClass('ui-state-hover'); 
		})
		.bind('mouseout blur', function(){
			$(this).removeClass('ui-state-hover'); 
		})
	;
	
	$("select").not(".noStyle").addClass('text').selectmenu({style:'dropdown',maxHeight: 220});
//	$("#frmCadastro select[name=ufNascimento]").css("width","7.5em").selectmenu({style:'dropdown',maxHeight: 250});
	
	$('input[type=radio], input[type=checkbox]').not(".noStyle").checkBox();

	
	
});

function toggle_grid () {
    $(".container").toggleClass("showgrid");
    $("#togglegrid").text(gridstate());
    return false;
}

function gridstate () {
    if ($(".container").hasClass("showgrid")) {
        return 'off';
    } else {
        return 'on';
    };
}

function utf8_encode(string) {
	 
    string = (string+'').replace(/\r\n/g, "\n").replace(/\r/g, "\n");
 
    var utftext = "";
    var start, end;
    var stringl = 0;
 
    start = end = 0;
    stringl = string.length;
    for (var n = 0; n < stringl; n++) {
        var c1 = string.charCodeAt(n);
        var enc = null;
 
        if (c1 < 128) {
            end++;
        } else if((c1 > 127) && (c1 < 2048)) {
            enc = String.fromCharCode((c1 >> 6) | 192) + String.fromCharCode((c1 & 63) | 128);
        } else {
            enc = String.fromCharCode((c1 >> 12) | 224) + String.fromCharCode(((c1 >> 6) & 63) | 128) + String.fromCharCode((c1 & 63) | 128);
        }
        if (enc != null) {
            if (end > start) {
                utftext += string.substring(start, end);
            }
            utftext += enc;
            start = end = n+1;
        }
    }
 
    if (end > start) {
        utftext += string.substring(start, string.length);
    }
 
    return utftext;
}

function utf8_decode(str_data){
    // http://kevin.vanzonneveld.net
    // +   original by: Webtoolkit.info (http://www.webtoolkit.info/)
    // +      input by: Aman Gupta
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // *     example 1: utf8_decode('Kevin van Zonneveld');
    // *     returns 1: 'Kevin van Zonneveld'
    
    var tmp_arr = [], i = ac = c = c1 = c2 = 0;
    
    while (i < str_data.length) {
            c = str_data.charCodeAt(i);
            if (c < 128) {
                    tmp_arr[ac++] = String.fromCharCode(c);
                    i++;
            }
            else 
                    if ((c > 191) && (c < 224)) {
                            c2 = str_data.charCodeAt(i + 1);
                            tmp_arr[ac++] = String.fromCharCode(((c & 31) << 6) | (c2 & 63));
                            i += 2;
                    }
                    else {
                            c2 = str_data.charCodeAt(i + 1);
                            c3 = str_data.charCodeAt(i + 2);
                            tmp_arr[ac++] = String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
                            i += 3;
                    }
    }
    
    return tmp_arr.join('');
}
