// logic_buscaProduto.js

var produtoDetalheWindowHandler = null;

// Abre popup sem deixar abrir duas vezes. (na segunda vez ganha foco)
function popupProdutoDetalhe(url)
{
     if( produtoDetalheWindowHandler==null || produtoDetalheWindowHandler.closed==true){
     	produtoDetalheWindowHandler = popjanResizable(url, "produtoDetalhe", 550, 350);
	 }else{
	 	produtoDetalheWindowHandler.focus();
	 }
}

function validaQuantidade(objQtd){
		if(!isEmpty(objQtd,"")){
			if(isNaN(objQtd.value)){
				return false;
			}
			else{
				if(objQtd.value < 1){
					return false;
				}
				return true;
			}
		}else{
			return false;
		}
}

function abrirBuscaRapida(context){
	var frm = document.forms['buscaProdutoForm'];
	
	// Campos obrigatorios 
	var objPartNumberOuDescricao = frm.partNumberOuDescricao;

		if(!isEmpty(objPartNumberOuDescricao, "Favor digitar no mínimo 2 caracteres para efetuar a busca por part-number ou palavra chave.")){
			if(objPartNumberOuDescricao.value.length<2){
				alert("Favor digitar no mínimo 2 caracteres para efetuar a busca por part-number ou palavra chave.");
			}
			else{
				popupBuscaAvancada(context+'/'+'BuscaProduto.do?method=buscaRapidaProduto&partNumberOuDescricao='+objPartNumberOuDescricao.value,'buscaProduto',600,400);
			}
		}
		
}

function validaDadosBuscaRapida(){
	var frm = document.forms['buscaProdutoForm'][0];
	
	// Campos obrigatorios 
	var objPartNumberOuDescricao = frm.partNumberOuDescricao;
	
		if(isEmpty(objPartNumberOuDescricao, "Favor digitar no mínimo 2 caracteres para efetuar a busca por part-number ou palavra chave.")){
			return false;
		}
		if(objPartNumberOuDescricao.value.length<2){
			alert("Favor digitar no mínimo 2 caracteres para efetuar a busca por part-number ou palavra chave.");
			return false;
		}
		
	frm.method.value="buscaRapidaProduto";
}

function validaDadosBuscaRapidaTop(){
	var frm = document.forms['buscaProdutoForm'];
	
	// Campos obrigatorios 
	var objPartNumberOuDescricao = frm.partNumberOuDescricao;
	
		if(isEmpty(objPartNumberOuDescricao, "Favor digitar no mínimo 2 caracteres para efetuar a busca por part-number ou palavra chave.")){
			return false;
		}
		if(objPartNumberOuDescricao.value.length<2){
			alert("Favor digitar no mínimo 2 caracteres para efetuar a busca por part-number ou palavra chave.");
			return false;
		}
		
	frm.method.value="buscaRapidaProduto";
	frm.submit();
}

function validaBuscaPorLote(){
	var frm = document.forms['buscaProdutoForm'][1];
	
	// Campos obrigatorios 
	var objListaPartNumber = frm.listaPartNumber;
	
		if(isEmpty(objListaPartNumber, "Favor digitar no mínimo 2 caracteres para efetuar a busca por part-number.")){
			return false;
		}
	frm.method.value="buscaPorLoteProduto";
}		

function chamaBuscaEstoque(link, index){

  var frm = document.forms['buscaProdutoForm'];
  var objQtdProdutos = getAllElementsAsArray( frm.qtdProdutos );
  var linkQtd = "&qtdProduto=";
  if( !isEmpty(objQtdProdutos[index],"") ){
	if(validaQuantidade(objQtdProdutos[index])){
		linkQtd = linkQtd + objQtdProdutos[index].value;
		frm.target="buscaProduto";
		frm.action=link+linkQtd;
		frm.submit();
	}else{
		alert("A quantidade informada não é válida. Por favor, verifique.");
	}
  }else{
	alert("A quantidade informada não é válida. Por favor, verifique.");
  }
}

/********************************************
Estoque
*********************************************/
function validaDadosEstoque(){
	var frm = document.forms['buscaProdutoForm'];

		var objQtdProduto = frm.qtdProduto;

		if(!isEmpty(objQtdProduto,"A quantidade não pode estar vazia")){
			if(isNaN(objQtdProduto.value)){
				alert ("A quantidade não pode conter valores não numéricos.");
				objQtdProduto.focus();
				return false;
			}
			else{
				if(objQtdProduto.value < 0){
					alert ("A quantidade não pode ser negativa.");
					objQtdProduto.focus();
					return false;
				}			
			}
		}else{
			return false;
		}
		
	frm.addProduto.value = "";		
	frm.method.value="preparaBuscaEstoque";
	frm.submit();
}

function validaQuantidadeNegativa(objQtd){
		if(!isEmpty(objQtd,"")){
			if(isNaN(objQtd.value)){
				return false;
			}
			else{
				if(objQtd.value < 0){
					return false;
				}
				return true;
			}
		}else{
			return false;
		}
}

