/**
 *
 * Licznik napisany na potrzeby portalu Gniezno.com.pl
 * Kopiowanie wy��cznie za zgod� Gniezno.com.pl
 *
 */
var intervalId;
var allTags = new Array();
var htmlInTag = new Array();
var htmlInTagAfter = new Array();
var numberOfTags;
var nFirst;
var CounterEnd = 0;
var SupportStr;
function sSetChars(cChar)
{
	return cChar+':';
}
function sFormatYear(nYear)
{
	var nSuffix;
	var nYear2;
	if (nYear == 0) return "";
	if (nYear == 1) return nYear +" rok";
	if (nYear < 5) return nYear + " lata";
	if (nYear < 10) return nYear + " lat";
	else
	{
		nYear2 = nYear % 100;
		if (nYear2 < 22) return nYear + " lat";
		else
		{
			nSuffix = nYear2 % 10; 
			if (nSuffix > 1 && nSuffix < 5) return nYear + " lata";
			else return nYear + " lat";
		}
	}
	return "";
}
 
function sFormatHours(nHour)
{
	if (nHour == 0) return ":";
	if (nHour == 1) return ":";
	if (nHour < 5) return " :";
	if (nHour < 22) return ":";
		else return ":";
	return ":";
}

function sFormatMinutes(nMinute)
{
	var nSuffix;
	if (nMinute == 0) return ":";
	if (nMinute == 1) return ":";
	if (nMinute < 5) return ":";
	if (nMinute < 22) return ":";
	else
	{
		nSuffix = nMinute % 10; 
		if (nSuffix > 1 && nSuffix < 5) return "";
			else return ":";
	}
	return ":";
}

function sFormatSec(nSec)
{
	var nSuffix;
	if (nSec == 0) return "";
	if (nSec == 1) return "";
	if (nSec < 5) return "";
	if (nSec < 22) return "";
	else
	{
		nSuffix = nSec % 10; 
		if (nSuffix > 1 && nSuffix < 5) return "";
			else return "";
	}
	return "";
} 

