function getElement(id, obj)
{
	if (typeof obj == 'undefined')
		obj = document;
	else
		obj = obj.document;

	if (obj.all)
		var element = obj.all[id];
	else if (obj.layers)
		var element = obj.layers[id];
	else if (obj.getElementById)
		var element = obj.getElementById(id);
	else
		return null;

	return element;
}

sprintfWrapper = {

	init : function () {

		if (typeof arguments == 'undefined') { return null; }
		if (arguments.length < 1) { return null; }
		if (typeof arguments[0] != 'string') { return null; }
		if (typeof RegExp == 'undefined') { return null; }

		var string = arguments[0];
		var exp = new RegExp(/(%([%]|(\-)?(\+|\x20)?(0)?(\d+)?(\.(\d)?)?([bcdfosxX])))/g);
		var matches = new Array();
		var strings = new Array();
		var convCount = 0;
		var stringPosStart = 0;
		var stringPosEnd = 0;
		var matchPosEnd = 0;
		var newString = '';
		var match = null;

		while (match = exp.exec(string)) {
			if (match[9]) { convCount += 1; }

			stringPosStart = matchPosEnd;
			stringPosEnd = exp.lastIndex - match[0].length;
			strings[strings.length] = string.substring(stringPosStart, stringPosEnd);

			matchPosEnd = exp.lastIndex;
			matches[matches.length] = {
				match: match[0],
				left: match[3] ? true : false,
				sign: match[4] || '',
				pad: match[5] || ' ',
				min: match[6] || 0,
				precision: match[8],
				code: match[9] || '%',
				negative: parseInt(arguments[convCount]) < 0 ? true : false,
				argument: String(arguments[convCount])
			};
		}
		strings[strings.length] = string.substring(matchPosEnd);

		if (matches.length == 0) { return string; }
		if ((arguments.length - 1) < convCount) { return null; }

		var code = null;
		var match = null;
		var i = null;

		for (i=0; i<matches.length; i++) {

			if (matches[i].code == '%') { substitution = '%' }
			else if (matches[i].code == 'b') {
				matches[i].argument = String(Math.abs(parseInt(matches[i].argument)).toString(2));
				substitution = sprintfWrapper.convert(matches[i], true);
			}
			else if (matches[i].code == 'c') {
				matches[i].argument = String(String.fromCharCode(parseInt(Math.abs(parseInt(matches[i].argument)))));
				substitution = sprintfWrapper.convert(matches[i], true);
			}
			else if (matches[i].code == 'd') {
				matches[i].argument = String(Math.abs(parseInt(matches[i].argument)));
				substitution = sprintfWrapper.convert(matches[i]);
			}
			else if (matches[i].code == 'f') {
				matches[i].argument = String(Math.abs(parseFloat(matches[i].argument)).toFixed(matches[i].precision ? matches[i].precision : 6));
				substitution = sprintfWrapper.convert(matches[i]);
			}
			else if (matches[i].code == 'o') {
				matches[i].argument = String(Math.abs(parseInt(matches[i].argument)).toString(8));
				substitution = sprintfWrapper.convert(matches[i]);
			}
			else if (matches[i].code == 's') {
				matches[i].argument = matches[i].argument.substring(0, matches[i].precision ? matches[i].precision : matches[i].argument.length)
				substitution = sprintfWrapper.convert(matches[i], true);
			}
			else if (matches[i].code == 'x') {
				matches[i].argument = String(Math.abs(parseInt(matches[i].argument)).toString(16));
				substitution = sprintfWrapper.convert(matches[i]);
			}
			else if (matches[i].code == 'X') {
				matches[i].argument = String(Math.abs(parseInt(matches[i].argument)).toString(16));
				substitution = sprintfWrapper.convert(matches[i]).toUpperCase();
			}
			else {
				substitution = matches[i].match;
			}

			newString += strings[i];
			newString += substitution;

		}
		newString += strings[i];

		return newString;

	},

	convert : function(match, nosign){
		if (nosign) {
			match.sign = '';
		} else {
			match.sign = match.negative ? '-' : match.sign;
		}
		var l = match.min - match.argument.length + 1 - match.sign.length;
		var pad = new Array(l < 0 ? 0 : l).join(match.pad);
		if (!match.left) {
			if (match.pad == '0' || nosign) {
				return match.sign + pad + match.argument;
			} else {
				return pad + match.sign + match.argument;
			}
		} else {
			if (match.pad == '0' || nosign) {
				return match.sign + match.argument + pad.replace(/0/g, ' ');
			} else {
				return match.sign + match.argument + pad;
			}
		}
	}
}