function validaDadosAdicionar(){
	var frm = document.forms['buscaProdutoForm'];
    
    /* cod de produtos */
    var objCodProdutos = getAllElementsAsArray( frm.codProdutos );
    /* qtde de produtos */
    var objQtdProdutos = getAllElementsAsArray( frm.qtdProdutos );
    
    var valorValido = false;
    
    for(var i=0; i<objQtdProdutos.length; i++){
	    if(objQtdProdutos[i].value>0){
	    	valorValido = true;
	    }
      	if(!validaQuantidadeNegativa(objQtdProdutos[i])){
			alert("A quantidade informada não é válida. Por favor, verifique.");
			return;
      	}
    }
    if(valorValido){

		var arrayCodProduto = new Array();
		var arrayQtdeProduto = new Array();		

		for(var i=0; i<objCodProdutos.length; i++){
			arrayCodProduto[i] = objCodProdutos[i].value;
			arrayQtdeProduto[i] = objQtdProdutos[i].value;
		}
		
		parent.opener.buscaProduto_adicionaItens( window, getAllElementsAsArray(arrayCodProduto), getAllElementsAsArray(arrayQtdeProduto) );

	}else{
		alert("A quantidade informada não é válida. Por favor, verifique.");
		return;
	}
}


/* Monta a url colocando todos os codProdutos e a qtdeProdutos 
 * Parametros: passar arrays objeto input.
 */
function montaUrlCodQtdeProduto(arrayCodProduto, arrayQtdeProduto){

   var url='';
   
   for( var i=0; i<arrayCodProduto.length; i++ ){
   
   	if( arrayQtdeProduto[i]>0 ){
   
      url +=  'codProdutos=' + arrayCodProduto[i];
      url +=  '&qtdProdutos=' + arrayQtdeProduto[i];      
   
      /* Enquanto nao for o ultimo... */
      if( i < arrayCodProduto.length - 1 ){
      	url += '&';
      }
      
    }
   }
   
   return url;

}


function validaDadosAdicionarCatalogo(){
	var frm = document.forms['buscaProdutoForm'];
	// Lista de produtos, pegar a quantidade de cada e verificar

    /* cod de produtos */
    var objCodProdutos = getAllElementsAsArray( frm.codProdutos );
    var objQtdProdutos = getAllElementsAsArray( frm.qtdProdutos );

    var valorValido = false;

    for(var i=0; i<objQtdProdutos.length; i++){
	    if(objQtdProdutos[i].value>0){
	    	valorValido = true;
	    }
      	if(!validaQuantidadeNegativa(objQtdProdutos[i])){
			alert("A quantidade informada não é válida. Por favor, verifique.");
			return;
      	}
    }
    if(valorValido){

		var arrayCodProduto = new Array();
		var arrayQtdeProduto = new Array();		

		for(var i=0; i<objCodProdutos.length; i++){
			arrayCodProduto[i] = objCodProdutos[i].value;
			arrayQtdeProduto[i] = objQtdProdutos[i].value;
		}

		parent.opener.buscaProduto_adicionaItens( window, getAllElementsAsArray(arrayCodProduto), getAllElementsAsArray(arrayQtdeProduto) );

	}else{
		alert("A quantidade informada não é válida. Por favor, verifique.");
		return;
	}
}

function validaDadosAdicionarDetalhe(){

	var frm = document.forms['buscaProdutoForm'];

    var objCodProduto = frm.codProduto;
    var objQtdProduto = frm.qtdProduto;

	if(!isEmpty(objQtdProduto,"A quantidade não pode estar vazia")){
		if(isNaN(objQtdProduto.value)){
			alert ("A quantidade não pode conter valores não numéricos.");
			objQtdProduto.focus();
			return;
		}
		else{
			if(objQtdProduto.value < 1){
				alert ("A quantidade não pode ser menor que 1.");
				objQtdProduto.focus();
				return;
			}			
		}
	}else{
		return;
	}


		var arrayCodProduto = new Array();
		var arrayQtdeProduto = new Array();		

		arrayCodProduto[0] = objCodProduto.value;
		arrayQtdeProduto[0] = objQtdProduto.value;

		parent.opener.buscaProduto_adicionaItens( window, getAllElementsAsArray(arrayCodProduto), getAllElementsAsArray(arrayQtdeProduto) );

}

function selectText(index){
	var frm = document.forms['buscaProdutoForm'];
    var objQtdProdutos = getAllElementsAsArray( frm.qtdProdutos );
    
	objQtdProdutos[index].select();
	return;				
}
	    	
function infoTemFilho(index){
	var frm = document.forms['buscaProdutoForm'];
    var objComposicao = getAllElementsAsArray( frm.composicao );

	var composicao = objComposicao[index].value;
   	if(composicao=='PAI')
		alert("IMPORTANTE : este produto necessita de configuração \n para que todos os itens complementares sejam incluidos. \n No caso de alguns produtos (Ex. roteadores Cisco) \n  o pedido NÃO SERÁ ACEITO caso o software correspondente não seja incluido.");
	return;				
}

function info(in_configuravel, in_obrigatoria){
   	if(in_configuravel){
		alert("IMPORTANTE : este produto necessita de configuração \n para que todos os itens complementares sejam incluidos. \n No caso de alguns produtos (Ex. roteadores Cisco) \n  o pedido NÃO SERÁ ACEITO caso o software correspondente não seja incluido.");
	}
   	if(in_obrigatoria){
		alert("IMPORTANTE : este produto possui um outro atrelado a ele que será adicionado automaticamente no pedido.");
	}
	return;				
}

function selectTextProduto(){
	document.forms['buscaProdutoForm'].qtdProduto.select();
}


function infoTemFilhoProduto(){
	var frm = document.forms['buscaProdutoForm'];

	var composicao = frm.composicao.value;
   	if(composicao=='PAI')
		alert("IMPORTANTE : este produto necessita de configuração \n para que todos os itens complementares sejam incluidos. \n No caso de alguns produtos (Ex. roteadores Cisco) \n  o pedido NÃO SERÁ ACEITO caso o software correspondente não seja incluido.");
	return;				
}

