﻿
$(document).ready(function () {
  $('.menuItem').hover(
      function () { startAnim($(this).prev()[0]); },
      function () { stopAnim($(this).prev()[0]); });
});

function updateAnim(obj) {
  state = obj['state'];
  brake = obj['brake'];
  speed = obj['speed'];
  state = (state + 1) % 3;
  if (brake) {
    speed = speed - 0.2;
    if (speed <= 1.5) {
      speed = 1.5;
      if (state == 0) {
        obj['running'] = 0;
        setElement(obj, -1);
        return;
      }
    }
    obj['speed'] = speed;
  }
  obj['tick'] = obj['tick'] + 1;
  if (obj['tick'] > 20) {
    obj['brake'] = 1;
  }
  obj['state'] = state;
  setElement(obj, state);
  schedule(obj, speed);
}

function setElement(obj, state) {
  if (state == -1) {

    $(obj).css({ backgroundPosition: "0px -20px" });
    return;
  }
  if (state == 0) {
    $(obj).css({ backgroundPosition: "-20px -20px" });
    return;
  }
  if (state == 1) {
    $(obj).css({ backgroundPosition: "0px 0px" });
    return;
  }
  $(obj).css({ backgroundPosition: "-20px 0px" });
}

function schedule(obj, speed) {
  setTimeout(function () { updateAnim(obj) }, 200 / speed);
}

function stopAnim(obj) {
  obj['brake'] = 1;
}

function startAnim(obj) {
  if (obj['running'] == 1) {
    obj['brake'] = 0;
    obj['tick'] = 0;
    obj['speed'] = 3;
    return;
  }
  obj['running'] = 1;
  obj['state'] = 0;
  obj['brake'] = 0;
  obj['speed'] = 3;
  obj['tick'] = 0;
  setElement(obj, 0);
  schedule(obj, obj['speed']);
}


function setOneVisibleFromMany(prefix, count, id) {
  for (var i = 0; i < count; i++) {
    var e = document.getElementById(prefix + i);
    e.style.display = (id == i) ? "block" : "none";
  }
}



MenuUpdateClose = function(delta) {
  var e = this;
  e.h = e.h - delta / 500;
  if (e.h < 0) {
    e.style.display = 'none';
    openedMenu = e.newMenu;
    var ee = document.getElementById('subMenu' + e.newMenu.toString());
    ee.style.visibility = 'hidden';
    ee.style.display = 'block';
    ee.style.height = '0px';
    ee.h = 0;
    ee.Update = MenuUpdateOpen;
    addObjectToAnimate(ee);
    return false;
  }
  e.style.height = Math.pow(e.h, 2) * e.maxHeight + 'px';

  return true;
}


MenuUpdateOpen = function(delta) {
  var e = this;
  e.h = e.h + delta / 500;
  if (e.h >= 1) {
    e.style.height = e.maxHeight + 'px';
    e.style.visibility = 'visible';
    return false;
  }
  e.style.height = Math.pow(e.h, 2) * e.maxHeight + 'px';
  return true;
}

var openedMenu = 0;

function selectMenu(id,imidietly) {
  if (openedMenu == id || id == 0)
    return;
  if (openedMenu == 0) {
    openedMenu = id;
    var e = document.getElementById('subMenu' + id.toString());
    e.style.visibility = 'hidden';
    e.style.display = 'block';
    e.maxHeight = heights[id];
    e.h = 0;
    e.style.height = '0px';
    if (imidietly) {
      e.style.height = e.maxHeight + 'px';
      e.style.visibility = 'visible';
    } else {
      e.Update = MenuUpdateOpen;
      addObjectToAnimate(e);
    }
  }
  else {
    var ee = document.getElementById('subMenu' + id.toString());
    ee.maxHeight = heights[id];
    var e = document.getElementById('subMenu' + openedMenu.toString());
    e.Update = MenuUpdateClose;
    e.style.visibility = 'hidden';
    e.maxHeight = heights[openedMenu];
    e.newMenu = id;
    e.h = 1;
    addObjectToAnimate(e);
  }
}


ImageUpdate = function(delta) {
  var e = this;

  if (e.smer == 1) {
    e.op = e.op - delta * 0.002;
    if (e.op < 0) {
      e.op = 0;
    }
    setElementOpacity(e, e.op);
    if (e.op == 0) {
      e.smer = 2;
      e.src = e.nextSrc;
      e.nextSrc = null;
    }
    return true;
  }
  if (e.smer == 2) {
    e.op = e.op + delta * 0.002;
    if (e.op > 1) {
      e.op = 1;
    }
    setElementOpacity(e, e.op);
    if (e.op == 1) {
      return false;
    }
    return true;
  }

  return false;
}

var TimeInterval = 60000;

function changeImage() {
  var counter = 1;
  var time = new Date().getTime(); ;
  var c = getCookie('img');
  if (c != null) {
    var v = c.toString().split(';');
    if (v[0] != null && v[1] != null) {
      counter = v[0];
    }
  }
  counter = (counter) % 3 + 1;
  var e = document.getElementById(mainPicture);
  e.nextSrc = eval("pic" + (counter).toString() + ".src");
  if (e.Update == null)
    e.Update = ImageUpdate;
  e.op = 1;
  e.smer = 1;
  addObjectToAnimate(e);
  setCookie('img', counter.toString() + ';' + time.toString(), 1);
  setTimeout("changeImage()", TimeInterval);
}

function initImage() {
  var counter = 0;
  var time = new Date().getTime();
  var c = getCookie('img');
  if (c != null) {
    var v = c.toString().split(';');
    if (v[0] != null && v[1] != null) {
      counter = v[0];
      var t = v[1];
      var delta = time - t;
      if (delta < TimeInterval && delta > 0) {
        document.getElementById(mainPicture).src = eval("pic" + (counter).toString() + ".src");
        setCookie('img', counter.toString() + ';' + t.toString(), 1);
        setTimeout("changeImage()", TimeInterval - delta);
        return;
      }
    }
  }
  counter = counter % 3 + 1;
  document.getElementById(mainPicture).src = eval("pic" + (counter).toString() + ".src");
  setCookie('img', counter.toString() + ';' + time.toString(), 1);
  setTimeout("changeImage()", TimeInterval);
}

check = 0;

function oborImgAnimation(id) {
  e = document.getElementById('obor' + id.toString() + 'Img');
  if (e != null) {
    e.counter = null;
    check = check + 100;
    oborImageChange(id,check);
  }
}

function oborImageChange(id, checkNum) {
  if (check != checkNum) {
    return;
  }
  var images = eval("obor" + id.toString() + "Images");
  if (images == null)
    return;
  var e = document.getElementById('obor' + id.toString() + 'Img');
  if (e.counter != null) {
    e.counter = (e.counter + 1) % images.length;
    e.nextSrc = images[e.counter].src;
    if (e.Update == null)
      e.Update = ImageUpdate;
    e.op = 1;
    e.smer = 1;
    addObjectToAnimate(e);
  }
  else {
    e.counter = 0;
    e.src = images[e.counter].src;
  }
  check = check + 1;
  setTimeout("oborImageChange(" + id.toString() +","+ check.toString()+ ")", 5000);
}


