/*
 * © 2009 ROBO Design
 * http://www.robodesign.ro
 */

// show some luv to IE
function myAddEvent (elem, ev, func, cap) {
  if (!elem || !ev || !func) {
    return false;
  }

  if (!cap) {
    cap = false;
  }

  if (typeof (elem) == 'string') {
    elem = document.getElementById(elem);
  }

  if (!elem) {
    return false;
  }

  if (elem.addEventListener) {
    elem.addEventListener(ev, func, cap);

  } else if (elem.attachEvent) {
	// yes i know about memleaks in msie, but this is not a complex
	// web app and events are not dettached.
    elem.attachEvent('on' + ev, function () {
      var evo = window.event;
      if (!evo.preventDefault) {
        evo.preventDefault = function () {
          evo.returnValue = false;
        };
      }

      if (!evo.target && evo.srcElement) {
        evo.target = evo.srcElement;
      }

      return func.call(elem, evo);
    });

  } else {
    return false;
  }

  return true;
}

(function () {
  var dest = document.getElementById('breadcrumb-section'),
      content = document.getElementById('content'),
      poptions = document.createElement('ul'),
      textinc = document.createElement('li'),
      textdec = document.createElement('li'),
	    defaultsize = 1.15, textsize = defaultsize,
	    maxsize = 2.15, minsize = 0.75, incstep = 0.1,
      a;

  if (!content || !dest || !poptions || !textinc || !textdec) {
    return;
  }

  poptions.id = 'page-options';

  a = document.createElement('a');
  a.title = site_lng.font_bigger;
  a.href = '#';
  a.appendChild(document.createTextNode(a.title));
  textinc.id = 'font-size-inc';
  textinc.appendChild(a);

  myAddEvent(a, 'click', function (ev) {
    if (ev && ev.preventDefault) {
      ev.preventDefault();
    }

    textsize += incstep;
    if (textsize > maxsize) {
      textsize = maxsize;
    }

    content.style.fontSize = textsize + 'em';
    writeCookie('uav_txtsize', textsize, 180);

    return false;
  }, false);

  a = document.createElement('a');
  a.title = site_lng.font_smaller;
  a.href = '#';
  a.appendChild(document.createTextNode(a.title));
  textdec.id = 'font-size-dec';
  textdec.appendChild(a);

  myAddEvent(a, 'click', function (ev) {
    if (ev && ev.preventDefault) {
      ev.preventDefault();
    }

    textsize -= incstep;
    if (textsize < minsize) {
      textsize = minsize;
    }

    content.style.fontSize = textsize + 'em';
    writeCookie('uav_txtsize', textsize, 180);

    return false;
  }, false);

  poptions.appendChild(textdec);
  poptions.appendChild(textinc);

  if (window.print) {
    var pprint = document.createElement('li');

    a = document.createElement('a');
    a.title = site_lng.print_page;
    a.href = '#';
    a.appendChild(document.createTextNode(a.title));
    pprint.id = 'print-page';
    pprint.appendChild(a);
    poptions.appendChild(pprint);

    myAddEvent(a, 'click', function (ev) {
      if (ev && ev.preventDefault) {
        ev.preventDefault();
      }

      window.print();

      return false;
    }, false);
  }

  var writeCookie = function (name, value, days) {
    var expires = '';

    if (days) {
      var mydate = new Date();
      mydate.setTime(mydate.getTime() + (days * 24 * 60 * 60 * 1000));
      expires = '; expires=' + mydate.toUTCString();
    }

    document.cookie = name + '=' + encodeURIComponent(value) + expires + '; path=/';
  }

  var readCookie = function (name) {
    var ca = document.cookie.split(';'),
        i = 0, n = ca.length, c;
    name += '=';

    for(; i < n; i++) {
      c = ca[i].replace(/^\s+/, '');
      if (c.indexOf(name) == 0) {
        return decodeURIComponent(c.substr(name.length));
      }
    }

    return null;
  }

  dest.appendChild(poptions);

  textsize = parseFloat(readCookie('uav_txtsize')) || textsize;
  if (textsize != defaultsize) {
    content.style.fontSize = textsize + 'em';
  }
})();