sprintf = sprintfWrapper.init;

function sprintf2()
{
   if (!arguments || arguments.length < 1 || !RegExp)
   {
      return;
   }
   var str = arguments[0];
   var re = /([^%]*)%('.|0|\x20)?(-)?(\d+)?(\.\d+)?(%|b|c|d|u|f|o|s|x|X)(.*)/;
   var a = b = [], numSubstitutions = 0, numMatches = 0;
   while (a = re.exec(str))
   {
      var leftpart = a[1], pPad = a[2], pJustify = a[3], pMinLength = a[4];
      var pPrecision = a[5], pType = a[6], rightPart = a[7];

      numMatches++;
      if (pType == '%')
      {
         subst = '%';
      }
      else
      {
         numSubstitutions++;
         if (numSubstitutions >= arguments.length)
         {
            alert('Error! Not enough function arguments (' + (arguments.length - 1)
               + ', excluding the string)\n'
               + 'for the number of substitution parameters in string ('
               + numSubstitutions + ' so far).');
         }
         var param = arguments[numSubstitutions];
         var pad = '';
                if (pPad && pPad.substr(0,1) == "'") pad = leftpart.substr(1,1);
           else if (pPad) pad = pPad;
         var justifyRight = true;
                if (pJustify && pJustify === "-") justifyRight = false;
         var minLength = -1;
                if (pMinLength) minLength = parseInt(pMinLength);
         var precision = -1;
                if (pPrecision && pType == 'f')
                   precision = parseInt(pPrecision.substring(1));
         var subst = param;
         switch (pType)
         {
         case 'b':
            subst = parseInt(param).toString(2);
            break;
         case 'c':
            subst = String.fromCharCode(parseInt(param));
            break;
         case 'd':
            subst = parseInt(param) ? parseInt(param) : 0;
            break;
         case 'u':
            subst = Math.abs(param);
            break;
         case 'f':
            subst = (precision > -1)
             ? Math.round(parseFloat(param) * Math.pow(10, precision))
              / Math.pow(10, precision)
             : parseFloat(param);
            break;
         case 'o':
            subst = parseInt(param).toString(8);
            break;
         case 's':
            subst = param;
            break;
         case 'x':
            subst = ('' + parseInt(param).toString(16)).toLowerCase();
            break;
         case 'X':
            subst = ('' + parseInt(param).toString(16)).toUpperCase();
            break;
         }
         var padLeft = minLength - subst.toString().length;
         if (padLeft > 0)
         {
            var arrTmp = new Array(padLeft+1);
            var padding = arrTmp.join(pad?pad:" ");
         }
         else
         {
            var padding = "";
         }
      }
      str = leftpart + padding + subst + rightPart;
   }
   return str;
}

function gotoURL(url, nowe)
{
	if (typeof nowe == 'undefined' || !nowe)
		window.location.href = url;
	else
		window.open(url);
}

function modul(nazwa)
{
	gotoURL('Modul=' + nazwa);
}

function pokazUkryj(id)
{
	try { getElement(id).style.display = getElement(id).style.display == 'none' ? 'block' : 'none';  } catch(e) { }
}

function pobierzPole(f, p)
{
	for (i = 0; i < f.elements.length; i++)
		if (f.elements[i].name == p)
			return f.elements[i];

	return null;
}

function pobierzPoleRadioWybrane(f, p)
{
	for (i = 0; i < f.elements.length; i++)
		if (f.elements[i].name == p && f.elements[i].checked)
			return f.elements[i];

	return null;
}

function usunZdarzenia(e)
{
	if (e && e.stopPropagation)
		e.stopPropagation();
	else
		event.cancelBubble = true;
}

/* walidacje */

function sprawdzGodzine(czas)
{
	return czas.match(/^[0-9]{1,2}:[0-9]{2}$/) && parseInt(czas.substring(0, 2)) >= 0 && parseInt(czas.substring(0, 2)) < 24;
}

function sprawdzDate(data)
{
	return data.match(/^[0-9]{4}\-[0-9]{2}\-[0-9]{2}$/) || data.match(/^[0-9]{2}\.[0-9]{2}\.[0-9]{4}$/);
}

function sprawdzWiek(dataUrodzenia)
{
	var dzis = Math.floor(new Date().getTime() / 1000 / 60 / 60 / 24);

	if (dataUrodzenia.match(/^[0-9]{4}\-[0-9]{2}\-[0-9]{2}$/))
	{
		var elementy = dataUrodzenia.split('-');

		var data = new Date(elementy[0], elementy[1] - 1, elementy[2]);

		data = Math.floor(data.getTime() / 1000 / 60 / 60 / 24);
	}
	else if (dataUrodzenia.match(/^[0-9]{2}\.[0-9]{2}\.[0-9]{4}$/))
	{
		var elementy = dataUrodzenia.split('.');

		var data = new Date(elementy[2], elementy[1] - 1, elementy[1]);

		data = Math.floor(data.getTime() / 1000 / 60 / 60 / 24);
	}
	else
		var data = dzis;

	return (dzis - data) / 365.25;
}

function sprawdzPESEL(numer)
{
	var i;
	var suma = 0;
	var wagi = [1,3,7,9,1,3,7,9,1,3];

	if (numer.search(/^[0-9]{11}$/) != -1)
	{
		numer = numer.replace(/[^0-9]/g, '');

		for (i = 0; i < wagi.length; i++)
			suma += wagi[i] * parseInt(numer.substr(i, 1));

		return parseInt(numer.substr(wagi.length, 1)) == (10 - suma % 10) % 10;
	}
	else
		return false;
}

function sprawdzNIP(numer)
{
	var i;
	var suma = 0;
	var wagi = [6,5,7,2,3,4,5,6,7];

	if (
		numer.search(/^[0-9]{3}-[0-9]{3}-[0-9]{2}-[0-9]{2}$/) != -1 ||
		numer.search(/^[0-9]{3}-[0-9]{2}-[0-9]{2}-[0-9]{3}$/) != -1 ||
		numer.search(/^[a-zA-Z]{2} [0-9]{3}-[0-9]{3}-[0-9]{2}-[0-9]{2}$/) != -1 ||
		numer.search(/^[a-zA-Z]{2} [0-9]{3}-[0-9]{2}-[0-9]{2}-[0-9]{3}$/) != -1 ||
		numer.search(/^[a-zA-Z]{2}[0-9]{3}-[0-9]{3}-[0-9]{2}-[0-9]{2}$/) != -1 ||
		numer.search(/^[a-zA-Z]{2}[0-9]{3}-[0-9]{2}-[0-9]{2}-[0-9]{3}$/) != -1 ||
		numer.search(/^[0-9]{10}$/) != -1 ||
		numer.search(/^[a-zA-Z]{2} [0-9]{10}$/) != -1 ||
		numer.search(/^[a-zA-Z]{2}[0-9]{10}$/) != -1
		)
	{
		numer = numer.replace(/[^0-9]/g, '');

		for (i = 0; i < wagi.length; i++)
			suma += wagi[i] * parseInt(numer.substr(i, 1));

		return parseInt(numer.substr(wagi.length, 1)) == suma % 11 % 10;
	}
	else
		return false;
}

function sprawdzREGON(numer)
{
	var i;
	var suma = 0;
	var wagi = [];

	wagi[7] = [2,3,4,5,6,7];
	wagi[9] = [8,9,2,3,4,5,6,7]
	wagi[14] = [2,4,8,5,0,9,7,3,6,1,2,4,8];

	if (
		numer.search(/^[0-9]{7}$/) != -1 ||
		numer.search(/^[0-9]{9}$/) != -1 ||
		numer.search(/^[0-9]{14}$/) != -1
		)
	{
		numer = numer.replace(/[^0-9]/g, '');

		for (i = 0; i < wagi[numer.length].length; i++)
			suma += wagi[numer.length][i] * parseInt(numer.substr(i, 1));

		return parseInt(numer.substr(wagi[numer.length].length, 1)) == suma % 11 % 10;
	}
	else
		return false;
}

function sprawdzEmail(email)
{
	return email.match(/^[a-zA-Z0-9\.\-_]+@[a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,}$/);
}

function sprawdzIdentyfikator(ident)
{
	ident = trim(ident);

	return ident.match(/^[a-zA-Z0-9\.\-_ąćęłńóśźżĄĆĘŁŃÓŚŹŻ]+$/);
}

function sprawdzKod(numer)
{
	return numer.match(/^[0-9]{2}\-[0-9]{3}$/);
}

function sprawdzTelefon(numer)
{
	return sprawdzTelefonStacjonarny(numer) || sprawdzTelefonKomorkowy(numer);
}

function sprawdzTelefonStacjonarny(numer)
{
	return numer.match(/^[0-9]{2}\-[0-9]{7}$/) || numer.match(/^[0-9]{9}$/);
}

function sprawdzTelefonKomorkowy(numer)
{
	return numer.match(/^[0-9]{3}\-[0-9]{6}$/) || numer.match(/^[0-9]{9}$/);
}

function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
}

