var showSearchBox = false;
var hideSearchBox = false;
var activateSearchBox = false;
var deactivateSearchBox = false;

// Pop Up Window
var newwindow;
function popup(url){
	newwindow=window.open(url,'name','height=460,width=460, scrollbars=yes, toolbar=no, menubar=no, resizable=yes');
	if (window.focus) {newwindow.focus()}
}


// !Subnav control
window.addEvent('domready', function() {
	$$('.flood').each(function(item, index){	
		var div = item.getParent('.subnavwrap');
		var li = div.getParent();
		if(div && li){
			div.setStyle('display', 'block');

			if(Browser.Engine.trident4){
				if(li.getParent().get('id') == 'mainnav'){
					var pos = div.getCoordinates();
					var iframe = new Element('iframe', {
						'src': 'javascript:\'\'',
						'frameborder': 1,
						'scrolling': 'no',
						'styles': {
							'top': -pos.height,
							'height': pos.height,
							'width': pos.width,
							'filter': 'alpha(opacity=0)'
						}
					}).inject(div, 'bottom');
				}
			}

			var sub = new Fx.Slide(item, { duration: 200, link: 'cancel', transition: 'quad:out' }).hide();
			var subFx = new Fx.Tween(item, { duration: 200, link: 'cancel' });
			li.addEvents({
		    	'mouseenter': function(){
			    	this.addClass('hover');
			    	subFx.cancel();
			    	sub.cancel();
			    	subFx.set('opacity', 1);
			    	sub.slideIn();
			    },
			    'mouseleave': function(){
			    	this.removeClass('hover');
			    	subFx.cancel();
			    	sub.cancel();
			     	subFx.start('opacity', 0);
			     	sub.slideOut();
			    }
			});
		}
	});
});

// !Size filter
window.addEvent('domready', function() {
	var filter = $('filter');
	var filteroptions = $('filteroptions');
	if(filter && filteroptions){
		var filterOptions = filter.getLast();
		if(filterOptions){
			filteroptions.removeClass('hide');
			var filterFx = new Fx.Slide(filteroptions, { duration: 200, link: 'cancel' }).hide();
			filter.addEvents({
				'mouseenter': function(){
					filterFx.cancel();
					filterFx.slideIn();
				},
				'mouseleave': function(){
					filterFx.cancel();
					filterFx.slideOut();
				}
			});
			
		}
	}			
});

// !Sex dropdown
window.addEvent('domready', function() {
	var sexnav = $('sexnav');
	var choosesex = $('choosesex');
	if(sexnav && choosesex){
		choosesex.removeClass('hide');
		var sexFx = new Fx.Slide(choosesex, { duration: 200, link: 'cancel', transition: 'quad:out' }).hide();
		sexnav.addEvents({
		    'mouseenter': function(){
		    	sexFx.cancel();
		    	sexFx.slideIn();
		    },
		    'mouseleave': function(){
		     	sexFx.cancel();
		     	sexFx.slideOut();
		    }
		});
	}
});


// !Basket summary
window.addEvent('domready', function() {

	var summary = $('basketsummary');
	if(summary){
		var table = $('basketframe');
		var sumli = $('basketsummary').getParent();
		if(summary && table && sumli){
			summary.setStyle('display', 'block');
			var sum = new Fx.Slide(table, { duration: 200, link: 'cancel', transition: 'quad:out' }).hide();
			var sumFx = new Fx.Tween(table, { duration: 200, link: 'cancel' });
			sumli.addEvents({
			    'mouseenter': function(){
			    	this.addClass('hover');
			    	sumFx.cancel();
			    	sum.cancel();
			    	sumFx.set('opacity', 1);
			    	sum.slideIn();
			    },
			    'mouseleave': function(){
			    	this.removeClass('hover');
			    	sumFx.cancel();
			    	sum.cancel();
			     	sumFx.start('opacity', 0);
			     	sum.slideOut();
			    }
			});
		}	
	}
});

