
var emDF = "Y-m-d";
var emMN = new Array("Styczeń","Luty","Marzec","Kwiecień","Maj","Czerwiec","Lipiec","Sierpień","Wrzesień","Październik","Listopad","Grudzień");
var emWN = new Array("Sobota","Niedziela","Poniedziałek","Wtorek","Środa","Czwartek","Piątek");
var varcolor = "#FF9900"
var varblock = "Y"
var varstart = "tomorow"
var vartime  = "13:30"

var emTT="<table cellspacing=0 cellpadding=1 border=1 bordercolor=#AAAAAA width=100%>";
var emCD=emTT;
var emFT="<font face=\"MS Sans Serif, sans-serif\" size=1 color=#000000>";
var emFC=true;
var emSV=null;
var emXC=null;
var emYC=null;
var emML=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
var emNow=new Date();
var strToday = "\'"+getFullYear(emNow)+ "|"+get02Dig(emNow.getMonth())+ "|"+get02Dig(emNow.getDate())+"\'";
var emPtr=new Date();
var emWE = emWN

var x; 
var hollidayArr  = new Array();
var blockHollidays = true;

function validDate(date) {
	return true;
}

function getCalendarFor(target) {
 emSV = target;
 if (emFC) { 
	var tmp = emSV.value.split("-");
	var sel = ""+tmp[0]+"|"+tmp[1];
	setCalendar(); 
	var i = 0;
	var obj = null;
	obj = document.emMonthList.sItem;
	while (i < monthamount) {
		if(obj.options[i].value == sel) {
			obj.options[i].selected = true;
			break;
		};
		i++;
	}
	emFC=false;
}
 if ((emSV != null)&&(emSV)) {
	var obj = document.all['PopUpCalendar'];
	obj.style.left = document.body.scrollLeft+event.clientX;
	obj.style.top  = document.body.scrollTop+event.clientY;
	obj.style.visibility = "visible";
	//var tmp = emSV.value.split("-");
	//var sel = ""+tmp[0]+"|"+tmp[1];
	/*
	var i = 0;
	var obj = null;
	obj = document.emMonthList.sItem;
	while (i < monthamount) {
		if(obj.options[i].value == sel) {
			obj.options[i].selected = true;
			break;
		};
		i++;
	}
	*/
	//setCalendar(tmp[0],tmp[1]);
 }
}

function switchMonth(param) {
 var tmp = param.split("|");
 setCalendar(tmp[0],tmp[1]);
}

function moveMonth(dir) {
 var obj = null;
 var limit = false;
 var tmp,dptrYear,dptrMonth;
 obj = document.emMonthList.sItem;
 if (obj != null) {
  if ((dir.toLowerCase() == "poprzedni")&&(obj.selectedIndex > 0)) {obj.selectedIndex--;}
  else if ((dir.toLowerCase() == "następny")&&(obj.selectedIndex < monthamount-1)) {obj.selectedIndex++;}
  else {limit = true;}
 }
 if (!limit) {
  tmp = obj.options[obj.selectedIndex].value.split("|");
  dptrYear  = tmp[0];
  dptrMonth = tmp[1];
  setCalendar(dptrYear,dptrMonth);
 }
}

function selectDate(param) {
 var arr   = param.split("|");
 var year  = arr[0];
 var month = arr[1];
 var date  = arr[2];
 var ptr = parseInt(date);
 emPtr.setDate(ptr);
 if ((emSV != null)&&(emSV)) {
  if (validDate(date)) {
	emSV.value = dateFormat(year,month,date);
	hideCalendar();
	changedate();
  } else {
	window.alert('Wybrana data znajduje się poza akceptowanym zakresem');
  }
 }
 else hideCalendar();
}

function setCalendar(year,month) {
 if (year  == null) {year = getFullYear(emNow);}
 if (month == null) {month = emNow.getMonth(); setSelectList(year,month);}
 if (month == 1) {emML[1]  = (isLeap(year)) ? 29 : 28;}
 emPtr.setYear(year);
 emPtr.setMonth(month);
 emPtr.setDate(1);
 updateContent();
}

function updateContent() {
 generateContent();
 document.all['monthDays'].innerHTML = emCD;
 emCD = emTT;
}

