function doprodgallerycsswrite(suff) {
	var cssurl = rootpath + "css/prodwidget"+suff+".css";
	var css=document.createElement('link');
	css.setAttribute('type','text/css');
	css.setAttribute('rel','stylesheet');
	css.setAttribute('href',cssurl);
	$('head').get(0).appendChild(css);
}

var IMOStoreGallery = function(){
	var _P = {
		init : function( params ) {
			_P.params = params;
			_P.writeSlider();
			_P.loadJSON();
		},
		params : null,
		data : null,
		loadJSON : function() {
			$.ajax({
				type : "GET",
				url : _P.params.dataPath,
				data: {one:"one"},
				dataType : "jsonp",
				success : function( data ) {
					_P.data = data;
					_P.max = _P.params.perView;
					_P.count = _P.data.length;
					_P.preloadProducts();
				}
			});
		},
		writeSlider : function() {
			$("#"+_P.params.parentel).append([
				(_P.params.boxtitle!="")? '<div id="imoproductsheadline"><div>'+_P.params.boxtitle+'</div></div>':'',

				'<div id="imoprodscrollselector">',
				'  <div class="prodscrollprev prodroll"></div>',
				'  <div class="prodscrollmore showing"></div>',
				'  <div class="prodscrollnext prodroll"></div>',
				'</div>',
				'<div></div>',
				
				'<div id="imoproducts">',
				' <div class="inner">',
				'  <div class="loader"></div>',
				'  <ul class="overclear"></ul>',
				' </div>',
				'</div>',

				''].join(""));
		},
		preloadProducts : function() {
			
			$.each(_P.data, function(i, item) {

				var prices = "<div class='imoproprices'>";
				if(item.OnSale=="1"){
					if(_P.params.showRegular) prices+= "<div class='regprice'>Regular:&nbsp;<span class='strike'>$"+item.RegularPrice+"</span></div>";
					prices+= "<div class='saleprice'>Sale:&nbsp;$"+item.SalePrice+"</div>";
				}
				else prices+= "<div class='regprice'>$"+item.RegularPrice+"</div>";
				prices+= "</div>";

				var title = $.trim(item.Title);
				var href = "http://shop.intermediaoutdoors.com/pg1/goprod.php?";
				var prodlink = href+"item="+item.ItemNmbr+"&pkey="+_P.params.promoCode
				var dimthumb =  _P.dimThumb(item.Thumbwidth, item.Thumbheight, _P.params.imgWidth);
				
				var divtitle = "<div class='itemtitle'><div>"+title+"</div></div>";
				
				var divthumb = ["",
					"<div class='prodthumbdiv'><div><div><div class='prodthumbwrap'><div>",
					"<a href='",prodlink,"' class='thumb' target='_blank'",
					" onclick=\"javascript: pageTracker._trackPageview('/imostore/thumbnail');\"",
					">",
					  "<img src='",$.trim(item.Thumbnail),"' ",
					  "width='",dimthumb[0],"' height='",dimthumb[1],"' alt='' />",
					"</a>",
					"</div></div></div></div></div>",
					""].join("");
					
				var divbuy = ["",
					"<div class='imoprodlink' style=''>",
					"<a href='",prodlink,"' target='_blank'",
					  " onclick=\"javascript: pageTracker._trackPageview('/imostore/buynow');\">",
					  "<div class='divbuyImg prodroll'>",_P.params.buyImg,"</div>",
					"</a></div>",
					""].join("");
				
				var divbrowse = ["",
					"<div class='imoprodlink' style=''>",
					"<a href='",href,"' target='_blank'",
					  " onclick=\"javascript: pageTracker._trackPageview('/imostore/browsestore');\"",
					  " title='Check out more great deals at our Online Store'>",
					  "<div class='divshopImg prodroll'>",_P.params.shopImg,"</div>",
					  "<div class='divtoreImg prodroll'>",_P.params.storeImg,"</div>",
					"</a></div>",
					""].join("");
				
				$("ul", "#imoproducts").append([
					"<li>",
					"<div class='prodsli'>",
					divthumb,
					"<div class='proddetail'>",
					(_P.params.prodTitle=="indetail")? divtitle:"",
					prices,
					divbuy,					
					divbrowse,
					"</div>",
					(_P.params.prodTitle=="below")? divtitle:"",
					"</div>",
					"</li>" ].join( "" ));
				
				$("body").append([
					"<div class='books_tool_tip' id='books_tool_tip_",i,"'>",
					"<div class='books_pointer_left'><!-- books pointer --></div>",
					"<div class='inner'><p>",item.ShortDesc,"</p>",
					"</div></div>" ].join( "" ));
				
			});
			
			$(".thumb", "#imoproducts").hover(function(e) {
				_P.tooltip.show(e, $("#books_tool_tip_" + $("a.thumb", "#imoproducts").index(this)));
			}, function(e) {
				_P.tooltip.hide(e, $("#books_tool_tip_" + $("a.thumb", "#imoproducts").index(this)));
			});
			$(".prodroll").hover(function(e) {
				var img = $(this).css("background-image").replace(".gif", "_o.gif");
				$(this).css("background-image",img);
			}, function(e) {
				var img = $(this).css("background-image").replace("_o", "");
				$(this).css("background-image",img);
			});
			$("#imoprodscrollselector .prodscrollprev").click(function() {
				_P.browseProducts("prev");
				return false;
			});
			$("#imoprodscrollselector .prodscrollnext").click(function() {
				_P.browseProducts("next");
				return false;
			});
			$("#imoproducts  ul li").css('display:none');
			
			_P.browseProducts();
		},
		first : 0,
		max : 0,
		count : 0,		
		browseProducts : function(browse) {
			if (browse == "prev") {
				if(_P.first<2) return;
				if (_P.first == _P.count && (_P.count % _P.max > 0) ) {
					_P.first = _P.first - ((_P.count % _P.max) + _P.max);
				} else {
					_P.first = _P.first - (_P.max * 2);
				}
			}
			if (browse == "next") {
				if(_P.first == _P.count) return;
			}
			var range = _P.first + _P.max;
			var start = 1;
			if ( range > _P.max ) {
				start = ((range - _P.max) + 1);
			}
			if (_P.first == 0) {
				$("#imoprodscrollselector .prodscrollprev").css("background-position", "150px 150px");
			} else {
				$("#imoprodscrollselector .prodscrollprev").css("background-position", "0px 0px");
			}
			if ( range < _P.count ) {
				$("#imoprodscrollselector .prodscrollnext").css("background-position", "0px 0px");
			} else if ( range >= _P.count ) {
				range = _P.count;
				$("#imoprodscrollselector .prodscrollnext").css("background-position", "150px 150px");
			}
			$.each(_P.data, function( i ) {
				if ( i >= _P.first && i < range ) {
					$("#imoproducts li:eq(" + i + ")").fadeIn("fast");
				} else {
					$("#imoproducts li:eq(" + i + ")").css("display", "none");
				}
			});
			_P.first = range;
			if(_P.count>1 && _P.params.scrollNums!="") {
				var counter = (_P.max>1)? start+" - ":"";
				counter+= range;
				var scrolltxt = _P.params.scrollNums.replace('{num}',counter);
				scrolltxt = scrolltxt.replace('{all}',_P.count);
				
				$("#imoprodscrollselector .showing").html(scrolltxt);
			}
			$("#imoprodscrollselector .moreitems").css("visibility", "visible");
			$("#imoprodscrollselector").css("visibility", "visible");
			$("#imoproducts .loader").remove();
			
		},
		tooltip : {
			show : function( e, $o ) {
				var v = _P.tooltip.getViewport();
				var pageX = _P.tooltip.getMouseCoord( v, e )[0] + 10;
				var pageY = _P.tooltip.getMouseCoord( v, e )[1];
				$o.find(".books_pointer_right").addClass("books_pointer_left").removeClass("books_pointer_right");
				if(pageX + $o.width() > v.innerWidth + v.pageXOffset) {
					pageX = pageX - $o.width() - 30;
					$o.find(".inner").addClass("inner_right");
					$o.find(".books_pointer_left").addClass("books_pointer_right").removeClass("books_pointer_left");
				}
				$o.css("left", pageX).css("top", pageY).css("display", "block");
			},
			hide : function( e, $o ) {
				$o.css("display", "none");
			},
			getMouseCoord : function( v, e ) {
				( !e ) ? e = window.event : e = e;
				( e.pageX ) ? v.pageX = e.pageX : v.pageX = e.clientX + v.scrollLeft;
				( e.pageY ) ? v.pageY = e.pageY : v.pageY = e.clientY + v.scrollTop;
				return [ e.pageX, e.pageY ];
			},
			getViewport : function() {
				var viewport = {}
				if ( self.innerHeight ) {
					viewport.pageYOffset = self.pageYOffset;
					viewport.pageXOffset = self.pageXOffset;
					viewport.innerHeight = self.innerHeight;
					viewport.innerWidth = self.innerWidth;
				} else if ( document.documentElement && document.documentElement.clientHeight ) {
					viewport.pageYOffset = document.documentElement.scrollTop;
					viewport.pageXOffset = document.documentElement.scrollLeft;
					viewport.innerHeight = document.documentElement.clientHeight;
					viewport.innerWidth = document.documentElement.clientWidth;
				}
				return viewport;
			}
		},
		dimThumb : function(wd, ht, twd) {
			if (parseInt(wd) > parseInt(twd)) {
					var ratio = (ht / wd );
					wd =parseInt(twd);
					var ht = (wd * ratio);
			}
			var rtn = new Array(wd,ht);
			return rtn;
		}

	};
	
	return {
		init : function( params ) {
			_P.init( params );
		}
	};
}();

