?
Path : /home/admin/public_html/old/js/ |
Current File : /home/admin/public_html/old/js/sifr-debug.js |
/*=:project scalable Inman Flash Replacement (sIFR) version 3, revision 436. Provides debug information about sIFR. =:file Copyright: 2006 Mark Wubben. Author: Mark Wubben, <http://novemberborn.net/> =:license * This software is licensed and provided under the CC-GNU LGPL * See <http://creativecommons.org/licenses/LGPL/2.1/> */ sIFR.debug = new function() { function Errors() { this.fire = function(id) { if(this[id + 'Alert']) alert(this[id + 'Alert']); throw new Error(this[id]); }; this.isFile = 'sIFR: Did not activate because the page is being loaded from the filesystem.'; this.isFileAlert = 'Hi!\n\nThanks for using sIFR on your page. Unfortunately sIFR couldn\'t activate, because it was loaded ' + 'directly from your computer.\nDue to Flash security restrictions, you need to load sIFR through a web' + ' server.\n\nWe apologize for the inconvenience.'; }; sIFR.errors = new Errors(); function log(msg) { if(!sIFR.ua.safari && window.console && console.log) console.log(msg); else alert(msg); } this.ua = function() { var info = []; for(var prop in sIFR.ua) { if(sIFR.ua[prop] == Object.prototype[prop]) continue; info.push(prop, ': ', sIFR.ua[prop], '\n'); } log(info.join('')); }; this.domains = function() { if(sIFR.domains.length == 0) { log('No domain verification used.'); return; } var domain = sIFR.util.domain(); var matches = [], nonMatches = []; for(var i = 0; i < sIFR.domains.length; i++) { var match = sIFR.domains[i]; if(sIFR.util.domainMatches(domain, match)) matches.push(match); else nonMatches.push(match); } var msg = ['The domain "', domain, '"']; if(matches.length > 0) msg.push(' matches:\n* ', matches.join('\n* ')); if(matches.length > 0 && nonMatches.length > 0) msg.push('\nbut'); if(nonMatches.length > 0) msg.push(' does not match:\n* ', nonMatches.join('\n* ')); log(msg.join('')); }; this.ratios = function(kwargs, mergeKwargs) { if(mergeKwargs) kwargs = sIFR.util.copyProperties(kwargs, mergeKwargs); if(!kwargs.selector && !kwargs.elements) { log('Cannot calculate ratios, no selector or element given.'); return; } delete kwargs.wmode; delete kwargs.transparent; delete kwargs.opaque; if (kwargs.css) { kwargs.css = sIFR.util.convertCssArg(kwargs.css); sIFR.util.extractFromCss(kwargs.css, '.sIFR-root', 'leading', true); } var running = false; kwargs.onReplacement = function(cb) { if(running) return; // Prevent duplicate results running = true; sIFR.debug.__ratiosCallback[cb.id] = function(ratios) { ratios = '[' + ratios.join(', ') + ']'; setTimeout(function() { var before = new Date(); prompt('The ratios for ' + kwargs.selector + ' are:', ratios); if(sIFR.ua.ie && before - new Date < 200) { alert("Press Control+C to copy the text of this alert box. Then paste it into your favorite text editor.\n" + "The numbers between the braces, including the braces, are the ratios. You have to add those to your sIFR configuration.\n\n" + "Tip: try calculating the ratios in Firefox instead, it'll be easier to copy the ratios.\n\n" + ratios); } cb.resetMovie(); }, 0); }; cb.call('calculateRatios'); }; sIFR.replace(kwargs); }; this.__ratiosCallback = function(id, ratios) { if(this.__ratiosCallback[id]) this.__ratiosCallback[id](ratios); }; function verifyResource(uri, fail, ok) { if(sIFR.ua.ie && uri.charAt(0) == '/') { uri = window.location.toString().replace(/([^:]+)(:\/?\/?)([^\/]+).*/, '$1$2$3') + uri; } var xhr = new XMLHttpRequest(); xhr.open('GET', uri, true); xhr.onreadystatechange = function() { if(xhr.readyState == 4) { if(xhr.status != 200) log(fail); else log(ok); } }; xhr.send(''); } this.test = function(kwargs, mergeKwargs) { kwargs = merge(kwargs, mergeKwargs); var src = kwargs.src; var checked = false; if(typeof(src) != 'string') { if(src.src) src = src.src; if(typeof(src) != 'string') { var versions = []; for(var version in src) if(src[version] != Object.prototype[version]) versions.push(version); versions.sort().reverse(); var result = ''; var i = -1; while(!result && ++i < versions.length) { if(parseFloat(versions[i]) <= ua.flashVersion) result = src[versions[i]]; var msg = '<' + src[versions[i]] + '>, flash ' + parseFloat(versions[i]); verifyResource(src[versions[i]], 'FAILED: ' + msg, 'OK: ' + msg); } src = result; checked = true; } } if(!src) log('Could not determine appropriate source.'); else if(!checked) verifyResource(src, 'FAILED: <' + src + '>', 'OK: <' + src + '>'); }; this.forceTest = function() { var replace = sIFR.replace; sIFR.replace = function(kwargs, mergeKwargs) { sIFR.debug.test(kwargs, mergeKwargs); replace.call(sIFR, kwargs, mergeKwargs); }; } };