TKalendariumPrenum = function()
				{
					this.obj			= new TForm_object();
					this.obj.AJAXsrc	= '/prenumerata/kalend_wydan/';
					this.obj.count_generated	= 12;
					this.obj.count_visible		= 3;
					//this.obj.count_generated	= 3;
					this.obj.rejon=1;
					this.obj.rodzaj=0;
					this.obj.data='';
					this.obj.price=null;
					this.obj.pos=0;
					this.obj.liczba_wydan		= 0;
					this.obj.countField=null;
					this.obj.priceField=null;
					this.obj.kalendariumField=null;
					this.obj.kalendariumInputField=null;
					this.obj.kalendarium='';
					
					this.obj.load	= function( dane )
					{
						this.innerHTML = '';
						if(this.countField!=null) this.countField=_get(this.countField);
						if(this.kalendariumField!=null) this.kalendariumField=_get(this.kalendariumField);
						if(this.priceField!=null) this.priceField=_get(this.priceField);
						if(this.kalendariumInputField!=null) this.kalendariumInputField=_get(this.kalendariumInputField);
						
						if(this.countField==null){
							this.panel		= _c('div',{className:'liczba_wydan'});
							this.l_wydan	= _c('span');
							this.l_wydan.innerHTML	= 'Liczba zaznaczonych wydań: 0';
							this.l_wydan.ustaw = function( l ) { this.innerHTML = 'Liczba zaznaczonych wydań: '+ l; };
							this.liczba_wydan		= 0;
							this.panel.apC( this.l_wydan );
							this.apC( this.panel );
						}
						this.bprev		= _c('a',{className:'prev'});						
						this.bprev.innerHTML	= '&nbsp;<&nbsp;';
						this.bprev.parent=this;
						this.bprev.onclick=function(){ this.parent.prev(); }
						this.apC( this.bprev );
						
						this.kalendarze = new Array();
						for (var i = 1; i<= this.count_generated; i++)
							{
								
							this.kalendarz = new TKalendarz_miesiac_kupon( {parent:this,className:'kalendarz'} );
							if(this.pos+this.count_visible<i) this.kalendarz.hide();							
							this.kalendarz.id	= 'kalendarz_id_'+i;
							this.kalendarz.send_ajax_on_select	= this.send_ajax_on_select;
							this.kalendarz.multiselect	= true;
							this.kalendarz.data=this.data;
							this.kalendarz.miesiac += parseInt(i -1);
							while (this.kalendarz.miesiac > 11) {this.kalendarz.rok++; this.kalendarz.miesiac -= 12;  }
							this.kalendarz.onDzienClick	= function( nr_wydania, operacja , $td )
							{
								this.parent.kalendarium=this.parent.mod_mediaplan( this.parent.kalendarium, nr_wydania, operacja );
								
								if(this.parent.kalendariumField!=null)
									this.parent.kalendariumField.innerHTML=this.parent.kalendarium;
								else
									this.parent.wydania.value=this.parent.kalendarium;
								
								if(this.parent.kalendariumInputField!=null)	this.parent.kalendariumInputField.value=this.parent.kalendarium;
															
								
								
								
								if(this.parent.countField==null)
									this.parent.l_wydan.ustaw( this.parent.get_liczba_wydan() );
								else this.parent.countField.innerHTML=this.parent.get_liczba_wydan();								
								if(this.parent.priceField!=null){
									this.parent.priceField.innerHTML=this.parent.format_cena(this.parent.get_liczba_wydan()*this.parent.price);									
								}						
								sumuj()		
								return false;
							}
							this.kalendarz.load( dane );
							//--
							this.kalendarze[ i ] = this.kalendarz;
							this.kalendarz.uchwyt.nav_p.hide();
							this.kalendarz.uchwyt.nav_n.hide();
							if(i>this.count_visibled) this.kalendarz.hide();
							this.apC( this.kalendarz.uchwyt );
						}
						this.bnext		= _c('a',{className:'next'});						
						this.bnext.innerHTML	= '&nbsp;>&nbsp;';
						this.bnext.parent=this;
						this.bnext.onclick=function(){ this.parent.next(); }
						//this.bnext.onclick = this.next; 
						this.apC( this.bnext );
						if(this.kalendariumField==null)
						{
							this.wydania = _c('textarea',{parent:this,name:'wydania',cols:60});
							if (dane['values'] != undefined)
								if (dane['values']['wydania'] != undefined )
									this.wydania.value	= dane['values']['wydania'];
							this.apC( this.wydania );
						}
						
					}
					this.obj.next=function(){
						if(this.pos+this.count_visible >= this.count_generated) return;
						this.pos++;
						for (var i = 1; i<= this.count_generated; i++){
							if(i>=this.pos+1 && i<=this.pos+this.count_visible){
								this.kalendarze[i].show(); 
							}else 
								this.kalendarze[i].hide();
						}						
					}
					this.obj.format_cena=function(liczba)
					{
					    var cena= (Math.round(liczba*100)/100);
					    var zlote=Math.floor(cena);
					    var grosze=Math.round((cena-zlote)*100);
					    if(grosze<=9) grosze='0'+grosze;
					    return zlote+'.'+grosze;
					}
					this.obj.prev=function(){
						if(this.pos<=0) return false;
						this.pos--;
						for (var i = 1; i<= this.count_generated; i++){
							if(i>=this.pos+1 && i<=this.pos+this.count_visible){
								this.kalendarze[i].show(); 
							}else 
								this.kalendarze[i].hide();
						}
					}
					this.obj.deselect_all	= function(id)
					{
						for (var i in this.kalendarze)
							if(this.kalendarze[i].id!=id)
							{ this.kalendarze[i].deselect_all() }
						
					}
					this.obj.getByAjax	= function() {
						this.AJAXsrc+='r/'+this.rejon+'/rodzaj/'+this.rodzaj+'/'; 
						getByAjax( this.AJAXsrc, this.id, this.param ); 
					}
					this.obj.mod_mediaplan = function( mediaplan, nr_wydania, operacja )
					{
						this.wtmp = new Array();
						//-- rozłożenie media planu do tablicy;
						if (mediaplan == null) mediaplan = '';
						mediaplan = mediaplan.replace(/ /g,'');
						this.t1 = mediaplan.split(',');
						for (var i in this.t1)
						{
							if (typeof(this.t1[i])=='function') continue;
							if (this.t1 == '') continue;
							this.t2 = this.t1[i].split('-');
							//--
							if (this.t2 == '') continue;
							this.od_nr = this.t2[0];
							this.do_nr = this.t2[0];
							if (this.t2.length > 1) this.do_nr = this.t2[1];
							//--
							for (this.k = this.od_nr; this.k <= this.do_nr; this.k++)
								{ if (parseInt(this.k) > 0) this.wtmp[ parseInt(this.k) ] = parseInt(this.k);	}
						}
						//-- dodanie emisji - usunięcie emisji
						if (operacja == 1)	this.wtmp[ parseInt(nr_wydania) ] = parseInt(nr_wydania);
						if (operacja == -1)	this.wtmp.splice(nr_wydania, 1);
						this.wtmp.sort();
						//-- poskładanie mediaplanu
						this.wyd = '';
						this.tmp_wyd = '';
						this.tmp_wydania = '';
						this.od_nr	= 0;
						this.do_nr	= 0;
						for (var i in this.wtmp)
						{
							if (typeof(this.wtmp[i])=='function') continue;
							if (parseInt(this.do_nr) > 0)
							if ((this.do_nr+1) < parseInt(this.wtmp[i]))
							{
								this.wyd += this.tmp_wydania + ', ';
								this.od_nr	= 0;				
							}
							//--			
							if (this.od_nr == 0) this.od_nr = parseInt(this.wtmp[i]);
							this.do_nr = parseInt(this.wtmp[i]);
							//--
							if (this.od_nr == this.do_nr)	this.tmp_wydania = this.od_nr;
							if (this.od_nr < this.do_nr)	this.tmp_wydania = this.od_nr + '-' + this.do_nr;
						}
						this.wyd += this.tmp_wydania + ',';
						//--
						return this.wyd;
						//this.wydania.value = this.wyd;		
					}
					this.obj.get_liczba_wydan = function()
					{
						this.liczba_wydan = 0;
						//for (var i in this.kalendarze)
						for (var i = 1; i<= this.count_generated; i++)
							{
							if (typeof(this.kalendarze[i])=='function') continue;
							this.liczba_wydan += parseInt( this.kalendarze[i].liczba_wydan );
							}
						return this.liczba_wydan;		
					}
					
					return this.obj;
				}

