﻿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()); } }
Array.prototype.has = function(v) { for (i = 0; i < this.length; i++) { if (this[i] == v) return true; } return false; }

$.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 app_url = null;
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" alt="asterisk"></div>';
var store_routed;
var addthis_config = { ui_click: true };
var rdtm = new Date();
var rproducts = [];
var gws;
var mappings = [];

var mobile = /iphone|ipod|android|blackberry|mini|windows\sce|palm/i.test(navigator.userAgent);
var fullsite = /mobile.7-eleven.com/i.test(document.referrer);
if (mobile && !fullsite) document.location.href = "http://mobile.7-eleven.com";

function trackWebEvent(name, url) {
  var settings = {};
  settings.url = 'default.ashx';
  settings.cache = true;
  settings.async = true;
  settings.dataType = 'json';

  var data = {};
  data.cmd = 'TrackWebEvent';
  data.name = name;
  data.url = url;
  
  settings.data = data;
  settings.error = function(XMLHttpRequest, textStatus, errorThrown) { trace(textStatus); trace(errorThrown); };
  settings.success = function(data, textStatus, XMLHttpRequest) {
    trace('TrackWebEvent:' + data.status);
    if(data.status == 'error'){
      trace(data.error);
    }
  };
  $.ajax(settings);
}
function _gtrack(category, action, label, value) {

  var v1 = $('#geo_ip_address').val();
  var v2 = $('#geo_ip_city').val() + ' ' + $('#geo_ip_state').val();
  var cdtm = new Date();
  var v3 = parseInt((cdtm - rdtm) / 1000);

  if (arguments.length > 1) v1 = arguments[1];
  if (arguments.length > 2) v2 = arguments[2];
  if (arguments.length > 3) v2 = v2 + ' ' + arguments[3];

  if (_gaq) {
    //trace("_gaq.push(['_trackEvent', '" + category + "', '" + v1 + "', '" + v2 + "', " + v3 + "])");
    _gaq.push(['_trackEvent', category, v1, v2, v3]);
  } else {
    //trace('_gaq NOT found');
  }
}

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;
  params.sid = $('#source_id').val();


  $.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_act() {
  $('#act-popup').fadeOut();
  var settings = {};
  settings.url = 'default.ashx';
  settings.cache = true;
  settings.async = true;
  settings.dataType = 'json';

  var data = {};
  data.cmd = 'GetAct';
  settings.data = data;
  trace('Getact');
  settings.error = function(XMLHttpRequest, textStatus, errorThrown) { trace(textStatus); trace(errorThrown); };
  settings.success = function(data, textStatus, XMLHttpRequest) {
    $('#act-popup .legal-copy').html(data.html);
    $('#act-popup').fadeIn();
  };
  $.ajax(settings);
}
function hide_act() {
  $('#act-popup').fadeOut();
}
function show_rules() {
  $('#rules-popup').fadeOut();
  var settings = {};
  settings.url = 'default.ashx';
  settings.cache = true;
  settings.async = true;
  settings.dataType = 'json';

  var data = {};
  data.cmd = 'GetRules';
  settings.data = data;
  trace('GetRules');
  settings.error = function(XMLHttpRequest, textStatus, errorThrown) { trace(textStatus); trace(errorThrown); };
  settings.success = function(data, textStatus, XMLHttpRequest) {
    $('#rules-popup .legal-copy').html(data.html);
    $('#rules-popup').fadeIn();
  };
  $.ajax(settings);
}

function hide_rules() {
  $('#rules-popup').fadeOut();
}

function show_faq(scrollTop) {
  $('#faq-popup').fadeOut();
  var settings = {};
  settings.url = 'default.ashx';
  settings.cache = true;
  settings.async = true;
  settings.dataType = 'json';

  var data = {};
  data.cmd = 'GetFaq';
  settings.data = data;

  settings.error = function(XMLHttpRequest, textStatus, errorThrown) { trace(textStatus); trace(errorThrown); };
  settings.success = function(data, textStatus, XMLHttpRequest) {
    $('#faq-popup .legal-copy').html(data.html);
    window.setTimeout(function(){
      $('#faq-popup .legal-copy').attr('scrollTop', scrollTop);
    }, 100);
    $('#faq-popup').fadeIn();
  };
  $.ajax(settings);
}

function hide_faq() {
  $('#faq-popup').fadeOut();
}

function show_terms() {
  $('#privacy-policy-popup').fadeOut();
  var settings = {};
  settings.url = 'default.ashx';
  settings.cache = true;
  settings.async = true;
  settings.dataType = 'json';

  var data = {};
  data.cmd = 'GetTerms';
  settings.data = data;

  settings.error = function(XMLHttpRequest, textStatus, errorThrown) { trace(textStatus); trace(errorThrown); };
  settings.success = function(data, textStatus, XMLHttpRequest) {
    $('#terms-of-use-popup .legal-copy').html(data.html);
  $('#terms-of-use-popup').fadeIn();
  };
  $.ajax(settings);
}

function hide_terms() {
  $('#terms-of-use-popup').fadeOut();
}

