var months = Array();
months[0] = 'Styczeń';
months[1] = 'Luty';
months[2] = 'Marzec';
months[3] = 'Kwiecień';
months[4] = 'Maj';
months[5] = 'Czerwiec';
months[6] = 'Lipiec';
months[7] = 'Sierpień';
months[8] = 'Wrzesień';
months[9] = 'Październik';
months[10] = 'Listopad';
months[11] = 'Grudzień';

var updateCalendarRequest;
var updateCalendarEventsRequest;
var updateGalleryRequest;
var images;

function updateCalendar(newdate) {
  if (updateCalendarRequest) {
    if (updateCalendarRequest.running)
      updateCalendarRequest.cancel();
    $$('.calendar .days')[0].set('html', '<div class="spinner"></div>');
    updateCalendarRequest.post({formname:'ajax_calendar_days', date: newdate.getFullYear()+'-'+(newdate.getMonth()+1)+'-01'});
    $$('.calendar')[0].month = newdate.getMonth()+1;
    $$('.calendar')[0].year = newdate.getFullYear();
    $$('.calendar .month')[0].set('html', months[newdate.getMonth()]);
    $$('.calendar .year')[0].set('html', newdate.getFullYear());
    $$('.calendar .details')[0].set('html', '');
  }
}

function attachCalendarEvents() {
  $$('.calendar .days .ev').each(function (node) {
    node.addEvent('click', function (e) {
      e.stop();
      var newdate = new Date();
      var month = $$('.calendar')[0].month;
      var year = $$('.calendar')[0].year;
      newdate.setFullYear(year, month-1, this.get('html'));
      updateCalendarEvents(newdate);
    });
  });
}

function updateCalendarEvents(newdate, nospinner) {
  if (updateCalendarEventsRequest) {
    if (updateCalendarEventsRequest.running)
      updateCalendarEventsRequest.cancel();
    var datestr = newdate.getFullYear()+'-'+(newdate.getMonth()+1)+'-'+newdate.getDate();
    if (!nospinner)
      $$('.calendar .details')[0].set('html', '<hr class="dots" /><div class="spinner"></div>');
    updateCalendarEventsRequest.post({formname:'ajax_calendar_events', date: datestr});
  }
}

function updateGallery() {
  if (updateGalleryRequest) {
    if (updateGalleryRequest.running)
      updateGalleryRequest.cancel();
    $$('.gallery .details')[0].set('html', '<div class="spinner"></div>');
    updateGalleryRequest.post({formname:'ajax_gallery'});
  }
}

Element.implement({
     identify: function() {
          if(!$type(this.get('id')))
               this.set('id', genID(0));
          return this.get('id');

          function genID(num) {
               num++;
               if(!$type($('id'+num.toString())))
                    return 'id'+num;
               return genID(num);
          }
     }
});