TKalendarz_miesiac_kupon = function(param)
{
	this.obj			= new TForm_object(param);
	this.obj.AJAXsrc	= '/terminal/ajax/kalend_wydan/key/d';
	this.obj.nr_wydania_min	= 0;
	this.obj.nr_wydania_max	= 0;
	this.obj.data_min	= 0;
	this.obj.data_max	= 0;
	this.obj.liczba_wydan	= 0;
	this.obj._data			= new Date;
	this.obj.td_data = new Array(); 
	//--
	this.obj.dzien		= this.obj._data.getDay();
	this.obj.miesiac	= this.obj._data.getMonth();
	this.obj.rok		= this.obj._data.getFullYear();
	//--
	this.obj.dni_tygodnia	= new Array('Pn','Wt','Śr','Cz','Pt','So','N');
	this.obj.miesiace 		= new Array('Styczeń','Luty','Marzec','Kwiecień','Maj','Czerwiec','Lipiec','Sierpień','Wrzesień','Październik','Listopad','Grudzień');
	this.obj.multiselect	= true;
	this.obj.edit			= false;
	//--
	this.obj.load	= function( dane )
	{
		this.wynik = false;
		this.innerHTML = '';
		this.rysuj( dane );
		if (dane['values']!=undefined)
			if (dane['values'][this.id]!=undefined)
				this.wynik = this.get_from_mediaplan( dane['values'][this.id] );
		this.dane = dane;
		return this.wynik;
	}
	this.obj.next_m	= function()
	{
		this.miesiac++;
		if (this.miesiac > 11) { this.rok++; this.miesiac = 0; }
		this.load( this.dane );
	}
	this.obj.prev_m	= function()
	{
		this.miesiac--;
		if (this.miesiac < 0) { this.rok--; this.miesiac = 11; }
		this.load( this.dane );
	}
	this.obj.zmien_kalendarz_by_nr_wydania = function( nr_wydania )
	{
		this.zmiana = false;
		if (parseInt( nr_wydania ) > parseInt( this.nr_wydania_max ) )
			{ this.next_m(); this.zmiana = true; }
		if (parseInt( nr_wydania ) < parseInt( this.nr_wydania_min ) )
			{ this.prev_m(); this.zmiana = true; }
		//--
		if (this.nr_wydania_max == 0) this.zmiana = false;
		if (this.nr_wydania_min == 0) this.zmiana = false;
		//--
		if (this.zmiana) this.zmien_kalendarz_by_nr_wydania( nr_wydania );
		//--
		return true;
	}	
	this.obj.zmien_kalendarz_by_data = function( data )
	{
		if(this.td_data[data]!=udefined) this.td_data[data].click();
	}	
	this.obj.rysuj	= function( dane )
	{
		this._data.setDate(1);
		this._data.setHours(12);
		this._data.setMonth( parseInt(this.miesiac) );
		this._data.setFullYear( parseInt(this.rok) );
		this.dt_1dm = this._data.getDay()-1; //-- dzień tygodnia 1 dnia miesiąca;
		if (this.dt_1dm<0) this.dt_1dm=6;
		this._data.setDate(33);
		this.end_dm 	= 33 - this._data.getDate();
		this.td_wydanie = new Array(); 
		this.td_data = new Array(); 
		//--
		this.nav = _c('div',{className:'title'});
		//--
		this.nav_p	= _c('a',{parent:this});
		this.nav_p.apC( _cTxt('<') );
		this.nav_p.onclick	= function(){ this.parent.prev_m(); }
		this.nav_n	= _c('a',{parent:this});
		this.nav_n.apC( _cTxt('>') );
		this.nav_n.onclick	= function(){ this.parent.next_m(); }
		//--
		this.b = _c('b');
		this.b.apC( _cTxt( this.miesiace[ this.miesiac ] + ' ' + this.rok) );
		this.nav.apC( this.nav_p );
		this.nav.apC( this.b );
		this.nav.apC( this.nav_n );
		//--
		this.nr_wydania_edit	= _c('input',{className:'nr_wydania',parent:this});
		this.nr_wydania_edit.hide();
		this.nr_wydania_edit.onblur	= function()
			{
			this.parent.zmien_kalendarz_by_nr_wydania( this.value );
			this.parent.get_from_mediaplan( this.value );
			this.parent.onDzienClick( this.value, 1 );
			}
		//--
		this.body	= _c('div');
		this.table	= _c('table');
		this.tbody	= _c('tbody');
		this.nr_dnia = 0;
		this.nr_wydania_min = 0;
		this.nr_wydania_max = 0;
		for (this.i=1;this.i<=7;this.i++)
			{
			this.tr	= _c('tr');
			for (this.j=0; this.j<=6; this.j++)
				{
				//-- nagłówki - dni tygodnia
				if (this.i == 1)
					{
					this.th	= _c('th',{dt:this.j,parent:this});
					this.th.apC( _cTxt( this.dni_tygodnia[(this.j)] ) );
					this.tr.apC( this.th );
					this.th.onclick = function(){this.parent.select_dt( this.dt );}
					}
				//-- pola dni miesiąca
				if (this.i != 1)
					{
					if (this.nr_dnia > 0) this.nr_dnia++
					else { if ((this.j) == this.dt_1dm ) this.nr_dnia = 1; }
					//--
					this.td	= _c('td',{parent:this});
					//--
					this.rob_dm = (parseInt(this.nr_dnia) == 0) ? 0 : parseInt(this.nr_dnia);
					this.rob_dm = ((this.rob_dm) > parseInt(this.end_dm)) ? 0 : this.rob_dm;
					if (this.rob_dm==0) this.rob_dm = '-';
					this.td.apC( _cTxt( this.rob_dm ) );
					
					//-- jeżeli w danym dniu jest wydanie to zmien klasę;
					this.td.data		= undefined;
					this.td.nr_wydania	= undefined; 
					if (this.rob_dm != '-')
					{
					this.data_str =  this.rok + '-'
						+ (((parseInt(this.miesiac)+1) > 9)? (this.miesiac+1) :('0'+(this.miesiac+1)) ) + '-'
						+ (((parseInt(this.nr_dnia)) > 9)? (this.nr_dnia) :('0'+(this.nr_dnia)) );

					if (dane['kalend_wydan'] != undefined)
					if (dane['kalend_wydan'][this.data_str] != undefined)
						{
						this.td.className	= 'wydanie';
						this.td.data		= this.data_str;
						this.td.nr_wydania	= parseInt( dane['kalend_wydan'][this.data_str]['nr'] );
						this.td.dt			= this.j;
						this.td.data_str =  this.rok + '-'
						+ (((parseInt(this.miesiac)+1) > 9)? (this.miesiac+1) :('0'+(this.miesiac+1)) ) + '-'
						+ (((parseInt(this.nr_dnia)) > 9)? (this.nr_dnia) :('0'+(this.nr_dnia)) );
						if(this.data==this.td.data_str) this.td.className = 'selected';
						//-- przepisanie do specjalnej tablicy odnośnika do el. TD zawierającego wydanie;
						this.td_wydanie[this.td.nr_wydania] = this.td; 
						//--
						this.td_data[this.td.data_str]=this.td; 
						if (this.nr_wydania_min == 0) this.nr_wydania_min = this.td.nr_wydania;
						this.nr_wydania_max = this.td.nr_wydania; 
						//--
						this.td.onclick	= function()
							{
							//
							if (!this.parent.multiselect) this.parent.deselect_all();	
							//---
							(this.selected == true)?this.selected=false:this.selected=true;
							if (this.selected)
								{
								this.parent.nr_wydania_edit.value = this.nr_wydania;
								this.className = 'selected';
								this.parent.liczba_wydan++;
								if (this.parent != undefined)
									if (this.parent.onDzienClick != undefined)
										this.parent.onDzienClick( this.nr_wydania, 1, this );
								}
							else
								{
								this.className = 'wydanie';
								this.parent.liczba_wydan--;
								if (this.parent != undefined)
									if (this.parent.onDzienClick != undefined)
										this.parent.onDzienClick( this.nr_wydania, -1, this  );
								}
							}
						}
					}
					//--
					this.tr.apC( this.td );
					}
				}
			this.tbody.apC( this.tr );
			}
		this.table.apC( this.tbody );
		this.body.apC( this.table );
		//--
		this.apC( this.nav );
		this.apC( this.body );
		if (this.edit == true) this.apC( _cTxt('nr wydania: ') ); 
		this.apC( this.nr_wydania_edit );
		if (this.edit == true) this.nr_wydania_edit.show();
			
	}
	this.obj.select_dt = function( dt )
	{
		for (this.i in this.td_wydanie)
			if (this.td_wydanie[this.i].dt == dt)
				this.td_wydanie[this.i].onclick();
	}
	this.obj.deselect_all 	= function()
	{
		for (this.i in this.td_wydanie)
		{
			this.td_wydanie[this.i].selected	= false;
			this.td_wydanie[this.i].className	= 'wydanie';
			this.liczba_wydan	= 0;
		}
	}
	
	this.obj.get_from_mediaplan	= function( mediaplan )
	{
		this.wynik = false;
		this.deselect_all();
		//--
		if (mediaplan == null) mediaplan = '';
		if (mediaplan.replace == null) mediaplan = '';
		mediaplan = mediaplan.replace(/ /g,'');
		this.t1 = mediaplan.split(',');
		for (this.i in this.t1)
		{
			if (this.i == 'indexOf') continue;
			if (this.t1 == '') continue;
			this.t2 = this.t1[this.i].split('-');
			//--
			this.od_nr = this.t2[0];
			this.do_nr = this.t2[0];
			if (this.t2.length > 1) this.do_nr = this.t2[1];
			//--
			for (this.k = this.od_nr; this.k <= this.do_nr; this.k++)
			if ((this.k >= this.nr_wydania_min) && (this.k <= this.nr_wydania_max))
			if (this.td_wydanie[this.k] != undefined)
				{
				this.wynik = true;
				this.td_wydanie[this.k].selected = true;
				this.td_wydanie[this.k].className = 'selected';
				this.liczba_wydan++;
				}
		}
		//--
		if (this.edit == true)
			this.nr_wydania_edit.value = mediaplan;
		//--
		return this.wynik;
	}

	return this.obj;		
}
				 