/*
*
*   RipCurl Javascript
*   @Author reactive.com
*   Ver 2.0
*
==========================================================================================================*/
/* 
* PRODUCT AVAILABLE
*/
function initProductAvailable(overide){
    
    if((isNotAvailableOnline == true) || (overide == true)){
        $('#selectionAction .productAddToCart').hide();
        $('#selectionAction .productLocations').show();
        $('#productSelect .size').hide();
        $('#productSelect .howMany').hide();
        $('#productSelect .availability').hide();
        $('#productSelect .shippingCost').hide();
    }else{
        $('#selectionAction .productAddToCart').show();
        $('#selectionAction .productLocations').hide();
        $('#productSelect .size').show();
        $('#productSelect .availability').show();
        $('#productSelect .shippingCost').show();
        $('.howMany').show();
    }
}

/*
* AUTO SELECT FIRST SIZE
*/
function autoSelectSize(){
    //Select the first available size
    var sizeList = $('#sizeList > li');
    sizeListLength = sizeList.length;
    var sizeIsAvailable = false;
    sizeList.each(function(i){
        if(!$(this).hasClass('disabled')){
            $(this).click();
            return false;
        }
    });
}

/*
* SET PRICE
*/
function setPrice(sender){
    if (attribute_colour[sender]['prices']['discount'] == ""){
        $('#productSelect h2.price .currency').html(attribute_colour[sender]['prices']['rrp']);
        $('#scriptPrice .currency').html('$'+attribute_colour[sender]['prices']['rrp']+' AUD');
    }else{
        $('#productSelect h2.price strike').html('$'+attribute_colour[sender]['prices']['rrp']);
        $('#productSelect h2.price .currency').html(attribute_colour[sender]['prices']['discount']);
        $('#scriptPrice .currency').html('$'+attribute_colour[sender]['prices']['discount']+' AUD');
    }
}

/*
* SIZE PICKER
*/
function initSizesPicker(){
    
    var source = $('#sizeRange select');
    var selected = source.find("option[selected]");
    
    source.parent().after('<ul id="sizeList"></ul>');
    source.hide();
    
    for (var i=0; i<=attribute_size.length-1; i++ ){
        if($(this).val() == selected.val()){
             var lineclass = "on";
        }else{
             var lineclass = "";
        }
        
        if(navigator_is_iPad){lineclass = lineclass + " ipad";$('#mainProduct').height(450);}
        
        $('#sizeList').append('<li class="sizeItem '+lineclass+'" id="'+attribute_size[i]['value']+'"><a href="#">'+attribute_size[i]['label']+'</a></li>');
        $('#'+attribute_size[i]['value']).bind('click', function(){
            if(!$(this).hasClass('disabled')){
                $('#sizeList .on').removeClass('on');
                $(this).addClass('on');
                source.val($(this).attr('id'));
                source.change(); 
            }
            return false;
        });
    }
    setSizesPicker(0);
}

/*
* SIZE PICKER SETTER
*/
function setSizesPicker(sender){  
    //Reset
    var noneAvailabe = true;
    $('#sizeList .disabled').removeClass('disabled');    
    for (var i=0; i<=attribute_colour[sender]['inventory'].length-1; i++ ){
        if (parseInt(attribute_colour[sender]['inventory'][i]['qty']) < 1){
            $('#'+attribute_colour[sender]['inventory'][i]['sizeId']).addClass('disabled').removeClass('on');
        }else{
            noneAvailabe = false;
        }
    }
    initProductAvailable(noneAvailabe);
}

/*
* COLOUR PICKER
*/
function initPickers() {
    
    initSizesPicker();
    
    var source = $('#colourSwatches select');
    var selected = source.find("option[selected]");
    var options = $("option", source);
    source.parent().after('<ul id="colourList"></ul>');

    options.each(function (i) {
        if ($(this).val() == selected.val()) {
            var lineclass = "on";
        } else {
            var lineclass = "";
        }
        
        if(navigator_is_iPad){lineclass = lineclass + " ipad";}
        
        //Find any White colours
        if(attribute_colour[i]['hexCode'] == "#FFF" || attribute_colour[i]['hexCode'] == "#FFFFFF"){
            var whiteClass = "white";
        }else{
            var whiteClass = "";
        }
        
        $('#colourList').append('<li><a id="' + $(this).val() + '" href="#" class="' + lineclass + ' ' + whiteClass + '" style="background-color:' + attribute_colour[i]['hexCode'] + ';">'+attribute_colour[i]['title']+'</a></li>');
        $('#'+$(this).val()).bind('click', function () {
            
            setSizesPicker(i);
            setPrice(i);
            autoSelectSize();
            
            $('#colourSwatches ul > li .on').removeClass('on');
            $(this).addClass('on');
            $('#colourLabel span').html(attribute_colour[i]['title']);
            
            thumbs = attribute_colour[i]['thumbs'];
            mains = attribute_colour[i]['mains'];
            zooms = attribute_colour[i]['zooms']; 
            if(!(thumbs.length == 0)){
                $('#productImageThumbs ul').hide().empty();
                for(var ii in thumbs){
                    if(ii == 0){var onclass = "on";}else{var onclass = "";}
                    $('#productImageThumbs ul').append('<li><a id="scriptThumbBind'+ii+'" href="javascript:displayProductImage(&#39;http://www.ripcurl.com.au/shop&#39;, &#39;'+mains[ii]+'&#39;, &#39;'+zooms[ii]+'&#39;)"><img class="'+onclass+'" src="http://www.ripcurl.com.au/shop'+thumbs[ii]+'" /></a></li>');
                    
                   $('#scriptThumbBind'+ii).bind('click', function(){
                        $('#productImageThumbs ul li a img').removeClass('on');
                        $('img', this).addClass('on');  
                    });
                
                }
                 displayProductImage('http://www.ripcurl.com.au/shop',mains[0],zooms[0]);
                 $('#productImageThumbs ul').show();
           } 
            
            source.val($(this).attr('id'));
            source.change();
            return false;
        });
    });
    source.hide();
    $('#colourList > li:first a').click();
}

