/* Verifica se uma variavel existe */
function isset(variable)
{
    return(typeof(window[variable]) != 'undefined');
}

/* Funcao que muda a imagem principal */
function change_main_image(indice, cId)
{
    // muda as informacoes
    document.getElementById('nome').innerHTML = info[indice]['nome'];
    document.getElementById('ref').innerHTML = 'Ref.: ' + info[indice]['ref'];
    document.getElementById('botao-detalhes').onclick = function(){ openDetails(info[indice]['ref'], cId) }

    // muda a imagem
    document.getElementById('main_image').src = './image/product/' + cId + '/' + miniPhoto[indice]['name'];
    document.getElementById('main_image').width = mainPhoto[indice]['width'];
    document.getElementById('main_image').height = mainPhoto[indice]['height'];
    
    // muda a referencia no botao adicionar
    document.getElementById('botao-adicionar').onclick = function(){ addProduct(info[indice]['ref'], false) }
}

/* Funcao que muda as mini-fotos */
function change_mini_photos(type, collection, cId)
{
    // div que contem as mini fotos
    var lmf = document.getElementById('lista-mini-fotos');
    
    // limpa a div que contem as minifotos
    lmf.innerHTML = '';

    // variavel que guardara o conteudo a ser exibido na div 'lista-mini-fotos'
    var lmf_innerHTML = '';

    // classe da minifoto
    var miniPhotoClass = new Array();

    // exibe as mini fotos
    for( var i = 0; i < miniPhoto.length; i++ ){

        // separa os dados contidos na classe da minifoto (posicao 0: tipo, posicao 1: colecao)
        miniPhotoClass = miniPhoto[i]['class'].split("_");
//        alert(miniPhotoClass);

        // verifica se o tipo deve ser exibido
        if( (type > 0) && (miniPhotoClass[0] != type) ) continue;
        
        // verifica se a colecao deve ser exibida
        if( (collection > 0) && (miniPhotoClass[1] != collection) ) continue;
        
        // acrecenta a mini foto as que serao exibidas
        lmf_innerHTML += '<img src="./image/product/' + cId + '/' + miniPhoto[i]['name'] + '" width="' + miniPhoto[i]['width'] + '" height="' + miniPhoto[i]['height'] + '" onClick="change_main_image(' + i + ', ' + cId + ')" alt="" />';
    }
    
    // redefine o conteudo da div que contem as mini fotos
    lmf.innerHTML = lmf_innerHTML;
}

/* Funcao que abre a janela de detalhes */
function openDetails( ref, cId )
{
    detWin = open('./detalhes.php?ref=' + ref + '&c=' + cId, 'detalhes', 'width=500,height=500');
    detWin.focus();
}

/* Funcao para criar um objeto AJAX */
function createAjaxObject()
{
    // tenta criar um objeto ajax
    try {
        return new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch(e) {
        try {
            return new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch(ex) {
            try {
                return new XMLHttpRequest();
            }
            catch(exc) {
                alert("Esse browser não tem recursos para uso do Ajax");
                return null;
            }
        }
    }
}

/* Funcao para adicionar um pedido */
/* parametros:
 *   ref: referencia para o produto
 *   from_det: se a operacao foi chamada da janela dos detalhes
 */
function addProduct( ref, from_det )
{
    // tenta criar um otjeto ajax
    ajaxObj = createAjaxObject();

    // se tiver suporte ajax
    if(ajaxObj){

        // abre o arquivo
	    ajaxObj.open("POST", "./pedido-session.php", true);
        ajaxObj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

        ajaxObj.onreadystatechange = function() {

            // recebe a mensagem da pagina pre-pedido-session.php
            if( ajaxObj.readyState == 4 ) {
                if( ajaxObj.responseXML )
                    alert( ajaxObj.responseXML.getElementsByTagName("msg")[0].firstChild.nodeValue )
                else
                    // caso haja algum erro desconhecido
                    alert( 'Erro ao tentar adicionar o produto! Tente mais tarde por favor.' );

                // retorna o foco para a janela de detalhes (caso a operacao tenha sido chamada dela)

                if( from_det )
                    detWin.focus();
            }
        }

        // envia o filtro
        var params = "ref=" + ref;
        ajaxObj.send( params );
    }
    
    // caso o browser do usuario nao aceite ajax
    else { alert('O browser usado não suporta uma operação necessária para o total funcionamento deste site.') }
}

/* Funcao que verifica se pelo menos um dos checkboex esta selecionado */
/* Parametros:
 *   ch: array com as checkboxes a serem testadas
 */
function has_someone_checked( ch )
{
    for(i=0;i<ch.length;i++)
        if(ch[i].checked==true) return true;

    return false;
}

// verifica se a tecla enter/return foi pressionada e da um click no botao cujo id eh o segundo parametro
function wasEnterPress(evt, button)
{
    evt = (evt) ? evt : event;
    var caractere = (evt.which) ? evt.which : evt.keyCode;
    if( caractere == 13 ){
        button.click();
        return false;
    }
    return true;
}

