﻿/**
	Terrara - Portal Meu Interlagos (BROOKFIELD) v: 0.1
	Developer(s):
		+ (ivo@neotix.com.br)
		+ (leonard@neotix.com.br)
*/



var structure = {
    init: function() {
        trace('structure: init');
        structure.mainNav.init();
        structure.onAttCall.init();
        form.init();
        cadastrarEvento.init();
        $('.header h1 a, .bt-leia-mais, .bt-publique, .header a.btn-atendimento-online').neoHover();
        $('.mural-comments ol li a').neoHighlight();
        
        $.each($('.mural-comments ul li'), function(i ,item){
        
            var text = encodeURIComponent($(item).find('span').text());
            var url = encodeURIComponent(root + 'mural/');
            
			$(item).find('.icon-twitter a')
			    .attr('href', url)
			    .attr('rel', text)
			    .bind('click', TweetThisLink.shortenCorrectByRel);
			    
			$(item).find('.icon-facebook a')
			    .attr('href', 'http://www.facebook.com/share.php?u=' + url + '&t=' + text);
			    
			$(item).find('.icon-orkut a')
			   .attr('href', 'http://promote.orkut.com/preview?nt=orkut.com&tt=' + text + '&du=' + url);
        });
		
		var flashvars = {hlink: root + 'conheca-o-terrara/'};
		var params = {wmode: 'transparent'};
		var attributes = {};

        swfobject.embedSWF(root + "static/swf/banner02.swf", "banner-holder", "468", "60", "10", "expressInstall.swf", flashvars, params, attributes);
        
        swfobject.embedSWF(root + "static/swf/selo.swf", "content-selo", "150", "150", "10", "expressInstall.swf", flashvars, params, attributes);

        if ($('.veja_tbm').length != 0)
            $('.veja_tbm > ul > li > a').neoHighlight();

        $('.bt-veja-mais').neoHover();
        $('.mural-comments li:eq(0)').addClass('bB');
        
        if( $('#juitterContainer').length > 0 )
        {
			$.Juitter.start({
				searchType:"fromUser",
				searchObject:"meuinterlagos",
				live:"live-180",
				placeHolder: "juitterContainer",
				loadMSG: "Carregando ...",
				total: 4,
				readMore: "Leia mais no Twitter",
				nameUser:"image",
				openExternalLinks:"newWindow"
			});
		}
    },

    onAttCall: {
        init: function() {
            //$('.nav-on-att').bind('click', structure.onAttCall.open);
            $('.btn-atendimento-online').bind('click', structure.onAttCall.open);
        },

        open: function(e) {
            e.preventDefault();
            window.open('http://www12.directtalk.com.br/server/directtalk_chatr.dll/user?S=I&id_s=F4EE00784825A01456FF', '_blank', 'WIDTH=460, HEIGHT=550');
            tracking.funnel.steps01.call("65742");
            tracking.google.call('LYbFCPeEqAEQ0ZmG6wM');
        }
    },

    mainNav: {
        elNHover: null,

        init: function() {
            structure.mainNav.elNHover = $('.header .main-nav li a');
            structure.mainNav.elNHover.neoHover();
        }
    },

    trace: function(params) {
        try {
            console.log(params);
        } catch (e) { };
    }
};

var trace = structure.trace;

var defaults = {
    queue: false,
    duration: 500
};

