User:LikeLakers2/addtool.js

addOnloadHook(function addtool(location2,link2,name2,id2,comment2){ // First, lets check the location.  // Does it equal "p-tb", "toolbox", or "tb"?  if(location2=="p-tb" || location2=="toolbox" || location2=="tb" || location2=='p-tb' || location2=='toolbox' || location2=='tb') {    // If so, define the parameter as "p-tb" and then go to step two.    step2("p-tb",link2,name2,id2,comment2);  }  // Ok, so it does not equal any of those.  // Next, does it equal "p-cactions", "toolbar", or "cactions"?  else if(location2=="p-cactions" || location2=="toolbar" || location2=="cactions" || location2=='p-cactions' || location2=='toolbar' || location2=='cactions') {    // If so, define the parameter as "p-cactions" and then go to step two.    step2("p-cactions",link2,name2,id2,comment2);  }  // So it doesn't equal those?  // Since it doesn't, let us check if it equals "both".  else if(location2=='both' || location2=="both") { // If so, define the parameter as "both" and then go to step two. step2("both",link2,name2,id2,comment2); } // Still nothing? Don't continue. });

// Next is the check to see if both the "link2" and "name2" parameters are defined. function step2(location2,link2,name2,id2,comment2) { // Are both parameters even defined? if(link2 && name2) { // If so, continue to step three. step3(location2,link2,name2,id2,comment2); } // If they are not defined, don't continue. };

// Next, the check to see if "id2" is defined. function step3(location2,link2,name2,id2,comment2) { // Is the "id2" parameter defined? if(id2) { // If so, does it equal "noid"? if(id2=="noid" || id2=='noid') { // If so, define as such and continue to step four. step4(location2,link2,name2,"noid",comment2); }   // It doesnt? Continue to step four with the parameter specified. else { step4(location2,link2,name2,id2,comment2); } }  // Not defined? Set to "noid" and send to step4. else { step4(location2,link2,name2,"noid",comment2); } };

// This checks if the "comment2" parameter exists. function step4(location2,link2,name2,id2,comment2) { // Is it defined? if(comment2) { // If so, send to finalcheck for final parsing. finalcheck(location2,link2,name2,id2,comment2); } // If it is not defined, set to "name2" and send to finalcheck. else { finalcheck(location2,link2,name2,id2,name2); } };

// This is the final processing, after all steps are done. function finalcheck(location2,link2,name2,id2,comment2) { // What is "location2"? if(location2=="p-tb") { // What is "id2"? if(id2=="noid") { // Add it to the toolbox, with id2 being "ca-" plus "name2" plus "-tb". mw.util.addPortletLink("p-tb", link2, name2, "ca-" + name2 + "-tb", comment2, ""); }   else { mw.util.addPortletLink("p-tb", link2, name2, id2, comment2, ""); } }  if(location2=="p-cactions") { // What is "id2"? if(id2=="noid") { // Add it to the cactions bar, with id2 being "ca-" plus "name2". mw.util.addPortletLink("p-cactions", link2, name2, "ca-" + name2, comment2, ""); }   else { mw.util.addPortletLink("p-cactions", link2, name2, id2, comment2, ""); } }  if(location2=="both") { // What is "id2"? if(id2=="noid") { // Add it to both sections. mw.util.addPortletLink("p-tb", link2, name2, "ca-" + name2 + "-tb", comment2, ""); mw.util.addPortletLink("p-cactions", link2, name2, "ca-" + name2, comment2, ""); }   else { mw.util.addPortletLink("p-tb", link2, name2, id2, comment2, ""); mw.util.addPortletLink("p-cactions", link2, name2, id2, comment2, ""); } } };