(function($) {
  var cache = [];

  $.preloadImages = function() {
    var args_len = arguments.length;
    for (var i = args_len; i--;) {
      var cacheImage = document.createElement('img');
      cacheImage.src = arguments[i];
      cache.push(cacheImage);
    }
  }

 $.textMetrics = function(el) {

  var h = 0, w = 0;

  var div = document.createElement('div');
  document.body.appendChild(div);
  $(div).css({
   position: 'absolute',
   left: -1000,
   top: -1000,
   display: 'none'
  });

  $(div).html($(el).html());
  var styles = ['font-size','font-style', 'font-weight', 'font-family','line-height', 'text-transform', 'letter-spacing'];
  $(styles).each(function() {
   var s = this.toString();
   $(div).css({
    s: $(el).css(s)
   });
  });

  h = $(div).outerHeight();
  w = $(div).outerWidth();

  $(div).remove();

  var ret = {
   height: h,
   width: w
  };

  return ret;
 }

})(jQuery);

function hide_added() {
    $('.anketaadded').show();
    setTimeout("$('.anketaadded').hide()", 5000);
    setTimeout("$('.added').html('V tejto ankete ste už hlasovali.')", 10010);
}

function init_search_box() {
	$(document).ready( function() {
		$("#searchbox").submit( function() {
				if( $("#searchbox input[name='s']").hasClass( 'value-default' ) ) {
					$("#searchbox input[name='s']").val("");
				}
			} );
		$("#searchbox input[name='s']")
				.one('keydown', function() {
					if( $(this).hasClass('value-default') ) {
						$(this).val('').removeClass('default-value');
					}
				} )
				.one('click', function() {
					if( $(this).hasClass('value-default') ) {
						$(this).val('').removeClass('value-default');
					}
				} )
				.mouseenter( function () {
					if( $(this).hasClass('value-default') ) {
						$(this).val("");
					}
				} )
				.mouseleave( function () {
					if( $(this).hasClass('value-default') ) {
						$(this).val( $("label[for='"+$(this).attr('id')+"']",$(this).parent()).text() );
					} 
				} );

                                $("#searchbox_inner").submit( function() {
				if( $("#searchbox_inner input[name='s']").hasClass( 'value-default' ) ) {
					$("#searchbox_inner input[name='s']").val("");
				}
			} );
		$("#searchbox_inner input[name='s']")
				.one('keydown', function() {
					if( $(this).hasClass('value-default') ) {
						$(this).val('').removeClass('default-value');
					}
				} )
				.one('click', function() {
					if( $(this).hasClass('value-default') ) {
						$(this).val('').removeClass('value-default');
					}
				} )
				.mouseenter( function () {
					if( $(this).hasClass('value-default') ) {
						$(this).val("");
					}
				} )
				.mouseleave( function () {
					if( $(this).hasClass('value-default') ) {
						$(this).val( $("label[for='"+$(this).attr('id')+"']",$(this).parent()).text() );
					}
				} );

	} );
}

function intel_searchbox_text_change() {
	if( $(this).val() == "" ) {
		$(this).addClass("value-default");
	} else {
		$(this).removeClass("value-default");
	}
}

var slider_timer = null;
var slider_picture_slide = 0;
var slider_max_slides;

function slide_begin() {
	slider_timer = setInterval( slide_picture_slider, 3000 );
}

function slide_picture_slider() {
	if( ++slider_picture_slide >=  slider_max_slides ) {
		slider_picture_slide = 0;
	}

	$("#article-picture-slider .article-picture-slider-buttons li.selected").removeClass('selected');
	$("#article-picture-slider .article-picture-slider-buttons li:eq("+slider_picture_slide+")").addClass('selected');
	$("#article-picture-slider .article-picture-slider-pictures").stop().scrollTo( $("#article-picture-slider .article-picture-slider-pictures ul li:eq("+slider_picture_slide+")") );
}


function init_article_picture_slider(slider_id) {
	$(document).ready( function() {
		$("#"+slider_id+" .article-picture-slider-pictures").scrollTo( $("#"+slider_id+" .article-picture-slider-pictures ul li:eq(0)") );

		slider_max_slides = $("#"+slider_id+" .article-picture-slider-pictures li").size();

		$("#"+slider_id+" .article-picture-slider-buttons li").each( function( i ) {
				$("a",this).mouseover( function() {
						if( slider_timer != null ) {
							clearInterval( slider_timer );
						}
						$("#"+slider_id+" .article-picture-slider-buttons li.selected").removeClass('selected');
						$(this).parent().addClass('selected');

						$("#"+slider_id+" .article-picture-slider-pictures").stop().scrollTo( $("#"+slider_id+" .article-picture-slider-pictures ul li:eq("+i+")"), 500 );
					
						return false;
					} );
			} );

		slide_begin();
	} );
}