/*
    Para utilizar o modal, o conteudo precisa estar dentro do 'ContentPlaceHolderID="plcLivre"' da pagina.
    Inserir no link atributo 'rel' a mesma classe inserida no conteudo para ser exibida no modal.
    Inserir no link o bind de 'click' e add a função 'modal.init'
*/
var modal = {
    init: function(_handler) {
        var handler = _handler.currentTarget == undefined ? _handler : _handler.currentTarget;
        var _rel = $(handler).attr('rel');

        if (_rel != "") {
            if ($("#" + _rel).length == 0) {
                modal.insert(_rel);
            } else {
                modal.open(_rel);
            }
        }
    },

    open: function(_id) {
        var _top = $(document).scrollTop() + 50;
        var _height = $(document).height();

        //$('.' + _id).parent().parent().attr('id', _rel)
        if ($(window).height() < _top) {
            _top = _top - 200;
            $('body, html').animate({ scrollTop: (_top - 50) }, { duration: defaults.duration, queue: defaults.queue });
        }
        $('.cortina').css({ opacity: '0.9', height: _height }).fadeIn("normal", function() {
            $('#' + _id).animate({ top: _top }, { duration: defaults.duration, queue: defaults.queue });
        });
    },

    close: function() {
        $(this).parent().parent().animate({ top: -1000 }, { duration: defaults.duration, queue: defaults.queue, complete: function() {
            $('.cortina').fadeOut("normal");
        }
        });
    },

    insert: function(_rel) {
        if ($('.cortina').length == 0)
            $('body').append('<div class="cortina"></div>');

        $('.' + _rel).wrap('<div id="' + _rel + '" class="modal"><div class="mid fL"></div></div>').removeClass('dN2').show();
        $('.modal .mid').append('<a href="javascript:void[0]" class="bt-fechar rpc" title="Fechar">Fechar</a>');
        $('.modal .bt-fechar').neoHover().bind('click', modal.close);
        modal.open(_rel);
    }
};

$(document).ready(structure.init);


var form = {
    init: function() {
        if ($('.form').length != 0) {
            $('.form').find('li input:text').wrap('<span class="input"><span></span></span>').bind('keyup', form.validaForm);
            $('.form').find('li textarea').wrap('<span class="textarea"><span></span></span>').bind('keyup', form.validaForm).bind('keyup', function() {
                str = $(this).val();
                if (str.length < 141) {
                    $('.max-char').text(140 - str.length);
                } else {
                    str = str.substr(0, 140);
                    $(this).val(str);
                }
            });

            $('.form').find('li select').wrap('<span class="select"><span></span></span>').bind('keyup', form.validaForm).bind('change', function() {
                if ($(this).val() == 0)
                    $(this).parent().parent().parent().addClass('erro');
                else
                    $(this).parent().parent().parent().removeClass('erro');
            });
        }
    },

    checkEmail: function(obj) {
        if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test($(obj).val())) return true;
        else return false;
    },

    checkBlank: function(obj) {
        if ($(obj).val() != '') return true;
        else return false;
    },

    checkNaN: function(obj) {
        if (isNaN($(obj).val()) == true) return true;
        else return false;
    },

    onlyNumbers: function(obj) {
        setTimeout(function() {
            str = $(obj).val();
            str = str.replace(/\D/g, "");
            $(obj).val(str);
            if (str != "") {
                $(obj).parent().parent().parent().removeClass("erro");
                $(obj).parent().parent().parent().parent().find(".bt .msg-erro").hide();
            } else {
                $(obj).parent().parent().parent().addClass("erro");
                $(obj).parent().parent().parent().parent().find(".bt .msg-erro").show();
            }
        }, 1);
    },

    dataField: function(obj) {
        setTimeout(function() {
            str = $(obj).val();
            str = str.replace(/\D/g, "");
            str = str.replace(/^(\d{2})(\d)/, "$1/$2").replace(/^(\d{2})\/(\d{2})(\d)/, "$1/$2/$3");

            $(obj).val(str);

            var date = $(obj).val();
            var ardt = new Array;
            var ExpReg = new RegExp("(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[012])/[12][0-9]{3}");
            var erro = false;
            ardt = date.split("/");
            if (date.search(ExpReg) == -1) {
                erro = true;
            } else if (((ardt[1] == 4) || (ardt[1] == 6) || (ardt[1] == 9) || (ardt[1] == 11)) && (ardt[0] > 30)) {
                erro = true;
            } else if (ardt[1] == 2) {
                if ((ardt[0] > 28) && ((ardt[2] % 4) != 0))
                    erro = true;
                if ((ardt[0] > 29) && ((ardt[2] % 4) == 0))
                    erro = true;
            } if (ardt[2] < 1900) {
                erro = true;
            }

            if (erro) {
                $(obj).parent().parent().parent().addClass("erro");
                $(obj).parent().parent().parent().parent().find(".bt .msg-erro").show();
            } else {
                $(obj).parent().parent().parent().removeClass("erro");
                $(obj).parent().parent().parent().parent().find(".bt .msg-erro").hide();
            }
        }, 1);
    },

    validaForm: function() {
        $('.form .msg').hide();

        if($(this).attr("rel") != "not")
        {
			if (!form.checkBlank($(this))) {
				$(this).parent().parent().parent().addClass('erro');
				$(this).parent().parent().parent().parent().find('.bt .msg-erro').show()
			} else if ($(this).attr("rel") == "email" && !form.checkEmail($(this))) {
				$(this).parent().parent().parent().addClass('erro');
				$(this).parent().parent().parent().parent().find('.bt .msg-erro').show()
			} else if ($(this).attr("rel") == "number") {
				form.onlyNumbers($(this));
			} else if ($(this).attr("rel") == "date") {
				form.dataField($(this));
			} else {
				$(this).parent().parent().parent().removeClass("erro");
				$(this).parent().parent().parent().parent().find(".bt .msg-erro").hide();
			}
        }

        return false;
    },

    reset: function(_class) {
        $('.' + _class).find('textarea, input:text').val("");
        $('.' + _class).find('select').val(0);
    }
}
/*
var docHeight = $(document).height();
var docClass = docHeight < 620 ? 'fix-bottom' : 'liq-top';
$('body').addClass(docClass); 
*/


