/*
//	Kalendarz
//	autor: 
//	Andrzej Cieślak (andrzej.cieslak@gazeta.pl)
//
//	dziala pod: 
//  IE >4, Netscape >4, Opera, nie udalo sie na razie odpalic pod Netscape4.x
//
//	opis:
//	Po kliknieciu na pole tekstowe pojawia sie kalendarz pod 
//  kursorem myszy. Po wybraniu roku, miesiąca i kliknieciu na 
//  numerze dnia wybrana data jest wstawiana do pola
//
//	historia:
//	potrzebowalem wstawic date do formularza w określonym formacie, 
//	widzialem skrypt na necie który pozwalal wybrac date z kalendarza, 
//  ale byl duzy i skomplikowany, wiec napisalem swój
//
//	wywolanie:
//	umieścic w zanczniku body: onLoad="document.onmousemove = mysz;" 
//  lub w treści strony w znacznikach javascriptu: document.onmousemove = mysz;
//	zdarzenie pola txt, do którego chcemy wstawic date: onclick="showKal(this)"
*/

var ie4, ns4, ns6;
ie = document.all;
ns4 = document.layers;
ns6 = document.getElementById && !document.all;

var data = new Date();
var amies = data.getMonth();
var arok = data.getFullYear();
var adzien = data.getDate();
var adzientyg = data.getDay();
var frmpole;

// ilośc dni w roku
var dni = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
// nazwy miesiecy
var miesiac = new Array('Styczen','Luty','Marzec','Kwiecien', 'Maj','Czerwiec','Lipiec','Sierpien','Wrzesien','PaLdziernik','Listopad','Grudzien');

// dane kolorów
var kol = new Array(5)
kol[0] = '#FFFFFF'; // kolor tla kalendarza, kolor tekstu wybranego dnia, nazw dni tyg...
kol[1] = '#e0e0e0'; // kolor pól kalendarza - dni zwykle
kol[2] = '#ff8585'; // kolor pól kalendarza - niedziele
kol[3] = '#0c00ff'; // kolor pola oznaczającego aktualny dzien, kolor ramki, przycisku zamykajacego, tekstu
kol[4] = '#696969'; // kolor pól okreslajacych dni tygodnia (pn,wt...)
kol[5] = '#999'; // kolor pól okreslajacych dni tygodnia (pn,wt...)

// ile lat pokazywane w kalendarzu od aktualnej daty
var wstecz = 8; 
var wprzod = 2;

// ilośc dni w Lutym - przeliczane po zmianie miesiąca lub roku
function dniMies()
{
	dni[1] = (rok % 4 == 0) ? 29 : 28;
}

// pobieranie pozycji myszy
function mysz(e)
{
	if(ns4 || ns6)
	{
		x = e.pageX;
		y = e.pageY;
	}
	if(ie)
	{
		x = document.body.scrollLeft+event.clientX;
		y = document.body.scrollTop+event.clientY;
	}
}

// funkcja pokazujaca kalendarz pod kursorem myszy
function showKal(fp)
{

	data = new Date(arok, amies, 1);
	mies = data.getMonth();
	rok = data.getFullYear();
	dzien = data.getDate();
	dzientyg = data.getDay();
	
	dniMies();

	frmpole = fp;
	pozx = x;
	pozy = y;

	rysujKal();		
	
	if(ns6 || ie)
	{
		document.getElementById('kalendarz').style.left = pozx+'px';
		document.getElementById('kalendarz').style.top = (pozy+10)+'px';
		document.getElementById('kalendarz').style.visibility = 'visible';
	}
}

// funkcja ukrywajaca kalendarz i wstawiajaca wybraną date do pola formularza
function hideKal()
{
	if(ns6 || ie)
		document.getElementById('kalendarz').style.visibility = 'hidden';

	// tutaj ustawia sie format daty 		 
	// np:
  	//	format = selectday + ' ' + miesiac[mies] + ' ' + rok;
	
	// inny format daty - z zerami poprzedzającymi
	mies++;
	if(mies < 10)
		mies = '0' + mies;
	if(selectday < 10)
		selectday = '0' + selectday;

	format = rok+'-'+mies+'-'+selectday	
			
	frmpole.value = format;
}

// ukrywanie kalendarza bez wstawiania daty
function exitKal()
{
	if(ns6 || ie)
		document.getElementById('kalendarz').style.visibility = 'hidden';
}

