
// 0 - not selected
// 1 - selected

// var G_menu_status = new Array(0,0,0,0,0);
var G_menu_status =  {};
var G_menu_curr_sel_idx = '';
var G_curr_subpage = '';
var G_url_params =  {};

var G_page2bannerId =
{
  'hem':	'00',
  'tjanster':	'01',
  'referenser':	'02',
  'miljo':	'03',
  'kontakt':	'04'
};

parse_url_params(G_url_params);

//--------------------------------------------------------------------------

//for (var p in G_url_params)
//{
//  alert(p);
//}

//--------------------------------------------------------------------------

function parse_url_params(url_params)
{
  var query = window.location.search.substring(1);
  var pairs = query.split("&");
  for(var i=0; i<pairs.length; i++)
  {
    var pair = pairs[i].split("=");
    url_params[pair[0]] = pair[1];
  }
} // parse_url_params()

//--------------------------------------------------------------------------

function precache_menu_images_containers()
{
  var class_name  = "c_precaching_image";
  var id_prefix = "id_precaching_image_";

  var menu_entries  = new Array('00','01','02','03','04');
  var menu_variants = new Array('inact', 'act','over','top_banner');

  for(var i in menu_entries)
  { 
    id = menu_entries[i];
    for (var v in menu_variants)
    { 
      variant = menu_variants[v];
      document.write("<img class=\""+class_name+"\" id=\""+id_prefix+id
        +"_"+variant + "\" src=\"_img/menu_"+i+"_inact.png\""
        +"  >");
    }
  }

} // precache_menu_images_containers()

//--------------------------------------------------------------------------

function precache_menu_images(container_id_base,max_image)
{

  // alert('precaching menu images');

  var path     = "_img";
  var img_ext  = 'png';
  var variants = new Array('inact','act','over');

  for(i = 0; i <= max_image; i++)
  {
    idx_string = "" + i;
    if(i < 10)
    {
      idx_string = "0" + idx_string;
    }

    for (var vidx in variants)
    {
      // precache menu buttons:

      var variant = variants[vidx];
      var src = path + "/menu_" + idx_string + "_" + variant + "." + img_ext;
      var container_id = container_id_base + "_" + idx_string + "_" + variant;
      var obj_precache_container = document.getElementById(container_id);
      // alert('precaching ' + src);
      obj_precache_container.src = src;

    }

  }

} // precache_menu_images

//--------------------------------------------------------------------------

function precache_top_banners(container_id_base,max_image)
{
  var path     = "_img";
  var img_ext  = 'png';

  // alert('precaching top banners');

  for(i = 0; i <= max_image; i++)
  {
    idx_string = "" + i;
    if(i < 10)
    {
      idx_string = "0" + idx_string;
    }

    // precache top banners:

    var src = path + "/top_banner_" + idx_string + "_768x100." + img_ext;
    var container_id = container_id_base + "_" + idx_string + "_top_banner";
    var obj_precache_container = document.getElementById(container_id);
    obj_precache_container.src = src;
  }


} // precache_top_banners

//--------------------------------------------------------------------------

function changeOpac(opacity,id)
{
  var object = document.getElementById(id).style;


  // object.width = 768;
  // object.height = 100;

  object.opacity = (opacity/100);
  object.MozOpacity = (opacity / 100);
  object.KhtmlOpacity = (opacity / 100);
  object.filter = "alpha(opacity=" + opacity + ")";

  // alert('width');

  object.width = 768;
  object.height = 100;
}

//--------------------------------------------------------------------------

// http://brainerror.net/scripts/javascript/blendtrans/

function opacity(id, opacStart, opacEnd, millisec)
{
  var speed = Math.round(millisec / 100);
  var timer = 0;

  if(opacStart > opacEnd)
  {
    for(i = opacStart; i>=opacEnd; i--)
    {
      setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
      timer++;
    }
  }
  else if (opacStart < opacEnd)
  {
    for(i = opacStart; i <= opacEnd; i++)
    {
      setTimeout("changeOpac(" + i + ",'" + id + "')", (timer * speed));
      timer++;
    }
  }
}

//--------------------------------------------------------------------------