function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

/* siła hasła */

function silaHasla(haslo)
{
	var len = haslo.length;

	var litery_male = 0;
	var litery_duze = 0;
	var cyfry = 0;
	var inne = 0;

	for (var i = 0; i < haslo.length; i++)
	{
		if (haslo.substr(i, 1).match(/[a-z]/))
			litery_male++;
		if (haslo.substr(i, 1).match(/[A-Z]/))
			litery_duze++;
		if (haslo.substr(i, 1).match(/[0-9]/))
			cyfry++;
		if (haslo.substr(i, 1).match(/[^a-zA-Z0-9\ ]/))
			inne++;
	}

	var zestawy = 0;
	var punkty = 0;
	var mozliwePunkty = 4 + 1 + 3 + 3 + 5 + 16;

	if (litery_male > 0)
	{
		zestawy++;
		punkty += 1;
	}

	if (litery_duze > 0)
	{
		zestawy++;
		punkty += 3;
	}

	if (cyfry > 0)
	{
		zestawy++;
		punkty += 3;
	}

	if (inne > 0)
	{
		zestawy++;
		punkty += 5;
	}

	punkty += zestawy;
	punkty += len > 16 ? 16 : len;

	return Math.floor(100 * punkty / mozliwePunkty);
}

function ustalSile(haslo, miernik)
{
	var sila = silaHasla(haslo);

	var kolory = [];
	kolory[10] = '#00FF00';
	kolory[9] = '#22FF00';
	kolory[8] = '#44FF00';
	kolory[7] = '#88FF00';
	kolory[6] = '#CCFF00';
	kolory[5] = '#FFFF00';
	kolory[4] = '#FFCC00';
	kolory[3] = '#FF8800';
	kolory[2] = '#FF4400';
	kolory[1] = '#FF2200';
	kolory[0] = '#FF0000';

	getElement(miernik).style.width = sila + 'px';

	getElement(miernik).style.background = kolory[Math.floor(sila / 10)];
}

