var banner_image_files;
var banner_image_files_loaded = false;
var num_banner_images = 0;
var fade_timer;
var opacity_delta = 0.04; //0~1.0
var fade_speed = 30; //ms

function load_banner_images_into_javascript(filenames)
{
 if (false == banner_image_files_loaded)
 {
  //alert(filenames);
  //banner_image_files = filenames.split(",");
  banner_image_files = decode_banner_image_filenames(filenames);
  start_timer();
  num_banner_images = banner_image_files.length;
  banner_image_files_loaded = true;
 }
}

function start_timer()
{
  //Start timer to invoke image_change() every 7 seconds.
  timer = setInterval("image_banner_change()", 7000);
}

function image_banner_change()
{
 var random_panel_number=Math.floor(Math.random()*3)+1;
 var random_image_filename = banner_image_files[Math.floor(Math.random()*num_banner_images)];

 //Ensure we don't have duplicate images in banner!
/* var other_panel_number = random_panel_number%3+1;
 var other_other_panel_number = other_panel_number%3+1;
 var other_image_a = document.getElementById("test_image_banner"+other_panel_number).src;
 var other_image_b = document.getElementById("test_image_banner"+other_other_panel_number).src;
*/
 var attempts = 1;

 while (!banner_image_is_different(random_image_filename) && (attempts < 10))
 {
  random_image_filename = banner_image_files[Math.floor(Math.random()*num_banner_images)];
  attempts++;
 }

 if (attempts < 10)
 {
  swap_image("test_image_banner"+random_panel_number, random_image_filename);
 }
 else
 {
  //Give up on changing banner image.
 }
}

function banner_image_is_different(new_image)
{
 var panel1_image = document.getElementById("test_image_banner1").src;
 var panel2_image = document.getElementById("test_image_banner2").src;
 var panel3_image = document.getElementById("test_image_banner3").src;

 var is_different = (new_image != panel1_image && new_image != panel2_image && new_image != panel3_image) ? true : false;

 return is_different;
}

function swap_image(img_id, new_img_src)
{
 fade_timer = setInterval("fade_transition(\""+img_id+"\",\""+new_img_src+"\")", fade_speed);
}

function fade_transition(img_id, new_img_src)
{
 var current_style = document.getElementById(img_id).style;
 var new_opacity = parseFloat(current_style.opacity) - opacity_delta;

 if (new_opacity < 0.1)
 {
  clearTimeout(fade_timer);
  current_style.opacity = "0.0"; //CSS 3
  current_style.filter = "alpha(opacity=0)"; //For MSIE

  //replace old image (and alt text) with new image
  document.getElementById(img_id).src = new_img_src;
  document.getElementById(img_id).alt = new_img_src;

  //now fade in
  fade_timer = setInterval("fade_transition2(\""+img_id+"\")", fade_speed);
 }
 else
 {
  current_style.opacity = ""+new_opacity; //CSS 3
  current_style.filter = "alpha(opacity="+(new_opacity*100)+")"; //For MSIE
 }
}


function fade_transition2(img_id)
{
 var current_style = document.getElementById(img_id).style;
 var new_opacity = parseFloat(current_style.opacity) + opacity_delta;

 if (new_opacity > 1.0)
 {
  clearTimeout(fade_timer);
  current_style.opacity = "1.0"; //CSS 3
  current_style.filter = "alpha(opacity=100)"; //For IE
 }
 else
 {
  current_style.opacity = ""+new_opacity; //CSS 3
  current_style.filter = "alpha(opacity="+(new_opacity*100)+")"; //For MSIE
 }
}

function decode_banner_image_filenames(encoded_filenames_string)
{
 var key = "SASAmatsu";
 var char_to_shift = 0;
 var shift = 0;
 var decoded_filenames_array = new Array();
 var decoded_filenames_string = "";

 for (var i=0; i<encoded_filenames_string.length; i++)
 {
  char_to_shift = encoded_filenames_string.charCodeAt(i) - 35;
  shift = (key.charAt(i % 9)).charCodeAt() - 35;
  if (shift > char_to_shift) char_to_shift += 92;
  decoded_char = String.fromCharCode((char_to_shift - shift) % 92 +35);
  decoded_filenames_string += decoded_char;
 }

 decoded_filenames_array = decoded_filenames_string.split(",");
 return decoded_filenames_array;
}