function show_privacy() {
  $('#terms-of-use-popup').fadeOut();
  var settings = {};
  settings.url = 'default.ashx';
  settings.cache = true;
  settings.async = true;
  settings.dataType = 'json';

  var data = {};
  data.cmd = 'GetPrivacy';
  settings.data = data;

  settings.error = function(XMLHttpRequest, textStatus, errorThrown) { trace(textStatus); trace(errorThrown); };
  settings.success = function(data, textStatus, XMLHttpRequest) {
    $('#privacy-policy-popup .legal-copy').html(data.html);
  $('#privacy-policy-popup').fadeIn();
  };
  $.ajax(settings);
}

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 = furl('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.sid = $('#source_id').val();

  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.sid = $('#source_id').val();

  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', 'snap'];

      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) {
  // if there are no results, display any error message and return
  if (places == null) {
    trace((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';
  params.sid = $('#source_id').val();

  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;

  //trace(JSON.stringify(cmd_json));


  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;
    //trace('stores.length:' + stores.length);

    $('#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;
  h += 4; // super

  //trace(height + ':' + pt.top + ':' + h);  

  if (h > 0) $('#content_repeat').css({ 'height': h + 'px' });


  if ($('#unity_dialog').length > 0) {
    var w = $(window).width();
    var l = w / 2 - 400;
    $('.ui-dialog').css({ 'left': l + 'px' });
  }

}

  function trace(s){
		//var c = arguments.callee.caller.toString();
		//window.console.log('c:' + c);

	  	if(window.console){
  		window.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.sid = $('#source_id').val();
    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 = furl('category.aspx?categoryid=' + $(this).data('category_id'));
      });


      $('#crumb').addClass('category' + icategory_id.toString()[0]);
      $('#crumb').show();
      //$('#crumb').css('display','inline-block');
    });

  }



}
function nav_init() {

  var params = {};
  params.cmd = 'GetNav';
  params.sid = $('#source_id').val();

  $.getJSON(service_url, params, function(data, status) {

    
      var m = $('#nav .main');
      var s = $('#subnav');
      m.empty();
      s.empty();

      navitems = data.items;
      
      $.each(navitems, function(i, o){
        var li = $('<li>').data('category_id', o.category_id);
        li.append($('<a>').attr('href', furl(o.url)).html(o.name));
        
        if(o.items.length > 0){
          var ul2 = $('<ul>').addClass('subnav');
          $.each(o.items, function(i2, o2){
            var li2 = $('<li>').data('category_id', o2.category_id);
            li2.append($('<a>').attr('href', furl(o2.url)).html(o2.name));
            li2.hover(function(){
              $(this).addClass('hover');
              var image_name = $(this).data('category_id') + '.png';
              $(this).parent().parent().find('.thumb').css('background-image', 'url(images/nav-item/' + image_name + ')');
            }, function(){
              $(this).removeClass('hover');
            });
            ul2.append(li2);
          });
          var div2 = $('<div>').append($('<div>').addClass('thumb')).append(ul2);
          li.append(div2);
        }
        li.hover(function(){
          m.find('li.hover').removeClass('hover');
          $(this).addClass('hover');
          var image_name = $(this).data('category_id') + '.png';
          $(this).parent().find('.thumb').css('background-image', 'url(images/nav-item/' + image_name + ')');
        }, function(){
          $(this).removeClass('hover');
        });
        m.append(li);
      });

      var anavitems = [{ "category_id": "0", "name": "Franchise", "url": "http://franchise.7-eleven.com", "items": [] }, { "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": "Store Development", "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": "Careers", "url": "http://careers.7-eleven.com/careers/Careers.html", "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 - 38) + $('#nav .alternate').position().left - 5);
          $('#nav .arrow').addClass('hover');
        }
      }).bind('mouseleave', function(event) {
        trace('mouseleave');
        trace(event.clientY);
        $(this).removeClass('hover');
      }).bind('click', function(event) {
        if ($(this).text() == 'Login') window.location.href = furl('Login.aspx');
        else if ($(this).text() == 'Logout') window.location.href = furl('Logout.aspx');
        else if ($(this).data('item_url') != 'javascript:void(0)') window.open($(this).data('item_url'));
        if ($(this).text() == 'Franchise' || $(this).text() == 'Careers') {
          _gtrack('Header', 'Click', $(this).text());
        }
      });

      var class_name = item.name.replace(/[ @]+/ig, '-').toLowerCase();

      if (class_name == 'the-company') {
        li.css('padding-right', '12px');
      }

      $('#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();
			  $('#nav .arrow').removeClass('hover');
      });
      $('#subnav_alt').append(div);
    }

    $('#nav ul.alternate li').each(function(i, o) {
      if ($(this).text() == 'Login' && $('#is_auth').val() == 'True') {
        $(this).text('Logout');
      }
    });

    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');
      }
    });

		var url = location.href.toLowerCase();
		if((url.indexOf('profile.aspx') != -1) || (url.indexOf('register.aspx') != -1)){
			$('#menubox .content').addClass('content-my');
		}

    $('#nav').show();

    search_init();
    crumb_init();
    snav_init();
    category_init();
  });
}
function variety_init(products) {
  //trace('variety_init:' + $('.variety-view').length);
  

  if ($('#category_id_hidden').length > 0) {


    var category_id = $('#category_id_hidden').val();
    var upc = $('#upc_hidden').val();

    var params = {};
    params.cmd = 'GetProductByCategory';
    params.sid = $('#source_id').val();
    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 });
      }
    });


    if (category_id == 6001005) {
      $('.level3-non-prop .related-callout').css({ 'top': '309px' });
    } else {
      $('.level3-non-prop .related-callout').css({ 'top': '209px' });
    }
  }
  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 get_cname(category_id) {
  var retval = category_id;
  for (var i = 0; i < navitems.length; i++) {
    var iitem = navitems[i];
    //trace(category_id + ':' + iitem.category_id);
    if (iitem.category_id == category_id) retval = iitem.name;
    for (var j = 0; j < iitem.items.length; j++) {
      var jitem = iitem.items[j];
      if (jitem.category_id == category_id) retval = jitem.name;
      for (var k = 0; k < jitem.items.length; k++) {
        var kitem = jitem.items[k];
        if (kitem.category_id == category_id) retval = kitem.name;
        if (retval != category_id) break;
      }
      if (retval != category_id) break;
    }
    if (retval != category_id) break;
  }
  return retval;
}
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 + ':' + jitem.name.length);



          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' });
          });

          //if(jitem.name.length > 18){  hdiv.css('font-size', '11pt');   }

          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 kitem_name = kitem.name;

            // hack_begin
            if (kitem.category_id == '6001007') kitem_name = 'Vanilla Visa Gift Cards';
            // hack_end

            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) {
      var category_id_value = $(this).data('category_id');
      if (category_id_value == 6001006) category_id_value = 6001005;
      if (category_id_value == 2003006) category_id_value = 4001003;

      //      if (CategoryId == 2003006) Response.Redirect("category.aspx?categoryid=4001003");

      document.location.href = furl('category.aspx?categoryid=' + category_id_value);
      //$('#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) {
      var category_id_value = $(this).data('category_id');
      if (category_id_value == 6001006) category_id_value = 6001005;
      if (category_id_value == 2003006) category_id_value = 4001003;
      document.location.href = furl('category.aspx?categoryid=' + category_id_value);
    });

    $('#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.name);
          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) {
            var category_id_value = $(this).data('category_id');
            if (category_id_value == 6001006) category_id_value = 6001005;
            document.location.href = furl('Category.aspx?CategoryId=' + category_id_value);
          });
          $(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];
      }
    }
  } else {
    var b1 = false;
    var b2 = true;
    for (var i = 0; i < products.length; i++) {
      var item = products[i];
      if (item.product_type_cd == '03') {
        b1 = true;
      } else {
        b2 = false;
      }
    }
    if (b1 == false || b2 == true) $('#filter').hide();
  }

  if ($.browser.msie == true) {

    if (!product_init_flag) {
      // var upc = $.query.get('upc');
      var upc = $('#upc_hidden').val();

      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');
        var upc = $('#upc_hidden').val();

        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('alt', item.name).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 = furl('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();
  }

  //trace('related_init:' + $('div.product-related').length);

  $('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.sid = $('#source_id').val();
    params.cmd_arg = $('#category_id_hidden').val();

    var upc = $('#upc_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) {
                $('#upc_hidden').val(upc);

                show_page_item(item, element);
              }
            }
          });

        });


      }

      variety_init();
      setTimeout(function(){
        reactions_init();
        page_share_init();
      }, 1000);

    });
  }
  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).attr('title', 'morning').addClass('morning')).append($('<li>').attr('timeofdayid', 2).attr('title', 'afternoon').addClass('afternoon')).append($('<li>').attr('timeofdayid', 3).attr('title', 'late afternoon').addClass('late-afternoon')).append($('<li>').attr('timeofdayid', 4).attr('title', 'evening').addClass('evening')).append($('<li>').attr('timeofdayid', 5).attr('title', 'late night').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.sid = $('#source_id').val();

    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 itotal = $('#paging-total').val();

    var category_num = category_id.toString()[0];
    var className = 'category' + category_num;
    $('.category').addClass(className);
    
    $('.uniform-section .utility .paging').each(function(i, o){
      var ul = $(this);
      ul.addClass(className);
      ul.find('li').click(function(){
        if(!$(this).hasClass('selected') && !$(this).hasClass('no-select')){
          var p = $(this).parent().parent().parent();
          var s = $(this).html();
          if(s == 'View Pages'){

            ul.find('li').each(function(i, o){
              $(this).removeClass('selected');
              if($(this).html() == '1') $(this).addClass('selected');
            });
            
            ul.removeClass('view-pages');
            p.find('.featured > div').each(function(i, o){
              var d = $(this);
              if(d.hasClass('items') && !d.hasClass('one')){
                d.css({'top':'0px'}).hide();
              }else{
                d.show();
              }
            });

            var istart = 1;
            var iend = 15;
            if(iend > itotal) iend = itotal;
            
            ul.find('.paging-numbers').html(istart + ' - ' + iend + ' of ' + itotal + ' items');

          }else if(s == 'View All'){
            trace('view all');
            // ok show all then position all of the pages
            // hide the pager too
            ul.find('li').each(function(i, o){
              $(this).removeClass('selected');
              if($(this).html() == '1') $(this).addClass('selected');
            });

            ul.addClass('view-pages');
                        
            p.find('.featured > div').each(function(i, o){
              var d = $(this);
              if(d.hasClass('items') && !d.hasClass('one')){
               if(d.hasClass('two')) d.css({'top':'892px'});
               else if(d.hasClass('three')) d.css({'top':'1784px'});
               else if(d.hasClass('four')) d.css({'top':'2676px'});
               else if(d.hasClass('five')) d.css({'top':'3568px'});
               else if(d.hasClass('six')) d.css({'top':'4460px'});
              }
              d.show();
            });
            
          }else{
            ul.find('.selected').removeClass('selected');
            $(this).addClass('selected');
            var n = parseInt(s);
            p.find('.featured > div').hide();

            if(n == 1) p.find('div.one').show();
            else if(n == 2) p.find('div.two').show(); 
            else if(n == 3) p.find('div.three').show(); 
            else if(n == 4) p.find('div.four').show(); 
            else if(n == 5) p.find('div.five').show(); 
            else if(n == 6) p.find('div.six').show(); 
            
            var istart = n==1?1:((n-2)*20)+16;
            var iend = n==1?15:istart+20;
            if(iend > itotal) iend = itotal;
            
           ul.find('.paging-numbers').html(istart + ' - ' + iend + ' of ' + itotal + ' items');
              
          }
        }
      });
    });

    $('.uniform-section .utility #item_sort').change(function(){

      if($(this).val().indexOf('Select') != -1) return;
      
      var settings = {};
      settings.url = 'default.ashx';
      settings.cache = false;
      settings.async = false;
      settings.dataType = 'json';
    
      var data = {};
      data.cmd = 'ItemSort';
      data.cmd_arg = $(this).val();
      settings.data = data;
    
      settings.error = function(XMLHttpRequest, textStatus, errorThrown) { trace(textStatus); trace(errorThrown); };
      settings.success = function(data, textStatus, XMLHttpRequest) {
        window.setTimeout(function(){window.location.reload()}, 100);
      };
      $.ajax(settings);
    });

    $('.uniform-section .utility #item_filter').change(function () {

      var settings = {};
      settings.url = 'default.ashx';
      settings.cache = false;
      settings.async = false;
      settings.dataType = 'json';

      var data = {};
      data.cmd = 'ItemFilter';
      data.cmd_arg = $(this).val();
      settings.data = data;

      settings.error = function (XMLHttpRequest, textStatus, errorThrown) { trace(textStatus); trace(errorThrown); };
      settings.success = function (data, textStatus, XMLHttpRequest) {
        window.setTimeout(function () { window.location.reload() }, 100);
      };
      $.ajax(settings);
    });


    $('#snav .item .header div cufon').each(function(i, o) {
      //trace($(this).attr('alt'));
      if ($(this).attr('alt') == '& ') {
        $(this).css('margin-left', '11px');
        //var div = $('<div>').css({ 'position': 'absolute', 'top': '67px', 'left': '70px', 'width': '14px', 'height': '12px', 'border': '0px solid blue', 'background-image': 'url(images/amp.png)' });
        var div = $('<div>').addClass('amp');
        $(this).append(div);
      }
    });

    //trace(url);
    // heights: 345, 493
    //trace($('.category .main').length);

    $('.category  .main').css('background-image', 'url(' + url + ')');

    //trace('category_id:' + category_id);

    switch (category_id) {
      case '2002000':
      case '3002004':
      case '3002010':
      case '3002009':
      case '3002005':
      case '3001000':
      case '4001001':
      //case '4001002':
      //case '4001003':
      case '5003000':
      case '5004000':
      case '5005000':
      case '5006000':
      case '6002000':
      case '7004000':
      case '7007000':
        $('.category .main').css('height', '520px');
        $('.category  .related').hide();
        $('.category  .related-callout').hide();
        break;
      case '4001003':
        $('.category .main').css('height', '340px');
        $('.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", "996", "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';
    data.sid = $('#source_id').val();

    var cmd_json = {};
    cmd_json.daypartid = daypartid;
    cmd_json.timeofdayid = timeofdayid;
    data.cmd_json = JSON.stringify(cmd_json);

    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('alt', item.caption).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 = furl(item.url);
        });
        $('#map_results .promo').append($('<div>').addClass('item').append(a));
      }
    });
  }
}
function map_error() {
  //trace('map_error');
}
function map_init() {
  //trace('map_init');
  $('#map').css({ width: '562px', height: '420px' });
  map = new VEMap('map');
  map.SetDashboardSize(VEDashboardSize.Normal);
  map.SetCredentials("Atrlr4oMpbetqPwD4XD7NuQNTp7Rg6SKFPpFQtGa-1HrJq6vZzb5ayf5PTpFb0ao");
  var opts = new VEMapOptions();
  opts.EnableBirdseye = false;
  map.LoadMap(null, 4, VEMapStyle.Road, false, VEMapMode.Mode2D, true, 0, opts);
  map.AttachEvent("onerror", map_error);
  find_button_click();
}