function dodajDoUlubionych(domena, nazwa)
{
	if (window.external)
		window.external.AddFavorite('http://www.' + domena, nazwa);
	else
		alert('Twoja przeglądarka nie umożliwia dodawania do ulubionych!');
}

function preloadMenu()
{
	var imgs = ['btn_forum', 'btn_kontakt', 'btn_narzedzia', 'btn_o_nas', 'btn_oferta', 'btn_publikacje_prawne'];


	for (var i = 0; i < imgs.length; i++)
	{
		var img = new Image();
		img.src = sprintf('/gfx/strona/%s_wybrany.jpg', imgs[i]);
	}
}

if (!Array.prototype.indexOf)
{
  Array.prototype.indexOf = function(elt /*, from*/)
  {
    var len = this.length;

    var from = Number(arguments[1]) || 0;
    from = (from < 0)
         ? Math.ceil(from)
         : Math.floor(from);
    if (from < 0)
      from += len;

    for (; from < len; from++)
    {
      if (from in this &&
          this[from] === elt)
        return from;
    }
    return -1;
  };
}

function usunPolskieZnaki(value)
{
	value = value.replace(/ą/g, 'a');
	value = value.replace(/ć/g, 'c');
	value = value.replace(/ę/g, 'e');
	value = value.replace(/ł/g, 'l');
	value = value.replace(/ń/g, 'n');
	value = value.replace(/ó/g, 'o');
	value = value.replace(/ś/g, 's');
	value = value.replace(/ż/g, 'z');
	value = value.replace(/ź/g, 'z');
	value = value.replace(/Ą/g, 'A');
	value = value.replace(/Ć/g, 'C');
	value = value.replace(/Ę/g, 'E');
	value = value.replace(/Ł/g, 'L');
	value = value.replace(/Ń/g, 'N');
	value = value.replace(/Ó/g, 'O');
	value = value.replace(/Ś/g, 'S');
	value = value.replace(/Ż/g, 'Z');
	value = value.replace(/Ź/g, 'Z');

	return value;
}