var article_slider_speed = 5;
var article_slider_msec = 40;

var article_slider_width;
var $article_slide_aktual_slider;

function init_article_slider(slider_id) {
	$(document).ready( function() {
		$("#"+slider_id+" .article-slider-box-content").scrollLeft(0);
		var article_width = $("#"+slider_id+" .article-slider-box-content .article:eq(1)").width() - 100;
		var scroll_width = $("#"+slider_id+" .article-slider-slide-box").width() - article_width * 5

		$("#"+slider_id+" .left-btn").hover( 
			function() {
				$article_slide_aktual_slider = $("#"+slider_id+" .article-slider-box-content");
				article_slide_aktual_slider_width = scroll_width;
				article_slide_aktual_slider_interval = setInterval("article_slide_left()",article_slider_msec);
			},
			function() {
				article_slide_stop();
			} 
		);

		$("#"+slider_id+" .right-btn").hover( 
			function() {
				$article_slide_aktual_slider = $("#"+slider_id+" .article-slider-box-content");
				article_slide_aktual_slider_width = scroll_width;
				article_slide_aktual_slider_interval = setInterval("article_slide_right()",article_slider_msec);
			},
			function() {
				article_slide_stop();
			} 
		);
	} );
}


function article_slide_left() {
	if( $article_slide_aktual_slider.scrollLeft() > 0 ) {
		$article_slide_aktual_slider.scrollLeft($article_slide_aktual_slider.scrollLeft() - article_slider_speed);
	} else {
		article_slide_stop();
	}
}



function article_slide_right() {
	if( $article_slide_aktual_slider.scrollLeft() < article_slide_aktual_slider_width ) {
		$article_slide_aktual_slider.scrollLeft($article_slide_aktual_slider.scrollLeft() + article_slider_speed);
	} else {
		article_slide_stop();
	}
}

function article_slide_stop() {
	clearInterval(article_slide_aktual_slider_interval);
}


function init_top_articles( top_articles ) {
	$(document).ready( function() {
		$("#"+top_articles+' .time-switcher a').click(
			function() {
				var days = $(this).attr('id');
				$("#"+top_articles+' li:not(.time-switcher)').hide();
				$("#"+top_articles+' li.'+days).show();
                                $("#"+top_articles+' #top-1').removeClass("active").addClass("passive");
                                $("#"+top_articles+' #top-3').removeClass("active").addClass("passive");
                                $("#"+top_articles+' #top-7').removeClass("active").addClass("passive");
                                $("#"+top_articles+' #'+days).removeClass("passive").addClass("active");

				return false;
			} );

	} );
}


function init_horoscopes( horoscopes_id ) {
	$(document).ready( function() {
		$('#'+horoscopes_id+' li a img').hover(
			function() {
				$(this).attr('src', $(this).attr('src').replace('.gif','-over.gif') );
			},
			function() {
				$(this).attr('src', $(this).attr('src').replace('-over.gif','.gif') );
			}
		).each( function() {
			$.preloadImages( $(this).attr('src').replace('.gif','-over.gif') ); 
		} );

	} );
}


function init_horoscope_for_today() {
	$(document).ready( function() {
		var selected = window.location.hash.replace("#","");

		$zodiac = $("#zodiac-" + selected);

		if( $zodiac.length > 0 ) {
			$("#horoscope-for-today .zodiac-sign:visible").hide();
			$zodiac.show();
		}

		$("#horoscope-for-today .pink-box ul li a").click(change_actual_zodiac_sign);
		$("#horoscopes li a").click(change_actual_zodiac_sign);
	} );
}

function change_actual_zodiac_sign() {
	var zodiac = $(this).attr('href');
	
	if( zodiac.indexOf('/') == -1 ) {
		zodiac = zodiac.replace("#","");
	} else {
		zodiac = zodiac.replace("/horoskopy#","");
	}
	$("#horoscope-for-today .zodiac-sign:visible").hide();
	$("#zodiac-"+zodiac).fadeIn();	

}