//Modal Cadastrar Novo Serviço
var cadastrarServico = {
    txtEstabelecimento: null,
    ddlRamoAtividade: null,
    selTipoServico: null,
    txtSemRamo: null,
    txtEndereco: null,
    txtNumero: null,
    txtComplemento: null,
    txtBairro: null,
    txtCep: null,
    txtTel: null,
    txtLat: null,
    txtLng: null,

    init: function() {
		trace('cadastrarServico : init');
    
        $('.form-cadastrar-servico .bt-enviar-cadastro').bind('click', cadastrarServico.checkAll);
        
        cadastrarServico.txtEstabelecimento = $("#txtEstabelecimento");
        cadastrarServico.ddlRamoAtividade = $(".ddlRamoAtividade");
        cadastrarServico.selTipoServico = $("#selTipoServico");
        cadastrarServico.txtSemRamo = $("#txtSemRamo");
        cadastrarServico.txtEndereco = $("#txtEndereco");
        cadastrarServico.txtNumero = $("#txtNumero");
        cadastrarServico.txtComplemento = $('#txtComplemento')
        cadastrarServico.txtBairro = $("#txtBairro");
        cadastrarServico.txtCep = $("#txtCep");
        cadastrarServico.txtTel = $("#txtTel");
        cadastrarServico.txtLat = $('.latLng input[name="lat"]');
        cadastrarServico.txtLng = $('.latLng input[name="lng"]');;

        cadastrarServico.ddlRamoAtividade.bind('change', cadastrarServico.buscarRamoAtivadade);
        cadastrarServico.selTipoServico.bind('change', function(){
            if($(this).find(':selected').text().toLowerCase() == "outros"){
                $('#semRamo').fadeIn('normal');
            } else {
                $('#semRamo').fadeOut('normal');
            }
        });
        
        cadastrarServico.txtEndereco.bind('blur', cadastrarServico.carregaLatLng);
        cadastrarServico.txtNumero.bind('blur', cadastrarServico.carregaLatLng);
    },

	enderecoAnterior: null,
	carregaLatLng: function(e){
		var endereco	= cadastrarServico.txtEndereco.val();
		var numero		= cadastrarServico.txtNumero.val();
		
		if(endereco != "" && numero != ""){
			var enderecoCompleto = endereco + ' ' + numero + ' São Paulo SP';
			
			if(enderecoCompleto == cadastrarServico.enderecoAnterior) return;
			
			cadastrarServico.enderecoAnterior = enderecoCompleto;
			
			var geo = new google.maps.Geocoder( );
			geo.geocode( { 'address' : enderecoCompleto }, function(results, status){
				if( status == gmaps.GeocoderStatus.OK && results[0].address_components.length == 7){
					cadastrarServico.txtBairro.val( results[0].address_components[2].long_name );
					cadastrarServico.txtCep.val( results[0].address_components[6].long_name );
					cadastrarServico.txtLat.val(results[0].geometry.location.lat());
					cadastrarServico.txtLng.val(results[0].geometry.location.lng());
				}else{
					cadastrarServico.txtEndereco.focus();
					trace('Endereço não encontrado.')
				}
			} );
		}
	},

    buscarRamoAtivadade: function() {
        var _id = cadastrarServico.ddlRamoAtividade.val();

        $('.form-cadastrar-servico .load-servico').show();
        cadastrarServico.selTipoServico.empty().append('<option value="0">Selecione</option>');
        $('.form-cadastrar-servico li .block').fadeIn({ duration: defaults.duration, queue: defaults.queue });

        if (_id != 0) {
            $.ajax({
                type: "POST",
                url: root + "ajax/buscar-ramo-atividade.aspx",
                global: true,
                dataType: "json",
                data: {
                    "ddlRamoAtividade": _id
                },
                success: function(msg) {
                    $(msg).each(function(i, item) {
                        cadastrarServico.selTipoServico.append('<option value="' + item.Identifier + '">' + item.Descricao + '</option>');
                    });
                },
                complete: function() {
                    $('.form-cadastrar-servico li .block').fadeOut({ duration: defaults.duration, queue: defaults.queue });
                    $('.form-cadastrar-servico .load-servico').hide();
                },
                error: function(msg) {
                    cadastrarServico.ddlRamoAtividade.parent().parent().parent().addClass('erro');
                }
            });
        } else {
            $('.form-cadastrar-servico .load-servico').hide();
        }
    },

    checkAll: function() {
        var _check = true;
        $('.form-cadastrar-servico .msg').hide();
        if (!form.checkBlank(cadastrarServico.txtEstabelecimento)) {
            cadastrarServico.txtEstabelecimento.parent().parent().parent().addClass('erro');
            _check = false;
        }
        if (!form.checkBlank(cadastrarServico.txtEndereco)) {
            cadastrarServico.txtEndereco.parent().parent().parent().addClass('erro');
            _check = false;
        }
        if (!form.checkBlank(cadastrarServico.txtNumero)) {
            cadastrarServico.txtNumero.parent().parent().parent().addClass('erro');
            _check = false;
        }
        if (!form.checkBlank(cadastrarServico.txtBairro)) {
            cadastrarServico.txtBairro.parent().parent().parent().addClass('erro');
            _check = false;
        }
        if (!form.checkBlank(cadastrarServico.txtCep)) {
            cadastrarServico.txtCep.parent().parent().parent().addClass('erro');
            _check = false;
        }
        if (!form.checkBlank(cadastrarServico.txtTel)) {
            cadastrarServico.txtTel.parent().parent().parent().addClass('erro');
            _check = false;
        }
        if (cadastrarServico.ddlRamoAtividade.val() == '0') {
            cadastrarServico.ddlRamoAtividade.parent().parent().parent().addClass('erro');
            _check = false;
        }
        if (cadastrarServico.ddlRamoAtividade.val() != '0' && cadastrarServico.selTipoServico.val() == '0') {
            cadastrarServico.selTipoServico.parent().parent().parent().addClass('erro');
            _check = false;
        }
        if (_check) {
            $('.form-cadastrar-servico .load-form').fadeIn('normal');
            $('.form-cadastrar-servico .msg').hide();
            cadastrarServico.enviarCadastro();
        } else {
            $('.form-cadastrar-servico .msg-erro').show();
        }

        return _check
    },

    enviarCadastro: function() {

		trace('enviarCadastro');

        $.ajax({
            type: "POST",
            url: root + "ajax/cadastrar-servico.aspx",
            global: true,
            data: {
                "txtEstabelecimento": cadastrarServico.txtEstabelecimento.val(),
                "ddlRamoAtividade": cadastrarServico.ddlRamoAtividade.val(),
                "selTipoServico": cadastrarServico.selTipoServico.val(),
                "txtSemRamo": cadastrarServico.txtSemRamo.val(),
                "txtEndereco": cadastrarServico.txtEndereco.val(),
                "txtNumero": cadastrarServico.txtNumero.val(),
                "txtComplemento": cadastrarServico.txtComplemento.val(),
                "txtBairro": cadastrarServico.txtBairro.val(),
                "txtCep": cadastrarServico.txtCep.val(),
                "txtTel": cadastrarServico.txtTel.val(),
                "txtLat": cadastrarServico.txtLat.val(),
                "txtLng": cadastrarServico.txtLng.val()
            },

            success: function(msg) {
                setTimeout(function() {
                    $('.form-cadastrar-servico .load-form').fadeOut('normal');
                }, 1000);

                if (msg.toLowerCase() == "true") {
                    $('.form-cadastrar-servico .msg-sucesso').show();
                    form.reset('form-cadastrar-servico');
                } else {
                    cadastrarServico.errorCadastro();
                }
            },
            error: function(msg) {
                cadastrarServico.errorCadastro();
            }
        });
    },

    errorCadastro: function() {
        $('.form-cadastrar-servico .msg-error').show();
    }
};

