//globals
var tweets = [];
var profiles = [];
var businesses = [];
var business_categories = [];
var gmap;
var map_mouse_x;
var map_mouse_y;

var profile_to_tweet_map = [];
var tweet_to_profile_map = [];
var profile_to_business_map = [];
var business_to_profile_map = [];
var business_category_to_business_map = [];
var markers = [];   // map markers, indexed by

function getTimeDiff(timestamp) {
    //function parses mysql datetime string and returns javascript Date object
    //input has to be in this format: 2007-06-05 15:26:02
    var regex=/^([0-9]{2,4})-([0-1][0-9])-([0-3][0-9]) (?:([0-2][0-9]):([0-5][0-9]):([0-5][0-9]))?$/;
    var parts = timestamp.replace(regex,"$1 $2 $3 $4 $5 $6").split(' ');
    var pastTime = new Date(parts[0],parts[1]-1,parts[2],parts[3],parts[4],parts[5]);
    var secDiff = (new Date().getTime() - pastTime.getTime()) / 1000;

    if (secDiff < 60) {
        return Math.floor(secDiff) + " seconds ago";
    } else if(secDiff < 120) {
        return "about a minute ago";
    } else if(secDiff < 3600) {
        return Math.floor(secDiff/60) + " minutes ago";
    } else if(secDiff < 7200) {
        return "1 hour ago";
    } else if(secDiff < 86400) {
        return Math.floor(secDiff/3600) + " hours ago";
    } else if(secDiff < 172800) {
        return "yesterday";
    } else {
        return Math.floor(secDiff/86400) + " days ago";
    }
  }

var tweets_panel = new Tweets_Panel_Class();
var businesses_panel = new Business_Panel_Class();
var filters_panel = new Filters_Panel_Class();
var map_panel = new Map_Panel_Class();

function load (params) {
    map_panel.init(params[0] - params[3]/2, params[1] - params[2]/2, params[0] + params[3]/2, params[1] + params[2]/2);
    gmap = map_panel.gmap;

    for (i in businesses) {
        for(j in businesses[i].categories) {
            var category_id = businesses[i].categories[j];
            if (!business_category_to_business_map[category_id]) business_category_to_business_map[category_id] = [];
            business_category_to_business_map[category_id].push(i);
        }
    }

    var bc = business_categories;
    business_categories = [];
    for(i in bc) {
        business_categories[bc[i].id] = bc[i];
    }


    jQuery.map(businesses, function(b) {map_panel.add_business_marker(b)});
    markers = map_panel.markers;

    tweets_panel.init();
    businesses_panel.init();
    filters_panel.init();
    
    $("#location").autocomplete('api/location_search.php', {});
}