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, "");

}

}

};