// !Search summary
window.addEvent('domready', function() {	
	var searchsummary = $('searchsummary');

	showSearchBox = function(){
		this.addClass('hover');
    	searchFx.cancel();
    	searchsum.cancel();
    	searchFx.set('opacity', 1);
    	searchsum.slideIn().chain(function(){
    		display.setStyle('overflow', 'visible');
    	});
    	searchli.addEvent('mouseleave', hideSearchBox);
	}
	
	hideSearchBox = function(){
		this.removeClass('hover');
    	window.autocompleter.hideChoices();
    	searchFx.cancel();
    	searchsum.cancel();
     	searchFx.start('opacity', 0);
     	searchsum.slideOut();
    	display.setStyle('overflow', 'hidden');
	}
	
	activateSearchBox = function(){
		searchli.addEvent('mouseenter', showSearchBox);
	}
	
	deactivateSearchBox = function(){
		searchli.removeEvents('mouseenter');
		searchli.removeEvents('mouseleave');
	}
	
	if(searchsummary){
		var searchtable = $('searchframe');
		var searchli = $('searchsummary').getParent();
		if(searchsummary && searchtable && searchli){
			searchsummary.setStyle('display', 'block');
			var searchsum = new Fx.Slide(searchtable, { duration: 200, link: 'cancel', transition: 'quad:out' } ).hide();
			var searchFx = new Fx.Tween(searchtable, { duration: 200, link: 'cancel' });
			var display = searchsummary.getFirst();
			activateSearchBox();
		}
	}

});

// !Product scroll
window.addEvent('domready', function() {
	var contentDiv = $('content');
	var productDiv = $('products');
	var currentPage = 0;
	var visible = 909;
	var pageUrl = new URI(document.location.toString());
	var pageView = pageUrl.get('data').view;
	var pageCookie = Cookie.read('productspage');
	var urlCookie = Cookie.read('url');
	
	if(productDiv && $(document.body).hasClass('js')){
		var products = productDiv.getChildren('.product');
		
		if(products.length > 3){
			var pages = Math.ceil(products.length / 3);

			var productFx = new Fx.Tween(productDiv, { duration: 500, link: 'cancel', transition: 'Quad:out' });
			
			productDiv.setStyles({
			    width: visible * pages,
			    position: 'absolute',
			    top: 0,
			    left: 0
			});

			var prev = new Element('a', {
				'id': 'left',
				'href': '#',
			    'html': 'Prev'
			}).inject(contentDiv);
			var prevPage = function(e){ 
				e.preventDefault();
    		    currentPage--;
        		gotoPage(true);
      		}
			
			var next = new Element('a', {
				'id': 'right',
		    	'href': '#',
		    	'html': 'Next'
			}).inject(contentDiv);
			var nextPage = function(e){ 
				e.preventDefault();
	        	currentPage++;
	        	gotoPage(true);
	     	}
      			
			if(pageView && pageView > 0){
				currentPage = pageView;
				gotoPage(true);
			}else if(pageCookie && urlCookie){
				if(urlCookie == pageUrl.get('directory')){
					currentPage = pageCookie;
					gotoPage(true);
				}else{
					gotoPage(false);
				}
			}else{
				gotoPage(false);
			}
		}	
	}
	
	function gotoPage(track){
		if(currentPage <= 0){
			prev.addClass('inactive');
			prev.removeEvent('click', prevPage);
		}else{
			prev.removeClass('inactive');
			prev.addEvent('click', prevPage);
		}
		if(currentPage >= pages-1){
			next.addClass('inactive');
			next.removeEvent('click', nextPage);
		}else{
			next.removeClass('inactive');
			next.addEvent('click', nextPage);
		}
		productFx.cancel();
		productFx.start('left', -visible * currentPage);
		Cookie.write('productspage', currentPage, { path: "/" });
		Cookie.write('url', pageUrl.get('directory'), { path: "/" });
		if(track && pageTracker){
    	pageTracker._trackPageview(pageUrl.get('directory') + "index.html?view=" + currentPage); 
    }
	}
	
});


