var google_apikey;

var client_id;
var domain;
var service_url;
var guest_id;
var guest_email;
var session_id;
var guest_city;

var p_type;
var p_availability;
var p_city;
var p_bathroom;
var p_neighborhood;
var p_min_value;
var p_max_value;

function InitTracker(s,i,d,gkey)
{
    client_id = i;
    domain = d;
    service_url = s;
    google_apikey = gkey;
    guest_city = getGeoLocationCity();

    if($.cookie('guest_id')==null)
        {
        guest_id = parseInt(new Date().getTime().toString().substring(0, 10)) + Math.floor(Math.random()*1000)
        $.cookie('guest_id',guest_id,{expires: 2050-01-01}); // Expire Never
    }
    else
        {
        guest_id = $.cookie('guest_id');
    }

    if($.cookie('guest_email')==null)
        {
        guest_email = 'visitante' //prompt("Seu email","");
        $.cookie('guest_email',guest_email,{expires: 2050-01-01}); // Expire Never
    }
    else
        {
        guest_email = $.cookie('guest_email');
    }

    if($.cookie('session_id')==null)
        {
        session_id = parseInt(new Date().getTime().toString().substring(0, 10)) + Math.floor(Math.random()*1000)
        $.cookie('session_id',session_id);
    }
    else
        {
        session_id = $.cookie('session_id');
        $.cookie('session_id',session_id);
    }
}

//***************************************************************
//* Mapeia os eventos para que seja gerado o log de estatistica *
//***************************************************************

$(document).ready(function(){


    $("#Frm_Pesquisa").submit(function(){

        // Não tenho culpa, a desgraça da pesquisa me obrigou a fazer esta nojeira!!
        if ($("[name=Param_tipo]").val()!="")
            p_type = ($("[name=Param_tipo]").val());
        else
            p_type = 99;

        p_bathroom = $("[name=Param_dorms]").val();
        p_availability = $("[name=Param_finalidade]").val();
        p_city = $("[name=Param_cidade]").val();
        p_neighborhood = $("[name=Param_bairro]").val();

        // Não tenho culpa, a desgraça da pesquisa me obrigou a fazer esta nojeira!!
        if($("[name=Param_maximo]").val()==99)
            p_max_value = "0";
        else
            p_max_value = $("[name=Param_maximo] option:selected").text().replace("R$","").replace(".","").replace(".","");

        if($("[name=Param_minimo]").val()==99)
            p_min_value = "0";
        else
            p_min_value = $("[name=Param_minimo] option:selected").text().replace("R$","").replace(".","").replace(".","");

        Track(0,"");
        return true;
    });


    $(".trackable").click(function(){

        var action = 0;
        var extra = 0;
        var param = 0;

        var cls = $(this).attr("class");
        var clslist = cls.split(" ");

        $(clslist).each(function(item){
            if(clslist[item].indexOf("trackid",0) >= 0)
                {
                action = clslist[item].split("-")[1];
            }
        })

        $(clslist).each(function(item){
            if(clslist[item].indexOf("trackex",0) >= 0)
            {
                extra = clslist[item].split("-")[1];
                param = clslist[item].split("-")[2];
            }
        })

        if(action==0)
            {
            alert('O Objeto foi setado como trackable mais a classe trackid nao foi definida. Exemplo trackid-001');
            return;
        }

        Track(action,extra,param);
        return;
    });
    
    $('.trackForm').submit(function(){
        
        name = $('input[name="nome"]').val();
        email = $('input[name="email"]').val();
        $.cookie('guest_email',email,{expires: 2050-01-01}); // Expire Never
        $.cookie('guest_name',name,{expires: 2050-01-01}); // Expire Never
        
    })

});

//********************************************************
//* Salva a informaÃ§Ã£o necessÃ¡ria no superpanel via ajax *
//********************************************************

function Track(action,extra,param)
{
    var data = "";

    data += "reference="+client_id;
    data += "&domain="+domain;

    data += "&track[id]="+guest_id;
    data += "&track[ip]=";
    data += "&track[city]="+ guest_city;
    data += "&track[email]="+guest_email;
    data += "&track[session_id]="+session_id;
    data += "&track[action]="+action;
    data += "&track[extra]="+extra;

    if(action==0)
        {
        data += "&track[p_type]="+p_type;
        data += "&track[p_availability]="+p_availability;
        data += "&track[p_bathroom]="+p_bathroom;
        data += "&track[p_city]="+p_city;
        data += "&track[p_neighborhood]="+p_neighborhood;
        data += "&track[p_max_value]="+p_max_value;
        data += "&track[p_min_value]="+p_min_value;
    }
    else
        {
        data += "&track[p_type]=0";
        data += "&track[p_availability]="+param;
        data += "&track[p_bathroom]=0";
        data += "&track[p_city]=";
        data += "&track[p_neighborhood]=";
        data += "&track[p_max_value]=0";
    }

    data += "&callback=?";
    //alert("http://" + service_url + "/api/index/track");

    $.ajaxSetup({ scriptCharset: "utf-8" , contentType: "application/json; charset=utf-8"});

    $.getJSON("http://" + service_url + "/api/index/track",data,function(data)
    {
        alert(data.result); //<-Debug
    });



    /*
    $.ajax({
    type: "GET",
    url: "http://" + service_url + "/api/index/track",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    data: data,
    success: function(json) {
    //alert(json.result); //<-Debug
    },
    error: function (XMLHttpRequest, textStatus, errorThrown) {
    //alert(XMLHttpRequest.responseText);
    }
    });
    */

}


function getGeoLocationCity()
{

    google.loader.ApiKey = google_apikey;
    google.load("maps", "3", {other_params:"sensor=false"});
    if (google.loader.ClientLocation != null)
        {
        return google.loader.ClientLocation.address.city
    }
    else
        {
        navigator.geolocation.getCurrentPosition(function(position)
        {
            return position.address.city;
        });
    }
    return "";

}
