1/* Right Context Menu configuration for authenticated users:
2   Menu is built from four array items: title, link, show if page or headpage, show if namespace.
3   Link is not created if it's 0, otherwise it's evaluated.
4   Second array is displayed only in edit mode.
5
6   Some usefull variables:
7   node.hns = headpage id;
8   node.isdir = node is namespace;
9   node.dokuid = the DW id (namespace parent in case of headpage);
10   id = the DW id of the selected node (headpage id in case of headpage);
11   this.config.urlbase = Url Base;
12   this.config.sepchar = Url separator;
13*/
14
15var indexmenu_contextmenu=new Array(
16				    //Standard right menu
17				    new Array(
18					      '<b><em>Page action:</em></b>',0,1,0,
19					      '<b><em>Namespace action:</em></b>',0,0,1,
20					      'New page here','"javascript: indexmenu_reqpage(\'"+this.config.urlbase+"\',\'"+this.config.sepchar+"\',\'"+node.dokuid+"\');"',1,1,
21					      'Headpage here','"javascript: indexmenu_reqpage(\'"+this.config.urlbase+"\',\'"+this.config.sepchar+"\',\'"+node.dokuid+"\',\'"+node.name+"\');"',0,1,
22					      'Edit','indexmenu_getid(this.config.urlbase,id)+"do=edit"',1,0,
23					      'Search','"javascript: indexmenu_srchpage(\'"+this.config.urlbase+"\',\'"+this.config.sepchar+"\',\'"+node.isdir+"\',\'"+node.dokuid+"\');"',1,1,
24					      'Toc preview','"javascript: indexmenu_createTocMenu(\'req=toc&id="+id+"\',\'picker_"+this.obj+"\',\'s"+this.obj+node.id+"\');"',1,0,
25					      'Revisions','indexmenu_getid(this.config.urlbase,id)+"do=revisions"',1,0
26					      ),
27
28				    //Right menu in edit mode.
29				    new Array(
30					      '<b><em>Edit action:</em></b>',0,1,0,
31					      'Insert as DWlink','"javascript: indexmenu_insertTags(\'"+id+"\',\'"+this.config.sepchar+"\');"+this.obj+".divdisplay(\'r\',0);"',1,0
32					      )
33				    );
34
35/*Custom User Functions
36Insert your custom functions here.
37*/
38function indexmenu_reqpage(b,s,id,n) {
39    var r,u=b;
40    if (n) {
41	r = id + s + n;
42    } else {
43	r = prompt("Insert the pagename to create","");
44	if (!r) {return;}
45	r = id + s + r;
46    }
47    if (r) window.location.href = indexmenu_getid(u,r)+"do=edit";
48}
49
50function indexmenu_srchpage(u,s,isdir,nid) {
51    var r = prompt("Insert keyword(s) to search for within this namespace","");
52    if (r)
53        {
54	    var fnid = nid;
55	    if (isdir == "0") {
56		fnid = fnid.substring(0,nid.lastIndexOf(s));
57	    }
58	    var b=u,re = new RegExp(s, 'g');
59	    fnid = fnid.replace(re, ":");
60	    b += (u.indexOf("?id=") < 0) ? '?id=': '';
61	    window.location.href = indexmenu_getid(b,r+" @"+fnid)+"do=search";
62	}
63}
64
65function indexmenu_getid(u,id) {
66    var url=(u||'')+encodeURI(id||'');
67    url += (u.indexOf("?") < 0) ? '?': '&';
68    return url;
69}