diff -r 902822492a68 -r fe660c52c48f includes/clientside/static/enano-lib-basic.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/includes/clientside/static/enano-lib-basic.js Wed Jun 13 16:07:17 2007 -0400 @@ -0,0 +1,328 @@ +/* + * Enano - an open source wiki-like CMS + * Copyright (C) 2006-2007 Dan Fuhry + * Javascript client library + * + * This program is Free Software; you can redistribute and/or modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. + * + * For more information about Enano, please visit http://www.enanocms.org/. + * All of the code in these script files may be used freely so long as the above license block is displayed and your + * modified code is distributed under the GPL. See the page Special:About_Enano on this website for more information. + */ + +if(typeof title != 'string') +{ + alert('Uh-oh! The required dynamic (PHP-generated) Javascript variables don\'t seem to be available. Javascript is going to be seriously broken.'); +} + +// Run-time variables + +var detect = navigator.userAgent.toLowerCase(); +var IE; + +// dummy tinyMCE object +var tinyMCE = new Object(); + +// Detect whether the user is running the Evil One or not... + +function checkIt(string) { + place = detect.indexOf(string) + 1; + thestring = string; + return place; +} +if (checkIt('msie')) IE = true; +else IE = false; + +var cmt_open; +var list; +var edit_open = false; +var catlist = new Array(); +var arrDiff1Buttons = new Array(); +var arrDiff2Buttons = new Array(); +var arrTimeIdList = new Array(); +var list; +var unObj; +var unSelectMenuOn = false; +var unObjDivCurrentId = false; +var unObjCurrentSelection = false; +var userlist = new Array(); +var submitAuthorized = true; +var rDnsObj; +var rDnsBannerObj; +var ns4 = document.layers; +var op5 = (navigator.userAgent.indexOf("Opera 5")!=-1) ||(navigator.userAgent.indexOf("Opera/5")!=-1); +var op6 = (navigator.userAgent.indexOf("Opera 6")!=-1) ||(navigator.userAgent.indexOf("Opera/6")!=-1); +var agt=navigator.userAgent.toLowerCase(); +var mac = (agt.indexOf("mac")!=-1); +var ie = (agt.indexOf("msie") != -1); +var mac_ie = mac && ie; +var mouseX = 0; +var mouseY = 0; +var menuheight; +var inertiabase = 1; +var inertiainc = 1; +var slideintervalinc = 20; +var inertiabaseoriginal = inertiabase; +var heightnow; +var targetheight; +var block; +var slideinterval; +var divheights = new Array(); +var __menutimeout = false; +var startmouseX = false; +var startmouseY = false; +var startScroll = false; +var is_dragging = false; +var current_ta = false; +var startwidth = false; +var startheight = false; +var do_width = false; + +// You have an NSIS coder in your midst... +var MB_OK = 1; +var MB_OKCANCEL = 2; +var MB_YESNO = 4; +var MB_YESNOCANCEL = 8; +var MB_ABORTRETRYIGNORE = 16; +var MB_ICONINFORMATION = 32; +var MB_ICONEXCLAMATION = 64; +var MB_ICONSTOP = 128; +var MB_ICONQUESTION = 256; +var MB_ICONLOCK = 512; + +// Syntax: +// messagebox(MB_OK|MB_ICONINFORMATION, 'Title', 'Text'); +// :-D + +var main_css = document.getElementById('mdgCss').href; +if(main_css.indexOf('?') > -1) { + sep = '&'; +} else sep = '?'; +var _css = false; +var print_css = main_css + sep + 'printable'; + +var shift; + +function makeUrl(page, query, html_friendly) +{ + url = contentPath+page; + if(url.indexOf('?') > 0) sep = '&'; + else sep = '?'; + if(query) + { + url = url + sep + query; + } + if(html_friendly) + { + url = url.replace('&', '&'); + url = url.replace('<', '<'); + url = url.replace('>', '>'); + } + return url; +} + +function makeUrlNS(namespace, page, query, html_friendly) +{ + var url = contentPath+namespace_list[namespace]+(page.replace(/ /g, '_')); + if(url.indexOf('?') > 0) sep = '&'; + else sep = '?'; + if(query) + { + url = url + sep + query; + } + if(html_friendly) + { + url = url.replace('&', '&'); + url = url.replace('<', '<'); + url = url.replace('>', '>'); + } + return append_sid(url); +} + +function strToPageID(string) +{ + // Convert Special:UploadFile to ['UploadFile', 'Special'], but convert 'Image:Enano.png' to ['Enano.png', 'File'] + for(var i in namespace_list) + if(namespace_list[i] != '') + if(namespace_list[i] == string.substr(0, namespace_list[i].length)) + return [string.substr(namespace_list[i].length), i]; + return [string, 'Article']; +} + +function append_sid(url) +{ + sep = ( url.indexOf('?') > 0 ) ? '&' : '?'; + if(ENANO_SID.length > 10) + { + url = url + sep + 'auth=' + ENANO_SID; + sep = '&'; + } + if ( pagepass.length > 0 ) + { + url = url + sep + 'pagepass=' + pagepass; + } + return url; +} + +var stdAjaxPrefix = append_sid(scriptPath+'/ajax.php?title='+title); + +// Code for parsing JSON strings - full source code in json.js +if(!Object.prototype.toJSONString){Array.prototype.toJSONString=function(){var a=['['],b,i,l=this.length,v;function p(s){if(b){a.push(',');} +a.push(s);b=true;} +for(i=0;i= 1000 ) + break; + var _f = onload_hooks[_oLc]; + if ( typeof(_f) == 'function' ) + { + _f(e); + } + } +} + +addOnloadHook(function() { + if ( $_REQUEST['do'] ) + { + var act = $_REQUEST['do']; + switch(act) + { + case 'comments': + ajaxComments(); + break; + case 'edit': + ajaxEditor(); + break; + case 'login': + ajaxStartLogin(); + break; + case 'history': + ajaxHistory(); + break; + case 'catedit': + ajaxCatEdit(); + break; + } + } +}); + + +//*/