function blendimage_r(divid, imageid, imagefile, millisec, loops)
{
  // alert("seting current background as image");

  // bg_short - custom property for storing non url()
  // image-url.

  var curr_bg = document.getElementById(divid).bg_short;
  if(typeof(curr_bg) == 'undefined')
  {
    curr_bg = imagefile;
  }

  document.getElementById(imageid).src = curr_bg;
  changeOpac(100,imageid);

  // alert("setting new image as background");

  var style_background_image = "url('" + imagefile + "')";
  document.getElementById(divid).style.background = style_background_image;
  document.getElementById(divid).bg_short = imagefile;
  
  // alert("fading out old image");

  for(i = loops; i >= 0; i--)
  {
    var timer = loops - i;
    var timer_time = timer * millisec;
    var opac = Math.floor((i/loops) * 100);
    if(i >= 0)
    {
      // setTimeout("changeOpac(" + opac + ",'" + imageid + "')",(timer * (millisec + (millisec * (i/loops))  )));
      setTimeout(
        "changeOpac(" + opac + ",'" + imageid + "')",
	 timer_time
      );
    }
    else
    {
      //setTimeout("changeOpac(" + i + ",'" + imageid + "');" 
      //  + "document.getElementById('"+divid+"').style.backgroundImage = \"url('" + imagefile + "')\""
      //  ,(timer * speed)
      //);
    }
  }

} // blendimage_r()

//--------------------------------------------------------------------------

var js_body_from_xhr = function run_js_from_xhr(req,menu_index)
{
  var target_obj = document.getElementById('page_content_container');
  // alert("running code:"+req.responseText);
  eval(req.responseText);
}

var insert_body_from_xhr = function h_alert(req,menu_index)
{
  // alert(req.responseText+' menu index: '+menu_index);
  var target_obj = document.getElementById('page_content_container');
  target_obj.innerHTML = 
    "<div class=\"page_text content_chunk\">"
    + req.responseText
    // + "<div id=\"content_footer\">"
    + "</div>"
    + "<font style=\"font-size: 0.5em;\"><br>"
  ;
}

function xhr_change_handler()
{
  if(req.readyState == 4)
  {
    if(req.status == 200)
    {
      alert(req.responseText);
    }
    else
    {
      alert("xhr problem: "+req.statusText);
    }
  }
}

function xhr_change_handler1(req,worker_function,rhf_param_00)
{
  if(req.readyState == 4)
  {
    if(req.status == 200)
    {
      // insert_body_from_xhr(req,rhf_param_00);
      worker_function(req,rhf_param_00);
    }
    else
    {
      alert("xhr problem: "+req.statusText);
    }
  }
}

//--------------------------------------------------------------------------

function load_xhr(url,req_handler_function,rhf_param_00)
{
    var req;
    var send_param;

    if (window.XMLHttpRequest)
    {
        req = new XMLHttpRequest();
    }
    else if (window.ActiveXObject)
    {
        req = new ActiveXObject("Microsoft.XMLHTTP");
    }

    if (req)
    {
            req.onreadystatechange = function()
            {
               xhr_change_handler1(req,req_handler_function,rhf_param_00);
            };
            req.open("GET", url, true);
            req.send(null);
    }

} // load_xhr

//--------------------------------------------------------------------------

function get_content_str(menu_index)
{
  return(menu_index);

} // get_content_str()

//--------------------------------------------------------------------------


function menu_onmouseout(menu_cell_obj,menu_index)
{

  var is_active = G_menu_status[menu_index];

  if(is_active == 1)
  {
     menu_cell_obj.style.background = "url(_img/menu_"+menu_index+"_act.png)";
  }
  else
  {
     menu_cell_obj.style.background = "url(_img/menu_"+menu_index+"_inact.png)";
  }

} // menu_onmouseout()

//--------------------------------------------------------------------------

function activate_menu(menu_index)
{
  menu_click(menu_index);
}

//--------------------------------------------------------------------------

