/* generated javascript */
var skin = 'fnpnew';
var stylepath = '/skins';

/* MediaWiki:Common.js */
/* Umieszczony tutaj kod JavaScript zostanie załadowany przez każdego użytkownika, podczas każdego ładowania strony. */

function revisionLicenseSelectorCheck() {
  if (document.getElementById("wpLicense")) {
    var l = document.getElementById("wpLicense");
    
    if (l.options[ l.options.selectedIndex ].text.indexOf("podaj źródło") > -1) {
      document.getElementById("revisionLicensesSource").style.display = "block";
    } else {
      document.getElementById("revisionLicensesSource").style.display = "none";
    }
  }
}

addOnloadHook(function() { if (document.getElementById("revisionLicensesSource")) { document.getElementById("revisionLicensesSource").style.display = "none"; } });

/* Kod dla Przypis.php */
if (wgCanonicalNamespace == "Lektury") addOnloadHook(przypisy);

function przypisy() {
	var toolbar = document.getElementById('toolbar');
	if (!toolbar) { return false; }

	var textbox = document.getElementById('wpTextbox1');
	if (!textbox) { return false; }

	// Don't generate buttons for browsers which don't fully
	// support it.
	if (!document.selection && textbox.selectionStart === null) {
		return false;
	}

	var extra_buttons = document.createElement("div");
	document.getElementById("bodyContent").insertBefore(extra_buttons, toolbar.nextSibling);

	toolbar.style.display = "none";
	
	var span = document.createElement("span");
	span.innerHTML = "Przyciski edytorskie:";
	extra_buttons.appendChild(span);
	
	var span = document.createElement("span");
	span.innerHTML = "&nbsp;Zaznacz tekst i ";
	extra_buttons.appendChild(span);
	
	var motyw = document.createElement("button");
	motyw.innerHTML = "wybierz motyw";
	motyw.onclick = function() {
		showMotywForm();
		return false;
	};
	
	extra_buttons.appendChild(motyw);
	
	var span = document.createElement("span");
	span.innerHTML = ".&nbsp;Kliknij w tekście i ";
	extra_buttons.appendChild(span);
	
	var przypis = document.createElement("button");
	przypis.innerHTML = "wstaw przypis";
	przypis.onclick = function() {
		insertTags("<pe>", "</pe>", "Przykładowa treść przypisu");
		return false;
	}
	
	extra_buttons.appendChild(przypis);

	var motyws = document.createElement("form");
	motyws.id = "motyws";
	document.getElementById("txtcontent").appendChild(motyws);
}

function showMotywForm() {
	if (document.editform) {
		var txtarea = document.editform.wpTextbox1;
	} else {
		// some alternate form? take the first one we can find
		var areas = document.getElementsByTagName('textarea');
		var txtarea = areas[0];
	}
	
	if (document.selection  && !is_gecko) {
		var theSelection = document.selection.createRange().text;
		if (!theSelection) {
			alert("Musisz wybrać tekst, do którego chcesz przypisać motyw!");
			return false;
		}
	// Mozilla
	} else if(txtarea.selectionStart || txtarea.selectionStart == '0') {
		var startPos = txtarea.selectionStart;
		var endPos = txtarea.selectionEnd;
		var myText = (txtarea.value).substring(startPos, endPos);
		if (!myText) {
			alert("Musisz wybrać tekst, do którego chcesz przypisać motyw!");
			return false;
		}
	}
	
	var motyws = document.getElementById("motyws");
	
	var list = document.createElement("ul");

	var chosen = new Object();
	
	for(i=0;i<motywy.length;i++) {
		var item = document.createElement("li");
		item.id = "motyw_"+ i;
		list.appendChild(item);
		
		var label = document.createElement("label");
		label.htmlFor = "motyw_check_"+ i;
		item.appendChild(label);
		
		var checkbox = document.createElement("input");
		checkbox.type = "checkbox";
		checkbox.id = "motyw_check_"+i;
		checkbox.value = "motyw_"+ i;
		checkbox.name = "motyw_add[]";
		label.appendChild(checkbox);
		
		label.innerHTML += motywy[i];
	}

	motyws.appendChild(list);
	
	motyws.onsubmit = function(e) {
		e.returnValue = false;
		e.preventDefault();
		e.cancelBubble = true;
		e.stopPropagation();
		
		return false;
	}
	
	var submit = document.createElement("button");
	submit.id = "submit";
	submit.innerHTML = "Dodaj motywy";
	submit.onclick = function(e) {
		var cboxes = document.getElementById("motyws").getElementsByTagName("input");
		var motyws_add = new Array();
		var j = 0;
		
		for(i=0;i<cboxes.length;i++) {
			if (cboxes[i].type == "checkbox" && cboxes[i].checked == true) {
				motyws_add[j] = cboxes[i].parentNode.lastChild.nodeValue;
				j++;
			}
		}
		
		if (motyws_add.length > 0 ) {
			insertMotywTag( motyws_add.join(", ") );
		}
		
		document.getElementById("motyws").innerHTML = "";
		document.getElementById("motyws").style.display = "none";
		return false;
	}
	
	motyws.appendChild(submit);

	var cancel = document.createElement("button");
	cancel.id = "cancel";
	cancel.innerHTML = "Anuluj";
	cancel.onclick = function(e) {
		document.getElementById("motyws").innerHTML = "";
		document.getElementById("motyws").style.display = "none";
		return false;
	}

	motyws.appendChild(cancel);
	
	motyws.style.display = "block";
}