function zmienNaMaleZnaki(value)
{
	var charsFrom = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'R', 'S', 'T', 'U', 'W', 'X', 'Y', 'Z'];
	var   charsTo = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'w', 'x', 'y', 'z'];

	for(var i=0; i<charsFrom.length; i++)
	{
		value = value.replace(charsFrom[i], charsTo[i]);
	}

	return value;
}

function formatujTelefonTypF(telefon, typ)
{
	// var s = '-';
	var s = '';
	var stacjonarne = [12, 13, 14, 15, 16, 17, 18, 22, 23, 24, 25, 29, 30, 32, 33, 34, 38, 39, 41, 42, 43, 44, 46, 48, 52, 54, 55, 56, 58, 59, 61, 62, 63, 65, 67, 68, 71, 74, 75, 76, 77, 81, 82, 83, 84, 85, 86, 87, 89, 91, 94, 95];

	telefon = telefon.replace(/[^0-9]/g, '');
	telefon = telefon.substr(0, 9);

	if (telefon.length != 9)
		return telefon;

	switch(typ)
	{
		case 'k':
			telefon = telefon.substr(0, 3) + s + telefon.substr(3, 3) + telefon.substr(6, 3);
			break;
		case 's':
			telefon = telefon.substr(0, 2) + s + telefon.substr(2, 3) + telefon.substr(5, 2) + telefon.substr(7, 2);
			break;
		default:
			if (stacjonarne.indexOf(parseInt(telefon.substring(0, 2))) == -1)
				telefon = telefon.substr(0, 3) + s + telefon.substr(3, 3) + telefon.substr(6, 3);
			else
				telefon = telefon.substr(0, 2) + s + telefon.substr(2, 3) + telefon.substr(5, 2) + telefon.substr(7, 2);
			break;
	}

	return telefon;
}

function formatujTelefon(telefon)
{
	return formatujTelefonTypF(telefon, '');
}

function formatujTelefonKomorkowy(telefon)
{
	return formatujTelefonTypF(telefon, 'k');
}

function formatujTelefonStacjonarny(telefon)
{
	return formatujTelefonTypF(telefon, 's');
}

function formatujIdentyfikator(identyfikator)
{
	var pattern_a = /[ _.]/g;
	var pattern_b = /[^a-z^0-9^-]/g;

	identyfikator = usunPolskieZnaki(identyfikator);
	identyfikator = identyfikator.toLowerCase();
	// identyfikator = zmienNaMaleZnaki(identyfikator);
	identyfikator = identyfikator.replace(pattern_a, '-');
	identyfikator = identyfikator.replace(pattern_b, '');

	return identyfikator;
}

function urlEncodeCharacter (c)
{
	return '%' + c.charCodeAt(0).toString(16);
}

function urlDecodeCharacter (str, c)
{
	return String.fromCharCode(parseInt(c, 16));
}

