/*! jquery.sifr.license.txt *//*
jQuery sIFR Plugin v3.0.4 <http://jquery.thewikies.com/sifr/>
Copyright (c) 2009 Jonathan Neal
This software is released under the MIT License <http://www.opensource.org/licenses/mit-license.php>
This software is released under the GPL License <http://www.opensource.org/licenses/gpl-2.0.php>
jQuery SWFObject Plugin v1.0.4 <http://jquery.thewikies.com/swfobject/>
Copyright (c) 2009 Jonathan Neal
This software is released under the MIT License <http://www.opensource.org/licenses/mit-license.php>
This software is released under the GPL License <http://www.opensource.org/licenses/gpl-2.0.php>
Scalable Inman Flash Replacement (sIFR) v3.0 <http://novemberborn.net/sifr3>
Copyright (c) 2009 Mike Davidson, Shaun Inman, Tomas Jogin and Mark Wubben
This software is released under the LGPL License <http://www.opensource.org/licenses/lgpl-2.1.php>
SWFObject v2.1 <http://code.google.com/p/swfobject/>
Copyright (c) 2007-2009 Geoff Stearns, Michael Williams, and Bobby van der Sluis
This software is released under the MIT License <http://www.opensource.org/licenses/mit-license.php>
jQuery v1.2.6 <http://jquery.com/>
Copyright (c) 2009 John Resig
This software is released under the MIT License <http://www.opensource.org/licenses/mit-license.php>
This software is released under the GPL License <http://www.opensource.org/licenses/gpl-2.0.php>*//*jslint
passfail: false,
white: true,
browser: true,
widget: false,
sidebar: false,
rhino: false,
safe: false,
adsafe: false,
debug: false,
evil: false,
cap: false,
on: false,
fragment: false,
laxbreak: false,
forin: true,
sub: false,
css: false,
undef: true,
nomen: false,
eqeqeq: true,
plusplus: false,
bitwise: true,
regexp: false,
onevar: true,
strict: false*//*global
jQuery*/(function ($) {
var t = true,
f = false,
x = '',
height = 'height',
width = 'width',
offsetHeight = 'offsetHeight',
offsetWidth = 'offsetWidth',
color = 'color',
cursor = 'cursor',
font = 'font',
fontSize = 'fontSize',
fontWeight = 'fontWeight',
lineHeight = 'lineHeight',
textAlign = 'textAlign',
textTransform = 'textTransform',
childNodes = 'childNodes',
parentNode = 'parentNode',
children = 'children',
content = 'content',
sIFRreplaced = 'sIFR-replaced',
asNumber = function (x) {
return parseInt(x, 10);},
mapOfHex = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'],
mapOfColors = {
aqua: '0FF',
azure: 'F0FFFF',
beige: 'F5F5DC',
black: '000',
blue: '00F',
brown: 'A52A2A',
cyan: '0FF',
darkblue: '00008B',
darkcyan: '008B8B',
darkgrey: 'A9A9A9',
darkgreen: '006400',
darkkhaki: 'BDB76B',
darkmagenta: '8B008B',
darkolivegreen: '556B2F',
darkorange: 'FF8C00',
darkorchid: '9932CC',
darkred: '8B0000',
darksalmon: 'E9967A',
darkviolet: '9400D3',
fuchsia: 'F0F',
gold: 'FFD700',
green: '008000',
indigo: '4B0082',
khaki: 'F0E68C',
lightblue: 'ADD8E6',
lightcyan: 'E0FFFF',
lightgreen: '90EE90',
lightgrey: 'D3D3D3',
lightpink: 'FFB6C1',
lightyellow: 'FFFFE0',
lime: '0F0',
magenta: 'F0F',
maroon: '800000',
navy: '000080',
olive: '808000',
orange: 'FFA500',
pink: 'FFC0CB',
purple: '800080',
violet: '800080',
red: 'F00',
silver: 'C0C0C0',
white: 'FFF',
yellow: 'FF0',
transparent: 'FFF'},
asHex = function (x) {
return isNaN(x) ? '00': mapOfHex[(x-x % 16) / 16]+mapOfHex[x % 16];},
toHex = function (x) {
var rgb;
return '#'+((x) ? (rgb = mapOfColors[x.toLowerCase()]) ? rgb: (rgb = x.match(/rgb\((\d+),\s(\d+),\s(\d+)\)/)) ? asHex(rgb[1])+asHex(rgb[2])+asHex(rgb[3]) : x: '000').replace(/^#{0,}(\w)(\w)(\w)$|^#/, '$1$1$2$2$3$3').toUpperCase();};/* $.sifrNodeList */
$.sifrNodeList = $(document).not(document);/* $.sifr */
$.sifr = function (options) {
var a,
arrA,
arrB,
call = arguments.callee,
b,
flashvars;
options = $.extend({}, call.options, options);
if (options.save) {
delete options.save;
call.options = $.extend({}, options);}/* Build font path and name */
options[font] = (options.path || x).replace(/([^\/])$/, '$1/')+(options[font] || x).replace(/\.swf$|$/, '.swf'); // TextTransform options
switch (options[textTransform]) {
case 'lowercase':
options[content] = options[content].toLowerCase();
break;
case 'uppercase':
options[content] = options[content].toUpperCase();
break;
case 'capitalize':
a = options[content].split(/(\s|\>)/);
options[content] = x;
for (b in a) {
options[content]+= a[b].charAt(0).toUpperCase()+a[b].substr(1);}}/* Build flashvars */
if (asNumber(options.version) === 3) {
flashvars = {
content: options[content],
cursor: options[cursor],
css: $.extend({
'.sIFR-root': $.extend({
color: toHex(options[color]),
fontWeight: options[fontWeight] || 'normal',
lineHeight: options[lineHeight] || 12,
textAlign: options[textAlign] || 'left'},
options.style),
a: {},
'a:hover': {}},
options.css),
delayrun: options.delayRun || f,
events: options.events || f,
fitexactly: options.fitExactly || f,
fixhover: options.fixHover || t,
forcesingleline: options.forceSingleLine || f,
gridfittype: options.gridFitType || 'pixel',
height: (options[height] * options.overY) || 14,
offsetleft: options.offsetLeft || 0,
offsettop: options.offsetTop || 0,
opacity: options.opacity || 100,
preventwrap: options.preventWrap || f,
size: options[fontSize] || 12,
tuneheight: options.tuneHeight || 0,
tunewidth: options.tuneWidth || 0,
version: options.build || 436,
width: (options[width] * options.overX) || 320};
flashvars.css.a[color] = flashvars.css.a[color] || toHex(options.linkColor || options[color]);
flashvars.css['a:hover'][color] = flashvars.css['a:hover'][color] || toHex(options.hoverColor || flashvars.css.a[color] || options[color]);
flashvars.selectable = options.selectable || ((/arrow|pointer/.test(flashvars[cursor])) ? f: t);/* Build filters options */
if (typeof options.filter === 'object') {
arrA = [];
for (a in options.filter) {
if (typeof options.filter[a] === 'object') {
arrB = [];
for (b in options.filter[a]) {
arrB.push(b.replace(/([A-Z])/, '-$1').toLowerCase()+':'+((/color/.test(b)) ? '"0x'+toHex(options.filter[a][b]).substr(1)+'"': options.filter[a][b]));}
options.filter[a] = arrB.join(',');}
arrA.push(a+'Filter,'+options.filter[a]);}
flashvars.flashfilters = arrA.join(',');}} else {
flashvars = {
h: (options[height] * options.zoom) || 14,
leading: Math.max(options[lineHeight]-options[fontSize], 0),
offsetTop: Math.max((options[lineHeight]-options[fontSize]) / 2, 0),
textAlign: options[textAlign] || 'left',
textColor: toHex(options[color]),
txt: options[content],
w: (options[width] * options.zoom) || 320};
flashvars.linkColor = toHex(options.linkColor || options[color]);
flashvars.hoverColor = toHex(options.hoverColor || flashvars.linkColor || options[color]);
if (options.underline === t) {
flashvars.underline = t;}}
if ((options.link) || (/href="(.*?)"/.test(options[content]))) {
flashvars.link = options.link  || options[content].match(/href="(.*?)"/)[1];}
return $.flash({
flashvars: flashvars,
height: (options[height] * options.overY) || 14,
params: {
wmode: 'transparent'},
swf: options[font],
width: (options[width] * options.overX) || 320});};/* $.fn.sifr */
$.fn.sifr = function (options) {/* Check if Flash is installed, return false if isn't */
if (!$.hasFlashPlayer) {
return f;}
var $alt,
$each,
$swf,
$this = this,
each = 0,
hck_width = 0,
eachOptions,
sendOptions;
options = $.extend({}, options);/* Each */
while (($each = $this.eq(each++))[0]) {
sendOptions = $.extend({}, (eachOptions = $.extend({}, $each.data('options'), options)));
if ($each.hasClass(sIFRreplaced)) {
$each.unsifr();} // HTML options
$each.addClass(sIFRreplaced)[0].innerHTML = ['<span style="display:inline-block;position:relative;"><span class="sIFR-alternate" ', ((sendOptions.debug) ? '' : 'style="'+(($.browser.msie) ? 'zoom:1;filter:alpha(opacity=0)': 'opacity:0')+';"'), '>', $each[0].innerHTML, '</span><span class="sIFR-flash" style="position:absolute;top:0;left:0;right:0;bottom:0;"></span></span>'].join(x);/* Reference options */
$alt = $each[children]()[children]().eq(0);
$swf = $each[children]()[children]().eq(1);/* Content options */
sendOptions[content] = sendOptions[content] || $.trim($alt[0].innerHTML);/* TextTransform options */
sendOptions[textTransform] = sendOptions[textTransform] || $alt.css(textTransform).toLowerCase();/* Configure dimensions */
sendOptions.zoom = sendOptions.zoom || 1;
sendOptions.overX = (sendOptions.overX || 1) * (sendOptions.over || 1);
sendOptions.overY = (sendOptions.overY || 1) * (sendOptions.over || 1);
sendOptions[height] = sendOptions[height] || Math.max($alt[0][offsetHeight] || $alt[0][parentNode][offsetHeight], asNumber($alt.css(lineHeight).replace(/normal/, asNumber($alt.css(fontSize)) * 1.25)));
if ($each.hasClass('standard'))
hck_width = sendOptions[width] || $alt[0][offsetWidth] || $alt[0][parentNode][offsetWidth];
sendOptions[width] = ($each.hasClass('hover_color')) ? hck_width : sendOptions[width] || $alt[0][offsetWidth] || $alt[0][parentNode][offsetWidth];/* Build style attributes */
sendOptions[font] = sendOptions[font] || $each.css('fontFamily').replace(/^\s+|\s+$|,[\S|\s]+|'|"|(,)\s+/g, '$1');
sendOptions[color] = sendOptions[color] || $alt.css(color);
sendOptions[cursor] = sendOptions[cursor] || $alt.css(cursor);
sendOptions[fontWeight] = (sendOptions[fontWeight] || $alt.css(fontWeight).toString()).replace('400', 'normal').replace('700', 'bold');
sendOptions[fontSize] = (sendOptions[fontSize] || asNumber($alt.css(fontSize))) * sendOptions.zoom;
sendOptions[lineHeight] = asNumber(sendOptions[lineHeight] || $alt.css(lineHeight).replace(/normal/, sendOptions[fontSize] * 1.25)) || sendOptions[height];
sendOptions[textAlign] = sendOptions[textAlign] || $alt.css(textAlign).toString();
if (sendOptions[textAlign] === 'center') {
$swf.css('marginLeft', (sendOptions[width]-(sendOptions[width] * sendOptions.overX)) / 2);}
if (sendOptions.resizable) {
$.sifrNodeList = $.sifrNodeList.add($each.data('options', $.extend({
offsetHeight: $alt[0][offsetHeight],
offsetWidth: $alt[0][offsetWidth]},
eachOptions)));}
$swf.html($.sifr(sendOptions));}
return $this;};/* $.fn.unsifr */
$.fn.unsifr = function () {
var $this = this,
$each,
each = 0;/* Each */
while ((($each = $this.eq(each++))[0]) && $each.hasClass(sIFRreplaced)) {
$each.removeClass(sIFRreplaced)[0].innerHTML = $each[0][childNodes][0][childNodes][0].innerHTML;
$.sifrNodeList = $.sifrNodeList.not($each);}
return $this;};/* Resizable */
$(window).resize(function () {/* Filter by size change */
$.sifrNodeList.filter(function (index) {
var $each,
alt = this[childNodes][0][childNodes][0],
options = ($each = $(this)).data('options');/* If size has changed */
if (alt[offsetHeight] !== options[offsetHeight] || alt[offsetWidth] !== options[offsetWidth]) {
options[offsetHeight] = alt[offsetHeight];
options[offsetWidth] = alt[offsetWidth];
$each.data('options', options);
return t;}
return f;}).sifr();});}(jQuery));