function insertMotywTag(motyw) {
	var txtarea;

	var timestamp = new Date().getTime();

	var tagOpen = "<begin id='b"+ timestamp +"' /><motyw id='m"+ timestamp +"'>"+ motyw +"</motyw>";
	var tagClose = "<end id='e"+ timestamp +"' />";

	if (document.editform) {
		txtarea = document.editform.wpTextbox1;
	} else {
		// some alternate form? take the first one we can find
		var areas = document.getElementsByTagName('textarea');
		txtarea = areas[0];
	}

	// IE
	if (document.selection  && !is_gecko) {
		var theSelection = document.selection.createRange().text;
		if (!theSelection) {
			alert("Musisz wybrać tekst, do którego chcesz przypisać motyw!");
			return false;
		}
		txtarea.focus();
		if (theSelection.charAt(theSelection.length - 1) == " ") { // exclude ending space char, if any
			theSelection = theSelection.substring(0, theSelection.length - 1);
			document.selection.createRange().text = tagOpen + theSelection + tagClose + " ";
		} else {
			document.selection.createRange().text = tagOpen + theSelection + tagClose;
		}

	// Mozilla
	} else if(txtarea.selectionStart || txtarea.selectionStart == '0') {
		var replaced = false;
		var startPos = txtarea.selectionStart;
		var endPos = txtarea.selectionEnd;
		if (endPos-startPos) {
			replaced = true;
		}
		var scrollTop = txtarea.scrollTop;
		var myText = (txtarea.value).substring(startPos, endPos);
		if (!myText) {
			alert("Musisz wybrać tekst, do którego chcesz przypisać motyw!");
			return false;
		}
		var subst;
		if (myText.charAt(myText.length - 1) == " ") { // exclude ending space char, if any
			subst = tagOpen + myText.substring(0, (myText.length - 1)) + tagClose + " ";
		} else {
			subst = tagOpen + myText + tagClose;
		}
		txtarea.value = txtarea.value.substring(0, startPos) + subst +
			txtarea.value.substring(endPos, txtarea.value.length);
		txtarea.focus();
		//set new selection
		if (replaced) {
			var cPos = startPos+(tagOpen.length+myText.length+tagClose.length);
			txtarea.selectionStart = cPos;
			txtarea.selectionEnd = cPos;
		} else {
			txtarea.selectionStart = startPos+tagOpen.length;
			txtarea.selectionEnd = startPos+tagOpen.length+myText.length;
		}
		txtarea.scrollTop = scrollTop;

	// All other browsers get no toolbar.
	// There was previously support for a crippled "help"
	// bar, but that caused more problems than it solved.
	}
	// reposition cursor if possible
	if (txtarea.createTextRange) {
		txtarea.caretPos = document.selection.createRange().duplicate();
	}
	

}


/*
  Poprawka funkcji tabelkowych
*/
function ts_parseFloat(num) {
        if (!num) return 0;
        num = parseFloat(num.replace(/,/g, ".").replace(/[\xa0]/g, ""));
        return (isNaN(num) ? 0 : num);
}
 
