/*=: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;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);};}};