//gallery_js
var imageIndex = 0;
var ajaxReady = true;
var portrailPhotos = new Array;
var landscapePhotos = new Array;
var portraitImagesIndex = 0;
var landscapeImagesIndex = 0;


function getScrollXY() {
    var x = 0, y = 0;
    if( typeof( window.pageYOffset ) == 'number' ) {
        // Netscape
        x = window.pageXOffset;
        y = window.pageYOffset;
    } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
        // DOM
        x = document.body.scrollLeft;
        y = document.body.scrollTop;
    } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
        // IE6 standards compliant mode
        x = document.documentElement.scrollLeft;
        y = document.documentElement.scrollTop;
    }
    return [x, y];
}

function appendImage(imageID, key, imageClass){

	var imageURL = '';
	var largeImgURL = '';
	if(imageClass == 'portrait'){
		imageURL = 'http://s7d1.scene7.com/is/image/SmithNoble/gallerythumbportrait?$bid=bnd_' + imageID;
		largeImgURL = 'http://s7ondemand1.scene7.com/is/image/SmithNoble/bnd_' + imageID + '?resMode=sharp2&wid=360&hei=450';

	} else if (imageClass == 'landscape'){
		imageURL = 'http://s7d1.scene7.com/is/image/SmithNoble/gallerythumblandscape?$bid=bnd_' + imageID;
		largeImgURL = 'http://s7ondemand1.scene7.com/is/image/SmithNoble/bnd_' + imageID + '?resMode=sharp2&wid=450&hei=360';
	}
	var li = "<li class='" + imageClass + "'><a href='javascript:void(0)' id='" + imageID + "' data-largesrc='"+largeImgURL+"'><img id='img" + key + "' class='lazy' src='"+imageURL+"' alt=''  /></a></li>";
	$("#grid").append(li);
	var liToGrid = $("#" + imageID).parent();
	Grid.addItems(liToGrid);
}

function browserVersion(){

	var ua = window.navigator.userAgent;
	var msie = ua.indexOf ("MSIE");
	if ( msie > 0 ){      
		return parseInt(ua.substring (msie+5, ua.indexOf (".", msie )));
	} else {                
		return 0;
	}
}

function getLastPortraitImage(){

	var image = $("#grid>.portrait:last");
	return image;
}

function openImage(){
	
	var imageToOpen = $("#" + bid);
	imageToOpen.find("img").load(function(){
		$(this).click();
	});
}

function replaceBidInURL(newBid){
	
	var host = window.location.protocol + "//" + window.location.host;
	var roomType = $("#roomType").val();
	var product = $("#product").val();
	var decorStyle = $("#decorStyle").val();
	var url = "";
	if(typeof newBid === "undefined"){
		url = "/gallery?roomType=" + $("#roomType").val() + "&product=" + $("#product").val() + "&decorStyle=" + $("#decorStyle").val() + "#!";
	} else {
		url = "/gallery?bid=" + newBid + "&roomType=" + $("#roomType").val() + "&product=" + $("#product").val() + "&decorStyle=" + $("#decorStyle").val() + "#!";
		bid = newBid;
	}
	
	if(($.browser.msie && browserVersion() >= 10) || !$.browser.msie){
		window.history.replaceState( {} , '', url);
	}
	return url;
}

console.debug = function(e){
	console.log(e);
}

function OpenInNewWindow(url,color){

	$('#defaultColorForm').attr('action',url);	
	$('#defaultMaterial').val(color);
	window.open('', 'configWindow');
	$('#defaultColorForm').submit();
}

function addSampleToWishlistOrCard(type, sproduct, description, colors){
	var colorsArrayFormated = "'" + colors.join("','") + "'";
	if(type == 'cart'){
		checkLogin("addMultipleSamplesToCart("+sproduct+", '"+description+"', ["+colorsArrayFormated+"])");		
	} else if(type == 'wishlist'){
		checkLogin("addMultipleSamplesToWishList("+sproduct+", '"+description+"', ["+colorsArrayFormated+"])", true);
	}
	//updateURL();
}

function showPinterestImage(itemId, productDescription){

	var pinsrc = "//smithnoble.scene7.com/is/image/SmithNoble/bnd_"+itemId+"";
	var pinurl = "http%3A%2F%2Fwww.smithandnoble.com%2Fgallery%2Fbid%3D"+itemId;
	$('.fullimg .large-img a').remove();
	var pinit = $('.fullimg .large-img').append("<a href=\"//pinterest.com/pin/create/button/?url="+pinurl+"&media="+pinsrc+"&description="+productDescription+"\"  data-pin-do=\"buttonPin\" data-pin-config=\"beside\" ><img src=\"//assets.pinterest.com/images/pidgets/pin_it_button.png\" /></a>");
	
	if((navigator.userAgent.match(/iPad/i))){
		$('.large-img a').css('position','relative');
	} else {
		window.parsePinBtns(pinit);
		$('.lightbox-image').css('visibility','visible');
	}
	$('.fullimg .large-img a').css('visibility','visible');
	$('.large-img a').css('top','-30px');
	$('.large-img a').css('left','30px');
}

