var sl_app_header = "<span style=\"font-weight: 800\">Warning:</span> Application Second Life required";
var sl_app_descri = "You have clicked a link that requires an application called Second Life to be installed on your system. If already have Second Life installed and want to continue, click &lt;Continue>, if you want to cancel, click &lt;Cancel>. If you want do download Second Life, click on the &lt;Download> button. Also note that if you don't accept cookies or run your browser in a private session, you will be prompted with this dialog next time you visit the page.";
// document.createElement('img').src = "/images/overlay.jpg";

function page_width(){
  return window.innerWidth != null? window.innerWidth: document.documentElement && document.documentElement.clientWidth ? document.documentElement.clientWidth:document.body != null? document.body.clientWidth:null;
}
function page_height(){
  return window.innerHeight != null? window.innerHeight: document.documentElement && document.documentElement.clientHeight ? document.documentElement.clientHeight:document.body != null? document.body.clientHeight:null;
}
function position_left(){
  return typeof window.pageXOffset != 'undefined' ? window.pageXOffset:document.documentElement && document.documentElement.scrollLeft? document.documentElement.scrollLeft:document.body.scrollLeft? document.body.scrollLeft:0;
}
function position_top(){
  return typeof window.pageYOffset != 'undefined' ? window.pageYOffset:document.documentElement && document.documentElement.scrollTop? document.documentElement.scrollTop: document.body.scrollTop?document.body.scrollTop:0;
}
function maintain_position(elem){
  client_top = ((page_height() - elem.offsetHeight) / 2);
  client_left = ((page_width() - elem.offsetWidth) / 2);
  elem.style.top = (client_top < 0 ? 0 : client_top) + "px";
  elem.style.left = (client_left < 0 ? 0 : client_left) + "px";
}
function scroll_fix(elem){
  elem.style.top = position_top() + "px";
  elem.style.left = position_left() + "px";
}
function size_fix(elem){
  elem.style.height = page_height() + "px";
  elem.style.width = page_width() + "px";
}
function hide_special_objects(visual){
  tags = document.getElementsByTagName("select");
  for(i = tags.length - 1; i >= 0; i--){
    tags[i].style.visibility = visual;
  }
  tags = document.getElementsByTagName("iframe");
  for(i = tags.length - 1; i >= 0; i--){
    tags[i].style.visibility = visual;
  }
  tags = document.getElementsByTagName("object");
  for(i = tags.length - 1; i >= 0; i--){
    tags[i].style.visibility = visual;
  }
}
function show_dialog(dialog_width){
  overlay = document.getElementById("over_lay");
  sl_dialog = document.getElementById("dialog");

  overlay.style.height = page_height() + "px";
  overlay.style.width = page_width() + "px";
  overlay.style.display = "block";
  
  sl_dialog.style.display = "block";
  sl_dialog.style.width = dialog_width + "px";
  
  client_top = ((page_height() - sl_dialog.offsetHeight) / 2);
  client_left = ((page_width() - dialog_width) / 2);

  sl_dialog.style.top = (client_top < 0 ? 0 : client_top) + "px";
  sl_dialog.style.left = (client_left < 0 ? 0 : client_left) + "px";
  sl_dialog.focus();

  hide_special_objects("hidden");
  
  window.onresize = function(){
    maintain_position(sl_dialog);
    size_fix(overlay);
    scroll_fix(overlay);
  }    
  return false;  
}
function hide_dialog(dialog_holder){
  sl_dialog = document.getElementById(dialog_holder);
  sl_dialog.parentNode.removeChild(sl_dialog);
  document.onkeypress='';
}
function init_dialog(diag_markup){
  dialog_holder = document.createElement("div");
  dialog_holder.setAttribute("id", "diag_holder");
  document.body.appendChild(dialog_holder);
  dialog_holder.innerHTML = diag_markup;

  sl_dialog = document.getElementById("dialog");
  sl_dialog.style.display = "none";
  sl_dialog.style.position = "fixed";
  sl_dialog.style.zIndex = 999;

  var overlay = document.getElementById("over_lay");
  overlay.style.display = "none";
  overlay.style.position = "fixed";
  overlay.style.top = 0;
  overlay.style.left = 0;
  overlay.style.zIndex = 998;
  overlay.style.width = "100%";
  overlay.style.backgroundImage = "url('/images/overlay.png')";
}

function sl_app_dialog(diag_head, diag_text, diag_x, diag_y, link_url){
  disable_page_scroll()
  if(!sl_app_check_cookie() == true){
    diag_markup = "<div id='over_lay'></div><div id=\"dialog\" class=\"dialog\"><div><div id=\"diag_header\"><h3 style=\"background: url('/images/icon_secondlife.gif') no-repeat center left; padding: 0.5em 0 0.5em 1.5em;\">" + diag_head + "</h3></div><div id='diag_description'><p class=\"para\">" + diag_text + "</p></div><div id='diag_buttons'><p class=\"para\"><button id=\"sl_diag_continue\" onclick='diag_select(1, \"" + link_url + "\")'>Continue</button> <button id=\"sl_diag_cancel\" onclick='diag_select(0, \"" + link_url + "\")'>Cancel</button> <button  id=\"sl_diag_download\" onclick='diag_select(2, \"" + link_url + "\")'>Download</button></p><p><input type=\"checkbox\" id=\"remember\" name=\"remember\" value=\"true\" /> Check this box to remember the this choice for the future.</p></div></div></div>";
    init_dialog(diag_markup);
    show_dialog(diag_x);
    document.getElementById("sl_diag_continue").focus();
    return false;
  }
  else{
    return true;
  }
}

function diag_select(diag_int, link_url){
  remember_checked = document.getElementById("remember").checked;
  hide_dialog('diag_holder');
  if(remember_checked == true){
    set_cookie("sl_installed", "true", 365);
  }
  if(diag_int == 1){
    window.location.href = link_url
  }
  if(diag_int == 2){
    window.location.href = "http://secondlife.com/support/downloads/";
  }
  enable_page_scroll();
}

// left: 37, up: 38, right: 39, down: 40,
// spacebar: 32, pageup: 33, pagedown: 34, end: 35, home: 36

var prevented_keys = [37, 38, 39, 40, 33, 34, 35, 36];

function preventDefault(e){
  e = e || window.event;
  if (e.preventDefault){
    e.preventDefault();
  }
  e.returnValue = false;
}

function prevent_keydown(e){
  for(var i = prevented_keys.length; i--;){
    if (e.keyCode === prevented_keys[i]){
      preventDefault(e);
      return;
      }
   }
}

function prevent_wheel_scrolling(e) {
  preventDefault(e);
}

function disable_page_scroll(){
  if (window.addEventListener){
    window.addEventListener('DOMMouseScroll', prevent_wheel_scrolling, false);
  }
  window.onmousewheel = document.onmousewheel = prevent_wheel_scrolling;
  document.onkeydown = prevent_keydown;
}

function enable_page_scroll(){
  if (window.removeEventListener) {
    window.removeEventListener('DOMMouseScroll', prevent_wheel_scrolling, false);
  }
  window.onmousewheel = document.onmousewheel = document.onkeydown = null;  
}