function generateContent() {
 var year  = getFullYear(emPtr);
 var month = emPtr.getMonth();
 var date = 1;
 var day = emPtr.getDay();
 if(day == 0) day = 6; else day--;
 var len = emML[month];
 var bgr,cnt,tmp = "";
 var j,i = 0;
 for (j = 0; j < 7; ++j) {
  if (date > len) break;
  for (i = 0; i < 7; ++i) {
   if (((j == 0)&&(i < day))||(date > len)) {
    tmp += makeCell("#AAAAAA",year,month,0,i);
   } else {
	bgr = (holliday(date,month,year) || (i==6)) ? varcolor : "#FFFFFF";
	tmp += makeCell(bgr,year,month,date,i);
	++date;
   }
  }
  emCD += "<tr align=center>\n" + tmp + "</tr>\n";tmp = "";
 }
 emCD += "</table>\n";
}

function makeCell(bgr, year, month, date, day) {
 var param = "\'"+year+"|"+get02Dig(month)+"|"+get02Dig(date)+"\'";
 var testparam = ""+year+"-"+get02Dig(month+1)+"-"+get02Dig(date);
 var blocked = (testparam < varstart) || (day==5);
 if (blocked && (bgr == "#FFFFFF")) bgr="#DDDDDD";
 blocked = (blocked || (date == 0) || (bgr==varcolor && blockHollidays) || (day==6));
 if (strToday == param) bgr="#FFFF00";
 var td1 = "<td width=14% bgcolor=\""+bgr+"\" ";
 var td2 = "</font></span></td>\n";
 var evt = "onMouseOver=\"this.style.backgroundColor=\'#5F7BE0\'\" onMouseOut=\"this.style.backgroundColor=\'"+bgr+"\'\" onMouseUp=\"selectDate("+param+")\" ";
 var ext = "<span style=\"cursor: hand\">";
 var lck = "<span style=\"cursor: default\">";
 var lnk = "<a href=\"javascript:selectDate("+param+")\">";
 var cellValue = (date != 0) ? date+"" : "&nbsp;";
 var cellCode = "";
 if (blocked) cellCode = td1+"style=\"cursor: default\">"+lck+emFT+cellValue+td2;
 else cellCode = td1+evt+"style=\"cursor: hand\">"+ext+emFT+cellValue+td2;
 return cellCode;
}

function setSelectList(year,month) {
 var i = 0;
 var obj = null;
 obj = document.emMonthList.sItem;
 while (i < monthamount) {
  obj.options[i].value = year + "|" + month;
  obj.options[i].text  = emMN[month] + " - " + year;
  i++;
  month++;
  if (month == 12) { year++; month = 0; }
 }
}

function hideCalendar() {
 document.all['PopUpCalendar'].style.visibility = "hidden";
 //setCalendar();
 emSV = null;
}

function isLeap(year) {
 if ((year%400==0)||((year%4==0)&&(year%100!=0))) {return true;}
 else return false;
}

function getFullYear(obj) { return obj.getYear(); }

function get02Dig(x) { return (x>9) ? (""+parseInt(x)) : ("0"+parseInt(x)); }

function isEvenOrOdd(date) {
 if (date - 21 > 0) {return "e";}
 else if (date - 14 > 0) {return "o";}
 else if (date - 7 > 0) {return "e";}
 else {return "o";}
}

function dateFormat(year,month,date) {
 if (emDF == null) {emDF = "m/d/Y";}
 var day = emPtr.getDay();
 var crt = "";
 var str = "";
 var chars = emDF.length;
 for (var i = 0; i < chars; ++i) {
  crt = emDF.charAt(i);
  switch (crt) {
   case "M": str += emMN[month]; break;
   case "m": str += get02Dig(++month); break;
   case "Y": str += year; break;
   case "y": str += year.substring(2); break;
   case "d": str += date; break;
   case "W": str += emWN[day]; break;
    default: str += crt;}}
 return unescape(str);
}

function holliday(date,month,year){  
 var dateStr= get02Dig(date)+get02Dig(month+1)+year;
 for (var i=0; i < x ; ++i) {
   if (dateStr==hollidayArr[i]) return true;
 }
 return false;
}

var swieta="01112006,11112006,25122006,01012006,02012006,03012006,28032006,03052006,26052006,15082006,";
hollidayArr  = swieta.split(",");
for (x = 0; hollidayArr[x]!=""; ++x) {}


