// jQuery.noConflict();

Prototype.Browser.IE6 = Prototype.Browser.IE && parseInt(navigator.userAgent.substring(navigator.userAgent.indexOf("MSIE")+5)) == 6;
Prototype.Browser.IE7 = Prototype.Browser.IE && parseInt(navigator.userAgent.substring(navigator.userAgent.indexOf("MSIE")+5)) == 7;
Prototype.Browser.IE8 = Prototype.Browser.IE && !Prototype.Browser.IE6 && !Prototype.Browser.IE7;

var checkoutPage = false;

function cl(str){
	if(window.console) {
		if(Prototype.Browser.Gecko) {
			return console.log(str);
		}
	} else {
		return false;
	}
}
var testEnumerator = 0;
function cltest(str){
	testEnumerator++;
	var testStr = (!str) ? 'test: ' + testEnumerator : str;
	
	if(Prototype.Browser.Gecko) {
		cl(testStr);
	} else {
		alert(testStr);
	}
}

function opaicLoad(array) {
	array.each(function(arr){
		var element = arr[0];
		var initOpacity = arr[1];
		var opaicLevel = arr[2];
		var hoverElement = arr[3];
		opaicBtn(element, initOpacity, opaicLevel, hoverElement)
	});
}

function opaicBtn(element, initOpacity, opaicLevel, hoverElement) {
	var initOpacity = (!initOpacity) ? 1 : initOpacity;
	var opaicLevel = (!opaicLevel) ? 1 : opaicLevel;
	
	if(element){
		element.each(function(el){
			var el = $(el);
			var hoverEl = (!hoverElement) ? el : hoverElement;
			el.setStyle({opacity:initOpacity});
			if(initOpacity!=opaicLevel){
				hoverEl.observe('mouseover', function(){
					el.setStyle({opacity:opaicLevel});
				}).observe('mouseout',function(){
					el.setStyle({opacity:initOpacity});
				});
			}
		});
	}
}

var langTimeout = false;
function langMouseOver(el) {
	if(langTimeout) clearTimeout(langTimeout);
	return;
}
function langMouseOut(el) {
	return langTimeout = setTimeout(function(){ $('choose_language').hide();}, 2000);
}

function layGradient(elArray) {

	elArray.each(function(element){
		if($(element)){
			$(element).each(function(el){
				// get href from sibling 
				
				var overlay = new Element('div').addClassName('gradient-overlay');
				$(el).insert(overlay, {position:'before'});

			});
		}
	});
}

var searchReset = 0;
var aChar = /\S/;
function showSearchbar() {

	if($('search').value!='Search entire store here...' && $('search').value!=''){
		document.search_mini_form.submit();
		return;
	}
	if(!searchReset) {
		$('search_bar_wrap').setStyle({opacity:.01}); 
		Effect.SlideDown('search_bar_wrap', {duration:.3, scaleFrom:50});
		setTimeout(function(){ $('search').select(); Effect.Appear('search_bar_wrap', {duration:.2, to:1});}, 50);
		searchReset = 1;
	// } else {
		// return ($('search').getAttribute('value')!='') ? document.search_mini_form.submit() : false;
	} 
}
function hideSearchbar() {
	var el = $('search');
	if(el.value=='Search entire store here...' || el.value.search(aChar)==-1) {
		el.value = '';
		setTimeout(function(){
			Effect.Fade('search_bar_wrap', {duration:.2});
			Effect.SlideUp('search_bar_wrap', {duration:.3, scaleTo:50});
			searchReset = 0;
		}, 250);
	} 
}

function navDividers (elArray, theStyle){
	elArray.each(function(element){
		// cl(element);
		var i = 1;
		element.each(function(el){
			if(i<element.length){
				$(el).addClassName('divide-me');
			}
			i++;
		});
	});
}

function hoverMove(elementArray) {
	elementArray.each(function(elArray){
		var element = elArray[0];
		var dist = elArray[1];
		var dur = elArray[2];
		if($$(element)){
			$$(element).each(function(el){
				var el = $(el);
				var moving = false;
				el.observe('mouseover', function(){
					if(moving) moving.cancel();
					moving = new Effect.Move(el, {y:dist, duration:dur, mode:'absolute', transition: Effect.Transitions.sinoidal});
				}).observe('mouseout', function(){
					moving.cancel();
					moving = new Effect.Move(el, {y:0, duration:dur, mode:'absolute', transition: Effect.Transitions.sinoidal});
				});
			});
		}
	});
	
}