// jQuery calls
$(document).ready(function () {

	navigator_is_iPad = (navigator.userAgent.match(/iPad/i) == null) ? false : true;



	// find all panel in #productInfo except the first and slideUp (if content in there).
	$('#productInfo').find('.section:gt(0)').children('.panel').slideUp(100).data('expand', false).siblings('h3').removeClass('open');

	if ($('#productInfo').find('.section:eq(0)').hasClass('prodFeatEmpty')) {
		$('#productInfo .productFeatures .panel').data('expand', false);
		$('#productInfo .productGuide').children('.panel').slideDown(100).data('expand', true).siblings('h3').addClass('open');
	}

	$('#productInfo h3').click(function () {
		var panel = $(this).siblings('.panel');
		if (panel.data('expand') == false) {
			$('#productInfo .panel').slideUp(100).data('expand', false);
			panel.data('expand', true).slideDown(100);
			$('#productInfo h3').removeClass('open');
			$(this).addClass('open');
		}
	});


	if (!navigator_is_iPad) {
		// Declaring and calling product zoom on product detail.
		var zoomOptions = {
			zoomWidth: 357,
			zoomHeight: 448,
			position: 'right',
			yOffset: 0,
			xOffset: 20,
			title: false
		}
		var zoomOptionsWide = {
			zoomWidth: 357,
			zoomHeight: 448,
			position: 'right',
			yOffset: -93,
			xOffset: 20,
			title: false
		}
		$('.productDetailVertical .jqzoom').jqzoom(zoomOptions);
		$('.productDetailWide .jqzoom').jqzoom(zoomOptionsWide);
	} else {
		$('.productDetailVertical .jqzoom').removeAttr("href").css({ 'cursor': 'default' });
		$('.productDetailWide .jqzoom').removeAttr("href").css({ 'cursor': 'default' });
	}

	// Adding on state to colour and size select.
	$('#sizeRange .sizeItem').click(function () {
		$('#sizeRange .sizeItem').each(function () {
			$(this).removeClass('on');
		});
		$(this).addClass('on');
	});




	// call jcarousel if more than 2 items for wide, 4 items for normal.
	if ($('.productDetailWide').length > 0) {
		if ($('.productDetailWide #productItems li').size() > 2) {
			$('.productDetailWide #productItems').jcarousel();
		}
	} else {
		if ($('#productItems li').size() > 4) {
			$('#productItems').jcarousel();
		}
	}

	// enabling share this and print
	$('#productDetailControls .shareThis, #productDetailControls .print').show();

	// Share This hover on detail page
	$('#productDetailControls .shareThis').hover(function () {
		$('ul', this).show();
		$(this).addClass('shareThisOn');
	}, function () {
		$('ul', this).hide();
		$(this).removeClass('shareThisOn');
	});

	// closing detail cart messages
	$('#selectionAction .close').click(function () {
		$(this).parent('.message').fadeOut('fast');
	});

	// Rollover thumbnails on Detail pages
	$('#productImageThumbs').find('li:eq(0)').children('a').children('img').addClass('on');
	$('#productImageThumbs li').click(function () {
		$('#productImageThumbs li img').each(function () {
			$(this).removeClass('on');
		});
		$('img', this).addClass('on');
	});

	// homepage rollover
	$('#splitterBox .split').hover(function () {
		$('.shade', this).css({ 'opacity': '0.35' }).fadeIn(100);
		$('ul', this).show();
	}, function () {
		$('.shade', this).css({ 'opacity': '0.35' }).fadeOut(100);
		$('ul', this).hide();
	});

	// display rollover text with javascript
	$('#productImageThumbs p').show();

	// show add to cart/wishlist buttons.
	$('#selectionAction a').show();

	$(".job-listing tr").hover(function () {
		if ($(this).find("a").length == 1) {
			$(this).css("cursor", "pointer");
		}
	}).click(function () {
		if ($(this).find("a").length == 1) {
			document.location.href = $(this).find("a").attr("href");
		}
	});

});