function findPhotos() {

	var roomType = $("#roomType").val();
	var product = $("#product").val();
	var decorStyle = $("#decorStyle").val();
	$.ajax({
		url: ultraHome+'gallery-filters/roomType='+ roomType+'/product='+product+'/decorStyle='+decorStyle,
		type: 'POST',
		async: false,
		data: "",
		success: function(data){

			$('#pgcontent').html(data);
			Grid.update($("#grid").children('li'));
			loadPhotos(0,21);
			window.scrollTo(0,0);
			if(photos.length <= imageIndex){
				$("#load-more-photos").remove();
			}
		}
	});
}

function updateURLAndRemoveBid(){
	bid = 0;
	updateURL();
}

function bindImageClickEvent(){
	$("li>a").click(function(){
		$this = $(this);
		var imageBid = $this.attr("id");
		replaceBidInURL(imageBid);
	});
}

function loadPhotos(startPoint, endPoint){
	
	if(endPoint >= photos.length){
		endPoint = photos.length;
	}
	var data = "";
	for(var i = startPoint; i < endPoint ;i++){
		data = data + "img" + i + "=" + photos[i].ID + "&";
	}
	data = data.substring(0,data.length - 1);
	ajaxReady = false;
	$.ajax({
		async : true,
		url: ultraHome+"getImagesDimentions",
		type: 'POST',
		data: data,
		success: function(response) {		
		
			var images = JSON.parse(response);
			for(var i = 0; i < images.length; i++){
				if(images[i][1][0] > images[i][1][1]){
					landscapePhotos.push(images[i]);
				} else {
					portrailPhotos.push(images[i]);
				}
			}
			var pattern = ["l","p","p"];
			var patternIndex = 0;
			var numberOfAppendImages = 0;
			for(var i = 0; i < images.length; i++){
				if(pattern[patternIndex] == "p"){
					if(portraitImagesIndex < portrailPhotos.length){
						appendImage(portrailPhotos[portraitImagesIndex][0],"img" + i, "portrait");
						portraitImagesIndex++;
					} else if(landscapeImagesIndex < landscapePhotos.length){
						appendImage(landscapePhotos[landscapeImagesIndex][0],"img" + i, "landscape");
						landscapeImagesIndex++;
					}
				} else if(pattern[patternIndex] == "l") {
					if(landscapeImagesIndex < landscapePhotos.length){
						appendImage(landscapePhotos[landscapeImagesIndex][0],"img" + i, "landscape");
						landscapeImagesIndex++;
					} else if(portraitImagesIndex < portrailPhotos.length){
						appendImage(portrailPhotos[portraitImagesIndex][0],"img" + i, "portrait");
						portraitImagesIndex++;
					}
				}
				if(patternIndex == pattern.length - 1){
					patternIndex = 0;
				} else {
					patternIndex++;
				}
			}
			imageIndex = imageIndex + images.length;
			bindImageClickEvent();
			if(bid != 0){
				openImage();
			}
			ajaxReady = true;
		}
	});
}

$(function() {
	
	updateURL();
	$("#roomType").on("change",updateURLAndRemoveBid);
	$("#decorStyle").on("change",updateURLAndRemoveBid);
	$("#product").on("change",updateURLAndRemoveBid);
	Grid.init();
	loadPhotos(0, 21);
	$(".lb-nav").remove();
	$("#load-more-photos").css("cursor", "pointer");
	$("#load-more-photos").css("cursor", "#17467A");
	$("#load-more-photos").css("padding", "5px");
	$("#load-more-photos").parents("td").css("padding","15px");
	$("#load-more-photos").click(function(){
		window.scrollTo($(document).height(),$(document).height() + 50);
	});
	if(photos.length <= imageIndex){
		$("#load-more-photos").remove();
		$("#footer").show();
		$("#connectedBox").show();
	} else {
		$("#footer").hide();
		$("#connectedBox").hide();
	}
	$(window).scroll(function(){
		
		if(getScrollXY()[1] >= 200){
			$(".browsepanel").css('position','fixed');
			$(".browsepanel").css('width','976');
			$(".browsepanel").css('z-index','9999');
			$(".browsepanel").css('top','0');
			$(".browsepanel").css('background','#ece8e1');
			$(".browsepanel").css('box-shadow', '0px 5px 5px -5px #999');
		} else {
			$(".browsepanel").css('position','static');
			$(".browsepanel").css('box-shadow','none');
		}      
		if (getScrollXY()[1] >= $(document).height() - $(window).height()){
			if(photos.length > imageIndex){
				if($("#footer").is(":visible") == true){
					$("#footer").hide();
					$("#connectedBox").hide();
				}
				if(ajaxReady){
					loadPhotos(imageIndex, imageIndex + 21);
				}
			} else {
				$("#load-more-photos").remove();
				$("#footer").show();
				$("#connectedBox").show();
			}
		}
	});	
	$(".lb-close").css("position","absolute");
	$(".lb-close").css("top","-12px");
	$(".lb-close").css("right","0px");
	
	$(".lb-image ,.lb-image-landscape ,.lb-image-portrait").on("click",function(){ 
		$('.lb-close').click(); 
	});
});