var customButtonId = false; 

function resetPosition() {
	// cltest();
	
	var elArray = new Array(
		$$('.footer .widget'),
		$$('.footer #socialize_buttons')
		);
	
	elArray.each(function(element){
		element.each(function(el){
			var el = $(el);
			el.setStyle({position:'relative'});
			el.setStyle({position:'static'});
		});
	});
}

var bodyHeight,
	bodyHeightTemp;
	
function checkBodyHeight (){
	$$('body').each(function(el){
		bodyHeightTemp = $(el).getHeight();
		if(bodyHeightTemp != bodyHeight){
			resetPosition();
		}
		bodyHeight = bodyHeightTemp;
	});
}

//---------------------------------------------------------------


document.observe('dom:loaded',function(){

	//-- initially hide main nav while it loads font-face
	$('nav').setStyle({opacity:0});
	$('nav2').setStyle({opacity:0});
	$$('.nav-container').each(function(el){
		$(el).setStyle({visibility:'visible'});
	});

	//-- search bar
	if($('search').value=='Search entire store here...') {
		$('search_bar_wrap').hide();
	} else {
		searchReset = 1;
	}

	$('label').observe('click', function(){
		showSearchbar()
	});

	$('search').observe('blur', function(){
		hideSearchbar();
	});

	//-- languages
	if($('choose_language')) {
    	$('choose_language').hide();

    	var langReset = 1; 	
    	$$('#top_language .outer-wrap').each(function(el){
    		$(el).observe('click', function(){
    			if(langReset){
    				$('choose_language').show();
    			} else{
    				$('choose_language').hide();
    			}
    			langReset = ($('choose_language').getStyle('display')=='none') ? 1 : 0;
    		}).observe('mouseout', function(){
    			langMouseOut(el);
    			langReset = 1;
    		}).observe('mouseover', function(){
    			langMouseOver(el);
    			langReset = ($('choose_language').getStyle('display')=='none') ? 1 : 0;
    		});
    	});

    	var clicked = false;
    	$$('#choose_language img').each(function(el){
    		$(el).observe('click', function(){
    			clicked = true;
    			// setTimeout(function(){$('choose_language').show();},10);
    		}).observe('mouseout', function(){
    			if(!clicked)
    				langMouseOut(el);
    		}).observe('mouseover', function(){
    			if(!clicked)
    				langMouseOver(el);
    		});
    	});
    }
    
	//-- add gradients over nav
	var gradientArray = new Array(
		$$('.nav-container li > a')
	);
	
	layGradient(gradientArray);
	
	//-- make some opaic buttons
	var opaicArray = new Array(
			[$$('#choose_language img'), .55, 1, false],
			[$$('#active_language img'), .7, 1, $('top_language')],
			[$$('#socialize_buttons img'), .7, 1, false],
			[$$('.pages li.disabled'), .5, .5, false],
			[$$('.view-mode a.link'), .5, 1, false],
			[$$('.product-collateral .product-image img'), .7, 1, false],
			[$$('.cart .crosssell img'), .7, 1, false],
			[$$('a.btn-remove2'), .5, 1, false]
		);
		
	opaicLoad(opaicArray);
	
	//-- hackish way to get rid of Shop's drop-down arrow
	$$('#nav > li.parent > a span').each(function(el){
		var el = $(el);
		if(el.innerHTML == 'Shop'){
			el.up().setStyle({background:'none'});
		}
	});
	
	//-- logo hover
	var hoverElements = new Array(
			['.header .logo', 5, .1],
			['.quick-access .outer-wrap', 3, .1]
		);

	hoverMove(hoverElements);

	//-- add "divide-me" class to top navigation
	var navs = new Array(
		$$('#nav > li'),
		$$('#nav2 li')
	);
	navDividers(navs);
	
	//-- if slideshow - start it
	if($$('.classy-slideshow')){
		// var config = (!config) ? { transition:'fade', showTime:3, transitionTime:1, pager:true, pauseOnHover:true} : config;
		
		$$('.classy-slideshow').each(function(el){
			var slideshowId = $(el).identify();
			window[slideshowId] = new ClassySlideshow(slideshowId, config);
			if(slideshowId=='products_slideshow') Event.observe(document, 'keypress', function(event){products_slideshow.keyPressed(event)});
		});
	}

	//-- jQuery: fancybox: product page
	if(jQuery("a[rel=more_views]")) {
		jQuery("a[rel=more_views]").fancybox({
			'overlayColor'		: '#000',
			'titleShow'			:false
		});
	}

	if(jQuery("#review_form_1")) {
		jQuery("#review_form_1").fancybox({
			'centerOnScroll'	: true,
			'padding'			: 2,
			'width'				: 766,
			'height'			: '90%',
			'hideOnOverlayClick': false,
			'type'				: 'iframe',
			'overlayColor'		: '#000',
			'onStart'			: function(){
				$('global_loader').show();
			}
		});
	}
	
	if(jQuery("#review_form_2")) {
		jQuery("#review_form_2").fancybox({
			'centerOnScroll'	: true,
			'padding'			: 2,
			'width'				: 766,
			'height'			: '90%',
			'hideOnOverlayClick': false,
			'type'				: 'iframe',
			'overlayColor'		: '#000',
			'onStart'			: function(){
				$('global_loader').show();
			}
		});
	}
	
	//-- fancybox: cart page
	if(customButtonId){
		for(i=0;i<customButtonId.length;i++){
			jQuery(customButtonId[i].theId).fancybox({
				'padding'			: 0,
				'overlayColor'		: '#000',
				'showCloseButton'	: true
			});
		}
	}

	//-- silly footer fix for IE
	if(Prototype.Browser.IE7){
		resetPosition();
		var intv = setInterval('checkBodyHeight()', 1000);
		if(!checkoutPage){
			var clearIt = setTimeout('clearInterval(' + intv + ')', 1500);
		} 
	}

	//-- Category View: Showcase (list) View label
	if($('view_mode_label')){
		var el = $('view_mode_label');
		var txt = el.innerHTML;
		var theLeft = parseFloat(el.getStyle('left'));
		var lW = el.getWidth();
		$$('.view-mode a.grid').each(function(element){
			$(element).observe('mouseover', function(){
				el.update('Grid View'); 
				var gW = el.getWidth();
				el.setStyle({left:(theLeft + (lW - gW)) + 'px'});
			}).observe('mouseout', function(){
				el.update(txt).setStyle({left:theLeft + 'px'});
			});
		});
	}

	//-- special price fix of IE8
	if(Prototype.Browser.IE8){
		if($$('.products-grid .old-price')){
			$$('.products-grid .old-price').each(function(el){
				$(el).setStyle({position:'relative', top:'20px'});
			});
			$$('.products-grid .special-price-btn').each(function(el){
				$(el).setStyle({position:'relative', top:'-39px'});
			});
			$$('.category-products .products-grid .special-price .price').each(function(el){
				$(el).setStyle({position:'relative', top:'-17px'});
			});
		}
	}

	//-- decorate the options in cart, wishlist, view orders and elsewhere
	if($$('.item-options dd')) decorateGeneric($$('.item-options dd'), ['odd']);
	
    $$('a[rel="external"]').each(function(link) {
        if(link.readAttribute('href') != '' && link.readAttribute('href') != '#') {
            link.writeAttribute('target', '_blank');
        }
    });


	//-- fade in main nav
	new Effect.Parallel([
		new Effect.Appear($('nav'), {sync:true}),
		new Effect.Appear($('nav2'), {sync:true})
	]);
	

	//-- harley: hide add to cart on customer/wishlist table
    if(SITE_ID == 'hd') {
	    if($$('#wishlist-table thead tr th')[4]) $$('#wishlist-table thead tr th')[4].setStyle({textIndent:'-999em'});
	}

    if(SITE_ID == 'hd' && !SHOW_USA_SELECT) {
        if($$('option[value="US"]')[0]) {
            $$('option[value="US"]')[0].remove();
        }
        if($$('option[value="CA"]')[0]) {
            $$('option[value="CA"]')[0].selected = 'selected';
        }
    }

    
    if(SITE_ID == 'hd'){
        $$('.regular-price').each(function(el){
            var hdPriceLabel = new Element('span');
            hdPriceLabel.addClassName('hd-price-label').update('MSRP');
            $(el).insert(hdPriceLabel).addClassName('msrp-price');
        });
    }

    // if($$('.product-view .hd-price-label')[0] && $$('.regular-price').last()){
    //     $$('.regular-price').last().insert({before:$$('.hd-price-label')[0]});
    //     $$('.hd-price-label')[0].insert($$('.regular-price').last());
    // }
    
});
