
/* - listjs.js - */
// http://www.kariery.uek.krakow.pl/portal_javascripts/listjs.js?original=1
if(typeof Z3C=="undefined"||!Z3C){var Z3C={}}
Z3C.namespace=function(name){var ns=Z3C;var parts=name.split(".");if(parts[0]=="Z3C"){parts=parts.slice(1)}
for(var i=0;i<parts.length;i++){var part=parts[i];ns[part]=ns[part]||{};ns=ns[part]}
return ns};(function(){Z3C.namespace('listjs');var disconnected_editor_ids=[];var startswith=function(s,prefix){return(s.substring(0,prefix.length)==prefix)};var isNumber=function(o){return typeof o==='number'&&isFinite(o)};var renumber=function(s,nr){var i;var fragment;var fragments=s.split('.');var result=[];for(i=0;i<fragments.length;i++){fragment=fragments[i];if(isNumber(parseInt(fragment))){result[result.length]=nr.toString()} else if(startswith(fragment,'remove_')){result[result.length]='remove_'+nr.toString()} else{result[result.length]=fragment}};return result.join('.')};var renumberScript=function(s,nr,prefix){var tomatch=new RegExp(prefix+'[^"\']*','g');var potentials=s.match(tomatch);if(potentials==null){return s}
var original=potentials[0];var renumbered=renumber(original,nr);return s.replace(original,renumbered)};var getElementsByClassName=function(class_name,root_el,tag){tag=tag||'*';var result=[];var elements=root_el.getElementsByTagName(tag);for(var i=0,len=elements.length;i<len;++i){if(elements[i].className==class_name){result[result.length]=elements[i]}}
return result};var updateNumbers=function(el,nr,prefix){if(el.nodeType!=1){return}
if(el.tagName.toLowerCase()=='script'){el.text=renumberScript(el.text,nr,prefix);return}
var i;var attributes=['id','name','for'];for(i=0;i<attributes.length;i++){var attr=el.getAttribute(attributes[i]);if(attr&&startswith(attr,prefix)){el.setAttribute(attributes[i],renumber(attr,nr))}}
var onclick_attr=el.getAttribute('onclick');if(onclick_attr){var napis=new String(onclick_attr)
onclick_attr=napis.replace(/\n/g,',');onclick_attr=napis.replace(/\s/g,' ').replace(/  ,/g,',');el.setAttribute('onclick',renumberScript(onclick_attr,nr,prefix))}
var node=el.firstChild;while(node){updateNumbers(node,nr,prefix);node=node.nextSibling}};var updateAllNumbers=function(prefix){var table_el=document.getElementById(prefix+'.table');var els=getElementsByClassName('list_item',table_el,'tr');var i;for(i=0;i<els.length;i++){updateNumbers(els[i],i,prefix);runScripts(els[i])}
var count_el=document.getElementById(prefix+'.count');count_el.value=els.length};var disconnectEditors=function(affected_elements){if(tinyMCE){disconnected_editor_ids=[];for(var n in tinyMCE.editors){var inst=tinyMCE.editors[n];if(!inAffectedElements(inst.getElement(),affected_elements)){continue}
disconnected_editor_ids.push(inst.id);tinyMCE.execCommand('mceFocus',false,inst.id);tinyMCE.execCommand('mceRemoveControl',false,inst.id)}}};var reconnectEditors=function(){if(tinyMCE){for(i=0;i<disconnected_editor_ids.length;i++){var editor_id=disconnected_editor_ids[i];if(!tinyMCE.get(editor_id)){tinyMCE.execCommand('mceAddControl',false,editor_id)}}}};var inAffectedElements=function(el,affected_elements){for(var i=0;i<affected_elements.length;i++){if(isAncestor(affected_elements[i],el)){return true}}
return false};var isAncestor=function(a,b){while(b){if(a===b){return true}
b=b.parentNode}
return false}
var runScripts=function(e){if(e.nodeType!=1){return}
if(e.tagName.toLowerCase()=='script'){if(window.execScript){window.execScript(e.text)} else{with(window){window.eval(e.text)}}} else{var n=e.firstChild;while(n){if(n.nodeType==1){runScripts(n)}
n=n.nextSibling}}};Z3C.listjs.add=function(prefix){var table_el=document.getElementById(prefix+'.table');var template_el=document.getElementById(prefix+'.template');var template_text=template_el.value;var buttons_el=document.getElementById(prefix+'.buttons');var new_tr=document.createElement('tr');new_tr.className='list_item';buttons_el.parentNode.insertBefore(new_tr,buttons_el);var td1=document.createElement('td');var td2=document.createElement('td');var td3=document.createElement('td');new_tr.appendChild(td1);new_tr.appendChild(td2);new_tr.appendChild(td3);var cb=document.createElement('input');cb.className='editcheck';cb.type='checkbox';cb.name=prefix+'.remove_0';td1.appendChild(cb);td2.innerHTML=template_text;var div_up=document.createElement('div');var div_down=document.createElement('div');var a_up=document.createElement('a');var a_down=document.createElement('a');a_up.className='up_button';a_down.className='down_button';a_up.onclick=function(){Z3C.listjs.up(prefix,this)};a_down.onclick=function(){Z3C.listjs.down(prefix,this)};updateAllNumbers(prefix)};Z3C.listjs.remove=function(prefix){var table_el=document.getElementById(prefix+'.table');var els=getElementsByClassName('editcheck',table_el,'input');var i;var to_remove=[];for(i=0;i<els.length;i++){if(els[i].checked){to_remove[to_remove.length]=els[i].parentNode.parentNode}}
for(i=0;i<to_remove.length;i++){to_remove[i].parentNode.removeChild(to_remove[i])}
updateAllNumbers(prefix)};Z3C.listjs.up=function(prefix,el){while(el.className!='list_item'){el=el.parentNode}
var previous_el=el.previousSibling;while(previous_el!=null&&previous_el.className!='list_item'){previous_el=previous_el.previousSibling}
if(previous_el==null){return}
disconnectEditors([el,previous_el]);previous_el.parentNode.insertBefore(el,previous_el);updateAllNumbers(prefix);reconnectEditors()};Z3C.listjs.down=function(prefix,el){while(el.className!='list_item'){el=el.parentNode}
var next_el=el.nextSibling;while(next_el!=null&&next_el.className!='list_item'){next_el=next_el.nextSibling}
if(next_el==null){return}
disconnectEditors([el,next_el]);next_el.parentNode.insertBefore(el,next_el.nextSibling);updateAllNumbers(prefix);reconnectEditors()}})();

