AjaxPlugins.Search = {

    handleResponse: function(pluginOutput) {
        if (pluginOutput.htmlCode.commune_commune) {
              $('search_commune_commune').innerHTML = pluginOutput.htmlCode.commune_commune;
        }
        if (pluginOutput.htmlCode.localite_localite) {
              $('search_localite_localite').innerHTML = pluginOutput.htmlCode.localite_localite;
        }
        if (pluginOutput.htmlCode.parcel_commune) {
              $('search_parcel_commune').innerHTML = pluginOutput.htmlCode.parcel_commune;
        }
        if (pluginOutput.htmlCode.building_commune) {
              $('search_building_commune').innerHTML = pluginOutput.htmlCode.building_commune;
        }
        if (pluginOutput.htmlCode.address_commune) {
		$('search_address_commune').innerHTML = pluginOutput.htmlCode.address_commune;
        }
        if (pluginOutput.htmlCode.address_street) {
            $('search_address_street').innerHTML = pluginOutput.htmlCode.address_street;
	    $('search_address_street').show();
        }
        if (pluginOutput.htmlCode.address_number) {
            $('search_address_number').innerHTML = pluginOutput.htmlCode.address_number;
	    $('search_address_number').show();
        }
        if (pluginOutput.htmlCode.address_guided) {
            $('search_results_div').innerHTML = pluginOutput.htmlCode.address_guided;
        }
        if (pluginOutput.htmlCode.address_keyword) {
            $('search_results_div').innerHTML = pluginOutput.htmlCode.address_keyword;
        }
        if (pluginOutput.htmlCode.street_keyword) {
            $('search_results_div').innerHTML = pluginOutput.htmlCode.street_keyword;
        }
        if (pluginOutput.htmlCode.commune) {
	    $('search_results_div').innerHTML = pluginOutput.htmlCode.commune;
        }
        if (pluginOutput.htmlCode.localite) {
	    $('search_results_div').innerHTML = pluginOutput.htmlCode.localite;
        }
        if (pluginOutput.htmlCode.parcel) {
            $('search_results_div').innerHTML = pluginOutput.htmlCode.parcel;
        }
        if (pluginOutput.htmlCode.building) {
            $('search_results_div').innerHTML = pluginOutput.htmlCode.building;
        }
        if (pluginOutput.htmlCode.egid) {
            $('search_results_div').innerHTML = pluginOutput.htmlCode.egid;
        }
        if (pluginOutput.htmlCode.localname) {
            $('search_results_div').innerHTML = pluginOutput.htmlCode.localname;
        }
        if (pluginOutput.htmlCode.localname_recenter) {
            $('search_results_div').innerHTML = pluginOutput.htmlCode.localname_recenter;
        }
  
        recenterOne();
    }  
};

function recenterOne() {

    id = $('search_recenter_id');

    if (id != null && typeof(id) != 'undefined' && id.value != '') {
        recenter(id.value);
    }
}


/*
* Search plugin's Actions
*/

AjaxPlugins.Search.Actions = {};

AjaxPlugins.Search.Actions.DoIt = {

    buildPostRequest: function(argObject) {
        return AjaxHandler.buildPostRequest();
    }
};

function search() {
    
    CartoWeb.trigger('Search.DoIt');
}

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';
	
	xy = id.split(',');
        $('recenter_x').value = xy[1];
        $('recenter_y').value = xy[0];
        
	if (($('search_localisation').value)=="parcel") {
		$('recenter_scale').value = 2000;	
	} else if (($('search_localisation').value)=="building") {
		$('recenter_scale').value = 2000;	
	} else if (($('search_localisation').value)=="address_keyword") {
		$('recenter_scale').value = 2000;	
	} else if (($('search_localisation').value)=="street_keyword") {
		$('recenter_scale').value = 5000;	
	} else if (($('search_localisation').value)=="address_guided") {
		$('recenter_scale').value = 2000;	
	} else if (($('search_localisation').value)=="egid") {
		$('recenter_scale').value = 2000;	
	} else if (($('search_localisation').value)=="localname") {
		$('recenter_scale').value = 5000;	
	} else if (($('search_localisation').value)=="localite") {
		$('recenter_scale').value = 50000;	
	} else if (($('search_localisation').value)=="commune") {
		$('recenter_scale').value = 50000;	
		if (document.getElementById("search_commune_commune_select").value==72) {
			$('recenter_scale').value = 200000;	
		}
	} else {
		$('recenter_scale').value = 2000;	
	}
	
	$('recenter_doit').value = '1';

	CartoWeb.trigger('Location.Recenter');

        $('recenter_x').value = '';
        $('recenter_y').value = '';
        $('recenter_scale').value = '';
        $('recenter_doit').value = '0';

	$('show_crosshair').value = '0';
}