$(window).addEvent('domready', function () {
  externalLinks();
  var imageList = [];
  $$('.mainmenu_li').each(function (node) {
    var submenu = node.getElement('.submenu');
    var item = node.getElement('div > div');
    item.addEvent('mouseover', function (e) {
      this.addClass('hover');
    });
    item.addEvent('mouseout', function (e) {
      this.removeClass('hover');
    });
    item.addEvent('click', function (e) {
      var anchor = this.getElements('.itemtext a')[0];
      if (this.getParent().getParent().getElement('.submenu')) {
        anchor.fireEvent('click', anchor);
      } else {
        document.location.href = anchor.href;
      }
    });
    var a = node.getElement('div > div > a');
    if (submenu) {
      submenu.slideFx = new Fx.Slide(submenu, { duration: 'short' });
      submenu.slideFx.addEvent('complete', function () {
        if (this.open)
          this.wrapper.setStyle('overflow', 'visible');
      });
      submenu.slideFx.addEvent('start', function () {
        if (this.open)
          this.wrapper.setStyle('overflow', 'hidden');
      });
      if (node.getElements('.item > .selected').length == 0)
        submenu.slideFx.hide();
      a.addEvent('click', function (e) {
        $$('.mainmenu_li .submenu').each(function (node) {
          if (node.slideFx.open)
            node.slideFx.toggle();
        });
        submenu.slideFx.toggle();
        if (e.stop)
          e.stop();
      });
      a.getParent().addEvent('click', function (e) {
        $$('.mainmenu_li .submenu').each(function (node) {
          if (node.slideFx.open)
            node.slideFx.toggle();
        });
        submenu.slideFx.toggle();
        e.stop();
      });
    } else {
      a.getParent().addEvent('click', function (e) {
        a.fireEvent('click');
        window.location=a.href;
      });
    }
  }); 
  $$('.submenu_li').each(function (node) {
    var subsubmenu = node.getElement('.subsubmenu');
    if (subsubmenu) {
      var underlay = new Element('iframe', { src: 'javascript:true', style: 'display: none', frameborder: '0', scrolling: 'no' });
      underlay.addClass('subsubmenu_underlay');
      underlay.inject(subsubmenu, 'before');
    }
    node.addEvent('mouseover', function (e) {
      this.addClass('hover');
      if (this.getElements('.subsubmenu').length > 0) {
        var sm = this.getElements('.subsubmenu')[0];
        sm.setStyle('display', 'block');
        this.getElements('.subsubmenu_underlay')[0].setStyles({
          width: sm.getStyle('width'),
          height: sm.getStyle('height'),
          top: sm.getStyle('top'),
          left: sm.getStyle('left'),
          display: 'block'
        });
      }
    });
    node.addEvent('mouseout', function (e) {
      this.removeClass('hover');
      if (this.getElements('.subsubmenu').length > 0) {
        this.getElements('.subsubmenu_underlay')[0].setStyle('display', 'none');
        this.getElements('.subsubmenu')[0].setStyle('display', 'none');
      }
    });
    node.addEvent('click', function (e) {
      var anchor = this.getElement('a');
      var subsubmenu = this.getElement('.subsubmenu');
      if (!subsubmenu) {
        document.location.href = anchor.href;
      }
    });
  });
  if ($$('.calendar')) {
    updateCalendarRequest = new Request.HTML({method:'post', url:'index.php', update:$$('.calendar .days')[0], onSuccess: attachCalendarEvents});
    updateCalendarEventsRequest = new Request.HTML({method:'post', url:'index.php', link: 'chain', update:$$('.calendar .details')[0]});
    updateCalendarRequest.post({formname:'ajax_calendar_days'});
    updateCalendarEvents(new Date(), 1);
    var date = new Date();
    $$('.calendar')[0].month = date.getMonth()+1;
    $$('.calendar')[0].year = date.getFullYear();
    $$('.calendar .calendar_prev')[0].addEvent('click', function (e) {
      e.stop();
      var newdate = new Date();
      var month = $$('.calendar')[0].month - 1;
      var year = $$('.calendar')[0].year;
      newdate.setFullYear(month>0 ? year : year-1, month>0 ? month-1 : 11, 1);
      updateCalendar(newdate);
    });
    $$('.calendar .calendar_next')[0].addEvent('click', function (e) {
      e.stop();
      var newdate = new Date();
      var month = $$('.calendar')[0].month + 1;
      var year = $$('.calendar')[0].year;
      newdate.setFullYear(month>12 ? year+1 : year, month>12 ? 0 : month-1, 1);
      updateCalendar(newdate);
    });
  }
  if ($$('.gallery')) {
    updateGalleryRequest = new Request.HTML({method:'post', url:'index.php', update:$$('.gallery .details')[0]});
    updateGallery();
  }
  if (audio_set = $$('.inside_gallery .audio')) {
    audio_set.each(function (node) {
      mp3_node = node.getElements('.player')[0];
      mp3 = mp3_node.get('html');
      var so = new SWFObject("/flash/player_mp3_maxi.swf", mp3, "100", "20", "7");
      so.addParam("align", "middle");
      so.addParam("scale", "showall");
      so.addParam("wmode", "transparent");
      so.addParam('bgcolor', '#ffffff');
      so.addParam("salign", "lt");
      so.addParam("FlashVars", "width=100&amp;mp3=/"+mp3+"&amp;bgcolor1=999999&amp;bgcolor2=CC2026");
      so.write(mp3_node);   
    });
  }
  $$('.mo-id').each(function(img) {
    var src = img.getProperty('src');
	var ids = img.getProperty('id').split('_');
    var extension = src.substring(src.lastIndexOf('.'),src.length)
	var src_on = src.replace(ids[1] + extension, ids[2] + extension);
    imageList.push(src_on);
    img.addEvent('mouseenter', function() { img.setProperty('src', src_on); });
    img.addEvent('mouseleave', function() { img.setProperty('src', src); });
  });  
  if ($$('#topmenu a.home').length == 1) {
    $$('#topmenu a.home')[0].addEvent('mouseover', function (e) {
      this.getElement('img').src = '/images/skrzyzowanie_kultur_2011/logo_02.jpg'; 
	  imageList.push('/images/skrzyzowanie_kultur_2011/logo_02.jpg');
    });
    $$('#topmenu a.home')[0].addEvent('mouseout', function (e) {
      this.getElement('img').src = '/images/skrzyzowanie_kultur_2011/logo_02on.jpg'; 
	  imageList.push('/images/skrzyzowanie_kultur_2011/logo_02on.jpg');
    });
  }
  var audiolist;
  if (audiolist = $('audiolist')) {
    var head = audiolist.getElement('div div');
    var color = head.getStyle('background-color').replace(/#/,'');
    var mp3 = audiolist.getElements('a');
    var files = new Array();
    var titles = new Array();
    mp3.each(function (node) {
      files.push(node.href);
      titles.push(node.get('html').replace(/"/g,''));
    });
    var so = new SWFObject("/flash/player_mp3_multi.swf", "mp3_player", "180", "180", "7");
    so.addParam("align", "middle");
    so.addParam("scale", "showall");
    so.addParam("wmode", "transparent");
    so.addParam('bgcolor', '#ffffff');
    so.addParam("salign", "lt");
    so.addParam("FlashVars", "width=180&amp;height=180&amp;mp3="+files.join('|')+"&amp;title="+titles.join('|')+"&amp;bgcolor1="+color+"&amp;bgcolor2="+color);
    so.write(audiolist);   
  }
  if ($('newsletter_subscribe')) {
    $('newsletter_subscribe').addEvent('submit', function (event) {
      event.stop();
      var req = new Request({
        method: 'post',
        url: 'index.php?c='+$('get_c').get('value'),
        data: {
          'formname': 'ajax_newsletter_subscribe',
          'email': $('newsletter_subscribe_email').get('value')
        },
        onRequest: function () {
          var h = $$('.newsletter .details').getStyle('height');
          $$('.newsletter .details .default_form').setStyle('display', 'none');
          $$('.newsletter .details .spinner_place').set('html', '<div class="spinner" style="height:'+h+'"></div>');
        },
        onComplete: function (response) {
          $$('.newsletter .details .spinner_place').set('html', response);
          $('newsletter_subscribe_email').set('value', '');
          $$('.newsletter .details .default_form').setStyle('display', '');
        }
      }).send();
      return false;
    });
  }
  $$('a[class^=flv]').each(function (node) {
	var id = node.identify();
	var prop = node.getProperty('class').split(';');
	var flv = node.getProperty('href');
	node.setProperty('href', 'javascript:void(0)');
	var width=320;
	var height=240;
	var loop=0;
	var autoplay=0;
	for (i=0; i<prop.length; i++) {
		if (prop[i].match(/width=(.*)/)) {
			width = RegExp.$1;
		}
		if (prop[i].match(/height=(.*)/)) {
			height = RegExp.$1;
		}
		if (prop[i].match(/loop=(.*)/)) {
			loop = RegExp.$1;
		}
		if (prop[i].match(/autoplay=(.*)/)) {
			autoplay = RegExp.$1;
		}
	}
	$(id).setStyles({
		width: width,
		height: height,
		display: 'block'
	});
      var so = new SWFObject("/flash/player_flv_maxi.swf", 'player'+id, width, height, "7");
      so.addParam("align", "middle");
      so.addParam("scale", "showall");
      so.addParam("wmode", "transparent");
      so.addParam('bgcolor', '#ffffff');
      so.addParam("salign", "lt");
      so.addParam("FlashVars", "width="+width+"&amp;height="+height+"&amp;flv="+flv+"&amp;playercolor=CC2026&amp;autoplay="+autoplay+"&amp;autoload="+autoplay+"&amp;showvolume=1&amp;loop="+loop);
      so.write(id);   
  });
  document.myImages = new Asset.images(imageList);
});