// !Section Product image swap
window.addEvent('domready', function() {
	$$('.product').each(function(product){
		var img = product.getFirst().getFirst();
		var imgLink = product.getFirst();
		var selected = null;
		var swatchcurrentPage = 0;
		var swatchvisible = 192;
		var swatchDiv = product.getLast();
		var swatchWrapperDiv = swatchDiv.getFirst();
		var swatchWrapperInnerDiv = swatchWrapperDiv.getFirst();
		img.removeProperty('alt');
		
		imgLink.store('tip:text', imgLink.getNext().get('html'));
		
		if(swatchWrapperInnerDiv){
			var children = swatchWrapperInnerDiv.getChildren();
			children.each(function(item, index){
				item.getFirst().removeProperty('alt');
				if(item.hasClass('selected')){
					selected = item;
				}
				item.addEvent('click', function(e){
					e.preventDefault();
					if(Browser.Engine.trident4){
						img.setStyle('filter', "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='http://cdn.lyleandscott.com/cms_media/images/265x265_fitbox-" + this.get('rel') + "', sizingMethod='scale')");
					}else{
						img.set('src', 'http://cdn.lyleandscott.com/cms_media/images/265x265_fitbox-' + this.get('rel'));
					}
					imgLink.set('href', this.get('href'));
					if(selected){ selected.removeClass('selected'); }
					this.addClass('selected');
					selected = this;
				});
			
			});
			
			// manage swatches
			if(children.length > 8){
				swatchWrapperInnerDiv.setStyle('width', children.length * 25);
				
				var swatchFx = new Fx.Tween(swatchWrapperInnerDiv, { duration: 500, link: 'cancel', transition: 'Quad:out' });
				
				var swatchpages = Math.ceil(children.length / 8);
				
				var deadlink = function(e){ 
					e.preventDefault();
	      		}
				
				var swatchprev = new Element('a', {
					'class': 'left',
					'href': '#',
			    'html': 'Prev',
			    'title': 'Previous Colours'
				}).addEvent('click', deadlink).inject(swatchDiv);
				var swatchprevPage = function(e){ 
					e.preventDefault();
	        		swatchcurrentPage--;
	        		swatchGoToPage();
	      		}
				
				var swatchnext = new Element('a', {
					'class': 'right',
			    'href': '#',
			    'html': 'Next',
			    'title': 'Next Colours'
				}).addEvent('click', deadlink).inject(swatchDiv);
				var swatchnextPage = function(e){ 
					e.preventDefault();
			        swatchcurrentPage++;
			        swatchGoToPage();
			    }
	      
	      		swatchGoToPage();
				
			}else{
				swatchWrapperInnerDiv.setStyle('left', (8-children.length) * 12);
			}
		}
			
		function swatchGoToPage(){
			if(swatchcurrentPage <= 0){
				swatchprev.addClass('leftinactive');
				swatchprev.removeEvent('click', swatchprevPage);
			}else{
				swatchprev.removeClass('leftinactive');
				swatchprev.addEvent('click', swatchprevPage);
			}
			if(swatchcurrentPage >= swatchpages-1){
				swatchnext.addClass('rightinactive');
				swatchnext.removeEvent('click', swatchnextPage);
			}else{
				swatchnext.removeClass('rightinactive');
				swatchnext.addEvent('click', swatchnextPage);
			}
			swatchFx.cancel();
			swatchFx.start('left', -swatchvisible * swatchcurrentPage);
		}
		
		imgLink.setStyle('background', 'transparent');
	});
	
	var imgTips = new Tips('.productimglink', { className: 'producttip' });
	var myTips = new Tips('.swatches a, #information strong, #productLowerLeft a, #productLowerRight a', { className: 'swatchtip' });
	$$('#productLowerLeft a img, #productLowerRight a img').each(function(im){ im.removeProperty('alt'); });
});

// !Next Previous Popouts
window.addEvent('domready', function() {
	var leftButton = $('left');
	var prevProduct = $('prevProduct');
	var rightButton = $('right');
	var nextProduct = $('nextProduct');
	if(leftButton && prevProduct){
		prevProduct.setStyle('display', 'block');
		var leftFx = new Fx.Slide(prevProduct.getFirst(), { mode: 'horizontal', duration: 200, link: 'cancel', transition: 'quad:out' }).hide();
		leftButton.addEvents({
			'mouseenter': function(){
				leftFx.cancel();
				leftFx.slideIn();
			},
			'mouseleave': function(){
				leftFx.cancel();
				leftFx.slideOut();
			} 
		});
	}
	if(rightButton && nextProduct){
		nextProduct.setStyle('display', 'block');
		var rightFx = new Fx.Slide(nextProduct.getFirst(), { mode: 'horizontal', duration: 200, link: 'cancel', transition: 'quad:out' }).hide();
		rightButton.addEvents({
			'mouseenter': function(){
				rightFx.cancel();
				rightFx.slideIn();
			},
			'mouseleave': function(){
				rightFx.cancel();
				rightFx.slideOut();
			} 
		});
	}			
});

// !Lightboxes
window.addEvent('domready', function() {
	$$('.mb, .cur').each(function(a, i){
		if(a.get('rel').contains('ajax:true')){
			if(a.get('href').contains('?')){
				a.set('href', a.get('href') + "&lightbox=true");
			}else{
				a.set('href', a.get('href') + "?lightbox=true");
			}
		}
		if(a.get('rel').contains('iframe:true')){
			if(a.get('href').contains('?')){
				a.set('href', a.get('href') + "&iframe=true");
			}else{
				a.set('href', a.get('href') + "?iframe=true");
			}
		}
	});
	var box = {};
	box = new MultiBox('mb', {useOverlay: false, showControls: false});	
});


