var tempJSON  = '' ;
var arrCriteriaSecondaryValues = [];
var arrCriteriaSecondaryIndexes = [];
var indexTableauCritere = 0 ;
var arrTypes = ['idDest','idCie','idDuree','idBudget','idDates'];


function addCriteria(  cri , val ){    

    $('#totalCroisieres').addClass('waiting');
    $('#totalCroisieres').html('');

    if( val != false ) {
        // critères secondaires sélectionnés
        indexTableauCritere = ( $.inArray(cri, arrCriteriaSecondaryIndexes) != -1  )
        ?
        $.inArray(cri, arrCriteriaSecondaryIndexes)
        :
        arrCriteriaSecondaryValues.length
        ;
        arrCriteriaSecondaryIndexes[indexTableauCritere] = cri;
        arrCriteriaSecondaryValues[indexTableauCritere] = val;        
    } else {
        idx = $.inArray ( cri , arrCriteriaSecondaryIndexes ) ;
        if( idx != -1 ){
            arrCriteriaSecondaryIndexes = unset( arrCriteriaSecondaryIndexes , idx );
            arrCriteriaSecondaryValues  = unset( arrCriteriaSecondaryValues , idx );
        }
    }
    refreshCriteria ( ) ;
}

function setArrResults ( ) {    
    var arrResults = new Array();
    // el = <ID_CROISIERE> :  <CRITERE1>, <CRITERE2>…
    // idx= idCie, idDuree…
    if( arrCriteriaSecondaryIndexes.length ){
        $.each( arrCriteriaSecondaryIndexes , function( idxCri , elCri ) {
            $.each ( tempJSON[elCri] , function ( idCroisiere , el ) {
                // est ce que le idx en cours existe dans le tableau critère secondaire ?
                arr = getMatchingCroisieres ( el ,  arrCriteriaSecondaryValues[idxCri] , idCroisiere  ) ;
                $.merge( arrResults , arr  ) ;
            });
        });
    } else {
        arrResults = getAllCroisieres ( ) ;
    }    
    return arrResults;
}





function getMatchingCroisieres ( el , val , idCroisiere  ) {
    temp = new Array() ;

    $.each ( el , function ( idx , currentEl ) {
        temp.push ( idCroisiere ) ;
        /*if( $.isArray ( currentEl  ) ) {
            if( $.inArray ( val , currentEl ) != -1){
                temp.push ( idCroisiere ) ;
            }
        }else if( ( currentEl == val) ) {
            temp.push(idCroisiere);
        }else {
            console.log( 'différence entre ');
            console.log( currentEl );
            console.log( val );
            console.log( idCroisiere );
        }*/
    });
    return temp ;
}


/**
 * Comment
 */
function getAllCroisieres() {
    temp = new Array() ;
    $.each( myJSON , function( idx , currentEl ){
        $.each( currentEl , function( idx ){
            if( $.inArray(idx, temp) == -1 ) {
                temp.push(idx);
            }
        })
    });
    return temp;
}



function displayCruises( arr ) {
    $('.liste > .item').fadeOut().css({
        display: 'none'
    });    
    $.each(arr ,function( idx , el ){
        divId = $('#divCruise'+el) ;
        divId.css('display','block').fadeIn ( ) ;
    });
    $('#totalCroisieres').removeClass('waiting');
    return false;
}


function refreshCriteria ( ) {
    var targetDiv = $('#filtresDiv');
    var sUrl =  "/?zone=liste&promo&refreshAjax&idPart=" + $(document).getUrlParam('idPart');
    sUrl +=  "&idAgv=" + $(document).getUrlParam('idAgv');

    if( arrCriteriaPrimary ) {
        sUrl =  "/?zone=liste&refreshAjax&main=" + arrCriteriaPrimary + "&" + arrCriteriaPrimary + "=" + arrCriteriaPrimaryValue + '&idPart=' + $(document).getUrlParam('idPart') + '&idAgv=' +$(document).getUrlParam('idAgv') ;
    }
    
    // on parcourt tous les critères secondaires déjà définis
    $.each( arrCriteriaSecondaryIndexes , function ( idx , el ) {
        if( el && el != false ){
            idx = $.inArray(el, arrCriteriaSecondaryIndexes);
            sUrl += '&' + el + '=' + arrCriteriaSecondaryValues[idx]  ;
        }
    });

    $.ajax({
        type: "GET",
        url: sUrl,
        async: false,
        request: function(){
            targetDiv.html('');
        },
        success: function(msg){
            targetDiv.html ( msg ) ;
            displayCruises ( setArrResults ( ) )
        }
    });
    return  ;
}






$(document).ready(function() {

    $('#totalCroisieres').removeClass('waiting');

});