var rootpath = "";
var loc = document.location.toString();

	if(loc.indexOf('dev-jeff')>0)
		rootpath = "http://dev-jeff.imo.int/newstore/";
	if(loc.indexOf('local')>0)
		rootpath = "http://localhost/newstore/";
	if(loc.indexOf('207.211.15.238')>0)
		rootpath = "http://207.211.15.238/pg1/";
	if(loc.indexOf('in-fisherman')>0 || loc.indexOf('huntingmag')>0 || loc.indexOf('floridasportsman')>0  || loc.indexOf('petersenshunting')>0)
		rootpath = "http://shop.intermediaoutdoors.com/pg1/";
	if(loc.indexOf('shop.')>0)
		rootpath = "http://shop.intermediaoutdoors.com/pg1/";

function imoprodconfig() {
	var config = {
		dataPath : rootpath+"connect.php?pgmode=mylist",
		imgPath : "",
		parentel : "imoprodgallery",
		perView : 1,
		prodTitle : "below",
		buyImg : "Buy Now",
		shopImg : "Browse Store",
		storeImg : "",
		imgWidth : "76",
		cssSuff : "_if",
		boxtitle : "Recommended...",
		scrollNums : "({num} of {all})",
		promoCode : "",
		debug : false
	}
	var custom = null;
	
	if(loc.indexOf('ga')>0) {
		custom = {
			prodTitle : "indetail",
			imgWidth : "76",
			cssSuff : "_ga",
			boxtitle : "Recommended...",
			promoCode : "",
			debug : false
		}
	}
	else if(loc.indexOf('ph')>0 || loc.indexOf('huntingmag')>0 || loc.indexOf('petersenshunting')>0) {
		custom = {
			dataPath : rootpath+"connect.php?pgmode=mylist&store=HUNTING",
			prodTitle : "below",
			buyImg : "",
			shopImg : "",
			storeImg : "",
			imgWidth : "114",
			cssSuff : "_ph",
			boxtitle : "",
			scrollNums : "",
			promoCode : "PHMLNK",
			debug : false
		}
	}
	else if(loc.indexOf('fsp')>0 || loc.indexOf('floridasp')>0) {
		custom = {
			dataPath : rootpath+"connect.php?pgmode=mylist&store=FLORIDASPORTSMAN",
			prodTitle : "below",
			buyImg : "> Buy Item",
			shopImg : "> Browse Store",
			storeImg : "",
			imgWidth : "64",
			cssSuff : "_fs",
			boxtitle : "Recommended <strong>Items</strong>",
			scrollNums : "({num} of {all})",
			promoCode : "FSMLNK",
			debug : true
		}
	}	
	else if(loc.indexOf('in-fish')>0) {
		custom = {
			dataPath : rootpath+"connect.php?pgmode=mylist&store=INFISHERMAN",
			prodTitle : "below",
			buyImg : "",
			shopImg : "",
			storeImg : "",
			imgWidth : "110",
			cssSuff : "_if",
			boxtitle : "",
			scrollNums : "",
			promoCode : "IFMLNK",
			debug : false
		}
	}	
	
	$.each(custom, function(k,v) {
		config[k] = v;
	});
	
	return config;

}
var imoprodconfig = imoprodconfig();
doprodgallerycsswrite(imoprodconfig.cssSuff);
IMOStoreGallery.init(imoprodconfig);