// ustawianie nowej daty po zmianie miesiaca lub roku
function setData()
{
	mies = document.forms['sdata'].elements['month'].value;
	rok = document.forms['sdata'].elements['year'].value;
	
	data = new Date(rok, mies, 1);
	mies = data.getMonth();
	rok = data.getFullYear();
	dzien = data.getDate();
	dzientyg = data.getDay();
	dniMies();
	rysujKal();
}

function ale(){
	alert("Nie wybrales zadnego pola");
}

// rysowanie kalendarza
function rysujKal()
{
	kaltxt = '<form name="sdata" onSubmit="return false;">';
	kaltxt += '<table border=0 cellpadding=0 cellspacing=2 style="border:'+kol[5]+' 1px solid;background-color:'+kol[0]+';">';
	kaltxt += '<tr class=dzien><td colspan=6 height=25><select name="month" class="lista" onChange="setData()">';		
	for(i=0;i<12;i++)
	{
		if(i==mies)
			kaltxt += '<option value="'+i+'" selected>'+miesiac[i]+'</option>';
		else
			kaltxt += '<option value="'+i+'">'+miesiac[i]+'</option>';
	}
	kaltxt += '</select>&nbsp;<select name="year" class="lista" onChange="setData()">';
	for(i=(rok-wstecz);i<=(rok+wprzod);i++)
	{
		if(i==rok)
			kaltxt += '<option value="'+i+'" selected>'+i+'</option>';
		else
			kaltxt += '<option value="'+i+'">'+i+'</option>';	
	}
	kaltxt += '</select>';
	kaltxt += '</td><td><a href="javascript:exitKal()"><span class="aktday">&nbsp;X&nbsp;</span></a></td></tr>';
	kaltxt += '<tr class=dnityg><td width=30>Nd</td><td width=30>Pn</td><td width=30>Wt</td><td width=30>Śr</td>';
	kaltxt += '<td width=30>Czw</td><td width=30>Pt</td><td width=30>So</td></tr><tr class=dzien>';

	j = 1;

	for(i=0;i<dzientyg+dni[mies];i++)
	{
		if(i>=dzientyg)
		{
			if(j==adzien && rok==arok && mies==amies)
				kaltxt += '<td class=aktday><a class=aktday href="javascript:selectday='+j+';hideKal();" >'+j+'</a></td>';
			else if(i%7==0)
				kaltxt += '<td class=niedz><a class=niedz href="javascript:selectday='+j+';hideKal();" >'+j+'</a></td>';
			else
				kaltxt += '<td><a class=dzien href="javascript:selectday='+j+';hideKal();" >'+j+'</a></td>';
			j++;
			if(i%7==6)
				kaltxt += '</tr><tr class=dzien>';
		}
		else
			kaltxt += '<td></td>';
	}

	kaltxt += '</tr></table></form>';
	
	document.getElementById("kalendarz").innerHTML = kaltxt;
}

// style kalendarza i warstwa, na której sie znajduje
function genkal(){
document.write('<div id="kalendarz" style="visibility:show;position:absolute;"></div>');
document.write('<style type="text/css">');
document.write('.dzien{font-family:Verdana;font-size:11px;color:'+kol[3]+';text-align:center;background-color:'+kol[1]+';text-decoration:none}');
document.write('.niedz{font-family:Verdana;font-size:11px;color:'+kol[3]+';text-align:center;background-color:'+kol[2]+';text-decoration:none}');
document.write('.aktday{color:'+kol[0]+';font-weight:bold;text-align:center;background-color:'+kol[3]+';text-decoration:none}');
document.write('.dnityg{font-family:Verdana;font-size:11px;color:'+kol[0]+';text-align:center;background-color:'+kol[4]+';}');
document.write('.lista{font-family:Verdana;font-size:11px;color:'+kol[3]+';}</style>');
}

/**
 * SWFObject v1.4.1: Flash Player detection and embed - http://blog.deconcept.com/swfobject/
 *
 * SWFObject is (c) 2006 Geoff Stearns and is released under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 *
 * **SWFObject is the SWF embed script formerly known as FlashObject. The name was changed for
 *   legal reasons.
 */