function expand_dinner_menu()
{
 document.getElementById("dinner_submenu").style.visibility = "visible";
 var current_style = document.getElementById("dinner_submenu").style;
  current_style.opacity = "0.5"; //CSS 3
  current_style.filter = "alpha(opacity=50)"; //For IE
}
function retract_dinner_menu()
{
 document.getElementById("dinner_submenu").style.visibility = "hidden";
}
function expand_dinner_menu_item_2()
{
 document.getElementById("dinner_subsubmenu2").style.visibility = "visible";
}
function retract_dinner_menu_item_2()
{
 document.getElementById("dinner_subsubmenu2").style.visibility = "hidden";
}
function expand_dinner_menu_subitem_2()
{
 document.getElementById("dinner_subsubsubmenu2").style.visibility = "visible";
}
function retract_dinner_menu_subitem_2()
{
 document.getElementById("dinner_subsubsubmenu2").style.visibility = "hidden";
}

function display_in_main_menu_panel(item)
{
 //Initially hide all panels.
 var panels = document.getElementById("main_menu_panel").getElementsByTagName("div");
 for (var i=0; i<panels.length; ++i)
 {
  panels[i].style.visibility = "hidden";
 }
 //Then, depending on the selected item, display what's appropriate.
 var panel_to_display = document.getElementById("main_menu_panel");
 switch(item)
 {
  case 'DINNERMENU':
   panel_to_display = document.getElementById("main_menu_panel_dinnermenu");
   break;
  case 'HAPPYHOURMENU':
   panel_to_display = document.getElementById("main_menu_panel_happyhourmenu");
   break;
  case 'SAKEMENU':
   panel_to_display = document.getElementById("main_menu_panel_sakemenu");
  break;
  case 'DRINKMENU':
   panel_to_display = document.getElementById("main_menu_panel_drinkmenu");
  break;
  case 'SUNDAY':
   panel_to_display = document.getElementById("main_menu_panel_sunday");
   break;
  case 'MONDAY':
   panel_to_display = document.getElementById("main_menu_panel_monday");
   break;
  case 'TUESDAY':
   panel_to_display = document.getElementById("main_menu_panel_tuesday");
  break;
  case 'WEDNESDAY':
   panel_to_display = document.getElementById("main_menu_panel_wednesday");
  break;
  case 'THURSDAY':
   panel_to_display = document.getElementById("main_menu_panel_thursday");
  break;
  case 'FRIDAY':
   panel_to_display = document.getElementById("main_menu_panel_friday");
  break;
  case 'SATURDAY':
   panel_to_display = document.getElementById("main_menu_panel_saturday");
  break;
  case 'DAILY':
   panel_to_display = document.getElementById("main_menu_panel_daily");
  break;
  default:
  //alert("Undefined item to display in main_menu_panel: "+item);
 }
 panel_to_display.style.visibility = "visible";
}


 function toggle_email_overlay()
{
  var overlay = document.getElementById("contact_overlay");
  var window = document.getElementById("email_window");
  var new_visibility = (window.style.visibility == "visible") ? "hidden" : "visible";
  overlay.style.visibility = window.style.visibility = new_visibility;
  document.getElementById("email_form").reset();
  reset_email_form_focus();
}

function reset_email_form_focus()
{
  document.getElementById("email_form_name").focus();
}

function toggle_sasaloyaltyclub_promo_overlay()
{
  var overlay = document.getElementById("events_overlay");
  var window = document.getElementById("sasaloyaltyclub_promo");
  var new_visibility = (window.style.visibility == "visible") ? "hidden" : "visible";
  overlay.style.visibility = window.style.visibility = new_visibility;
  document.getElementById("sasaloyaltyclub_form").reset();
  reset_sasaloyaltyclub_form_focus();
}

function reset_sasaloyaltyclub_form_focus()
{
  document.getElementById("sasaloyaltyclub_form_name").focus();
}

function toggle_promo2_overlay()
{
  var overlay = document.getElementById("events_overlay");
  var window = document.getElementById("promo2");
  var new_visibility = (window.style.visibility == "visible") ? "hidden" : "visible";
  overlay.style.visibility = window.style.visibility = new_visibility;
}

function toggle_promo3_overlay()
{
  var overlay = document.getElementById("events_overlay");
  var window = document.getElementById("promo3");
  var new_visibility = (window.style.visibility == "visible") ? "hidden" : "visible";
  overlay.style.visibility = window.style.visibility = new_visibility;
}

function toggle_about_overlay()
{
  var overlay = document.getElementById("about_overlay");
  var window = document.getElementById("slideshow_window");
  var new_visibility = (window.style.visibility == "visible") ? "hidden" : "visible";
  overlay.style.visibility = window.style.visibility = new_visibility;
}

function toggle_catering_overlay()
{
  var overlay = document.getElementById("catering_overlay");
  var window = document.getElementById("catering_comments");
  var new_visibility = (window.style.visibility == "visible") ? "hidden" : "visible";
  overlay.style.visibility = window.style.visibility = new_visibility;
}