function init_newsletter() {
	var css = {border: 'none', padding: '0', cursor: 'auto', textAlign: 'left', backgroundColor: 'transparent', width: '430px'};
	var overlay_css = {cursor: 'wait'};

	$(document).ready( function () {
		$("a[href='#newsletter']").click( function() {
			$.blockUI( {message: $("#newsletter-modal"), css: css, overlayCSS: overlay_css} );
			$('.blockOverlay').attr('title','Klikni pre návrat').click($.unblockUI);
			$("#newsletter-form input[name='email']")
				.one('keydown', function() {
					if( $(this).is('.default-value') ) {
						$(this).val('').removeClass('default-value');
					}
				} )
				.one('click', function() {
					if( $(this).is('.default-value') ) {
						$(this).val('').removeClass('default-value');
					}
				} )
				.mouseenter( function () {
					if( $(this).is('.default-value') ) {
						$(this).val("");
					}
				} )
				.mouseleave( function () {
					if( $(this).is('.default-value') ) {
						$(this).val( $("#newsletter-form label[for='"+$(this).attr('id')+"']").text() );
					}
				} );

			$("#newsletter-form").submit( function() {
				if( ! is_email( $("#newsletter-form input[name='email']").val() ) ) {
					newsletter_alert( "Prosím zadajte platnú emailovú adresu!" );
					return false;
				}
				
				ExecScript('addtonewsletter','newsletter-form');
				
				return false;
			} );

			$("#dialog-close").click($.unblockUI);
			
			return false;
		} );

	} );
}


function is_email( email ) {
	var pattern=/^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/;
	return pattern.test(email);
}

function newsletter_alert( message ) {
	var color = $("#newsletter-email").css('color');

	if (message != null) {
		$("#newsletter-message").text(message);
	}

	$("#newsletter-message:hidden").slideDown("fast");

}

function init_poradna() {
	var css = {border: 'none', padding: '0', cursor: 'auto', textAlign: 'left', backgroundColor: 'transparent', width: '430px', top: "30%"};
	var overlay_css = {cursor: 'wait'};

	$(document).ready( function() { 
		$("a[href='#poradna-mail']").click( function() {
			$.blockUI( {message: $("#mail-modal"), css: css, overlayCSS: overlay_css} );
			$('.blockOverlay').attr('title','Klikni pre návrat').click($.unblockUI);

			return false;
		} );

		$("#mail-form button").click( function() {
			var valid = true;
			if( $("#mail-form input[name='from']").val() == "" ) {
				$("#mail-form input[name='from']:not(.checked)").addClass('checked').parent().parent().after( "<tr class='error'><td>&nbsp;</td><td>prosím zadajte položku</td></tr>");
				valid = false;
			}

			if( !is_email($("#mail-form input[name='email']").val()) ) {
				$("#mail-form input[name='email']:not(.checked)").addClass('checked').parent().parent().after( "<tr class='error'><td>&nbsp;</td><td>prosím zadajte email v správnom formáte</td></tr>");
				valid = false;
			}

			if( $("#mail-form textarea").val() == "" ) {
				$("#mail-form textarea:not(.checked)").addClass('checked').parent().parent().after( "<tr class='error'><td>&nbsp;</td><td>prosím zadajte položku</td></tr>");
				valid = false;
			}
			
			if( !valid ) {
				return;
			}


			ExecScript( 'sendemailtoporadna','mail-form');
                        $("#mail-form textarea").val("");
			$.unblockUI();
		} );

		$("#mail-dialog-close").click($.unblockUI);
	} );

}

function init_send_article_to_mail() {
	var css = {border: 'none', padding: '0', cursor: 'auto', textAlign: 'left', backgroundColor: 'transparent', width: '430px', top: "40%"};
	var overlay_css = {cursor: 'wait'};

	$(document).ready( function() {
		$("#send-article-to-email").click( function() {
			$.blockUI( {message: $("#send-email-modal"), css: css, overlayCSS: overlay_css} );
			$('.blockOverlay').attr('title','Klikni pre návrat').click($.unblockUI);

			return false;
		} );

		$("#send-mail-form button").click( function() {
			var valid = true;
			
			if( $("#send-mail-form input[name='from']").val() == "" ) {
				$("#send-mail-form input[name='from']").parent().parent().next().show();
				valid = false;
			} else {
				$("#send-mail-form input[name='from']").parent().parent().next().hide();
			}

			if( !is_email($("#send-mail-form input[name='email-from']").val()) ) {
				$("#send-mail-form input[name='email-from']").parent().parent().next().show();
				valid = false;
			} else {
				$("#send-mail-form input[name='email-from']").parent().parent().next().hide();
			}

			if( !is_email($("#send-mail-form input[name='email']").val()) ) {
				$("#send-mail-form input[name='email']").parent().parent().next().show();
				valid = false;
			} else {
				$("#send-mail-form input[name='email']").parent().parent().next().hide();
			}

			
			if( !valid ) {
				return;
			}

			ExecScript( 'sendarticletoemail','send-mail-form');
			$.unblockUI();
		} );

		$("#send-email-modal a.modal-close").click($.unblockUI);
	} );

}

