AjaxPlugins.Search = {

    handleResponse: function(pluginOutput) {
  
        if (pluginOutput.htmlCode.Communes_init) {
            $('search_communes_div').innerHTML = pluginOutput.htmlCode.Communes_init;
            $('search_config').value = $('s_main').value;
            $('search_communes_div').show();
        }

        /*if (pluginOutput.htmlCode.Communes) {
            $('search_results_div').innerHTML = pluginOutput.htmlCode.Communes;
        }*/
	
        if (pluginOutput.htmlCode.communes) {
            $('search_results_div').innerHTML = pluginOutput.htmlCode.communes;
        }

        if (pluginOutput.htmlCode.localitesinit) {
            $('search_localites_init_div').innerHTML = pluginOutput.htmlCode.localitesinit;
            $('search_config').value = $('s_main').value;
            $('search_localites_div').show();
        }
        if (pluginOutput.htmlCode.adresses_init_loc) {
            $('search_adresse_localites_init_div').innerHTML = pluginOutput.htmlCode.adresses_init_loc;
            $('search_config').value = $('s_main').value;
            $('search_adresses_recenter_div').show();
        }
        if (pluginOutput.htmlCode.adresses_init_voie) {
            $('search_adresse_voie_init_div').innerHTML = pluginOutput.htmlCode.adresses_init_voie;
            $('search_config').value = $('s_main').value;
        }

        if (pluginOutput.htmlCode.parcelles_init_villes){
            $('search_parcelles_init_villes_div').innerHTML = pluginOutput.htmlCode.parcelles_init_villes;
	    $('search_config').value = $('s_main').value;
	}

        if (pluginOutput.htmlCode.adresses_init_no_entree) {
            $('search_adresse_no_entree_init_div').innerHTML = pluginOutput.htmlCode.adresses_init_no_entree;
            $('search_config').value = $('s_main').value;
        }

        if (pluginOutput.htmlCode.localites)
            $('search_results_div').innerHTML = pluginOutput.htmlCode.localites;

        if (pluginOutput.htmlCode.adresses_recenter)
            $('search_results_div').innerHTML = pluginOutput.htmlCode.adresses_recenter;

        if (pluginOutput.htmlCode.parcelles)
            $('search_results_div').innerHTML = pluginOutput.htmlCode.parcelles;

        recenterOne();
    }  
};

function recenterOne() {

    id = $('search_recenter_id');
    if (typeof(id) != 'undefined' && id.value != '') {
        $('search_recenter_id').value =id.value.replace(/(^\s*)|(\s*$)/g,"");
        recenter(id.value.replace(/(^\s*)|(\s*$)/g,""));
    }
}


/*
* Search plugin's Actions
*/

AjaxPlugins.Search.Actions = {};

AjaxPlugins.Search.Actions.DoIt = {

    buildPostRequest: function(argObject) {
        return AjaxHandler.buildPostRequest();
    }
};

function search() {

    if($('search_config').value == 'adresses_recenter') {
        if($('guided_bt').className == 'active_sub_folder'){
          if($('search_localite').value==''){
            alert('Veuillez choisir une localité.');
            return;
          }
          if($('search_voie').value==''){
            alert('Veuillez choisir une rue.');
            return;
          }
          if($('search_no_entree').value==''){
            alert('Veuillez indiquer un numéro de rue.');
            return;
          }
        }

        if($('free_bt').className == 'active_sub_folder'){
            if ($('search_voie').value == ''
            && $('search_codepost_4').value == ''
            && $('search_localite').value == '') {
                alert($('msg_adresses').value);
                return;
            }
            $('search_number').value = 20;
        }
    }else if($('search_config').value == 'communes'){
        if($('search_commune_select').value==''){
	  alert('Veuillez choisir une commune.');
	  return;
	} 
        $('search_number').value = 20;
    }else if($('search_config').value  == 'parcelles'){
        if($('search_villes_select').value=='null'){
	  alert('Veuillez choisir une commune.');
	  return;
	}
	if($('search_parcelles').value==''){
	  alert('Veuillez indiquer un numéro de parcelle.');
	  return;
	}
        $('search_number').value = 30;
    }
    
    if($('search_config').value == 'EGID') {
        if(isNaN(parseInt($('search_adr_egid').value))) {
            alert($('msg_EGID').value);
            return;
        }
    }
    
    CartoWeb.trigger('Search.DoIt');
    $('search_number').value = 10000;
}

function order(column) {

    if (column != $('search_sort_column').value) {
        $('search_sort_column').value = column;
        $('search_sort_direction').value = 'asc';
    } else {
        if ($('search_sort_direction').value == 'asc') {
            $('search_sort_direction').value = 'desc';
        } else {
            $('search_sort_direction').value = 'asc';
        }
    }
    $('search_page').value = 1;
    search();
}