//old-ajax# function menu_click(menu_index,subpage_idx)
//old-ajax# {
//old-ajax#   alert("Not implemented")
//old-ajax#   return
//old-ajax# 
//old-ajax#   var target_obj = document.getElementById('page_content_container');
//old-ajax# 
//old-ajax#   if(typeof(subpage_idx) == 'undefined')
//old-ajax#   {
//old-ajax#     subpage_idx = '00';
//old-ajax#   }
//old-ajax#   G_curr_subpage = subpage_idx;
//old-ajax# 
//old-ajax#   var date_obj = new Date;
//old-ajax#   var runtime_ID = date_obj.getTime();
//old-ajax# 
//old-ajax#   // alert('Activating menu '+menu_index);
//old-ajax# 
//old-ajax#   // uaktualnienie bannera:
//old-ajax#   //
//old-ajax#   var top_image_obj = document.getElementById('id_top_image');
//old-ajax#   var new_image_url = "_img/top_banner_"+menu_index+"_768x100.png";
//old-ajax#   // top_image_obj.src = new_image_url;
//old-ajax#   blendimage_r('id_top_banner','id_top_image', new_image_url, 20,20);
//old-ajax#   // alert('updating image');
//old-ajax#   //top_image_obj.src = new_image_url;
//old-ajax#   //changeOpac(100,'id_top_image');
//old-ajax# 
//old-ajax# 
//old-ajax#   // Wyczyszczenie poprzedniego przycisku menu:
//old-ajax#   //
//old-ajax#   G_menu_status[G_menu_curr_sel_idx] = 0;
//old-ajax#   document.getElementById('menu_item_'+G_menu_curr_sel_idx).style.background = 
//old-ajax#     "url(_img/menu_"+G_menu_curr_sel_idx+"_inact.png)";
//old-ajax# 
//old-ajax# 
//old-ajax#   // Aktywowanie klikniętego przycisku menu:
//old-ajax#   // 
//old-ajax#   G_menu_status[menu_index] = 1;
//old-ajax#   G_menu_curr_sel_idx = menu_index;
//old-ajax#   document.getElementById('menu_item_'+G_menu_curr_sel_idx).style.background = 
//old-ajax#     "url(_img/menu_"+G_menu_curr_sel_idx+"_act.png)";
//old-ajax# 
//old-ajax# 
//old-ajax#   // zaladowanie tresci:
//old-ajax#   //
//old-ajax#   target_obj.innerHTML = 'Loading...';
//old-ajax#   load_xhr('page_'+menu_index+'/content_'+subpage_idx+'.html?f='+runtime_ID,
//old-ajax#      insert_body_from_xhr,menu_index);  
//old-ajax#   load_xhr('page_'+menu_index+'/content.js?f='+runtime_ID,
//old-ajax#      js_body_from_xhr,menu_index);  
//old-ajax# 
//old-ajax# 
//old-ajax# } // menu_click()

//--------------------------------------------------------------------------

function menu_click(page_base,page_ext,from)
{
  if(typeof(page_ext) == 'undefined')
  {
    page_ext = '';
  }
  new_link = page_base + page_ext + ".html?from="+from;
  window.location = new_link;

  return(1);

/////////////////////////////////////////////////////////////////////////

  var date_obj = new Date;
  var runtime_ID = date_obj.getTime();

  // alert('Activating menu '+menu_index);

  // uaktualnienie bannera:
  // TODO: przejżż na blend_banner() jeżeli jeszcze to poniżej
  // ma byż używane
  //
  var top_image_obj = document.getElementById('id_top_image');
  var new_image_url = "_img/top_banner_"+menu_index+"_768x100.png";
  // top_image_obj.src = new_image_url;
  blendimage_r('id_top_banner','id_top_image', new_image_url, 20,20);
  // alert('updating image');
  //top_image_obj.src = new_image_url;
  //changeOpac(100,'id_top_image');


  // Wyczyszczenie poprzedniego przycisku menu:
  //
  G_menu_status[G_menu_curr_sel_idx] = 0;
  document.getElementById('menu_item_'+G_menu_curr_sel_idx).style.background = 
    "url(_img/menu_"+G_menu_curr_sel_idx+"_inact.png)";


  // Aktywowanie klikniętego przycisku menu:
  // 
  G_menu_status[menu_index] = 1;
  G_menu_curr_sel_idx = menu_index;
  document.getElementById('menu_item_'+G_menu_curr_sel_idx).style.background = 
    "url(_img/menu_"+G_menu_curr_sel_idx+"_act.png)";


  // zaladowanie tresci:
  //
  target_obj.innerHTML = 'Loading...';
  load_xhr('page_'+menu_index+'/content_'+subpage_idx+'.html?f='+runtime_ID,
     insert_body_from_xhr,menu_index);  
  load_xhr('page_'+menu_index+'/content.js?f='+runtime_ID,
     js_body_from_xhr,menu_index);  


} // menu_click()