if(typeof deconcept=="undefined"){var deconcept=new Object();}
if(typeof deconcept.util=="undefined"){deconcept.util=new Object();}
if(typeof deconcept.SWFObjectUtil=="undefined"){deconcept.SWFObjectUtil=new Object();}
deconcept.SWFObject=function(_1,id,w,h,_5,c,_7,_8,_9,_a,_b){
if(!document.createElement||!document.getElementById){return;}
this.DETECT_KEY=_b?_b:"detectflash";
this.skipDetect=deconcept.util.getRequestParameter(this.DETECT_KEY);
this.params=new Object();
this.variables=new Object();
this.attributes=new Array();
if(_1){this.setAttribute("swf",_1);}
if(id){this.setAttribute("id",id);}
if(w){this.setAttribute("width",w);}
if(h){this.setAttribute("height",h);}
if(_5){this.setAttribute("version",new deconcept.PlayerVersion(_5.toString().split(".")));}
this.installedVer=deconcept.SWFObjectUtil.getPlayerVersion(this.getAttribute("version"),_7);
if(c){this.addParam("bgcolor",c);}
var q=_8?_8:"high";
this.addParam("quality",q);
this.setAttribute("useExpressInstall",_7);
this.setAttribute("doExpressInstall",false);
var _d=(_9)?_9:window.location;
this.setAttribute("xiRedirectUrl",_d);
this.setAttribute("redirectUrl","");
if(_a){this.setAttribute("redirectUrl",_a);}};
deconcept.SWFObject.prototype={setAttribute:function(_e,_f){
this.attributes[_e]=_f;
},getAttribute:function(_10){
return this.attributes[_10];
},addParam:function(_11,_12){
this.params[_11]=_12;
},getParams:function(){
return this.params;
},addVariable:function(_13,_14){
this.variables[_13]=_14;
},getVariable:function(_15){
return this.variables[_15];
},getVariables:function(){
return this.variables;
},getVariablePairs:function(){
var _16=new Array();
var key;
var _18=this.getVariables();
for(key in _18){_16.push(key+"="+_18[key]);}
return _16;
},getSWFHTML:function(){
var _19="";
if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){
if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","PlugIn");}
_19="<embed type=\"application/x-shockwave-flash\" src=\""+this.getAttribute("swf")+"\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\"";
_19+=" id=\""+this.getAttribute("id")+"\" name=\""+this.getAttribute("id")+"\" ";
var _1a=this.getParams();
for(var key in _1a){_19+=[key]+"=\""+_1a[key]+"\" ";}
var _1c=this.getVariablePairs().join("&");
if(_1c.length>0){_19+="flashvars=\""+_1c+"\"";}
_19+="/>";}else{if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","ActiveX");}
_19="<object id=\""+this.getAttribute("id")+"\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\">";
_19+="<param name=\"movie\" value=\""+this.getAttribute("swf")+"\" />";
var _1d=this.getParams();
for(var key in _1d){_19+="<param name=\""+key+"\" value=\""+_1d[key]+"\" />";}
var _1f=this.getVariablePairs().join("&");
if(_1f.length>0){_19+="<param name=\"flashvars\" value=\""+_1f+"\" />";}_19+="</object>";}
return _19;},write:function(_20){
if(this.getAttribute("useExpressInstall")){
var _21=new deconcept.PlayerVersion([6,0,65]);
if(this.installedVer.versionIsValid(_21)&&!this.installedVer.versionIsValid(this.getAttribute("version"))){
this.setAttribute("doExpressInstall",true);
this.addVariable("MMredirectURL",escape(this.getAttribute("xiRedirectUrl")));
document.title=document.title.slice(0,47)+" - Flash Player Installation";
this.addVariable("MMdoctitle",document.title);}}
if(this.skipDetect||this.getAttribute("doExpressInstall")||this.installedVer.versionIsValid(this.getAttribute("version"))){
var n=(typeof _20=="string")?document.getElementById(_20):_20;
n.innerHTML=this.getSWFHTML();return true;
}else{if(this.getAttribute("redirectUrl")!=""){document.location.replace(this.getAttribute("redirectUrl"));}}return false;}};
deconcept.SWFObjectUtil.getPlayerVersion=function(_23,_24){
var _25=new deconcept.PlayerVersion([0,0,0]);
if(navigator.plugins&&navigator.mimeTypes.length){
var x=navigator.plugins["Shockwave Flash"];
if(x&&x.description){_25=new deconcept.PlayerVersion(x.description.replace(/([a-z]|[A-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split("."));}
}else{try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
for(var i=3;axo!=null;i++){axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+i);_25=new deconcept.PlayerVersion([i,0,0]);}}
catch(e){}
if(_23&&_25.major>_23.major){return _25;}
if(!_23||((_23.minor!=0||_23.rev!=0)&&_25.major==_23.major)||_25.major!=6||_24){
try{_25=new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));}
catch(e){}}}return _25;};
deconcept.PlayerVersion=function(_29){
this.major=parseInt(_29[0])!=null?parseInt(_29[0]):0;
this.minor=parseInt(_29[1])||0;
this.rev=parseInt(_29[2])||0;};
deconcept.PlayerVersion.prototype.versionIsValid=function(fv){
if(this.major<fv.major){return false;}
if(this.major>fv.major){return true;}
if(this.minor<fv.minor){return false;}
if(this.minor>fv.minor){return true;}
if(this.rev<fv.rev){return false;}return true;};
deconcept.util={getRequestParameter:function(_2b){
var q=document.location.search||document.location.hash;
if(q){var _2d=q.indexOf(_2b+"=");
var _2e=(q.indexOf("&",_2d)>-1)?q.indexOf("&",_2d):q.length;
if(q.length>1&&_2d>-1){return q.substring(q.indexOf("=",_2d)+1,_2e);}}
return "";}};
deconcept.SWFObjectUtil.cleanupSWFs=function(){
var _2f=document.getElementsByTagName("OBJECT");
for(var i=0;i<_2f.length;i++){
for(var x in _2f[i]){if(typeof _2f[i][x]=="function"){_2f[i][x]=null;}}}};
if(typeof window.onunload=="function"){
var oldunload=window.onunload;
window.onunload=function(){deconcept.SWFObjectUtil.cleanupSWFs();oldunload();};
}else{window.onunload=deconcept.SWFObjectUtil.cleanupSWFs;}
if(Array.prototype.push==null){
Array.prototype.push=function(_32){
this[this.length]=_32;
return this.length;};}