// !Currency lightbox
window.addEvent('domready', function() {
	// setup the currency selection window
	var cur = {};
	cur = new MultiBox('cur', {openFromLink: false, useOverlay: false, showControls: false});
	
});

function getUrlParameter( name ) {
	name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	var regexS = "[\\?&]"+name+"=([^&#]*)";
	var regex = new RegExp( regexS );
	var results = regex.exec( window.location.href );
	if( results == null ) {
	  return "";
	} else {
	  return results[1];
  }
}

function getURLMode(){
	var mode = new URI().get('scheme');
	var domain = new URI().get('host');
	return mode + "://" + domain;	
}

// !show/hide tab management
window.addEvent('domready', function(){
	var tablinks = $$('#tabs a');
	var tabmodifier = "-tab";
	var currentTab;
	if(tablinks){
		var activetabs = tablinks.filter(function(el){
			var id = el.get('id');
			if(id){ var tabcontent = $(id + tabmodifier); }
			if(tabcontent){
				return el;
			}
		});
		
		activetabs.each(function(el) {
			el.set({
			    'events': {
		        	'click': function(){ showTab(el); currentTab = el; return false; }
			    }
			});
			if(el.hasClass('current')){
				currentTab = el;
			}
		});
		
		if(!currentTab){
			hasHash = window.location.href.split("#");
			if(hasHash && hasHash[1]) {
				currentTab = $(hasHash[1].replace('-tab', ''));

			} else {
				currentTab = activetabs[0];
			}
		}
		showTab(currentTab)
	}
	
	function showTab(tab){
		activetabs.each(function(el) {
			var id = el.get('id');
			if(id){ var tabcontent = $(id + tabmodifier); }
      		if(tabcontent){
      			if(tab == el){
					el.set('class', 'current');
					tabcontent.set('class', 'tabcontent');
				}else{
					if(el.hasClass('current')){ el.removeClass('current'); }
					tabcontent.set('class', 'hide');
				}
      		}
		});
		var account = $('accountform');
		if(account){
			var action = account.get('action').split("#");
			if(action && action[0]) {
				account.set('action', action[0] + "#" + tab.get('id') + tabmodifier);
			}
		}
	}
});

// My Account Title Field
window.addEvent('domready', function() {
	var titleField = $('pri_title');
	if(!titleField){
		titleField = $('title');
	}
   
  if(titleField){
  	
  	var val = titleField.get('value');
  	var titleValues = ["", "Mr", "Miss", "Mrs", "Ms", "Dr", "Other"];
  	  	
  	var titleSelect = new Element('select', {
  		'id': 'titleFieldSelect',
  		'events': {
  			'change': function(){
  				val = this.getSelected().get('value')
  				updateTitle();
  			}
  		}
  	}).inject(titleField, 'before');
  	
  	var instruction = new Element('em', {
  		'text': 'Please enter below...',
  		'class': 'hide'
  	}).inject(titleSelect, 'after');

  	if(!titleValues.contains(val)){
  		val = "Other"; 		
  	}else{
  		titleField.addClass('hide');
  		instruction.addClass('hide');
  	}
  	
  	titleValues.each(function(item, i){
	  	var opt = new Element('option', {
	  		'value': item,
	  		'text': item
	  	}).inject(titleSelect);
	  	
	  	if(item == val){
	  		opt.set('selected', 'selected');
	  	}
  	});
 	
  }

  function updateTitle(){  	 	 	
  	if(val == "Other"){
  		titleField.set('value', '');
  		titleField.removeClass('hide');
  		instruction.removeClass('hide');
  	}else{
  		titleField.set('value', val);
  		titleField.addClass('hide');
  		instruction.addClass('hide');
  	}
  }		
});

window.addEvent('domready', function() {
	var inputWord = $('searchkeyword');
	if(inputWord){
		autocompleter = new Autocompleter.Request.JSON(inputWord, '/index:showview?tpl=search-results.json', {
			'indicatorClass': 'autocompleter-loading',
			onShow: deactivateSearchBox,
			onHide: activateSearchBox
		});
	}
	
	var refineWord = $('refinekeyword');
	if(refineWord){
		autocompleter = new Autocompleter.Request.JSON(refineWord, '/index:showview?tpl=search-results.json', {
			'indicatorClass': 'autocompleter-loading'
		});
	}			
});