function recenter(id) {

    $('show_crosshair').value = '1';

    if ($('search_config').value == 'adresses_recenter'){
        $('recenter_scale').value = 5000;
	$('id_recenter_ids').value = id;
        $('id_recenter_layer').value = $('search_config').value;

        $('query_layer').value = $('search_config').value;
        $('query_hilight').value = 1;
        $('query_select').value = id;
	
        CartoWeb.trigger('Location.Recenter');

        $('query_layer').value = '';
        $('query_hilight').value = '';
        $('query_select').value = '';
	    

        $('id_recenter_ids').value = '';
        $('id_recenter_layer').value = '';
    
    }else if($('search_config').value == 'parcelles'){
        $('id_recenter_ids').value = id;
	$('id_recenter_layer').value = $('search_config').value;
	
	$('query_layer').value = $('search_config').value;
	$('query_hilight').value = 1;
	$('query_select').value = id;
	
        CartoWeb.trigger('Location.Recenter');
	
        $('id_recenter_ids').value = '';
        $('id_recenter_layer').value = '';
	
	$('query_layer').value = '';
        $('query_hilight').value = '';
        $('query_select').value = '';
    } else {
        $('id_recenter_ids').value = id;
        $('id_recenter_layer').value = $('search_config').value;

	    CartoWeb.trigger('Location.Recenter');

        $('id_recenter_ids').value = '';    
        $('id_recenter_layer').value = '';
    }

	$('show_crosshair').value = '0';
}

function switchSearchType() {

    select = $('s_main');
    for (i = 0; i < select.options.length; i++) {
        option = select.options[i];
        $('search_' + option.value + '_div').hide();
    }
  
    if(select.value == 'parcelles'){ 
        $('search_parcelles_div').show();
    }
    if(select.value == 'communes'){ 
        $('search_communes_div').show();
    }
    if(select.value == 'adresses_recenter'){ 
        $('search_adresses_recenter_div').show();
    }
    
    $('search_sort_column').value = '';
    $('search_sort_direction').value = 'asc';
    $('search_config').value = select.value;
    $('search_results_div').innerHTML = '';

    if(select.value == 'parcelles') {
        initializeVille();
    }
    if(select.value == 'communes') {
        initializeCommune();
    }
    if(select.value == 'adresses_recenter') {
        // initializeAdresseLocalite();
    }
}

function initialize() {
    freeHTML =   $('basicSearch').innerHTML+'';
    guidedHTML =   $('guidedSearch').innerHTML+'';
    switchSearchType();
   
}    

function initializeCommune(){
    $('search_communes_div').innerHTML = '';
    var myinput = $('search_config');
    myinput.value = 'Communes_init';
    CartoWeb.trigger('Search.DoIt');
}

function initializeLocalite(){

    var myinput = $('search_config');
    myinput.value = 'localitesinit';
    CartoWeb.trigger('Search.DoIt');
}

function initializeAdresseLocalite(){
    $('search_adresse_voie_init_div').innerHTML = '';
    $('search_adresse_no_entree_init_div').innerHTML = '';
    var myinput = $('search_config');
    myinput.value = 'adresses_init_loc';
    CartoWeb.trigger('Search.DoIt');
}

function initializeAddresseRue() {

    $('search_adresse_no_entree_init_div').innerHTML = '';
    var myinput = $('search_config');
    myinput.value = 'adresses_init_voie';
    $('search_localite_init').value = $('search_localite').value;
    CartoWeb.trigger('Search.DoIt');
}

function initializeAddresseNum() {
    var myinput = $('search_config');
    myinput.value = 'adresses_init_no_entree';
    $('search_voie_init').value = $('search_voie').value;
    
    CartoWeb.trigger('Search.DoIt');
}

function initializeVille(){
    $('search_parcelles').value = '';
    $('search_parcelles_init_villes_div').innerHTML = '';
    var myinput = $('search_config');
    myinput.value = 'parcelles_init_villes';
    CartoWeb.trigger('Search.DoIt');
}

//just in case of mind style changing
/*function initializeCommune() {
    var myinput = $('search_config');
    myinput.value = 'communes';
    CartoWeb.trigger('Search.DoIt');
}*/

function changeSearchMode(mode) {

    if(mode == 'free') {
        $('search_results_div').innerHTML = '';
        $('free_bt').className = "active_sub_folder";
        $('guided_bt').className = "inactive_sub_folder";
        $('guidedSearch').innerHTML = '';
        $('basicSearch').innerHTML = freeHTML ;
       
    } else {
         $('search_results_div').innerHTML = '';
        $('guided_bt').className = "active_sub_folder";
        $('free_bt').className = "inactive_sub_folder";
        $('basicSearch').innerHTML = '';
        $('guidedSearch').innerHTML = guidedHTML;
        initializeAdresseLocalite();
               
    }

}

function blockSubmit(event) {
    if (event.type == "keypress") {
        if (event.keyCode == Event.KEY_RETURN) {
	    Event.stop(event);	
        }
    }
}

Event.observe(window, 'load', initialize, true);