function ts_resortTable(lnk) {
        // get the span
        var span = lnk.getElementsByTagName('span')[0];
 
        var td = lnk.parentNode;
        var tr = td.parentNode;
        var column = td.cellIndex;
 
        var table = tr.parentNode;
        while (table && !(table.tagName && table.tagName.toLowerCase() == 'table'))
                table = table.parentNode;
        if (!table) return;
 
        // Work out a type for the column
        if (table.rows.length <= 1) return;
 
        // Skip the first row if that's where the headings are
        var rowStart = (table.tHead && table.tHead.rows.length > 0 ? 0 : 1);
 
        var itm = "";
        for (var i = rowStart; i < table.rows.length; i++) {
                if (table.rows[i].cells.length > column) {
                        itm = ts_getInnerText(table.rows[i].cells[column]);
                        itm = itm.replace(/^[\s\xa0]+/, "").replace(/[\s\xa0]+$/, "");
                        if (itm != "") break;
                }
        }
 
        sortfn = ts_sort_caseinsensitive;
        if (itm.match(/^\d\d[\/. -][a-zA-Z]{3}[\/. -]\d\d\d\d$/))
                sortfn = ts_sort_date;
        if (itm.match(/^\d\d[\/.-]\d\d[\/.-]\d\d\d\d$/))
                sortfn = ts_sort_date;
        if (itm.match(/^\d\d[\/.-]\d\d[\/.-]\d\d$/))
                sortfn = ts_sort_date;
        if (itm.match(/^[\u00a3$\u20ac]/)) // pound dollar euro
                sortfn = ts_sort_currency;
        if (itm.match(/^[\d.,\xa0]+\%?$/))
                sortfn = ts_sort_numeric;
 
        var reverse = (span.getAttribute("sortdir") == 'down');
 
        var newRows = new Array();
        for (var j = rowStart; j < table.rows.length; j++) {
                var row = table.rows[j];
                var keyText = ts_getInnerText(row.cells[column]);
                var oldIndex = (reverse ? -j : j);
 
                newRows[newRows.length] = new Array(row, keyText, oldIndex);
        }
 
        newRows.sort(sortfn);
 
        var arrowHTML;
        if (reverse) {
                        arrowHTML = '<img src="'+ ts_image_path + ts_image_down + '" alt="ˇ"/>';
                        newRows.reverse();
                        span.setAttribute('sortdir','up');
        } else {
                        arrowHTML = '<img src="'+ ts_image_path + ts_image_up + '" alt="^"/>';
                        span.setAttribute('sortdir','down');
        }
 
        // We appendChild rows that already exist to the tbody, so it moves them rather than creating new ones
        // don't do sortbottom rows
        for (var i = 0; i < newRows.length; i++) {
                if ((" "+newRows[i][0].className+" ").indexOf(" sortbottom ") == -1)
                        table.tBodies[0].appendChild(newRows[i][0]);
        }
        // do sortbottom rows only
        for (var i = 0; i < newRows.length; i++) {
                if ((" "+newRows[i][0].className+" ").indexOf(" sortbottom ") != -1)
                        table.tBodies[0].appendChild(newRows[i][0]);
        }
 
        // Delete any other arrows there may be showing
        var spans = getElementsByClassName(tr, "span", "sortarrow");
        for (var i = 0; i < spans.length; i++) {
                spans[i].innerHTML = '<img src="'+ ts_image_path + ts_image_none + '" alt="ˇ"/>';
        }
        span.innerHTML = arrowHTML;
 
        ts_alternate(table);            
}


/* image hack */

addOnloadHook(hook_imageLinks);

var size = Array (320, 640, 800, 1024, 1200, 1600, 2048);

function hook_imageLinks () {
	if (wgNamespaceNumber != 6) {
		return 0;
	}

	var ul = document.getElementById("filetoc");
	if (!ul)
	{
		return 0;
	}
	var div = document.getElementById("file");
	var img = div.getElementsByTagName("img")[0];
	var width = img.getAttribute ("width");
	var height = img.getAttribute ("height");
	var prop = img.height / img.width;

	var test = document.getElementsByTagName("span");
	var span;
	for (var i = 0; i < test.length; i++) {
		if (test[i].className = "fileInfo") {
			span = test[i];
		}
	}
//	var rex = /\d+ x \d+/gi;
//	alert (span.firstChild.nodeValue.match(rex));
	
	for (var i = 0; i < size.length; i++)
	{
		if (i == 0) {
			ul.appendChild(document.createElement("br"));
		}
		var li = document.createElement("li");
		var a = document.createElement("a");
		var h = Math.floor ( size[i]*prop)
		a.innerHTML = size[i] + "x" + h + "px";
		a.href = wgScriptPath + "/thumb.php?f=" + encodeURIComponent(wgTitle) + "&w=" + size[i]; 
		li.appendChild(a);
		ul.appendChild(li);
	}

}
/* image hack */