function urlEncode ( s )
{
      return encodeURIComponent( s ).replace( /\%20/g, '+' ).replace( /[!'()*~]/g, urlEncodeCharacter );
}

function urlDecode ( s )
{
      return decodeURIComponent(s.replace( /\+/g, '%20' )).replace( /\%([0-9a-f]{2})/g, urlDecodeCharacter);
}

/* wyszukaj zaawansowanie - góra */

var canGoToMain = true;

var wyszukajZaawGoraWyswietlone = false;

function wyszukajZaawGora()
{
	if(wyszukajZaawGoraWyswietlone)
	{
		wyszukajZaawGora_ukryj();
		wyszukajZaawGoraWyswietlone = false;
	}
	else
	{
		wyszukajZaawGora_pokaz();
		wyszukajZaawGoraWyswietlone = true;
	}
	document.location = '#top_wyszukajzaaw';
}

function wyszukajZaawGora_pokaz()
{
	try { getElement('informacja_konto').style.visibility = 'hidden'; } catch(e) { }
	try { getElement('sh_zmien_kryteria').style.visibility = 'hidden'; } catch(e) { }
	try { getElement('sh_ostatnie_wyniki').style.visibility = 'hidden'; } catch(e) { }
	try { getElement('shsr_gorneszukaj').src = getElement('shsr_gorneszukaj').src.replace('_hide.gif', '_visible.gif'); } catch(e) { }
	try { getElement('top_wyszukajzaaw').style.visibility = 'visible'; } catch(e) { }
	try { getElement('pasek_nawigacji').style.top = 254; } catch(e) { }
	try { getElement('header_part').style.height = '260px'; } catch(e) { } // forum !!!
	try { getElement('div_main').className = "shadvVisible"; } catch(e) { }
	try { getElement('div_main_banner').style.height = '240px'; } catch(e) { }
	try { getElement('div_newmain_banner').style.height = '228px'; } catch(e) { }
	try { getElement('zglos_awarie_btn').className = 'b_zglos_offsetTop'; } catch(e) { } // +128
}

function wyszukajZaawGora_ukryj()
{
	try { getElement('informacja_konto').style.visibility = 'visible'; } catch(e) { }
	try { getElement('sh_zmien_kryteria').style.visibility = 'visible'; } catch(e) { }
	try { getElement('sh_ostatnie_wyniki').style.visibility = 'visible'; } catch(e) { }
	try { getElement('shsr_gorneszukaj').src = getElement('shsr_gorneszukaj').src.replace('_visible.gif', '_hide.gif'); } catch(e) { }
	try { getElement('top_wyszukajzaaw').style.visibility = 'hidden'; } catch(e) { }
	try { getElement('pasek_nawigacji').style.top = 154; } catch(e) { }
	try { getElement('header_part').style.height = '170px'; } catch(e) { } // forum !!!
	try { getElement('div_main').className = "shadvHidden"; } catch(e) { }
	try { getElement('div_main_banner').style.height = '138px'; } catch(e) { }
	try { getElement('div_newmain_banner').style.height = '100px'; } catch(e) { }
	try { getElement('zglos_awarie_btn').className = 'b_zglos'; } catch(e) { }
}

var shsr_slowodefault = ""; // musi być ustawione gdzieś w szablonie

shsrformSubmit = function(ret)
{
	var slowo = getElement('szukaj_slowo');
	var lokalizacja = getElement('szukaj_lokalizacja');

	if(slowo.value == shsr_slowodefault)
		slowo.value = '';

	// czyszczenie formularza, jeśli kryteria zwinięte
	if(!wyszukajZaawGoraWyswietlone)
	{
		var slowomem = slowo.value;

		try { getElement('sh_szukaj_nazwa').value = ""; } catch(e) { }
		try { getElement('shr_select_profesje').value = ""; } catch(e) { }
		try { getElement('sh_id_wojewodztwa').value = ""; } catch(e) { }
		try { getElement('sh_szukaj_miasto').value = ""; } catch(e) { }
		try { getElement('shr_select_specjalizacje').value = ""; } catch(e) { }
		try { getElement('sh_szukaj_ulica').value = ""; } catch(e) { }

		slowo.value = slowomem;
	}

	if(wyszukajZaawGoraWyswietlone || (slowo.value != ''))
	{
		getElement('shsrform').submit();
		if(ret) return true;
	}
	else
	{
		alert("Proszę podać słowo do wyszukania \nlub przejść do wyszukiwania zaawansowanego");
		slowo.value = shsr_slowodefault;
		if(ret) return false;
	}
}

String.prototype.trim = function()
{
	var value = this;

	while (value.substring(0,1) == ' ')
	{
		value = value.substring(1, value.length);
	}
	while (value.substring(value.length-1, value.length) == ' ')
	{
		value = value.substring(0, value.length-1);
	}
	return value;
}

DivZwinRozwin = function(id, tekstUkryte, tekstNieukryte, ukryte)
{
	this.id = id;
	this.tekstUkryte = tekstUkryte != '' ? tekstUkryte : 'ukryj';
	this.tekstNieukryte = tekstNieukryte != '' ? tekstNieukryte : 'pokaż';

	this.ustaw(ukryte);
}

DivZwinRozwin.prototype.pokaz = function(cObj, cObjA)
{
	cObjA.innerHTML = this.tekstNieukryte;
	cObj.style.height = '';
	cObj.style.visibility = 'visible';
}

DivZwinRozwin.prototype.ukryj = function(cObj, cObjA)
{
	cObjA.innerHTML = this.tekstUkryte;
	cObj.style.height = '5px';
	cObj.style.visibility = 'hidden';
}

DivZwinRozwin.prototype.przelacz = function()
{
	var tekstUkryte = this.tekstUkryte;
	var tekstNieukryte = this.tekstNieukryte;
	var cObj = document.getElementById(this.id);
	var cObjA = document.getElementById(this.id + '_a');

	if((typeof(cObj) == 'object') && (typeof(cObjA) == 'object'))
	{
		switch(cObjA.innerHTML)
		{
			case tekstUkryte:
				this.pokaz(cObj, cObjA);
				break;

			case tekstNieukryte:
				this.ukryj(cObj, cObjA);
				break;
		}
	}
}

DivZwinRozwin.prototype.ustaw = function(ukryte)
{
	var cObj = document.getElementById(this.id);
	var cObjA = document.getElementById(this.id + '_a');

	if((typeof(cObj) == 'object') && (typeof(cObjA) == 'object'))
	{
		cObjA.href = 'javascript: zw_uwaga.przelacz()';
		cObjA.onfocus = function() { cObjA.blur(); }

		if(ukryte) this.ukryj(cObj, cObjA);
		else this.pokaz(cObj, cObjA);
	}
}


DivZakladki = function(id, zakladki, wybrana, akcja)
{
	this.id = id;
	this.wybrana = '';
	this.zakladki = {};
    this.akcje = akcja;

	try
	{
		var mnObj = document.getElementById(this.id + '_naglowki');
		mnObj.style.clear = 'both';
		mnObj.style.height = '23px';
	}
	catch(e)
	{ }

	for(var i=0; i<zakladki.length; i++)
	{
		this.zakladki[zakladki[i]] = zakladki[i];

		try
		{
			var hObj = document.getElementById(this.id + '_' + zakladki[i]);
			hObj.onclick = this.h_przelacz(this, zakladki[i]);
			hObj.style.display = 'block';
			try { hObj.style.cssFloat = 'left'; } catch(e) { } /* firefox etc. */
			try { hObj.style.styleFloat = 'left'; } catch(e) { } /* ie etc. */
			hObj.style.height = '16px';
			hObj.style.width = '140px';
			hObj.style.padding = '3px';
			hObj.style.paddingLeft = '5px';
			hObj.style.paddingRight = '5px';
			hObj.style.cursor = 'pointer';
		}
		catch(e)
		{ }
	}

	this.przelacz(wybrana);
}

DivZakladki.prototype.przelacz = function(zakladka)
{
	if(zakladka == this.wybrana) return;
    
    // Wczytywanie historii zmian do zakładki
    if(this.akcje.nazwa == zakladka)
    {
        this.akcje.akcja('utabs_tab_' + zakladka, this.akcje.id_wizytowki);   
    }

	try
	{
		for(var z in this.zakladki)
		{
			var hObj = document.getElementById(this.id + '_' + z);
			var zObj = document.getElementById(this.id + '_tab_' + z);
			if(zakladka == z)
			{
				this.wybrana = z;
				hObj.className = 'wybrana';
				zObj.style.height = '';
				zObj.style.visibility = 'visible';
			}
			else
			{
				hObj.className = 'niewybrana';
				zObj.style.height = '0px';
				zObj.style.visibility = 'hidden';
			}
		}
	}
	catch(e)
	{ }
}

DivZakladki.prototype.h_przelacz = function(zkObj, zakladka)
{
	return function() { zkObj.przelacz(zakladka); }
}

function historiaZmian(obj, id_wizytowki)
{
    $("#"+obj).html("<img src=\"/gfx/strona/ikona_preload.gif\">");
    $("#"+obj).load("/moduly/WebService/AjaxHistoriaZmian.php", {id_wizytowki: id_wizytowki}, function()
    {
        var otwarte = false;
        // Pokazywanie / ukrywanie historii
        $("[id^='hz_']").click(function()
        {
            id = $(this).attr("id").split("_");
            $("#hu_"+id[1]).toggle();
        });  
        
        $("#rozwin").click(function()
        {
            if(!otwarte)
            {
                $("[id^='hu_']").show();
                $(this).val("Zwiń wszystkie"); 
                otwarte = true;               
            }
            else
            {
                $("[id^='hu_']").hide();
                $(this).val("Rozwiń wszystkie");
                otwarte = false;
            }                       
        });
    });
}


function slowaKluczowe(idWizytowki)
{
    if($("#slowaKluczowe").css("display") == "none")
    {
        $("<div style='text-align:center' id='prld'><img src='/gfx/strona/ikona_preload.gif'></div>").insertBefore("#slowaKluczowe");
        $("#slowaKluczowe").load("/moduly/WebService/AjaxSlowaKluczowe.php", {idWizytowki:idWizytowki,akcja:'wczytaj'}, function()
        {
            $("#prld").remove();
            $("#slowaKluczowe").slideDown(500);
            $("#slowaKluczowe textarea").autogrow();
        });        
    }
}

function zapiszSlowaKluczowe(idWizytowki)
{
    dane = $("#slowaKluczowe textarea").serialize();
    $("#slowaKluczowe").load("/moduly/WebService/AjaxSlowaKluczowe.php", {idWizytowki:idWizytowki,akcja:'zapisz',dane:dane}, function()
    {
    });        
}

function wstawSlowaKluczowe()
{
    $("[name='wizytowka_slowa_kluczowe[1]']").html($("#slowaDefault").html().replace(/,/g,"\n"));    
    $("[name='wizytowka_slowa_kluczowe[1]']").trigger("focus");
    $("[name='wizytowka_slowa_kluczowe[1]']").trigger("keyup"); 
}

(function(jQuery) {
          
    var self = null;
 
    jQuery.fn.autogrow = function(o)
    {    
        return this.each(function() {
            new jQuery.autogrow(this, o);
        });
    };
    

    /**
     * The autogrow object.
     *
     * @constructor
     * @name jQuery.autogrow
     * @param Object e The textarea to create the autogrow for.
     * @param Hash o A set of key/value pairs to set as configuration properties.
     * @cat Plugins/autogrow
     */
    
    jQuery.autogrow = function (e, o)
    {
        this.dummy              = null;
        this.interval           = null;
        this.line_height    = 0, parseInt(jQuery(e).css('line-height'));
        if(this.line_height == NaN)
          this.line_height = 0;
        this.min_height        = parseInt(jQuery(e).css('min-height'));
        this.options          = o;
        this.textarea          = jQuery(e);
        
        // Only one textarea activated at a time, the one being used
        this.init();
    };
    
    jQuery.autogrow.fn = jQuery.autogrow.prototype = {
    autogrow: '1.1'
  };
    
     jQuery.autogrow.fn.extend = jQuery.autogrow.extend = jQuery.extend;
    
    jQuery.autogrow.fn.extend({
                         
        init: function() {            
            var self = this;            
            this.textarea.css({overflow: 'hidden', display: 'block'});
            this.textarea.bind('focus', function() { self.startExpand() } ).bind('blur', function() { self.stopExpand });
            this.checkExpand();    
        },
                         
        startExpand: function() {                
          var self = this;
            this.interval = window.setInterval(function() {self.checkExpand()}, 400);
        },
        
        stopExpand: function() {
            clearInterval(this.interval);    
        },
        
        checkExpand: function() {
            
            if (this.dummy == null)
            {
                this.dummy = jQuery('<div></div>');
                this.dummy.css({
                                                'font-size'  : this.textarea.css('font-size'),
                                                'font-family': this.textarea.css('font-family'),
                                                'width'      : this.textarea.css('width'),
                                                'padding'    : this.textarea.css('padding'),
                                                'line-height': this.textarea.css('line-height'),
                                                'overflow-x' : 'hidden',
                                                'display'    : 'none',
                                                'position'   : 'absolute',
                                                'top'        : 0,
                                                'left'       : '-9999px'
                                                }).appendTo('body');
            }
            
            
            var html = this.textarea.val().replace(/\n/g, '<br>new');
            
            if (this.dummy.html() != html)
            {
                this.dummy.html(html);    
                
                if (this.textarea.height() != this.dummy.height() + this.line_height + 18)
                {
                    this.textarea.animate({height: (this.dummy.height() + this.line_height + 18) + 'px'}, 100);    
                }
  
            }
        }
                         
     });
})(jQuery);

function listaIdentyfikatorow(idPrawnika, delet)
{
    $("#listID").load("/moduly/WebService/AjaxIdentyfikatory.php", {idPrawnika: idPrawnika, delet: delet}, function()
    {
        $("#listID").show();
    });
}

function copyField(src,dst)
{
    $("[rel='"+dst+"']").val($("[rel='"+src+"']").val());
    $("[rel='"+dst+"']").trigger("focus");
}