function switchSearch() {

    select = $('search_localisation');
    for (i = 0; i < select.options.length; i++) {
        option = select.options[i];
	if (option.value != 'none') {
          $('search_' + option.value + '_div').hide();
	}
    }

    if ($('search_localisation').value == 'none') {
	$('do_search').hide();
    } else {
        $('search_' + select.value + '_div').show();
	if ((($('search_localisation').value != 'coord') && ($('search_localisation').value != 'commune') && ($('search_localisation').value != 'localite')) && ($('search_localisation').value != 'address_guided')){
	  $('do_search').show();
	}else{
	  $('do_search').hide();
	}
    }
  
    $('search_sort_column').value = '';
    $('search_sort_direction').value = 'asc';
    $('search_config').value = select.value;
    $('search_results_div').innerHTML = '';

    if ($('search_localisation').value == 'commune') {
	$('search_config').value = 'commune_commune';
	CartoWeb.trigger('Search.DoIt');
    }
    if ($('search_localisation').value == 'localite') {
	$('search_config').value = 'localite_localite';
	CartoWeb.trigger('Search.DoIt');
    }
    if ($('search_localisation').value == 'parcel') {
	$('search_config').value = 'parcel_commune';
	CartoWeb.trigger('Search.DoIt');
    }
    if ($('search_localisation').value == 'building') {
	$('search_config').value = 'building_commune';
	CartoWeb.trigger('Search.DoIt');
    }
    if ($('search_localisation').value == 'address_guided') {
	$('search_config').value = 'address_commune';
	$('search_address_street').hide();
	$('search_address_number').hide();
	CartoWeb.trigger('Search.DoIt');
    }
    
}

function search() {

	$('search_number').value = 10;
 	
	if ($('search_localisation').value == 'parcel') {
		$('search_config').value = 'parcel';
		CartoWeb.trigger('Search.DoIt');
	}else if ($('search_localisation').value == 'commune'){
		$('search_config').value = 'commune';
		CartoWeb.trigger('Search.DoIt');
	}else if ($('search_localisation').value == 'localite'){
		$('search_config').value = 'localite';
		CartoWeb.trigger('Search.DoIt');
	}else if ($('search_localisation').value == 'building'){
		$('search_config').value = 'building';
		CartoWeb.trigger('Search.DoIt');
	}else if ($('search_localisation').value == 'egid'){
		$('search_config').value = 'egid';
		CartoWeb.trigger('Search.DoIt');
	}else if ($('search_localisation').value == 'address_guided'){
		$('search_config').value = 'address_guided';
		CartoWeb.trigger('Search.DoIt');
	}else if ($('search_localisation').value == 'address_keyword'){
		$('search_config').value = 'address_keyword';
		CartoWeb.trigger('Search.DoIt');
	}else if ($('search_localisation').value == 'street_keyword'){
		$('search_config').value = 'street_keyword';
		CartoWeb.trigger('Search.DoIt');
	}else if ($('search_localisation').value == 'localname'){
		$('search_config').value = 'localname';
		CartoWeb.trigger('Search.DoIt');
	}else if ($('search_localisation').value == 'localname_recenter'){
		$('search_config').value = 'localname_recenter';
		CartoWeb.trigger('Search.DoIt');
	}
	$('search_number').value = 100000;

}

function changeAddressCommune() {
	$('search_config').value = 'address_street';
	$('search_results_div').innerHTML = '';
	$('search_address_number').hide();
	CartoWeb.trigger('Search.DoIt');
}

function changeAddressStreet() {
	$('search_config').value = 'address_number';
	$('search_results_div').innerHTML = '';
	CartoWeb.trigger('Search.DoIt');
}

function changeAddressNumber() {
	search();
}