/* AJAX discussion */

edittime = 1;

addOnloadHook(hook_wpSave);

function hook_wpSave ()
{
	if (wgNamespaceNumber % 2 ==0) {
		return 0;
	}
	var button = document.getElementById("wpSave");
	if (!button) {
		return 0;
	}
	button.onclick = hack_wpSave;
	var msg = document.getElementById("editpage-copywarn");
	if (msg) {
		msg.parentNode.removeChild(msg);
	}
	var tresc = document.getElementById("wpTextbox1");
	tresc.setAttribute("rows", 10);
	tresc.setAttribute("cols", 10);
}

function hack_wpSave () {
	var opis = document.getElementById("wpSummary");
		var opistxt = opis.value;
		opis.value="";
	var tresc = document.getElementById("wpTextbox1");
	tresc.value = "<div class='forumpost'><div class='forumtitle'>" +
			opistxt + 
			"</div><div class='forumsignature'>" +
			" " + "~~" + "~~" +
			"</div><div class='forumcontent'>" + 
			tresc.value + "</div></div>";
//	alert("złapany");
	if (1) {
		tresc.value = starttext + "\n" + tresc.value;
	}
//	alert("złapany");
}

addOnloadHook(hack_edit);

function hack_edit () {
	if (wgNamespaceNumber % 2 ==0) {
		return 0;
	}
	var edit = document.getElementById("ca-edit");
	if (edit) {
		edit.parentNode.removeChild(edit);
		var plus = document.getElementById("ca-addsection");
		plus.childNodes[0].innerHTML = 'dodaj post';
	}
}

addOnloadHook(start_ajax);

function start_ajax () {
	if (wgNamespaceNumber % 2 ==0) {
		return 0;
	}
	if (document.getElementById("wpSave")) {
		if (wgNamespaceNumber == 131) {
			is_ajax = 1;
			hook_wpSave();
		}
		return 0;
	}
	test = create_xmlHTTP();
	username = encodeURIComponent (wgUserName);
	pagename = encodeURIComponent (wgPageName);
	test.open ("GET", wgScriptPath + "/api.php?action=query&prop=info&intoken=edit&titles=" + pagename + "&format=xml", true);
	test.onreadystatechange = handle_response;
	test.send(null);

	test2 = create_xmlHTTP();
	test2.open ("GET", wgScriptPath + "/api.php?action=query&prop=revisions&rvprop=timestamp&titles=" + pagename + "&format=xml", true);
	test2.onreadystatechange = handle_response2;
	test2.send(null);
}

function create_xmlHTTP () {
	if (window.ActiveXObject) {
		xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else {
		xmlHttp = new XMLHttpRequest();
	}
	return xmlHttp
}

function handle_response () {
	if (test.readyState == 4 && test.status == 200) {
//		eval ( "var response = (" + test.responseXML + ");" );
		edittoken = test.responseXML.getElementsByTagName('page')[0].getAttribute('edittoken');
		var form = document.createElement('div');
		var content = document.getElementById('txtcontent');
		form.innerHTML = '<form id="editform" class="ajax" name="editform" method="post" action="'+ wgScriptPath +'/index.php?title='+ encodeURIComponent (wgPageName) + '&amp;action=submit" enctype="multipart/form-data"><input type="hidden" value="new" name="wpSection" /><input tabindex="1" type="hidden" value="" name="wpSummary" id="wpSummary" maxlength="200" size="60"/><textarea tabindex="1" accesskey="," name="wpTextbox1" id="wpTextbox1" rows="15" cols="40" ></textarea><input id="wpSave" name="wpSave" type="submit" tabindex="5" value="Dodaj" accesskey="s" title="Save your changes [s]" /> <input type="hidden" value="' + edittoken + '" name="wpEditToken" /><input type="hidden" value="20080423180913" name="wpStarttime" /><input type="hidden" value="' + edittime +'" name="wpEdittime" /></form>';
		content.appendChild(form);
		is_ajax = 1;
		hook_wpSave();
	}
}

function handle_response2 () {
	if (test2.readyState == 4 && test2.status == 200) {
		edittime = test2.responseXML.getElementsByTagName('rev')[0].getAttribute("timestamp");
		var rex = /[-:TZ]/g;
		edittime = edittime.replace (rex, "");
		var input = document.getElementsByName("wpEdittime")[0];
		if (input) {
			input.value = edittime;
		}
	}
}


/* AJAX discussion */

/* MediaWiki:Fnpnew.js (deprecated; migrate to Common.js!) */
