var months = ['leden', 'únor', 'březen', 'duben', 'květen', 'červen', 'červenec', 'srpen', 'září', 'říjen', 'listopad', 'prosinec'];


$(document).ready(function() {
	var docUrl = window.location.href;
	if(docUrl.indexOf('enddate=') > -1) {
		var endDate = docUrl.substring(docUrl.indexOf('enddate=') + 8, docUrl.indexOf('enddate=') + 18);
		Timeline.init(endDate);
	} else
		Timeline.init('31.12.2008');
	
	initTimelineLinks();
	
	$('#banner-jak-prejit').mouseover(function (event) {
		Timeline.stopRotation();
	});
});

var Timeline = {
	end: null,
	newContract: null,
	cancellation: null,
	events: [],
	step: 0,
	rotatorTimeout: null,
	init: function(enddate) {
		var dateSplit = enddate.split('.');
		this.today = new Date();
		this.end = new Date(dateSplit[2], dateSplit[1]-1, dateSplit[0]);
		this.vypoved = new Date();
		this.vypoved.setTime(this.end.getTime() - 6*7*24*60*60*1000);
		this.newContract = new Date();
		this.newContract.setTime(this.end.getTime() + 14*24*60*60*1000);
		this.events = [
			{
				eventDate: this.today,
				eventText: '<a href="/chci-pojistit-automobil/online-sjednani">Spočítejte si nabídku</a> autopojištění u DIRECT Pojišťovny.'
			},
			{
				eventDate: this.vypoved,
				eventText: 'Do tohoto data musíte doručit <a href="/assets/files/vzor-vypovedi-pojisteni+last.doc">výpověď své stávající pojišťovně</a>.'
			},
			{
				eventDate: this.end,
				eventText: 'Zde zadejte konec pojistného období na stávající pojistné smlouvě.'
			}/*,
			{
				eventDate: this.newContract,
				eventText: 'Do tohoto data si musíte <a href="/chci-pojistit-automobil/online-sjednani">sjednat novou pojistnou smlouvu</a>.'
			}*/
		];
		
		this.render();
		this.rotateEvents(0);
	},
	render: function() {
		$('#timeline').html('');
		var firstInLine = new Date();
		firstInLine.setTime(this.newContract.getTime() - 84*24*60*60*1000);
		
		var itemDate = new Date();
		for(var i=0; i<91; i++) {
			itemDate.setTime(firstInLine.getTime() + i*24*60*60*1000);
			var isEvent = false;
			//if((itemDate.getDate() == this.end.getDate() && itemDate.getMonth() == this.end.getMonth() && itemDate.getFullYear() == this.end.getFullYear()) || (itemDate.getDate() == this.vypoved.getDate() && itemDate.getMonth() == this.vypoved.getMonth() && itemDate.getFullYear() == this.vypoved.getFullYear()) || (itemDate.getDate() == this.newContract.getDate() && itemDate.getMonth() == this.newContract.getMonth() && itemDate.getFullYear() == this.newContract.getFullYear()) || (itemDate.getDate() == this.today.getDate() && itemDate.getMonth() == this.today.getMonth() && itemDate.getFullYear() == this.today.getFullYear()))
			if((itemDate.getDate() == this.end.getDate() && itemDate.getMonth() == this.end.getMonth() && itemDate.getFullYear() == this.end.getFullYear()) || (itemDate.getDate() == this.vypoved.getDate() && itemDate.getMonth() == this.vypoved.getMonth() && itemDate.getFullYear() == this.vypoved.getFullYear()) || (itemDate.getDate() == this.today.getDate() && itemDate.getMonth() == this.today.getMonth() && itemDate.getFullYear() == this.today.getFullYear()))
				isEvent = true;
			var itemHtml = '<a href="#' + itemDate.getDate() + '_' + (itemDate.getMonth() + 1) + '_' + itemDate.getFullYear() + '" title="' + itemDate.getDate() + '. ' + months[itemDate.getMonth()] + '" id="date' + itemDate.getDate() + '_' + (itemDate.getMonth() + 1) + '_' + itemDate.getFullYear() + '" class="' + (isEvent ? 'event day' : 'day') +'"></a>';
			$('#timeline').append(itemHtml);
		}
	},
	rotateEvents: function(i) {
		var linkObj = $('#date' + this.events[i].eventDate.getDate() + '_' + (this.events[i].eventDate.getMonth()+1) + '_' + this.events[i].eventDate.getFullYear());
		linkObj.trigger('mouseover');
		//i = (i+1) % 4;
		i = (i+1) % 3;
		this.rotatorTimeout = window.setTimeout('Timeline.rotateEvents(' + i + ')', 2000);
	},
	getEventText: function(id) {
		var text = '';
		var dateSplit = id.split('_');
		var itemDate = new Date(dateSplit[2], dateSplit[1]-1, dateSplit[0]);
		if(itemDate.getDate() == this.today.getDate() && itemDate.getMonth() == this.today.getMonth() && itemDate.getFullYear() == this.today.getFullYear())
			text = '<a href="/chci-pojistit-automobil/online-sjednani">Spočítejte si nabídku</a> autopojištění u DIRECT Pojišťovny.';
		else if(itemDate.getDate() == this.vypoved.getDate() && itemDate.getMonth() == this.vypoved.getMonth() && itemDate.getFullYear() == this.vypoved.getFullYear())
			text = 'Do tohoto data musíte doručit <a href="/assets/files/vzor-vypovedi-pojisteni+last.doc">výpověď své stávající pojišťovně</a>.';
		else if(itemDate.getDate() == this.end.getDate() && itemDate.getMonth() == this.end.getMonth() && itemDate.getFullYear() == this.end.getFullYear())
			text = 'Zde zadejte konec pojistného období na stávající pojistné smlouvě.';
		else if(itemDate.getDate() == this.newContract.getDate() && itemDate.getMonth() == this.newContract.getMonth() && itemDate.getFullYear() == this.newContract.getFullYear())
			text = 'Do tohoto data si musíte <a href="/chci-pojistit-automobil/online-sjednani">sjednat novou pojistnou smlouvu</a>.';
		
		return text;
	},
	
	stopRotation: function() {
		window.clearTimeout(this.rotatorTimeout);
	}
}


