// ------------------------
// FUNZIONI PERSONALIZZATE PER LA GESTIONE DEL MENù PRINCIPALE
// ------------------------



// imposto il contenuto della main form
function set_main_form(sch_type, sch_extra_value) 
{
	var sch_contratto = '';
	var tabb_name_values = new Object();
	tabb_name_values = ['vendita','affitto','full','simple','nuove_case','cessioni','vacanza','agenzie'];
	
	// controllo il valore di tabb_name
	if(!in_array(sch_type, tabb_name_values)) return false;
	
	// preparo dei valori in base alla ricerca da visualizzare >>>
	sch_categoria_gruppo = 'residenziale'
	sch_vacanza_type = '';
	
	if(sch_type == 'full') // espando la ricerca avanzata e mantengo la selezione fatta per i tipo di contratto
	{
		if($('sch_contratto') != null) sch_contratto = $('sch_contratto').value;
		if($('sch_categoria_gruppo') != null) sch_categoria_gruppo = $('sch_categoria_gruppo').value;
	}
	
	if(sch_type == 'simple') // riduco la ricerca avanzata e mantengo la selezione fatta per i tipo di contratto
	{
		sch_type = 'vendita';
		if($('sch_contratto_affitto') != null && $('sch_contratto_affitto').checked) sch_type = 'affitto';
	}
	
	if(sch_type == 'vendita' || sch_type == 'affitto')
	{
		var vacanza_type_values = new Object();
		vacanza_type_values = ['residenziale','commerciale'];
		if(!in_array(sch_extra_value, vacanza_type_values)) sch_extra_value = ''; else sch_categoria_gruppo = sch_extra_value;
		if($('sch_categoria_gruppo_residenziale') != null && $('sch_categoria_gruppo_residenziale').checked) sch_categoria_gruppo = 'residenziale';
		if($('sch_categoria_gruppo_commerciale') != null && $('sch_categoria_gruppo_commerciale').checked) sch_categoria_gruppo = 'commerciale';
	}
	
	if(sch_type == 'vacanza')
	{
		var vacanza_type_values = new Object();
		vacanza_type_values = ['montagna','mare','laghi','terme','altro'];
		if(!in_array(sch_extra_value, vacanza_type_values)) sch_extra_value = ''; else sch_vacanza_type = sch_extra_value; 
	}
	// preparo dei valori in base alla ricerca da visualizzare <<<
	
	// preparo i valori della query_string per ricaricare il form con ajax >>>
	// (li recupero dal form attuale, mantengo i dati se sono stati precompilati)

	if(sch_type == 'vendita') sch_contratto = 9;
	if(sch_type == 'affitto') sch_contratto = 10;
	
	var qs = 'sch_type='+sch_type;
	if(sch_contratto != '') qs += '&sch_contratto='+sch_contratto;
	if(sch_categoria_gruppo != '') qs += '&sch_categoria_gruppo='+sch_categoria_gruppo;
	if(sch_vacanza_type != '') qs += '&sch_vacanza_type='+sch_vacanza_type;
	if($('sch_agenzia') != null) qs += '&sch_agenzia='+$('sch_agenzia').value;
	if($('sch_provincia') != null) qs += '&sch_provincia='+$('sch_provincia').value;
	if($('sch_comune') != null) qs += '&sch_comune='+$('sch_comune').value;
	if($('sch_zona') != null) qs += '&sch_zona='+$('sch_zona').value;
	if($('sch_categoria') != null) qs += '&sch_categoria='+$('sch_categoria').value;
	if($('sch_euro_from') != null) qs += '&sch_euro_from='+$('sch_euro_from').value;
	if($('sch_euro_to') != null) qs += '&sch_euro_to='+$('sch_euro_to').value;
	
	// preparo i valori della query_string per ricaricare il form con ajax <<<
	
	// imposto il main menu
	if(sch_type != 'full') set_main_menu(sch_type); // se passo a ricerca full mantengo la 'linguetta' corrente (caso vendita o affitto) // modifica richiesta da ATP // Lorenzo 2010-10-28
	
	// svuoto il form e visualizzo il loader
	$('main_form').update('<div id="box_menu_form"></div><div class="loader"><img src="/data/images/mac_style.gif" /></div>');
	
	// carico il form con la visualizzazione richiesta
	ajaxpage('dyna_content_main_form.html?'+qs, 'main_form');
}



// imposto il main menu
// se non passo nessun valore disabilito tutte le tabb del menu 
function set_main_menu(sch_type)
{
	var tabb_name_values = new Object();
	tabb_name_values = ['vendita','affitto','nuove_case','cessioni','vacanza','agenzie'];
	if($('sch_agenzia') != null) tabb_name_values = ['vendita','affitto','vacanza'];
	
	// rimuovo il valore active da tutte le tabb del menù
	tabb_name_values.each(function(tabb_name) { $('main_menu_'+tabb_name).removeClassName("active"); });	
	
	// aggiungo il valore active nella tabb desiderata
	if(in_array(sch_type, tabb_name_values)) $('main_menu_'+sch_type).addClassName("active"); 
}



// imposto il menu della form 
function set_categoria_gruppo(name)
{
	var link_name_values = new Object();
	link_name_values = ['residenziale','commerciale'];
	
	// imposto il valore per il campo nascosto della form
	$('sch_categoria_gruppo').value = name;
	
	// rimuovo il valore active da tutti i link del menù
	link_name_values.each(function(link_name) { $('menu_form_'+link_name).removeClassName("active"); });	
	
	// aggingo il valore active per il link desiderato
	$('menu_form_'+name).addClassName("active");
}	



// aggiurno la combobox con la lista delle categorie in base alla selezione fatta
function update_categorie_combobox(name)
{
	ajaxpage('dyna_content.html?action=get_categorie_list&categorie_combo_class=fixed_width&categorie_combo_maxlength=100&categoria_gruppo='+name,'sch_categorie_combobox');
}






// ===========================================
// ===========================================


// from http://phpjs.org/functions/in_array:432
function in_array(needle, haystack, argStrict) 
{
    // Checks if the given value exists in the array  
    // 
    // version: 1008.1718
    // discuss at: http://phpjs.org/functions/in_array    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: vlado houba
    // +   input by: Billy
    // +   bugfixed by: Brett Zamir (http://brett-zamir.me)
    // *     example 1: in_array('van', ['Kevin', 'van', 'Zonneveld']);    // *     returns 1: true
    // *     example 2: in_array('vlado', {0: 'Kevin', vlado: 'van', 1: 'Zonneveld'});
    // *     returns 2: false
    // *     example 3: in_array(1, ['1', '2', '3']);
    // *     returns 3: true    // *     example 3: in_array(1, ['1', '2', '3'], false);
    // *     returns 3: true
    // *     example 4: in_array(1, ['1', '2', '3'], true);
    // *     returns 4: false
    
	var key = '', strict = !!argStrict; 
    if (strict) 
	{
        for (key in haystack) 
		{
            if (haystack[key] === needle) return true;
        }
    } 
	else 
	{
        for (key in haystack) 
		{
            if (haystack[key] == needle) return true;
        }
    }
    
	return false;
}
