1jQuery (function() {
2      jQuery("input.xtern_info_but").click(function() {
3             jQuery("div#xtern_info" ).toggle();
4			var current_val =  jQuery("input.xtern_info_but").attr('value');
5			if(current_val ==  LANG.plugins.xtern.info_show)  {
6				   jQuery("input.xtern_info_but").attr('value',LANG.plugins.xtern.info_close);
7			}
8			else {
9				 jQuery("input.xtern_info_but").attr('value',LANG.plugins.xtern.info_show);
10			}
11        });
12
13      var in_admin = 0;
14      if(window.location.search.match(/do=admin/)) {
15		  in_admin =1;
16	  }
17
18      var selector = "#dokuwiki__content a";  //default
19     if(JSINFO && JSINFO['xtern_selector'])  {
20        selector = JSINFO['xtern_selector'] ;
21     }
22
23	  jQuery(selector).each (function( index ) {
24	 if(in_admin) return;
25     if(JSINFO && JSINFO['xtern_disable']) return;
26     if(JSINFO && JSINFO['xtern_skip']) return;
27     var _class = jQuery(this).attr('class');
28     if(typeof _class == 'undefined') return;
29     if(!_class.match(/extern/)) return;
30     var lnk = jQuery( this );
31      var prev = jQuery( this ).prev();
32	   var _url  = jQuery( this ).attr('href');
33	  _url = encodeURI(_url);
34
35		var request = jQuery.ajax({
36             url: _url,
37             url: DOKU_BASE + 'lib/exe/ajax.php',
38             data: {
39                call: 'extern_url',
40                url:  _url
41             },
42		    dataType: "html"
43		});
44
45		jQuery.when(request).done(function( data ,status) {
46			if(data =="200" || data == '301' || data == '302') {
47              lnk.removeClass(_class).addClass( "xtern_xtrn" );
48			}
49			else if( (data.match(/^4\d\d/))) {
50                var title;
51                switch (data) {
52                     case "400":
53                         title = '400: Bad Request';
54                         break;
55                    case "401":
56                         title = '401: Unauthorized';
57                         break;
58                    case "402":
59                         title = '402: Payment Required';
60                         break;
61                    case "403":
62                         title = '403: Forbidden';
63                         break;
64                    case "404":
65                         title = '404:  Not Found';
66                         break;
67                    case "405":
68                         title = '405: Method Not Allowed';
69                         break;
70                    case "406":
71                         title = '406: Not Acceptable';
72                         break;
73                    case "407":
74                         title = '407: Proxy Authentication Required (RFC 7235)';
75                         break;
76                    case "408":
77                        title = '408: Request Timeout';
78                         break;
79                    case "495":
80                         title = '495: SSL Certificate Error';
81                         break;
82                    default:
83                         title=LANG.plugins.xtern.restricted;
84                         break;
85                }
86			    lnk.attr('title', title);
87				lnk.removeClass(_class).addClass( "xtern_noaccess" );
88			}
89			else {
90                if(data == "NOCURL") return;
91                 lnk.removeClass(_class).addClass( "xtern_broken" );
92			}
93		});
94  });
95 });