var getQueryParamValue = deconcept.util.getRequestParameter;
var FlashObject = deconcept.SWFObject; // for backwards compatibility
var SWFObject = deconcept.SWFObject;

function LadujObrazki() 

{

  var d=document; 



  if(d.images)

  {

    if(!d.p) d.p=new Array();

    var i,j=d.p.length, a=LadujObrazki.arguments; 

    

    for(i=0; i<a.length; i++)

      if (a[i].indexOf("#")!=0)

      { 

        d.p[j]=new Image; 

        d.p[j++].src=a[i];

      }

  }



}



function OdtworzPodmObrazek() 

{ 

  var i,x,a=document.src; 



  for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) 

    x.src=x.oSrc;

}



function ZnajdzObjekt(n, d) 

{

  var p,i,x;  

  if(!d) d=document; 

    if((p=n.indexOf("?"))>0&&parent.frames.length) 

    {

      d=parent.frames[n.substring(p+1)].document; 

      n=n.substring(0,p);

    }



  if(!(x=d[n])&&d.all) x=d.all[n]; 

    for (i=0;!x&&i<d.forms.length;i++) 

      x=d.forms[i][n];

  

  for(i=0;!x&&d.layers&&i<d.layers.length;i++) 

    x=ZnajdzObjekt(n,d.layers[i].document); 

  

  return x;



}



function PodmienObrazek() 

{

  var i,j=0,x,a=PodmienObrazek.arguments; 

  document.src=new Array; 



  for(i=0;i<(a.length-2);i+=3)

   if ((x=ZnajdzObjekt(a[i]))!=null)

   {

     document.src[j++]=x; 

     if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];

   }



}

/***********************************************

* Overlapping Content link- Š Dynamic Drive (www.dynamicdrive.com)

* This notice must stay intact for legal use.

* Visit http://www.dynamicdrive.com/ for full source code
PNG hack for IE.
***********************************************/



function getposOffset(overlay, offsettype){

var totaloffset=(offsettype=="left")? overlay.offsetLeft : overlay.offsetTop;

var parentEl=overlay.offsetParent;

while (parentEl!=null){

totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;

parentEl=parentEl.offsetParent;

}

return totaloffset;

}



function overlay(curobj, subobj){

if (document.getElementById){

var subobj=document.getElementById(subobj)

subobj.style.left=getposOffset(curobj, "left")+"px"

subobj.style.top=getposOffset(curobj, "top")+"px"

subobj.style.display="block"

return false

}

else

return true

}



function overlayclose(subobj){

document.getElementById(subobj).style.display="none"

}



function hideShowSelect(){

if (document.getElementById&&document.documentElement.filters){

var args=arguments;

for (var i_tem = 0; i_tem < args.length; i_tem++)

if (document.getElementById(args[i_tem]).style.visibility=='')

document.getElementById(args[i_tem]).style.visibility='hidden';

else

document.getElementById(args[i_tem]).style.visibility='';

}

}