$(window).load(function(event) {

  //trace('mappings');
  //trace(mappings);

  //trace(furl('Default.aspx'));

  $('#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 #find').placeholder();

    $('#search_container').bind('mouseleave', function(event) {
      $('#search').trigger('blur');
      $(this).find('.search-items-container').fadeOut('fast');
    });

    $('#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');
      $('#menubox .extended .store-hours').hide();
    }

    if (window.location.hash == '#hot_foods') {
      hyperdrop();
    }

  }

  $('body').bind('keypress', function(event) {
    return event.keyCode != 13;
  });

  $('#footer .legal-links #fbtw .link-001').hover(function() {
    $('#footer .legal-links #fbtw .dialog').removeClass('twitter').fadeIn('fast');
  }, function() {
    $('#footer .legal-links #fbtw .dialog').hide();
  });

  $('#footer .legal-links #fbtw .link-002').hover(function() {
    $('#footer .legal-links #fbtw .dialog').addClass('twitter').fadeIn('fast');
  }, function() {
    $('#footer .legal-links #fbtw .dialog').hide();
  });
  
  

});
function forgot_button_click() {
  var params = {};
  params.cmd = 'Forgot';
  params.cmd_arg = $('#username').val();
  params.sid = $('#source_id').val();

  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.sid = $('#source_id').val();

      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 = furl('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();
        $('.req').hide();
      });

    }

    $('#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);
        form_data.sid = $('#source_id').val();

        $.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;
        //trace('n:' + n);

        $('#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 {

            if (n == 1) {
              $('#register .req').show();
            } else {
              $('#register .req').hide();
            }

            $('#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.sid = $('#source_id').val();

      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 = furl('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;

            if (n == 1) {
              $('#register .req').show();
            } else {
              $('#register .req').hide();
            }

            $('#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 = furl('logout.aspx');

      var params = {};
      params.cmd = 'GetUser';
      params.sid = $('#source_id').val();
      params.cmd_arg = auth_username;

      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);
          if (item.slurpee_mobile_news == 1) $('#slurpee_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.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 is_int(s) {
  var re = /^(\+|\-)?\d+$/;
  return re.test(s);
}

function the_goods_init() {
	$('#the-goods,#the-promotions,#the-partners').each(function(i, o){
		var element = $(this);
    
    element.find('.header').bind('click', function(event) {
      var id = $(this).parents('.panel').attr('id');
      var n = parseInt(id.replace('panel', ''));

      element.find('.panel.open').animate({ 'height': '38px' }, function() {
        $(this).removeClass('open').addClass('closed');
        element.find('#panel' + n).css('height', '38px').addClass('open').removeClass('closed').animate({ 'height': '219px' }, function() {
          // No functionality needed at this point.
        });
      });
    });

    var h = location.hash.replace('#','').toLowerCase();
    if(h.indexOf('panel') == 0){
    	var panel = h.replace('panel', '');
			if(is_int(panel)){
				var selector = '#panel' + panel + ' .header';
				$(selector).trigger('click');
			}
    }

    $('.link-2005000-01').click(function(){
      $('.copy-2005000-02').fadeIn('fast');
    });

    $('.copy-2005000-02 .ex').click(function(){
      $('.copy-2005000-02').fadeOut('fast');
    });

    
  });
}
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 tweet_init() {
  if ($('#category_id_hidden').length > 0) {
    $('.tweet-4003001,.tweet-4001002').each(function (i, o) {
      var element = $(this);

      element.click(function () {
        window.open('http://twitter.com/7eleven');
      });

      var settings = {};
      settings.url = 'default.ashx';
      settings.cache = false;
      settings.async = false;
      settings.dataType = 'json';

      var data = {};
      data.cmd = 'GetTweetById';
      data.sid = $('#source_id').val();
      data.cmd_arg = '1';
      if (element.hasClass('tweet-4001002')) data.cmd_arg = 2;
      settings.data = data;

      settings.error = function (XMLHttpRequest, textStatus, errorThrown) { trace(textStatus); trace(errorThrown); };
      settings.success = function (data, textStatus, XMLHttpRequest) {
        for (var i = 0; i < data.items.length; i++) {
          var item = data.items[i];
          //trace(item.text.length);
          var td = $('<td>').append($('<div>').addClass('tweet-begin')).append(item.text).append($('<div>').addClass('tweet-end'));
          var table = $('<table>').addClass('tweet-table').attr('border', '0').attr('cellpadding', '0').attr('cellspacing', '0').append($('<tr>').append(td));
          if (item.text.length <= 31) {
            $(element).addClass('center');
            $(table).addClass('center');
          }
          element.empty().append(table);
          element.find('td').each(function (i, o) {
            Cufon.replace(this, { fontFamily: 'MetaPro-Bold' });
          });

        }
      };
      $.ajax(settings);

    });
  }
}
function Dialog_Open(element, event, ui) {
  $('.ui-widget-overlay').click(function() {
    $(element).dialog('close');
  });
  $('.ui-dialog-titlebar', ui).hide();
  $('.ui-widget-content', ui).css({ 'border-color': 'transparent', 'background-color': 'transparent', 'background-image': 'url("")' });

  $('div.close', ui).css({ 'background-image': 'url(images/spacer.gif)' }).click(function() {
    $(element).dialog('close');
  });
}
function Unity_Open(element, event, ui) {
  $('.ui-widget-overlay').click(function() {
    $('#unity_dialog').dialog('close');
  });
  $('.ui-dialog-titlebar', ui).hide();
  $('.ui-widget-content', ui).css({ 'border-color': 'transparent', 'background-color': 'transparent', 'background-image': 'url("")' });

  $('div.close', ui).css({ 'background-image': 'url(images/spacer.gif)' }).click(function() {
    $('#unity_dialog').dialog('close');
  });

  $('div.link', ui).click(function () {
    location.href = furl('locator.aspx');
  }).append($('<img>').attr('src','images/spacer.gif').css({'width':'183px','height':'48px'}));

}
function FreeSlurpee_Open(element, event, ui) {

  $('.ui-widget-overlay').click(function() {
    $('#free_slurpee_dialog').dialog('close');
  });
  $('.ui-dialog-titlebar', ui).hide();
  $('.ui-widget-content', ui).css({ 'border-color': 'transparent', 'background-color': 'transparent', 'background-image': 'url("")' });

  $('div.close', ui).css({ 'background-image': 'url(images/spacer.gif)' }).click(function() {
  $('#free_slurpee_dialog').dialog('close');
  });
  $('div.link', ui).css({ 'background-image': 'url(images/spacer.gif)' }).click(function() {
    location.href = furl('locator.aspx');
  });
}
function Unity_Close(element, event, ui) {

}
function Dialog_Close(element, event, ui) {
}
function FreeSlurpee_Close(element, event, ui) {
}
function coffree_init() {
  var coffree = $.cookie('coffree');
  var base_href = $('base').attr('href');
  var is_ssl = (base_href.indexOf('https://') != -1);
  trace({'coffree':coffree , 'is_ssl':is_ssl}); 
  if (coffree == null && !is_ssl) {
    var left = $(window).width() / 2 - 429;
    $('#coffree_dialog').bind('clickoutside', function(event) { $(this).hide(); });
    $("#coffree_dialog").dialog({ autoOpen: true, width: 715, draggable: false, position: [left, 127], modal: true, title: '', resizable: false, open: function(event, ui) { Dialog_Open(this, event, ui); }, close: function(event, ui) { Dialog_Close(this, event, ui); } });

    var dtm = new Date(2011, 10, 1, 0, 0, 0, 0);
    $.cookie('coffree', 'true', { expires: dtm });
  }
}
function unity_init(s) {
  if($('.home-carousel').length == 0) return;
  var cname = 'unity';
  if (arguments.length > 0) cname = arguments[0];
  var unity = $.cookie(cname);
  var base_href = $('base').attr('href');
  var is_ssl = (base_href.indexOf('https://') != -1);
  trace({cname:unity , 'is_ssl':is_ssl}); 
  if (unity == null && !is_ssl) {
    if($('#unity_dialog').length == 0) {
      var udiv = $('<div>').attr('id', 'unity_dialog').append($('<img>').attr('src', 'images/'+cname+'-interstitial.png').css({'width':'685px','height':'450px'})).append($('<div>').addClass('close').html('&nbsp;')).append($('<div>').addClass('link'));
      $('form').append(udiv);
    }
    var left = $(window).width() / 2 - 400;
    $('#unity_dialog').bind('clickoutside', function(event) { $(this).hide(); });
    $("#unity_dialog").dialog({ autoOpen: true, width: 715, draggable: false, position: [left, 127], modal: true, title: '', resizable: false, open: function(event, ui) { Unity_Open(this, event, ui); }, close: function(event, ui) { Unity_Close(this, event, ui); } });
    //var dtm = new Date(2011, 10, 1, 0, 0, 0, 0);
    //$.cookie('unity', 'true', { expires: dtm });
    $.cookie(cname, 'true');
  }
}
function free_slurpee_init() {
  if ($('#free_slurpee_dialog').length > 0) {
    var left = $(window).width() / 2 - 493;
    $('#free_slurpee_dialog').bind('clickoutside', function(event) { $(this).hide(); });
    $("#free_slurpee_dialog").dialog({ autoOpen: true, width: 986, draggable: false, position: [left, 177], modal: true, title: '', resizable: false, open: function(event, ui) { FreeSlurpee_Open(this, event, ui); }, close: function(event, ui) { FreeSlurpee_Close(this, event, ui); } });
    $('#free_slurpee_dialog').css('width','690px');
  }
  $('.homepage-callout').click(function() {
    location.href = furl('locator.aspx');
  });
}
function terms_click() {
  $('#privacy-policy-popup').fadeOut();
  $('#terms-of-use-popup').fadeIn();
}
function search_init() {
  $('.featured-links-container').each(function(i, o) {

    var cmd_arg = $.query.get('sTerms');
    var re = /^\d{5}$|^\d{5}-\d{4}$/;
    var is_zip = re.test(cmd_arg);
    if (is_zip) document.location.href = furl('locator.aspx?1=1&find=' + cmd_arg);

    var element = $(this);
    var div = element.find('.featured-links-mid');
    var data = {};
    data.cmd = 'Search';
    data.sid = $('#source_id').val();
    data.cmd_arg = cmd_arg;
    var service_url = 'default.ashx';
    $.getJSON(service_url, data, function(data) {
      div.empty();


      if (data.items.length > 0) $('.featured-links-btm').css('top', '-2px');

      for (var i = 0; i < data.items.length; i++) {
        var item = data.items[i];

        if (false) {
          //trace('item.Title:' + item.Title);
          //trace('item.Description:' + item.Description);
          //trace('item.CorporateFlag:' + item.CorporateFlag);
          //trace('item.PromotionFlag:' + item.PromotionFlag);
          //trace('item.Target:' + item.Target);
        }

        var sitem = $('<div>').addClass('search-item');

        if (i == data.items.length - 1) sitem.css('border-color', 'transparent');

        //item.Target = item.CorporateFlag == 'true'? '_blank':'_self';

        var sthumb = $('<div>').addClass('thumb').html($('<a>').data('term', item.Title).attr('href', furl(item.Url)).attr('target', item.Target).append($('<img>').attr('alt', item.Title).attr('src', 'images/search-view/' + item.Thumb)).click(function() {
          search_log(this);
        }));

        sitem.append(sthumb);

        var scontent = $('<div>').addClass('content');

        var d = item.Title;
        if (d.length > 20) {
          d = d.substr(0, 20);
          if (d.lastIndexOf(' ') != -1) {
            d = d.substr(0, d.lastIndexOf(' '));
          } else {
            d = d.substr(0, 12);
          }
          d += '...';
        }

        scontent.append($('<div>').addClass('text').html($('<a>').data('term', item.Title).attr('href', furl(item.Url)).attr('target', item.Target).html(d).click(function() {
          search_log(this);

        })));
        //scontent.append($('<div>').addClass('likes').html(item.Likes + " Likes"));

        if (item.CorporateFlag == 'true') {
          sitem.addClass('corporate');
          item.DisplayName = "Learn More";
          var d = item.Description;
          if (d.length > 22) {
            d = d.substr(0, 22);
            if (d.lastIndexOf(' ') != -1) {
              d = d.substr(0, d.lastIndexOf(' '));
            } else {
              d = d.substr(0, 14);
            }
            d += '...';
          }
          scontent.append($('<div>').addClass('description').html(d));
          scontent.append($('<div>').addClass('found').html('<a href="' + furl(item.Url.toLowerCase()) + '" target="' + item.Target + '">' + item.DisplayName + '</a>'));
        } else if (item.PromotionFlag == 'true') {
          sitem.addClass('promotion');
          item.DisplayName = item.Url.toLowerCase().replace('http://', '').replace('https://', '');
          if (item.DisplayName == "locator.aspx") item.DisplayName = "Find a Store";
          else if (item.DisplayName == "www.facebook.com/slurpee?v=app_171309566218941") item.DisplayName = "Slurpee Unity Tour 2010";
          else item.DisplayName = "Learn More";

          var d = item.Description;
          if (d.length > 22) {
            d = d.substr(0, 22);
            if (d.lastIndexOf(' ') != -1) {
              d = d.substr(0, d.lastIndexOf(' '));
            } else {
              d = d.substr(0, 14);
            }
            d += '...';
          }

          scontent.append($('<div>').addClass('description').html(d));
          scontent.append($('<div>').addClass('found').html('<a href="' + furl(item.Url.toLowerCase()) + '" target="' + item.Target + '">' + item.DisplayName + '</a>'));
        } else {
          scontent.append($('<div>').addClass('categories').html("Related Categories: " + item.Categories));
        }

        sitem.append(scontent);

        div.append(sitem);
      }
    });

  });



  $('.product-tab, .company-tab').click(function() {
    var element = $(this);
    $('.product-tab, .company-tab').removeClass('active');
    element.addClass('active');

    if (element.hasClass('product-tab')) {
      $('#search_filter .product').show();
      $('#search_filter .company').hide();
      // show products
      products_init();
    } else {
      $('#search_filter .product').hide();
      $('#search_filter .company').show();
      // show company
      company_init(false);
    }
  });

  $('.results-container .results .header .status').html('You searched for: <span class="term">' + $.query.get('sTerms') + '</span>');

  products_init();
  company_init(true);
}
function ws_count() {
  if (gws.results) {
    var itotal = gws.cursor ? gws.cursor.estimatedResultCount : 0;
    $('.company-tab .count').html('(' + itotal + ')');
    var items_div = $('.results-container .results .items');
    window.setTimeout(function() { if (itotal > 0 && items_div.html().toLowerCase().indexOf('no results found') != -1) { trace('company-tab'); $('.company-tab').trigger('click'); } }, 333);
  }
}
function ws_complete() {
  if (gws.results) {

    var itotal = gws.cursor ? gws.cursor.estimatedResultCount : 0;
    var index = gws.cursor ? gws.cursor.currentPageIndex : 0;

    $('.company-tab .count').html('(' + itotal + ')');

    var items_div = $('.results-container .results .items');
    items_div.empty();
    if (gws.results.length > 0) {
      for (var i = 0; i < gws.results.length; i++) {
        var result = gws.results[i];
        var target = result.url.toLowerCase().indexOf('http://www.7-eleven.com') == 0 ? '_self' : '_blank';
        //trace(target + ':' + result.url);

        var div = $('<div>').addClass('list-item').append($('<a>').addClass('title').attr('href', result.unescapedUrl).attr('target', target).html(result.titleNoFormatting)).append($('<div>').addClass('description').html(result.content)).append($('<a>').addClass('url').attr('href', result.unescapedUrl).attr('target', target).html(result.visibleUrl));
        items_div.append(div);
      }
    } else {
      items_div.html('<div class="list-item">No results found.</div>');
    }
    $('.results-container .results .pager').pagination(itotal, { separator: '/', current_page: index, prev_text: 'Prev', next_text: 'Next', items_per_page: 6, callback: CompanyResultPage });



  } else {
    //alert('no results');
  }
}

function company_init() {
  //trace('company_init');
  var domains = [];
  $('#search_filter .company input').each(function(i, o) {
    if ($(this).is(':checked')) domains.push($(this).attr('id') == 'site_01' ? 'www.7-eleven.com' : $(this).attr('id') == 'site_02' ? 'corp.7-eleven.com' : $(this).attr('id') == 'site_03' ? 'bcp.7-eleven.com' : 'asdf.7-eleven.com');
  });
  var domain = domains.join(' OR site:');

  var is_count = false;

  if (arguments.length > 0) is_count = arguments[0];

  gws = new google.search.WebSearch();
  gws.setResultSetSize(6);

  if (domain.length == 0) domain = 'asdf.7-eleven.com';
  //if(domain == 'asdf.7-eleven.com') domain = 'www.7-eleven.com OR site:corp.7-eleven.com OR site:bcp.7-eleven.com';
  //trace('domain:' + domain);

  gws.setSiteRestriction(domain);

  if (is_count) {
    gws.setSearchCompleteCallback(this, ws_count, null);
  } else {
    gws.setSearchCompleteCallback(this, ws_complete, null);
  }
  var term = $.query.get('sTerms');
  //trace('term:' + term);
  gws.execute(term);

  //  $('#resultsHeader').html("Results for \"" + unescape($.query.get('sTerms')) + "\"");

  var filters = [];
  $('#search_filter .company .group').each(function(i, o) {
    var is_all_checked = true;
    $(this).find('input').each(function(i, o) {
      if ($(this).is(':checked')) filters.push($(this).attr('id'));
      else is_all_checked = false;
    });
    var cdiv = $(this).find('.clear');
    if (is_all_checked) cdiv.fadeOut();
    else cdiv.fadeIn('fast');
  });


  // 
}
function filters_init() {
  var div = $('#search_filter .product');
  if (div.children().length == 0) {

    var product_types = [];
    for (var i = 0; i < rproducts.length; i++) {
      var rproduct = rproducts[i];
      var values = rproduct.product_type_cd.split('|');
      for (var j = 0; j < values.length; j++) {
        var val = values[j];
        if (!product_types.has(val)) {
          product_types.push(val);
        }
      }
    }
    product_types.sort();
    var g1 = $('<div>').addClass('group');
    g1.append($('<div>').addClass('header').html('Products'));
    g1.append($('<div>').addClass('clear').html('Select All'));

    if (product_types.has('01')) g1.append($('<div>').addClass('filter').append($('<input>').attr('type', 'checkbox').attr('id', 'product_type_01').attr('checked', true)).append($('<span>').html('7-Eleven Brand')));
    if (product_types.has('03')) g1.append($('<div>').addClass('filter').append($('<input>').attr('type', 'checkbox').attr('id', 'product_type_03').attr('checked', true)).append($('<span>').html('7-Select &reg;')));
    if (product_types.has('02')) g1.append($('<div>').addClass('filter').append($('<input>').attr('type', 'checkbox').attr('id', 'product_type_02').attr('checked', true)).append($('<span>').html('Other Brands')));

    div.append(g1);

    var category_ids = [];
    for (var i = 0; i < rproducts.length; i++) {
      var rproduct = rproducts[i];
      if (!category_ids.has(rproduct.category_id)) category_ids.push(rproduct.category_id.toString());
    }
    category_ids.sort();
    var tcats = []

    for (var i = 0; i < category_ids.length; i++) {
      var category_id = category_ids[i];
      var n = Math.floor(parseInt(category_id) / 1000000) * 1000000;
      if (!tcats.has(n)) tcats.push(n);
    }

    var g2 = $('<div>').addClass('group');
    g2.append($('<div>').addClass('header').html('Categories'));
    g2.append($('<div>').addClass('clear').html('Select All'));

    for (var i = 0; i < tcats.length; i++) {
      var tcat = tcats[i];
      var cname = get_cname(tcat);
      g2.append($('<div>').addClass('filter').append($('<input>').attr('type', 'checkbox').attr('id', 'category_' + tcat).attr('checked', true)).append($('<span>').html(cname)));
    }
    div.append(g2);

    //trace('bind handlers');

    $('#search_filter .group .clear').unbind().click(function() {
      var element = $(this);
      element.parent().find('input').attr('checked', true);
      element.fadeOut();
      if (element.parent().parent().hasClass('product')) {
        products_init();
      } else {
        company_init();
      }
    });

    $('#search_filter .product .group .filter span').unbind().click(function() {
      var element = $(this);
      var cbox = element.parent().find('input');
      if (cbox.is(':checked')) {
        cbox.removeAttr('checked');
      } else {
        cbox.attr('checked', true);
      }
      products_init();
    });
    $('#search_filter .company .group .filter span').unbind().click(function() {
      var element = $(this);
      var cbox = element.parent().find('input');
      if (cbox.is(':checked')) {
        cbox.removeAttr('checked');
      } else {
        cbox.attr('checked', true);
      }
      company_init(false);
    });

    $('#search_filter .product input').unbind().click(function() {
      products_init();
    });
    $('#search_filter .company input').unbind().click(function() {
      company_init(false);
    });


  }
}
function products_init() {
  //trace('products_init');
  
  if($('#search_filter').length == 0) return;
  
  var pfilters = [];
  var cfilters = [];
  $('#search_filter .product input').each(function(i, o) {
    if ($(this).is(':checked')) {
      if ($(this).attr('id').indexOf('product_type') != -1) {
        pfilters.push($(this).attr('id'));
      } else {
        cfilters.push($(this).attr('id'));
      }
    }
  });

  var data = {};
  data.cmd = 'ProductSearch';
  data.cmd_arg = $.query.get('sTerms');
  data.sid = $('#source_id').val();
  var service_url = 'default.ashx';
  $.getJSON(service_url, data, function(data) {
    rproducts = data.items;
    vproducts = [];
    for (var i = 0; i < rproducts.length; i++) {
      var rproduct = rproducts[i];
      //trace(rproduct);
      var p_valid = pfilters.length > 0 ? false : true;
      var c_valid = cfilters.length > 0 ? false : true;

      for (var j = 0; j < pfilters.length; j++) {
        var filter = pfilters[j];
        if (filter.indexOf('product_type_') == 0) {
          var product_type_cd = filter.replace('product_type_', '');

          var values = rproduct.product_type_cd.split('|');
          for (var k = 0; k < values.length; k++) {
            var val = values[k];
            if (val == product_type_cd) p_valid = true;
          }
        }
      }
      for (var j = 0; j < cfilters.length; j++) {
        var filter = cfilters[j];
        if (filter.indexOf('category_') == 0) {
          var category_id = filter.replace('category_', '');
          //trace(rproduct.category_id + ':' + category_id);
          //if(rproduct.category_id == category_id) is_valid = true;
          var ccur = parseInt(rproduct.category_id);
          var cmin = parseInt(category_id);
          var cmax = parseInt(category_id) + 1000000;
          if (ccur >= cmin && ccur < cmax) c_valid = true;
        }
      }
      var is_valid = p_valid && c_valid;

      if (is_valid) vproducts.push(rproduct);
    }
    rproducts = vproducts;

    filters_init();

    var filters = [];
    $('#search_filter .product .group').each(function(i, o) {
      var is_all_checked = true;
      $(this).find('input').each(function(i, o) {
        if ($(this).is(':checked')) filters.push($(this).attr('id'));
        else is_all_checked = false;
      });
      var cdiv = $(this).find('.clear');
      if (is_all_checked) cdiv.fadeOut();
      else cdiv.fadeIn('fast');
    });

    //trace('rproducts.length:' + rproducts.length);
    //trace('.results-container .results .pager' + ':' + $('.results-container .results .pager').length);
    if (filters.length == 0) rproducts = [];

    $('.results-container .results .pager').pagination(rproducts.length, { separator: '/', prev_text: 'Prev', next_text: 'Next', items_per_page: 6, callback: ResultPage });
    ResultPage(0);
  });
}
function urlmappings_init() {
  trace('urlmappings_init');
  var settings = {};
  settings.url = 'default.ashx';
  settings.cache = false;
  settings.async = false;
  settings.dataType = 'json';

  var data = {};
  data.cmd = 'GetUrlMappings';
  data.sid = $('#source_id').val();
  settings.data = data;

  settings.error = function(XMLHttpRequest, textStatus, errorThrown) { trace(textStatus); trace(errorThrown); };
  settings.success = function(data, textStatus, XMLHttpRequest) {
    app_url = data.app_url;

    for (var i = 0; i < data.items.length; i++) {
      var item = data.items[i];
      mappings[item.murl] = item.url;
    }
  };
  $.ajax(settings);
}
function test_init() {
  //http://localhost/SevenEleven/default.asmx/HelloWorld?Name=Ben

  //	$.getJSON('default.asmx/HelloWorld?Name=Ben', function(data){
  //		//trace(data);
  //	});
  //	return;

  //trace('test_init');
  var settings = {};
  settings.url = 'default.asmx/Oh';
  settings.cache = false;
  settings.async = false;
  settings.dataType = 'json';
  settings.type = 'POST';
  //	settings.contentType = 'application/json; charset=utf-8';

  //  var data = {};
  //  data.Name = "Big Ben";
  var data = {};
  data.Name = "Ben";
  settings.data = JSON.stringify(data);

  settings.beforeSend = function(hdr) {
    hdr.setRequestHeader('Content-Type', 'application/json');
    hdr.setRequestHeader('SourceId', $('#source_id').val());
  };
  settings.error = function(XMLHttpRequest, textStatus, errorThrown) { trace(textStatus); trace(errorThrown); };
  settings.success = function(data, textStatus, XMLHttpRequest) {
    //trace(data);
    //    for (var i = 0; i < data.items.length; i++) {
    //      var item = data.items[i];
    //      mappings[item.murl] = item.url;
    //    }
  };
  $.ajax(settings);
}
function furl(s) {
  var v = mappings[s.toLowerCase()];
  if (v) return app_url + v;
  else {
    if (s.indexOf('http:') == 0 || s.indexOf('https:') == 0) {
      return s;
    } else {
      return app_url + s;
    }
  }
}
function aalen(o) {
  var i = 0;
  for (p in o) i++;
  return i;
}

function CompanyResultPage(index, sender) {
  gws.gotoPage(index);
}
function ResultPage(index, sender) {
  var page_id = index;
  var page_size = 6;
  var items_div = $('.results-container .results .items');

  var pager_other = $('.results-container .results .pager.btm');

  if ($(sender).hasClass('btm')) pager_other = $('.results-container .results .pager.top');

  $(pager_other).pagination(rproducts.length, { separator: '/', current_page: index, prev_text: 'Prev', next_text: 'Next', items_per_page: 6, callback: ResultPage })


  items_div.empty();

  if (rproducts.length > 0) {
    var table = $('<table>').attr('border', '0').attr('cellpadding', '0').attr('cellspacing', '0').css({ 'margin-left': '15px' });
    var tr = $('<tr>');
    table.append(tr);

    for (var i = 0; i < page_size; i++) {
      var ii = ((page_id) * page_size) + i;
      if (rproducts.length > ii) {

        var item = rproducts[ii];
        var folder_name = 'product-view';


        if (item.upc == "cat") {
          folder_name = 'category-view';
          item.photo = 'images/' + folder_name + '/' + item.category_id + '_t.png';
        } else {
          if (item.product_type_cd == '01') folder_name = 'search-view';
          item.photo = 'images/' + folder_name + '/' + item.upc + '.png';
        }

        var img = $('<img>').attr('alt', item.name).attr('src', item.photo).attr('width', '105').attr('height', '105').data('item', item);
        var img_div = $('<div>').addClass('img').data('item', item).append(img);
        var name_div = $('<div>').addClass('name').html(item.name);

        var d = item.description;
        if (d.length > 150) {
          d = d.substr(0, 150);
          if (d.lastIndexOf(' ') != -1) {
            d = d.substr(0, d.lastIndexOf(' '));
          } else {
            d = d.substr(0, 134);
          }
          d += '...';
        }

        var description_div = $('<div>').addClass('description').html(d);
        var learn_more_div = $('<div>').addClass('learn-more').append($('<img>').attr('alt', 'Learn More').attr('src', 'images/search-results-learn-more-button.png').css({ 'width': '44px', 'height': '19px' }).attr('alt', 'Learn More'));

        var div = $('<div>').data('item', item).addClass('item').append(img_div).append(name_div).append(description_div).append(learn_more_div);

        var td = $('<td>').html(div);

        tr.append(td);

        if ((i + 1) % 3 == 0) {
          tr = $('<tr>');
          table.append(tr);
        }

      }
    }

    while (tr.find('td').length < 3) tr.append($('<td>'));

    items_div.append(table);

    $(items_div).find('.img, .name, .learn-more').click(function() {
      var item = $(this).parent().data('item');
      if (item.upc == "cat") {
        document.location.href = furl('category.aspx?categoryid=' + item.category_id);
      } else {
        document.location.href = furl('category.aspx?upc=' + item.upc);
      }
      //trace(upc);
    });
  } else {
    items_div.html('<div class="list-item">No results found.</div>');
  }
}
function SearchResults(terms) {
  document.location.href = furl('results.aspx?sTerms=' + terms);

  //	var locator = /(hours\s+of\s+operation)/ig;
  //	var fast = /(check\s+cashing|western\s+union)/ig;
  //	var slurpee = /(slurpee\s+flavors)/ig;

  //	if (locator.test(terms)) document.location.href = furl("locator.aspx");
  //	else if (fast.test(terms)) document.location.href = furl("category.aspx?categoryid=6002000");
  //	else if (slurpee.test(terms)) document.location.href = furl("category.aspx?categoryid=4001003");
  //	else document.location = 'results.aspx?sTerms=' + terms;
}
function category_carousel_init(){
    var carousel = $('.category-carousel');
    var leftArrow = $('.left-arrow', carousel);
    var rightArrow = $('.right-arrow', carousel);
    var items = $('.items', carousel);
    var w = 230;
    if(items.children().length < 4){
      carousel.addClass('no-scroll');
    }

    items.css('width', (items.children().length * w) + 'px');
    if(items.children().length > 3) rightArrow.find('img').attr('src', 'images/category-carousel-right-arrow-red.png');
    
    leftArrow.click(function(){
      if(items.is(':animated') || $(this).find('img').attr('src').indexOf('grey') != -1) return;
      rightArrow.find('img').attr('src', 'images/category-carousel-right-arrow-red.png');
      var n = items.children().length;
      var nleft = '0px';
      var hideArrow = false;
      if(n > 3){
        var l = parseInt(items.css('left'));
        if(Math.abs(l) < 692){
          istart = 0;
          iend = Math.abs(l/w);
          hideArrow = true;
        }else{
          var istart =(Math.abs(l/692) - 1) * 3;
          if(istart <= 0) {istart = 0; hideArrow = true;}
          var iend = istart + 3;
        }
        trace({'istart':istart, 'iend':iend, 'l':l});
        nleft = '+=' + ((iend - istart) * w) + 'px';
      }
      trace('nleft:' + nleft);
      items.animate({left:nleft}, 667, 'easeOutExpo', function(){ 
        if(hideArrow) leftArrow.find('img').attr('src', 'images/category-carousel-left-arrow-grey.png');
      });
    });
    rightArrow.click(function(){
      if(items.is(':animated') || $(this).find('img').attr('src').indexOf('grey') != -1) return;
      leftArrow.find('img').attr('src', 'images/category-carousel-left-arrow-red.png');
      var n = items.children().length;
      var nleft = '0px';
      var hideArrow = false;
      if(n > 3){
        var l = parseInt(items.css('left'));
        var istart =(Math.abs(l/692) + 1) * 3;
        var iend = istart + 3;
        if(iend >= n){ iend = n; hideArrow = true; }
        trace({'istart':istart, 'iend':iend, 'l':l});
        nleft = '-=' + ((iend - istart) * w) + 'px';
      }
      trace('nleft:' + nleft);
      items.animate({left:nleft}, 667, 'easeOutExpo', function(){
        if(hideArrow) rightArrow.find('img').attr('src', 'images/category-carousel-right-arrow-grey.png');
      });
    });
}

function page_share_init(){
  if($('.home-carousel').length > 0) return;
  
  var category_id = $('#category_id_hidden').val();
  var upc = $('#upc_hidden').val();
  
  $('#page_share').each(function(i, o) {
  	//trace('sharing:' + location.href);
  	
    var productName = document.title;
    var selectors = ['div.category div.product-main div.name', 'div.category-name', 'div.variety-view div.items-view div.items div.item div.selected img','div.category div.level3-prop div.main div.variety div.reactions-name'];
    for(var i=0;i<selectors.length;i++){
      var selector = selectors[i];
      if($(selector).length > 0){
        var o = $(selector);
        var alt = o.attr('alt');
        var txt = o.text();
        if(alt && alt.length > 0) productName = alt;
        else if(txt && txt.length > 0) productName = txt;      
      }
    }
   
    var imgSrc = $('#meta-image-src').attr('href');
    var selectors = ['div.category div.product-main div.photo img.photo-img', 'category_thumb', 'div.variety-view div.items-view div.items div.item div.img.selected img','div.category div.level3-prop div.main div.variety img.reactions-thumb'];
    for(var i=0;i<selectors.length;i++){
      var selector = selectors[i];
      if(selector == 'category_thumb'){
        imgSrc = app_url + 'images/category-view/' + category_id + '_t.png';
      }else{
        if($(selector).length > 0){
          var o = $(selector);
          var src = o.attr('src');
          if(src && src.length > 0){
            imgSrc = app_url + src;
            break;
          }
        }
      }
    }

    var shareMessage = $('#meta-description').attr('content');
    var selectors = ['div.category-description', 'div.product-main div.share-message', 'div.product-main div.description', 'div.reactions-share-message', 'div.reactions-description'];
    for(var i=0;i<selectors.length;i++){
      var selector = selectors[i];
      if($(selector).length > 0){
        var o = $(selector);
        var txt = o.text();
        if(txt && txt.length > 0){
          shareMessage = txt;
          break;
        }
      }
    }

    //trace({'productName':productName, 'category_id':category_id, 'upc':upc, 'imgSrc':imgSrc, 'shareMessage':shareMessage});

    var img = {type: 'image', src: imgSrc, href: location.href };

  	var ua = new gigya.services.socialize.UserAction(); 
  	ua.setLinkBack(location.href); 
  	ua.setTitle(productName);
    ua.setDescription(shareMessage);
    ua.addMediaItem(img);
  	
  	var params = {	
  	  userAction:ua, 
  	  operationMode:'multiSelect',
  	  shareButtons:'share,facebook-like,google-plusone', 
  	  containerID: $(this).attr('id'),
  	  cid: 'category-' + category_id,
  	  onSendDone:function(){
  	    trace('onSendDone');
  	    var url = location.href.toLowerCase().replace(app_url.toLowerCase(), '');
  	    trackWebEvent('Share', url);
  	  },
  	  onShareButtonClicked:function(){},
  	  onLoad:function(){
  	    window.setTimeout(function(){$('div.category-header h1').fadeIn('fast');}, 667);
  	  },
  	  onError:function(e){trace('onError'); trace(e); },
  	  onClose:function(){}
  	};
    
    gigya.services.socialize.showShareBarUI({},params);
  });
}
function reactions_init(){
  
  if($('#reactions').length == 0) return;

  var productName = document.title;

//html body form#aspnetForm div div#content div.category div.level3-prop div.related div.variety-view div.items-view div.items div.item div.img img



  var selectors = ['div.category div.product-main div.name', 'div.category-name', 'div.variety-view div.items-view div.items div.item div.selected img','div.category div.level3-prop div.main div.variety div.reactions-name'];
  for(var i=0;i<selectors.length;i++){
    var selector = selectors[i];
    if($(selector).length > 0){
      var o = $(selector).filter(':first');
      var alt = o.attr('alt');
      var txt = o.text();
      if(alt && alt.length > 0) productName = alt;
      else if(txt && txt.length > 0) productName = txt;
    }
  }
  
  var ras = [
    {ID:'approve',text:'Approve',iconImgUp:'images/reactions-approve-icon.png',tooltip:'',feedMessage:'I just rated _productName_ as _reaction_ on 7-Eleven.com. Get the delicious details here.',tooltip:'I say _reaction_'},
    {ID:'recommend',text:'Recommend',iconImgUp:'images/reactions-recommend-icon.png',tooltip:'',feedMessage:'I just rated _productName_ as _reaction_ on 7-Eleven.com. Get the delicious details here.',tooltip:'I say _reaction_'},
    {ID:'spokesmodel',text:"I'll Spokesmodel",iconImgUp:'images/reactions-spokesmodel-icon.png',tooltip:'',feedMessage:'I just rated _productName_ as _reaction_ on 7-Eleven.com. Get the delicious details here.',tooltip:'I say _reaction_'},
  ];

  var category_id = $('#category_id_hidden').val();
  var upc = $('#upc_hidden').val();

  if(upc == null || upc.length == 0) upc = category_id + '-001';
 
  var imgSrc = $('#meta-image-src').attr('href');
  var selectors = ['div.category div.product-main div.photo img.photo-img', 'category_thumb', 'div.variety-view div.items-view div.items div.item div.img.selected img','div.category div.level3-prop div.main div.variety img.reactions-thumb'];
  for(var i=0;i<selectors.length;i++){
    var selector = selectors[i];
    if(selector == 'category_thumb'){
      imgSrc = app_url + 'images/category-view/' + category_id + '_t.png';
    }else{
      if($(selector).length > 0){
        var o = $(selector).filter(':first');
        var src = o.attr('src');
        if(src && src.length > 0){
          imgSrc = app_url + src;
          break;
        }
      }
    }
  }
  
  var shareMessage = $('#meta-description').attr('content');
  var selectors = ['div.category-description', 'div.product-main div.share-message', 'div.product-main div.description', 'div.reactions-share-message', 'div.reactions-description'];
  for(var i=0;i<selectors.length;i++){
    var selector = selectors[i];
    if($(selector).length > 0){
      var o = $(selector).filter(':first');
      var txt = o.text();
      if(txt && txt.length > 0){
        shareMessage = txt;
        break;
      }
    }
  }

  trace({'productName':productName, 'category_id':category_id, 'upc':upc, 'imgSrc':imgSrc, 'shareMessage':shareMessage});
 
  //check that all data is in place
  if(!(productName && productName.length > 0) || !(category_id && category_id.length > 0) || !(upc && upc.length > 0) || !(imgSrc && imgSrc.length > 0) || !(shareMessage && shareMessage.length > 0)){
    return;
  }

  var settings = {};
  settings.url = 'default.ashx';
  settings.cache = true;
  settings.async = true;
  settings.dataType = 'json';

  var data = {};
  data.cmd = 'GetReaction';
  data.category_id = category_id;
  data.upc = upc;
  
  settings.data = data;
  settings.error = function(XMLHttpRequest, textStatus, errorThrown) { trace(textStatus); trace(errorThrown); };
  settings.success = function(data, textStatus, XMLHttpRequest) {
    if(data.status == 'success'){

      ras[0].text = data.reaction_type_name_01;
      ras[1].text = data.reaction_type_name_02;
      ras[2].text = data.reaction_type_name_03;
      
  
      for(var i=0;i<ras.length;i++){
        var ra = ras[i];
        if(data.feed_message && data.feed_message.length > 0) ra.feedMessage = data.feed_message;
        ra.feedMessage = ra.feedMessage.replace('_productName_', productName);
        ra.feedMessage = ra.feedMessage.replace('_reaction_', ra.text);

        if(data.tooltip && data.tooltip.length > 0) ra.tooltip = data.tooltip;
        ra.tooltip = ra.tooltip.replace('_productName_', productName);
        ra.tooltip = ra.tooltip.replace('_reaction_', ra.text);
        
      }
      
      var img = {type: 'image',src: imgSrc,href: location.href };

      var ua = new gigya.services.socialize.UserAction();
      ua.setLinkBack(location.href);
      //ua.setTitle(productName);
      ua.setDescription(shareMessage);
      ua.addMediaItem(img);
        
      var showCountsLocation = 'right';
      if($('div.category div.product-main div.name').length > 0) showCountsLocation = 'top';
      if($('#reactions').hasClass('reactions-top')) showCountsLocation = 'top';
              
      var params = {
        reactions: ras,
        containerID: 'reactions',
     	  cid: 'product-' + upc, 
        userAction: ua,
        barID: 'product-' + upc, 
        countType:'number',
        multipleReactions:false,
        showCounts: showCountsLocation,
        enabledProviders:'facebook,google buzz,twitter,yahoo,myspace',
        onReactionClicked:function(){ 
          trace('onReactionClicked');
    	    var url = location.href.toLowerCase().replace(app_url.toLowerCase(), '');
    	    trackWebEvent('Reaction', url);
        },
        onReactionUnclicked:function(e){},
    	  onSendDone:function(){
    	    trace('onSendDone');
    	    var url = location.href.toLowerCase().replace(app_url.toLowerCase(), '');
    	    trackWebEvent('Share', url);
    	  },
        onLoad:function(e){},
        onError:function(e){trace('onError'); trace(e); }
      };
      
      gigya.services.socialize.showReactionsBarUI({},params);
      
      $('div.level3-prop').addClass('reactions');
      
    }else{
      trace(data.error);
    }
  };
  $.ajax(settings);
}
function related_init(){
  if($('#upc_hidden').length > 0 && $('#category_id_hidden').length > 0 && $('div.product-related').length > 0){
    var upc = $('#upc_hidden').val();
    var category_id = $('#category_id_hidden').val();
    if(upc.length > 0 && category_id.length > 0){
      $('div.product-related').related({ 'upc': upc, 'category_id': category_id });
    }
  }
}

$(document).ready(function(event) {
  //test_init();
  /*
  if($('base').length == 1){
  var base_href = $('base').attr('href');
  var is_ssl = (base_href.indexOf('https://') != -1);
  if(!is_ssl){
  if(location.href.toLowerCase().indexOf('login.aspx') != -1){
  location.href = base_href.replace('http://', 'https://') + 'login.aspx';
  }else if(location.href.toLowerCase().indexOf('register.aspx') != -1){
  location.href = base_href.replace('http://', 'https://') + 'register.aspx';
  }
  }else{
  if(location.href.toLowerCase().indexOf('login.aspx') == -1 && location.href.toLowerCase().indexOf('register.aspx') == -1){
  location.href = location.href.replace('https://', 'http://');
  }

      //trace(is_ssl);
  }
  }
  */
  urlmappings_init();
  
  category_carousel_init();

  //coffree_init();
  //unity_init('veterans');
  //free_slurpee_init();
  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();
  tweet_init();


  related_init();

  $('.home-hot').click(function() {
    window.location.href = furl('Default.aspx');
  });

  $('.link-6000000-01').click(function(){
    $('.category-header').hide();
    $('.category-carousel').hide();
    $('.gift-giving').show();
  });

  $('.callout-2003013').click(function() {
    document.location.href = furl('category.aspx?categoryid=4001001');
  });
  $('.callout-2003000').click(function() {
    window.open('http://www.slurpee.com/#/expanded');
  });
  $('.callout-4001003').click(function() {
    window.open('http://www.slurpee.com');
  });
  $('.link-4001003-04').click(function() {
    var div = $(this).parent();


//170px

    if (div.css('top') == '357px') {
      //trace('down');
      div.animate({ 'top': '489px', 'height': '18px' }, { 'duration': 'medium', 'complete': function() { $(this).removeClass('up'); } });
    } else {
      //trace('up');
      div.addClass('up');
      div.animate({ 'top': '357px', 'height': '150px' }, { 'duration': 'fast' });
    }

  });

  $('.copy-7007000-01 .alcohol.link').click(function() {
    $('.hover-7007000-01').hide();
    $('.hover-7007000-01.alcohol').show();
  });
  $('.copy-7007000-01 .tobacco.link').click(function() {
    $('.hover-7007000-01').hide();
    $('.hover-7007000-01.tobacco').show();
  });
  $('.hover-7007000-01 .close').click(function() {
    $(this).parent().hide();
  });

  $('.thirsty-cold-big-gulp').click(function() {
    window.location.href = furl('category.aspx?categoryid=4001001');
  });
  $('.thirsty-cold-iced-coffee').click(function() {
    window.location.href = furl('category.aspx?categoryid=4001002');
  });
  $('.thirsty-cold-slurpee').click(function() {
    window.location.href = furl('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') ? furl('profile.aspx') : furl('register.aspx');
    }
  });

  $('#nav .home').bind('click', function(event) {
    window.location.href = furl('Default.aspx');
  }).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);  
  });


  $('#search_container').append(
      $('<div class="search_container_button"></div>').click(function() {
        //_gtrack('Search', 'Click');
        var terms = $('#search').val();

        var re = /^\d{5}$|^\d{5}-\d{4}$/;
        var is_zip = re.test(terms);
        if (is_zip) document.location.href = furl('locator.aspx?1=1&find=' + terms);
        else SearchResults(terms);
      })
      );

  $('.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();
  });
  $('.faq-link, .link-6001005-01').click(function(event) {
    var st = $(this).hasClass('link-6001005-01')? '970':'0';
    show_faq(st);
  });
  $('#faq-popup .legal-close').click(function(event) {
    hide_faq();
  });
  $('.link-2003022-02').click(function(event) {
    show_rules();
  });
  $('#rules-popup .legal-close').click(function(event) {
    hide_rules();
  });
  $('.act-link').click(function(event) {
    show_act();
  });
  $('#act-popup .legal-close').click(function(event) {
    hide_act();
  });

  map_init();

});


