if(typeof console === "undefined") {
    console = { log: function() { } };
}

//////////////////////////////////////////////////////////////////////////////////
// Cloud Zoom V1.0.2
// (c) 2010 by R Cecco. <http://www.professorcloud.com>
// MIT License
//
// Please retain this copyright header in all versions of the software
//////////////////////////////////////////////////////////////////////////////////
(function($){
    $(document).ready(function(){
        $('.cloud-zoom, .cloud-zoom-gallery').CloudZoom()
        });
    function format(str){
        for(var i=1;i<arguments.length;i++){
            str=str.replace('%'+(i-1),arguments[i])
            }
            return str
        }
        function CloudZoom(jWin,opts){
        var sImg=$('img',jWin);
        var img1;
        var img2;
        var zoomDiv=null;
        var $mouseTrap=null;
        var lens=null;
        var $tint=null;
        var softFocus=null;
        var $ie6Fix=null;
        var zoomImage;
        var controlTimer=0;
        var cw,ch;
        var destU=0;
        var destV=0;
        var currV=0;
        var currU=0;
        var filesLoaded=0;
        var mx,my;
        var ctx=this,zw;
        setTimeout(function(){
            if($mouseTrap===null){
                var w=jWin.width();
                jWin.parent().append(format('<div style="width:%0px;position:absolute;top:75%;left:%1px;text-align:center" class="cloud-zoom-loading" >Loading...</div>',w/3,(w/2)-(w/6))).find(':last').css('opacity',0.5)
                }
            },200);
    var ie6FixRemove=function(){
        if($ie6Fix!==null){
            $ie6Fix.remove();
            $ie6Fix=null
            }
        };
    
this.removeBits=function(){
    if(lens){
        lens.remove();
        lens=null
        }
        if($tint){
        $tint.remove();
        $tint=null
        }
        if(softFocus){
        softFocus.remove();
        softFocus=null
        }
        ie6FixRemove();
    $('.cloud-zoom-loading',jWin.parent()).remove()
    };
    
this.destroy=function(){
    jWin.data('zoom',null);
    if($mouseTrap){
        $mouseTrap.unbind();
        $mouseTrap.remove();
        $mouseTrap=null
        }
        if(zoomDiv){
        zoomDiv.remove();
        zoomDiv=null
        }
        this.removeBits()
    };
    
this.fadedOut=function(){
    if(zoomDiv){
        zoomDiv.remove();
        zoomDiv=null
        }
        this.removeBits()
    };
    
this.controlLoop=function(){
    if(lens){
        var x=(mx-sImg.offset().left-(cw*0.5))>>0;
        var y=(my-sImg.offset().top-(ch*0.5))>>0;
        if(x<0){
            x=0
            }else if(x>(sImg.outerWidth()-cw)){
            x=(sImg.outerWidth()-cw)
            }
            if(y<0){
            y=0
            }else if(y>(sImg.outerHeight()-ch)){
            y=(sImg.outerHeight()-ch)
            }
            lens.css({
            left:x,
            top:y
        });
        lens.css('background-position',(-x)+'px '+(-y)+'px');
        destU=(((x)/sImg.outerWidth())*zoomImage.width)>>0;
        destV=(((y)/sImg.outerHeight())*zoomImage.height)>>0;
        currU+=(destU-currU)/opts.smoothMove;
        currV+=(destV-currV)/opts.smoothMove;
        zoomDiv.css('background-position',(-(currU>>0)+'px ')+(-(currV>>0)+'px'))
        }
        controlTimer=setTimeout(function(){
        ctx.controlLoop()
        },30)
    };
    
this.init2=function(img,id){
    filesLoaded++;
    if(id===1){
        zoomImage=img
        }
        if(filesLoaded===2){
        this.init()
        }
    };

this.init=function(){
    $('.cloud-zoom-loading',jWin.parent()).remove();
    $mouseTrap=jWin.parent().append(format("<div class='mousetrap' style='background-image:url(\".\");z-index:999;position:absolute;width:%0px;height:%1px;left:%2px;top:%3px;\'></div>",sImg.outerWidth(),sImg.outerHeight(),0,0)).find(':last');
    $mouseTrap.bind('mousemove',this,function(event){
        mx=event.pageX;
        my=event.pageY
        });
    $mouseTrap.bind('mouseleave',this,function(event){
        clearTimeout(controlTimer);
        if(lens){
            lens.fadeOut(299)
            }
            if($tint){
            $tint.fadeOut(299)
            }
            if(softFocus){
            softFocus.fadeOut(299)
            }
            zoomDiv.fadeOut(300,function(){
            ctx.fadedOut()
            });
        return false
        });
    $mouseTrap.bind('mouseenter',this,function(event){
        mx=event.pageX;
        my=event.pageY;
        zw=event.data;
        if(zoomDiv){
            zoomDiv.stop(true,false);
            zoomDiv.remove()
            }
            var xPos=opts.adjustX,yPos=opts.adjustY;
        var siw=sImg.outerWidth();
        var sih=sImg.outerHeight();
        var w=opts.zoomWidth;
        var h=opts.zoomHeight;
        if(opts.zoomWidth=='auto'){
            w=siw
            }
            if(opts.zoomHeight=='auto'){
            h=sih
            }
            var appendTo=jWin.parent();
        switch(opts.position){
            case'top':
                yPos-=h;
                break;
            case'right':
                xPos+=siw;
                break;
            case'bottom':
                yPos+=sih;
                break;
            case'left':
                xPos-=w;
                break;
            case'inside':
                w=siw;
                h=sih;
                break;
            default:
                appendTo=$('#'+opts.position);
                if(!appendTo.length){
                appendTo=jWin;
                xPos+=siw;
                yPos+=sih
                }else{
                w=appendTo.innerWidth();
                h=appendTo.innerHeight()
                }
            }
            zoomDiv=appendTo.append(format('<div id="cloud-zoom-big" class="cloud-zoom-big" style="display:none;position:absolute;left:%0px;top:%1px;width:%2px;height:%3px;background-image:url(\'%4\');z-index:99999;"></div>',xPos,yPos,w,h,zoomImage.src)).find(':last');
        if(sImg.attr('title')&&opts.showTitle){
        zoomDiv.append(format('<div class="cloud-zoom-title">%0</div>',sImg.attr('title'))).find(':last').css('opacity',opts.titleOpacity)
        }
        if($.browser.msie&&$.browser.version<7){
        $ie6Fix=$('<iframe frameborder="0" src="#"></iframe>').css({
            position:"absolute",
            left:xPos,
            top:yPos,
            zIndex:999,
            width:w,
            height:h
        }).insertBefore(zoomDiv)
        }
        zoomDiv.fadeIn(500);
        if(lens){
        lens.remove();
        lens=null
        }
        cw=(sImg.outerWidth()/zoomImage.width)*zoomDiv.width();
        ch=(sImg.outerHeight()/zoomImage.height)*zoomDiv.height();
        lens=jWin.append(format("<div class = 'cloud-zoom-lens' style='display:none;z-index:98;position:absolute;width:%0px;height:%1px;'></div>",cw,ch)).find(':last');
        $mouseTrap.css('cursor',lens.css('cursor'));
        var noTrans=false;
        if(opts.tint){
        lens.css('background','url("'+sImg.attr('src')+'")');
        $tint=jWin.append(format('<div style="display:none;position:absolute; left:0px; top:0px; width:%0px; height:%1px; background-color:%2;" />',sImg.outerWidth(),sImg.outerHeight(),opts.tint)).find(':last');
        $tint.css('opacity',opts.tintOpacity);
        noTrans=true;
        $tint.fadeIn(500)
        }
        if(opts.softFocus){
        lens.css('background','url("'+sImg.attr('src')+'")');
        softFocus=jWin.append(format('<div style="position:absolute;display:none;top:2px; left:2px; width:%0px; height:%1px;" />',sImg.outerWidth()-2,sImg.outerHeight()-2,opts.tint)).find(':last');
        softFocus.css('background','url("'+sImg.attr('src')+'")');
        softFocus.css('opacity',0.5);
        noTrans=true;
        softFocus.fadeIn(500)
        }
        if(!noTrans){
        lens.css('opacity',opts.lensOpacity)
        }
        if(opts.position!=='inside'){
        lens.fadeIn(500)
        }
        zw.controlLoop();
        return
    })
};

img1=new Image();
$(img1).load(function(){
    ctx.init2(this,0)
    });
img1.src=sImg.attr('src');
img2=new Image();
$(img2).load(function(){
    ctx.init2(this,1)
    });
img2.src=jWin.attr('href')
}
$.fn.CloudZoom=function(options){
    try{
        document.execCommand("BackgroundImageCache",false,true)
        }catch(e){}
    this.each(function(){
        var relOpts,opts;
        eval('var	a = {'+$(this).attr('rel')+'}');
        relOpts=a;
        if($(this).is('.cloud-zoom')){
            $(this).css({
                'position':'relative',
                'display':'block'
            });
            $('img',$(this)).css({
                'display':'block'
            });
            if($(this).parent().attr('id')!='wrap'){
                $(this).wrap('<div id="wrap" style="top:0px;z-index:9999;position:relative;"></div>')
                }
                opts=$.extend({},$.fn.CloudZoom.defaults,options);
            opts=$.extend({},opts,relOpts);
            $(this).data('zoom',new CloudZoom($(this),opts))
            }else if($(this).is('.cloud-zoom-gallery')){
            opts=$.extend({},relOpts,options);
            $(this).data('relOpts',opts);
            $(this).bind('click',$(this),function(event){
                var data=event.data.data('relOpts');
                $('#'+data.useZoom).data('zoom').destroy();
                $('#'+data.useZoom).attr('href',event.data.attr('href'));
                $('#'+data.useZoom+' img').attr('src',event.data.data('relOpts').smallImage);
                $('#'+event.data.data('relOpts').useZoom).CloudZoom();
                return false
                })
            }
        });
return this
};

$.fn.CloudZoom.defaults={
    zoomWidth:'auto',
    zoomHeight:'auto',
    position:'right',
    tint:false,
    tintOpacity:0.5,
    lensOpacity:0.5,
    softFocus:false,
    smoothMove:3,
    showTitle:true,
    titleOpacity:0.5,
    adjustX:0,
    adjustY:0
}
})(jQuery);