function init_magazin_box() {
	$(document).ready( function() {
		// prepinanie jazykovych verzii 
		$("#magazin-box-lang-menu li.menu-item").each( function() {
			var lang = this.id.replace('magazin-box-lang-menu-item-', '');

			$(this).data('lang', lang)
				.click( function() {
					$("#magazin-box-content .magazin-box:visible").hide();
					$("#magazin-box-"+$(this).data('lang')).show();
				} );
		} );
		
		// prepinanie magazinov
		$("#magazin-box-content select").change( function() {
			$( '#magazin-box-content ul.magazin-box-showbox' ).scrollTo( $('#magazin-box-content ul.magazin-box-showbox li:eq(' + this.selectedIndex + ')' ) );
		} );

		// show current magazin
		$( '#magazin-box-content ul.magazin-box-showbox' ).scrollTo( 
			$('#magazin-box-content ul.magazin-box-showbox li:eq(' + $("#magazin-box-content select:visible").prop('selectedIndex') + ')' ) 
		);
	} );
}

/** nacita aktualny song, zacne scrollovat, nastavi automaticky update */
function init_jemne_melodie_box() {
	$(document).ready( function() {
		
		AddWidget( '#jemne-melodie-messanger', 'JMCurrentSong', null, function() {
			
			jemne_melodie_reload_text();
			jemne_melodie_scroll();
			setInterval( "jemne_melodie_refresh()", 60000 );
		} );

		// otvori nove okno s radiom
		$("#jemne-melodie-box").click( function( ev ) {
			var vHWin = window.open('http://recycle.zoznam.sk/click.fcgi?cid=45839&gid=55072&bid=58622&pid=0','FEopenLink','width=500,height=180');
			vHWin.focus();			 

			ev.preventDefault();
			return false;
		} );
	} );
}

/** nacita aktualny song */
function jemne_melodie_refresh() {
	UpdateWidget( 'JMCurrentSong', null, null, function() {
		$("#jm-current-song").data( 'updated', true );
	} );
}

/** do boxu skopiruje text aktualneho songu, zmeni rozmery */
function jemne_melodie_reload_text() {
	var $text = $("#jm-current-song-text");
	
	$text.text( $("#jemne-melodie-messanger").text() );
	var song_text_w = $.textMetrics( $text ).width;
	if( song_text_w < 180 ) {
		song_text_w = 180;
	}

	$text.css( 'width', song_text_w + 'px' );	

	$("#jm-current-song").data('width', song_text_w + 205 );
}

function jemne_melodie_scroll() {
	var $current_song = $("#jm-current-song");

	if( $current_song.data('updated') == true ) {
		jemne_melodie_reload_text();

		$current_song.data( 'updated', false );
	}

	var song_text_w = $current_song.data('width');
	$current_song
		.scrollLeft(-210)
		.animate( {scrollLeft: song_text_w}, 15000 , 'linear', jemne_melodie_scroll );
}

function article_figure_image() {
	$(document).ready(function() {
		// some images need to wrap with a figrue 
		$("#article-box .article img.make-figure").each(function() {
			var $this = $(this);

			if($this.parent().hasClass('galleryLink' + $this.attr('data-id'))) {
				$this.parent()
					.wrap('<div class="image-figure"/>')
					.after('<div class="image-figure-caption">' + $this.attr('alt') + '</div>')
					.parent().width($this.width());
			} else {
			  $this
				.wrap('<div class="image-figure"/>')
				.after('<div class="image-figure-caption">' + $this.attr('alt') + '</div>')
				.parent().width($this.width());
			}

			if($this.hasClass('float-left')) {
				$this.removeClass('float-left').parent().addClass('float-left');
			} else if($this.hasClass('float-right')) {
				$this.removeClass('float-right').parent().addClass('float-right');
			}
		});
	});
	
}

