JQuery
view release on metacpan or search on metacpan
lib/JQuery/jquery_js/plugins/sifr/sifr.js view on Meta::CPAN
/**
* Main build function
* @acces public
* @param hash of options
*/
build: function(arrConfig) {
var arrOptions = jQuery.extend({
intRequiredFlashVersion: [6, 0, 0],
strSWF: '',
strColor: '#000000',
strBgColor: '',
strLinkColor: '',
strHoverColor: '',
intPadding: [0, 0, 0, 0], // Left, top, right, bottom
strFlashVars: '',
strCase: '',
strWmode: '' // empty/'transparent'/'opaque'
}, arrConfig || {});
// Check config
if (arrOptions.intPadding.length != 4) {
alert('Wrong number of arguments for the padding!');
return;
}
// helper to check for required flash version (do this only once per pageload)
if (!jQuery.sifr.blnFlashValid) {
jQuery.sifr._checkFlash(arrOptions.intRequiredFlashVersion[0], arrOptions.intRequiredFlashVersion[1], arrOptions.intRequiredFlashVersion[2]);
}
// Initialize flashvars
if(arrOptions.strFlashVars != '')
arrOptions.strFlashVars = jQuery.sifr._normalize(arrOptions.strFlashVars);
// Remove & from the start
if (arrOptions.strFlashVars.substr(0, 1) == '&')
arrOptions.strFlashVars = arrOptions.strFlashVars.substr(1, arrOptions.strFlashVars.length);
// Initialize colors
if(arrOptions.strColor != '')
arrOptions.strFlashVars+= "textcolor=" + arrOptions.strColor + '&';
if (arrOptions.strHoverColor != null)
arrOptions.strFlashVars+= 'hovercolor=' + arrOptions.strHoverColor + '&';
if ((arrOptions.strLinkColor != null) || (arrOptions.strHoverColor != null))
arrOptions.strFlashVars+= 'linkcolor=' + (arrOptions.strLinkColor || arrOptions.strColor) + '&';
// initialize sIFR
return this.each(function() {
// Handle to object
jqThis = jQuery(this);
// Only continue if we support flash and haven't replaced allready
if (jQuery.sifr.blnFlashValid && !jqThis.is('.sIFR-flash')) {
// Calculate new width and height
intWidth = parseInt(this.offsetWidth);
intHeight = parseInt(this.offsetHeight);
// If this fails, we don't have a width and height set, WHICH MUST BE THE CASE
if (isNaN(intWidth) || isNaN(intHeight)) {
alert('fook it');
return;
}
// Remove padding
intWidth-= (arrOptions.intPadding[0] + arrOptions.intPadding[2]);
intHeight-= (arrOptions.intPadding[1] + arrOptions.intPadding[3]);
// Make sure an & is at the end of the flashvars
if (arrOptions.strFlashVars.substr(arrOptions.strFlashVars.length, 1) != '&')
arrOptions.strFlashVars+= '&';
// Build variables
objAlternate = jQuery('<span class="sIFR-alternate"></span>')[0];
objContent = jQuery.sifr._fetchContent(this, objAlternate, arrOptions.strCase);
strVars = "txt=" + jQuery.sifr._normalize(jQuery.sifr._escapeHex(objContent.strContent).replace(/\+/g, "%2B").replace(/&/g, "%26").replace(/\"/g, "%22")) + '&';
strVars+= arrOptions.strFlashVars;
strVars+= "w=" + intWidth + "&h=" + intHeight + objContent.strLinkVars;
objContent = null;
// Generate!
if (!jQuery.browser.msie) {
strHTML = '<embed type="application/x-shockwave-flash" src="' + arrOptions.strSWF + '" quality="best" ';
strHTML+= (arrOptions.strWmode != '') ? 'wmode="' + arrOptions.strWmode + '" ' : '';
strHTML+= (arrOptions.strBgColor != '') ? 'bgcolor="' + arrOptions.strBgColor + '" ' : '';
strHTML+= 'flashvars="' + strVars + '" width="' + intWidth + '" height="' + intHeight + '"></embed>';
} else {
strHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="' + intWidth + '" height="' + intHeight + '">';
strHTML+= '<param name="movie" value="' + arrOptions.strSWF + "?" + strVars + '"></param>';
strHTML+= '<param name="quality" value="best"></param>';
strHTML+= (arrOptions.strWmode != '') ? '<param name="wmode" value="' + arrOptions.strWmode + '"></param>' : '';
strHTML+= (arrOptions.strBgColor != '') ? '<param name="bgcolor" value="' + arrOptions.strBgColor + '"></param>' : '';
strHTML+= '</object>';
}
// Build the sifr tag
jqThis.addClass('sIFR-flash').empty().append(objAlternate).append(strHTML);
// Fix MSIE flash issue
if (jQuery.browser.msie) {
this.outerHTML = this.outerHTML;
}
}
});
}
};
// Extend jQuery
jQuery.fn.extend( {
sifr : jQuery.sifr.build
});
( run in 1.598 second using v1.01-cache-2.11-cpan-39bf76dae61 )