//<![CDATA[

var BrowserDetect = {
	initialize: function () {
		this.browser = this.searchString(this.dataBrowser) || "Nieznana przeglandarka";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "Nieznana wersja";
		this.OS = this.searchString(this.dataOS) || "Nieznany OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{
			string: navigator.userAgent,
			subString: "Chrome",
			identity: "Chrome"
		},
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari",
			versionSearch: "Version"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			   string: navigator.userAgent,
			   subString: "iPhone",
			   identity: "iPhone/iPod"
	    },
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};

function removeElement(id,typ,width,chars) {
/*
  var id_main = id.substr(id.indexOf('_')+1,id.length);
  var main = document.getElementById('edytuj_'+id_main);
  var child = document.getElementById(id_main);
  var tresc = '';
  chars = parseInt(chars);
  var typ = typ.toString();

  if(typ == 'input')
  {tresc = child.value;}
  if(typ == 'textarea')
  {tresc = child.innerHTML;}

  if(BrowserDetect.browser == 'Explorer' && BrowserDetect.version < 8){
	main.onclick = function() {zamien_do_edycji(this,typ,width,chars);};
	}
	else{
  main.removeAttribute('onclick');
  main.setAttribute('onclick','zamien_do_edycji(this,\''+typ+'\',\''+width+'\','+chars+');');
	}

  main.removeChild(child);
	if(navigator.appName != 'Opera'){
	tresc = tresc.replace(/\n(\r){0,}/g, '<br />');
	}
  main.innerHTML = tresc;
  anuluj_edycje(id_main);
  */
  return false;
}

function anuluj_edycje(id)
{
	/*
	document.getElementById('anuluj_'+id).style.display = 'none';
	document.getElementById('zapisz_'+id).style.display = 'none';
	*/
}

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"), "");
}

