/**
 * jQuery lightBox plugin
 * This jQuery plugin was inspired and based on Lightbox 2 by Lokesh Dhakar (http://www.huddletogether.com/projects/lightbox2/)
 * and adapted to me for use like a plugin from jQuery.
 * @name jquery-lightbox-0.5.js
 * @author Leandro Vieira Pinho - http://leandrovieira.com
 * @version 0.5
 * @date April 11, 2008
 * @category jQuery plugin
 * @copyright (c) 2008 Leandro Vieira Pinho (leandrovieira.com)
 * @license CC Attribution-No Derivative Works 2.5 Brazil - http://creativecommons.org/licenses/by-nd/2.5/br/deed.en_US
 * @example Visit http://leandrovieira.com/projects/jquery/lightbox/ for more informations about this jQuery plugin
 */
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(6($){$.2N.3g=6(4){4=23.2H({2B:\'#34\',2g:0.8,1d:F,1M:\'18/5-33-Y.16\',1v:\'18/5-1u-2Q.16\',1E:\'18/5-1u-2L.16\',1W:\'18/5-1u-2I.16\',19:\'18/5-2F.16\',1f:10,2A:3d,2s:\'1j\',2o:\'32\',2j:\'c\',2f:\'p\',2d:\'n\',h:[],9:0},4);f I=N;6 20(){1X(N,I);u F}6 1X(1e,I){$(\'1U, 1S, 1R\').l({\'1Q\':\'2E\'});1O();4.h.B=0;4.9=0;7(I.B==1){4.h.1J(v 1m(1e.17(\'J\'),1e.17(\'2v\')))}j{36(f i=0;i<I.B;i++){4.h.1J(v 1m(I[i].17(\'J\'),I[i].17(\'2v\')))}}2n(4.h[4.9][0]!=1e.17(\'J\')){4.9++}D()}6 1O(){$(\'m\').31(\'<e g="q-13"></e><e g="q-5"><e g="5-s-b-w"><e g="5-s-b"><1w g="5-b"><e 2V="" g="5-k"><a J="#" g="5-k-V"></a><a J="#" g="5-k-X"></a></e><e g="5-Y"><a J="#" g="5-Y-29"><1w W="\'+4.1M+\'"></a></e></e></e><e g="5-s-b-T-w"><e g="5-s-b-T"><e g="5-b-A"><1i g="5-b-A-1t"></1i><1i g="5-b-A-1g"></1i></e><e g="5-1s"><a J="#" g="5-1s-22"><1w W="\'+4.1W+\'"></a></e></e></e></e>\');f z=1D();$(\'#q-13\').l({2K:4.2B,2J:4.2g,S:z[0],P:z[1]}).1V();f R=1p();$(\'#q-5\').l({1T:R[1]+(z[3]/10),1c:R[0]}).E();$(\'#q-13,#q-5\').C(6(){1a()});$(\'#5-Y-29,#5-1s-22\').C(6(){1a();u F});$(G).2G(6(){f z=1D();$(\'#q-13\').l({S:z[0],P:z[1]});f R=1p();$(\'#q-5\').l({1T:R[1]+(z[3]/10),1c:R[0]})})}6 D(){$(\'#5-Y\').E();7(4.1d){$(\'#5-b,#5-s-b-T-w,#5-b-A-1g\').1b()}j{$(\'#5-b,#5-k,#5-k-V,#5-k-X,#5-s-b-T-w,#5-b-A-1g\').1b()}f Q=v 1j();Q.1P=6(){$(\'#5-b\').2D(\'W\',4.h[4.9][0]);1N(Q.S,Q.P);Q.1P=6(){}};Q.W=4.h[4.9][0]};6 1N(1o,1r){f 1L=$(\'#5-s-b-w\').S();f 1K=$(\'#5-s-b-w\').P();f 1n=(1o+(4.1f*2));f 1y=(1r+(4.1f*2));f 1I=1L-1n;f 2z=1K-1y;$(\'#5-s-b-w\').3f({S:1n,P:1y},4.2A,6(){2y()});7((1I==0)&&(2z==0)){7($.3e.3c){1H(3b)}j{1H(3a)}}$(\'#5-s-b-T-w\').l({S:1o});$(\'#5-k-V,#5-k-X\').l({P:1r+(4.1f*2)})};6 2y(){$(\'#5-Y\').1b();$(\'#5-b\').1V(6(){2u();2t()});2r()};6 2u(){$(\'#5-s-b-T-w\').38(\'35\');$(\'#5-b-A-1t\').1b();7(4.h[4.9][1]){$(\'#5-b-A-1t\').2p(4.h[4.9][1]).E()}7(4.h.B>1){$(\'#5-b-A-1g\').2p(4.2s+\' \'+(4.9+1)+\' \'+4.2o+\' \'+4.h.B).E()}}6 2t(){$(\'#5-k\').E();$(\'#5-k-V,#5-k-X\').l({\'K\':\'1C M(\'+4.19+\') L-O\'});7(4.9!=0){7(4.1d){$(\'#5-k-V\').l({\'K\':\'M(\'+4.1v+\') 1c 15% L-O\'}).11().1k(\'C\',6(){4.9=4.9-1;D();u F})}j{$(\'#5-k-V\').11().2m(6(){$(N).l({\'K\':\'M(\'+4.1v+\') 1c 15% L-O\'})},6(){$(N).l({\'K\':\'1C M(\'+4.19+\') L-O\'})}).E().1k(\'C\',6(){4.9=4.9-1;D();u F})}}7(4.9!=(4.h.B-1)){7(4.1d){$(\'#5-k-X\').l({\'K\':\'M(\'+4.1E+\') 2l 15% L-O\'}).11().1k(\'C\',6(){4.9=4.9+1;D();u F})}j{$(\'#5-k-X\').11().2m(6(){$(N).l({\'K\':\'M(\'+4.1E+\') 2l 15% L-O\'})},6(){$(N).l({\'K\':\'1C M(\'+4.19+\') L-O\'})}).E().1k(\'C\',6(){4.9=4.9+1;D();u F})}}2k()}6 2k(){$(d).30(6(12){2i(12)})}6 1G(){$(d).11()}6 2i(12){7(12==2h){U=2Z.2e;1x=27}j{U=12.2e;1x=12.2Y}14=2X.2W(U).2U();7((14==4.2j)||(14==\'x\')||(U==1x)){1a()}7((14==4.2f)||(U==37)){7(4.9!=0){4.9=4.9-1;D();1G()}}7((14==4.2d)||(U==39)){7(4.9!=(4.h.B-1)){4.9=4.9+1;D();1G()}}}6 2r(){7((4.h.B-1)>4.9){2c=v 1j();2c.W=4.h[4.9+1][0]}7(4.9>0){2b=v 1j();2b.W=4.h[4.9-1][0]}}6 1a(){$(\'#q-5\').2a();$(\'#q-13\').2T(6(){$(\'#q-13\').2a()});$(\'1U, 1S, 1R\').l({\'1Q\':\'2S\'})}6 1D(){f o,r;7(G.1h&&G.28){o=G.26+G.2R;r=G.1h+G.28}j 7(d.m.25>d.m.24){o=d.m.2P;r=d.m.25}j{o=d.m.2O;r=d.m.24}f y,H;7(Z.1h){7(d.t.1l){y=d.t.1l}j{y=Z.26}H=Z.1h}j 7(d.t&&d.t.1A){y=d.t.1l;H=d.t.1A}j 7(d.m){y=d.m.1l;H=d.m.1A}7(r<H){1z=H}j{1z=r}7(o<y){1B=o}j{1B=y}21=v 1m(1B,1z,y,H);u 21};6 1p(){f o,r;7(Z.1Z){r=Z.1Z;o=Z.2M}j 7(d.t&&d.t.1F){r=d.t.1F;o=d.t.1Y}j 7(d.m){r=d.m.1F;o=d.m.1Y}2q=v 1m(o,r);u 2q};6 1H(2C){f 2x=v 2w();1q=2h;3h{f 1q=v 2w()}2n(1q-2x<2C)};u N.11(\'C\').C(20)}})(23);',62,204,'||||settings|lightbox|function|if||activeImage||image||document|div|var|id|imageArray||else|nav|css|body||xScroll||jquery|yScroll|container|documentElement|return|new|box||windowWidth|arrPageSizes|details|length|click|_set_image_to_view|show|false|window|windowHeight|jQueryMatchedObj|href|background|no|url|this|repeat|height|objImagePreloader|arrPageScroll|width|data|keycode|btnPrev|src|btnNext|loading|self||unbind|objEvent|overlay|key||gif|getAttribute|images|imageBlank|_finish|hide|left|fixedNavigation|objClicked|containerBorderSize|currentNumber|innerHeight|span|Image|bind|clientWidth|Array|intWidth|intImageWidth|___getPageScroll|curDate|intImageHeight|secNav|caption|btn|imageBtnPrev|img|escapeKey|intHeight|pageHeight|clientHeight|pageWidth|transparent|___getPageSize|imageBtnNext|scrollTop|_disable_keyboard_navigation|___pause|intDiffW|push|intCurrentHeight|intCurrentWidth|imageLoading|_resize_container_image_box|_set_interface|onload|visibility|select|object|top|embed|fadeIn|imageBtnClose|_start|scrollLeft|pageYOffset|_initialize|arrayPageSize|btnClose|jQuery|offsetHeight|scrollHeight|innerWidth||scrollMaxY|link|remove|objPrev|objNext|keyToNext|keyCode|keyToPrev|overlayOpacity|null|_keyboard_action|keyToClose|_enable_keyboard_navigation|right|hover|while|txtOf|html|arrayPageScroll|_preload_neighbor_images|txtImage|_set_navigation|_show_image_data|title|Date|date|_show_image|intDiffH|containerResizeSpeed|overlayBgColor|ms|attr|hidden|blank|resize|extend|close|opacity|backgroundColor|next|pageXOffset|fn|offsetWidth|scrollWidth|prev|scrollMaxX|visible|fadeOut|toLowerCase|style|fromCharCode|String|DOM_VK_ESCAPE|event|keydown|append|of|ico|000|fast|for||slideDown||100|250|msie|400|browser|animate|lightBox|do'.split('|'),0,{}))

//
// Gallery
//

var gallery = {
  version: '2.2',
  images: [],

  width: 402,
  height: 320,
  img_variant: 'full',
  img_thumbvariant: 'micro',
  nav_width: 70,
  nav_items: 6,
  navigation: true,
  showtext: true,
  showphotographer: false,
  showcopyright: false,
  adjustposition: false,
  active: false,
  _activeId: 1,
  offset: 0,
  transition: 0,
  timer: null,
  scroll: {},
  scrollActive: false,
  scrollEl: null,
  scrollTimer: null,
  blockId: 0,
  play: true,
  displaytime: 10000,
  fadetime: 1000,
  url: document.location.pathname + '/gallery_images.xml',
  use_variantflag: true,
  flexible: false,
  initialized: false,

  //

  init:
  function(URL)
  {
    if (URL != null) this.url = URL;

    this.el = $('#image_gallery')[0];

    var uel = $("#gallery_conf");
    if (uel.length)
      eval(uel.html());

    // read configuration
    if (gallery.config)
    {
      gallery.play = gallery.config.play != null ? gallery.config.play : gallery.play;
      gallery.displaytime = gallery.config.displaytime != null ? gallery.config.displaytime : gallery.displaytime;
      gallery.fadetime = gallery.config.fadetime != null ? gallery.config.fadetime : gallery.fadetime;
      gallery.img_variant = gallery.config.img_variant != null ? gallery.config.img_variant : gallery.img_variant;
      gallery.img_thumbvariant = gallery.config.img_thumbvariant != null ? gallery.config.img_thumbvariant : gallery.img_thumbvariant;
      gallery.showtext = gallery.config.showtext != null ? gallery.config.showtext : gallery.showtext;
      gallery.showphotographer = gallery.config.showphotographer != null ? gallery.config.showphotographer : gallery.showphotographer;
      gallery.showcopyright = gallery.config.showcopyright != null ? gallery.config.showcopyright : gallery.showcopyright;
      gallery.navigation = gallery.config.navigation != null ? gallery.config.navigation : gallery.navigation;
      gallery.nav_width = gallery.config.nav_width != null ? gallery.config.nav_width : gallery.nav_width;
      gallery.width = gallery.config.width != null ? gallery.config.width : gallery.width;
      gallery.height = gallery.config.height != null ? gallery.config.height : gallery.height;
      gallery.url = gallery.config.url != null ? gallery.config.url : gallery.url;
      gallery.flexible = gallery.config.flexible != null ? gallery.config.flexible : gallery.flexible;
      gallery.use_variantflag = gallery.config.use_variantflag != null ? gallery.config.use_variantflag : gallery.use_variantflag;
      gallery.adjustposition = gallery.config.adjustposition != null ? gallery.config.adjustposition : gallery.adjustposition;
    }

    this.nav_x = this.nav_width - 10;
    this.nav_y = this.nav_width - 10;
    this._sliderwidth = ((this.nav_width * this.nav_items) + (this.nav_items * 5) - 5);
    if (this.width < this._sliderwidth) this.navigation = false;
    this._height = (this.navigation) ? this.height + this.nav_width + 10 : this.height;

    if (this.flexible)
      $(this.el).css({width: this.width - 20, height: 'auto', opacity: 1.0}).show();
    else
      $(this.el).css({width: this.width - 20, height: this._height, opacity: 0.0}).animate({height: this._height, opacity: 1.0}, 500);

    var sizes = 'thumb=' + this.img_thumbvariant + '&size=' + this.img_variant;
    AjaxRequest('post', this.url, gallery._setup, sizes, gallery, 'application/x-www-form-urlencoded');
  },

  _setup:
  function(response, ob)
  {
    var xml = response.responseXML;
    var root = xml.getElementsByTagName('gallery')[0];
    var images = $('image', xml);
    var il = images.length;

    if (!il)
    {
      $('#gallery_box').fadeOut("slow");
      return false;
    }

    // captions
    if (ob.showphotographer)
      ob.photocaption = root.getAttribute('photographer') + ': ';
    if (ob.showcopyright)
      ob.copycaption = root.getAttribute('copyright') + ' ';

    //debug("Show photo: " + ob.showphotographer + " (" + ob.photocaption + "), Show copy: " + ob.showcopyright);

    // set up the thumbnail viewer
    var nWidth = 0;
    var nEl = document.createElement('div');
    nEl.id = 'gallery_box_previews';
    nEl.className = 'navigation';
    var sEl = document.createElement('div');
    sEl.className = 'slider_area';
    sEl.style.width = ob._sliderwidth + 'px';
    sEl.style.height = ob.nav_width + 'px';
    var xEl = document.createElement('div');
    xEl.className = 'slider';
    xEl.id = 'slider_0';

    var html = [];
    var ic = '_current';
    for (var i=0; i < il; i++)
    {
      var img = serialize($(images)[i]);
      if (!ob.showtext) img.text = '';
      img.path = $(images)[i].getAttribute('path');
      img.img = new Image();
      img.img.src = img.path + (ob.use_variantflag ? '/?size=' + ob.img_variant : '');
      img.height = parseInt($(images[i]).attr('height'));
      img.thumb = new Image();
      img.thumb.src = ob.use_variantflag ? img.path + '/?size=' + ob.img_variant : $(images)[i].getAttribute('thumb')

      //debug(img.photographer);
      if (ob.showphotographer && img.photo)
        img.text += '<div class="photographer">' + ob.photocaption + img.photo + '</div>';
      if (ob.showcopyright && img.copyright)
        img.text += '<div class="copyright">' + ob.copycaption + img.copyright + '</div>';

      html.push('<div class="image' + ic + '" style="width: ' + ob.nav_x + 'px; height: ' + ob.nav_y + 'px; background-image: url(' + img.thumb.src + ');" offset="' + i + '" title="' + img.title + '"></div>');
      ob.images.push(img);
      nWidth += ob.nav_width + 5;
      ic = '';
    }

    xEl.style.width = nWidth + 'px';
    xEl.innerHTML = html.join('');
    $(sEl).append(xEl);

    if (ob.images.length > ob.nav_items)
    {
      var aLeft = document.createElement('div');
      var midpos = ((ob.nav_width / 2) - 5);
      aLeft.id = 'arrow_left';
      aLeft.style.height = ob.nav_width + 'px';
      aLeft.innerHTML = '<div style="position: absolute; left: 4px; top: ' + midpos + 'px;">&lt;</div>';
      var aRight = document.createElement('div');
      aRight.id = 'arrow_right';
      aRight.style.height = ob.nav_width + 'px';
      aRight.innerHTML = '<div style="position: absolute; right: 4px; top: ' + midpos + 'px;">&gt;</div>';
      $(nEl).append(aLeft).append(sEl).append(aRight);
    }
    else
    {
      //sEl.style.left = '5px';
      $(nEl).append(sEl);
    }

    // set up the main image
    var imgvar = '' // '/?size=' + ob.img_variant;
    var mEl = document.createElement('div');
    mEl.id = 'gallery_box_main';
    mEl.style.width = (ob.width - 20) + 'px';
    mEl.style.height = ob.height + 'px';
    mEl.innerHTML = '<div id="gbm_2"></div><div id="gbm_1"><div class="imgimg"><img src="' + ob.images[0].path + imgvar + '" alt=""' + (this.adjustPosition ? ' style="margin-left: -10px;"' : '') + ' /><div class="imgtxt' + (ob.flexible ? ' flex' : '') + '">' + ob.images[0].text + '</div></div></div>';
    $(mEl).click(function(){gallery.next();});

    if (!ob.navigation) nEl.style.display = 'none';

    $('#gallery_box').fadeOut("slow", function(){$(".progress", this).hide(); $(this).append(mEl); $(this).append(document.createTextNode(" ")).append(nEl).fadeIn("fast"); $("#arrow_left", this).click(function(){gallery.scroll_to(this)}); $("#arrow_right", this).click(function(){gallery.scroll_to(this)}); $("div", $("#slider_0")).click(function(){gallery.show_image(this);}); $(".image", this).hover(function(){$(this).fadeTo("fast", 1.0)}, function(){$(this).fadeTo("fast", .6)}); gallery.autoplay()});
  },

  show_image:
  function(el, force, auto)
  {
    if (force || el.className == 'image')
    {
      if (this.active) return false;

      this.active = true;
      $(".image_current").fadeTo("fast", .6);
      $(".image_current")[0].className = 'image';
      //$(el).fadeTo("fast", 1.0, function(){this.className = 'image_current'});
      if (!force)
      {
        el.className = 'image_current';
        this.offset = parseInt(el.getAttribute('offset'));
      }
      else
      {
        var nEl = $(".image", $('#gallery_box'))[this.offset];
        $(nEl)[0].className = 'image_current';
        $(nEl).fadeTo("fast", 1.0);
      }
      var img = this.images[this.offset];
      var h = 10 + img.img.height;
      if (this._activeId == 1)
      {
        $("#gbm_2").css('opacity', '1.0').html('<div class="imgimg"><img src="' + img.img.src + '" alt=""' + (this.adjustPosition ? ' style="margin-left: -10px;"' : '') + ' /><div class="imgtxt' + (this.flexible ? ' flex' : '') + '">' + img.text + '</div></div>').css('z-index', '1').show();
        $("#gbm_1").css('z-index', '2').fadeOut(this.fadetime, function(){gallery.swap()});
        h += $(".imgtxt", "#gbm_2").height();
      }
      else
      {
        $("#gbm_1").css('opacity', '1.0').html('<div class="imgimg"><img src="' + img.img.src + '" alt=""' + (this.adjustPosition ? ' style="margin-left: -10px;"' : '') + ' /><div class="imgtxt' + (this.flexible ? ' flex' : '') + '">' + img.text + '</div></div>').css('z-index', '1').show();
        $("#gbm_2").css('z-index', '2').fadeOut(this.fadetime, function(){gallery.swap()});
        h += $(".imgtxt", "#gbm_1").height();
      }

      if (this.flexible)
        $("#gallery_box_main").animate({height: h}, this.fadetime);

      $(".image", $('#gallery_box')).unbind().click(function(){gallery.show_image(this);}).hover(function(){$(this).fadeTo("fast", 1.0)}, function(){$(this).fadeTo("fast", .6)});
      $(el).unbind();
    }

    if (auto)
      this.autoplay();
    else
    {
      this.play = false;
      clearTimeout(this.autoplay_timer);
    }
  },

  swap:
  function()
  {
    this.active = false;
    var img = this.images[this.offset];

    this._activeId = this._activeId == 1 ? 2 : 1;
  },

  scroll_to:
  function(el, pn, gp)
  {
    //debug("Scroll to: from goto_page: " + gp);
    if (!gallery.scrollActive)
    {
      gallery.scrollId = 'gallery';
      gallery.arrow = el.id.split('_');
      var offset = 1;
      var sld = $("#slider_0");
      if (!sld) return false;

      sld = sld[0];

      if (gallery.scroll['gallery'] == null)
      {
        var w = 0;
        var r = gallery._sliderwidth + 5;
        var nodes = sld.childNodes;
        //debug(sld.className + ", " + sld.id + "; " + nodes.length);
        if (!nodes) return false;

        var i = nodes.length-1;
        if (i < 1) return false;
        do
        {
          if (nodes[i].nodeType == 1) w += gallery.nav_width;
        } while (i--);
        var p = parseInt((w / r)) + (w % r != 0 ? 1 : 0);

        gallery.scroll['gallery'] = {'x':0, 'origin':0, '_range':r, 'range':r, '_speed':40, 'speed':40, 'current':0, 'dir':-1, 'page':0, 'pages':p, 'pmoved':-1};
      }

      if (gallery.scroll['gallery'].pages == 0) return false;

      if (pn != null)
      {
        offset = Math.abs(gallery.scroll['gallery'].page - pn);
        gallery.scroll['gallery'].range = gallery.scroll['gallery']._range * offset;
      }

      gallery.scroll['gallery'].dir = (gallery.arrow[1] == 'right' ? -1 : 1);
      gallery.scroll['gallery'].pmoved = gallery.scroll['gallery'].dir * offset;

      //debug("Dir: " + gallery.scroll['gallery'].dir + ", Page: " + gallery.scroll['gallery'].page);

      //if ((gallery.scroll['gallery'].dir == 1 && gallery.scroll['gallery'].page == 0) ||
      //    (gallery.scroll['gallery'].dir == -1 && gallery.scroll['gallery'].page == (gallery.scroll['gallery'].pages - 1))) return false;

      if (gallery.scroll['gallery'].dir == 1 && gallery.scroll['gallery'].page == 0)
      {
        el = document.getElementById('arrow_right');
        gallery.goto_page(el, (gallery.scroll['gallery'].pages-1));
        return false;
      }
      else if (gallery.scroll['gallery'].dir == -1 && gallery.scroll['gallery'].page == (gallery.scroll['gallery'].pages - 1))
      {
        el = document.getElementById('arrow_left');
        gallery.goto_page(el, 0);
        return false;
      }

      gallery.scrollEl = sld;
      gallery.scrollActive = true;
      clearInterval(gallery.timer);
      gallery.scrollTimer = setInterval("gallery.scroller()", 10);
      //debug("SCROLL1: " + gallery.scrollId + " Width: " + sld.offsetWidth + " Pages: " + gallery.scroll['gallery'].pages, 'red');
    }

    return false;
  },

  scroller:
  function()
  {
    var sc = gallery.scroll['gallery']

    //debug("Scroll " + 'gallery' + ", direction " + gallery.scrollId[0], 'green');
    var delta = sc.range - sc.current;
    var dr = 1.0;
    if (delta < 10) dr = 7;
    else if (delta < 25) dr = 5;
    else if (delta < 50) dr = 3;
    else if (delta < 100) dr = 2;

    sc.current = sc.current + (sc.speed / dr);

    //debug("D: " + delta + ", " + dr, 'red');
    //sc.speed = sc.speed - 1;
    sc.x = sc.origin + (sc.current * sc.dir);

    if (sc.current >= sc.range)
    {
      clearInterval(gallery.scrollTimer);
      sc.current = 0;
      sc.x = sc.origin + (sc.range * sc.dir);
      sc.origin = sc.x;
      sc.page = sc.page - sc.pmoved;
      sc.range = sc._range;
      sc.speed = sc._speed;
      gallery.scrollActive = false;
      //debug("Done! Now on page " + sc.page, 'red');

      // fix indicators
      if (sc.indicator)
      {
        var ll = sc.indicator.getElementsByTagName('span');
        var il = ll.length;
        for (var i=0; i < il; i++)
        {
          ll[i].className = (i == sc.page ? 'round active' : 'round');
        }
      }
    }
    //debug("X: " + gallery.scroll['gallery'].x);

    gallery.scrollEl.style.left = gallery.scroll['gallery'].x + 'px';
  },

  goto_page:
  function(el, pn)
  {
    if (pn == null)
    {
      var el = document.getElementById('arrow_left');
      gallery.scroll_to(el, 0, true);
      return false;
    }

    //var el = (sc.page < pageId[2] ? document.getElementById('ar_' + pageId[1]) : document.getElementById('al_' + pageId[1]));
    gallery.scroll_to(el, pn, true);
  },

  next:
  function(auto)
  {
    if (this.active) return false;

    var p = 0;
    var do_scroll = true;
    var do_scroll_or = false;

    this.offset = this.offset + 1;
    if (this.offset >= this.images.length)
    {
      this.offset = 0;
      do_scroll_or = true;
    }

    if (this.scroll['gallery'])
    {
      p = gallery.scroll['gallery'].page;
    }

    var po = (this.offset / this.nav_items) - 1;

    if (p != po && !do_scroll_or) do_scroll = false;
    if (p == 0 && po == -1) do_scroll = false;

    if (do_scroll && this.offset % this.nav_items == 0)
    {
      var el = document.getElementById('arrow_right');
      this.scroll_to(el);
    }

    this.show_image(null, true, auto);
  },

  autoplay:
  function()
  {
    if (this.flexible && !this.initialized)
    {
      this.initialized = true;
      var h = this.images[0].height;
      h += 10 + $(".imgtxt", "#gbm_1").height();
      $("#gallery_box_main").animate({height: h}, this.fadetime);
    }

    if (!this.play) return false;
    this.autoplay_timer = setTimeout(function(){gallery.next(true);}, this.displaytime);
  }
};

gallery.config = {
  width: 620,
  height: 487,
  img_variant: 'huge',
  img_thumbvariant: 'thumb',
  nav_width: 88,
  displaytime: 7000,
  use_variantflag: false,
  fadetime: 500,
  flexible: true,
  play: true
}

function createCookie(name,value,days)
{
  if (days)
  {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
  }
  else 
    var expires = "";

  document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name)
{
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for (var i=0;i < ca.length;i++) 
  {
    var c = ca[i];
    while (c.charAt(0)==' ')
      c = c.substring(1,c.length);

    if (c.indexOf(nameEQ) == 0)
      return c.substring(nameEQ.length,c.length);
  }
  return null;
}

function eraseCookie(name) 
{
  createCookie(name,"",-1);
}


var AjaxRequest = function()
{
  function handleReadyState(o, callback, parent, uri)
  {
    if (o.http && o.http.readyState == 4)
    {
      clearInterval(o.ival);
      o.ival = null;

      if (o.http.status == 200)
      {
        if (callback) callback(o.http, parent);
      }
      else if (o.http.readyState == 4 && o.http.status == 500)
      {
        workbench.Info(workbench.locale[currentLanguage]['ReqFail']);
        workbench.HideProgress();
      }
    }
  }

  var getXHR = function()
  {
    var http;
    try
    {
      http = new XMLHttpRequest;
      getXHR = function() { return new XMLHttpRequest; };
    }
    catch(e)
    {
      var msxml = ['Microsoft.XMLHTTP', 'MSXML2.XMLHTTP', 'MSXML2.XMLHTTP.3.0'];
      var i = msxml.length-1;
      do
      {
        try
        {
          http = new ActiveXObject(msxml[i]);
          getXHR = function()
          {
            return new ActiveXObject(msxml[i]);
          };
          break;
        }
        catch(e) {}
      } while (i--)
    }
    return http;
  };

  return function(method, uri, callback, postData, parent, contentType)
  {
    postData = postData ? postData : '';
    var xhr = new Object();
    xhr.http = getXHR();
    if (xhr.http.overrideMimeType)
      xhr.http.overrideMimeType('text/xml');
    xhr.http.open(method, uri, true);
    xhr.http.setRequestHeader("Content-Type", contentType || "application/xml");
    xhr.ival = setInterval(function(){handleReadyState(xhr, callback, parent, uri)}, 13);
    xhr.http.send(postData);
    return xhr.http;
  };
}();

function replaceHtml(el, html)
{
  /*@cc_on
    el.innerHTML = html;
    return el;
  @*/

  var nel = el.cloneNode(false);
  nel.innerHTML = html;
  el.parentNode.replaceChild(nel, el);
  return nel;
}

var serialize = function()
{
  var myserialize = function(node)
  {
    if (!node) return {};

    var ob = {};
    var i = node.childNodes.length-1;
    do
    {
      try
      {
        ob[node.childNodes[i].nodeName] = (node.childNodes[i].firstChild) ? node.childNodes[i].firstChild.nodeValue : '';
      }
      catch(e)
      {}
    } while (i--);

    return ob;
  };

  return function(node)
  {
    return myserialize(node);
  };
}();

var giek = {
  lang : 'no',
  size : 'size2',
  style : 'normal',
  locale : {no: {format: "Sjekk at du har fylt ut begge e-postadressene med adresser p\xe5 gyldig format", 'Din melding er sendt!':'Din melding er sendt'},
            en: {format: "Check both email address are written in a valid format", 'Din melding er sendt!':'Your tip has been sent'},
            es: {format: "Por favor rellene el formulario con las direcciones de correo electr\xf3nico en el formato correcto", 'Din melding er sendt!':'Su mensaje ha sido enviado'}
           },

  //

  init : function()
  {
    this.lang = $('html').attr('lang');
    $(".js_hide").hide();
    // Get prefs
    this.get_prefs();
    this.apply_prefs();

    // Attach events
    $('a', '.fonts').click(function(){ giek.set_size(this); return false; });
    $('a', '.colors').click(function(){ giek.set_style(this); return false; });
    $('a.lightbox').lightBox({imageLoading: '/images/layout/lightbox/loading.gif',
                              imageBtnClose: '/images/layout/lightbox/close.gif',
                              imageBtnPrev: '/images/layout/lightbox/prev.gif',
                              imageBtnNext: '/images/layout/lightbox/next.gif'});
  },

  apply_prefs : function()
  {
    var page = $('.page');
    page.removeClass('size1 size2 size3');
    page.addClass(this.size);
  },

  get_prefs : function()
  {
    // Parse cookie
    var prefs = readCookie('giekprefs');
    if (prefs)
    {
      if (prefs[0]=='"') prefs = prefs.substr(1);
      if (prefs[prefs.length-1]=='"') prefs = prefs.substr(0,prefs.length-1);
      prefs = prefs.split('/');
      this.size = prefs[0];
      this.style = prefs[1];
    }
  },

  set_prefs : function()
  {
    var prefs = this.size + '/' + this.style;
    createCookie('giekprefs', prefs);
  },

  set_size : function(el)
  {
    this.size = $(el).attr('class');
    this.set_prefs();
    this.apply_prefs();
  },

  set_style : function(el)
  {
    this.style = $(el).attr('class').split('_')[0];
    this.set_prefs();
    document.location.reload();
  },

  SendTip:
  function()
  {
    var locale = this.locale[this.lang];
    var el = document.getElementById('tellafriend');
    if (el)
    {
      var url = 'LimeTellAFriend/tellFriendAjax'
      var fields = el.getElementsByTagName('input');
      var ll = fields.length;
      var okays = 0;
      var items = {};


      for (var i=0; i < ll; i++)
      {
        var fn = fields[i].name;
        var fv = fields[i].value;

        if ((fn == 'to_email' || fn == 'my_email') && checkEmail(fv)) okays++;
        items[fn] = fv;
      }

      if (okays < 2)
        alert(locale['format']);

      if (okays == 2 && items['articleId'] != null)
      {
        //var data = 'to_email=' + encodeURIComponent(items['to_email']) + '&my_email=' + encodeURIComponent(items['my_email']) + '&articleId=' + items['articleId'];
        var data = encodeURI('to_email=' + items['to_email'] + '&my_email=' + items['my_email'] + '&articleId=' + items['articleId']);
        AjaxRequest('post', url, giek.HandleTipResponse, data, null, 'application/x-www-form-urlencoded');
      }
    }
  },

  HandleTipResponse:
  function(response, ob)
  {
    var locale = giek.locale[giek.lang];
    var xml = response.responseXML;
    var status = xml.getElementsByTagName('response')[0];
    var rs = status.getAttribute('result');
    var cn = (rs == 'success') ? 'ok' : 'error';
    var msg = status.getElementsByTagName('text')[0].firstChild.nodeValue;
    var el = document.getElementById('messages');
    if (el)
    {
      var html = '<div class="' + cn + 'StatusMessage">' + locale[msg] + '</div>';
      replaceHtml(el, html);

      el = document.getElementById('tellafriend');
      var fields = el.getElementsByTagName('input');
      var ll = fields.length;
      for (var i=0; i < ll; i++)
      {
        if (fields[i].name == 'to_email') fields[i].value = '';
      }
    }
  },

  showTF : function()
  {
    $('#tellafriend').slideDown('fast');
  }
}

function checkEmail(v)
{
  if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(v)) return true;

  return false;
}

function fbs_click() {
  u=location.href;
  t=document.title;
  window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(u)+'&t='+encodeURIComponent(t),'sharer','toolbar=0,status=0,width=626,height=436');
  return false;
}


$('document').ready(function()
{
  giek.init();

  var gEl = $('#image_gallery');
  if (gEl.length) gallery.init();

  $('input[name=user]').focus(function(){$('.status').fadeOut('slow')});
  $('input[name=to_email]').focus(function(){$('.okStatusMessage').fadeOut('slow')});
});