//----------------------------------------------------------------------------

function menu_draw(page_base)
{

  // alert("menu_draw()")
  var aMenu = new Array();
  // [name, div_class, html_id, style, onmouseover, onmouseout, onclick]

  var page_name = "";

  page_name = 'hem';
  aMenu.push(new Array(
    page_name,
    "menu_item menu_item_first",
    "menu_item_"+page_name,
    "background: url(_img/menu_"+page_name+"_inact.png)",
    "this.style.background = 'url(_img/menu_"+page_name+"_over.png)';",
    "menu_onmouseout(this,'"+page_name+"');",
    "menu_click('"+page_name+"','','"+page_base+"');"
  ));
  
  next_page_names = new Array(
    'tjanster',
    'referenser',
    'miljo',
    'kontakt'
  ); 

  for (var i=0; i<next_page_names.length; i++)
  {
    page_name = next_page_names[i];
    aMenu.push(new Array(
      page_name,
      "menu_item",
      "menu_item_"+page_name,
      "background: url(_img/menu_"+page_name+"_inact.png)",
      "this.style.background = 'url(_img/menu_"+page_name+"_over.png)';",
      "menu_onmouseout(this,'"+page_name+"');",
      "menu_click('"+page_name+"','','"+page_base+"');"
    ));
  } 

  document.write("\n");

  for (var i=0; i<aMenu.length; i++)
  {
    var item = aMenu[i];

    var str_name 	= item[0];
    var str_div_class 	= item[1];
    var str_html_id 	= item[2];
    var str_style   	= item[3];
    var str_onmouseover	= item[4];
    var str_onmouseout 	= item[5];
    var str_onclick    	= item[6];

    if(page_base == str_name)
    {
      var imgurl = "_img/menu_"+str_name+"_act.png";
      str_style =
        "background: url("+imgurl+");";
      G_menu_status[page_base] = 1;
    }

    document.write("<div class=\"",str_div_class +"\" id=\""+str_html_id+"\" "
       +  "style=\""+str_style+"\" onmouseover=\""+str_onmouseover+"\" "
       +  "onmouseout=\""+str_onmouseout+"\" "+"onclick=\""+str_onclick+"\">"
       +  "</div>\n"
    );
  }

} // menu_draw()

//----------------------------------------------------------------------------

function blend_banner(new_image_url)
{
  blendimage_r('id_top_banner','id_top_image', new_image_url, 20,20);
}

//----------------------------------------------------------------------------

function insert_banner(page_base)
{

  // alert("insert_banner()");

  var bannerId     = G_page2bannerId[page_base];
  var old_bannerId = G_page2bannerId[page_base];

  if(typeof(G_url_params['from']) != 'undefined')
  {
    old_bannerId = G_page2bannerId[G_url_params['from']];
    // alert("Old banner Id: "+old_bannerId);
  }
 
  // alert("Initializing banner");
  document.write("\n");
  document.write("<div class=\"c_top_banner\" id=\"id_top_banner\">");
  document.write("<img class=\"c_top_image\" id=\"id_top_image\" "
    +"src=\"_img/top_banner_"+old_bannerId+"_768x100.png\">");
  document.write("</div>");
  var div_top_banner = document.getElementById("id_top_banner");
  // bg_short - custom property - url string, not url(url)
  div_top_banner.bg_short = '_img/top_banner_'+old_bannerId+'_768x100.png';
  div_top_banner.style.backgroundImage = "url('"+div_top_banner.bg_short+"')";
 
  var new_image_url = "_img/top_banner_"+bannerId+"_768x100.png";
  // alert("calling banner blend:" +old_bannerId+" "+bannerId);
  blend_banner(new_image_url);

} // insert_banner()

