/*
 * this class manages all ajax call
 * @param url    identify server side call
 * @param params query string
 */
function Ajax(url, params)
{
    this.url = url;
    this.params = params;
}

Ajax.prototype.doPost = function(successFunctionName, arrayParams)
{
    $.ajax({
	type:"POST",
	url: this.url,
	data: this.params,
	datatype: 'json',
	success: function(data)
	{
	    eval(successFunctionName)(data, arrayParams);
	}
	});
}

function ajaxUpdateCoperturaGeografica(data, arrayParams)
{
    $('#geo_'+data.coperturaGeograficaId).find("td").eq("2").html(data.viceversa);
}

function ajaxAddCoperturaGeografica(data, arrayParams)
{
    if($('#cliente_copertura_geografica').css('display') == 'none')
    {
	$('#cliente_copertura_geografica').css('display', 'table');
    }
    if(data.retVal)
    {
	var row = '<tr id="geo_'+data.coperturaGeograficaId+'">';
	row += '<td>'+data.sorgente+'</td>';
	row += '<td>'+data.destinazione+'</td>';
	row += '<td>'+data.viceversa+'</td>';
	row += '<td>';
	row += '<input type="button" value="RIMUOVI" onclick="delCoperturaGeografica('+data.coperturaGeograficaId+');"/>';
	row += '</td>';
	row += '</tr>';
	// aggiungo una riga alla tabella
	$('#cliente_copertura_geografica > tbody:last').append(row);

	var oldVal = $('#coperture_ids').val();
	if(oldVal != '')
	{
	    oldVal += ',' + data.coperturaGeograficaId;
	}
	else
	{
	    oldVal = data.coperturaGeograficaId;
	}
	$('#coperture_ids').val(oldVal);
    }
}

function ajaxDelCoperturaGeografica(data, arrayParams)
{
    // prelevo l'id e cancello la riga
    $('#geo_'+data.deletedId).remove();
}

/*
 * fill html with data values which has to be a json.
 * Json structure example: [["1","Monza"],["2","Rovigo"]]
 * 
 * @param data json data
 * @param idTargetSelect id html select to be filled
 */
//function fillSelect(data, idTargetSelect, selectAllValues)
function fillSelect(data, arrayParams)
{
    idTargetSelect = arrayParams[0];
    selectAllValues = arrayParams[1];
    $("#"+idTargetSelect).find('option').remove().end();
    $.each(data, function(index, value)
    {
	addOptionToSelect(idTargetSelect, index, value, true);
	var select = document.getElementById(idTargetSelect);
	select.selectedIndex = 0;
    });
}

function fillSelectProvinceCompetenza(data, arrayParams)
{
    idTargetSelect = arrayParams[0];
    selectAllValues = arrayParams[1];
    aSelectedProvinces = arrayParams[2];
    $("#"+idTargetSelect).find('option').remove().end();
    $.each(data, function(index, value)
    {
	if(aSelectedProvinces[index] == undefined)
	{
	    addOptionToSelect(idTargetSelect, index, value, true);
	}
    });
}

function changeTextStatoFatturazione(data, arrayParams)
{
    var idElem = 'stato_lead_cliente_'+data.lead_id+'_'+data.cliente_id;
    $('#'+idElem).html(data.stato_fatturazione_id);
}
