
/* - kuputabs.js - */
// http://www.mondragon.edu/muplus/portal_javascripts/kuputabs.js?original=1
kuputabs={}
kuputabs.idCounter=0;kuputabs.Tab=function(title,open){this.id=null;this.open=open;this.title=title;this.content=jq('<div class="kuputab-content"><!-- Dynamically generated tab --></div>')}
kuputabs.collectTabs=function(){kuputabs.log("Creating tabs");jq("h2.kuputab-tab-definer, h2.kuputab-tab-definer-default").parent().each(function(){var tabs=[];var collecting=false;var curTab=null;var parent=this;kuputabs.log("Scanning field "+jq(parent).attr("id"));jq(this).contents().each(function(){var t=jq(this);kuputabs.log("Walking "+t.attr("id"));if(t.hasClass("kuputab-tab-definer")||t.hasClass("kuputab-tab-definer-default")){var open=t.hasClass("kuputab-tab-definer-default");kuputabs.log("Making tab"+t.text());var tab=new kuputabs.Tab(t.text(),open)
tabs.push(tab)
curTab=tab;t.removeClass("kuputab-tab-definer");t.removeClass("kuputab-tab-definer-default");parent.removeChild(this)} else{if(curTab!=null){parent.removeChild(this);curTab.content.append(this)}}});var container=kuputabs.constructContainer(tabs);jq(parent).append(container)});kuputabs.log("Found tab count:"+kuputabs.idCounter)}
kuputabs.constructContainer=function(tabs){kuputabs.log("Constructing tab container for tabs "+tabs.length);var cont=jq('<div class="kuputab-container"><!-- Dynamically generated tab  container --></div>');var selectors=jq('<ul class="kuputab-selectors"><!-- Dynamically generated tab selectors --></ul>');var i;if(tabs.length==0){return}
for(i=0;i<tabs.length;i++){var tab=tabs[i];var first=(i==0);var last=(i==tabs.length-1);kuputabs.log("Creating tab selector "+tab.title);tab.id=(kuputabs.idCounter++);var classes="kuputab-selector";if(first){classes+=" kuputab-selector-first"}
if(last){classes+=" kuputab-selector-last"}
var clicker=jq("<li></li>");clicker.attr({"class":classes,"id":"kuputab-selector-"+tab.id});var link=jq("<a></a>");var classes;if(tab.open){classes="selected"} else{classes=""}
link.attr({id:"kuputab-link-"+tab.id,href:"#kuputab-content-"+tab.id,"class":classes});link.append("<span>"+tab.title+"</span>");link.click(kuputabs.click);clicker.append(link);selectors.append(clicker)}
jq('#mikel').append(selectors);for(i=0;i<tabs.length;i++){var tab=tabs[i];var first=(i==0);var last=(i==tabs.length-1);var content=tab.content;content.attr({"id":"kuputab-content-"+tab.id});if(tab.open){} else{tab.content.addClass("hidden")}
cont.append(content)}
return cont}
kuputabs.click=function(e){kuputabs.log("Caught tab selector click event");var elem=jq(e.target);kuputabs.log("Clicked tab "+e.target+" "+elem.get(0).tagName);if(elem.get(0).tagName.toLowerCase()!="a"){elem=elem.parents("a")}
var container=elem.parents(".kuputab-container");var id=elem.attr("id");if(id==null){alert("Invalid tab selector handler "+e.target);return}
id=id.replace(/^kuputab-link-/,"");kuputabs.log("Filtered id "+id);var selectors=jq("li.kuputab-selector a");var panels=jq("div.kuputab-content");kuputabs.log("Matches "+selectors.length+" selectors, "+panels.length+" contents");selectors.removeClass('selected');panels.addClass('hidden');var panel=jq("#kuputab-content-"+id);var selector=jq("#kuputab-selector-"+id+" a");selector.addClass("selected");panel.removeClass("hidden");return false};kuputabs.init=function(){try{if(document.designMode.toLowerCase()=="on"){return} else{kuputabs.collectTabs()}} catch(e){kuputabs._printStackTrace(e)}}
kuputabs.log=function(msg){if(typeof(console)!="undefined"){if(typeof(console.log)!="undefined"){console.log(msg)}}}
kuputabs._printStackTrace=function(exc){
function print(msg){kuputabs.log(msg)}
print(exc);if(!exc.stack){print('no stacktrace available');return};var lines=exc.stack.toString().split('\n');var toprint=[];for(var i=0;i<lines.length;i++){var line=lines[i];if(line.indexOf('ecmaunit.js')>-1){break};if(line.charAt(0)=='('){line='function'+line};var chunks=line.split('@');toprint.push(chunks)};toprint.reverse();for(var i=0;i<toprint.length;i++){print('  '+toprint[i][1]);print('    '+toprint[i][0])};print()}
jq(kuputabs.init);

