$(function() {
	// do fonts first
	//Cufon.replace('#paddingright h1,.shoppingcartholder',{
	//	fontFamily: 'Tiemann Roman'
	//});

	// initialise superfish plugin
	//if ($().superfish) {
	//	$('ul.sf-menu').superfish();
	//}
	
	//Cufon.replace('.sf-menu li ul li',{
	//	fontFamily: 'Tiemann Roman',
	//	hover: true
	//});
	

	
	if ($().lightBox) {
		$('#productimage a').lightBox();
	}
	
	if ($('#homepromoholder')) {
		var promos = $('#homepromoholder').children();
		var promo_ids = new Array();
		
		if (promos.length > 0) {
			for (var i = 0; i < promos.length; i++) {
				promo_ids[i] = promos[i].id;
			}
			
			/*var cf = new Crossfader(
				promo_ids,
				500,
				5000
			);
*/
		}
	}
	
	//initTopNavEffect();
	add_product_js_links();
	refine_search();
	rating_widget();
	checkout_delivery();
	choose_a_concern();
	external_links();
	
	$('.mover').hide();	
	$('#slideToggle').click(function(){
		$(this).siblings('.mover').slideToggle();
	});

	if($('#spaimages a').length)
		$('#spaimages a').lightBox();

});

function initTopNavEffect() {
	if ($.browser.msie && $.browser.version < 7) return;
	
	if ($('#topnavigation li')) {
		$('#topnavigation li')
			.removeClass('highlight')
			.find('a')
			.append('<span class="hover" />')
			.each(function () {
				var $span = $('> span.hover', this).css('opacity', 0);
				$(this).hover(function () {
					// on hover
					$span.stop().fadeTo(500, 1);
				}, function () {
					// off hover
					$span.stop().fadeTo(500, 0);
				});
			});
	}
}

function add_product_js_links() {
	if ($('ul.productemailbookmarkprint')) {
		$('ul.productemailbookmarkprint')
			.append('<li><span class="bookmarkbullettxt"><a href="#bookmark" rel="">Bookmark Page</a></span></li>')
			.append('<li><span class="printbullettxt"><a href="#print">Print Page</a></span></li>');
			
		$('span.bookmarkbullettxt a').click(function() {
			// FF
			if (window.sidebar) {
				window.sidebar.addPanel(document.title, window.location, '');
			// Opera
			} else if (window.opera && window.print) {
				var elem = document.createElement('a');
				elem.setAttribute('href',window.location);
				elem.setAttribute('title',document.title);
				elem.setAttribute('rel','sidebar');
				elem.click();
			// IE
			} else if (document.all) {
				window.external.AddFavorite(window.location, document.title);
			}
		});
		
		$('span.printbullettxt a').click(function() {
			window.print();
			return false;
		});
	}
}

function refine_search() {
	if ($('select#refine-type')) {
		$('select#refine-type')
			.change(function() {
				if ($('select#refine-type option:selected').val() != $('select#refine-type option:selected').text()) {
					$('#refine-search').submit();
				}
			});
	}
	
	if ($('select#refine-brand')) {
		$('select#refine-brand')
			.change(function() {
				if ($('select#refine-brand option:selected').val() != $('select#refine-brand option:selected').text()) {
					$('#refine-search').submit();
				}
			});
	}
	
	if ($('select#refine-sort')) {
		$('select#refine-sort')
			.change(function() {
				if ($('select#refine-sort option:selected').val() != $('select#refine-sort option:selected').text()) {
					$('#refine-search').submit();
				}
			});
	}
}

function choose_a_concern() {
	if ($('select#choose-a-concern')) {
		$('select#choose-a-concern')
			.change(function() {
				if ($('select#choose-a-concern option:selected').val() != $('select#choose-a-concern option:selected').text()) {
					$('#choose-a-concern-form').submit();
				}
			});
	}
}

function rating_widget() {
	if ($('label.star-rating')) {
		var current_value = $('label.star-rating input:radio:checked').val() || 0;
		$('label.star-rating input:radio').hide();
		$('label.star-rating:gt(0)').hide();
		
		$('label.star-rating:eq(0)')
			.click(function(e) {
				e.preventDefault();
			})
			.width(73);
		
		$('label.star-rating:eq(0) span')
			.removeClass('rating1 rating2 rating3 rating4 rating5')
			.addClass('rating' + current_value)
			.css('cursor','pointer')
			.mousemove(function(e) {
				var pos = parseInt( (e.clientX - $(this).position().left) / $(this).width() * 5, 10) + 1;
				$(this)
					.removeClass('rating1 rating2 rating3 rating4 rating5')
					.addClass('rating' + pos);
			})
			.mouseleave(function(e) {
				$(this)
					.removeClass('rating1 rating2 rating3 rating4 rating5')
					.addClass('rating' + current_value);
			})
			.click(function(e) {
				current_value = parseInt( (e.clientX - $(this).position().left) / $(this).width() * 5, 10) + 1;
				$('label.star-rating:eq(' + (current_value - 1) + ') input:radio').click();
			});
	}
}

function checkout_delivery() {
	if ($('#form-billing')) {
		$('#billing_address')
			.change(function() {
				change_address(this, 'billing');
			});
	}
	
	if ($('#form-delivery')) {
		var fields = $('#form-delivery table tr:gt(0)');
		var inputs = $('#form-delivery table tr:gt(0) :input');
		
		if (fields.length && ($('#delivery_address').val()=='same' || $('#delivery_address').val()==undefined)) {
			inputs.attr('disabled', true);
		}
		
		fields.hide();
		inputs.attr('disabled', true);
		
		$('#delivery_address')
			.change(function() {
				switch($(this).val()) {
					case 'same':
						inputs.attr('disabled', true);
						fields.fadeOut();
						break;
						
					case 'manual':
						inputs.val('');
						inputs.attr('disabled', false);
						fields.fadeIn();
						break;
						
					default:
						change_address(this, 'delivery');
						inputs.attr('disabled', false);
						fields.fadeIn();
						break;
				}
			});
	}
}

function change_address(el, type) {
	if (isNaN(parseFloat($(el).val()))) {
		$('#'+type+'_addr1').val('');
		$('#'+type+'_addr2').val('');
		$('#'+type+'_town').val('');
		$('#'+type+'_county').val('');
		$('#'+type+'_postcode').val('');
		$('#'+type+'_phone').val('');
	} else {
		$.getJSON('/shopping-cart/get-address/'+$(el).val(), function(data) {
			$('#'+type+'_addr1').val(data.address1);
			$('#'+type+'_addr2').val(data.address2);
			$('#'+type+'_town').val(data.town);
			$('#'+type+'_county').val(data.county);
			$('#'+type+'_postcode').val(data.postcode);
			$('#'+type+'_phone').val(data.telephone);
		});
	}
}

function external_links() {
	if (!document.getElementsByTagName) {
		return;
	}

    var anchors = document.getElementsByTagName("a");

    for (var i = 0; i < anchors.length; i++) {
        var anchor = anchors[i];

        if (anchor.getAttribute("href") && (anchor.getAttribute("rel") === "external" || anchor.getAttribute("rel") === "new-window")) {
            if (anchor.getAttribute("className")) {
                anchor.target = anchor.getAttribute("className");
            }
            else {
                anchor.target = "_blank";
            }
        }
    }
}

