2 require_once('admin.php');
3 header('Content-type: text/javascript; charset=' . get_settings('blog_charset'), true);
5 var ajaxCat = new sack();
8 function newCatAddIn() {
9 if ( !document.getElementById('jaxcat') ) return false;
10 var ajaxcat = document.createElement('span');
11 ajaxcat.id = 'ajaxcat';
13 newcat = document.createElement('input');
15 newcat.name = 'newcat';
18 newcat.setAttribute('autocomplete', 'off');
19 newcat.onkeypress = ajaxNewCatKeyPress;
21 var newcatSub = document.createElement('input');
22 newcatSub.type = 'button';
23 newcatSub.name = 'Button';
24 newcatSub.id = 'catadd';
25 newcatSub.value = '<?php echo addslashes(__('Add')); ?>';
26 newcatSub.onclick = ajaxNewCat;
28 ajaxcat.appendChild(newcat);
29 ajaxcat.appendChild(newcatSub);
30 document.getElementById('jaxcat').appendChild(ajaxcat);
32 howto = document.createElement('span');
33 howto.innerHTML = '<?php echo addslashes(__('Separate multiple categories with commas.')); ?>';
35 ajaxcat.appendChild(howto);
38 addLoadEvent(newCatAddIn);
40 function getResponseElement() {
41 var p = document.getElementById('ajaxcatresponse');
43 p = document.createElement('span');
44 document.getElementById('jaxcat').appendChild(p);
45 p.id = 'ajaxcatresponse';
50 function newCatLoading() {
51 var p = getResponseElement();
52 p.innerHTML = '<?php echo addslashes(__('Sending Data...')); ?>';
55 function newCatLoaded() {
56 var p = getResponseElement();
57 p.innerHTML = '<?php echo addslashes(__('Data Sent...')); ?>';
60 function newCatInteractive() {
61 var p = getResponseElement();
62 p.innerHTML = '<?php echo addslashes(__('Processing Request...')); ?>';
65 function newCatCompletion() {
66 var p = getResponseElement();
68 var ids = new Array();
69 var names = new Array();
71 ids = myPload( ajaxCat.response );
72 names = myPload( newcat.value );
73 for ( i = 0; i < ids.length; i++ ) {
74 id = ids[i].replace(/[\n\r]+/g, "");
76 p.innerHTML = "<?php echo addslashes(__("You don't have permission to do that.")); ?>";
80 p.innerHTML = "<?php echo addslashes(__('That category name is invalid. Try something else.')); ?>";
84 var exists = document.getElementById('category-' + id);
87 var moveIt = exists.parentNode;
88 var container = moveIt.parentNode;
89 container.removeChild(moveIt);
90 container.insertBefore(moveIt, container.firstChild);
91 moveIt.id = 'new-category-' + id;
92 exists.checked = 'checked';
93 var nowClass = moveIt.className;
94 moveIt.className = nowClass + ' fade';
96 moveIt.className = nowClass;
98 var catDiv = document.getElementById('categorychecklist');
99 var newLabel = document.createElement('label');
100 newLabel.setAttribute('for', 'category-' + id);
101 newLabel.id = 'new-category-' + id;
102 newLabel.className = 'selectit fade';
104 var newCheck = document.createElement('input');
105 newCheck.type = 'checkbox';
107 newCheck.name = 'post_category[]';
108 newCheck.id = 'category-' + id;
109 newLabel.appendChild(newCheck);
111 var newLabelText = document.createTextNode(' ' + names[i]);
112 newLabel.appendChild(newLabelText);
114 catDiv.insertBefore(newLabel, catDiv.firstChild);
115 newCheck.checked = 'checked';
118 newLabel.className = 'selectit';
122 p.parentNode.removeChild(p);
123 // var id = parseInt(ajaxCat.response, 10);
126 function ajaxNewCatKeyPress(e) {
134 if (e.keyCode == 13) {
136 e.returnValue = false;
137 e.cancelBubble = true;
142 function ajaxNewCat() {
143 var newcat = document.getElementById('newcat');
144 var split_cats = new Array(1);
147 catString = 'ajaxnewcat=' + encodeURIComponent(newcat.value);
148 ajaxCat.requestFile = 'edit-form-ajax-cat.php';
149 ajaxCat.method = 'GET';
150 ajaxCat.onLoading = newCatLoading;
151 ajaxCat.onLoaded = newCatLoaded;
152 ajaxCat.onInteractive = newCatInteractive;
153 ajaxCat.onCompletion = newCatCompletion;
154 ajaxCat.runAJAX(catString);
157 function myPload( str ) {
158 var fixedExplode = new Array();
159 var comma = new String(',');
161 var currentElement = '';
163 for( x=0; x < str.length; x++) {
164 andy = str.charAt(x);
165 if ( comma.indexOf(andy) != -1 ) {
166 currentElement = currentElement.replace(new RegExp('^\\s*(.*?)\\s*$', ''), '$1'); // trim
167 fixedExplode[count] = currentElement;
171 currentElement += andy;
175 if ( currentElement != "" )
176 fixedExplode[count] = currentElement;