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

/**
 * Adiciona um produto ao carrinho de compras
*/

function hideOrShowScroller(){
	if ($('scrollable1')){
	    if ($('scrollable1').scrollHeight <= $('scrollable1').offsetHeight) {
	    	slider1.setValueBy(0);
			slider1.setDisabled();
			$('track1').hide();
		} else {
			slider1.setEnabled();
			$('track1').show();
		}
	}
}

function adicionarProduto(url, produto_id, qtd) {
    var pars = 'quantidade=' + qtd;
    
    var myAjax = new Ajax.Updater('add_response_qtd_' + produto_id,
                                  url,
                                  {
                                      method: 'get',
                                      onSuccess: function(transport) {
                                        setTimeout('hideOrShowScroller()', 50);
                                      },
                                      parameters: pars
                                  }
                                  );
}

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

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


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

function limparCarrinho() {
    var myAjax = new Ajax.Updater('carrinho_total2',
    							  "/loja/removeAllItems", {
                                  onSuccess: function(transport) {
                                    setTimeout('hideOrShowScroller()', 50);
                                  },
                                  method: 'get'
                                  });
    
}

/**
 * Remove um determinado produto do carrinho de compras
 * para o passo 1.
*/
function removerProduto(url, produto_id) {
//alert('123');
    var pars  = 'produto_id=' + produto_id;
    var myDiv = 'carrinho_item_' + produto_id;
    
    var myAjax = new Ajax.Request(url, {
                                  method: 'get',
                                  onSuccess: function(transport) {
                                  				  //var d = document.getElementById('carrinho_total2');
  												  //var olddiv = document.getElementById(myDiv);
  												  //d.removeChild(olddiv);
												  $(myDiv).style.display = 'none';
												  
		                                          setTimeout('hideOrShowScroller()', 50);
                                              }
                                  });
    
}

/**
 * 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_saco';
    
    for (i = 0; i < 30000; i++) {} // funcao bolha
    
    var myAjax = new Ajax.Updater(myDiv,
                                  url,
                                  {
                                      method: 'get'
                                  }
                                  );
}

function actualizaQtdTotal(url) {
    var myDiv = 'qtd_total';
    
    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
                                  }
                                  );
}

/**
*	Verifica se a morada de entrega foi preenchida
*/
function checkMoradaEntrega(){
	var url = '/loja/checkMoradaEntrega';
	var pars = '';
	var myAjax = new Ajax.Request(url, {
					method: 'post',
					onSuccess: function(transport) {
						 var result = transport.responseText;
						 if(result==1){
							$('carrinho_seleccionar_opcoes').style.display = 'none';
							window.location = '/loja/carrinho_step_two';
						 } else {
							$('carrinho_seleccionar_opcoes').style.display = '';
						 }
					 },
					 parameters: pars
				  }
			   );
}

   function isEmpty(s)
   {
      return ((s == null) || (s.length == 0))
   }

   function isDigit (c)
   {
      return ((c >= "0") && (c <= "9"))
   }


   function isInteger (s)
   {
      var i;

      if (isEmpty(s))
      if (isInteger.arguments.length == 1) return 0;
      else return (isInteger.arguments[1] == true);

      for (i = 0; i < s.length; i++)
      {
         var c = s.charAt(i);

         if (!isDigit(c)) return false;
      }
		if(s.length==9)
			return true;
		else
			return false;
   }


function check_num_contribuinte(div, url, morada, codigo, localidade, ncontribuinte) {
	if (isInteger($F('carrinho_utilizador_ncontribuinte'))) {
		$('aviso_num_contribuinte').style.display = 'none';
		setAddresses(div, url, morada, codigo, localidade,ncontribuinte);
	} else {
		$('aviso_num_contribuinte').style.display = '';
		$('carrinho_utilizador_ncontribuinte').style.border = "1px solid red";
	}
}

/**
 * Grava as alteracoes na base de dados
*/
function setAddresses(div, url, morada, codigo, localidade,ncontribuinte) {
    var pars = 'morada=' + morada + '&codigo=' + codigo + '&localidade=' + localidade + '&ncontribuinte=' + ncontribuinte ;
    
    for (i = 0; i < 30000; i++) {} // funcao bolha
    
    var myAjax = new Ajax.Updater(div,
                                  url,
                                  {
                                      method: 'get',
									  encoding: 'ISO-8859-1', //UTF-8
                                      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/error.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/error.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/error.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 < 80000; i++) {} // funcao bolha
    
    var myAjax = new Ajax.Updater(div,
                                  url,
                                  {
                                      method: 'get',
                                      parameters: pars
                                  }
                                  );
}



