﻿String.prototype.startsWith = function(t, i) { if (i == false) { return (t == this.substring(0, t.length)); } else { return (t.toLowerCase() == this.substring(0, t.length).toLowerCase()); } }
String.prototype.endsWith = function(t, i) { if (i == false) { return (t == this.substring(this.length - t.length)); } else { return (t.toLowerCase() == this.substring(this.length - t.length).toLowerCase()); } }

$.fn.outerHTML = function(s) { return (s) ? this.before(s).remove() : jQuery("<p>").append(this.eq(0).clone()).html(); }
$.fn.tagName = function() { if (1 === this.length) { return this[0].tagName.toLowerCase(); } else { var tagNames = []; this.each(function(i, el) { tagNames[i] = el.tagName.toLowerCase(); }); return tagNames; } }

var map;
var service_url = 'default.ashx';
var icon_url = 'images/seven-icon.png';
var icon_home_url = 'images/spacer.gif';
var icon_number_url = 'images/number-tile.png';
var icon_start_url = 'images/start-tile.png';
var stores = [];
var lspts = null;
var navitems = [];
var products = []
var map_init_flag = false;
var ajax_enabled = false; // affects back button
var product_init_flag = false;
var timeout = 2000;
var closetimer = 0;
var img_asterisk = '<div class="img-asterisk"></div>';
var store_routed;
var addthis_config = { ui_click: true };

function _gtrack(category, action, label, value){
  var v1, v2, v3;
  if(arguments.length > 1) v1 =  arguments[1];
  if(arguments.length > 1) v2 =  arguments[2];
  if(arguments.length > 1) v3 =  arguments[3];
  alert(_gaq);
  if(_gaq) _gaq.push(['_trackEvent', category, v1, v2, v3]);
}

function hyperdrop() {
    $('#hot_foods').trigger('click').parent().css('display', 'block');
    $('#hot_foods').attr('checked', true);
    only_click();
}

function search_log(o) {
    var term = $(o).data('term');
    var url = $(o).attr('href');
    var txt = $(o).text();

    var cmd_arg;
    if (term && term.length > 0) {
        cmd_arg = term;
    } else if (txt && txt.length > 0) {
        cmd_arg = txt;
    } else if (url && url.length > 0) {
        cmd_arg = url;
    }

    var params = {};
    params.cmd = 'LogSearch';
    params.cmd_arg = cmd_arg;

    $.ajax({
        type: 'GET',
        url: service_url,
        dataType: 'json',
        success: function() { trace('LogSearch_Return'); },
        data: params,
        async: false
    });
}

function mclose() {
    $('#subnav > div').css('display', 'none');
    $('#subnav_alt > div').css('display', 'none');
    $('#nav .arrow').removeClass('hover');
}

function mclosetime() {
    closetimer = window.setTimeout(mclose, timeout);
}

function mcancelclosetime() {
    if (closetimer) {
        window.clearTimeout(closetimer);
        closetimer = null;
    }
}

function show_terms() {
    $('#privacy-policy-popup').fadeOut();
    $('#terms-of-use-popup').fadeIn();
}

function hide_terms() {
    $('#terms-of-use-popup').fadeOut();
}

function show_privacy() {
    $('#terms-of-use-popup').fadeOut();
    $('#privacy-policy-popup').fadeIn();
}

function hide_privacy() {
    $('#privacy-policy-popup').fadeOut();
}

