User:Jeronevw/wiked addon

Custom Table Add
The following code adds a button which shows a div where you can select how many colums x rows a new table must be.

Custom button: wikEdButton[101] = ['tableImg', 'wikEdButton', 'Add custom table', 'http://upload.wikimedia.org/wikipedia/commons/b/bd/WikEd_table.png', '16', '16', 'Add custom table', 'javascript:WikEdEditButton(this, this.id, null, showTableAdd);' ];

Custom function: /*** framework ***/ // used other functions from US_functions, which you can find here: http://userscripts.org/scripts/show/16142 function $isInt(n,way){if(way==true){var reg=/^[0-9]+$/;}else if(way==false){var reg=/^-[0-9]+$/;}else{var reg=/^-?[0-9]+$/;}return reg.test(n.toString);} String.prototype.firstLetterCapital=function{return this.toString.substr(0,1).toUpperCase+this.toString.toLowerCase.substr(1,this.toString.length);};

/*** script ***/ var tableClicked=false; var defXas=5, defYas=4; var curXas=5, curYas=4;

function showTableAdd(obj){ /*    WikEdGetText(obj, 'selection, cursor'); if (obj.selection.plain != '') { obj.changed = obj.selection; }   else { obj.changed = obj.cursor; } */   WikEdGetText(obj, 'cursor'); obj.changed = obj.cursor; obj.changed.plain=" "; obj.changed.keepSel = true; $addCSS("div#tableAdd{position:absolute;border:1px solid gray;background-color:white;}div#tableNote{position:relative;width:auto;background-color:white;text-align:center;}table#tableAddTable{width: auto;height:auto;border-spacing:1px;}#tableAddTable tr{background-color:white;border:1px solid gray;}#tableAddTable td{font-size:1px;border:1px solid gray;background-color:white;width:13px;/* FF&O -> 16px */height:17px;/* FF&O -> 16px */}#tableAddTable td:hover{background-color: #316ac5;}"); drawTable(defXas,defYas); return; }; function drawTable(cols,rows){ if(!$gi('tableAdd')){ var addDivMain=$ce("div"); addDivMain.id="tableAdd"; var addDivDraw=$ce("div"); addDivDraw.id="tableDraw"; var addDivNote=$ce("div"); addDivNote.id="tableNote"; addDivNote.innerHTML=wikEdControlChars[24].firstLetterCapital; var addTbl=$ce("table"); addTbl.id="tableAddTable"; for(i=0;i<rows;i++){5 var addTR=addTbl.insertRow(i); for(j=0;j<cols;j++){ var addTD=addTR.insertCell(j); $ac(addTD,document.createTextNode(' ')); // can't use .innerHTML because of IE bug; $addEvent(addTD,"mouseover",function{highlightCellsOver(this.parentNode.rowIndex,this.cellIndex);}); $addEvent(addTD,"mouseout",function{highlightCellsOut(this.parentNode.rowIndex,this.cellIndex);}); $addEvent(addTD,"mouseup",function{WikEdEditButton(this, this.id, null, addTable);}); $addEvent(addTD,"mousedown",function{highlightDrag(this.parentNode.rowIndex,this.cellIndex);}); }       }        $ac($gi('wikEdButtonsWrapper'),addDivMain); $ac(addDivMain,addDivDraw); $ac(addDivMain,addDivNote); $ac(addDivDraw,addTbl); var tableImgHeight=$isInt($getStyle($gi("tableImg"),"height").replace("px",""))?$getStyle($gi("tableImg"),"height").replace("px",""):16; $gi("tableAdd").style.top=($gi("tableImg").offsetTop + Number(tableImgHeight)) + "px"; $gi("tableAdd").style.left=$gi("tableImg").offsetLeft + "px"; $gi("tableAdd").style.position="absolute"; theTable=$gi("tableAddTable"); tableBody=theTable.tBodies[0]?theTable.tBodies[0]:theTable; }   else { $hs($gi('tableAdd'),3) } }; function insertColumn{ for(var k=0;k<tableBody.rows.length;k++) { oneRow=tableBody.rows[k]; newCell=oneRow.insertCell(0); $ac(newCell,document.createTextNode(' ')); $addEvent(newCell,"mouseover",function{highlightCellsOver(this.parentNode.rowIndex,this.cellIndex);}); $addEvent(newCell,"mouseout",function{highlightCellsOut(this.parentNode.rowIndex,this.cellIndex);}); $addEvent(newCell,"mouseup",function{WikEdEditButton(this, this.id, null, addTable);}); $addEvent(newCell,"mousedown",function{highlightDrag(this.parentNode.rowIndex,this.cellIndex);}); } }; function insertRow{ var oneRowX=tableBody.insertRow(tableBody.rows.length); for(var l=0;l<tableBody.rows[0].cells.length;l++){ newCellX=oneRowX.insertCell(0); $ac(newCellX,document.createTextNode(' ')); $addEvent(newCellX,"mouseover",function{highlightCellsOver(this.parentNode.rowIndex,this.cellIndex);}); $addEvent(newCellX,"mouseout",function{highlightCellsOut(this.parentNode.rowIndex,this.cellIndex);}); $addEvent(newCellX,"mouseup",function{WikEdEditButton(this, this.id, null, addTable);}); $addEvent(newCellX,"mousedown",function{highlightDrag(this.parentNode.rowIndex,this.cellIndex);}); } }; function highlightCellsOut(xas,yas){ for(var mx=0;mx<xas+1;mx++){ for(var ny=0;ny<yas+1;ny++){ tableBody.rows[mx].cells[ny].style.backgroundColor="white"; }   }    tableBody.rows[xas].cells[yas].style.backgroundColor="white"; $gi("tableNote").innerHTML=wikEdControlChars[24].firstLetterCapital;; }; function highlightCellsOver(xas,yas){ curXas=xas; curYas=yas; for(var ox=0;ox<xas+1;ox++){ for(var py=0;py<yas+1;py++){ tableBody.rows[ox].cells[py].style.backgroundColor="green"; }   }    tableBody.rows[xas].cells[yas].style.backgroundColor="green"; $gi("tableNote").innerHTML=(xas+1) + " x " + (yas+1) + " " + wikEdText['wikEdTable title'].toLowerCase; if(tableClicked)highlightDrag(xas,yas); }; function highlightDrag(xas,yas){ tableClicked=true; if(xas==(tableBody.rows.length-1)){ insertRow; }   if(yas==(tableBody.rows[0].cells.length-1)){ insertColumn; } }; function addTable(obj,xas,yas){ if(!xas)xas=curXas; if(!yas)yas=curYas; xas=xas+1; yas=yas+1; tableInput="{| class='wikitable'\n"; tableInput+='|+ ' + wikEdText['table caption'] + ' \n'; tableInput+='! ' + wikEdText['table heading'] + ' '; for(var qy=1;qy<yas;qy++){ tableInput+=' !! ' + wikEdText['table heading'] + ' '; }   tableInput+="\n"; for(var rx=0;rx<xas;rx++){ tableInput+="|-\n"; tableInput+='| ' + wikEdText['table cell'] + ' '; for(var sy=1;sy<yas;sy++){ tableInput+=' || ' + wikEdText['table cell'] + ' '; }       tableInput+="\n"; }   tableInput+="|}"; WikEdGetText(obj, 'selection, cursor'); if (obj.selection.plain != '') { obj.changed = obj.selection; }   else { obj.changed = obj.cursor; }   obj.changed.plain = "\n" + tableInput + "\n"; obj.changed.keepSel = false; $gi("tableAdd").parentNode.removeChild($gi("tableAdd")); tableClicked=false; return; };

Custom Block Quote
The following code adds blockquote.

Custom button: wikEdButton[102] = ['blockquote', 'wikEdButton', 'Adds blockqoute', 'http://img509.imageshack.us/img509/6253/blockquotelw7.png', '16', '16', 'Adds blockqoute', 'javascript:WikEdEditButton(this, this.id, null, addBlockqoute);' ];

Custom function: function addBlockqoute(obj) { WikEdGetText(obj, 'selection, cursor'); if (obj.selection.plain != '') { obj.changed = obj.selection; }   else { obj.changed = obj.cursor; }   obj.changed.plain = '&lt;blockqoute&gt;' + obj.changed.plain + '&lt;/blockqoute&gt;'; obj.changed.keepSel = true; return; }

Custom Signature
The following code adds your signature.

Custom button: wikEdButton[103] = ['signature', 'wikEdButton', 'Add your signature', 'http://img512.imageshack.us/img512/8158/signaturegp1.png', '16', '16', 'Add your signature', 'javascript:WikEdEditButton(this, this.id, null, signature);' ];

Custom function: function signature(obj) { WikEdGetText(obj, 'cursor'); obj.changed = obj.cursor; obj.changed.plain = ' --~'; return; }

Custom Print Page
The following code directs you to the print page.

Custom button: wikEdButton[104] = ['printPage', 'wikEdButton', 'Print orginal page', 'http://img178.imageshack.us/img178/9848/printzw2.png', '16', '16', 'Print orginal page', 'javascript:WikEdEditButton(this, this.id, null, printPage);' ];

Custom function: function printPage{ window.location.href = "http://live.msgdiscovery.com/wiki/index.php?title=" + wikEdWikiGlobals['wgTitle'] + "&printable=yes"; }

Custom Code Tags
The following code adds code tags.

Custom button: wikEdButton[105] = ['codeTags', 'wikEdButton', 'Add code tags', 'http://img98.imageshack.us/img98/3057/codegp5.png', '16', '16', 'Add code tags', 'javascript:WikEdEditButton(this, this.id, null, codeTags);' ];

Custom function: function codeTags(obj){ WikEdGetText(obj, 'selection, cursor'); if (obj.selection.plain != '') { obj.changed = obj.selection; }   else { obj.changed = obj.cursor; }   obj.changed.plain = '&lt;code&gt;' + obj.changed.plain + '&lt;/code&gt;'; obj.changed.keepSel = true; return; }

Custom Pre Tags
The following code adds pre tags.

Custom button: wikEdButton[106] = ['preTags', 'wikEdButton', 'Add pre tags', 'http://img84.imageshack.us/img84/8696/preti8.png', '16', '16', 'Add pre tags', 'javascript:WikEdEditButton(this, this.id, null, preTags);' ];

Custom function: function preTags(obj){ WikEdGetText(obj, 'selection, cursor'); if (obj.selection.plain != '') { obj.changed = obj.selection; }   else { obj.changed = obj.cursor; }   obj.changed.plain = '&lt;pre&gt;' + obj.changed.plain + '&lt;/pre&gt;'; obj.changed.keepSel = true; return; }

Custom Horizontal Line
The following code adds a horizontal line.

Custom button: wikEdButton[107] = ['horLine', 'wikEdButton', 'Add horizontal line', 'http://img146.imageshack.us/img146/2171/horizontallineyy6.png', '16', '16', 'Add horizontal line', 'javascript:WikEdEditButton(this, this.id, null, horLine);' ];

Custom function: function horLine(obj){ WikEdGetText(obj, 'focusLine, cursor'); obj.changed = obj.cursor; if(obj.focusLine.plain==''){ obj.changed.plain = ''; }   else{ obj.changed.plain = '\n'; }   obj.changed.keepSel = false; return; }

Custom Noinclude
The following code adds noinclude tags.

Custom button: wikEdButton[108] = ['noInclude', 'wikEdButton', 'Add noinclude tags', 'http://img239.imageshack.us/img239/9867/noincludeqb0.png', '16', '16', 'Add noinclude tags', 'javascript:WikEdEditButton(this, this.id, null, noInclude);' ];

Custom function: function noInclude(obj){ WikEdGetText(obj, 'selection, cursor'); if (obj.selection.plain != '') { obj.changed = obj.selection; }   else { obj.changed = obj.cursor; }   obj.changed.plain = '&lt;noinclude&gt;' + obj.changed.plain + '&lt;/noinclude&gt;'; obj.changed.keepSel = true; return; }

Custom Includeonly
The following code adds includeonly tags.

Custom button: wikEdButton[109] = ['includeOnly', 'wikEdButton', 'Add includeonly tags', 'http://img412.imageshack.us/img412/948/includeonlych9.png', '16', '16', 'Add includeonly tags', 'javascript:WikEdEditButton(this, this.id, null, includeOnly);' ];

Custom function: function includeOnly(obj){ WikEdGetText(obj, 'selection, cursor'); if (obj.selection.plain != '') { obj.changed = obj.selection; }   else { obj.changed = obj.cursor; }   obj.changed.plain = '&lt;includeonly&gt;' + obj.changed.plain + '&lt;/includeonly&gt;'; obj.changed.keepSel = true; return; }

Custom Hidden Comment
The following code adds a hidden comment.

Custom button: wikEdButton[110] = ['hiddenComment', 'wikEdButton', 'Add a hidden comment', 'http://img138.imageshack.us/img138/3255/hiddencommentsl2.png', '16', '16', 'Add a hidden comment', 'javascript:WikEdEditButton(this, this.id, null, hiddenComment);' ];

Custom function: function hiddenComment(obj){ WikEdGetText(obj, 'selection, cursor'); if (obj.selection.plain != '') { obj.changed = obj.selection; }   else { obj.changed = obj.cursor; }   obj.changed.plain = '&lt;!--' + obj.changed.plain + '--&gt;'; obj.changed.keepSel = true; return; }

Custom Plain Link
The following code adds a plain link.

Custom button: wikEdButton[111] = ['plainLinks', 'wikEdButton', 'Add a plain link', 'http://img523.imageshack.us/img523/7645/linkcj3.png', '16', '16', 'Add a plain link', 'javascript:WikEdEditButton(this, this.id, null, plainLinks);' ];

Custom function: function plainLinks(obj){ WikEdGetText(obj, 'selection, cursor'); if (obj.selection.plain != '') { obj.changed = obj.selection; }   else { obj.changed = obj.cursor; }   obj.changed.plain = '&lt;span class="plainlinks" &gt;' + obj.changed.plain + '&lt;/span&gt;'; obj.changed.keepSel = true; return; }

Custom File
The following code adds a file.

Custom button: wikEdButton[112] = ['addFile', 'wikEdButton', 'Add a file', 'http://img413.imageshack.us/img413/8151/filepl4.png', '16', '16', 'Add a file', 'javascript:WikEdEditButton(this, this.id, null, addFile);' ];

Custom function: function addFile(obj){ WikEdGetText(obj, 'selection, cursor'); if (obj.selection.plain != '') { obj.changed = obj.selection; }   else { obj.changed = obj.cursor; }   obj.changed.plain = '[[Media:' + obj.changed.plain + ']]'; obj.changed.keepSel = true; return; }

Custom Image Gallery
The following code adds an image gallery.

Custom button: wikEdButton[113] = ['imageGallery', 'wikEdButton', 'Add a image gallery', 'http://img247.imageshack.us/img247/5619/imagegalleryop8.png', '16', '16', 'Add a image gallery', 'javascript:WikEdEditButton(this, this.id, null, imageGallery);' ];

Custom function: function imageGallery(obj){ WikEdGetText(obj, 'selection, cursor'); if (obj.selection.plain != '') { obj.changed = obj.selection; }   else { obj.changed = obj.cursor; }   obj.changed.plain = '&lt;gallery&gt;\nImage: Example1.jpg | Caption1 \nImage: Example2.jpg | Caption2 \n&lt;/gallery&gt;'; obj.changed.keepSel = true; return; }

Custom ###
The following code adds ###.

Custom button:

Custom function:

Jeronevw (talk) 15:16, 12 April 2008 (UTC)