function added_to_bag(){
    $(".add_to_basket").attr({
        src : "/images/en/buttons/item_added.gif"
    });
    $(".rugger_add_to_basket").attr({
        src : "/images/en/buttons/rugger_item_added.gif"
    });
}

function add_to_bag(){
    $(".add_to_basket").attr({
        src : "/images/en/buttons/add_to_basket.gif"
    });
    $(".rugger_add_to_basket").attr({
        src : "/images/en/buttons/rugger_add_to_basket.gif"
    });
}

/* A nicer version of the notifier

function added_to_bag(){
	$("#add_to_basket").fadeOut("fast");
}

function add_to_bag(){
	$("#add_to_basket").fadeIn("slow");
}

*/

function fade_ajax_error(){
    $("#ajax_notifier").fadeOut("slow");
}

function update_basket_total(){
    $.ajax({
        type: "POST",
        url: "/shopping_bag/",
        data: "&ajax=1&act=update_basket_count",
        success: function(msg){
            $('#hd_basket_total').replaceWith("<span id='hd_basket_total'>"+msg+"</span>");
        }
    });
}

$(document).ready(function(){ 
    $("#tellafriend_panel").hide();
    $('.prod_info_panels').hide();
    $('#prod_panel_1').show();
    $('#prod_tab_1').addClass('active_prod_tab');
    
    //Hide Select default text on select menus
    $(".value-0").hide();
	
    // Handle the hide/show of tell a friend panel
    $("#tellafriend_tab").mouseover(
        function(){
            $("#tellafriend_tab").css("cursor","pointer");
            $("#tellafriend_tab").css("color","#666666");
        }
        );
        
    $("#tellafriend_tab").mouseout(
        function(){
            $("#tellafriend_tab").css("color","#a4a4a4");
        }
        );
    
    $("#tellafriend_tab").click(
        function(){
            $("#tellafriend_panel").toggle();
        }
        );
		
    //Handle AJAX Basket Add Process
    $("#cart").submit(
        function(){
            //var prod_desc_id = $("#prod_desc_id").attr("value");
            var prod_desc_id = $("select#prod_desc_id").val();

            console.log(prod_desc_id);
            console.log($("#prod_desc_id"));

            var quantity = $("#quantity").attr("value");
            var act = $("#act").attr("value");
            var continueURL = $("#continueURL").attr("value");
            var target_id = "#add_to_basket";
            var error_id = "#ajax_notifier";

            if(prod_desc_id == 0){
                alert("Please select a size");
            }else{						
                $.ajax({
                    type: "POST",
                    url: "/shopping_bag/",
                    data: "prod_desc_id="+prod_desc_id+"&quantity="+quantity+"&act="+act+"&ajax=1&continueURL="+continueURL,
                    success: function(msg){
                        if(msg == ""){
                            //There has been an error of somes sort.
                            $(error_id).replaceWith('<div id="ajax_notifier">There has been an error adding this item to your basket</div>');
                            $(error_id).hide();
                            $(error_id).fadeIn("slow");
                        }else{
                            // There is a message to display.
                            added_to_bag();
                            update_basket_total();
                            minibasketShowAfterUpdate(msg);
                            window.setTimeout('add_to_bag()', 7000);
                            window.setTimeout('fade_ajax_error()', 7000);
                        }
                    }
                });
            }
            //Prevents the default form submit					
            return false; 
        }
        );
		
    var body_height = $("body").height();
    $("#tell_a_friend_light_box").height(body_height+110);

    //Handle AJAX Tell a friend Request
    $("#registerform").submit(
        function(){
            var prod_desc_id2 = $("#prod_desc_id").attr("value");
            var name1 = $("#name1").attr("value");
            var name2 = $("#name2").attr("value");
            var email1 = $("#email1").attr("value");
            var email2 = $("#email2").attr("value");
            var message = $("#message").attr("value");
            var security_code = $("#security_code").attr("value");
            var act = "submit";
								
            $.ajax({
                type: "POST",
                url: "/includes/ajax_tell_a_friend_core.php",
                data: "name1="+name1+"&name2="+name2+"&email1="+email1+"&email2="+email2+"&message="+message+"&prod_desc_id="+prod_desc_id2+"&act="+act+"&ajax=1&security_code="+security_code,
                success: function(msg){
                    // Successful, swap the image to basket added
                    $("#response").replaceWith('<div id="response" style="font-weight:bold; colour:#000; margin:5px 0px 10px 5px;">'+msg+'</div>');
                }
            });
            
            //Prevents the default form submit					
            return false; 
        }
        );
            
    /*$("#registerform").submit(function(){
            alert("test");
            return false;
        });*/
	
    $(".prod_info_tabs").click(
        function(){
            var idClicked = $(this).attr("id");	
            var tabId = idClicked.split('_');
            var idNum = tabId[2];
            var panel = "#prod_panel_"+idNum;
			
            $('.prod_info_panels').hide();
            $('.prod_info_tabs').removeClass('active_prod_tab');
            $("#"+idClicked).addClass('active_prod_tab');
            $(panel).show();
        }
        );

    // Quantity options
    $('#quantity_options_nonjs').hide();
    $('#quantity_options_withjs').show();
    if($('#quantity').val()<=1){
        $('#decrement-quantity').css('background-position','0 -9px');
    }
    if($('#quantity').val()>=99){
        $('#increment-quantity').css('background-position','0 -9px');
    }
    $('#quantity').change(function() {
        var quant = $('#quantity').val();
        $('#decrement-quantity').css('background-position','0 0');
        $('#increment-quantity').css('background-position','0 0px');
        if(quant<=1){
            $('#decrement-quantity').css('background-position','0 -9px');
            $('#quantity').val(1);
        }
        if(quant>=99){
            $('#increment-quantity').css('background-position','0 -9px');
            $('#quantity').val(99);
        }
    });
    $('#decrement-quantity').click(function(){
        var quant = $('#quantity').val();
        quant--;
        $('#increment-quantity').css('background-position','0 0px');
        if(quant<=1){
            $('#decrement-quantity').css('background-position','0 -9px');
            quant=1;
        }
        $('#quantity').val(quant);
    });
    $('#increment-quantity').click(function(){
        var quant = $('#quantity').val();
        quant++;
        $('#decrement-quantity').css('background-position','0 0');
        if(quant>=99){
            $('#increment-quantity').css('background-position','0 -9px');
            quant=99;
        }
        $('#quantity').val(quant);
    });

    //	This block is only needed if rollover states are needed.
    //	$('#decrement-quantity').mouseenter(function(){
    //		if($('#quantity').val()>1){
    //			$(this).css('background-position','0 -14px');
    //		}
    //	});
    //	$('#decrement-quantity').mouseleave(function(){
    //		if($('#quantity').val()>1){
    //			$(this).css('background-position','0 0');
    //		}
    //	});
    //	$('#increment-quantity').mouseenter(function(){
    //		if($('#quantity').val()<99){
    //			$(this).css('background-position','0 -14px');
    //		}
    //	});
    //	$('#increment-quantity').mouseleave(function(){
    //		if($('#quantity').val()<99){
    //			$(this).css('background-position','0 0');
    //		}
    //	});

    //Event Tracking, these are triggers for the function in event_tracking.js
    $('.product-related-item a').click(function(){
        if (typeof(event_tracking_enabled) != 'undefined') {
            track.productRelatedClick($('#event_tracking_category').text(), $(this).attr('href'));
        }
    });
    $('.product-recent-item a').click(function(){
        if (typeof(event_tracking_enabled) != 'undefined') {
            track.productRecentClick($('#event_tracking_category').text(), $(this).attr('href'));
        }
    });
    $('.prod_info_tabs').click(function(){
        if (typeof(event_tracking_enabled) != 'undefined') {
            track.productTabsClick($('#event_tracking_category').text(), $(this).text().trim());
        }
    });
    //Set Variable for Event Tracking
    product_page = true;
    // END Event Tracking

    //if only one size then select automatically
    if ($('#size-menu .size_click_box').not('.size_outofstock').not('.size_notavailable').length == 1){
        $('#size-menu .size_click_box').trigger('click');
    }
    
    $("#tell_a_friend_holder").click(function(){
        // zoom to top of page
        $('html').animate({
            scrollTop:0
        }, 'slow');//IE, FF
        $('body').animate({
            scrollTop:0
        }, 'slow');//chrome, safari
        $("#tell_a_friend_light_box").fadeIn();
    });
    
    $("#tell_a_friend_light_box_close").click(function(){
        $("#tell_a_friend_light_box").fadeOut();
    });
    
    if($.browser.msie && parseInt($.browser.version, 10) == 7) {
        $("#social_holder_google_plus").click(function(){
            alert("This functionality is not supported in Internet Explorer 7.");
        });
    } 

});