function urlencode(str) {
    return escape(str).replace(/\+/g, '%2B').replace(/%20/g, '+').replace(/\*/g, '%2A').replace(/\//g, '%2F').replace(/@/g, '%40');
}
function locator_post() {
    var qs = "";

    if (arguments.length > 0) {
        qs += "&index=" + arguments[0];
    }

    var address = $('#menubox #find').val();
    if (address.length > 0) qs += "&find=" + urlencode(address);

    $('#menubox .features input:checked').each(function(i, o) {
        qs += "&" + $(this).attr('id') + "=on";
    });

    var url = 'locator.aspx';
    if (qs.length > 0) url += "?1=1" + qs;
    document.location.href = url;
}
function nearest_location_click() {
    locator_post();
}
function directions_link_click(index) {
    //trace('directions_link_click');
    if ($('#locator_flag').length > 0) {
        $('#map_results .items .show-me').each(function(i, o) {
            var item_index = $(this).attr('item_index');
            //trace(index  + ':' + item_index);
            if (item_index == index) {
                //trace('hit:' + item_index);
                MapDirections(item_index, this);
            }
        });
    } else {
        locator_post(index);
    }
    return false;
}
function directions_show_link_click(index) {
    //trace('directions_link_click');
    trace(map.GetShapeLayerCount());


    var layer = map.GetShapeLayerByIndex(0);
    trace(layer.GetShapeCount());

    index = parseInt(index);
    var shape_index = (store_index % 5) - 1;
    if (shape_index == -1) shape_index = 4;

    var home = layer.GetShapeByIndex(0);
    var shape = layer.GetShapeByIndex(shape_index);
    shape.Hide();
    //home.Hide();

    var hpts = home.GetPoints();
    var spts = shape.GetPoints();
    lspts = spts;

    if (spts.length > 0 && hpts.length > 0) {
        map.GetDirections([hpts[0], spts[0]]);
        home.SetTitle("Starting Address");
        home.SetCustomIcon(icon_start_url);
    }
}
function update_route(shapeLayer, findResults, places, moreResults, errorMsg) {

    if (places == null) {
        alert((errorMsg == null) ? "There were no results" : errorMsg);
        return;
    }

    var bestPlace = places[0];

    // Add pushpin to the *best* place
    var location = bestPlace.LatLong;

    var newShape = new VEShape(VEShapeType.Pushpin, location);

    // var desc = "Latitude: " + location.Latitude + "<br>Longitude:" + location.Longitude;

    var html = "<div id=\"home_description\" class=\"edit\">";
    html += "<a href=\"#\" class=\"link\" onclick=\"home_descripton_link_click(this)\">" + bestPlace.Name + "</a>";
    html += "<input type=\"text\" class=\"address\" onkeyup=\"home_descripton_address_keyup(this)\"  value=\"" + bestPlace.Name + "\"/>";
    html += "<a href=\"#\" class=\"button\" onclick=\"home_descripton_button_click(this)\">Update</a>";
    html += "</div>";


    var layer = map.GetShapeLayerByIndex(0);
    var home = layer.GetShapeByIndex(0);

    home.SetDescription(html);
    home.SetTitle("Starting Address");
    home.SetPoints([location]);
    home.SetCustomIcon(icon_start_url);

    var shape = layer.GetShapeByIndex(1);
    shape.Hide();

    var hpts = home.GetPoints();
    var spts = shape.GetPoints();
    lspts = spts;

    if (spts.length > 0 && hpts.length > 0) {
        map.GetDirections([hpts[0], spts[0]]);
    }
}


function lottery_results_click() {
    var params = {};
    params.cmd = 'GetResultByGameDate';
    params.dtm = new Date();

    var start_date = $('#lottery #start_date').val();
    var end_date = $('#lottery #end_date').val();

    var cmd_json = {};
    cmd_json.date_range = start_date + '-' + end_date;

    var game_ids = [];
    $('#lottery .filter .games input:checked').each(function(i, o) {
        game_ids[game_ids.length] = $(this).attr('game_id');
    });

    cmd_json.game_ids = game_ids;
    cmd_json.state_id = $('#lottery .filter .state').attr('state_id');

    params.cmd_json = JSON.stringify(cmd_json);
    //trace(params.cmd_json);
    var url = service_url + '?cmd=' + params.cmd + '&cmd_json=' + params.cmd_json;
    //window.location.href = url;

    $.getJSON(service_url, params, function(data, status) {
        while ($('#lottery .results .grid tr').length > 1) {
            $('#lottery .results .grid tr:last').remove();
        }

        if (data.items.length > 0) {
            for (var i = 0; i < data.items.length; i++) {
                var item = data.items[i];
                var tr = $('<tr>').append($('<td>').html(item.draw_date)).append($('<td>').html(item.name)).append($('<td>').html(item.numbers)).append($('<td>').html(item.current_jackpot));
                $('#lottery .results .grid').append(tr);
            }
            $('#lottery .results').animate({ 'top': '512px' }, function() {

                var pt = $('#lottery .results').offset();
                //trace('pt.top:' + pt.top);
                $(window).scrollTop(parseInt(pt.top));

                //$('body').animate({scrollTop: pt.top + 'px'}, 1000);

                //$(window).animate({'scrollTop':'500'});

                //$('body').animate({scrollTop:parseInt(pt.top)}) 
            });
        } else {
            $('#lottery .results').css({ 'top': '0px' });
            $('#lottery .no-results').fadeIn();
        }


    });
}


function usmap_click(state_id) {
    $('#ctl00_MainContent_state').val(state_id);

    $('#games_container').hide();
    $('#date_range_container').hide();
    $('#results_button').hide();
    $('#results_container').hide();

    var params = {};
    params.cmd = 'GetGameByState';

    params.cmd_arg = state_id;
    var url = service_url + '?cmd=' + params.cmd + '&cmd_arg=' + params.cmd_arg;
    //window.location.href = url;

    $('#state').val(state_id);

    $.getJSON(service_url, params, function(data, status) {
        $('#games_container .items').empty();

        for (var i = 0; i < data.items.length; i++) {
            var game = data.items[i];
            var input = $('<input>').attr('type', 'checkbox').addClass('checkbox-label-container').attr('game_id', game.game_id).click(function(event) {
                var game_id = $(this).attr('game_id');
                // show date range last 3 days by default

                $('.daterange').each(function(i, o) {
                    if ($(o).val() == "") {
                        var end_dtm = Date.today().toString('M/d/yyyy');
                        var begin_dtm = Date.today().add(-3).days().toString('M/d/yyyy');
                        var date_range_value = begin_dtm + '-' + end_dtm;
                        $(o).val(date_range_value)
                    }
                });


                $('#date_range_container').fadeIn(function(event) {
                    $('.daterange').each(function(i, o) {
                        $(o).daterangepicker({ arrows: false });
                    });
                });
                $('#results_button').fadeIn(function(event) {
                    $(this).unbind().bind('click', function(event) {
                        lottery_results_click();
                    });
                });

            });
            var label = $('<label>').html(game.name);
            var div = $('<div>').addClass('item').append(input).append(label);
            $('#games_container .items').append(div);
        }

        $('#games_container').fadeIn();

    });
}

function find_button_click() {
    trace('find_button_click');
    var address = 'Dallas, Texas';

    var city = $('#geo_ip_city').val();
    var state = $('#geo_ip_state').val();
    if (city != null && state != null && city.length > 0 && state.length > 0) {
        address = city + ', ' + state;
    }
    var vals = address.split(',');

    $('#menubox .city-name').html(vals[0]);


    if (!map_init_flag) {
        if ($('#locator_flag').length > 0) {

            var find = $.query.get('find');
            if (find) $('#menubox #find').val(find.toString());
            var ids = ['gas_available', 'seven_eleven_visa', 'atm', 'audio_enabled_atm', 'bill_payment', 'check_cashing', 'money_transfers', 'hot_foods'];

            for (var i = 0; i < ids.length; i++) {
                var id = ids[i];
                var value = $.query.get(id);
                //trace(id + ':' + value);
                if (value && value.toString() == 'on') {
                    var selector = '#menubox #' + id;
                    $(selector).attr('checked', true);
                    //trace(selector);
                }
            }
        }
    }

    var find = $('#menubox #find');
    if ($(find).val() != '' && $(find).val() != $(find).attr('placeholder')) address = $(find).val();
    //trace('finding address:' + address);
    map.Find(null, address, null, null, null, null, null, null, null, null, map_callback);
}
function only_click() {

    var only = $('#menubox .only');
    var div = $('#menubox .extended');

    if (arguments.length == 0) {
        if (div.is(':visible')) {
            div.slideUp();
            only.removeClass('only-down');
            //only.html('Only find stores that have...');
        } else {
            div.slideDown();
            only.addClass('only-down');
            //only.html('');
            //find_button_click();
        }
    } else {
        var n = arguments[0];
        if (parseInt(n) == 0) {
            div.slideUp();
            only.removeClass('only-down');
        } else {
            div.slideDown();
            only.addClass('only-down');
        }
    }
}
function home_descripton_link_click(o) {
    var element = $(o);
    var parent = element.parent();

    parent.find('.address').each(function(i, o) {
        $(this).val(parent.find('.link').html());
        parent.addClass('edit');
        $(this).select();
    });

}
function home_descripton_button_click(o) {
    var element = $(o);
    var parent = element.parent();
    var address = parent.find('.address').val();
    var find = $('#menubox #find');
    find.val(address).focus();
    map.Find(null, address, null, null, null, null, null, null, null, null, update_route);
    element.parent().removeClass('edit');
}
function home_descripton_address_keyup(o) {
    if (event.keyCode == 13) {
        home_descripton_button_click(o);
    }
}
function map_callback(shapeLayer, findResults, places, moreResults, errorMsg) {
    trace('map_callback');
    // if there are no results, display any error message and return
    if (places == null) {
        alert((errorMsg == null) ? "There were no results" : errorMsg);
        return;
    }

    var bestPlace = places[0];

    $('#map_results .items').empty();
    map.Clear();
    //map.DeleteAllShapes();
    //map.SetZoomLevel(11); // 5 miles

    // Add pushpin to the *best* place
    var location = bestPlace.LatLong;

    var newShape = new VEShape(VEShapeType.Pushpin, location);

    // var desc = "Latitude: " + location.Latitude + "<br>Longitude:" + location.Longitude;


    var html = "<div id=\"home_description\"  class=\"edit\">";
    html += "<a href=\"#\" class=\"link\" onclick=\"home_descripton_link_click(this)\">" + bestPlace.Name + "</a>";
    html += "<input type=\"text\" class=\"address\" onkeyup=\"home_descripton_address_keyup(this)\"  value=\"" + bestPlace.Name + "\"/>";
    html += "<a href=\"#\" class=\"button\" onclick=\"home_descripton_button_click(this)\">Update</a>";
    html += "</div>";
    newShape.SetDescription(html);
    newShape.SetTitle("Home");
    newShape.SetCustomIcon(icon_home_url);
    map.AddShape(newShape);

    // now you have the center of the map you need to get the stores from this lat with a range
    // how do you get the range? isint it beased on zoom? it is. but just default to 20 miles that should be good;
    // so this needs to be an ajax call to get the store info and then build the list
    // one you have the collection then just add to the map as usual

    var params = {};
    params.cmd = 'Find_Stores';
    var cmd_json = {};
    cmd_json.from_lat = location.Latitude;
    cmd_json.from_lon = location.Longitude;
    
    // flavor_flag
    cmd_json.flavors = [];
    
    cmd_json.range = 3000;
    var filters = [];
    $('#menubox .extended input[type=checkbox]:checked').each(function(i, o) { filters[i] = $(this).next().html(); });

    cmd_json.filters = filters;
    params.cmd_json = JSON.stringify(cmd_json);
    //trace(params.cmd_json);

    var url = service_url + '?cmd=' + params.cmd + '&cmd_json=' + params.cmd_json;
    trace(url);

    // window.location.href = url;


    //if(filters.length > 0) window.location.href = url;

    $.getJSON(service_url, params, function(data, status) {
        // this is where the stores are added to teh map
        // we want to move this logic so it follows the page


        if ($('#locator_flag').length == 0) {
            if (map_init_flag) {
                var only = $('#menubox .only');
                var div = $('#menubox .extended');
                div.slideDown();
                only.addClass('only-down');
            }
        }


        stores = data.items;

        $('#map_results .pager').pagination(stores.length, { prev_text: '<', next_text: '>', items_per_page: 5, callback: NextPage });

        $('#map_container .licensee').hide();

        NextPage(0);

        map_init_flag = true;

    });
}
function NextPlot(store, i) {
    var pt = new VELatLong(store.latitude, store.longitude);
    var shape = new VEShape(VEShapeType.Pushpin, pt);
    shape.SetTitle = "Title:" + store.store_no;
    //shape.SetCustomIcon(icon_url);
    shape.SetCustomIcon("<div class=\"number\">" + (i + 1) + "</div>");

    var html = "<div class=\"store-info\">";
    html += "<div class=\"header\">";
    html += "<div class=\"bold\"><div class=\"number\">" + (i + 1) + "</div> 7-Eleven #" + store.store_no + " " + (store.is_corporate ? '' : img_asterisk) + "</div>";
    html += "<div>" + store.address + "</div>";
    html += "<div>" + store.city + "," + store.state_cd + " " + store.postal_cd + "</div>";
    html += "<div>" + store.phone + "</div>";
    html += "<div>Distance: " + store.distance.toFixed(1) + " mi.</div>";
    html += "</div>";


    if (store.features) {
        html += "<div class=\"features\">Features:</div>";
        html += "<ul class=\"features-list\">";
        var features = store.features.split('|');
        for (var j = 0; j < features.length; j++) {
            html += "<li>" + features[j] + "</li>";
        }
        html += "</ul>";
    }

    html += "<div class=\"directions\"><a class=\"directions-link\" item_index=\"" + (i + 1) + "\" href=\"javascript:void(0)\" onclick=\"directions_link_click(" + (i + 1) + ")\">Directions</a></div>";

    if (store.is_corporate == 0) {
        html += "<div class=\"licensee-store\">" + img_asterisk + " Promotions subject to availability at this location. Call ahead to ensure participation.</div>";
        $('#map_container .licensee').show();
    }

    html += "</div>";
    shape.SetDescription(html);
    //trace('AddShape');
    map.AddShape(shape);

    var layer = map.GetShapeLayerByIndex(0);
    //trace(layer.GetShapeCount());

    //trace('json_finish');
}
function ViewShapes() {
    var shps = [];
    var lyr = map.GetShapeLayerByIndex(0);
    if (lyr) {
        for (var i = 0; i < lyr.GetShapeCount(); i++) {
            var shp = lyr.GetShapeByIndex(i);
            shps[shps.length] = shp;
        }
    }
    //alert(map.GetShapeLayerCount());
    map.SetMapView(shps);
}
function NextPage(index, sender) {
    var icount = 5;
    var istart = index * icount;
    var iend = Math.min((index + 1) * icount, stores.length);

    map.DeleteAllShapes();

    $('#map_results .items').empty();
    $('#menubox .extended .items').empty();

    for (var i = istart; i < iend; i++) {
        var store = stores[i];

        var xhtml = "<div class=\"item\">";
        xhtml += "  <div class=\"number\">" + (i + 1) + "</div>";
        xhtml += "  <div class=\"header\"><div class=\"txt\">7-ELEVEN #" + store.store_no + "</div> " + (store.is_corporate ? '' : img_asterisk) + " <div class=\"distance\">" + store.distance.toFixed(1) + " mi</div></div>";
        xhtml += "  <div>" + store.address + "</div>";
        xhtml += "  <div>" + store.city + "," + store.state_cd + " " + store.postal_cd.substr(0, 5) + " " + store.phone + "<a href=\"javascript:void(0)\" class=\"show-me\"  item_index=\"" + (i + 1) + "\">Directions</a></div>";
        xhtml += "  <div class=\"detail\"></div>";
        xhtml += "</div>";

        $('#map_results .items').append(xhtml);

        if (i - istart < 3) {
            var xhtml = "<div class=\"item\">";
            xhtml += "  <div class=\"header\"><div class=\"txt\">7-ELEVEN (#" + store.store_no + ")</div> " + (store.is_corporate ? '' : img_asterisk) + "</div>";
            xhtml += "  <div class=\"address\">" + store.address1.replace('AVENUE', 'AVE').replace('STREET', 'ST') + " " + store.distance.toFixed(1) + " mi</div>";
            xhtml += "  <div class=\"city\">" + store.city + "," + store.state_cd + " " + store.postal_cd.substr(0, 5) + "</div>";
            xhtml += "  <div class=\"detail\">" + store.phone + " <a href=\"javascript:void(0)\" class=\"show-me\"  item_index=\"" + (i + 1) + "\">Map It</a></div>";
            xhtml += "</div>";

            $('#menubox .extended .items').append(xhtml);
        }

        NextPlot(store, i);
    }

    $('#map_results .items .directions-container').remove();
    $('#map_results .items').show();
    $('#map_results .pager').show();
    $('#map_results .show-me').html('Directions');
    $('#map_results .turns-container').hide();
    map.DeleteRoute();

    var lyr = map.GetShapeLayerByIndex(0);
    if (lyr) lyr.Show();


    ViewShapes();
    //trace('here');


    $('#map_results .pager .next').prev().css({ 'border-width': '0' });
    //PositionFooter();

    $('#map_results .items .item .header').bind('click', function(event) {
        $('#map_results .items .item').removeClass('selected');
        var item = $(this).parent();
        $(item).addClass('selected');
        var store_index = $(item).find('.number').html();
        store_index = parseInt(store_index);
        var shape_index = (store_index % 5) - 1;
        if (shape_index == -1) shape_index = 4;
        var base_layer = map.GetShapeLayerByIndex(0);
        var count = base_layer.GetShapeCount();
        var current_shape = base_layer.GetShapeByIndex(shape_index);
        map.HideInfoBox();
        ViewShapes();
        map.ShowInfoBox(current_shape, current_shape.GetIconAnchor(), new VEPixel(7, 0));
    });

    $('#map_results .items .item').bind('mouseenter', function(event) {
        $(this).addClass('item-hover');
        var store_index = $(this).find('.number').html();
        store_index = parseInt(store_index);
        var base_layer = map.GetShapeLayerByIndex(0);
        var count = base_layer.GetShapeCount();
        var shape_index = (store_index % 5) - 1;
        if (shape_index == -1) shape_index = 4;
        var current_shape = base_layer.GetShapeByIndex(shape_index);
    }).bind('mouseleave', function(event) {
        $(this).removeClass('item-hover');
        var store_index = $(this).find('.number').html();
        store_index = parseInt(store_index);
        var base_layer = map.GetShapeLayerByIndex(0);
        var count = base_layer.GetShapeCount();
        var shape_index = (store_index % 5) - 1;
        if (shape_index == -1) shape_index = 4;
        var current_shape = base_layer.GetShapeByIndex(shape_index);
    });

    $('#map_results .items .item .show-me').unbind().bind('click', function(event) {
        var show_me_link = $(this);
        if (show_me_link.text() == 'Directions') {
            var item_index = $(this).attr('item_index');
            MapDirections(item_index, this);
        } else {
            var lyr = map.GetShapeLayerByIndex(0);
            if (lyr) lyr.Hide();

            var item_index = $(this).attr('item_index');
            store_routed = stores[item_index - 1];

            var directions_start = $('#directions_start').val();
            var directions_end = $('#directions_end').val();
            var points = [directions_start, directions_end];
            var opts = new VERouteOptions();
            opts.RouteCallback = RouteCallback;
            map.GetDirections(points, opts);

        }
    });

    $('#menubox .extended .items .item .show-me').unbind().bind('click', function() {
        var item_index = $(this).attr('item_index');
        locator_post(item_index);
    });



    if (!map_init_flag) {
        if ($('#locator_flag').length > 0) {

            var store_index = $.query.get('index');

            if (store_index) {
                directions_link_click(store_index);
            }
        }
    }


}
function MapDirections(item_index, element) {
    var show_me_link = $(element);
    var find_value = $('#find').val();
    var geo_ip_city = $('#geo_ip_city').val();
    var geo_ip_state = $('#geo_ip_state').val();
    var directions_start_value = '';

    if (geo_ip_city.length > 0 && geo_ip_state.length > 0) directions_start_value = geo_ip_city + ', ' + geo_ip_state;
    if (find_value.length > 0) directions_start_value = find_value;

    var i1 = $('<div>').append($('<input>').attr('type', 'text').attr('id', 'directions_start').attr('placeholder', 'Enter Starting Address').val(directions_start_value));
    var store = stores[item_index - 1];


    var directions_end_value = store.address1 + ' ' + store.city + ', ' + store.state_cd + ' ' + store.postal_cd;

    var i2 = $('<div>').append($('<input>').attr('type', 'text').attr('id', 'directions_end').attr('placeholder', 'Enter Ending Address').val(directions_end_value));
    var i3 = $('<div>').addClass('directions-container').append(i1).append(i2);
    var div = $('<div>').addClass('directions').append(i3);
    $('#map_results .directions-container').remove();

    map.HideInfoBox();
    $('#map_results .items .item .show-me').text('Directions');
    show_me_link.text('Get Directions');

    div.insertBefore(show_me_link);
    $('#directions_start').placeholder().bind('keyup', function(event) {
        if (event.keyCode == 13) { show_me_link.trigger('click'); }
    }).trigger('focus');
    $('#directions_end').placeholder().bind('keyup', function(event) {
        if (event.keyCode == 13) { show_me_link.trigger('click'); }
    });
}
function RouteCallback(route) {
    trace('RouteCallback');
    if (route.ShapePoints) {
        //trace('route.ShapePoints.length:' + route.ShapePoints.length);
    } else {
        //trace('No ShapePoints');
    }

    if (route.ShapePoints) {
        for (var i = 0; i < route.ShapePoints.length; i++) {
            var pt = route.ShapePoints[i];
            //trace('routept:' + i);
        }
    }

    // map.AddShape(newShape);
    var store = store_routed;


    if (route.RouteLegs) {
        var turns = '';
        var html = '<table cellpadding="0" cellspacing="0" border="0"><col width="14" /><col width="200" /><col width="40" />';
        var latlon;

        for (var i = 0; i < route.RouteLegs.length; i++) {
            trace('Leg:' + i);
            var leg = route.RouteLegs[i];
            for (var j = 0; j < leg.Itinerary.Items.length; j++) {
                var itn = leg.Itinerary.Items[j];
                var dst = itn.Distance.toFixed(1);

                if (j > 0 && j < leg.Itinerary.Items.length - 1) {
                    itn.Shape.SetCustomIcon('<div class="route-dot">' + (j + 1) + '</div>');
                    itn.Shape.SetTitle('Step ' + (j + 1));
                }

                //trace(itn.Shape);
                if (j == (leg.Itinerary.Items.length - 1)) {

                    var shtml = "<div class=\"store-info\">";
                    shtml += "<div class=\"header\">";
                    shtml += "<div class=\"bold\"><div class=\"number\">" + (i + 1) + "</div> 7-Eleven #" + store.store_no + " " + (store.is_corporate ? '' : img_asterisk) + "</div>";
                    shtml += "<div>" + store.address + "</div>";
                    shtml += "<div>" + store.city + "," + store.state_cd + " " + store.postal_cd + "</div>";
                    shtml += "<div>" + store.phone + "</div>";
                    shtml += "</div>";


                    if (store.features) {
                        shtml += "<div class=\"features\">Features:</div>";
                        shtml += "<ul class=\"features-list\">";
                        var features = store.features.split('|');
                        for (var k = 0; k < features.length; k++) {
                            shtml += "<li>" + features[k] + "</li>";
                        }
                        shtml += "</ul>";
                    }

                    if (store.is_corporate == 0) {
                        shtml += "<div class=\"licensee-store\">" + img_asterisk + " Promotions subject to availability at this location. Call ahead to ensure participation.</div>";
                    }

                    shtml += "</div>";
                    itn.Shape.SetDescription(shtml);
                    itn.Shape.SetCustomIcon(icon_url);
                }
                html += '<tr><td class="dot">' + (j + 1) + '</td><td class="txt">' + itn.Text + '</td><td class="right">' + dst + ' mi</td></tr>';
                turns += (j + 1) + '. ' + itn.Text + ' - ' + dst + ' mi.\n';
            }
        }

        html += '<tr><td><img src="images/spacer.gif" width="14" height="1" /></td><td class="txt"><img src="images/spacer.gif" width="200" height="1" /></td><td class="right"><img src="images/spacer.gif" width="40" height="1" /></td></tr>';
        html += '</table>';

        var xhtml = "<div class=\"title\">Directions to:</div>";
        xhtml += "<div class=\"subtitle\">7-ELEVEN #" + store.store_no + " " + (store.is_corporate ? '' : img_asterisk) + " <div class=\"distance\">" + route.Distance.toFixed(1) + " mi</div></div>";
        xhtml += "<div>" + store.address + "</div>";
        xhtml += "<div>" + store.city + "," + store.state_cd + " " + store.postal_cd.substr(0, 5) + "</div>";
        xhtml += "<div class=\"print\"></div>";
        xhtml += "<div class=\"email\"></div>";

        $('#map_results .items').hide();
        $('#map_results .pager').hide();
        $('#map_results .turns-container .turns').html(html);
        $('#map_results .turns-container').show();
        $('#map_results .turns-container .header').html(xhtml);

        $('#map_results .turns-container .header .print').hover(function() {
            $(this).addClass('hover');
        }, function() {
            $(this).removeClass('hover');
        }).click(function() {
            var pt = $('#map_container').offset();
            var opts = 'top=' + (pt.top + 50) + ',left=' + (pt.left - 70) + ',width=640,height=430,scrollbars=1,resizable=0,menubar=0,location=0,directories=0,status=0,titlebar=0,toolbar=0';
            var url = 'Directions.aspx?cmd=Print';
            var win = window.open(url, 'directions', opts, true);
            win.returnValue = $('#map_results .turns-container');
            win.focus();
        });
        $('#map_results .turns-container .header .email').hover(function() {
            $(this).addClass('hover');
        }, function() {
            $(this).removeClass('hover');
        }).click(function() {
            var pt = $('#map_container').offset();
            var opts = 'top=' + (pt.top + 50) + ',left=' + (pt.left - 70) + ',width=400,height=460,scrollbars=1,resizable=0,menubar=0,location=0,directories=0,status=0,titlebar=0,toolbar=0';
            var url = 'Directions.aspx?cmd=Email';
            var win = window.open(url, 'directions', opts, true);
            var directions_start = $('#directions_start').val();
            var directions_end = $('#directions_end').val();
            win.returnValue = [$('#map_results .turns-container'), turns, directions_start, directions_end];
            win.focus();
        });

    }
}
function content_height_adjust() {
    //trace('content_height_adjust');

    var height = $(window).height();
    var pt = $('#footer').offset();

    var h = parseInt(pt.top) - parseInt(height) + 32;
    h = pt.top - 580;

    //  trace(height + ':' + pt.top + ':' + h);  

    if (h > 0) $('#content_repeat').css({ 'height': h + 'px' });
}
function trace(s) {
    if (window.console) console.log(s);
}
function xalert(o) {
    var s = "";
    for (var p in o) {
        //if(p.indexOf("ancel") != -1)
        s += p + ':' + o[p] + "\n";
    }
    alert(s);
}

function custom_font(selector, class_name) {
    //trace('custom_font(' + selector + ',' + class_name + ')');

    /*
    var acrs_name = class_name;
    if(acrs_name == 'delicious-f06e00') acrs_name = 'delicious';
    var acrs = eval(acrs_name);
    $(selector).each(function(i,o){
    var chrs = $(this).text();
    chrs = chrs.replace(/&amp;/ig, '&');
    //trace('chrs:' + chrs);
    
    $(this).html($('<span>').html(chrs).hide());
    for(var i=0;i<chrs.length;i++){
    var chr = chrs.substr(i, 1);
    //trace('chr:' + chr);
			
    var crs = acrs[chr];
    //trace('crs:' + crs);
    //trace('crs.length:' + crs.length);
			
			
    if(crs && crs.length > 2){
    var span = $('<span>').addClass(class_name);
    var css = {'marginLeft': (0 - (parseInt(crs[2]) - 1))  + 'px', 'backgroundPosition':'-' + crs[0] + 'px center', 'width':crs[1]};
    span.css(css);
    $(this).append(span);
    }else{
    trace('char ' + chr + ' not found in ' + class_name);
    }
    }
    });
	
	*/
}
function crumb_init() {
    if ($('#category_id_hidden').length > 0) {

        var icategory_id = 0;
        var jcategory_id = 0;
        var kcategory_id = 0;
        var category_id = $('#category_id_hidden').val();
        var populated = false;

        for (var i = 0; i < navitems.length; i++) {
            var iitem = navitems[i];
            if (iitem.category_id == category_id) icategory_id = iitem.category_id;
            for (var j = 0; j < iitem.items.length; j++) {
                var jitem = iitem.items[j];
                if (jitem.category_id == category_id) {
                    jcategory_id = jitem.category_id;
                    icategory_id = iitem.category_id;
                }
                for (var k = 0; k < jitem.items.length; k++) {
                    var kitem = jitem.items[k];
                    if (kitem.category_id == category_id) {
                        kcategory_id = kitem.category_id;
                        jcategory_id = jitem.category_id;
                        icategory_id = iitem.category_id;
                    }
                }
            }
        }

        var params = {};
        params.cmd = 'GetCrumb';
        params.cmd_arg = $('#category_id_hidden').val();

        $.getJSON(service_url, params, function(data, status) {
            $('#crumb').empty();
            var ul = $('<ul>');
            for (var i = 0; i < data.items.length; i++) {
                var item = data.items[i];
                ul.append($('<li>').html(item.name).data('category_id', item.category_id));
            }
            $('#crumb').append(ul);

            var l = $('#crumb ul li').length;
            $('#crumb ul li').each(function(i, o) {
                if (i == 0 && l > 1) {
                    $(this).append($('<div>').addClass('crumb-item-left'));
                }
                if (i == (l - 2)) {
                    $(this).append($('<div>').addClass('crumb-item-right-term'));
                } else if (i == (l - 1)) {
                    $(this).addClass('selected');
                } else {
                    $(this).append($('<div>').addClass('crumb-item-right'));
                }
            });

            $('#crumb ul li').bind('click', function(event) {
                document.location.href = 'category.aspx?categoryid=' + $(this).data('category_id');
            });


            $('#crumb').addClass('category' + icategory_id.toString()[0]);
            $('#crumb').show();

        });

    }



}
function nav_init() {
    //trace('nav_init');
    var params = {};
    params.cmd = 'GetNav';
    //trace(service_url);

    $.getJSON(service_url, params, function(data, status) {
        //trace('nav_init_return');

        $('#nav .main').empty();
        $('#subnav').empty();

        /*		
        data = {"items":[{"category_id":2000000,"name":"Only at 7-Eleven","items":[{"category_id":2001000,"name":"7-Select","items":[],"url":"Category.aspx?CategoryId=2001000"},{"category_id":2004000,"name":"Breakfast","items":[],"url":"Category.aspx?CategoryId=2004000"},{"category_id":2003000,"name":"Promotions","items":[],"url":"Category.aspx?CategoryId=2003000"},{"category_id":2002000,"name":"So Fresh","items":[{"category_id":2002001,"name":"Bakery","items":[],"url":"Category.aspx?CategoryId=2002001"},{"category_id":2002002,"name":"Breakfast Bite","items":[],"url":"Category.aspx?CategoryId=2002002"},{"category_id":2002003,"name":"Breakfast Sandwiches","items":[],"url":"Category.aspx?CategoryId=2002003"},{"category_id":2002004,"name":"Energy Drinks","items":[],"url":"Category.aspx?CategoryId=2002004"},{"category_id":2002005,"name":"Good Reads","items":[],"url":"Category.aspx?CategoryId=2002005"},{"category_id":2002006,"name":"Hashbrowns","items":[],"url":"Category.aspx?CategoryId=2002006"},{"category_id":2002007,"name":"Hot Drinks","items":[],"url":"Category.aspx?CategoryId=2002007"},{"category_id":2002008,"name":"Sausage  Egg and Cheese Burrito","items":[],"url":"Category.aspx?CategoryId=2002008"}],"url":"Category.aspx?CategoryId=2002000"}],"url":"Category.aspx?CategoryId=2000000"},{"category_id":3000000,"name":"Hungry","items":[{"category_id":3001000,"name":"Chilled","items":[{"category_id":3001001,"name":"Fruits","items":[],"url":"Category.aspx?CategoryId=3001001"},{"category_id":3001003,"name":"Salads","items":[],"url":"Category.aspx?CategoryId=3001003"},{"category_id":3001002,"name":"Sandwiches & Wraps","items":[],"url":"Category.aspx?CategoryId=3001002"}],"url":"Category.aspx?CategoryId=3001000"},{"category_id":3002000,"name":"Hot","items":[{"category_id":3002001,"name":"Big Bite","items":[],"url":"Category.aspx?CategoryId=3002001"},{"category_id":3002002,"name":"Breakfast Sandwiches","items":[],"url":"Category.aspx?CategoryId=3002002"},{"category_id":3002008,"name":"Breakfast Taquitos","items":[],"url":"Category.aspx?CategoryId=3002008"},{"category_id":3002003,"name":"Burrito Rollers","items":[],"url":"Category.aspx?CategoryId=3002003"},{"category_id":3002004,"name":"Chicken Tenders","items":[],"url":"Category.aspx?CategoryId=3002004"},{"category_id":3002005,"name":"Pizza","items":[],"url":"Category.aspx?CategoryId=3002005"},{"category_id":3002006,"name":"Sides","items":[],"url":"Category.aspx?CategoryId=3002006"},{"category_id":3002007,"name":"Taquitos","items":[],"url":"Category.aspx?CategoryId=3002007"},{"category_id":3002009,"name":"Wings","items":[],"url":"Category.aspx?CategoryId=3002009"}],"url":"Category.aspx?CategoryId=3002000"},{"category_id":3003000,"name":"Off the Shelf","items":[{"category_id":3003001,"name":"Bakery","items":[],"url":"Category.aspx?CategoryId=3003001"},{"category_id":3003002,"name":"Candy","items":[],"url":"Category.aspx?CategoryId=3003002"},{"category_id":3003004,"name":"Frozen","items":[],"url":"Category.aspx?CategoryId=3003004"},{"category_id":3003003,"name":"Grocery","items":[],"url":"Category.aspx?CategoryId=3003003"},{"category_id":3003005,"name":"Snacks & Chips","items":[],"url":"Category.aspx?CategoryId=3003005"}],"url":"Category.aspx?CategoryId=3003000"}],"url":"Category.aspx?CategoryId=3000000"},{"category_id":4000000,"name":"Thirsty","items":[{"category_id":4001000,"name":"Cold","items":[{"category_id":4001001,"name":"Big Gulp","items":[],"url":"Category.aspx?CategoryId=4001001"},{"category_id":4001002,"name":"Iced Coffee","items":[],"url":"Category.aspx?CategoryId=4001002"},{"category_id":4001003,"name":"Slurpee","items":[],"url":"Category.aspx?CategoryId=4001003"}],"url":"Category.aspx?CategoryId=4001000"},{"category_id":4002000,"name":"From the Fridge","items":[{"category_id":4002001,"name":"Juice","items":[],"url":"Category.aspx?CategoryId=4002001"},{"category_id":4002002,"name":"Milk","items":[],"url":"Category.aspx?CategoryId=4002002"},{"category_id":4002003,"name":"Soda","items":[],"url":"Category.aspx?CategoryId=4002003"},{"category_id":4002004,"name":"Sports & Energy","items":[],"url":"Category.aspx?CategoryId=4002004"},{"category_id":4002005,"name":"Tea","items":[],"url":"Category.aspx?CategoryId=4002005"},{"category_id":4002006,"name":"Water","items":[],"url":"Category.aspx?CategoryId=4002006"}],"url":"Category.aspx?CategoryId=4002000"},{"category_id":4003000,"name":"Hot","items":[{"category_id":4003001,"name":"7-Eleven Coffee","items":[],"url":"Category.aspx?CategoryId=4003001"},{"category_id":4003002,"name":"Specialty Drinks","items":[],"url":"Category.aspx?CategoryId=4003002"}],"url":"Category.aspx?CategoryId=4003000"}],"url":"Category.aspx?CategoryId=4000000"},{"category_id":5000000,"name":"Play","items":[{"category_id":5001000,"name":"Electronics","items":[],"url":"Category.aspx?CategoryId=5001000"},{"category_id":5006000,"name":"Gaming","items":[],"url":"Category.aspx?CategoryId=5006000"},{"category_id":5003000,"name":"Good Reads","items":[],"url":"Category.aspx?CategoryId=5003000"},{"category_id":5002000,"name":"Lottery","items":[],"url":"Category.aspx?CategoryId=5002000"},{"category_id":5004000,"name":"Movies","items":[],"url":"Category.aspx?CategoryId=5004000"},{"category_id":5005000,"name":"Music","items":[],"url":"Category.aspx?CategoryId=5005000"}],"url":"Category.aspx?CategoryId=5000000"},{"category_id":6000000,"name":"Cash and Cards","items":[{"category_id":6002000,"name":"Fast Cash","items":[{"category_id":6002002,"name":"Cash Checks","items":[],"url":"Category.aspx?CategoryId=6002002"},{"category_id":6002001,"name":"Cash and ATM","items":[],"url":"Category.aspx?CategoryId=6002001"},{"category_id":6002003,"name":"Kwedit","items":[],"url":"Category.aspx?CategoryId=6002003"},{"category_id":6002004,"name":"Money Orders","items":[],"url":"Category.aspx?CategoryId=6002004"},{"category_id":6002005,"name":"Transfer Money","items":[],"url":"Category.aspx?CategoryId=6002005"}],"url":"Category.aspx?CategoryId=6002000"},{"category_id":6001000,"name":"Gift Cards","items":[{"category_id":6001005,"name":"7-Eleven Cards","items":[],"url":"Category.aspx?CategoryId=6001005"},{"category_id":6001001,"name":"Gaming Cards","items":[],"url":"Category.aspx?CategoryId=6001001"},{"category_id":6001004,"name":"Music Cards","items":[],"url":"Category.aspx?CategoryId=6001004"},{"category_id":6001003,"name":"Phone Cards","items":[],"url":"Category.aspx?CategoryId=6001003"}],"url":"Category.aspx?CategoryId=6001000"}],"url":"Category.aspx?CategoryId=6000000"},{"category_id":7000000,"name":"And More","items":[{"category_id":7002000,"name":"As Seen on TV","items":[],"url":"Category.aspx?CategoryId=7002000"},{"category_id":7001000,"name":"Auto & Fuel","items":[],"url":"Category.aspx?CategoryId=7001000"},{"category_id":7003000,"name":"Health & Beauty","items":[{"category_id":7003001,"name":"Medicine","items":[],"url":"Category.aspx?CategoryId=7003001"},{"category_id":7003003,"name":"Personal Care","items":[],"url":"Category.aspx?CategoryId=7003003"},{"category_id":7003002,"name":"Sexual Wellness","items":[],"url":"Category.aspx?CategoryId=7003002"}],"url":"Category.aspx?CategoryId=7003000"},{"category_id":7004000,"name":"Household","items":[{"category_id":7004002,"name":"Office","items":[],"url":"Category.aspx?CategoryId=7004002"},{"category_id":7004001,"name":"Paper Products","items":[],"url":"Category.aspx?CategoryId=7004001"}],"url":"Category.aspx?CategoryId=7004000"},{"category_id":7005000,"name":"Performance","items":[],"url":"Category.aspx?CategoryId=7005000"}],"url":"Category.aspx?CategoryId=7000000"}]}
		  
*/

        navitems = data.items;

        for (var i = 0; i < navitems.length; i++) {
            var item = navitems[i];
            var li = $('<li>').html(item.name).data('item_name', item.name).data('item_url', item.url).data('category_id', item.category_id).bind('mouseenter', function(event) {

                mcancelclosetime();

                $('#search').blur();

                $(this).addClass('hover');
                Cufon.replace(this, { fontFamily: 'MetaPro-medi' });

                var class_name = $(this).data('item_name').replace(/[ @]+/ig, '-').toLowerCase();
                //trace(class_name);
                var selector = '#subnav > div.' + class_name;
                $('#subnav > div').css('display', 'none');
                $('#subnav_alt > div').css('display', 'none');
                $('#nav .arrow').removeClass('hover');

                $(selector).css('display', 'block').css('left', $(this).position().left + $('#nav .main').position().left - 5);

                image_name = $(this).data('category_id');
                image_name += '.png';
                //trace(image_name);
                //trace($(this).parent().find('.thumb').length);
                $(selector).find('.thumb').css('background-image', 'url(images/nav-item/' + image_name + ')');

                mclosetime();

            }).bind('mouseleave', function(event) {
                $(this).removeClass('hover');
                Cufon.replace(this, { fontFamily: 'MetaPro-medi' });
            }).bind('click', function(event) {
                //document.location.href = 'category.aspx?categoryid=' + $(this).data('category_id');
                document.location.href = $(this).data('item_url');
            });
            $('#nav .main').append(li);

            var class_name = item.name.replace(/[ @]+/ig, '-').toLowerCase();
            //trace(class_name);

            var ul = $('<ul>');
            for (var j = 0; j < item.items.length; j++) {
                var sitem = item.items[j];
                //trace(sitem.name);
                var li = $('<li>').html(sitem.name).data('class_name', class_name).data('item_name', sitem.name).data('item_url', sitem.url).data('category_id', sitem.category_id).bind('mouseenter', function(event) {

                    mcancelclosetime();

                    $(this).addClass('hover');
                    Cufon.replace(this, { fontFamily: 'MetaPro-medi' });

                    var image_name = 'sub-nav-thumb-' + $(this).data('class_name') + '-' + $(this).data('item_name').replace(/[ @]+/ig, '-').toLowerCase();
                    //image_name = image_name.substr(0, 36);
                    image_name = $(this).data('category_id');
                    image_name += '.png';
                    //trace(image_name);
                    $(this).parent().parent().find('.thumb').css('background-image', 'url(images/nav-item/' + image_name + ')');

                    mclosetime();

                }).bind('mouseleave', function(event) {
                    $(this).removeClass('hover');
                    Cufon.replace(this, { fontFamily: 'MetaPro-medi' });

                    var src = 'images/sub-nav-thumb-default.png';
                    //$(this).parent().parent().find('.thumb').css('background-image', 'url(' + src + ')');
                }).bind('click', function(event) {
                    //document.location.href = 'category.aspx?categoryid=' + $(this).data('category_id');
                    document.location.href = $(this).data('item_url');
                });
                ul.append(li);
            }

            var div = $('<div>').addClass(class_name).append(ul).append($('<div>').addClass('thumb')).bind('mouseleave', function(event) {
                $(this).hide();
            });
            $('#subnav').append(div);
        }

//        var anavitems = [{ "category_id": "0", "name": "The Company", "url": "javascript:void(0)", "items": [{ "category_id": "0", "name": "Contact Us", "url": "http://corp.7-eleven.com/ContactUs/tabid/184/Default.aspx", "items": [] }, { "category_id": "0", "name": "Corporate", "url": "http://corp.7-eleven.com", "items": [] }, { "category_id": "0", "name": "International", "url": "http://corp.7-eleven.com/AboutUs/InternationalLicensing/tabid/115/Default.aspx", "items": [] }, { "category_id": "0", "name": "Newsroom", "url": "http://corp.7-eleven.com/NewsRoom/tabid/373/Default.aspx", "items": [] }, { "category_id": "0", "name": "Suppliers", "url": "http://corp.7-eleven.com/ContactUs/DoingBusinesswith7Eleven/tabid/369/Default.aspx", "items": []}] }, { "category_id": "0", "name": "Franchise", "url": "http://franchise.7-eleven.com", "items": [] }, { "category_id": "0", "name": "Careers", "url": "http://corp.7-eleven.com/Careers/tabid/136/Default.aspx", "items": [] }, { "category_id": "0", "name": "Login", "url": "Login.aspx", "items": []}];

    	  var anavitems = [
      	  { "category_id": "0", "name": "The Company", "url": "javascript:void(0)", "items": 
      	   [ 
      	     { "category_id": "0", "name": "Contact Us", "url": "http://corp.7-eleven.com/ContactUs/tabid/184/Default.aspx", "items": [] }, 
          	 { "category_id": "0", "name": "Corporate", "url": "http://corp.7-eleven.com", "items": [] }, 
      	     { "category_id": "0", "name": "International", "url": "http://corp.7-eleven.com/AboutUs/InternationalLicensing/tabid/115/Default.aspx", "items": [] }, 
      	     { "category_id": "0", "name": "Newsroom", "url": "http://corp.7-eleven.com/NewsRoom/tabid/373/Default.aspx", "items": [] }, 
      	     { "category_id": "0", "name": "Real Estate", "url": "http://corp.7-eleven.com/RealEstate/tabid/180/Default.aspx", "items": [] },
      	     { "category_id": "0", "name": "Supplier/Vendor Application", "url": "http://corp.7-eleven.com/ContactUs/DoingBusinesswith7Eleven/tabid/369/Default.aspx", "items": []}
      	   ]},
      	  
      	  
      	  { "category_id": "0", "name": "Franchise", "url": "http://franchise.7-eleven.com", "items": [] }, 
      	  { "category_id": "0", "name": "Careers", "url": "http://corp.7-eleven.com/Careers/tabid/136/Default.aspx", "items": []}, 
      	  { "category_id": "0", "name": "Login", "url": "Login.aspx", "items": []}
    	  ];

        for (var i = 0; i < anavitems.length; i++) {
            var item = anavitems[i];
            var li = $('<li>').html(item.name).data('item_name', item.name).data('item_url', item.url).data('category_id', item.category_id).bind('mouseenter', function(event) {
                $('#search').blur();
                $(this).addClass('hover');
                var class_name = $(this).data('item_name').replace(/[ @]+/ig, '-').toLowerCase();
                var selector = '#subnav_alt > div.' + class_name;
                $('#subnav > div').css('display', 'none');
                $('#subnav_alt > div').css('display', 'none');
                $('#nav .arrow').removeClass('hover');

                if (class_name == 'the-company') {
                    $(selector).css('display', 'block').css('left', $(this).position().left + $('#nav .alternate').position().left - 5);
                    $('#nav .arrow').addClass('hover');
                }

            }).bind('mouseleave', function(event) {
                $(this).removeClass('hover');
            }).bind('click', function(event) {
                if ($(this).text() == 'Login') window.location.href = 'Login.aspx';
                else if ($(this).text() == 'Logout') window.location.href = 'Logout.aspx';
                else if ($(this).data('item_url') != 'javascript:void(0)') window.open($(this).data('item_url'));
            });

            var class_name = item.name.replace(/[ @]+/ig, '-').toLowerCase();

            if (class_name == 'the-company') {
                li.css('padding-right', '15px');
            }

            $('#nav .alternate').append(li);


            var ul = $('<ul>');
            for (var j = 0; j < item.items.length; j++) {
                var sitem = item.items[j];
                //trace(sitem.name);
                var li = $('<li>').html(sitem.name).data('class_name', class_name).data('item_name', sitem.name).data('item_url', sitem.url).data('category_id', sitem.category_id).bind('mouseenter', function(event) {
                    $(this).addClass('hover');
                }).bind('mouseleave', function(event) {
                    $(this).removeClass('hover');
                }).bind('click', function(event) {

                    //document.location.href = $(this).data('item_url');
                    window.open($(this).data('item_url'));
                });
                ul.append(li);
            }

            var div = $('<div>').addClass(class_name).append(ul).append($('<div>').addClass('thumb')).bind('mouseleave', function(event) {
                $(this).hide();
            });
            $('#subnav_alt').append(div);
        }


        $('#nav ul.alternate li').each(function(i, o) {
            if ($(this).text() == 'Login' && $('#is_auth').val() == 'True') {
                $(this).text('Logout');
            }
        });


        Cufon.replace('#nav ul.main li', { fontFamily: 'MetaPro-Medi' });
        Cufon.replace('#nav ul.alternate li', { fontFamily: 'MetaPro-Medi' });
        Cufon.replace('#subnav ul li', { fontFamily: 'MetaPro-Medi' });

        //custom_font('#nav ul.main li', 'metaprobold');
        //custom_font('#nav ul.alternate li', 'delicious-f06e00');
        //custom_font('#subnav ul li', 'metaprobold');
        //custom_font('#nav ul.alternate li', 'metapromedium');

        var icategory_id = 0;
        var jcategory_id = 0;
        var kcategory_id = 0;
        var category_id = $('#category_id_hidden').val();
        var populated = false;

        for (var i = 0; i < navitems.length; i++) {
            var iitem = navitems[i];
            if (iitem.category_id == category_id) icategory_id = iitem.category_id;
            for (var j = 0; j < iitem.items.length; j++) {
                var jitem = iitem.items[j];
                if (jitem.category_id == category_id) {
                    jcategory_id = jitem.category_id;
                    icategory_id = iitem.category_id;
                }
                for (var k = 0; k < jitem.items.length; k++) {
                    var kitem = jitem.items[k];
                    if (kitem.category_id == category_id) {
                        kcategory_id = kitem.category_id;
                        jcategory_id = jitem.category_id;
                        icategory_id = iitem.category_id;
                    }
                }
            }
        }

        $('#nav ul.main li').each(function(i, o) {
            var lcategory_id = $(this).data('category_id');
            if (lcategory_id == icategory_id) {
                $(this).addClass('selected');
                Cufon.replace(this, { fontFamily: 'MetaPro-Medi' });
            }
        });
        //alert(icategory_id);

        $('#nav').show();




        crumb_init();
        snav_init();
        category_init();
    });
}
function variety_init(products) {
    if ($('#category_id_hidden').length > 0) {

        var category_id = $('#category_id_hidden').val();
        var upc = $('#upc_hidden').val();

        var params = {};
        params.cmd = 'GetProductByCategory';
        params.cmd_arg = $('#category_id_hidden').val();

        $.getJSON(service_url, params, function(data, status) {

            if (data.items.length > 0) {
                $('.variety-view').variety({ 'items': data.items, 'category_id': category_id, 'upc': upc });
            }
        });
    }
    carousel_init();
}
function carousel_init() {
    if ($('#category_id_hidden').length > 0) {

        $('.carousel').each(function(i, o) {
            var icategory_id = 0;
            var jcategory_id = 0;
            var kcategory_id = 0;
            var category_id = $('#category_id_hidden').val();
            var populated = false;
            var items = [];

            for (var i = 0; i < navitems.length; i++) {
                var iitem = navitems[i];
                if (iitem.category_id == category_id) {
                    items = iitem.items;
                    break;
                } else {
                    for (var j = 0; j < iitem.items.length; j++) {
                        var jitem = iitem.items[j];
                        if (jitem.category_id == category_id) {
                            items = jitem.items;
                            break;
                        } else {
                            for (var k = 0; k < jitem.items.length; k++) {
                                var kitem = jitem.items[k];
                                if (kitem.category_id == category_id) {
                                    items = kitem.items;
                                    break;
                                }
                            }
                            if (items.length > 0) break;
                        }
                    }
                    if (items.length > 0) break;
                }
            }

            var category_id = $('#category_id_hidden').val();
            var item_width = 193;
            if (category_id == '2000000') item_width = 239;
            else if (category_id == '5000000') item_width = 180;
            else if (category_id == '7000000') item_width = 239;

            $(this).carousel({ 'items': items, 'item_width': item_width });
        });
    }
}
function snav_init() {
    //trace('snav_init');
    /*
    <div class="item">
    <div class="header">Snacks</div>
    <div class="content">
    <ul>
    <li>Bakery</li>
    <li>Candy</li>
    <li>Frozen Foods</li>
    <li>Snacks &amp; Foods</li>
    </ul>
    </div>
    </div>
		
		
    the category_id could be level 2 or level 3
    if it is level 2 then all the others get filtered
    first we have to find the category_id aand at which level
    then you have to walk up to the root and show that menu with the item selected
    */
    if ($('#category_id_hidden').length > 0) {

        var icategory_id = 0;
        var jcategory_id = 0;
        var kcategory_id = 0;
        var category_id = $('#category_id_hidden').val();
        var populated = false;

        // ok now you need category_ids at all levels
        for (var i = 0; i < navitems.length; i++) {
            var iitem = navitems[i];
            if (iitem.category_id == category_id) icategory_id = iitem.category_id;
            for (var j = 0; j < iitem.items.length; j++) {
                var jitem = iitem.items[j];
                if (jitem.category_id == category_id) {
                    jcategory_id = jitem.category_id;
                    icategory_id = iitem.category_id;
                }
                for (var k = 0; k < jitem.items.length; k++) {
                    var kitem = jitem.items[k];
                    if (kitem.category_id == category_id) {
                        kcategory_id = kitem.category_id;
                        jcategory_id = jitem.category_id;
                        icategory_id = iitem.category_id;
                    }
                }
            }
        }

        populated = false;

        $('#snav').empty();
        for (var i = 0; i < navitems.length; i++) {
            var iitem = navitems[i];
            if (iitem.category_id == icategory_id) {
                //trace(iitem.name);
                for (var j = 0; j < iitem.items.length; j++) {
                    var jitem = iitem.items[j];
                    //trace(iitem.name + ':' + jitem.name);
                    var hdiv = $('<div>').addClass('header').append($('<div>').data('category_id', jitem.category_id).html(jitem.name)).hover(function() {
                        $(this).addClass('hover');
                        Cufon.replace(this, { fontFamily: 'ChunkFive' });
                    }, function() {
                        $(this).removeClass('hover');
                        Cufon.replace(this, { fontFamily: 'ChunkFive' });
                    });

                    var div = $('<div>').addClass('item').append(hdiv);

                    if (jitem.category_id == jcategory_id) {
                        div.addClass('selected');
                        if (jitem.items.length > 0) populated = true;
                    }

                    var ul = $('<ul>');
                    for (var k = 0; k < jitem.items.length; k++) {
                        var kitem = jitem.items[k];
                        //trace(iitem.name + ':' + jitem.name + ':' + kitem.name);
                        var ddiv = $('<div>').data('category_id', kitem.category_id).html(kitem.name).hover(function() {
                            $(this).addClass('hover');
                            Cufon.replace(this, { fontFamily: 'MetaPro-Medi' });
                        }, function() {
                            $(this).removeClass('hover');
                            Cufon.replace(this, { fontFamily: 'MetaPro-Medi' });
                        });
                        if (kitem.category_id == kcategory_id) {
                            ddiv.addClass('selected');
                        }
                        var li = $('<li>').append(ddiv);
                        ul.append(li);
                    }
                    var content = $('<div>').addClass('content').append(ul)
                    if (populated) content.addClass('populated');
                    div.append(content);
                    $('#snav').append(div);
                }

                $('#snav').addClass('category' + icategory_id.toString()[0]);
            }
        }

        $('#snav').append($('<div>').addClass('bar'));


        Cufon.replace('#snav .item .header div', { fontFamily: 'ChunkFive' });
        Cufon.replace('#snav .item.selected .header div', { fontFamily: 'ChunkFive' });

        //custom_font('#snav .item .header div', 'chunkfive');

        $('#snav .item .header div').bind('click', function(i, o) {
            document.location.href = 'category.aspx?categoryid=' + $(this).data('category_id');
            //$('#snav .item.selected').removeClass('selected');
            //$(this).addClass('selected');
        });


        Cufon.replace('#snav .content ul li div', { fontFamily: 'MetaPro-Medi' });
        Cufon.replace('#snav .content ul li.selected div.selected', { fontFamily: 'MetaPro-Medi' });
        //custom_font('#snav .content ul li div', 'metapromedium');

        $('#snav .item .content ul li div').bind('click', function(i, o) {
            document.location.href = 'category.aspx?categoryid=' + $(this).data('category_id');
        });

        $('#snav .item.selected .content ul li div').each(function(i, o) {
            if ($(this).data('category_id') == $('#category_id_hidden').val()) {
                //$(this).addClass('selected');
                //Cufon.replace(this, { fontFamily:'MetaPro-Medi'});
            }
        });

    }
}
function cview_init() {
    // trace('cview_init');
    if ($('#category_id_hidden').length > 0) {
        var icategory_id = 0;
        var jcategory_id = 0;
        var kcategory_id = 0;
        var category_id = $('#category_id_hidden').val();
        var items = [];
        //trace(category_id);

        // ok now you need category_ids at all levels
        for (var i = 0; i < navitems.length; i++) {
            var iitem = navitems[i];

            if (iitem.category_id == category_id) {
                icategory_id = iitem.category_id;
                items = iitem.items;
            }

            for (var j = 0; j < iitem.items.length; j++) {
                var jitem = iitem.items[j];

                //trace(jitem.category_id + ':' + typeof(jitem.category_id));
                //if(jitem.category_id.toString().indexOf('400') == 0) trace(jitem.category_id + ':' + category_id);

                if (jitem.category_id == category_id) {
                    jcategory_id = jitem.category_id;
                    icategory_id = iitem.category_id;
                    // need the child cats here
                    items = jitem.items;
                }
                for (var k = 0; k < jitem.items.length; k++) {
                    var kitem = jitem.items[k];
                    if (kitem.category_id == category_id) {
                        kcategory_id = kitem.category_id;
                        jcategory_id = jitem.category_id;
                        icategory_id = iitem.category_id;
                        // there are no child cats so display nothing

                    }
                }
            }
        }

        if (items.length > 0) {
            $('.category-view').each(function(i, o) {
                for (var i = 0; i < items.length; i++) {
                    var item = items[i];
                    item.photo = 'images/category-view/' + item.category_id + '_t.png';
                    var img = $('<img>').attr('src', item.photo).attr('width', '130').attr('height', '130').attr('alt', item.category_id);
                    var img_div = $('<div>').addClass('img').append(img);
                    var name_div = $('<div>').addClass('name').html(item.name);
                    var div = $('<div>').data('category_id', item.category_id).addClass('item').append(img_div).append(name_div);
                    div.bind('click', function(event) {
                        document.location.href = 'Category.aspx?CategoryId=' + $(this).data('category_id');
                    });
                    $(this).append(div);
                    if ((i + 1) % 4 == 0) $(this).append($('<br>').attr('clear', 'all'));
                }
            });
        }
        pview_init();
    }
}
function pview_filter(element) {
    var filter_flag = (element.find('#filter_check_box:checked').length > 0);
    element.data('filter_flag', filter_flag);
    show_page(element);
}

function show_page(element) {
    var page_id = $(element).data('page_id');
    var page_size = $(element).data('page_size');
    var filter_flag = $(element).data('filter_flag');
    var items_div = $(element).find('.items');

    vproducts = products;

    if (filter_flag === true) {
        vproducts = [];
        for (var i = 0; i < products.length; i++) {
            var item = products[i];
            if (item.product_type_cd == '03') {
                vproducts[vproducts.length] = products[i];
            }
        }
    }


    if ($.browser.msie == true) {

        if (!product_init_flag) {
            var upc = $.query.get('upc');
            if (upc) {
                var upc_found = false;
                for (var k = 0; k < products.length; k++) {
                    var item = products[k];
                    //trace(item.upc + ':' + upc);
                    if (item.upc == upc) {
                        show_page_item(item, element);
                        upc_found = true;
                        break;
                    }
                }
                if (!upc_found) {
                    show_page_items(element);
                }
            } else {
                show_page_items(element);
            }
            product_init_flag = true;
        } else {
            show_page_items(element);
        }

        //$('.product-main').fadeIn();    

    } else {
        items_div.fadeOut(function() {

            if (!product_init_flag) {
                var upc = $.query.get('upc');
                if (upc) {
                    var upc_found = false;
                    for (var k = 0; k < products.length; k++) {
                        var item = products[k];
                        //trace(item.upc + ':' + upc);
                        if (item.upc == upc) {
                            show_page_item(item, element);
                            upc_found = true;
                            break;
                        }
                    }
                    if (!upc_found) {
                        show_page_items(element);
                        items_div.fadeIn(function() { });
                    }
                } else {
                    show_page_items(element);
                    items_div.fadeIn(function() { });
                }
                product_init_flag = true;

            } else {
                show_page_items(element);
                items_div.fadeIn(function() { });
            }


        });
    }

    show_pager(element);
}
function show_page_items(element) {

    var page_id = $(element).data('page_id');
    var page_size = $(element).data('page_size');
    var filter_flag = $(element).data('filter_flag');
    var items_div = $(element).find('.items');

    $(items_div).empty();

    for (var i = 0; i < page_size; i++) {
        var ii = ((page_id - 1) * page_size) + i;
        if (vproducts.length > ii) {

            var item = vproducts[ii];
            item.photo = 'images/product-view/' + item.upc + '.png';
            var img = $('<img>').attr('src', item.photo).attr('width', '130').attr('height', '130').data('upc', item.upc);
            var img_div = $('<div>').addClass('img').data('item', item).append(img);
            var name_div = $('<div>').addClass('name').html(item.name);
            var div = $('<div>').attr('title', '').data('upc', item.upc).addClass('item').append(img_div).append(name_div);
            img_div.bind('click', function(event) {
                //document.location.href = 'Product.aspx?Upc=' + $(this).data('upc');
                //do we ajax here?  this would be slick; I don't really like the page load because then you have the back button problem;
                //rather just show the image right in line;
                // set the product info here
                var item = $(this).data('item');
                if (ajax_enabled) {
                    show_page_item(item, element);
                } else {
                    document.location.href = 'category.aspx?upc=' + item.upc
                }

            });

            //trace(filter_flag + ':' + item.product_type_cd);
            $(items_div).append(div);
            if ((i + 1) % 4 == 0) $(items_div).append($('<br>').attr('clear', 'all'));
        }
    }
}
function show_page_item(item, element) {

    window.location.hash = '#' + item.upc;

    var selectors = ['div.main', 'div.related', 'div.related-callout'];
    for (var i = 0; i < selectors.length; i++) $(selectors[i]).hide();

    var photo = 'images/product-view/' + item.upc + '.png';
    $('.category .product-main .photo .photo-img').attr('src', photo);
    $('.category .product-main .name').html(item.name);
    $('.category .product-main .name').addClass('category' + item.category_id.toString()[0]);
    $('.category .product-main .learn-button').addClass('category' + item.category_id.toString()[0]);
    $('.category .product-main .description').html(item.description);
    $('.category .product-related .title').addClass('category' + item.category_id.toString()[0]);

    $('.category .product-main .learn-button').hide();

    //trace(item.category_id);

    if (item.vendor_url.length > 0) {
        $('.category .product-main .learn-button').data('url', item.vendor_url).show();
    }

    $('div.product-related').related({ 'upc': item.upc, 'category_id': item.category_id });

    var selectors = ['div.product-main', 'div.product-related', 'div.product-related-callout'];
    for (var i = 0; i < selectors.length; i++) $(selectors[i]).show();
}
function show_pager(element) {
    var page_id = $(element).data('page_id');
    var page_size = $(element).data('page_size');
    var filter_flag = $(element).data('filter_flag');
    var items_div = $(element).find('.items');
    var page_div = $(element).find('.page');

    var n = Math.ceil(vproducts.length / page_size);
    element.data('page_count', n);

    page_div.empty();

    var oColl = page_div.find('a');
    if (oColl.length == 0) {

        page_div.append('Items per page:');

        var page_size_select = $('<select>').attr('id', 'page_size_select');
        var values = [];
        var pvalues = [4, 8, 12, 16, 32, 48];

        for (var i = 0; i < pvalues.length; i++) {
            if ((vproducts.length / pvalues[i]) < 12) {
                values[values.length] = pvalues[i];
            }
        }

        for (var i = 0; i < values.length; i++) {
            var value = values[i];
            var opt = $('<option>').attr('value', value).text(value);
            if (value == page_size) opt.attr('selected', 'selected');
            page_size_select.append(opt);
        }
        page_size_select.bind('change', function(event) {
            element.data('page_size', $(this).val());
            show_page(element);
            //trace($(this).val());
        });
        page_div.append(page_size_select).append('&nbsp;&nbsp;');


        var a = $('<a>').attr('href', 'javascript:void(0)').text('Prev').bind('click', function(event) {
            var page_id = $(element).data('page_id') - 1;
            if (page_id == 0) page_id = n;
            $(element).data('page_id', page_id);
            show_page(element);
        });
        page_div.append(a).append('&nbsp;&nbsp;');

        for (var i = 1; i <= n; i++) {
            var a = $('<a>').data('page_id', i).attr('href', 'javascript:void(0)').text(i).bind('click', function(event) {
                $(element).data('page_id', $(this).data('page_id'));
                show_page(element);
            });
            page_div.append(a);
            if (i < n) page_div.append(' / ');
        }

        var a = $('<a>').attr('href', 'javascript:void(0)').text('Next').bind('click', function(event) {
            var page_id = $(element).data('page_id') + 1;
            if (page_id > n) page_id = 1;
            $(element).data('page_id', page_id);
            show_page(element);
        });
        page_div.append('&nbsp;&nbsp;').append(a);
    }

    var oColl = page_div.find('a');
    for (var i = 0; i < oColl.length; i++) {
        var class_name = 'page-item';
        if (i == 0 || i == oColl.length - 1) {
            // do nothing;
        } else {
            if ((i) == page_id) class_name = 'page-item-selected';
        }
        var a = oColl[i];
        $(a).removeClass().addClass(class_name);
    }

}
function pview_init() {

    if ($('#category_id_hidden').length > 0) {

        var params = {};
        params.cmd = 'GetProductByCategory';
        params.cmd_arg = $('#category_id_hidden').val();

        $.getJSON(service_url, params, function(data, status) {

            if (data.items.length > 0) {

                products = data.items;

                // for non-props
                $('.product-view').each(function(i, o) {
                    var element = $(this);

                    element.empty();
                    element.data('page_id', 1);
                    element.data('page_size', 12);
                    element.data('product_id', 0);
                    element.data('filter_flag', false);

                    var hdr = $('<div>').addClass('header');

                    var filter_check_box = $('<input>').attr('type', 'checkbox').attr('id', 'filter_check_box');

                    filter_check_box.bind('click', function(event) {
                        pview_filter(element);
                    });

                    var filter_div = $('<div>').attr('id', 'filter').addClass('filter').append('Filter by: ').append(filter_check_box).append(' 7-Select');
                    hdr.append(filter_div)

                    var page_div = $('<div>').attr('id', 'page').addClass('page');
                    hdr.append(page_div);

                    element.append(hdr);

                    var items_div = $('<div>').addClass('items');
                    element.append(items_div);

                    var div_learn = $('<div>').addClass('learn-button').bind('click', function(event) {
                        window.open($(this).data('url'));
                    });
                    var div_product_main = $('<div>').addClass('product-main').append($('<div>').addClass('name')).append($('<div>').addClass('description')).append(div_learn).append($('<div>').addClass('photo').append($('<img>').addClass('photo-img')));
                    var div_product_related = $('<div>').addClass('product-related').append($('<div>').addClass('title')).append($('<div>').addClass('product-related-view'));
                    var div_product_related_callout = $('<div>').addClass('product-related-callout');
                    $('.category > div:first').append(div_product_main).append(div_product_related_callout).append(div_product_related);

                    show_page(element);


                    $(window).bind('hashchange', function() {
                        var hash = location.hash;
                        //trace('pview_hash');
                        if (hash.length == 0) show_page(element);

                        var upc = hash.replace('#', '');
                        for (var i = 0; i < products.length; i++) {
                            var item = products[i];
                            if (item.upc == upc) {
                                show_page_item(item, element);
                            }
                        }
                    });

                });


            }
            variety_init();
        });
    }
    cross_init();
}
function cross_init() {
    if ($('#category_id_hidden').length > 0) {
        var category_id = $('#category_id_hidden').val();
        var upc = $.query.get('upc');
        $('.category .right-ad .cross-view').cross({ 'category_id': category_id, 'upc': upc });
    }
}
function get_timeofdayid() {
    var dtm = new Date();
    var h = dtm.getHours();
    var timeofdayid = 5;

    if (h >= 23) {
        timeofdayid = 5;
    } else if (h >= 18) {
        timeofdayid = 4;
    } else if (h >= 15) {
        timeofdayid = 3;
    } else if (h >= 12) {
        timeofdayid = 2;
    } else if (h >= 3) {
        timeofdayid = 1;
    } else {
        timeofdayid = 5;
    }
    return timeofdayid;
}
function daypart_init() {
    $('#time_of_day').each(function(i, o) {
        var ul = $('<ul>').append($('<li>').attr('timeofdayid', 1).addClass('morning')).append($('<li>').attr('timeofdayid', 2).addClass('afternoon')).append($('<li>').attr('timeofdayid', 3).addClass('late-afternoon')).append($('<li>').attr('timeofdayid', 4).addClass('evening')).append($('<li>').attr('timeofdayid', 5).addClass('late-night'));
        $(this).append($('<div>').addClass('callout')).append($('<div>').addClass('header').append(ul)).append($('<div>').addClass('content').append($('<div>').addClass('daypart')));

        var dtm = new Date();
        var h = dtm.getHours();
        var class_name = 'morning';
        var daypartid = 1;
        var timeofdayid = get_timeofdayid();

        if (h >= 23) {
            class_name = 'late-night';
        } else if (h >= 18) {
            class_name = 'evening';
        } else if (h >= 15) {
            class_name = 'late-afternoon';
        } else if (h >= 12) {
            class_name = 'afternoon';
        } else if (h >= 3) {
            class_name = 'morning';
        } else {
            class_name = 'late-night';
        }

        var selector = '.header li.' + class_name;
        $(this).find(selector).addClass('selected');
        // now load the daypart

        $(this).find('.daypart').daypart({ 'daypartid': daypartid, 'timeofdayid': timeofdayid });


        $(this).find('.header li').bind('mouseenter', function(event) {
            $('#time_of_day .header li.hover').removeClass('hover');
            $(this).addClass('hover');
        }).bind('mouseleave', function(event) {
            $(this).removeClass('hover');
        }).bind('click', function(event) {
            $('#time_of_day .header li.selected').removeClass('selected');
            $(this).addClass('selected');
            $(this).parent().parent().parent().find('.daypart').daypart({ 'daypartid': daypartid, 'timeofdayid': $(this).attr('timeofdayid') });


        });


    });
}
function footer_init() {
    $('#footer .quick-links').bind('click', function(event) {
        var footer = $(this).parent();
        var bottom = footer.css('bottom');
        bottom = parseInt(bottom);
        if (bottom == 0) {
            footer.animate({ 'bottom': '122px' });
        } else {
            footer.animate({ 'bottom': '0px' });
        }
    });

    $('#footer .box').corner();
}
function lottery_init() {
    $('#lottery_map area').bind('click', function(event) {
        //alert('hit');
        var alt = $(this).attr('alt');
        var values = alt.split(',');
        var state_id = values[0];
        var left = values[1];
        var top = values[2];

        left = left - 10;
        top = top - 10;

        $('#lottery .check').css({ 'top': top + 'px', 'left': left + 'px' }).show();

        var params = {};
        params.cmd = 'GetGameByState';

        params.cmd_arg = state_id;
        var url = service_url + '?cmd=' + params.cmd + '&cmd_arg=' + params.cmd_arg;
        //window.location.href = url;
        //alert('go');
        $.getJSON(service_url, params, function(data, status) {
            //alert('return');
            $('#lottery .filter .games ul').empty();
            //trace(params.cmd_arg);
            //trace(data.items.length);
            // need to get the name from the root node
            //if(data.items.length == 0){
            //$('#lottery .filter .state').html(params.cmd_arg);
            //}

            if (data.items.length == 0) {
                $('#lottery .filter').animate({ 'left': '0px' }, function() {
                    $('#lottery .check').hide();
                    $('#lottery .no-results').fadeIn();
                });
            } else {
                for (var i = 0; i < data.items.length; i++) {
                    var game = data.items[i];
                    $('#lottery .filter .state').attr('state_id', game.state_id).html(game.state_name);
                    $('#lottery .filter .games ul').append($('<li>').append($('<input>').attr('type', 'checkbox').attr('game_id', game.game_id)).append(' ' + game.name));
                }

                var dtm = new Date();
                var sdtm = (dtm.getMonth() + 1) + '/' + dtm.getDate() + '/' + dtm.getFullYear();

                $('#lottery .date input').val(sdtm);
                $('#lottery .filter').animate({ 'left': '215px' });
            }

        });

    });

    $('#lottery .filter .button').bind('click', function(event) {
        lottery_results_click();
    });

    $('#lottery .date .calendar').each(function(i, o) {
        var element = $(this);
        var dtm = new Date();
        var sdtm = (dtm.getMonth() + 1) + '/' + dtm.getDate() + '/' + dtm.getFullYear();
        element.DatePicker({ 'start': 0, 'format': 'm/d/Y', 'eventName': 'click', 'date': sdtm, 'current': '05/14/2010', 'onChange': function() { element.val(element.DatePickerGetDate(1)); element.DatePickerHide(); } });
    });

    $('#lottery .date .calendar-button').bind('click', function(event) {
        $(this).parent().find('.calendar').DatePickerShow();
    });

    $('#lottery .results .button').bind('click', function(event) {

        var pt = $('#lottery .results').offset();
        //trace('pt.top:' + pt.top);
        $(window).scrollTop(parseInt(pt.top));
    });

    $('#lottery').append($('<div>').addClass('no-results').bind('click', function(event) {
        $(this).fadeOut();
    }));

}
function hot_foods_flash_init() {
    var flashvars = {};
    var params = { wmode: "transparent" };
    var attributes = { id: "flashHotFoods" };
    swfobject.embedSWF("Media/hotFoods.swf", "promotions_hot_foods", "740", "500", "10.0.0", false, flashvars, params, attributes);
}
function category_init() {

    if ($('#category_id_hidden').length > 0) {
        var category_id = $('#category_id_hidden').val();
        var url = 'images/category-view/' + category_id + '.png';

        var category_num = category_id.toString()[0];
        //alert(category_num);

        $('#snav .item .header div cufon').each(function(i, o) {
            //trace($(this).attr('alt'));
            if ($(this).attr('alt') == 'Beauty') {
                $(this).css('margin-left', '11px');
                var div = $('<div>').css({ 'position': 'absolute', 'top': '38px', 'left': '70px', 'width': '14px', 'height': '12px', 'border': '0px solid blue', 'background-image': 'url(images/amp.png)' });
                $(this).after(div);
            }
        });

        //trace(url);
        // heights: 345, 493
        //trace($('.category .main').length);

        $('.category  .main').css('background-image', 'url(' + url + ')');


        switch (category_id) {
            case '2002000':
            case '3002004-':
            case '3002009':
            case '3002005':
            case '3001000':
            case '4001001':
            case '4001002':
            case '4001003':
            case '5003000':
            case '5004000':
            case '5005000':
            case '5006000':
            case '6002000':
            case '7004000':
                $('.category .main').css('height', '520px');
                $('.category  .related').hide();
                $('.category  .related-callout').hide();
                break;

        }
        switch (category_id) {
            case '3002002':
                $('.category .level3-prop .main .copy').css('top', '110px');
                break;
            case '3002007':
                $('.category .level3-prop .main .copy').css('top', '75px');
                break;
            case '2003001':
                hot_foods_flash_init();
                break;
        }

        cview_init();
    }
}
function showproduct() {
    $('div > div.related, div.main, div.related-callout, div.main-callout').hide();

    $('div.product').append($('<img>').attr('src', 'images/product_main.png'));
    $('div.product-related').append($('<img>').attr('src', 'images/product_related.png'));

    $('div > div.product, div.product-related').show();


}
function flash_init() {
    if ($('#main_promo_flash').length > 0) {
        var flashvars = {};
        flashvars.oneVAR = "false";
        flashvars.anotherVAR = "howdy";
        var params = {};
        params.menu = "false";
        params.quality = "best";
        params.bgcolor = "ffffff";
        //params.allowfullscreen = "true";
        params.wmode = "transparent";
        params.allowscriptaccess = "always";
        var attributes = {};
        attributes.id = "flashCarousel";
        attributes.align = "middle";
        swfobject.embedSWF("media/carousel.swf", "main_promo_flash", "956", "415", "10.0.0", "media/expressInstall.swf", flashvars, params, attributes);
    }
}

$(window).scroll(content_height_adjust).resize(content_height_adjust);

function locator_init() {
    if ($('#locator_flag').length > 0) {
        $('#map_results .promo').css('background-image', 'url()');

        var daypartid = 1;
        var timeofdayid = get_timeofdayid();
        var data = {};
        data.cmd = 'GetDayPart';

        var cmd_json = {};
        cmd_json.daypartid = daypartid;
        cmd_json.timeofdayid = timeofdayid;
        data.cmd_json = JSON.stringify(cmd_json);

        data.dtm = new Date();

        var service_url = 'default.ashx';

        var url = service_url + '?cmd=' + data.cmd + '&cmd_json=' + data.cmd_json;

        $.getJSON(service_url, data, function(data) {
            var items = data.items;
            if (items.length > 0) {
                var item = items[0];
                var a = $('<div>').data('item', item).data('title', item.caption).append($('<img>').attr('src', 'images/day-part/' + item.folder + '/' + item.photo));
                a.bind('mouseenter', function(event) {
                    var table = $('<table>').addClass('hover').attr('border', 0).attr('cellpadding', 0).attr('cellspacing', 0).attr('width', '100%').attr('height', '100%').append($('<tr>').append($('<td>').css('height', '17px'))).append($('<tr>').append($('<td>').attr('height', '40px').css('padding-left', '12px').css('padding-right', '22px').html($('<span>').html($(this).data('title'))))).append($('<tr>').append($('<td>').css('height', '7px')));
                    $(this).append(table);
                }).bind('mouseleave', function(event) {
                    $(this).find('.hover').remove();
                }).bind('click', function(event) {
                    var item = $(this).data('item');
                    document.location.href = item.url;
                });
                $('#map_results .promo').append($('<div>').addClass('item').append(a));
            }
        });
    }
}
function map_init() {
    // trace('map_init');
    $('#map').css({ width: '562px', height: '420px' });
    map = new VEMap('map');
    map.SetDashboardSize(VEDashboardSize.Normal);
    var opts = new VEMapOptions();
    opts.EnableBirdseye = false;
    map.LoadMap(null, 4, VEMapStyle.Road, false, VEMapMode.Mode2D, true, 0, opts);
    find_button_click();
}

$(window).load(function(event) {

    $('#footer .share').unbind();

    if ($('#menubox').length > 0) {

        $('#menubox #find').bind('keyup', function(event) {
            if (event.keyCode == 13) { find_button_click(); }
            return false;
        }).bind('focus', function(event) {
            var only = $('#menubox .only');
            var div = $('#menubox .extended');
            if (!div.is(':visible')) {
                div.slideDown();
                only.addClass('only-down');
            }
        });

        $('#map_results .turns-container .footer').bind('click', function(event) {
            $('#map_results .items .directions-container').remove();
            $('#map_results .items').show();
            $('#map_results .pager').show();
            $('#map_results .show-me').html('Directions');
            $('#map_results .turns-container').hide();
            map.DeleteRoute();

            var lyr = map.GetShapeLayerByIndex(0);
            if (lyr) lyr.Show();

            ViewShapes();
        });

        $('#menubox #find_container .hot').bind('click', function(event) {
            find_button_click();
        });

        $('#search').placeholder();

        $('#menubox .extended .collapse').bind('click', function(event) {
            only_click();
        });
        $('#menubox input[type=checkbox]').bind('click', function(event) {
            find_button_click();
        });

        $('#menubox .more-locations-button').bind('click', function(event) {
            locator_post();
        });

        $('#menubox .only').bind('click', function(event) {
            only_click();
        });
        $('#menubox .close-button').bind('click', function(event) {
            only_click();
        });


        if ($('#locator_flag').length > 0) {
            $('#menubox .extended .items').hide();
            $('#menubox .more-locations-button').hide();
            $('#menubox .items-subheader').hide();
            $('#menubox .extended').css('height', '232px');
        }

        if (window.location.hash == '#hot_foods') {
            hyperdrop();
        }

    }

    $('body').bind('keypress', function(event) {
        return event.keyCode != 13;
    });

});
function forgot_button_click() {
    var params = {};
    params.cmd = 'Forgot';
    params.cmd_arg = $('#username').val();
    params.dtm = new Date();

    var url = service_url + '?cmd=' + params.cmd + '&cmd_arg=' + params.cmd_arg;
    //trace(url);
    //window.location.href = url;

    $.getJSON(service_url, params, function(data, status) {
        //alert(data.status);
        switch (data.status) {
            case "Valid":
                $('#forgot #username_validator').html('');
                $('#forgot .content').fadeOut(function() {
                    $('#forgot > .confirmation').fadeIn();
                });
                break;
            case "Username":
                // now show the username is valid
                $('#forgot #username_validator').html("We can't find that address. Bummer.");
                break;
        }
    });
}
function login_init() {

    if ($('#login').length > 0) {

        $('#password').bind('keyup', function(event) {
            if (event.keyCode == 13) { $('#login .go-button').trigger('click'); }
            return false;
        });

        $('#login .go-button').click(function() {
            var params = {};
            params.cmd = 'Login';
            params.dtm = new Date();

            var cmd_json = {};
            cmd_json.username = $('#username').val();
            cmd_json.password = $('#password').val();
            cmd_json.remember = true;

            params.cmd_json = JSON.stringify(cmd_json);
            //trace(params.cmd_json);
            var url = service_url + '?cmd=' + params.cmd + '&cmd_json=' + params.cmd_json;
            //trace(url);
            //window.location.href = url;

            $.getJSON(service_url, params, function(data, status) {
                //trace(data.status);
                switch (data.status) {
                    case "Locked":
                        $('#login #validator').html('Your account is locked  Please contact us.');
                        break;
                    case "Valid":
                        $('#login #validator').html('');
                        document.location.href = 'default.aspx';
                        break;
                    case "Invalid":
                    case "Username":
                    case "Password":
                        $('#login #validator').html('Invalid credentials.');
                        break;
                }
            });

        });
    }
}
function register_init() {
    if ($('#register').length > 0) {

        var uage = $.cookie('uage');
        if (uage != null) {
            // show uage  
            $('#register .header .complete, #register .header .completeness,  #register > .step').fadeOut(function() {
                $('#register > .uage').fadeIn();
            });

        }

        $('#entertainment_flag, #drinks_flag, #hot_food_flag, #fresh_flag').data('open', false).bind('click', function(event) {
            var open = $(this).data('open');
            if (open == false) {
                var id = $(this).attr('id');
                var h = 100;
                switch (id) {
                    case 'entertainment_flag':
                        h = 100;
                        break;
                    case 'drinks_flag':
                        h = 140;
                        break;
                    case 'hot_food_flag':
                        h = 140;
                        break;
                    case 'fresh_flag':
                        h = 120;
                        break;
                }

                $('#register .items').css({ 'height': '27px', 'background-image': 'url(images/register-step3-items-tile.png)' }).removeClass('open');
                $('#register .check').data('open', false);

                var url = 'images/register-step3-items-open-' + h + '-tile.png';
                $(this).parent().parent().css({ 'height': h + 'px', 'background-image': 'url(' + url + ')' }).addClass('open');
                $(this).data('open', true);
            } else {
                $(this).parent().parent().css({ 'height': '27px', 'background-image': 'url(images/register-step3-items-tile.png)' }).removeClass('open');
                $(this).parent().parent().find('.check').data('open', false);
                $(this).data('open', false);
            }

        });


        $('#register .next-button, .finish-button').bind('click', function(event) {

            $('#aspnetForm').validate();
            var is_valid = $('#aspnetForm').valid();
            if (is_valid) {


                // age validation here
                var birth_day = $('#birth_day').val();
                var birth_month = $('#birth_month').val();
                var birth_year = $('#birth_year').val();

                if (birth_day.length > 0 && birth_month > 0 && birth_year > 0) {
                    birth_day = parseInt(birth_day);
                    birth_month = parseInt(birth_month) - 1;
                    birth_year = parseInt(birth_year);

                    var birth_dtm = new Date(birth_year, birth_month, birth_day);
                    var dtm = new Date();
                    var ref_dtm = new Date((dtm.getFullYear() - 13), dtm.getMonth(), dtm.getDate());

                    var delta = (ref_dtm - birth_dtm);
                    var s = ref_dtm + '\n' + birth_dtm + '\n' + delta;

                    if (delta < 0) {
                        $.cookie('uage', 'true', { expires: 1 });
                        $('#register .header .complete, #register .header .completeness,  #register > .step').fadeOut(function() {
                            $('#register > .uage').fadeIn();
                        });
                        return;
                    }
                }

                var form_data = $('#aspnetForm').serialize();
                //alert(form_data);
                trace(form_data);

                $.ajax({
                    type: "POST",
                    async: true,
                    processData: false,
                    url: 'default.ashx',
                    data: form_data,
                    dataType: "json",
                    success: function(data) {
                        //trace('yea');
                    },
                    error: function(data) {
                        //trace('no');
                    }
                });

                var id = $(this).parents('.step').attr('id');
                var n = parseInt(id.replace('step', '')) + 1;

                $('#register .step.open').animate({ 'height': '15px' }, function() {
                    $(this).removeClass('open').addClass('closed');

                    if (n == 4 && $('#register').hasClass('profile')) n = 1;

                    if (n == 4) {
                        $('#register .header .complete, #register .header .completeness,  #register > .step').fadeOut(function() {
                            $('#register > .confirmation').fadeIn();
                        });
                    } else {
                        $('#register > .intro').hide();

                        $('#register #step' + n).css('height', '15px').addClass('open').removeClass('closed').animate({ 'height': '358px' }, function() {
                            var id = $(this).attr('id');
                            if (id == 'step2') $('#register .header .complete').css('background-image', 'url(images/register-complete-30-tile.png)');
                            else if (id == 'step3') $('#register .header .complete').css('background-image', 'url(images/register-complete-60-tile.png)');
                            else $('#register .header .complete').css('background-image', 'url(images/register-complete-00-tile.png)');
                        });
                    }
                });
            }
        });

        $('#register .step-cancel').bind('click', function(event) {
            var p = $(this).parents('.step');
            p.find('input,select').each(function(i, o) {
                var tagName = $(o).tagName();
                switch (tagName) {
                    case 'input':
                        if ($(o).attr('type') == 'checkbox' || $(o).attr('type') == 'radio') $(o).attr('checked', false);
                        else $(o).val('');
                        break;
                    case 'select':
                        $(o).val('');
                        break;
                }
                $(o).trigger('blur');
            });
        });

        $('#register .step-delete').bind('click', function(event) {
            // json delete the account here

            var params = {};
            params.cmd = 'Delete';
            params.cmd_arg = $('#email').val();
            params.dtm = new Date();

            var url = service_url + '?cmd=' + params.cmd + '&cmd_arg=' + params.cmd_arg;
            //trace(url);
            //window.location.href = url;

            $.getJSON(service_url, params, function(data, status) {
                document.location.href = 'register.aspx';
            });

        });


        if ($('#register').hasClass('profile')) {


            $('#register .step > .header').css('cursor', 'pointer').bind('click', function(event) {

                var div = $(this).parents('.step');
                if (div.hasClass('closed')) {

                    var n = parseInt(div.attr('id').replace('step', ''));

                    $('#register .step.open').animate({ 'height': '15px' }, function() {
                        $(this).removeClass('open').addClass('closed');
                        if (n == 4) n = 1;
                        $('#register > .intro').hide();

                        $('#register #step' + n).css('height', '15px').addClass('open').removeClass('closed').animate({ 'height': '358px' }, function() {
                            var id = $(this).attr('id');
                            if (id == 'step2') $('#register .header .complete').css('background-image', 'url(images/register-complete-30-tile.png)');
                            else if (id == 'step3') $('#register .header .complete').css('background-image', 'url(images/register-complete-60-tile.png)');
                            else $('#register .header .complete').css('background-image', 'url(images/register-complete-00-tile.png)');
                        });
                    });

                }
            });


            $('#email').rules('remove', 'remote');
            $('#accept').rules('remove', 'required');

            // get the data
            var auth_username = $('#auth_username').val();
            var auth_user_id = $('#auth_user_id').val();
            
            if(auth_username.length == 0) location.href = 'logout.aspx';

            var params = {};
            params.cmd = 'GetUser';
            params.cmd_arg = auth_username;
            params.dtm = new Date();

            var url = service_url + '?cmd=' + params.cmd + '&cmd_arg=' + params.cmd_arg;
            trace(url);
            //window.location.href = url;


            $.getJSON(service_url, params, function(data, status) {
              trace('data.items.length:' + data.items.length);
              
                for (var i = 0; i < data.items.length; i++) {
                    var item = data.items[i];
                    $('#email').val(item.email);
                    $('#password').val(item.password);
                    $('#first_name').val(item.first_name);
                    $('#last_name').val(item.last_name);
                    $('#birth_month').val(item.birth_month);
                    $('#birth_day').val(item.birth_day);
                    $('#birth_year').val(item.birth_year);

                    $('#register #ethnicity').placeholder();
                    $('#ethnicity').val(item.ethnicity);

                    $('#register #gender').placeholder();
                    $('#gender').val(item.gender);

                    if (item.accept == 1) $('#accept').attr('checked', true);
                    if (item.seven_news == 1) $('#seven_news').attr('checked', true);
                    if (item.slurpee_news == 1) $('#slurpee_news').attr('checked', true);
                    if (item.mobile_news == 1) $('#mobile_news').attr('checked', true);

                    $('#mobile_npa').val(item.mobile_npa);
                    $('#mobile_nxx').val(item.mobile_nxx);
                    $('#mobile_xxxx').val(item.mobile_xxxx);

                    if (item.mobile_news == 1) $('#mobile_news').attr('checked', true);

                    if(item.exclusive_promotions_flag == 1) $('#exclusive_promotions_flag').attr('checked', true);
                    if(item.gaming_flag == 1) $('#gaming_flag').attr('checked', true);
                    if(item.gift_cards_flag == 1) $('#gift_cards_flag').attr('checked', true);
                    if(item.music_flag == 1) $('#music_flag').attr('checked', true);
                    if(item.big_gulp_flag == 1) $('#big_gulp_flag').attr('checked', true);
                    if(item.hot_coffee_flag == 1) $('#hot_coffee_flag').attr('checked', true);
                    if(item.iced_coffee_flag == 1) $('#iced_coffee_flag').attr('checked', true);
                    if(item.slurpee_flag == 1) $('#slurpee_flag').attr('checked', true);
                    if(item.from_the_fridge_flag == 1) $('#from_the_fridge_flag').attr('checked', true);
                    if(item.big_bite_flag == 1) $('#big_bite_flag').attr('checked', true);
                    if(item.check_tenders_flag == 1) $('#check_tenders_flag').attr('checked', true);
                    if(item.pizza_flag == 1) $('#pizza_flag').attr('checked', true);
                    if(item.taquitos_burritos_flag == 1) $('#taquitos_burritos_flag').attr('checked', true);
                    if(item.wings_flag == 1) $('#wings_flag').attr('checked', true);
                    if(item.bakery_flag == 1) $('#bakery_flag').attr('checked', true);
                    if(item.sandwiches_flag == 1) $('#sandwiches_flag').attr('checked', true);
                    if(item.salads_flag == 1) $('#salads_flag').attr('checked', true);
                    if(item.fruit_flag == 1) $('#fruit_flag').attr('checked', true);
                    if(item.snacks_flag == 1) $('#snacks_flag').attr('checked', true);
                    if(item.financial_flag == 1) $('#financial_flag').attr('checked', true);
                    if(item.lottery_flag == 1) $('#lottery_flag').attr('checked', true);

                    $('#register input[type=text]').placeholder();
                    $('#register input[type=password]').placeholder();

                }
            });

        } else {
            $('#register input[type=text]').placeholder();
            $('#register input[type=password]').placeholder();
            $('#register #ethnicity').placeholder();
            $('#register #gender').placeholder();
        }

    }
}

function fast_cash_init() {
    if ($('#fast-cash').length > 0) {
        $('#fast-cash .header').bind('click', function(event) {
            var id = $(this).parents('.panel').attr('id');
            var n = parseInt(id.replace('panel', ''));

            $('#fast-cash .panel.open').animate({ 'height': '38px' }, function() {
                $(this).removeClass('open').addClass('closed');
                $('#fast-cash #panel' + n).css('height', '38px').addClass('open').removeClass('closed').animate({ 'height': '128px' }, function() {
                    // No functionality needed at this point.
                });
            });
        });
    }
}

function the_goods_init() {
    if ($('#the-goods').length > 0) {
        $('#the-goods .header').bind('click', function(event) {
            var id = $(this).parents('.panel').attr('id');
            var n = parseInt(id.replace('panel', ''));

            $('#the-goods .panel.open').animate({ 'height': '38px' }, function() {
                $(this).removeClass('open').addClass('closed');
                $('#the-goods #panel' + n).css('height', '38px').addClass('open').removeClass('closed').animate({ 'height': '219px' }, function() {
                    // No functionality needed at this point.
                });
            });
        });
    }
}
function like_init() {
    if ($('#category_id_hidden').length > 0) {
        var category_id = $('#category_id_hidden').val();
        $('#like').addClass('category-' + category_id).like({ 'category_id': category_id });
    }
}
function terms_click() {
    $('#privacy-policy-popup').fadeOut();
    $('#terms-of-use-popup').fadeIn();
}
$(document).ready(function(event) {


    content_height_adjust();
    flash_init();
    nav_init();
    register_init();
    login_init();

    daypart_init();
    footer_init();
    lottery_init();
    locator_init();

    fast_cash_init();
    the_goods_init();

    like_init();

    $('.thirsty-cold-big-gulp').click(function(){
      window.location.href = 'category.aspx?categoryid=4001001';
    });
    $('.thirsty-cold-iced-coffee').click(function(){
      window.location.href = 'category.aspx?categoryid=4001002';
    });
    $('.thirsty-cold-slurpee').click(function(){
      window.location.href = 'category.aspx?categoryid=4001003';
    });


    if ($('#is_auth').val() == 'True') {
        $('#menubox .content').addClass('authenticated');
    }
    $('#menubox .my-button').hover(function() {
        $(this).parent().addClass('content-my');
    }, function() {
        $(this).parent().removeClass('content-my');
    });

    $('#menubox .content .find-button,.my-button').click(function(event) {
        if ($(this).hasClass('find-button')) {
            $(this).parent().removeClass('content-my');
        } else {
            //alert('hit');
            $(this).parent().addClass('content-my');
            document.location.href = $('#menubox .content').hasClass('authenticated') ? 'profile.aspx' : 'register.aspx';
        }
    });

    $('#nav .home').bind('click', function(event) {
        window.location.href = './';
    }).bind('mouseenter', function(event) {
        $('#subnav > div').css('display', 'none');
        $('#subnav_alt > div').css('display', 'none');
    });

    if ($('#main_promo').length > 0) {
        //$('#crumb').hide();
    }
    if ($('#map_results').length > 0) {
        $('#map_container').show();
    }


    $('#search').search();

    $('#search_button').bind('click', function(event) {
        //trace(event.which);  
    });

    $('.terms-of-use-link').click(function(event) {
        show_terms();
    });

    $('#terms-of-use-popup .legal-close').click(function(event) {
        hide_terms();
    });

    $('.privacy-policy-link').click(function(event) {
        show_privacy();
    });

    $('#privacy-policy-popup .legal-close').click(function(event) {
        hide_privacy();
    });

    map_init();

});

