// for NP_EventData.php

(function(jQuery) {

	jQuery.fn.ical = function () {

		jQuery(this).each(function () {

			// options
			var distance = 10;
			var time = 250;
			var hideDelay = 500;
			var hideDelayTimer = null;

			// tracker
			var beingShown = false;
			var shown = false;

			var trigger = jQuery(this);
			var popup = jQuery(this).next().contents(); //.css('opacity', 0);

			// set the mouseover and mouseout on both element
			jQuery([trigger.get(0), popup.get(0)]).mouseover(function () {

				// stops the hide event if we move from the trigger to the popup element
				if (hideDelayTimer) clearTimeout(hideDelayTimer);

				// don't trigger the animation again if we're being shown, or already visible
				if (beingShown || shown) {
					return;
				} else {
					beingShown = true;

				// reset position of popup box
					popup.css({
						bottom: '0',
						//left: '-76px',
						right: '-60px',
						display: 'block' // brings the popup back in to view
					})

				// (we're using chaining on the popup) now animate it's opacity and position
					.animate({
						bottom: '+=' + distance + 'px',
						opacity: 1
					}, time, 'swing', function() {
						// once the animation is complete, set the tracker variables
						beingShown = false;
						shown = true;
					});
				}
			}).mouseout(function () {
				// reset the timer if we get fired again - avoids double animations
				if (hideDelayTimer) clearTimeout(hideDelayTimer);
				// store the timer so that it can be cleared in the mouseover if required
				hideDelayTimer = setTimeout(function () {
					hideDelayTimer = null;
					popup.animate({
						bottom: '-=' + distance + 'px',
						opacity: 0
					}, time, 'swing', function () {
						// once the animate is complete, set the tracker variables
						shown = false;
						// hide the popup entirely after the effect (opacity alone doesn't do the job)
						popup.css('display', 'none');
					});
				}, hideDelay);
			});
		});

	};

	jQuery.fn.setedcal = function (obj) {
		var calblock = '#'+jQuery(this).parent().parent().parent().attr('id');
		var newcalendar = jQuery(jQuery(this).parent().parent().parent());
		var objs = jQuery('#'+obj);
		var paramsref = objs.attr('rel');
		var paramslist = paramsref.split(',');
		var year = paramslist[0];
		var month = paramslist[1];
		var blog = paramslist[2];
		var cat = parseInt(paramslist[3]);
		//var cblock = paramslist[4];
		var cblock = "http://www.momoihitomi.com/common/action.php";
		//alert(cblock);
		var blogs = '';
		var cats = '';
		if (blog > 0) {
			blogs = blog;
		} else {
			blogs = 1;
		}
		if (cat > 0) {
			cats = cat;
		} else {
			cats = 0;
		}
		var setting = "{ action:'plugin',name:'EventDate',mode:'calender',ey:"+year+",em:"+month+",blogid:"+blogs+",cat:"+cats+"}";
		var cblocks = cblock+'?action=plugin&name=EventDate&mode=calender&ey='+year+'&em='+month+'&blogid='+blogs+'&cat='+cats;
		var callback = function(){ jQuery(this).setinfocell('date_has_event');};
		newcalendar.load(cblocks,{},callback);
		//return false;
	};

	jQuery.fn.setinfocell = function (dom) {
		var setobj = '.'+dom;
		jQuery(setobj).ical();
		jQuery('a.prevmonth, a.nextmonth').click(function() {
			jQuery(this).setedcal(this.id);
			return false;
		});
	}

})(jQuery);

