/**
 * ======================================================== *
 * funcoes gerais   -   funcoes gerais   -   funcoes gerais *
 * ======================================================== *
*/

/**
 * Adiciona um produto ao carrinho de compras
*/
function adicionarProduto(url, produto_id, qtd, label) {
    var pars = 'quantidade=' + qtd;

    var myAjax = new Ajax.Updater('add_response_qtd_' + produto_id +'_'+label,
                                  url,
                                  {
                                      method: 'get',
                                      parameters: pars
                                  }
                                  );
}

/**
 * Actualiza o valor total do carrinho de compras
*/
function actualizarMiniCarrinho(url, param) {
    var pars = 'ajax=' + param;
    
    for (i = 0; i < 30000; i++) {} // funcao bolha
    
    var myAjax = new Ajax.Updater('carrinho_total',
                                  url,
                                  {
                                      method: 'get',
                                      parameters: pars
                                  }
                                  );
}

/**
 * Actualiza a quantidade do carrinho de compras
*/
function actualizarMiniCarrinhoQtd(url, param) {
    var pars = 'ajax=' + param;
    
    for (i = 0; i < 30000; i++) {} // funcao bolha
    
    var myAjax = new Ajax.Updater('carrinho_total',
                                  url,
                                  {
                                      method: 'get',
                                      parameters: pars
                                  }
                                  );
}







/**
 * ============================================================== *
 * passo 1 carrinho   -   passo 1 carrinho   -   passo 1 carrinho *
 * ============================================================== *
*/

/**
 * Remove um determinado produto do carrinho de compras
 * para o passo 1.
*/
function removerProduto(url, produto_id) {
    var pars  = 'produto_id=' + produto_id;
    var myDiv = 'carrinho_item_' + produto_id;
    var myAjax = new Ajax.Request(url, {
                                  method: 'get',
                                  onSuccess: function(transport) {
                                                  $(myDiv).style.visibility = 'hidden';
                                                  $(myDiv).style.overflow   = 'hidden';
                                                  $(myDiv).style.height     = '0px';
                                              }
                                  });
}

/**
 * Esta funcao valida a quantidade inserida no passo 1
 * do carrinho de compras
*/
function validaQuantidade(id, url, produto_id) {
    var re = new RegExp("^[1-9][0-9]*$");
    var m  = re.exec($(id).value);
    
    if (m == null) {
        $(id).value = '1';
        actualizaSubTotalCarrinho(url, produto_id, $(id).value);
        return true;
    } else {
        actualizaSubTotalCarrinho(url, produto_id, $(id).value);
        return true;
    }
}

/**
 * Funcao que actualiza o total da encomenda
 * para o passo 1
*/
function actualizaTotal(url) {
    var myDiv = 'total_right';
    
    for (i = 0; i < 30000; i++) {} // funcao bolha
    
    var myAjax = new Ajax.Updater(myDiv,
                                  url,
                                  {
                                      method: 'get'
                                  }
                                  );
}

/**
 * Actualiza o valor do subtotal da linha da encomenda
 * que eh calculado pela multiplicacao da (qtd * valor_unitario)
*/
function actualizaSubTotalCarrinho(url, produto_id, qtd) {
    var pars  = 'quantidade=' + qtd;
    var myDiv = 'carrinho_sub_total_' + produto_id;
    
    for (i = 0; i < 30000; i++) {} // funcao bolha
    
    var myAjax = new Ajax.Updater(myDiv,
                                  url,
                                  {
                                      method: 'get',
                                      parameters: pars
                                  }
                                  );
}

/**
 * ================================================================ *
 * Login / Registo    -   Utilizador Carrinho   -   Login / Registo *
 * ================================================================ *
*/

/**
 * Efectua o login do utilizador.
*/
function doLoginAjax(url, username, password) {
    var pars  = 'username=' + username + '&password=' + password;
    var myDiv = 'carrinho_forms';
    
    for (i = 0; i < 30000; i++) {} // funcao bolha
    
    var myAjax = new Ajax.Updater(myDiv,
                                  url,
                                  {
                                      method: 'get',
                                      parameters: pars
                                  }
                                  );
}

/**
 * Efectua o registo do utilizador
*/
function doRegistoAjax(url, nome, email, username, password) {
    var pars  = 'nome=' + nome + '&email=' + email + '&username=' + username + '&password=' + password;
    var myDiv = 'carrinho_forms';
    
    for (i = 0; i < 30000; i++) {} // funcao bolha
    
    var myAjax = new Ajax.Updater(myDiv,
                                  url,
                                  {
                                      method: 'get',
                                      parameters: pars
                                  }
                                  );
}

