
/* BBT UTILS
 * @name			bbt utils
 * @namespace:		LVA
 * @namespacedFile	lva.utils.js
 * @dependencies:	bbt.js
 *
 */

	// NAMESPACE REGISTERING (bbt.js)
	Namespace.Register("LVA");



/* fn GET SCROLLABLE SIZES
 * Calculate sizes of scrollable and slider wrapper, items and containers
 * 
 * @namespace:	LVA
 * @usage:		$('[selector]').getScrollableSizes();
 *        		or $("[selector]").aniyPluginCall({arg1: x, arg2: x, etc }).getScrollableSizes();
 *       		or 
 *
 * @apply:		scrollable modules
 * 
 */

LVA.getScrollableSizes = function (jObj) {

	var $scrollContainer = jObj;
	var $scrollable = $scrollContainer.find('.bh-scrollable');
	var $wrapper = $scrollContainer.find('.scr-wrapper');

	if (jQuery.browser.msie && jQuery.browser.version > '7') {

		var scrollableSize = parseInt($scrollable.css("width"), 10);
		
		// la propiedad $scrollable.css("width") en CSS es "auto"
		// si falla lo calculamos con jquery
		try {
                        $scrollable.css('width', scrollableSize);
		} catch(e) { 
			scrollableSize = $scrollable.width();	
		        $scrollable.css('width', scrollableSize);
		}

	} else {
		var scrollableSize = $scrollable.width();
		$scrollable.css('width', scrollableSize);
	}
	var item = jObj.find('.scr-item');
	var numItems = item.length;

	jQuery.each(item, function(index, obj){

		if (jQuery.browser.msie && jQuery.browser.version > '7') {
	       		var itemWd = parseInt(jQuery(this).css("width"), 10);
			if(isNaN(itemWd)) {
		// la propiedad jQuery(this).css("width") en CSS es "auto"
		// si falla lo calculamos con jquery
				itemWd = jQuery(this).width();
			}
		} else {
			var itemWd = jQuery(this).width();
		}
		
		jQuery(this).css('width', itemWd);

	});

	if (jQuery.browser.msie && jQuery.browser.version > '7') {
		var wrapperSize = numItems * parseInt(item.css("width"), 10);
	} else {
		var wrapperSize = numItems * item.width();
	}

	$wrapper.css('width', wrapperSize);
	$wrapper.css('position', 'absolute');

};


/* fn DISABLE TEXT SELECT
 * Disables text selection action.
 * Perfect usage for clickable widgets to avoid all wrapper text selection ...
 * ... when user fire a quick or double mouse click onto sliders
 * 
 */
jQuery(function(){
	jQuery.fn.disableTextSelect = function() {
		return this.each(function(){
			if(jQuery.browser.mozilla){//Firefox
				jQuery(this).css('MozUserSelect','none');
			}else if(jQuery.browser.msie){//IE
				jQuery(this).bind('selectstart',function(){return false;});
			}else{//Opera, etc.
				jQuery(this).mousedown(function(){return false;});
			}
		});
	};

	// PRELOAD INIT LISTENING FOR CLASS 'noSelect'
	jQuery('.noSelect').disableTextSelect(); //No text selection on elements with a class of 'noSelect'

});