function sFormatDays(nDay)
{
  if (nDay == 0) return "";
  return nDay>1 ? nDay + " dni" : nDay + " dzień";
}
function sFormatTime(nMinSec)
{
	return nMinSec < 10 ? "0"+nMinSec : nMinSec;
}
function ShowRemainingTime(index)
{
	var i;
	var sResult="";
	var nYears = 0;
	var formatStr = allTags[index].lang;
	var sSepHours;
	var sSepMinutes;
	var sSepSeconds;
	var dNextDateCounter;
	var dCurrentDateCounter;
	var nYear = formatStr.substr(3,4);
	var nMonth = formatStr.substr(8,2)-1;
	var nDay = formatStr.substr(11,2);
	var nHour = formatStr.substr(14,2);
	var nMinute = formatStr.substr(17,2);
	var nSec = formatStr.substr(20,2);
	var sPictureToLoad = formatStr.substr(43);
	sPictureToLoad = sPictureToLoad.replace("_","/");
	var dFutureDate;
	var dToday;
	var nOver;
	var dActualTime = new Date();
	var dEndingTime = new Date(formatStr.substr(23,4),
								formatStr.substr(28,2)-1,
								formatStr.substr(31,2),
								formatStr.substr(34,2),
								formatStr.substr(37,2),
								formatStr.substr(40,2));
	if (formatStr.charAt(23) != '0' && dActualTime>dEndingTime)
	{
		allTags[index].innerHTML='';
		allTags[index].id = "RemainingTimeOver" + CounterEnd++;
		
		clearInterval(intervalId);
		for (i=index; i<numberOfTags-1; i++)
		{
			allTags[i] = allTags[i+1];
			htmlInTag[i] = htmlInTag[i+1];
			htmlInTagAfter[i] = htmlInTagAfter[i+1];
		}
		allTags.pop();
		htmlInTag.pop();
		htmlInTagAfter.pop();
		numberOfTags--;
		
		intervalId = setInterval('ShowAllCounters()', 1000);
		
		return;
	}
	if (dActualTime< new Date(nYear,nMonth,nDay,nHour,nMinute,nSec))
	{
		dFutureDate = new Date(nYear,nMonth,nDay,nHour,nMinute,nSec);
		dToday = new Date();
		nOver = 0;
	} else
	{
		dToday = new Date(nYear,nMonth,nDay,nHour,nMinute,nSec);
		dFutureDate = new Date();
		nOver = 1;	
	}
	var nPeriod = dFutureDate.getTime() - dToday.getTime();
	dNextDateCounter = new Date(dToday);
	dCurrentDateCounter = new Date(dToday);
	var nPeriodDays = nPeriod / 86400000;
	var nDays = Math.floor(nPeriodDays);
	dNextDateCounter.setYear(dNextDateCounter.getFullYear()+1);
	var nFraction = nPeriodDays-nDays;
	nYears = 0;
	while (dNextDateCounter.getTime() < dFutureDate.getTime())
	{
		nDays -= Math.floor((dNextDateCounter.getTime() - dCurrentDateCounter.getTime())/86400000);
		dCurrentDateCounter.setYear(dNextDateCounter.getFullYear());
		dNextDateCounter.setYear(dNextDateCounter.getFullYear()+1);
		nYears++;
	}
	
	var nHours = Math.floor(nFraction*24);
	var nMinutes = Math.floor(nFraction*1440-nHours*60);
	var nSecs = Math.floor(nFraction*86400-nHours*3600-nMinutes*60);
	var sDays = sFormatDays(nDays);
	switch (formatStr.charAt(1))
	{
		case 'x':
			sSepHours = " godz. ";
			sSepMinutes = " min. ";
			sSepSeconds = " sek. ";
			break;
		case 'X':
			sSepHours = ":";
			sSepMinutes = ":";
			sSepSeconds = "";
			break;
		default:
			sSepHours = formatStr.charAt(1);
			sSepMinutes = formatStr.charAt(1);
			sSepSeconds = "";
	}
	if (nOver==0)
	{
		switch(formatStr.charAt(0))
		{
			case 'S':
				sResult = sFormatTime(nSecs)+sSepSeconds;
			case 'M':
				if (sSepMinutes.length == 1 && sResult=="") sSepMinutes = "";
				if (formatStr.charAt(1) == 'X' && !sResult.length) sSepMinutes = sFormatMinutes(nMinutes+1);
				sResult = sFormatTime(sResult.length ? nMinutes : nMinutes+1) + sSepMinutes + sResult;
			case 'H':
				if (sSepHours.length == 1 && sResult=="") sSepHours = "";
				if (formatStr.charAt(1) == 'X' && !sResult.length) sSepHours = sFormatHours(nHours+1);
					sResult = sFormatTime(sResult.length ? nHours : nHours+1) + sSepHours + sResult;
			case 'D':
				if (sResult.length > 0) sDays = nDays ? sFormatDays(nDays)+", " : "";
				  else sDays = sFormatDays(nDays+1);
				sResult = sDays + sResult;
			case 'Y':
				if (!sResult.length) nYears++;
				sResult = htmlInTag[index] + " " + sFormatYear(nYears) + (sResult.length && nYears ? ", ":"") + sResult;
		}
		allTags[index].innerHTML = sResult;
	}
	else if (sPictureToLoad != '/' && !nFirst)
	{
		SupportStr = allTags[index].id;
		if (SupportStr.substr(1,17) == "RemainingTimeOver") return;
		allTags[index].innerHTML='<img src="' + sPictureToLoad + '"/>';
		allTags[index].id = "RemainingTimeOver"+CounterEnd++;
		if (formatStr.charAt(23) != '0') return;
		
		clearInterval(intervalId);
		for (i=index; i<numberOfTags-1; i++)
		{
			allTags[i] = allTags[i+1];
			htmlInTag[i] = htmlInTag[i+1];
			htmlInTagAfter[i] = htmlInTagAfter[i+1];
		}
		allTags.pop();
		htmlInTag.pop();
		htmlInTagAfter.pop();
		numberOfTags--;
		intervalId = setInterval('ShowAllCounters()', 1000);
	} else
	{
		allTags[index].innerHTML = sFormatYear(nYears)+(nYears ? ", ": "")+sDays+(nDays ? ", ": "") 
		//allTags[index].innerHTML = htmlInTagAfter[index] + " " + sFormatYear(nYears)+(nYears ? ", ": "")+sDays+(nDays ? ", ": "") 
	  	+ sFormatTime(nHours) + sSepHours + sFormatTime(nMinutes) + sSepMinutes 
	  	+ sFormatTime(nSecs)+sSepSeconds;
		
	}
}

function ShowAllCounters()
{
	var i;
	
	if (!document.getElementById(String.fromCharCode(98,121)) && !nFirst) return;
	for (i=0;i<numberOfTags;i++)
		ShowRemainingTime(i);
}
 
function getHTMLBefore(sString)
{
	var s = "";
	var pos = sString.indexOf('#');
	
	return pos >=0 ? sString.substr(0,pos) : sString;
}

function getHTMLAfter(sString)
{
	var s = "";
	var pos = sString.indexOf('#');
	
	return pos >=0 ? sString.substr(pos+1) : "";
}

function GetAllCounters()
{
	var counter=0;
	var i;
	var allTagsDiv, allTagsSpan;
	
	allTagsDiv = document.getElementsByTagName('p');
	allTagsSpan = document.getElementsByTagName('p');
	for (i=0;i<allTagsDiv.length;i++)
	{
		SupportStr = allTagsDiv[i].id;
		if (SupportStr.substr(0,13) == "RemainingTime") 
		{
			allTags[counter] = allTagsDiv[i];
			htmlInTag[counter] = getHTMLBefore(allTagsDiv[i].innerHTML);
			htmlInTagAfter[counter++] = getHTMLAfter(allTagsDiv[i].innerHTML);
			allTagsDiv[i].innerHTML = "";
		}
	}
	/**
	for (i=0;i<allTagsSpan.length;i++)
	{
		SupportStr = allTagsSpan[i].id;
		if (SupportStr.substr(0,13) == "RemainingTime") 
		{
			allTags[counter] = allTagsSpan[i];
			htmlInTag[counter] = getHTMLBefore(allTagsSpan[i].innerHTML);
			htmlInTagAfter[counter++] = getHTMLAfter(allTagsSpan[i].innerHTML);
			allTagsSpan[i].innerHTML = "";
		}
	}
	**/
	numberOfTags = counter;
}
 
$(document).ready(function() {

   });


