$(function(){
/**
 *	fProgramRabatowy ver developing
 */
	var fpr = {};
	var config = {
		logaMale			: 'loga_promo/new/',
		loga				: 'loga_promo/normal/',
		procentyUrl			: 'img/procenty/',
		pokazAdresy			: 'wyświetl adresy sklepów &raquo;',
		pokazAdresy_on		: 'ukryj adresy sklepów &laquo;',
		pokazAdresyAll		: 'wyświetl pozostałe adresy &raquo;',
		pokazAdresyAll_on 	: 'ukryj pozostałe adresy &laquo;',
		stronaPartnera		: 'strona www partnera',
		wynikowNaStrone 	: 10,
		ileStronStronicowanie : 3,	//	ile stron po lewej/prawej ma sie wyswietlac od aktywnej ( z przedzialu <n-X ; n+X>, gdzie n- biezaca strona, X - ta zmienna :))
		nowychPartnerowNaSTrone : 4,
		stronicowanie		: {
			poprzednia		: '&laquo;&nbsp;poprzednia',
			nastepna		: 'następna&nbsp;&raquo;'
		},
		txt					: {
			brakWynikow		: 'Nie znaleziono nic, zmień kryteria wyszukiwania'
		}
	};

	fpr = (function(){
	
		/* private*/
		
		xml.init();
		xml.load('baza.xml');		
		var procImg = {
			"2%" : "2.gif",
			"3%" : "3.gif",
			"4%" : "4.jpg",
			"5%" : "5.gif",
			"6%" : "6.gif",
			"7%" : "7.gif",
			"8%" : "8.gif",
			"9%" : "9.gif",
			"10%": "10.gif",
			"11%": "11.gif",
			"12%": "12.gif",
			"15%": "15.gif",
			"17%": "17.gif",		
			"20%": "20.gif",
			"25%": "25.gif",
			"30%": "30.gif",
			"40%": "40.gif",
			"50%": "50.gif",
			"70%": "70.gif",
			"75%": "75.gif",
			"100%": "100.gif",
			"do 5%" : "do_5.gif", 		"do5%" : "do_5.gif",
			"do 6%" : "do_6.gif",		"do6%" : "do_6.gif",
			"do 7%" : "do_7.gif", 		"do7%" : "do_7.gif",		
			"do 10%" : "do_10.gif",		"do10%" : "do_10.gif",
			"do 12%" : "do_12.gif",		"do12%" : "do_12.gif",
			"do 14%" : "do_14.gif",		"do14%" : "do_14.gif",
			"do 15%" : "do_15.gif",		"do15%" : "do_15.gif",
			"do 20%" : "do_20.gif",		"do20%" : "do_20.gif",
			"do 25%" : "do_25.gif",		"do25%" : "do_25.gif",
			"do 30%" : "do_30.gif",		"do30%" : "do_30.gif",
			"do 38%" : "do_38.gif",		"do38%" : "do_38.gif",
			"do 40%" : "do_40.gif",		"do40%" : "do_40.gif",
			"do 40 %" : "do_40.gif",	"do40 %" : "do_40.gif",
			"do 50%" : "do_50.gif",		"do50%" : "do_50.gif",
			"do 70%" : "do_70.gif",		"do70%" : "do_70.gif",
			"do 94%" : "do_94.gif",		"do94%" : "do_94.gif",
			"5%,10%" : "5_10.jpg",
			"10%,15%" : "10_15.jpg",
			"200" : "200.gif",
			"25%*" : "25_star.gif"
		};
		/* var branches = new Array();
		branches["Biżuteria i dodatki"]=4;
		branches["Dom i wnętrze"]=7;
		branches["Motoryzacja"]=9;
		branches["Odzież"]=1;
		branches["Restauracje i hotele"]=6;
		branches["Rozrywka"]=10;
		branches["Sklepy internetowe"]=5;
		branches["Sklepy specjalistyczne"]=2;
		branches["Turystyka i rekreacja"]=8;
		 branches["Zdrowie i uroda"]=3;*/
		var branchesID = { 
			1: "Odzież",
			2: "Sklepy specjalistyczne",
			3: "Zdrowie i&nbsp;uroda",
			4: "Biżuteria i&nbsp;dodatki",
			5: "Sklepy internetowe",
			6: "Restauracje i&nbsp;hotele",
			7: "Dom i&nbsp;wnętrze",
			8: "Turystyka i&nbsp;rekreacja",
			9: "Motoryzacja",
			10: "Rozrywka"
		};

		/* public */
		
		return {
			loadPartners: 	function(karta, branza, miasto){
				var xPath = '/partners/p';
				//	sprawdzanie karty
				if ( karta && karta != '' ) {
					xPath += '[cs[@';
					if ( karta == 'gold' ) {
						xPath += 'go!="';
					} else if ( karta == 'silver' ) {
						xPath += 'si!="';
					} else if ( karta == 'elle' ) {
						xPath += 'el!="';
					} else if ( karta == 'platinum' ) {
						xPath += 'pl!="';
					} else if ( karta == 'ultime' ) {
						xPath += 'ul!="';
					} else if ( karta == 'debetowe' ) {
						xPath += 'de!="';
					} else if ( karta == 'przedplacone' ) {
						xPath += 'pp!="';
					}
				}
				xPath += '"]]';
				//	sprawdzanie branży
				if ( branza && branza != '') {
					branza = parseInt(branza);
					xPath += '[br="'+branza+'"]'
				}
				//	sprawdzanie miasta 
				if ( miasto && miasto != '') {
					xPath += '[a[@c="'+miasto+'"]]'; 
				}
				//xml.query('/partners/p[br="6"][l="LGHotels.gif"]',function(){ 
				xml.query(xPath,function(){ 
					echoN('query path = '+xPath);
					echoN('found: '+xml.length());
					echoN('value of ... ');
					//echoN(xml.getVal(0,'a@c').length); 
					var a = xml.getVal(0,'a@c');
					echoN('items : '+a.length);
					echoN( a[1] );
					echoN( a[2] ); 
					a = xml.getVal(0,'cs/si');
					echoN('items.length  : '+a.length);
					echoN('items.0  : '+a[0]);
					a = xml.getVal(0,'cs/go@val');
					echoN('items.length  : '+a.length);
					echoN('items.0  : '+a[0]); 
					// echoN(xml.getVal(0,'cs/de/val'));  - nie rabotajet jeszcze cos takiego
				});
			},
			partner: 	function( n, property ) {
				return xml.getVal( n, property );
			},
			length: function() {
				return xml.length();
			},
			getShops: 	function( n,  options ) {
				//	ladujemy sklepy...
				var shops = xml.getVal(n, 'a');
				var ileK = shops.length;
				if ( ileK>0 ) {
					//echo('ileK = '+ileK);
					var id = n;
					if ( options && options.newPartners ) {
						id = n+'_new';
					}
					d = $('<div></div>').addClass('box_adresy').attr('id','box_adresy_'+id).hide();
					dAll = $('<div></div>').addClass('box_adresy_all').attr('id','box_adresy_all_'+id).hide();
					dAll_Empty = true;
					for (var k=0; k<ileK; k++) {
						//	jesli szukalismy tylko w jednym miescie... 
						var sklep = $('<p class="sklep"> \
							<strong>'+(shops[k].c?shops[k].c+', ':'')+'</strong>  \
							'+(shops[k].r?shops[k].r+', ':'')+'  \
							<em>'+(shops[k].s?shops[k].s:'')+'</em>  '+(shops[k].st?shops[k].st:'')+'\
							'+(shops[k].b?shops[k].b:'')+(shops[k].ph?', '+shops[k].ph:'')+'</p>');
						//echo('<p class="sklep"> <strong>'+(shops[k].c?shops[k].c+', ':'')+'</strong>  '+(shops[k].r?shops[k].r+', ':'')+'  <em>'+(shops[k].s?shops[k].s:'')+'</em>  '+(shops[k].st?shops[k].st:'')+''+(shops[k].b?shops[k].b:'')+(shops[k].ph?', '+shops[k].ph:'')+'</p>');
						if ( options && options.miasto && shops[k].c != options.miasto ) {
							dAll.append( sklep );
							dAll_Empty = false;
						} else {
							d.append( sklep );
						}
					}
					//	jesli szukalismy tylko w jednym miescie to dodajemy link do wszystkich miast...
					if ( options && options.miasto ) {
						var a = $('<a></a>').html(config.pokazAdresyAll).data('idek', id);
						a.click(function(){
							if ( $(this).data('active') ) {
								$(this).data('active', false);
								$(this).html(config.pokazAdresyAll);
								// schowaj
								$('#box_adresy_all_'+$(this).data('idek')).slideUp();
							} else {
								$(this).data('active', true);
								$(this).html(config.pokazAdresyAll_on);
								//	pokaz adresy
								//if ( $('#box_adresy_all_'+$(this).data('idek')).length ) {
									$('#box_adresy_all_'+$(this).data('idek')).slideDown();
								// } else {
									// $(this).insertAfter( _self.getShops(n, options.miasto) );
								// }
							}
						});
						if ( !dAll_Empty ) {
							d.append( a );
							d.append(dAll);
						}
					}
					return d;
				}
				return false;
			},
			getNewPartners: 	function(){
				var xPath = '/partners/p[@n="1"]';
				var s = $('<div></div>');
				var sB = $('<div></div>');
				xml.query(xPath, function(){
					/* view - generowanie widoku */
					//	stronicowanie:
					var stronicowanieP = $('<p class="stronicowanie" id="stronicowanieNowiPartnerzy"></p>');
					var a = $('<span class="nowiPartnerzyStrona poprzednia" id="nowiPartnerzyStronaPoprzednia">'+config.stronicowanie.poprzednia+'</span>').data('strona','-1');
					stronicowanieP.append(a);
					var a = $('<span class="nowiPartnerzyStrona" id="nowiPartnerzyStrona_1" >1</span>');
					stronicowanieP.append(a);
					var strona = 1;
					var divStrona = $('<div class="strona" id="strona_1"></div>');//.hide();
					//echo('w sumie nowych :'+xml.length());
					for (var i=0, ile=xml.length(); i<ile; i++) {						
						var div = $('<div></div>').addClass('box_newPartner');
						var br = xml.getVal(i, 'br')+'';
						if ( br ) {
							var p = $('<p></p>').addClass('branza').html( branchesID[br] ).addClass('szukaj').attr('href', '#'+br);
							p.appendTo(div);
						}
						if ( xml.getVal(i, 'l'))  {
							//alert(xml.getVal(i, 'l'));
							var img = new Image();
							$(img).attr('src', config.logaMale+xml.getVal(i, 'l'))
								.appendTo(div).addClass('logo').attr('alt', xml.getVal(i, 'n'));
						}
						p = $('<p></p>').addClass('procenty').appendTo(div);
						if ( xml.getVal(i, 'cs@go') ) {
							if ( procImg[xml.getVal(i, 'cs@go')] ) {
								p.append( $('<img src="'+config.procentyUrl+procImg[xml.getVal(i, 'cs@go')]+'" alt="rabat \
									'+xml.getVal(i, 'cs@go')+'"> <em>Gold</em>') );
							} else {
								p.append( $('<span>'+xml.getVal(i, 'cs@go')+'</span> <em>Gold</em>') );
							}
						}
						if ( xml.getVal(i, 'cs@si') ) {
							if ( procImg[xml.getVal(i, 'cs@si')] ) {
								p.append( $('<img src="'+config.procentyUrl+procImg[xml.getVal(i, 'cs@si')]+'" alt="rabat \
									'+xml.getVal(i, 'cs@si')+'"> <em>Silver</em>') );
							} else {
								p.append( $('<span>'+xml.getVal(i, 'cs@si')+'</span> <em>Silver</em>') );
							}
						}
						div.hover(function(){
								$(this).fadeTo(300,0.7);
							}, function(){
								$(this).fadeTo(300,1);
						}).click(function(a){
							return function(){
								//alert('clicked '+a);
								if ( !$('#bigNewPartner_'+a+'_new').is(':visible') ) {
									$('.partnerNew').slideUp();
									$('#bigNewPartner_'+a+'_new').slideDown();
								}
								//echo('Duzy znaleziony? '+a+'_new : '+$('#bigNewPartner_'+a+'_new').length);
							};
						}(i));
						//	dodanie do strony boxu partnera 
						divStrona.append(div);
						//	generowanie duzego boxa z nowym partnerem.
						sB.append( fpr.getBigBoxPartner(i, { karta: 'all', loadShops: true, loadBranchLink: true, newPartners: true }) );
						if ( (i+1) % 4 == 0) {
							//	stronicowanie.
							s.append(divStrona);							
							//	czy bedzie kolejna strona ??? (czy mamy jeszcze rekordy)
							if ( i<(ile-1) ) {
								//echo('kolejna strona bedzie tworzona...');
								strona++;
								divStrona = $('<div class="strona" id="strona_'+strona+'"></div>').hide();
								//	nawigacja
								//	linki dodajemy dla stron > 1 - dla pierwszej strony domyslnie span na poczatku tworzony jest
								if ( strona > 1 ) {
									a = $('<a href="#'+strona+'" class="nowiPartnerzyStrona" id="nowiPartnerzyStrona_'+strona+'">'+strona+'</a>').data('strona',strona);
								}
								stronicowanieP.append(a);
							}
						}						
					}
					//	dodajemy ostatnia strone do wyswietlenia :)
					s.append(divStrona);
					//	link nastepny do nawigacji stronic
					var a = $('<a href="#+1" class="nowiPartnerzyStrona nastepna" id="nowiPartnerzyStronaNastepna">'+config.stronicowanie.nastepna+'</a>').data('strona','+1');
					stronicowanieP.append(a).data('ileStron',strona).data('aktywna',1);
					//	dodajemy stronicowanie, jesli jest wiecej niz jedna strona tylko
					if ( strona > 1 ) {
						s.append( $('<div class="clearer"></div>') ).append(stronicowanieP);
					}
				});
				s.append( $('<div class="clearer"></div>') ).append(sB);
				return s;
			},
			getBigBoxPartner: 	function(i, options) {
				echo('bigboxPartner _______________', 'b');
				var _self = this;
				var nazwa = xml.getVal(i, 'n');
				var id = i;
				if ( options && options.newPartners ) {
					id = i+'_new';
				}
				var div = $('<div></div>').addClass('partner').addClass('partnerNew').attr('id','bigNewPartner_'+id).hide();
				var divContent = $('<div></div>').addClass('partnerContent');
				div.append(divContent);
				var d = $('<div></div>').addClass('tytul');
				if ( options && options.loadBranchLink ) {
					var branchID = parseInt(xml.getVal(i, 'br'));
					if ( branchID ) {
						var a = $('<a></a>').html( branchesID[ branchID ] ).addClass('szukaj').attr('href', '#'+branchID);
						d.append(a);
					}
				}
				d.append( $('<h4>'+nazwa+'</h4>') ).appendTo(divContent);
				d = $('<div></div>').addClass('lewa');
				var logo = '';
				if ( logo = xml.getVal(i, 'l') ) { 		// logo
					var img = new Image();
					$(img).attr('src', config.loga+logo);
					//echo('logo src : '+config.loga+logo);
					$(img).addClass('logo').attr('alt', nazwa);
					d.append(img).append( $('<br />') );
				}
				var href = '';
				if ( href = xml.getVal(i, 'w') ) { 		// www
					href += '';
					if ( href.indexOf('http:')!=0 && href.indexOf('https')!=0 ) {
						href = 'http://'+href;
					}
					a = $('<a></a>').attr('href', href).attr('rel', 'external').text(href.replace('http://',''));
					d.append(a);
				}
				divContent.append(d);
				//	srodek duzego boxa
				d = $('<div></div>').addClass('srodek');
				var strong = xml.getVal(i, 'bT');
				echo('strong : '+strong);
				if ( strong ) {		//	pogrubiony opis
					var strong = $('<strong></strong>').text( strong+'' );
					d.append(strong);
				}
				 opis = xml.getVal(i, 'd');
				echo('opis : '+opis);
				if ( opis ) {
					p = $('<p></p>');
					p.html( opis+'' );
					d.append(p); 
				}
				divContent.append(d);
				//	prawa strona - procenty
				d = $('<div></div>').addClass('prawa');
				p = $('<p></p>').addClass('procenty');
				if ( ( options.karta == 'all' || options.karta == 'pl' ) && xml.getVal(i, 'cs@pl') ) {
					if ( procImg[xml.getVal(i, 'cs@pl')] ) {
						p.append( $('<em>Platinum</em><img src="'+config.procentyUrl+procImg[xml.getVal(i, 'cs@pl')]+'" alt="'+xml.getVal(i, 'cs@pl')+'">') );
					} else {
						p.append( $('<em>Platinum</em><span>'+xml.getVal(i, 'cs@pl')+'</span>') );
					}
				}
				if ( ( options.karta == 'all' || options.karta == 'el' ) && xml.getVal(i, 'cs@el') ) {
					if ( procImg[xml.getVal(i, 'cs@el')] ) {
						p.append( $('<em>Elle</em><img src="'+config.procentyUrl+procImg[xml.getVal(i, 'cs@el')]+'" alt="'+xml.getVal(i, 'cs@el')+'">') );
					} else {
						p.append( $('<em>Elle</em><span>'+xml.getVal(i, 'cs@el')+'</span>') );
					}
				}
				if ( ( options.karta == 'all' || options.karta == 'go' ) && xml.getVal(i, 'cs@go') ) {
					if ( procImg[xml.getVal(i, 'cs@go')] ) {
						p.append( $('<em>Gold</em><img src="'+config.procentyUrl+procImg[xml.getVal(i, 'cs@go')]+'" alt="'+xml.getVal(i, 'cs@go')+'">') );
					} else {
						p.append( $('<em>Gold</em><span>'+xml.getVal(i, 'cs@go')+'</span>') );
					}	
				}
				if ( ( options.karta == 'all' || options.karta == 'si' ) && xml.getVal(i, 'cs@si') ) {
					if ( procImg[xml.getVal(i, 'cs@si')] ) {
						p.append( $('<em>Silver</em><img src="'+config.procentyUrl+procImg[xml.getVal(i, 'cs@si')]+'" alt="'+xml.getVal(i, 'cs@si')+'">') );
					} else {
						p.append( $('<em>Silver</em><span>'+xml.getVal(i, 'cs@si')+'</span>') );
					}	
				}
				if ( ( options.karta == 'all' || options.karta == 'ul' ) && xml.getVal(i, 'cs@ul') ) {
					if ( procImg[xml.getVal(i, 'cs@ul')] ) {
						p.append( $('<em>Ultime</em><img src="'+config.procentyUrl+procImg[xml.getVal(i, 'cs@ul')]+'" alt="'+xml.getVal(i, 'cs@ul')+'">') );
					} else {
						p.append( $('<em>Ultime</em><span>'+xml.getVal(i, 'cs@ul')+'</span>') );
					}	
				}
				if ( ( options.karta == 'all' || options.karta == 'de' ) && xml.getVal(i, 'cs@de') ) {
					if ( procImg[xml.getVal(i, 'cs@de')] ) {
						p.append( $('<em>Debetowe</em><img src="'+config.procentyUrl+procImg[xml.getVal(i, 'cs@de')]+'" alt="'+xml.getVal(i, 'cs@de')+'">') );
					} else {
						p.append( $('<em>Debetowe</em><span>'+xml.getVal(i, 'cs@de')+'</span>') );
					}
				}
				echo('d class... '+d.get(0).className);
				d.append(p);
				divContent.append(d);
				d = $('<div></div>').addClass('clearer');
				divContent.append(d);
				
				// 	belka - link do listy sklepów, dodatkowy opis.
				d = $('<div></div>').addClass('belka');
				a = $('<a></a>').addClass('a_adresy').addClass('a_adresy_all').html(config.pokazAdresy);
				a.click(function(i){
					return function(){	
						//alert('clidked + '+i+'  ->  '+$(this).data('active') );
						//	jesli ladujemy wszystkie sklepy to....
						if ( options && options.loadShops ) {
							var id = i;
							if ( options && options.newPartners ) {
								id = i+'_new';
							}
							var divAdresy = $('#box_adresy_'+id);
							if ( !divAdresy.length ) {
								//	wyświetl jakiś błąd, że nie znalazł adresów ?
								//echo('nie znalazlem adresow: #box_adresy_'+id);
								return false;
							}
							//alert(divAdresy.length);
							if ( $(this).data('active') ) {
								$(this).data('active', false);
								divAdresy.slideUp();
								$(this).html(config.pokazAdresy);
							} else {
								$(this).data('active', true);
								divAdresy.slideDown();
								$(this).html(config.pokazAdresy_on);
							}
						} else {
							//	jesli nie ladujemy, to zaladujemy ;-)
							//	pokaz ladowanie... (TODO)
							if ( ! $(this).data('loaded') ) {
								var shops = _self.getShops(i, options);
								//echo($(this).hasClass('a_adresy'));
								//echo(shops);
								if ( shops ) {
									shops.insertAfter( $(this).parent() );
									shops.slideDown();
									$(this).data('loaded', true).data('active', true).html(config.pokazAdresy_on);
								}
							} else {
								shops = $('#box_adresy_'+i);
								if ( $(this).data('active') ) {
									shops.slideUp();
									$(this).data('active', false).html(config.pokazAdresy);
								} else {
									$(this).data('active', true).html(config.pokazAdresy_on);
									shops.slideDown();
								}
							}
						}
					}
				}(i));
				d.append(a);
				if ( opis = xml.getVal(i, 'aI') ) {
					p = $('<p></p>').addClass('dodatkowyOpis').text( opis+'' );
					d.append(p);
				}
				divContent.append(d);				
				
				//	lista wszystkich sklepów ladowana w calosci w zaleznosci od opcji:
				if ( options && options.loadShops ) {
					var d = this.getShops(i, options);
					if ( d ) {
						divContent.append(d);
					}
				}
				
				var d = $('<div></div>').addClass('clearer').html('&nbsp;');
				divContent.append(d);
				var d = $('<div></div>').addClass('bottom').html('&nbsp;');
				divContent.append(d);
	
				
				
				return div;
			}
		};


	}());
	

/* obsluga zalogowanych badz nie uzytkownikow */

	$.ajax({
		type: "GET",
		url: "/PLGCB/copy.do?content=transactional",
		dataType: "html",
		async: true,
		success: function(data) { 
			if ( data.toString().length > 200 ) {
				$("#header").css("background-image","none");
				$("#toploginbox").empty().html('<img src="/retail/blue/images/padlock.gif" alt="" style="vertical-align:bottom;"/> <a href="/PLGCB/JSO/signoff/SummaryRecord.do?logOff=true" style="color:#f00;">Wyloguj</a><div id="loginTabs" style="position:absolute; left:19px; top:11px; width:390px;"><img src="/retail/blue/img/info2.jpg" alt="Serwis informacyjny"/><a href="/PLGCB/JPS/portal/Home.do"><img src="/retail/blue/img/trans2.jpg" alt="Serwis transakcyjny"/></a></div>');
				//	imie
				var imie = new RegExp(/<a class="NavLAm1">(.*)\n/).exec( new String(data) );
				if (imie) {
					$("#cbol").append("<br/><span style='line-height:15px;'>"+imie[1]+"</span>");	
				}
				$("#cbol").css({"margin-top":"10px","text-align":"right"});
				$('a').each(function(){
					//	doklejanie /PLGCB dla linkow
					var href = $(this).attr('href');
					if ( href ) {
						href = href.replace(/\/(page|base|copy)\.do/, '/PLGCB/$1.do');
						$(this).attr('href',href);
					}
				});
			} else {
				$("#cbol").css("margin-top","30px");
			}
			$("#toploginbox").css('visibility', 'visible');
		},
		error: function (XMLHttpRequest, textStatus, errorThrown) { return false; }
	});


	
	//	obsluga stronicowania dla nowych partnerow.
	$('a.nowiPartnerzyStrona').live('click', function(){
		var stronicowanie = $('#stronicowanieNowiPartnerzy');
		var ileStron = stronicowanie.data('ileStron');
		var aktywna = stronicowanie.data('aktywna');
		var strona = $(this).data('strona');
		echo('strona Raw click :'+strona);
		if ( strona === '+1' ) {
			strona = aktywna+1;
		} else if ( strona === '-1' ) {
			strona = aktywna-1;
		}
		//	sprawdzamy czy nie wyszlismy poza zakres
		if ( strona < 1 ) {
			strona = 1;
		} else if ( strona > ileStron ) {
			strona = ileStron;
		} 
		if ( strona != aktywna ) {
			echo('aktywnał : '+aktywna+'  , strona do pokazania : '+strona+' , lacznie stron : '+ileStron);
			//	jesli mamy do pokazania inna strone niz biezaca.
			//	jest ok, pokazujemy....
			echo('len :'+$('#strona_'+aktywna).length);
			$('#strona_'+strona).show();
			$('#strona_'+aktywna).hide();
			//return false;
			stronicowanie.data('aktywna', strona);
			
			//	link dla strony aktywnej (bylej)
			var a = $('<span class="nowiPartnerzyStrona" id="nowiPartnerzyStrona_'+strona+'">'+strona+'</span>');
			a.insertAfter( $('#nowiPartnerzyStrona_'+strona) );
			$('#nowiPartnerzyStrona_'+strona).remove();
			
			//	span dla strony aktywnej (biezacej)
			var a = $('<a href="#'+aktywna+'" class="nowiPartnerzyStrona" id="nowiPartnerzyStrona_'+aktywna+'">'+aktywna+'</a>').data('strona',aktywna);
			a.insertAfter( $('#nowiPartnerzyStrona_'+aktywna) );
			$('#nowiPartnerzyStrona_'+aktywna).remove();
			
			//	spany w nawigacji odpowiednie dla nastepne / poprzednie 
			echo('center');
			if ( strona != 1 ) {
				$('#nowiPartnerzyStronaPoprzednia').remove();
				var a = $('<a href="#-1" class="nowiPartnerzyStrona poprzednia" id="nowiPartnerzyStronaPoprzednia">'+config.stronicowanie.poprzednia+'</a>').data('strona','-1');					
				stronicowanie.prepend(a);
			} else {
				echo('first ');
				$('#nowiPartnerzyStronaPoprzednia').remove();
				var a = $('<span class="nowiPartnerzyStrona poprzednia" id="nowiPartnerzyStronaPoprzednia">'+config.stronicowanie.poprzednia+'</span>');
				stronicowanie.prepend(a);				
			}
			
			if ( strona != ileStron ) {
				$('#nowiPartnerzyStronaNastepna').remove();
				var a = $('<a href="#+1" class="nowiPartnerzyStrona nastepna" id="nowiPartnerzyStronaNastepna">'+config.stronicowanie.nastepna+'</a>').data('strona','+1');
				stronicowanie.append(a);
			} else {
				echo('last');
				$('#nowiPartnerzyStronaNastepna').remove();
				var a = $('<span class="nowiPartnerzyStrona nastepna" id="nowiPartnerzyStronaNastepna">'+config.stronicowanie.nastepna+'</span>');
				stronicowanie.append(a);
			}
		}
		return false;
	});
	

	//	generowanie selectow dla miast i branz
	if (typeof cities != 'undefined') {
		option = $('<option></option>').text('-- wszystkie --').val('');
		$('#cities').append(option);
		for (var i=0, ile=cities.length; i<ile; i++) {
			var option = $('<option></option>').text( cities[i] );
			$('#cities').append(option);
		}
	}
	
	//	linki do wyszukiwarki z wyszukiwaniem...
	$('.szukaj').live('click', function(){
		var branza = $(this).attr('href').slice(1);
		taber.show('#tb_wyszukiwarka', { 
			'containerID' : 'content',
			'tabID':'wyszukiwarka', 
			'preCallback': function() { 
				//	czyscimy wyniki wyszukiwania
				$('#tab_wyszukiwarka').find('.output').empty();
				//	ustawiamy wartosc dla selecta branzy
				$('#branches').val(branza);
				//	ustawiamy menu w odpowiednich pozycjach
				$('#rabaty .rabaty_menu ul li a').not('#tb_wyszukiwarka').removeClass('active').stop().animate({ top:'3px', height:'42px' }, 200);
				$('#tb_wyszukiwarka').stop().animate({ top:'0px', height:'46px' }, 200).addClass('active');
			}, 
			'postCallback': function() { 
				//	wyszukujemy
				wyszukaj();
			} 
		});
				
		return false;
		//szukaj
	});

	/* zakladki */
	
	//	obsługa zakładek - nowi partnerzy....
	$('#tb_nowiPartnerzy').click(function() {
		taber.show('#tb_nowiPartnerzy', { 
				'containerID' : 'content',
				'tabID':'nowiPartnerzy', 
				'preCallback': function() { 
					//	czyscimy wyniki wyszukiwania
					$('#tab_wyszukiwarka').find('.output').empty();
					//	pokazania napisu ładowanie, jeśli jest to piersze uruchomienie.
					$('#tab_nowiPartnerzy').find('.ladowanie').show();
 				}, 
				'postCallback': function() {
					var out = $('#tab_nowiPartnerzy'); 
					var output = out.find('.output');
					if ( !output ) {
						return false;
					}
					if ( !out.data('generated') ) {
						//	generowanie nowych partnerow...
						//echoN('generowanie');
						var s = fpr.getNewPartners();
						output.append( s );
						out.data('generated',true);
						out.find('.ladowanie').fadeOut(function(){
							output.fadeIn();
							$('.strona').slideUp();
							//echo(' .strona len : '+ $('.strona').length );
							$('#strona_1').slideDown();
							//echo(' #strona_1 len : '+ $('#strona_1').length );
							$(this).remove();
						});
						
					} else {
						output.fadeIn();
					}
					return false;
				} 
			});
		return false;
	});
	
	//	obsługa zakładek - wyszukiwarka....
	$('#tb_wyszukiwarka').click(function() {
		taber.show('#tb_wyszukiwarka', { 
				'containerID' : 'content',
				'tabID':'wyszukiwarka', 
				'preCallback': function() { 
					//	czyscimy wyniki wyszukiwania
					$('#tab_wyszukiwarka').find('.output').empty();
					//	pokazujemy jak znalezc...
					$('#jak_znalezc, #jak_znalezc_pamietaj').show();
				}, 
				'postCallback': function() { 		
				} 
				});
		return false;
	});

	//	obsługa zakładek - promocje....
	$('#tb_promocje').click(function() {
		taber.show('#tb_promocje', { 
				'containerID' : 'content',
				'tabID':'promocje', 
				'preCallback': function() { 
				}, 
				'postCallback': function() { 					
				} 
				});
		return false;
	});

	//	obsługa zakładek - zostan partnerem....
	$('#tb_zostanPartnerem').click(function() {
		taber.show('#tb_zostanPartnerem', { 
				'containerID' : 'content',
				'tabID':'zostanPartnerem', 
				'preCallback': function() { 

				}, 
				'postCallback': function() { 					
				} 
				});
		return false;
	});
	
	//	obsługa zakładek - oferty specjalne....
	$('#tb_ofertySpecjalne').click(function() {
	/**
	*
	* Zakomentowałem 11.02
	* Kto? GG
	* Dlaczego? VR7384309
	*
		taber.show('#tb_ofertySpecjalne', { 
				'containerID' : 'content',
				'tabID':'ofertySpecjalne', 
				'preCallback': function() {}, 
				'postCallback': function() {} 
		});
	*/
		window.location = '/page.do?content=promocje_i_konkursy';
		return false;
	});

	//	obsluga oferty specjalne 
	$('#link_rabatekZima').click(function() {
		$('#ofertySpecjalneContainer > div.hidden').stop().hide();
		$('#rabatekZima').stop().show()
		$('#ofertySpecjalne_menu').hide();
		$('#ofertySpecjalne_powrot').show();
		return false;
	});
	$('#link_multikonkurs').click(function() {
		$('#ofertySpecjalneContainer > div.hidden').stop().hide();
		$('#multikonkurs').stop().show()
		$('#ofertySpecjalne_menu').hide();
		$('#ofertySpecjalne_powrot').show();
		return false;
	});
	$('#link_choinka').click(function() {
		$('#ofertySpecjalneContainer > div.hidden').stop().hide();
		$('#choinka').stop().show()
		$('#ofertySpecjalne_menu').hide();
		$('#ofertySpecjalne_powrot').show();
		return false;
	});
	
	$('#ofertySpecjalne_powrot_link').click(function(){
		$('#ofertySpecjalneContainer > div').stop().hide();
		$('#ofertySpecjalne_menu').show();
		$('#ofertySpecjalne_powrot').hide();
		return false;
	});
	

	
	/* pozostale */
	
	//	zachowanie menu (animacja)
	$('#rabaty .rabaty_menu ul li a').each(function(){
		$(this).hover(function(){
				if ( !$(this).hasClass('active') ) {
					$(this).stop().animate({ top:'1px', height:'45px' }, 200);
				}
			},function(){
				if ( !$(this).hasClass('active') ) {
					$(this).stop().animate({ top:'3px', height:'42px' }, 200);
				}
		}).click(function(){
			$('#rabaty .rabaty_menu ul li a').not(this).removeClass('active').stop().animate({ top:'3px', height:'42px' }, 200);
			$(this).stop().animate({ top:'0px', height:'46px' }, 200).addClass('active');
		});
	});
	
	
	//	'najechanie' na obrazki na zakladce wyszukiwarki
	/*
	$('.containerek_p').hover(function(){
			var id = $(this).attr('id').slice(1);
			$('#imagick'+id).fadeIn(100);
		}, function(){
	});
	$('.imagick').hover(function(){
	}, function(){
		$(this).fadeOut(100);
	});
	*/
	
	//	wyświetlanie adresów sklepów w promocjach 
	$('#rabaty .promocja a.a_adresy_all').click(function(){
		var box = $(this).parent().parent().find('.box_adresy');
		if ( $(this).data('active') ) {
			$(this).data('active', false).html(config.pokazAdresy);
			box.slideUp();
		} else {
			$(this).data('active', true).html(config.pokazAdresy_on);
			box.slideDown();
		}
		return false;
	});
	
	
	//	po kliknieciu przycisku wyszukaj.....
	$('#wyszukaj').click(wyszukaj);
	
	//	stronicowanie dla wynikow wyszukiwania....
	$('.szukajStrona').live('click', function(el){
		//var strona = parseInt($(this).attr('href').slice(1));
		var strona = parseInt($(this).data('strona'));
		echo('clicked strona : '+strona);
		wyszukaj(el, strona);
		return false;
	});

	//	wyszukiwanie......................
	function wyszukaj(el, strona) {
	
		echo('zaczynam szukac... ');
		var output = $('#tab_wyszukiwarka').find('.output').hide().empty();

		$('#wyszukiwanie').show();
		$('#jak_znalezc, #jak_znalezc_pamietaj').hide();
		
		setTimeout(function(){ 
			wuszukajStart(output, strona);
		},10);
		
	}

	function wuszukajStart(output, strona) {

		var karta = $('#cards').val();
		var miasto = $('#cities').val();
		var branza = $('#branches').val();
		var options = {};
		if ( karta ) { options.karta = karta; };
		if ( miasto ) { options.miasto = miasto; };
		if ( branza ) { options.branza = branza; };
		
		var xPath = '/partners/p';
		var searchOptions = { } ;		//	obiekt, ktory przekazemy do obiektu xml, ktory bedzie wybieral dane z bazy
		options.karta != 'all' 
		//	sprawdzanie karty
		if ( options && options.karta ) {
			xPath += '[cs[@'+options.karta+'!=""]]';
			searchOptions.karta = [options.karta];
		} else {
			searchOptions.karta = 'all';
		}
		//	sprawdzanie branży
		if ( options && options.branza ) {
			options.branza = parseInt(options.branza);
			xPath += '[br="'+options.branza+'"]';
			searchOptions.branza = options.branza;
		}
		//	sprawdzanie miasta 
		if ( options && options.miasto ) {
			xPath += '[a[@c="'+options.miasto+'"]]'; 
			searchOptions.miasto = options.miasto;
		} else {
			searchOptions.miasto = false;
		}
		//	sprawdzanie nazwy partnera, nie bierzemy pod uwage wielkości liter 
		strLowerCase='abcdefhijklmnopqrstuvwxyz ĘÓĄŚŁŻŹĆŃ';
		strUpperCase='ABCDEFGHIJKLMNOOPQRSTUVWXYZ ęóąśłżźćń';
		if ( $('#nazwaPartneraInput').val() ) {
			//xPath += '[contains( translate( n, "'+strUpperCase+'", "'+strLowerCase+'" ) , "'+$('#nazwaPartneraInput').val().toLowerCase()+'")]';
			xPath += '[contains( n , "'+$('#nazwaPartneraInput').val()+'")]';
		} 
		
		xml.query(xPath,function(){ 
			echoN('query path = '+xPath);
			echoN('found: '+xml.length());

		
			var ile=xml.length();
			if ( ile ) {
				//	jesli sa w ogole jakies wyniki wyszukiwania... 
				var ileStron = Math.floor((ile/config.wynikowNaStrone))+1;
				var limitMin = 0;
				var limitMax = config.wynikowNaStrone;
				echo('stron : '+ileStron);
				
				//	strona - ustawienie dla stronicowania... :)
				echo('typeof strona... '+typeof strona);
				if ( typeof strona == 'undefined' ) strona = 1;
				echo("strona : "+strona);
				
				if ( strona && f.number.isInteger(strona) ) {
					//	sprawdzamy czy strona miesci sie w zakresie
					strona = parseInt(strona);
					echo('strona...');
					if ( strona <= ileStron ) {
						limitMin = strona*config.wynikowNaStrone-config.wynikowNaStrone;
						limitMax = strona*config.wynikowNaStrone-1;
						echo('limity... '+limitMin+' - '+limitMax);
					}
				} else {
					//	jesli nie przekazano strony lub przekazano bledna, pokaz pierwsza.
					strona = 1;
				}
			
				for (var i=0; i<ile; i++) {
					if ( i>=limitMin && i<=limitMax ) {
						output.append( fpr.getBigBoxPartner(i, searchOptions ).show() );
					} 
					if ( i>limitMax ) break;
				}
			
			
				/* stronicowanie wynikow wyszukiwania */
				if ( ileStron > 1 ) {
					var p = $('<p class="stronicowanie"></p>');
					if ( strona > 1 ) {
						var a = $('<a href="#'+(strona-1)+'" class="szukajStrona poprzednia">'+config.stronicowanie.poprzednia+'</a>').data('strona',strona-1);
					} else {
						var a = $('<span class="poprzednia">'+config.stronicowanie.poprzednia+'</span>');
					}
					p.append(a);
					//	stronicowanie wielu stron wyswietlamy w postaci :
					//	<< poprzednia ... n-2 n-1 n n+1 n+2 ... nastepana >>
					//	gdzie n, jest aktywna obecnie strona
					for (var i=1; i<=ileStron; i++) {
						var kropki = false;
						if ( i == strona ) {
							var a = $('<span>'+i+'</span>');
							p.append(a);
						} 
						//	kropki przed element n-config.ileStronStronicowanie
						if ( i==strona - config.ileStronStronicowanie ) {  
							kropki = $('<span class="kropki">...</span>');
							p.append(kropki);
						} 
						//	wyswietlamy tylko <n-config.ileStronStronicowanie;n+config.ileStronStronicowanie> elementy z listy
						if ( i >= strona-config.ileStronStronicowanie && i <= strona+config.ileStronStronicowanie && i != strona )  {
							var a = $('<a href="#'+i+'" class="szukajStrona">'+i+'</a>').data('strona',i);
							p.append(a);
						}
						//	kropki po elemencie n+config.ileStronStronicowanie
						if ( i==strona + config.ileStronStronicowanie ) {  
							kropki = $('<span class="kropki">...</span>');
							p.append(kropki);
						}
					};
					if ( strona < ileStron ) {
						var a = $('<a href="#'+(strona+1)+'" class="szukajStrona nastepna">'+config.stronicowanie.nastepna+'</a>').data('strona',strona+1);
					} else {
						var a = $('<span class="nastepna">'+config.stronicowanie.nastepna+'</span>');
					}
					p.append(a);
					output.append(p);
				}
				
				var p = $('<p class="info">Znaleziono partnerów: <strong>'+ile+'</strong></p>');
				output.prepend(p);
				
			} else {
			//	obsługa braku wyszukań...
				var div = $('<div></div>').html(config.txt.brakWynikow);
				output.append(div);
			}
			
			$('#wyszukiwanie').hide();
			output.slideDown(300);
			$(window).scrollTo( $('#tab_wyszukiwarka'), 400 ); 

		});
	};

	
	//	podpowiadacz dla inputa z nazwami partnerów 
	podpowiadacz.init( '#nazwaPartneraInput', partners, function(){
		//echo('przekazano '+arguments.length+' argumentow do funkcji');
		echo('wartosc pierwszego : '+arguments[0]);
		wyszukaj({ podpowiadacz: true });
		$('#nazwaPartneraInput').blur();
	}, false );

});
;(function($){var m=$.scrollTo=function(b,h,f){$(window).scrollTo(b,h,f)};m.defaults={axis:'xy',duration:parseFloat($.fn.jquery)>=1.3?0:1};m.window=function(b){return $(window).scrollable()};$.fn.scrollable=function(){return this.map(function(){var b=this,h=!b.nodeName||$.inArray(b.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!h)return b;var f=(b.contentWindow||b).document||b.ownerDocument||b;return $.browser.safari||f.compatMode=='BackCompat'?f.body:f.documentElement})};$.fn.scrollTo=function(l,j,a){if(typeof j=='object'){a=j;j=0}if(typeof a=='function')a={onAfter:a};if(l=='max')l=9e9;a=$.extend({},m.defaults,a);j=j||a.speed||a.duration;a.queue=a.queue&&a.axis.length>1;if(a.queue)j/=2;a.offset=n(a.offset);a.over=n(a.over);return this.scrollable().each(function(){var k=this,o=$(k),d=l,p,g={},q=o.is('html,body');switch(typeof d){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px)?$/.test(d)){d=n(d);break}d=$(d,this);case'object':if(d.is||d.style)p=(d=$(d)).offset()}$.each(a.axis.split(''),function(b,h){var f=h=='x'?'Left':'Top',i=f.toLowerCase(),c='scroll'+f,r=k[c],s=h=='x'?'Width':'Height';if(p){g[c]=p[i]+(q?0:r-o.offset()[i]);if(a.margin){g[c]-=parseInt(d.css('margin'+f))||0;g[c]-=parseInt(d.css('border'+f+'Width'))||0}g[c]+=a.offset[i]||0;if(a.over[i])g[c]+=d[s.toLowerCase()]()*a.over[i]}else g[c]=d[i];if(/^\d+$/.test(g[c]))g[c]=g[c]<=0?0:Math.min(g[c],u(s));if(!b&&a.queue){if(r!=g[c])t(a.onAfterFirst);delete g[c]}});t(a.onAfter);function t(b){o.animate(g,j,a.easing,b&&function(){b.call(this,l,a)})};function u(b){var h='scroll'+b;if(!q)return k[h];var f='client'+b,i=k.ownerDocument.documentElement,c=k.ownerDocument.body;return Math.max(i[h],c[h])-Math.min(i[f],c[f])}}).end()};function n(b){return typeof b=='object'?b:{top:b,left:b}}})(jQuery);
