/*
	Copyright: 	Hybrid Forge 2011. All Rights Reserved.
	Author: 	Rod Miles (www.HybridForge.com)
	Date:		February 2011
	
	Info:		Customizations & Styling
=============================================================================*/
 
 
/*	jQuery Customizations
=============================================================================*/
jQuery.noConflict();	// required to use jQuery when Prototype is active
jQuery(document).ready(function($) {

	/*--------------------------------------------------------------
		Misc. EASING Functions
	--------------------------------------------------------------*/
		$.easing.custom = function (x, t, b, c, d) { 
			var s = 1.70158;  
			if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b; 
			return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b; 
		}	
		$.easing.easeInOutQuint = function (x, t, b, c, d) {
			if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
			return c/2*((t-=2)*t*t*t*t + 2) + b;
		}


	/*--------------------------------------------------------------
		HOME Page
	--------------------------------------------------------------*/
		if ( $("body.cms-home").length ) {
			// Main Banner
			var opts = $('#featured-banners .scrollable').cycle({
				fx:			'fade', 
				speed: 		700,
				timeout:	5800,
				delay:		800,
				pause:		true,			
				pauseOnPagerHover: true,
				pagerEvent:	'click', 
				pager: 		'#bannerNav',
				prev:    	'#bannerPrev',
				next:    	'#bannerNext',
				sync:		true,
				cleartypeNoBg: 	true	// needed for IE
			}).data('cycle.opts');
			
			// Pause/Play
			/*
			$(".pausePlay").click(function() {
				$(this).toggleClass("play");
				$(this).parents(".hf-featured").eq(0).find(".scrollable").cycle("toggle");				
			});
			*/
			
			// Wrap Nav links 
			$("#bannerNav a").wrapInner("<span></span>");
		}


	/*--------------------------------------------------------------
		Collection Pages
	--------------------------------------------------------------*/
		//adds 'frame' corners to images on collection pages
		if ( $('body.cms-collections, body.cms-collections-bras, body.cms-collections-panties-tangas, body.cms-collections-bridal, body.cms-collections-baby-dolls-chemises, body.cms-collections-lounge-leisure, body.cms-collections-shapewear').length ) {
			$(".view-collections .item img.frame").wrap("<div class='frame-wrapper'></div>");
			$(".view-collections .item .frame-wrapper").prepend("<div class='frame-cover'></div>");
		}
		

	/*--------------------------------------------------------------
		Designers Page
	--------------------------------------------------------------*/
		
		if ( $('body.cms-designers').length) {
			
			$('.view-collections #designers-a-c').css("display","block");
			
			$('.view-collections .horiz-menu a').click(function(){
				$('.view-collections .horiz-menu a').removeClass("selected");
				$(this).addClass("selected");
				var designerRowHash = $(this).attr("href");
				$('.designer-row').each(function(){
					var designerRowId = "#" + $(this).attr("id");
					if (designerRowHash == designerRowId) {
						$('.designer-row').not(designerRowId).hide();
						$(designerRowId).fadeIn("slow");
					}
				});
				
			});
		}
	
	/*--------------------------------------------------------------
		Events Page
	--------------------------------------------------------------*/

		if ( $('body.cms-events .main-container .main .col-main .std').length) {
			$('body.cms-events .main-container .main .col-main .std').addClass("view-collections");
			$('body.cms-events .main-container .main .col-main .view-collections h1').addClass("largePinkText"); 
		}

	/*--------------------------------------------------------------
		MISC. Tweaks
	--------------------------------------------------------------*/
		// Product reviews inside Product Tabs when it's empty
		if ( $.trim($("#product_tabs_product_review_contents #customer-reviews").html()) == "") {
			$("#product_tabs_product_review_contents #customer-reviews").html( "No reviews yet. " + $("#product_addtocart_form .no-rating").html() );
		}
		
		// Hilite product cell if on sale and in grid-view
		$(".products-grid .special-price").parents("li.item").addClass("special");
		
		// Add "first" class to Upsell products
		if ( $("#upsell-product-table").length ) {
			$("#upsell-product-table tr td:first").addClass("first");
		}
		
		// Header Links Tweaks
		if ( $("#header-links ul.menu").length ) {
			// Header links sub-menu
			$("#header-links ul.menu li.flyout")
				.mouseenter(function() {
					$(this).find(".subMenu").fadeIn();
				})
				.mouseleave(function() {
					$(this).find(".subMenu").fadeOut();
				});
			
			// Add 'selected' classes to 'header nav'
			// add basic classes to each <li>
			var linkCounter = 1;
			$("#header-links > ul.menu > li").each(function() {
				$(this).addClass("hl-" + linkCounter);
				linkCounter++;
			});
			// add 'seclected' class when appropriate
			if ( $("body.cms-home").length ) { $("#header-links ul.menu li.hl-1").addClass("selected"); } 
			/* categories, products, and search */
			else if ( $("body.cms-collections, body.cms-collections-bras, body.cms-collections-panties-tangas, body.cms-collections-bridal, body.cms-collections-baby-dolls-chemises, body.cms-collections-lounge-leisure, body.cms-collections-shapewear").length ) { $("#header-links li.flyout, #header-links ul.menu li.hl-2").addClass("selected"); } 
			/* designers */
			else if ( $("body.cms-designers").length ) { $("#header-links ul.menu li.hl-3").addClass("selected"); } 
			/* loyalty program */
			else if ( $("body.cms-events").length ) { $("#header-links ul.menu li.hl-4").addClass("selected"); } 
			/* bridal registry */
			else if ( $("body.cms-bridal-registry").length ) { $("#header-links ul.menu li.hl-5").addClass("selected"); }
		}
		
		// Add "Enter your email addres" on newsletter box
		if ( $("input#newsletter").length ) {
			var newsletterBoxText = "Enter your email address";
			var $newsletterBox = $("input#newsletter");
			if ( $.trim($newsletterBox.val()) == "" ) {
				$newsletterBox.val(newsletterBoxText);
			}
			$newsletterBox.focus(function() {
				if( $.trim($(this).val()) == newsletterBoxText ){ $(this).val(''); }
			});
			$newsletterBox.blur( function(){
				if( $.trim($(this).val()) == '' ){ $(this).val(newsletterBoxText); }
			});
		}
		
		
	/*--------------------------------------------------------------
		Browser Detection
	--------------------------------------------------------------*/
		var BrowserDetect = {
			init: function () {
				this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
				this.version = this.searchVersion(navigator.userAgent)
					|| this.searchVersion(navigator.appVersion)
					|| "an unknown version";
				this.OS = this.searchString(this.dataOS) || "an unknown OS";
			},
			searchString: function (data) {
				for (var i=0;i<data.length;i++)	{
					var dataString = data[i].string;
					var dataProp = data[i].prop;
					this.versionSearchString = data[i].versionSearch || data[i].identity;
					if (dataString) {
						if (dataString.indexOf(data[i].subString) != -1)
							return data[i].identity;
					}
					else if (dataProp)
						return data[i].identity;
				}
			},
			searchVersion: function (dataString) {
				var index = dataString.indexOf(this.versionSearchString);
				if (index == -1) return;
				return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
			},
			dataBrowser: [
				{
					string: navigator.userAgent,
					subString: "Chrome",
					identity: "Chrome"
				},
				{ 	string: navigator.userAgent,
					subString: "OmniWeb",
					versionSearch: "OmniWeb/",
					identity: "OmniWeb"
				},
				{
					string: navigator.vendor,
					subString: "Apple",
					identity: "Safari",
					versionSearch: "Version"
				},
				{
					prop: window.opera,
					identity: "Opera"
				},
				{
					string: navigator.vendor,
					subString: "iCab",
					identity: "iCab"
				},
				{
					string: navigator.vendor,
					subString: "KDE",
					identity: "Konqueror"
				},
				{
					string: navigator.userAgent,
					subString: "Firefox",
					identity: "Firefox"
				},
				{
					string: navigator.vendor,
					subString: "Camino",
					identity: "Camino"
				},
				{	// for newer Netscapes (6+)
					string: navigator.userAgent,
					subString: "Netscape",
					identity: "Netscape"
				},
				{
					string: navigator.userAgent,
					subString: "MSIE",
					identity: "Explorer",
					versionSearch: "MSIE"
				},
				{
					string: navigator.userAgent,
					subString: "Gecko",
					identity: "Mozilla",
					versionSearch: "rv"
				},
				{ 	// for older Netscapes (4-)
					string: navigator.userAgent,
					subString: "Mozilla",
					identity: "Netscape",
					versionSearch: "Mozilla"
				}
			],
			dataOS : [
				{
					string: navigator.platform,
					subString: "Win",
					identity: "Windows"
				},
				{
					string: navigator.platform,
					subString: "Mac",
					identity: "Mac"
				},
				{
				   string: navigator.userAgent,
				   subString: "iPhone",
				   identity: "iPhone/iPod"
				},
				{
					string: navigator.platform,
					subString: "Linux",
					identity: "Linux"
				}
			]			
		};
		BrowserDetect.init();
		
		//add browser and os to body classes
		$("body").addClass(BrowserDetect.browser).addClass(BrowserDetect.browser + "-" + BrowserDetect.version).addClass("os-" + BrowserDetect.OS);

});

