var language;
var preLoaded = false;
var menuItems = new Array('menu1', 'menu2', 'menu3');
var smallMenuItems = new Array('menub1', 'menub2', 'menub3');
/**
 * Preloads menu images
 */
function preloadImages(){
    for(i=0;i<menuItems.length;i++){
        var id = menuItems[i];
        var imgId = 'img' + id;
        var el = document.getElementById(imgId);
        //window.status += 'Loaded image ' + el.getAttribute('src');
    }
    preLoaded = true;
    Event.observe($('fpLinkContainer'), 'mouseover', swapImage);
    Event.observe($('fpLinkContainer'), 'mouseout', swapImage );
}

/**
 * Swap image function that uses prototype event
 */
function swapImage(e){
	try{
	    if(e.element().tagName=='IMG'){
	        var oldsrc = e.element().readAttribute('src'); 
	        var re = /^.*(_p)\.gif$/gi;
	        if(oldsrc.match(re)){
	            var newsrc = oldsrc.replace(/_p/, '_a');
	            e.element().writeAttribute('src', newsrc);
	            return;
	        }
	        var newsrc = oldsrc.replace(/_a/, '_p');
	        e.element().writeAttribute('src', newsrc);
	        return;
	    }
	}
	catch(e){
		window.status = e.description;
	}
}
function moveMenuItems(){
    var left = 70;
    var top = 550;
    var smallLeft = 120;
    var smallTop = 610;
    var time = 500;
    for(i=0; i<menuItems.length; i++){
        var el = document.getElementById(menuItems[i]);
        el.style.visibility = 'hidden';
        var timerId = window.setTimeout('showLayer("' + menuItems[i] + '")', time);
        if(el.offsetWidth>0){
            //el.style.left = left + 'px';
            //el.style.top = top + 'px';
            //left+= el.offsetWidth + 10;
        }
        el.onmouseover = swapMenuImage;
        el.onmouseout = swapBackWithShake;
        time += time + (Math.random() * 30);
    }
    time = 650;
    for(i=0; i<smallMenuItems.length; i++){
        var id = smallMenuItems[i];
        var el = document.getElementById(id);
        el.style.visibility = 'hidden';
        var timerId = window.setTimeout('showLayer("' + id + '")', time);
        if(el.offsetWidth>0){
            //el.style.left = smallLeft + 'px';
            //el.style.top = smallTop + 'px';
            //smallLeft+= el.offsetWidth + 10;
        }
        el.onmouseover = swapMenuImage;
            el.onmouseout = swapBackWithShake;
        time += time + (Math.random() * 30);
    }
}

/**
 * drawMenu()
 * Draws menu
 */
function drawMenu(theLanguage){
  var left = 70;
  var timeOut = 200;
  var imgID = null;
  var img, div;
  cleanUp();
  for(i=1; i<4; i++){
    div = document.createElement("div");
    img = document.createElement("img");
    img.setAttribute('src', '/skins/default/gfx/varkel30/m_' + theLanguage + '_u_' + i + '_p.gif');
    img.style.visibility = 'inherit';
    div = document.body.appendChild(div);
    div.appendChild(img);
    div.style.visibility='hidden';
    div.style.top = 520 + 'px';
    div.style.position = 'absolute';
    div.id = 'menu' + i;
    img.id = 'menuimg' + i;
    menuItems[menuItems.length] = div.id;
  }
  (theLanguage=='et')?language='en':language='et';
  window.setTimeout('drawMenu2("' + language + '")', 500);
  for(i=1;i<4;i++){
    timeO = timeOut * i;
    div = $('menu' + i);
    img = document.getElementById('menuimg' + i);
    var timerId = window.setTimeout('showLayer("menu' + i + '")', timeO);
    div.style.left = left + 'px';
    left += div.offsetWidth + 10;

    Event.observe(div, 'mouseover', swapMenuImage.bindAsEventListener(), false);
    Event.observe(div, 'mouseoout', swapMenuImage.bindAsEventListener(), false);
    Event.observe(div, 'click', fillContent.bindAsEventListener(), false);
  }
}
function cleanUp(){
    var el;
    var i=0;
    while(i<menuItems.length){
        el = document.getElementById( menuItems[i] );
        document.body.removeChild(el);
        i++;
    }
    menuItems = new Array();
}
/**
 * drawMenu2()
 * Draws second level menu
 */
function drawMenu2(theLanguage){
  var left = 120;
  var  timeOut = 400;
  for(i=1; i<4; i++){
    var div = document.createElement("div");
    var img = document.createElement("img");
    img.setAttribute('src', '/skins/default/gfx/varkel30/m_' + theLanguage + '_b_' + i + '_p.gif');
    div.style.visibility='hidden';
    div.style.top = 580 + 'px';
    div.style.left = left + 'px';
    div.style.position = 'absolute';
    div.id = 'menu2' + i;
    document.body.appendChild(div);
    div.appendChild(img);
    timeO = timeOut * i;
    var timerId = window.setTimeout('showLayer("' + div.id + '")', timeO);
    left += img.width + 10;
    
    Element.extend(div);
    Event.observe(div, 'mouseover', swapMenuImage.bindAsEventListener());
    Event.observe(div, 'mouseoout', swapMenuImage.bindAsEventListener());
    Event.observe(div, 'click', swapLanguage.bindAsEventListener());
    menuItems[menuItems.length] = div.id;
  }
}
function swapLanguage(){
  drawMenu(language);
  return;
}
/**
 * fillContent()
 */
function fillContent(e){
  var httpRequest;
  if (window.XMLHttpRequest) { // Mozilla, Safari, ...
        httpRequest = new XMLHttpRequest();
  } else if (window.ActiveXObject) { // IE
      httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
  }
}
/**
 * showLayer() displays menu layer
 */
function showLayer(id){
  div = document.getElementById(id);
  if(div!=null){
    div.style.visibility='visible';
    return;
  }
}
function swapMenuImage(e){
  try{
  	  var div = e.currentTarget;
	  var imgArr = div.getElementsByTagName('img');
	  var img = imgArr[0];
	  var src = new String(img.src);
	  var arr = src.split("_");
	  if(src.match(/_p/)){
	    img.src =  src.replace(/_p/, '_a');
	  }else img.src =  src.replace(/_a/, '_p');
  }
  catch(exception){
	window.status = exception.description;
  }
}
function swapBackWithShake(e){
	try{
	    swapMenuImage(e);
	    shakeMenu(e.currentTarget);
    }
    catch(exception){
		window.status = exception.description;
    }
}
function shakeMenu(el){
    var oLeft = parseInt(el.style.left);
    var oTop = parseInt(el.style.top);
    var id = el.id;
    shakeSlowly(id, 0, oLeft, oTop);
    el.style.left = oLeft + 'px';
    el.style.top = oTop + 'px';
}
function shakeSlowly(id, shakerId, oLeft, oTop){
    shakerId++;
    if(shakerId<10){
        swapLayerVisibility(id);
        setTimeout('shakeSlowly("' + id + '","' + shakerId + '", "' + oLeft + '", "' + oTop + '")', Math.random()*50);
    setTimeout('moveLayer("' + id + '", "' + oLeft + '", "' + oTop + '")', 100);
    }else{
        showLayer(id);
    }
}
function swapLayerVisibility(id){
    var el = document.getElementById(id);
    (el.style.visibility=='visible')?el.style.visibility='hidden':el.style.visibility='visible';
    return;
}
function moveLayer(id, left, top){
    var el = document.getElementById(id);
    el.style.left = left + 'px';
    el.style.top = top + 'px';
    return;
}