// Corre sempre em cada página para aplicar o ajax indicator
jQuery(document).ready(function() {
    jQuery.MyJavaScript.setupAjaxIndicator();
});

(function($) {
    //Aqui defines o namespace. Não necessita de ser igual ao nome do ficheiro.
    $.MyJavaScript = {

        /* AJAX INDICATOR */
        showAjaxIndicator: function() {
            jQuery.blockUI('<img src="images/progressIndicator.gif" alt="A processar..." />&nbsp;&nbsp;&nbsp;Um momento, por favor...', { backgroundColor: '#F0F0F0', color: '#404040', padding: '10px', border: 'solid 2px #404040' });
        },

        hideAjaxIndicator: function() {
            jQuery('#progress').empty();
            jQuery.unblockUI();
        },

        setupAjaxIndicator: function() {
            jQuery('#progress').ajaxStart($.MyJavaScript.showAjaxIndicator).ajaxStop($.MyJavaScript.hideAjaxIndicator);
        },

        removeAjaxIndicator: function() {
            jQuery('#progress').unbind("ajaxStart", $.MyJavaScript.showAjaxIndicator);
            jQuery('#progress').unbind("ajaxStop", $.MyJavaScript.hideAjaxIndicator);
        },

        /* Synchronized AJAX */
        synchronizedAjax: function(url, data, callback, type) {
            if ($.isFunction(data)) { callback = data; data = null; }
            return $.ajax({
                type: "GET",
                url: url,
                async: false,
                data: data,
                success: callback,
                dataType: type
            });
        },

        /* AJAX without indicator */
        getWithoutAjaxIndicator: function(url, data, callback, type) {
            if ($.isFunction(data)) { callback = data; data = null; }
            return $.ajax({
                type: "GET",
                url: url,
                data: data,
                success: callback,
                dataType: type,
                global: false
            });
        },

        bindEventsEmail: function() {
            $("#formEliminarDiasEmail #btnEliminarDiasEmail").click(function() {
                var numDias = document.formEliminarDiasEmail.numDiasEliminar.value;
                var idTipoEmail = document.formEliminarDiasEmail.idTipoEmail.value;
                if (numDias) {
                    var answer = confirm("Tem a certeza que deseja eliminar emails anteriores a " + numDias + " dias?");
                    if (answer) {
                        $.get('partialEliminarEmailsDias.php',
                            { //vai carregar o partial.html passando os parametros:
                                'date': new Date(),    //data - deixa sempre este parametro, para não utilizar a cache no IE6
                                'numDias': numDias,
                                'idTipoEmail': idTipoEmail
                            },
                            function(data) { $('#errorPedidoPecas').empty().append(data); },
                            "html");
                        return true;
                    }
                }
            });

            $("#formEliminarDiasEmailEnviados #btnEliminarDiasEmail").click(function() {
                var numDias = document.formEliminarDiasEmailEnviados.numDiasEliminar.value;
                var idTipoEmail = document.formEliminarDiasEmailEnviados.idTipoEmail.value;
                if (numDias) {
                    var answer = confirm("Tem a certeza que deseja eliminar emails anteriores a " + numDias + " dias?");
                    if (answer) {
                        $.get('partialEliminarEmailsDias.php',
                            { //vai carregar o partial.html passando os parametros:
                                'date': new Date(),    //data - deixa sempre este parametro, para não utilizar a cache no IE6
                                'numDias': numDias,
                                'idTipoEmail': idTipoEmail
                            },
                            function(data) { $('#errorPedidoPecasEnviados').empty().append(data); },
                            "html");
                        return true;
                    }
                }
            });

            $("#removeEmails").click(function() {
                var len = document.formCorreio.length;
                var idTipoEmail = $(this).attr("idTipoEmail");
                var pag = $(this).attr("pag");
                var selected = "";
                for (i = 0; i < len; i++) {
                    if (document.formCorreio[i].name.indexOf("selected") != -1 && document.formCorreio[i].checked == true)
                        selected += document.formCorreio[i].value + ";";
                }
                if (selected != "") {
                    var answer = confirm("Tem a certeza que deseja eliminar?");
                    if (answer) {
                        $.get('partialEliminarConjuntoEmails.php',
                            { //vai carregar o partial.html passando os parametros:
                                'date': new Date(),    //data - deixa sempre este parametro, para não utilizar a cache no IE6
                                'idTipoEmail': idTipoEmail,
                                'selected': selected,
                                'pag': pag
                            },
                            function(data) { $('#errorPedidoPecas').empty().append(data); },
                            "html");
                        return true;
                    }
                }
            });

            $("#removeEmailsEnviados").click(function() {
                var len = document.formCorreioEnviados.length;
                var idTipoEmail = $(this).attr("idTipoEmail");
                var pag = $(this).attr("pag");
                var selected = "";
                for (i = 0; i < len; i++) {
                    if (document.formCorreioEnviados[i].name.indexOf("selected") != -1 && document.formCorreioEnviados[i].checked == true)
                        selected += document.formCorreioEnviados[i].value + ";";
                }
                if (selected != "") {
                    var answer = confirm("Tem a certeza que deseja eliminar?");
                    if (answer) {
                        $.get('partialEliminarConjuntoEmails.php',
                            { //vai carregar o partial.html passando os parametros:
                                'date': new Date(),    //data - deixa sempre este parametro, para não utilizar a cache no IE6
                                'idTipoEmail': idTipoEmail,
                                'selected': selected,
                                'pag': pag
                            },
                            function(data) { $('#errorPedidoPecasEnviados').empty().append(data); },
                            "html");
                        return true;
                    }
                }
            })
        },

        bindEventsRemoveEmail: function() {
            $("#removeEmail ").click(function() {
                var idEmail = $(this).attr("idEmail");
                var idTipoEmail = $(this).attr("idTipoEmail");
                var idCliente = $(this).attr("idCliente");
                //var pag = $(this).attr("pag");
                var answer = confirm("Tem a certeza que deseja eliminar?")
                if (answer) {
                    document.getElementById("errorPedidoPecas").innerHTML = "&nbsp;";
                    $.get('partialEliminarEmail.php',
                        { 'idEmail': idEmail, 'idTipoEmail': idTipoEmail, 'idCliente': idCliente, 'date': new Date() },
                        function(data) { $('#errorPedidoPecas').empty().append(data); },
                        'html');
                }
                return true;
            });
        },


        bindEventsRespondeEmail: function() {
            $("#replyEmail").click(function() {
                var idClienteRemetente = document.formResponderEmail.idClienteRemetente.value;
                var idClienteDestinatario = document.formResponderEmail.idClienteDestinatario.value;
                var assunto = document.formResponderEmail.assunto.value;
                var idTicket = document.formResponderEmail.idTicket.value;
                var idTipoEmail = document.formResponderEmail.idTipoEmail.value;
                var mensagem = document.formResponderEmail.mensagem.value;
                var idEmail = document.formResponderEmail.idEmail.value;
                //var pag = document.formResponderEmail.pag.value;
                if (idClienteRemetente != "" && idClienteDestinatario != "" && assunto != "" && idTicket != "" && idTipoEmail != "") {
                    if (mensagem != "") {
                        document.getElementById("errorPedidoPecas").innerHTML = "&nbsp;";
                        document.formResponderEmail.submit();
                    }
                    else {
                        document.getElementById("errorPedidoPecas").innerHTML = "preencher mensagem<br /><br />";
                    }
                }
                else {
                    document.getElementById("errorPedidoPecas").innerHTML = "erro ao enviar email<br /><br />";
                }
                return true;
            });
            $("#botoes .sendEmail").click(function() {
                var idClienteRemetente = document.formResponderEmail.idClienteRemetente.value;
                var idClienteDestinatario = document.formResponderEmail.idClienteDestinatario.value;
                var assunto = document.formResponderEmail.assunto.value;
                var idTicket = document.formResponderEmail.idTicket.value;
                var idTipoEmail = document.formResponderEmail.idTipoEmail.value;
                var mensagem = document.formResponderEmail.mensagem.value;
                var idEmail = document.formResponderEmail.idEmail.value;
                if (idClienteRemetente != "" && idClienteDestinatario != "" && assunto != "" && idTicket != "" && idTipoEmail != "") {
                    if (mensagem != "") {
                        document.getElementById("errorPedidoPecas").innerHTML = "&nbsp;";
                        $.get('partialResponderEmail.php',
                            { 'idClienteRemetente': idClienteRemetente, 'idClienteDestinatario': idClienteDestinatario,
                                'assunto': assunto, 'idTicket': idTicket, 'idTipoEmail': idTipoEmail,
                                'mensagem': mensagem, 'idEmail': idEmail, 'date': new Date()
                            },
                            function(data) { $('#errorPedidoPecas').empty().append(data); },
                            'html');
                    }
                    else {
                        document.getElementById("errorPedidoPecas").innerHTML = "preencher mensagem";
                    }
                }
                else {
                    document.getElementById("errorPedidoPecas").innerHTML = "erro ao enviar email";
                }
                return true;
            })
        },

        printSelection: function(node) {
            if (node != null) {
                var content = node.innerHTML;
                var pwin = window.open('', 'print_content', 'scrollbars=no,menubar=no,toolbar=no,location=no,status=no,width=400,height=150');
                pwin.document.open();
                pwin.document.write('<html><head><title>Preparar impressão...</title><link href="lib/styles/print.css" rel="stylesheet" type="text/css" /></head><body onload="window.print()">' + content + '</body></html>');
                pwin.document.close();
                setTimeout(function() { pwin.close(); }, 1000);
            }
        },

        checkAllBoxes: function(form) {
            var oForm = document.getElementById(form);
            for (var i = 0; i < oForm.elements.length; i++) {
                var e = oForm.elements[i];
                if ((e.name != 'selectedAll') && (e.type == 'checkbox')) {
                    e.checked = oForm.selectAll.checked;
                }
            }
            return true;
        },


        refreshCorreio: function(idTipoEmail, divResult, pag) {
            $.get('partialCorreio.php',
                  { 'date': new Date(), 'idTipoEmail': idTipoEmail, 'pag': pag },
                  function(data) { $(divResult).empty().append(data); },
                  'html');
            return true;
        },

        refreshCorreioCount: function() {
            $.get('partialCorreioCount.php',
                  { 'date': new Date() },
                  function(data) { $('#correioCount').empty().append(data); },
                  'html');
            return true;
        },

        bindEventsDistritos: function() {
            // Aqui está a fazer o bind. Usa-se cardinais '#' para os ids e '.' para as classes.
            // Aqui está a aplicar o change ao objecto com o id "comboMarcas" que está dentro do id "marcasContent".
            //alert('error');
            $('#wrapper #idDistrito').change(function() {
                var idDistrito = $('#wrapper #idDistrito').val(); //o valor seleccionado
                //alert(idModelo); //Mensagem no ecra
                $.MyJavaScript.getWithoutAjaxIndicator('partialConcelho.php',
                        { //vai carregar o partial.html passando os parametros:
                            'date': new Date(),    //data - deixa sempre este parametro, para não utilizar a cache no IE6
                            'idDistrito': idDistrito     //o parametro id
                        },
                        function(data) { $('#wrapper #concelhoPartialContent').empty().append(data); },
                        "html");
                return false;
            });
        },

        buildData: function() {
            var d = new Date();
            var curr_date = d.getDate();
            var curr_month = d.getMonth();
            curr_month++;
            var curr_year = d.getFullYear();
            var curr_hours = d.getHours();
            var curr_minutes = d.getMinutes();
            var curr_seconds = d.getSeconds();
            var myDate = curr_year + "-" + curr_month + "-" + curr_date + " " + curr_hours + ":" + curr_minutes + ":" + curr_seconds;
            return myDate;
        },

        showDiv: function(id) {
            //alert(id);
            //alert(document.registo.elements['nome'].value);
            //safe function to show an element with a specified id
            if (document.getElementById) { // DOM3 = IE5, NS6
                document.getElementById(id).style.display = 'block';
            }
            else {
                if (document.layers) { // Netscape 4
                    document.id.display = 'block';
                }
                else { // IE 4
                    document.all.id.style.display = 'block';
                }
            }
            return false;
        },

        hideDiv: function(id) {
            //safe function to hide an element with a specified id
            if (document.getElementById) { // DOM3 = IE5, NS6
                document.getElementById(id).style.display = 'none';
            }
            else {
                if (document.layers) { // Netscape 4
                    document.id.display = 'none';
                }
                else { // IE 4
                    document.all.id.style.display = 'none';
                }
            }
        },

        registoMostraInfoCliente: function(idCliente) {
            if (idCliente == 3) {
                //showdiv('servicosInfo');
                $.MyJavaScript.hideDiv('tipologiasInfo');
                $.MyJavaScript.hideDiv('orcamentoOficina');
                $.MyJavaScript.hideDiv('orcamentoSucata');
                $.MyJavaScript.showDiv('orcamentoParticular');
                $.MyJavaScript.calculaOrcamentoParticular();
            } else {
                if (idCliente == 2) {
                    $.MyJavaScript.showDiv('tipologiasInfo');
                    $.MyJavaScript.showDiv('orcamentoOficina');
                    $.MyJavaScript.hideDiv('orcamentoSucata');
                    $.MyJavaScript.hideDiv('orcamentoParticular');
                    $.MyJavaScript.calculaOrcamentoOficina();
                    //hidediv('servicosInfo');
                } else {
                    $.MyJavaScript.hideDiv('tipologiasInfo');
                    $.MyJavaScript.hideDiv('orcamentoOficina');
                    $.MyJavaScript.showDiv('orcamentoSucata');
                    $.MyJavaScript.hideDiv('orcamentoParticular');
                    $.MyJavaScript.calculaOrcamentoSucata();
                    //hidediv('servicosInfo');
                }
            }
        },

        renovacaoMostraInfoCliente: function(idCliente) {
            if (idCliente == 3) {
                //showdiv('servicosInfo');
                $.MyJavaScript.hideDiv('orcamentoOficina');
                $.MyJavaScript.hideDiv('orcamentoSucata');
                $.MyJavaScript.showDiv('orcamentoParticular');
                $.MyJavaScript.calculaOrcamentoParticular();
            } else {
                if (idCliente == 2) {
                    $.MyJavaScript.showDiv('orcamentoOficina');
                    $.MyJavaScript.hideDiv('orcamentoSucata');
                    $.MyJavaScript.hideDiv('orcamentoParticular');
                    $.MyJavaScript.calculaOrcamentoOficina();
                    //hidediv('servicosInfo');
                } else {
                    $.MyJavaScript.hideDiv('orcamentoOficina');
                    $.MyJavaScript.showDiv('orcamentoSucata');
                    $.MyJavaScript.hideDiv('orcamentoParticular');
                    $.MyJavaScript.calculaOrcamentoSucata();
                    //hidediv('servicosInfo');
                }
            }
        },

        calculaOrcamentoOficina: function() {
            var myDate = $.MyJavaScript.buildData();
            //alert('tem de calcular orçamento!');
            //idPacotePesquisa = document.registo.oficinaPecas.value;
            if (document.formElem.oficinaPackAnuncios.checked)
                idPacoteAnuncio = document.formElem.oficinaPackAnuncios.value;
            else
                idPacoteAnuncio = 0;
            //idPacoteStand = document.registo.oficinaStand.value;
            //idAdicionalPneus = document.registo.oficinaPneus.value;
            $.MyJavaScript.getWithoutAjaxIndicator('partialOrcamentoOficina.php',
                  { 'date': myDate, 'idPacoteAnuncio': idPacoteAnuncio },
                  function(data) { $('#divOrcamento').empty().append(data); },
                  'html');
            return true;
        },

        calculaOrcamentoSucata: function() {
            var myDate = $.MyJavaScript.buildData();
            idPacoteAnuncio = document.formElem.sucataPackAnuncios.value;
            $.MyJavaScript.getWithoutAjaxIndicator('partialOrcamentoSucata.php',
                  { 'date': myDate, 'idPacoteAnuncio': idPacoteAnuncio },
                  function(data) { $('#divOrcamento').empty().append(data); },
                  'html');
            return true;
        },

        calculaOrcamentoParticular: function() {
            var myDate = $.MyJavaScript.buildData();
            $.MyJavaScript.getWithoutAjaxIndicator('partialOrcamentoParticular.php',
                  { 'date': myDate },
                  function(data) { $('#divOrcamento').empty().append(data); },
                  'html');
            return true;
        },

        /*verifica timing*/
        checkData: function(idSMS, pageId) {
            var myDate = $.MyJavaScript.buildData();
            //alert(myDate);
            $.MyJavaScript.getWithoutAjaxIndicator('checkSMS.php',
		  	    { 'dateSMS': myDate, 'idSMS': idSMS, 'pageId': pageId },
                      	function(data) {
                      	    $('#contentSMSControl').empty().append(data);
                      	    if (data && data.indexOf('SMSNOTRECEIVED') >= 0) {
                      	        eval("setTimeout('jQuery.MyJavaScript.checkData(" + idSMS + "," + pageId + ")',5000);");
                      	    }
                      	},
			            "html");
        },

        registoCliente: function() {
            var myDate = $.MyJavaScript.buildData();
            var nome = document.formElem.nome.value;
            var morada = document.formElem.morada.value;
            var morada2 = document.formElem.morada2.value;
            var codPostal1 = document.formElem.codPostal1.value;
            var codPostal2 = document.formElem.codPostal2.value;
            var codPostalDesignacao = document.formElem.codPostalDesignacao.value;

            var idConcelho = document.formElem.idConcelho.value;
            var nif = document.formElem.nif.value;
            var telefone = document.formElem.telefone.value;
            var fax = document.formElem.fax.value;
            var telemovel = document.formElem.telemovel.value;
            var email = document.formElem.email.value;
            var site = document.formElem.site.value;
            var idTipoCliente = 0;
            for (i = 0; i < document.formElem.idTipoCliente.length; i++) {
                if (document.formElem.idTipoCliente[i].checked)
                    idTipoCliente = document.formElem.idTipoCliente[i].value;
            }
            var idPacoteStand = 0;
            var idPacotePesquisa = 0;
            var idPacoteAnuncio = 0;
            var idVFV = 0;
            var idPacotePneus = 0;
            var valorInscricao = 0;
            var tipologias = "";
            if (!isNaN(codPostal1) && !isNaN(codPostal2)) {
                if (!isNaN(telefone) && !isNaN(fax) && !isNaN(telemovel)) {
                    if ($.MyJavaScript.IsValidNIF(nif)) {
                        if ($.MyJavaScript.checkEmail(email)) {
                            if (document.formElem.acceptTerms.checked) {
                                valorInscricao = document.formElem.valorInscricao.value;
                                switch (idTipoCliente) {
                                    case '1':
                                        {
                                            idPacoteAnuncio = document.formElem.sucataPackAnuncios.value;
                                            //idVFV = document.formElem.sucataVFV.value;
                                            break;
                                        }
                                    case '2':
                                        {
                                            if (document.formElem.oficinaPackAnuncios.checked)
                                                idPacoteAnuncio = document.formElem.oficinaPackAnuncios.value;
                                            else
                                                idPacoteAnuncio = 5;
                                            for (i = 0; i < document.formElem.tipologia.length; i++) {
                                                if (document.formElem.tipologia[i].checked == true)
                                                    tipologias += document.formElem.tipologia[i].value + ";";
                                            }
                                            break;
                                        }
                                    case '3':
                                        {
                                            idPacoteAnuncio = 0;
                                            break;
                                        }
                                }
                                //alert(idPacoteAnuncio);
                                var subscricaoRevista = 0;
                                var utilizarDadosRegisto = document.formElem.utilizarDadosRegisto.checked;
                                var informarNovidades = document.formElem.informarNovidades.checked;
                                var receberFacturaElectronica = document.formElem.receberFacturaElectronica.checked;
                                //alert('vai fazer o get');
                                $.MyJavaScript.getWithoutAjaxIndicator('partialRegistoCliente.php',
            { 'date': myDate, 'nome': nome, 'morada': morada, 'morada2': morada2, 'codPostal1': codPostal1,
                'codPostal2': codPostal2, 'codPostalDesignacao': codPostalDesignacao, 'idConcelho': idConcelho, 'nif': nif,
                'telefone': telefone, 'fax': fax, 'telemovel': telemovel, 'email': email, 'site': site,
                'idTipoCliente': idTipoCliente, 'idPacoteStand': idPacoteStand, 'idPacotePesquisa': idPacotePesquisa,
                'idPacoteAnuncio': idPacoteAnuncio, 'idVFV': idVFV, 'idPacotePneus': idPacotePneus,
                'subscricaoRevista': subscricaoRevista, 'utilizarDadosRegisto': utilizarDadosRegisto,
                'informarNovidades': informarNovidades, 'receberFacturaElectronica': receberFacturaElectronica,
                'valorInscricao': valorInscricao, 'tipologias': tipologias
            },
            function(data) { $('#resultRegisto').empty().append(data); },
            'html');
                            } else {
                                document.getElementById('errorForm2').innerHTML = "Não foram aceites os termos de uso";
                            }
                        } else {
                            document.getElementById('errorForm2').innerHTML = "Email inválido";
                        }
                    } else {
                        document.getElementById('errorForm2').innerHTML = "O contribuinte identificado é inválido";
                    }
                } else {
                    document.getElementById('errorForm2').innerHTML = "Contactos incorrectos";
                }
            } else {
                document.getElementById('errorForm2').innerHTML = "Código postal incorrecto";
            }
            return false;
        },

        renovacaoCliente: function() {
            var idTipoCliente = 0;
            var myDate = $.MyJavaScript.buildData();
            var idCliente = document.formElem.idCliente.value;
            var idTipoCliente = document.formElem.idTipoCliente.value;

            var idPacoteStand = 0;
            var idPacotePesquisa = 0;
            var idPacoteAnuncio = 0;
            var idVFV = 0;
            var idPacotePneus = 0;
            var valorInscricao = 0;
            var tipologias = "";
            if (document.formElem.acceptTerms.checked) {
                valorInscricao = document.formElem.valorInscricao.value;
                switch (idTipoCliente) {
                    case '1':
                        {
                            idPacoteAnuncio = document.formElem.sucataPackAnuncios.value;
                            break;
                        }
                    case '2':
                        {
                            if (document.formElem.oficinaPackAnuncios.checked)
                                idPacoteAnuncio = document.formElem.oficinaPackAnuncios.value;
                            else
                                idPacoteAnuncio = 5;
                            break;
                        }
                    case '3':
                        {
                            idPacoteAnuncio = 0;
                            break;
                        }
                }
                //alert('vai fazer o get');
                $.MyJavaScript.getWithoutAjaxIndicator('partialRenovacaoCliente.php',
                    { 'date': myDate, 'idCliente': idCliente, 'idTipoCliente': idTipoCliente, 'idPacoteStand': idPacoteStand,
                        'idPacotePesquisa': idPacotePesquisa, 'idPacoteAnuncio': idPacoteAnuncio, 'valorInscricao': valorInscricao
                    },
                    function(data) { $('#resultRegisto').empty().append(data); },
                    'html');
            } else {
                document.getElementById('errorForm2').innerHTML = "Não foram aceites os termos de uso";
            }
            return false;
        },

        IsValidNIF: function(nif) {
            //Check if is numeric and if has 9 numbers
            if (!isNaN(nif) && nif > 0 && nif.length == 9) {
                //Get the first number of NIF
                nif = nif.split("");
                var c = nif[0];
                //Check firt number is (1, 2, 5, 6, 8 or 9)
                if (c == '1' || c == '2' || c == '5' || c == '6' || c == '8' || c == '9') {
                    //Perform CheckDigit calculations
                    var checkDigit = c * 9;
                    for (i = 2; i <= 8; i++) {
                        checkDigit += nif[i - 1] * (10 - i);
                    }
                    checkDigit = 11 - (checkDigit % 11);
                    //if checkDigit is higher than ten set it to zero
                    if (checkDigit >= 10)
                        checkDigit = 0;
                    //Compare checkDigit with the last number of NIF
                    //If equal the NIF is Valid.
                    if (checkDigit == nif[8])
                        return true;
                }
            }
            return false;
        },

        controleWithData: function(form, excepcoes, url, errorDiv, intValuesArray, emailsArray, aceitaTermos, efectuaPost, resultDiv) {
            var count = form.elements.length;
            var value = true;
            var verifyData = true;
            for (i = 0; i < count; i++) {
                var element = form.elements[i];
                if ((element.value == "0" || element.value == "") && $.MyJavaScript.in_array(element.name, excepcoes) == false) {
                    value = false;
                    //alert(element.name);
                }
                if ($.MyJavaScript.in_array(element.name, intValuesArray) == true) {
                    if (element.value != "" && isNaN(element.value)) {
                        verifyData = false;
                    }
                }
                if ($.MyJavaScript.in_array(element.name, emailsArray) == true && element.value != "") {
                    if ($.MyJavaScript.checkEmail(element.value) == false) {
                        verifyData = false;
                    }
                }
            }
            if (value == false) {
                document.getElementById(errorDiv).innerHTML = "preencher campos obrigatórios";
                //alert('preencher campos obrigatórios');
            }
            else {
                if (verifyData == false) {
                    document.getElementById(errorDiv).innerHTML = "dados mal preenchidos";
                    //alert('preencher campos obrigatórios');
                }
                else {
                    if (aceitaTermos && form.elements['termos'].checked == false) {
                        document.getElementById(errorDiv).innerHTML = "aceitar termos de utilização";
                    }
                    else {
                        document.getElementById(errorDiv).innerHTML = "&nbsp;";
                        if (efectuaPost) {
                            form.action = url;
                            var res = "document." + form.name + ".submit();";
                            eval(res);
                            //alert(res);
                        }
                        else {
                            $.MyJavaScript.showPartial(form, url, resultDiv);
                        }
                    }
                }
            }
            return true;
        },

        bindEventsStandTP: function() {
            var myDate = $.MyJavaScript.buildData();
            $.MyJavaScript.getWithoutAjaxIndicator('partialStandTP.php',
            { //vai carregar o partial.html passando os parametros:
                'date': myDate    //data - deixa sempre este parametro, para não utilizar a cache no IE6
            },
            function(data) { $('#standDestDiv').empty().append(data); }, "html");

            
            //alert('entrou');
            setTimeout('$.MyJavaScript.bindEventsStandTP()', 10000);
            return false;
        },
        
        bindEventsChangePass: function() {
            // Aqui está a fazer o bind. Usa-se cardinais '#' para os ids e '.' para as classes.
            // Aqui está a aplicar o change ao objecto com o id "comboMarcas" que está dentro do id "marcasContent".
            $('#changePassBtn').click(function() {
                var passActual = document.changePass.passActual.value;
                var pass = document.changePass.pass.value;
                var passConfirm = document.changePass.passConfirm.value;
                //alert(idModelo); //Mensagem no ecra
                $.MyJavaScript.getWithoutAjaxIndicator('partialChangePass.php',
                        { //vai carregar o partial.html passando os parametros:
                            'date': new Date(),    //data - deixa sempre este parametro, para não utilizar a cache no IE6
                            'passActual': passActual,
                            'pass': pass,
                            'passConfirm': passConfirm
                        },
                        function(data) { $('#errorChangePass').empty().append(data); },
                        "html");
                return false;
            });
        },

        showPartial: function(form, url, resultDiv) {
            //$.MyJavaScript.showAjaxIndicator();
            var values = url;
            var len = form.length; //Leave off Submit Button
            values += '?date=' + $.MyJavaScript.buildData();
            for (i = 0; i < len; i++) {
                if (form[i].id.indexOf("selected") != -1) //Skip Continue and Back Buttons
                    continue;
                //if (i !=0)
                //    values +='&';
                //else
                values += '&';
                values += form[i].id;
                values += '=';
                values += form[i].value;
            }
            //alert (values);

            $.MyJavaScript.getWithoutAjaxIndicator(values,
                        { //vai carregar o partial.html passando os parametros:

                    },
                        function(data) { $(resultDiv).empty().append(data); },
                        "html");
            return false;
            //$.MyJavaScript.hideAjaxIndicator();
        },

        /* Marcas */
        bindEventsAnos: function() {
            // Aqui está a fazer o bind. Usa-se cardinais '#' para os ids e '.' para as classes.
            // Aqui está a aplicar o change ao objecto com o id "comboMarcas" que está dentro do id "marcasContent".
            $('#wrapper #ano').change(function() {
                var ano = $('#wrapper #ano').val(); //o valor seleccionado
                //alert(ano);
                //alert(idMarca); //Mensagem no ecra
                $.MyJavaScript.getWithoutAjaxIndicator('partialMarca.php',
                    { //vai carregar o partial.html passando os parametros:
                        'date': new Date(),    //data - deixa sempre este parametro, para não utilizar a cache no IE6
                        'ano': ano     //o parametro id
                    },
                    function(data) { $('#wrapper #marcasPartialContent').empty().append(data); }, //pega no resultado do get e coloca em marcasPartialContent. Att: o resultado do get não pode trazer <html></html> nem head nem body.
                    "html");
                $('#wrapper #idModelo').empty();
                $('#wrapper #idPorta').empty();
                $('#wrapper #idAno').empty();
                return true;
            });
        },

        bindEventsMarcas: function() {
            $('#wrapper #idMarca').change(function() {
                var ano = $('#wrapper #ano').val(); //o valor seleccionado
                var idMarca = $('#wrapper #idMarca').val(); //o valor seleccionado
                var size = $(this).attr("size"); //o valor seleccionado
                $.MyJavaScript.getWithoutAjaxIndicator('partialModelo.php',
                    { //vai carregar o partial.html passando os parametros:
                        'date': new Date(),    //data - deixa sempre este parametro, para não utilizar a cache no IE6
                        'ano': ano,
                        'idMarca': idMarca,
                        'size': size
                    },
                    function(data) { $('#wrapper #modelosPartialContent').empty().append(data); }, //pega no resultado do get e coloca em marcasPartialContent. Att: o resultado do get não pode trazer <html></html> nem head nem body.
                    "html");
                if (size > 1) {
                    $('#wrapper #idPorta').empty();
                    $('#wrapper #idAno').empty();
                }
                return true;
            });
        },


        bindEventsModelos: function() {
            $('#wrapper #idModelo').change(function() {
                var ano = $('#wrapper #ano').val(); //o valor seleccionado
                var idModelo = $('#wrapper #idModelo').val(); //o valor seleccionado
                var size = $(this).attr("size"); //o valor seleccionado                
                $.MyJavaScript.getWithoutAjaxIndicator('partialPorta.php',
                    { //vai carregar o partial.html passando os parametros:
                        'date': new Date(),    //data - deixa sempre este parametro, para não utilizar a cache no IE6
                        'idModelo': idModelo,
                        'size': size
                    },
                    function(data) { $('#wrapper #portasPartialContent').empty().append(data); }, //pega no resultado do get e coloca em marcasPartialContent. Att: o resultado do get não pode trazer <html></html> nem head nem body.
                    "html");
                $.MyJavaScript.getWithoutAjaxIndicator('partialAnos.php',
                    { //vai carregar o partial.html passando os parametros:
                        'date': new Date(),    //data - deixa sempre este parametro, para não utilizar a cache no IE6
                        'ano': ano,
                        'idModelo': idModelo,
                        'size': size
                    },
                    function(data) { $('#wrapper #anosPartialContent').empty().append(data); }, //pega no resultado do get e coloca em marcasPartialContent. Att: o resultado do get não pode trazer <html></html> nem head nem body.
                    "html");
                return true;
            });
        },

        refreshLocalizaLocal: function(accao) {
            var idCliente = document.formPesquisa2.idCliente.value;
            var nif = document.formPesquisa2.nif.value;
            $.get('partialLocalizaLocal.php',
                { 'date': new Date(), 'idCliente': idCliente, 'nif': nif, 'accao': accao },
                function(data) { $('#clientInfo').empty().append(data); },
                'html');
            return true;
        },

        bindEventsLocalizaLocal: function() {
            $("#main #validar").click(function() {
                $.MyJavaScript.refreshLocalizaLocal(1);
                return true;
            });
            $("#main #seguinteLocal").click(function() {
                $.MyJavaScript.refreshLocalizaLocal(2);
                return true;
            });

        },

        refreshPartesPecas: function(accao) {
            var tras = document.formPesquisa.tras.value;
            var esquerda = document.formPesquisa.esquerda.value;
            var centro = document.formPesquisa.centro.value;
            var direita = document.formPesquisa.direita.value;
            var frente = document.formPesquisa.frente.value;
            var interiores = document.formPesquisa.interiores.value;
            var mecanica = document.formPesquisa.mecanica.value;
            $.get('partialPartesPecas.php',
                {
                    'date': new Date(),
                    'tras': tras,
                    'esquerda': esquerda,
                    'centro': centro,
                    'direita': direita,
                    'frente': frente,
                    'interiores': interiores,
                    'mecanica': mecanica
                },
                function(data) { $('#partialPartesPecas').empty().append(data); },
                'html');
            return true;
        },

        //para a localização
        bindEventsCar: function() {
            $("#divCar img").click(function() {
                var pos = $(this).attr("pos");
                eval("if (document.formPesquisa." + pos + ".value==1) { document.formPesquisa." + pos + ".value=0; }else{ document.formPesquisa." + pos + ".value=1; }");
                eval("document.formPesquisa2." + pos + ".value=document.formPesquisa." + pos + ".value;");
                var tras = document.formPesquisa.tras.value;
                var esquerda = document.formPesquisa.esquerda.value;
                var centro = document.formPesquisa.centro.value;
                var direita = document.formPesquisa.direita.value;
                var frente = document.formPesquisa.frente.value;
                var interiores = document.formPesquisa.interiores.value;
                var mecanica = document.formPesquisa.mecanica.value;
                $.MyJavaScript.getWithoutAjaxIndicator('partialCarImage.php',
                    { 'date': new Date(), 'tras': tras, 'esquerda': esquerda, 'centro': centro, 'direita': direita, 'frente': frente,
                        'interiores': interiores, 'mecanica': mecanica
                    },
                    function(data) { $('#divCar').empty().append(data); },
                    'html');

                $.MyJavaScript.getWithoutAjaxIndicator('partialPartesPecas.php',
                    {
                        'date': new Date(),
                        'tras': tras,
                        'esquerda': esquerda,
                        'centro': centro,
                        'direita': direita,
                        'frente': frente,
                        'interiores': interiores,
                        'mecanica': mecanica
                    },
                    function(data) { $('#partialPartesPecas').empty().append(data); },
                    'html');

                return true;
            })
        },

        //para a localização
        bindEventsCarAnuncio: function() {
            $("#divCar img").click(function() {
                var pos = $(this).attr("pos");
                eval("if (document.formPesquisa." + pos + ".value==1) { document.formPesquisa." + pos + ".value=0; }else{ document.formPesquisa." + pos + ".value=1; }");
                var tras = document.formPesquisa.tras.value;
                var esquerda = document.formPesquisa.esquerda.value;
                var centro = document.formPesquisa.centro.value;
                var direita = document.formPesquisa.direita.value;
                var frente = document.formPesquisa.frente.value;
                var interiores = document.formPesquisa.interiores.value;
                var mecanica = document.formPesquisa.mecanica.value;
                $.MyJavaScript.getWithoutAjaxIndicator('partialCarImage.php',
                    { 'date': new Date(), 'tras': tras, 'esquerda': esquerda, 'centro': centro, 'direita': direita, 'frente': frente,
                        'interiores': interiores, 'mecanica': mecanica, 'anuncio': "1"
                    },
                    function(data) { $('#divCar').empty().append(data); },
                    'html');
                return true;
            })
        },

        getPosition: function(obj) {
            var topValue = 0, leftValue = 0;
            while (obj) {
                leftValue += obj.offsetLeft;
                topValue += obj.offsetTop;
                obj = obj.offsetParent;
            }
            finalvalue = leftValue + "," + topValue;
            return finalvalue;
        },

        bindEventsToolTip: function() {
            //select all the a tag with name equal to modal
            $('a[name=modal]').click(function(e) {
                //Cancel the link behavior
                e.preventDefault();
                //Get the A tag
                var id = $(this).attr('href');
                //Get the screen height and width
                var maskHeight = $(document).height();
                var maskWidth = $(window).width();
                //Set heigth and width to mask to fill up the whole screen
                $('#mask').css({ 'width': maskWidth, 'height': maskHeight });
                //transition effect
                $('#mask').fadeIn(1000);
                $('#mask').fadeTo("slow", 0.8);
                //Get the window height and width
                var winH = $(window).height();
                var winW = $(window).width();
                //Set the popup window to center
                var d = document.getElementById('dialog4');

                var meuX = document.documentElement.scrollTop + 100;
                var meuY = winW / 2 - $(id).width() / 2;
                //alert(id);
                //alert(document.documentElement.scrollTop);

                //$(id).css('top', winH / 2 - $(id).height() / 2);
                //$(id).css('left', winW / 2 - $(id).width() / 2);
                $(id).css('top', meuX);
                $(id).css('left', meuY);
                //transition effect
                $(id).fadeIn(2000);
            });
            //if close button is clicked
            $('.window .close').click(function(e) {
                //Cancel the link behavior
                e.preventDefault();
                $('#mask').hide();
                $('.window').hide();
            });
            //if mask is clicked
            $('#mask').click(function() {
                $(this).hide();
                $('.window').hide();
            });
        },

        //actualiza a data de actualizao de stocks
        //att: deve-se repetir no javascript publico por causa das pesqusas publicas
        bindEventsStatsVisualizacao: function() {
            $("#main .refreshStats").click(function() {
                var id = $(this).attr("id")
                var numProvider = $(this).attr("numProvider");
                var idCliente = $(this).attr("idCliente");
                if (numProvider != 0 && numProvider != undefined) {
                    document.getElementById(id).setAttribute('numProvider', 0);
                    $.get('partialStatsVisualizacao.php',
                    { //vai carregar o partial.html passando os parametros:
                        'date': new Date(),    //data - deixa sempre este parametro, para não utilizar a cache no IE6
                        'idCliente': idCliente
                    },
                    function(data) { $('#divResActualizaStats').empty().append(data); },
                    "html");
                    return true;
                }
            })
        },

        bindEventsStock: function() {
            $('#main #idMarca').change(function() {
                var idMarca = $('#main #idMarca').val();
                var idModelo = 0;
                var idParte = $('#main #idParte').val();
                $.MyJavaScript.refreshStock(0, idMarca, idModelo, idParte);
                return true;
            });
            $('#main #idModelo').change(function() {
                var idMarca = $('#main #idMarca').val();
                var idModelo = $('#main #idModelo').val();
                var idParte = $('#main #idParte').val();
                $.MyJavaScript.refreshStock(0, idMarca, idModelo, idParte);
                return true;
            });
            $('#main #idParte').change(function() {
                var idMarca = $('#main #idMarca').val();
                var idModelo = $('#main #idModelo').val();
                var idParte = $('#main #idParte').val();
                $.MyJavaScript.refreshStock(0, idMarca, idModelo, idParte);
                return true;
            })
        },

        bindEventsStockNavigation: function() {
            $("#main .next").click(function() {
                var pag = $(this).attr("pag");
                var idMarca = $(this).attr("idMarca");
                var idModelo = $(this).attr("idModelo");
                var idParte = $(this).attr("idParte");
                $.MyJavaScript.refreshStock(pag, idMarca, idModelo, idParte);
                return true;
            });
            $("#main .previous").click(function() {
                var pag = $(this).attr("pag");
                var idMarca = $(this).attr("idMarca");
                var idModelo = $(this).attr("idModelo");
                var idParte = $(this).attr("idParte");
                $.MyJavaScript.refreshStock(pag, idMarca, idModelo, idParte);
                return true;
            })
        },


        refreshStock: function(pag, idMarca, idModelo, idParte) {
            $.get('partialStock.php',
                  { 'date': new Date(), 'pag': pag, 'idMarca': idMarca, 'idModelo': idModelo, 'idParte': idParte },
                  function(data) { $('#divResultadoPesquisa').empty().append(data); },
                  'html');
            return true;
        },

        selecionar: function(name) {
            var x = 0;
            var name2 = name + 'seleccionado';
            while (x == 0) {
                document.getElementById(name).checked = true;
                document.getElementById(name).id = name2;
                if (!document.getElementById(name))
                    x = x + 1;
            }
            x = 0;
            while (x == 0) {
                document.getElementById(name2).id = name;
                if (!document.getElementById(name2))
                    x = x + 1;
            }
            var newlink = '<input type="checkbox" id="' + name + '" value="ola" onclick="jQuery.MyJavaScript.deselecionar(\'' + name + '\')" checked>';
            var div = 'div_selecionar_' + name;
            document.getElementById(div).innerHTML = newlink;
        },

        deselecionar: function(name) {
            var x = 0;
            var name2 = name + 'seleccionado';
            while (x == 0) {
                document.getElementById(name).checked = false;
                document.getElementById(name).id = name2;
                if (!document.getElementById(name))
                    x = x + 1;
            }
            x = 0;
            while (x == 0) {
                document.getElementById(name2).id = name;
                if (!document.getElementById(name2))
                    x = x + 1;
            }
            var newlink = '<input type="checkbox" id="' + name + '" value="ola" onclick="jQuery.MyJavaScript.selecionar(\'' + name + '\')">';
            var div = 'div_selecionar_' + name
            document.getElementById(div).innerHTML = newlink;
        },


        toggleDetail: function(id, number) {
            for (i = 1; i <= number; i++) {
                body = document.getElementById(id + i);
                if (body) {
                    if (body.style.display == 'none') {
                        try {
                            body.style.display = 'table-row';
                        } catch (e) {
                            body.style.display = 'block';
                        }
                    }
                    else {
                        body.style.display = 'none';
                    }
                }
            }
        },

        in_array: function(needle, haystack, strict) {
            var found = false, key, strict = !!strict;
            for (key in haystack) {
                if ((strict && haystack[key] === needle) || (!strict && haystack[key] == needle)) {
                    found = true;
                    break;
                }
            }
            return found;
        },


        checkEmail: function(str) {
            var at = "@";
            var dot = ".";
            var lat = str.indexOf(at);
            var lstr = str.length;
            var ldot = str.indexOf(dot);
            if (str.indexOf(at) == -1) {
                return false;
            }

            if (str.indexOf(at) == -1 || str.indexOf(at) == 0 || str.indexOf(at) == lstr) {
                return false;
            }

            if (str.indexOf(dot) == -1 || str.indexOf(dot) == 0 || str.indexOf(dot) == lstr) {
                return false;
            }

            if (str.indexOf(at, (lat + 1)) != -1) {
                return false;
            }

            if (str.substring(lat - 1, lat) == dot || str.substring(lat + 1, lat + 2) == dot) {
                return false;
            }

            if (str.indexOf(dot, (lat + 2)) == -1) {
                return false;
            }

            if (str.indexOf(" ") != -1) {
                return false;
            }

            return true
        }

    }

})(jQuery);

