/** * mcfilemanager.js * * @author Moxiecode * @copyright Copyright © 2005, Moxiecode Systems AB, All rights reserved. * * This file is to be included on all you pages that integrate with the mcfilemanager. */ function MCFileManager() { // Internal fields this.settings = new Array(); this.inTinyMCE = false; this.callerWindow = null; // Get document base directory path baseDir = document.location.href; if (baseDir.indexOf('?') != -1) baseDir = baseDir.substring(0, baseDir.indexOf('?')); baseDir = baseDir.substring(0, baseDir.lastIndexOf('/') + 1); this.documentBasePath = baseDir; // Default URL options this.settings["document_base_url"] = unescape(baseDir); this.settings["relative_urls"] = false; this.settings["remove_script_host"] = false; this.settings["session_id"] = ""; this.settings["path"] = "mce_clear"; this.settings["rootpath"] = "mce_clear"; this.settings["remember_last_path"] = true; }; MCFileManager.prototype.getScriptPath = function() { var elements = document.getElementsByTagName('script'); var baseDir = this.documentBasePath; for (var i=0; i= strTok2.length) { for (var i=0; i= strTok2.length || strTok1[i] != strTok2[i]) { breakPoint = i + 1; break; } } } if (strTok1.length < strTok2.length) { for (var i=0; i= strTok1.length || strTok1[i] != strTok2[i]) { breakPoint = i + 1; break; } } } if (breakPoint == 1) return url_to_relative; for (var i=0; i<(strTok1.length-(breakPoint-1)); i++) outputString += "../"; for (var i=breakPoint-1; i=0; i--) { if (baseURLParts[i].length == 0) continue; newBaseURLParts[newBaseURLParts.length] = baseURLParts[i]; } baseURLParts = newBaseURLParts.reverse(); // Merge relURLParts chunks var newRelURLParts = new Array(); var numBack = 0; for (var i=relURLParts.length-1; i>=0; i--) { if (relURLParts[i].length == 0 || relURLParts[i] == ".") continue; if (relURLParts[i] == '..') { numBack++; continue; } if (numBack > 0) { numBack--; continue; } newRelURLParts[newRelURLParts.length] = relURLParts[i]; } relURLParts = newRelURLParts.reverse(); // Remove end from absolute path var len = baseURLParts.length-numBack; var absPath = (len <= 0 ? "" : "/") + baseURLParts.slice(0, len).join('/') + "/" + relURLParts.join('/'); var start = "", end = ""; // Build start part if (baseURL['protocol']) start += baseURL['protocol'] + "://"; if (baseURL['host']) start += baseURL['host']; if (baseURL['port']) start += ":" + baseURL['port']; // Build end part if (relURL['query']) end += "?" + relURL['query']; if (relURL['anchor']) end += "#" + relURL['anchor']; // Re-add trailing slash if it's removed if (relative_url.charAt(relative_url.length-1) == "/") end += "/"; return start + absPath + end; }; // Global instance var mcFileManager = new MCFileManager();