jQuery.noConflict();

if (!window.fujifilm){ var fujifilm = {}; }
fujifilm.__INTERNAL_DOMAINS__ = ( __INTERNAL_DOMAINS__ && __INTERNAL_DOMAINS__.length ) ? __INTERNAL_DOMAINS__ : [];

(function(fujifilm){
	var $ = jQuery;
	fujifilm.isInternalDomain = null;

	if ( fujifilm.__INTERNAL_DOMAINS__.length ) {
		var internalDomainRegStr = fujifilm.__INTERNAL_DOMAINS__.join('|').replace('.', '\.');
		var internalDomainRegExp = new RegExp(internalDomainRegStr, "i");
		fujifilm.isInternalDomain = function( str ) {
			if ( !str ) return false;
			return str.match(internalDomainRegExp);
		}
	}
	
	fujifilm.delegate = delegate;
	function delegate(instance, method) {
	  return function() {
		return method.apply(instance, arguments);
	  }
	}
	
	/**
	 *
	 */
	fujifilm.setRollOver = setRollOver;
	function setRollOver ( imgEl ) {
		imgEl._orgSrc = imgEl.src;
		new Image().src = imgEl._overSrc = imgEl.src.replace(/\.(gif|jpe?g|png)$/, function($0){return('_o' + $0)});
		$(imgEl).hover( 
			function(){
				$(this).attr('src', imgEl._overSrc);
			},
			function(){
				$(this).attr('src', imgEl._orgSrc)
			}
		);
	}

	/**
	 *
	 */
	fujifilm.setStyleSheet = setStyleSheet;
	function setStyleSheet ( selector, param, val ) {
		if  (!selector || !param || !val ) return;

		if ( $(selector).css(param) == val ) return;

		var sheet=null,targetSheet = null;
		if ( document.styleSheets.length > 0) {
			var sl = document.styleSheets.length;
			for ( var i = 0; i < sl; i++ ) {
				sheet = document.styleSheets[i];
				if ( !sheet.href ) {
					targetSheet = sheet;
					break;
				}
			}
		}
		if ( !targetSheet ) {
			$('head').append('<style type="text/css"></style>');
			targetSheet = document.styleSheets[document.styleSheets.length-1];
		}

		if ( targetSheet.insertRule ) {
			targetSheet.insertRule(selector+'{' + param +' :' + val + ';}', targetSheet.cssRules.length);
		}
		else if (targetSheet.addRule) {
			targetSheet.addRule( selector, param + ': ' + val );
		}
	}

	/**
	 *
	 */
	fujifilm.setVisibilityStyle = setVisibilityStyle;
	function setVisibilityStyle ( targetSelector, val ) {
		var str = 'visible';
		if (!val) str = 'hidden';

		if ( !targetSelector ) targetSelector = 'body';

		fujifilm.setStyleSheet(targetSelector, 'visibility', str);
	}

})(fujifilm);

jQuery.extend( jQuery.easing, {
	def: 'easeOutQuad',
			  
	easeInOutQuad: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t + b;
		return -c/2 * ((--t)*(t-2) - 1) + b;
	},

	easeInOutCubic: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t*t + b;
		return c/2*((t-=2)*t*t + 2) + b;
	}
});

function FFSetStyleSheet ( selector, param, val ) {
	fujifilm.setStyleSheet( selector, param, val );
}

function FFSetVisiblityStyle ( targetSelector, val ) {
	fujifilm.setVisibilityStyle( targetSelector, val );
}

function FFSetDisplayStyle ( targetSelector, val ) {
	var str = 'block';
	if (!val) str = 'none';
	if ( !targetSelector ) return;

	fujifilm.setStyleSheet(targetSelector, 'display', str);
}