function htmlspecialchars (string, quote_style, charset, double_encode) {
    // Convert special characters to HTML entities
    //
    // version: 912.1315
    // discuss at: http://phpjs.org/functions/htmlspecialchars
    // +   original by: Mirek Slugen
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   bugfixed by: Nathan
    // +   bugfixed by: Arno
    // +    revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +    bugfixed by: Brett Zamir (http://brett-zamir.me)
    // +      input by: Ratheous
    // +      input by: Mailfaker (http://www.weedem.fr/)
    // +      reimplemented by: Brett Zamir (http://brett-zamir.me)
    // +      input by: felix
    // +    bugfixed by: Brett Zamir (http://brett-zamir.me)
    // %        note 1: charset argument not supported
    // *     example 1: htmlspecialchars("<a href='test'>Test</a>", 'ENT_QUOTES');
    // *     returns 1: '&lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;'
    // *     example 2: htmlspecialchars("ab\"c'd", ['ENT_NOQUOTES', 'ENT_QUOTES']);
    // *     returns 2: 'ab"c&#039;d'
    // *     example 3: htmlspecialchars("my "&entity;" is still here", null, null, false);
    // *     returns 3: 'my &quot;&entity;&quot; is still here'
    var optTemp = 0, i = 0, noquotes= false;
    if (typeof quote_style === 'undefined' || quote_style === null) {
        quote_style = 2;
    }
    string = string.toString();
    if (double_encode !== false) { // Put this first to avoid double-encoding
        string = string.replace(/&/g, '&amp;');
    }
    string = string.replace(/</g, '&lt;').replace(/>/g, '&gt;');

    var OPTS = {
        'ENT_NOQUOTES': 0,
        'ENT_HTML_QUOTE_SINGLE' : 1,
        'ENT_HTML_QUOTE_DOUBLE' : 2,
        'ENT_COMPAT': 2,
        'ENT_QUOTES': 3,
        'ENT_IGNORE' : 4
    };

    if (quote_style === 0) {
        noquotes = true;
    }
    if (typeof quote_style !== 'number') { // Allow for a single string or an array of string flags
        quote_style = [].concat(quote_style);
        for (i=0; i < quote_style.length; i++) {
            // Resolve string input to bitwise e.g. 'PATHINFO_EXTENSION' becomes 4
            if (OPTS[quote_style[i]] === 0) {
                noquotes = true;
            }
            else if (OPTS[quote_style[i]]) {
                optTemp = optTemp | OPTS[quote_style[i]];
            }
        }
        quote_style = optTemp;
    }
    if (quote_style & OPTS.ENT_HTML_QUOTE_SINGLE) {
        string = string.replace(/'/g, '&#039;');
    }
    if (!noquotes) {
        string = string.replace(/"/g, '&quot;');
    }

    return string;
}

function htmlspecialchars_decode (string, quote_style) {
    // Convert special HTML entities back to characters
    //
    // version: 912.1315
    // discuss at: http://phpjs.org/functions/htmlspecialchars_decode
    // +   original by: Mirek Slugen
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   bugfixed by: Mateusz "loonquawl" Zalega
    // +      input by: ReverseSyntax
    // +      input by: Slawomir Kaniecki
    // +      input by: Scott Cariss
    // +      input by: Francois
    // +   bugfixed by: Onno Marsman
    // +    revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   bugfixed by: Brett Zamir (http://brett-zamir.me)
    // +      input by: Ratheous
    // +      input by: Mailfaker (http://www.weedem.fr/)
    // +      reimplemented by: Brett Zamir (http://brett-zamir.me)
    // +    bugfixed by: Brett Zamir (http://brett-zamir.me)
    // *     example 1: htmlspecialchars_decode("<p>this -&gt; &quot;</p>", 'ENT_NOQUOTES');
    // *     returns 1: '<p>this -> &quot;</p>'
    // *     example 2: htmlspecialchars_decode("&amp;quot;");
    // *     returns 2: '&quot;'
    var optTemp = 0, i = 0, noquotes= false;
    if (typeof quote_style === 'undefined') {
        quote_style = 2;
    }
    string = string.toString().replace(/&lt;/g, '<').replace(/&gt;/g, '>');
    var OPTS = {
        'ENT_NOQUOTES': 0,
        'ENT_HTML_QUOTE_SINGLE' : 1,
        'ENT_HTML_QUOTE_DOUBLE' : 2,
        'ENT_COMPAT': 2,
        'ENT_QUOTES': 3,
        'ENT_IGNORE' : 4
    };
    if (quote_style === 0) {
        noquotes = true;
    }
    if (typeof quote_style !== 'number') { // Allow for a single string or an array of string flags
        quote_style = [].concat(quote_style);
        for (i=0; i < quote_style.length; i++) {
            // Resolve string input to bitwise e.g. 'PATHINFO_EXTENSION' becomes 4
            if (OPTS[quote_style[i]] === 0) {
                noquotes = true;
            }
            else if (OPTS[quote_style[i]]) {
                optTemp = optTemp | OPTS[quote_style[i]];
            }
        }
        quote_style = optTemp;
    }
    if (quote_style & OPTS.ENT_HTML_QUOTE_SINGLE) {
        string = string.replace(/&#0*39;/g, "'"); // PHP doesn't currently escape if more than one 0, but it should
        // string = string.replace(/&apos;|&#x0*27;/g, "'"); // This would also be useful here, but not a part of PHP
    }
    if (!noquotes) {
        string = string.replace(/&quot;/g, '"');
    }
    // Put this in last place to avoid escape being double-decoded
    string = string.replace(/&amp;/g, '&');

    return string;
}

//TinyMCE
function toEdit(element,rodzaj,szerokosc,ile_znakow,name)
{
	element = document.getElementById(element);
	if(typeof(element) == 'object')
	{
		switch(rodzaj)
		{
		case 'input':
		if(typeof(ile_znakow) == 'undefined'){ile_znakow = '30';}
			var tresc = trim(element.innerHTML);
			var id_name = element.id.substr(element.id.indexOf('_')+1,element.id.length);
			document.getElementById('img_'+id_name).style.display = 'none';

			var name = ''+name+'['+id_name+']';
			element.innerHTML = '';
			addInput(element,id_name,name,tresc,szerokosc,ile_znakow);
			element.onclick = 'javascript:;';
			document.getElementById('button_'+id_name).style.display = 'inline';
		break;

		case 'textarea':
		if(typeof(ile_znakow) == 'undefined'){ile_znakow = '500';}
			//htmlspecialchars do obslugi TinyMCE
			var tresc = trim(htmlspecialchars(element.innerHTML, 'ENT_QUOTES'));
			var id_name = element.id.substr(element.id.indexOf('_')+1,element.id.length);
			document.getElementById('img_'+id_name).style.display = 'none';

			var name = ''+name+'['+id_name+']';
			element.innerHTML = '';
			addTextarea(element,id_name,name,tresc,szerokosc,ile_znakow);
			element.onclick = 'javascript:;';
			document.getElementById('button_'+id_name).style.display = 'inline';
		break;

		default:
		break;
		}
	}
}

//textarea
function toEdit2(element,rodzaj,szerokosc,ile_znakow,name)
{
	element = document.getElementById(element);
	if(typeof(element) == 'object')
	{
		switch(rodzaj)
		{
		case 'input':
		if(typeof(ile_znakow) == 'undefined'){ile_znakow = '30';}
			var tresc = trim(element.innerHTML);
			var id_name = element.id.substr(element.id.indexOf('_')+1,element.id.length);
			document.getElementById('img_'+id_name).style.display = 'none';

			var name = ''+name+'['+id_name+']';
			element.innerHTML = '';
			addInput(element,id_name,name,tresc,szerokosc,ile_znakow);
			element.onclick = 'javascript:;';
			document.getElementById('button_'+id_name).style.display = 'inline';
		break;

		case 'textarea':
		if(typeof(ile_znakow) == 'undefined'){ile_znakow = '500';}
			//htmlspecialchars do obslugi TinyMCE
			var tresc = trim(htmlspecialchars(element.innerHTML, 'ENT_QUOTES'));
			var id_name = element.id.substr(element.id.indexOf('_')+1,element.id.length);
			document.getElementById('img_'+id_name).style.display = 'none';

			var name = ''+name+'['+id_name+']';
			element.innerHTML = '';
			addTextarea2(element,id_name,name,tresc,szerokosc,ile_znakow);
			element.onclick = 'javascript:;';
			document.getElementById('button_'+id_name).style.display = 'inline';
		break;

		default:
		break;
		}
	}
}

function addInput(element,id_name,name,tresc,szerokosc,ile_znakow) {

	var newElement = document.createElement('input');
	var elementIdName = id_name;
	var elementName = name;

	BrowserDetect.initialize();

	newElement.setAttribute('id',elementIdName);
	newElement.setAttribute('name',elementName);
	newElement.setAttribute('style','width: '+szerokosc+';');

	if(BrowserDetect.browser == 'Explorer' && BrowserDetect.version < 8){
	newElement.onkeydown = function() {limitText(this.id,ile_znakow);};
	newElement.onkeyup = function() {limitText(this.id,ile_znakow);};
	}
	else{
	newElement.setAttribute('onkeydown','limitText(this.id,'+ile_znakow+');');
	newElement.setAttribute('onkeyup','limitText(this.id,'+ile_znakow+');');
	}

	tresc = tresc.replace(/(&amp;){1,}/ig, String.fromCharCode(38));//&

	newElement.setAttribute('value',tresc);
	element.appendChild(newElement);
}

//TinyMCE
function addTextarea(element,id_name,name,tresc,szerokosc,wysokosc,ile_znakow) {

	var newElement = document.createElement('textarea');
	var elementIdName = id_name;
	var elementName = name;

	BrowserDetect.initialize();

	newElement.setAttribute('id',elementIdName);
	newElement.setAttribute('name',elementName);
	newElement.setAttribute('style','width: '+szerokosc+';height: 90px;');
	if(BrowserDetect.browser == 'Explorer' && BrowserDetect.version < 8){
	newElement.onkeydown = function() {limitText(this.id,ile_znakow);};
	newElement.onkeyup = function() {limitText(this.id,ile_znakow);};
	}
	else{
	newElement.setAttribute('onkeydown','limitText(this.id,'+ile_znakow+');');
	newElement.setAttribute('onkeyup','limitText(this.id,'+ile_znakow+');');
	}

	if(BrowserDetect.browser == 'Explorer' && BrowserDetect.version <= 8)
	{

	tresc = htmlspecialchars_decode(tresc,'ENT_QUOTES');

	tresc = tresc.replace(/(<br(\s+)?[\/]?>){1,}/ig, String.fromCharCode(13));//enter
	tresc = tresc.replace(/(&nbsp;)/ig, String.fromCharCode(32));//spacja
	newElement.value = tresc;
	}else{
		if(BrowserDetect.browser == 'Opera')
		{
			newElement.innerHTML = tresc;
		}else
		{
			tresc = tresc.replace(/(<br(\s+)?[\/]?>){1,}/ig, String.fromCharCode(13));//enter
			tresc = tresc.replace(/(&nbsp;)/ig, String.fromCharCode(32));//spacja
			newElement.innerHTML = tresc;
		}
	}

	element.appendChild(newElement);
}

//textarea
function addTextarea2(element,id_name,name,tresc,szerokosc,wysokosc,ile_znakow) {

	var newElement = document.createElement('textarea');
	var elementIdName = id_name;
	var elementName = name;

	BrowserDetect.initialize();

	newElement.setAttribute('id',elementIdName);
	newElement.setAttribute('name',elementName);
	newElement.setAttribute('style','width: '+szerokosc+';height: 90px;');
	if(BrowserDetect.browser == 'Explorer' && BrowserDetect.version < 8){
	newElement.onkeydown = function() {limitText(this.id,ile_znakow);};
	newElement.onkeyup = function() {limitText(this.id,ile_znakow);};
	}
	else{
	newElement.setAttribute('onkeydown','limitText(this.id,'+ile_znakow+');');
	newElement.setAttribute('onkeyup','limitText(this.id,'+ile_znakow+');');
	}

	tresc = htmlspecialchars_decode(tresc,'ENT_QUOTES');
	
	if(BrowserDetect.browser == 'Explorer' && BrowserDetect.version <= 8)
	{
	tresc = tresc.replace(/<br\s*[\/]?>/ig, String.fromCharCode(13));//enter
	tresc = tresc.replace(/(&nbsp;)/ig, String.fromCharCode(32));//spacja
	newElement.value = tresc;
	}
	else{
		if(BrowserDetect.browser == 'Opera')
		{//zmienia <br> na nowa linie
		tresc = htmlspecialchars_decode(tresc,'ENT_QUOTES');
		newElement.innerHTML = tresc;
		}else{//Other
		//zmienia br na znak entera
			tresc = tresc.replace(/<br\s*[\/]?>/ig, String.fromCharCode(13));//enter
			tresc = tresc.replace(/(&nbsp;)/ig, String.fromCharCode(32));//spacja
			newElement.value = tresc;
		}
	}

	element.appendChild(newElement);
}

//textarea limit
function limitText(limitField_id, limitNum) {
	pole = document.getElementById(limitField_id);
	if (pole.value.length > limitNum) {
		//alert('Za dużo znaków');
		pole.value = pole.value.substring(0, limitNum);
	}
}

function pokaz_formularz(id)
{
	if(document.getElementById(id+'_formularz')){
	document.getElementById(id+'_formularz').style.display = 'block';
	document.getElementById(id+'_formularz_text').style.display = 'none';

	document.getElementById('dodaj').style.display = 'inline';
	document.getElementById('ukryj').style.display = 'inline';
	}
}

function ukryj_formularz(id)
{
	if(document.getElementById(id+'_formularz')){
	document.getElementById(id+'_formularz').style.display = 'none';
	document.getElementById('ukryj').style.display = 'none';
	document.getElementById(id+'_formularz_text').style.display = 'inline';
	}
}
//]]>