var _page_names = [ "pizza", "sandwiches", "salads", "drinks", "map" ];
var _logo_fade_speed = 1500; // ms
var _fade_speed = 900; // ms
var _shrink_speed = 900; // ms
var _hash_interval = 25; // ms
var _hash_interval_obj = null;
var _curr_page = null;
var _map_set = false;

var _map_html = "<iframe width=\"425\" height=\"350\" frameborder=\"0\" scrolling=\"no\" marginheight=\"0\" marginwidth=\"0\" src=\"http://maps.google.com/maps?oe=utf-8&amp;client=firefox-a&amp;ie=UTF8&amp;q=2835+se+stark+st.&amp;fb=1&amp;gl=us&amp;hnear=Portland,+OR&amp;hl=en&amp;view=map&amp;cid=17982607699394838181&amp;t=h&amp;ll=45.519378,-122.636534&amp;spn=0.005262,0.00912&amp;z=16&amp;output=embed\"></iframe><br /><small><a href=\"http://maps.google.com/maps?oe=utf-8&amp;client=firefox-a&amp;ie=UTF8&amp;q=2835+se+stark+st.&amp;fb=1&amp;gl=us&amp;hnear=Portland,+OR&amp;hl=en&amp;view=map&amp;cid=17982607699394838181&amp;t=h&amp;ll=45.519378,-122.636534&amp;spn=0.005262,0.00912&amp;z=16&amp;source=embed\" style=\"color:#ffffff;text-align:left\">View Larger Map</a></small>";

function snp_initnav()
{
  var page = is_legal_hash(_curr_page) ? _curr_page : "pizza";
  show_page( page );
  return true;
}

function snp_init()
{
    _curr_page = get_url_hash();
    hide_all_pages();
    snp_initnav();
    set_hash_interval();
    return true;
}

function get_url_hash()
{
    var h = location.hash;
    var h_loc = h.lastIndexOf("#");

    if (h_loc > -1) { // Did we find the hash symbol?
        var hash_i = h_loc + 1; // should be 1
	  if (hash_i != 1) {
            return false;
        }
        return h.substring(hash_i);
    }
    return false;
}

function s(val)
{
    if (val == "") {return false;}
    return "#" + val + "_div";
}

function id_exists(id)
{
    var len = $(s(id)).length;
    return len > 0;
}

function is_legal_hash(hash_val)
{
    for (var i = 0; i < _page_names.length; i++) {
        if (hash_val == _page_names[i]) {
            return true;
        }
    }
    return false;
}

function hide_all_pages()
{
    for (var i = 0; i < _page_names.length; i++) {
        hide_page(_page_names[i]);
    }
    return true;
}

function hide_page(pname)
{
    $(s(pname)).hide();
    return true;
}

function show_page(pname)
{
    if (!id_exists(pname)) { return false; }
    $("#footer").hide();
    hide_all_pages();
    $(s(pname)).fadeIn(_fade_speed);
    location.hash = "#" + pname;
    _curr_page = pname;
    
    if (_curr_page == "map" && !_map_set) {
        $("#map_div").html(_map_html);
        _map_set = true;
    }
    $("#footer").show();
    return true;
}

function update_from_hash()
{
    var hval = get_url_hash();
    if (!is_legal_hash(hval)) {
        return false;
    }
    if (_curr_page == hval) { return false; }
    return show_page(hval);
}

function set_hash_interval()
{
    _hash_interval_obj = setInterval( update_from_hash, _hash_interval );
    return true;
}

function clear_hash_interval()
{
    clearInterval(_hash_interval);
    return true;
}

function slide_stars()
{
  var _s = $("#stars");
  var _ss = $("#little_stars");
  
  _s.hide();
  _ss.hide();
  _s.css( "margin-top", (0 - _s.height()) );
  _ss.css( "margin-top", (0 - _ss.height()) );
  _s.show();
  _ss.show();
  _s.animate( { marginTop: "0px" }, _fade_speed + 750 );
  _ss.animate( { marginTop: "0px" }, _fade_speed + 400 );
}

function flicker_phone()
{
  var imgsrc = Math.floor( Math.random() * 5 ) == 4 ? "phone2.png" : "phone1.png";
  var path = "./images/" + imgsrc;
  $("#phone").attr( "src",  path );
}
var content = null;
$(document).ready( function() {

  _main = $(document);

  $(_main).onImagesLoad( { selectorCallback: function() {

      content = $("#content");
      _menu    = $("#menu");
      _hdrimg  = $("#hdr img");
      _phone   = $("#phone");
      
      _hdrimg.fadeIn(_fade_speed);
      _phone.fadeIn(_fade_speed);
      _menu.fadeIn(_fade_speed);
      
      slide_stars()
      snp_init();
      
      var _int = setInterval( flicker_phone, 333 );
    }
  });
});