function initTimelineLinks() {
	$('#timeline a.day').mouseover(function (event) {
		event.preventDefault();
		event.stopPropagation();
		$('#timeline .bubbledate').remove();
		$('#timeline .bubbleevent').remove();
		var left = $(this).position().left;
		var id = $(this).attr('href').substring($(this).attr('href').lastIndexOf('#') + 1);
		var dateSplit = id.split('_');
		var thisDate = new Date(dateSplit[2], dateSplit[1]-1, dateSplit[0]);
		var isToday = false;
		var isEnd = false;
		if(thisDate.getDate() == Timeline.today.getDate() && thisDate.getMonth() == Timeline.today.getMonth() && thisDate.getFullYear() == Timeline.today.getFullYear())
			isToday = true;
		if(thisDate.getDate() == Timeline.end.getDate() && thisDate.getMonth() == Timeline.end.getMonth() && thisDate.getFullYear() == Timeline.end.getFullYear())
			isEnd = true;
		var positionLeft1 = left - 9;
		var positionLeft2 = left - 79;
		var bgPos1 = 'background-position: 10px 100%;';
		var bgPos2 = 'background-position: 80px 0;';
		var middle = new Date();
		middle.setTime(Timeline.newContract.getTime() - 40*24*60*60*1000);
		if(thisDate.getTime() > middle.getTime()) {
			var positionLeft1 = left - 59;
			var positionLeft2 = left - 299;
			var bgPos1 = 'background-position: 60px 100%;';
			var bgPos2 = 'background-position: 300px 0;';
		}
		
		var dateHtml = '<div class="bubbledate" style="left:' + positionLeft1 + 'px;' + bgPos1 + '"><div><p><span class="today">' + (isToday ? 'Dnes: ' : '') + $(this).attr('title') + '</span>' + (isEnd ? ' <span class="selectdate"><img alt="Vybrat datum" width="20" height="17" id="trigger_date2" src="../assets/templates/direct/images/ikona-datum.gif" class="img-button" /> Zvolte datum</span>' : '') + '</p></div></div>';
		$('#timeline').append(dateHtml);
		if(isEnd)
			Calendar.setup({
					inputField : 'end',
					ifFormat : '%d.%m.%Y',
					daFormat : '%d.%m.%Y',
					button : 'trigger_date2',
					onSelect: function(calendar, date) {
					  if(calendar.dateClicked) {
					    document.getElementById('end').value = date;
						 calendar.hide();
						 Timeline.stopRotation();
						 Timeline.init(date);
						 initTimelineLinks();
					  }
					}
				});
		var eventText = Timeline.getEventText(id);
		if(eventText) {
			var eventHtml = '<div class="bubbleevent" style="left:' + positionLeft2 + 'px;' + bgPos2 + '"><div><p>' + eventText  + '</p></div></div>';
			$('#timeline').append(eventHtml);
		}
	});
	
	$('#timeline a.day').click(function (event) {
		event.preventDefault();
		event.stopPropagation();
	});
	
	window.scroll(0,0);
}