//Modal Cadastrar Evento
var cadastrarEvento = {
    txtNome: null,
    txtDia: null,
    txtMenssagem: null,
    checkPublicTwitter: null,

    init: function() {
        cadastrarEvento.txtNome = $("#txtNome");
        cadastrarEvento.txtDia = $("#txtDia");
        cadastrarEvento.txtMenssagem = $("#txtMenssagem");
        cadastrarEvento.checkPublicTwitter = $('#public-twitter');

        cadastrarEvento.checkPublicTwitter.bind('click', function() {
            if ($(this).attr('checked'))
                cadastrarEvento.checkPublicTwitter.parent().removeClass('erro');
            else
                cadastrarEvento.checkPublicTwitter.parent().addClass('erro');
        });

        $('.form_cadastrar_evento .bt-enviar-cadastro').bind('click', cadastrarEvento.checkAll);
    },

    checkAll: function() {
        var _check = true;

        $('.form_cadastrar_evento .msg').hide();
        if (!form.checkBlank(cadastrarEvento.txtNome)) {
            cadastrarEvento.txtNome.parent().parent().parent().addClass('erro');
            _check = false;
        }
        if (!form.checkBlank(cadastrarEvento.txtDia)) {
            cadastrarEvento.txtDia.parent().parent().parent().addClass('erro');
            _check = false;
        }
        if (!form.checkBlank(cadastrarEvento.txtMenssagem)) {
            cadastrarEvento.txtMenssagem.parent().parent().parent().addClass('erro');
            _check = false;
        }
//        if (!cadastrarEvento.checkPublicTwitter.attr('checked')) {
//            cadastrarEvento.checkPublicTwitter.parent().addClass('erro');
//            _check = false;
//        }

        if (_check) {
            $('.form_cadastrar_evento .load-form').fadeIn('normal');
            $('.form_cadastrar_evento .msg').hide();
            cadastrarEvento.enviarCadastro();
        } else {
            $('.form_cadastrar_evento .msg-erro').show();
        }

        return _check
    },

    enviarCadastro: function() {
        $.ajax({
            type: "POST",
            url: root + "ajax/cadastrar-evento.aspx",
            global: true,
            data: {
                "txtNome": cadastrarEvento.txtNome.val(),
                "txtData": cadastrarEvento.txtDia.val(),
                "txtMenssagem": cadastrarEvento.txtMenssagem.val(),
                "checkPublicTwitter": cadastrarEvento.checkPublicTwitter.val()
            },

            success: function(msg) {
                setTimeout(function() {
                $('.form_cadastrar_evento .load-form').fadeOut('normal');
                }, 1000);

                if (msg.toLowerCase() == "true") {
                    $('.form_cadastrar_evento .msg-sucesso').show();
                    form.reset('form_cadastrar_evento');
                } else {
                cadastrarEvento.errorCadastro();
                }
            },
            error: function(msg) {
                cadastrarEvento.errorCadastro();
            }
        });
    },

    errorCadastro: function() {
        $('.form_cadastrar_evento .msg-error').show();
    }
};
