/*****************************************************************************
It is adviced to place the sIFR JavaScript calls in this file, keeping it
separate from the `sifr.js` file. That way, you can easily swap the `sifr.js`
file for a new version, while keeping the configuration.

You must load this file *after* loading `sifr.js`.

That said, you're of course free to merge the JavaScript files. Just make sure
the copyright statement in `sifr.js` is kept intact.
*****************************************************************************/

// Make an object pointing to the location of the Flash movie on your web server.
// Try using the font name as the variable name, makes it easy to remember which
// object you're using. As an example in this file, we'll use Futura.
var HelveticaNeue55Roman = { src: '/swf/Helvetica-Neue-55-Roman.swf' };
var HelveticaNeueCE45Light = { src: '/swf/Helvetica-CE-45-Light.swf' };
var HelveticaNeue45Light = { src: '/swf/Helvetica-Neue-45-Light.swf' };
var HelveticaNeue35Thin = { src: '/swf/Helvetica-Neue-35-Thin.swf' };
var HelveticaNeue47LightCon = { src: '/swf/Helvetica-Neue-47-Light-Con.swf' };
var HelveticaNeue77 = { src: '/swf/Helvetica-Neue-77.swf' };
var IBMHelvCondLight = { src: '/swf/IBMHelvCondLight.swf' };
var IBMHelvCondReg = { src: '/swf/IBMHelvCondReg.swf' };
var IBMHelvetica2004 = { src: '/swf/IBMHelvetica2004.swf' };
var IBMHelveticaLight = { src: '/swf/IBMHelveticaLight.swf' };
var helvetica_neue = { src: '/swf/helvetica_neue.swf' };
var helvetica_neue_light = { src: '/swf/helvetica_neue_light.swf' };

// Now you can set some configuration settings.
// See also <http://wiki.novemberborn.net/sifr3/JavaScript+Configuration>.
// One setting you probably want to use is `sIFR.useStyleCheck`. Before you do that,
// read <http://wiki.novemberborn.net/sifr3/DetectingCSSLoad>.

sIFR.useStyleCheck = false;
sIFR.forceClear = true;


//sIFR.prefetch(IBMHelveticaLight);
sIFR.activate(helvetica_neue_light);

// If you want, you can use multiple movies, like so:
//
//    var futura = { src: '/path/to/futura.swf' };
//    var garamond = { src '/path/to/garamond.swf' };
//    var rockwell = { src: '/path/to/rockwell.swf' };
//    
//    sIFR.activate(futura, garamond, rockwell);
//
// Remember, there must be *only one* `sIFR.activate()`!

// Now we can do the replacements. You can do as many as you like, but just
// as an example, we'll replace all `<h1>` elements with the Futura movie.
// 
// The first argument to `sIFR.replace` is the `futura` object we created earlier.
// The second argument is another object, on which you can specify a number of
// parameters or "keyword arguemnts". For the full list, see "Keyword arguments"
// under `replace(kwargs, mergeKwargs)` at 
// <http://wiki.novemberborn.net/sifr3/JavaScript+Methods>.
// 
// The first argument you see here is `selector`, which is a normal CSS selector.
// That means you can also do things like '#content h1' or 'h1.title'.
//
// The second argument determines what the Flash text looks like. The main text
// is styled via the `.sIFR-root` class. Here we've specified `background-color`
// of the entire Flash movie to be a light grey, and the `color` of the text to
// be red. Read more about styling at <http://wiki.novemberborn.net/sifr3/Styling>.

var sIFRCounter = 0;
$(function () {
  $('.sifr').each(function () {
    if ($(this).attr('id') == '') {
      sIFRCounter++;
      $(this).attr('id', 'sifr-' + sIFRCounter);
    }

    tuneWidth = $(this).is('.bitwider') ? 30 : 0;

    sIFR.replace(helvetica_neue_light, {
      selector: '#' + $(this).attr('id'),
      wmode: 'transparent',
      tuneWidth: tuneWidth,
      fitExactly: true,
      css: '.sIFR-root { ' + getCSS($(this)) + ' }'
    });
  });
});


function getCSS(t) {
  var ret = '';
  //if (t.css('font-size')) ret += 'font-size: ' + t.css('font-size')+'; ';
  if (t.css('color')) ret += 'color: ' + toHexColor(t.css('color')) + '; ';
  if (t.css('text-align')) ret += 'text-align: ' + t.css('text-align') + '; ';
  //if (t.css('font-weight')) ret += 'font-weight: ' + t.css('font-weight') + '; ';
  //if (t.css('font-style')) ret += 'font-style: ' + t.css('font-style') + '; ';
  
  return ret;
}

function toHexColor(rgb) {
  if (rgb.toString().indexOf('rgb') == -1) return rgb; //if we already have a hex colour, return it.


  var a = rgb.replace('rgb(', '').replace(')', '').replace(' ', '').split(',');
  var r = a[0];
  var g = a[1];
  var b = a[2];

  var hex = '#';
  var hexStr = '0123456789ABCDEF';
  // R
  low = r % 16;
  high = (r - low) / 16;
  hex += hexStr.charAt(high) + hexStr.charAt(low);
  // G
  low = g % 16;
  high = (g - low) / 16;
  hex += hexStr.charAt(high) + hexStr.charAt(low);
  // B
  low = b % 16;
  high = (b - low) / 16;
  hex += hexStr.charAt(high) + hexStr.charAt(low);
  return hex;
}