/**
 * Verifica se o username ja existe na base de dados
*/
function checkUserAjax(url, username) {
    var pars  = 'username=' + username;
    var myDiv = 'carrinho_registo_username_resposta';
    
    for (i = 0; i < 30000; i++) {} // funcao bolha
    
    var myAjax = new Ajax.Updater(myDiv,
                                  url,
                                  {
                                      method: 'get',
                                      parameters: pars
                                  }
                                  );
}

/**
 * Valida o e-mail introduzido pelo utilizador
*/
function carrinhoValidaEmail(email) {
    var re = new RegExp("^[a-z0-9\._-]+@+[a-z0-9\._-]+\.+[a-z]{2,3}$");
    var m = re.exec(email);
    
    if (m == null) {
        $('carrinho_registo_email_resposta').innerHTML = '<img src="/media/images/icon_false.gif" border="0" />&nbsp;O e-mail fornecido n&atilde;o &eacute; v&aacute;lido.';
        return false;
    } else {
        $('carrinho_registo_email_resposta').innerHTML = '<img src="/media/images/icon_true.gif" border="0" />&nbsp;O e-mail fornecido &eacute; v&aacute;lido.';
        return true;
    }
}

function abrirProximoPasso(url) {
    var pars  = 'pars=1';
    var myDiv = 'carrinho_go_on';
    
    for (i = 0; i < 30000; i++) {} // funcao bolha
    
    var myAjax = new Ajax.Updater(myDiv,
                                  url,
                                  {
                                      method: 'get',
                                      parameters: pars
                                  }
                                  );
}

/**
 * ====================================================================== *
 * UTILIZADOR MORADAS   -    UTILIZADOR MORADAS   -    UTILIZADOR MORADAS *
 * ====================================================================== *
*/

/**
 * Mostra os formulario para alteracao das moradas do utilizador
*/
function showFormAddresses(div, url) {
    var pars = 'param=1';
    
    for (i = 0; i < 30000; i++) {} // funcao bolha
    
    var myAjax = new Ajax.Updater(div,
                                  url,
                                  {
                                      method: 'get',
                                      parameters: pars
                                  }
                                  );
}

/**
 * Grava as alteracoes na base de dados
*/
function setAddresses(div, url, morada, codigo, localidade) {
    var pars = 'morada=' + morada + '&codigo=' + codigo + '&localidade=' + localidade;
    
    for (i = 0; i < 30000; i++) {} // funcao bolha
    
    var myAjax = new Ajax.Updater(div,
                                  url,
                                  {
                                      method: 'get',
                                      parameters: pars
                                  }
                                  );
    
}

/**
 * =================================================================== *
 * OPCOES PAGAMENTO / TRANSPORTE    -    OPCOES PAGAMENTO / TRANSPORTE *
 * =================================================================== *
*/

function setOpcao(url, opcao) {
    var pars  = 'opcao=' + opcao;
    
    for (i = 0; i < 30000; i++) {} // funcao bolha
    
    var myAjax = new Ajax.Request(url, {
                                  method: 'get',
                                  parameters: pars
                                  });
}

function verificaValoresDasOpcoes() {
    
    if (($('carrinho_opcao_pagamento').value == '') && ($('carrinho_tipo_transporte').value == '')) {
        $('carrinho_seleccionar_opcoes').innerHTML = '<img src="/media/images/icon_false.gif" border="0" />&nbsp;Por favor, seleccione as op&ccedil;&otilde;es acima.';
        return false;
    } else if ($('carrinho_opcao_pagamento').value == '') {
        $('carrinho_seleccionar_opcoes').innerHTML = '<img src="/media/images/icon_false.gif" border="0" />&nbsp;Por favor, seleccione a op&ccedil;&atilde;o de pagamento.';
        return false;
    } else if ($('carrinho_tipo_transporte').value == '') {
        $('carrinho_seleccionar_opcoes').innerHTML = '<img src="/media/images/icon_false.gif" border="0" />&nbsp;Por favor, seleccione o tipo de transporte.';
        return false;
    }
    
    return true;
    
}

function changeTaxValue(url, div) {
    var pars = 'pars=1';
    
    for (i = 0; i < 30000; i++) {} // funcao bolha
    
    var myAjax = new Ajax.Updater(div,
                                  url,
                                  {
                                      method: 'get',
                                      parameters: pars
                                  }
                                  );
}


