jQuery.extend({
	csv: function(delim, quote, linedelim) {
		delim = typeof delim == "string" ? new RegExp( "[" + (delim || ","   ) + "]" ) : typeof delim == "undefined" ? ","    : delim;
		quote = typeof quote == "string" ? new RegExp("^[" + (quote || '"'   ) + "]" ) : typeof quote == "undefined" ? '"'    : quote;
		lined = typeof lined == "string" ? new RegExp( "[" + (lined || "\r\n") + "]+") : typeof lined == "undefined" ? "\r\n" : lined;

		function splitline (v) {
				// Split the line using the delimitor
				var arr  = v.split(delim),
				out = [], q;
				for (var i=0, l=arr.length; i<l; i++) {
					if (q = arr[i].match(quote)) {
						for (j=i; j<l; j++) {
							if (arr[j].charAt(arr[j].length-1) == q[0]) { 
								break; 
							}
						}
						var s = arr.slice(i,j+1).join(delim);
						out.push(s.substr(1,s.length-2));
						i = j;
					} else { 
						out.push(arr[i]); 
					}
				}
				return out;
			}
			return function(text) {
			var lines = text.split(lined);
			for (var i=0, l=lines.length; i<l; i++) {
				lines[i] = splitline(lines[i]);
			}
			return lines;
		};
	}
});

var dataObj, t;
$(function() {
	$("input.autocomplete").parent().parent().prepend("<div class=\"autolistSearchNoResults\"><ul></ul></div>");
	//$(".autolist ul").width($("input.autocomplete").width()-8);
	jQuery.get("/js/terms.csv", function(data) { 
		var array = jQuery.csv()(data);
		dataObj = jQuery.map(array, function(a) { return a[0].toLowerCase()});
	});
	$("input.autocomplete")
	.keypress(function(e){
		clearTimeout(t);
		t = setTimeout(function(){
			$(e.target).trigger("autocomplete");
		},10);
	})
	.bind("autocomplete", function(a){
		var typed = $(this).val().toLowerCase();
		var terms;
		if (dataObj) {
			terms = jQuery.grep(dataObj, function(a) {
				return a.slice(0,typed.length) == typed.toLowerCase();
			});
		}
		var list = $(this).parent().parent().find(".autolistSearchNoResults ul")
		$(list).html("").css("display","block");
		if(terms.length != 0 && typed.length != 0) {
			$(terms).slice(0,15).each(function(){
				$(list).append("<li>" + this + "</li>");
			});
			$(list).find("li").mousedown(function(e){
				$("input.autocomplete").val($(this).text());
			})
			.hover(function(){
				$(this).addClass('hover');
			},
			function(){
				$(this).removeClass('hover');
			});
		} else {
			$(list).html("").css("display","none");
		}
	})
	.blur(function(){
		$(this).parent().parent().find(".autolistSearchNoResults ul").css("display","none");
	});
});

$(document).ready(function(){
	var currentViewedSearches = settings.vars.ntt + "|";
	if($.returnCookie("recentsvs")) {
		$.returnCookie("recentsvs").slice(0,5).each(function(i){
				if(settings.vars.ntt != this[0]) {
					currentViewedSearches += this[0] + "|";
				}
			});
	}
	var expdate = new Date();
	FixCookieDate(expdate);  // For Mac bug
	expdate.setTime(expdate.getTime() + (720 * 60 * 60 * 1000)); // 720 hours (30 days) expiration
	SetCookie("recentsvs", currentViewedSearches, expdate, "/");

	var searchTerms = settings.vars.ntt.split(" ");
	if (searchTerms.length>1){
		var keyWords=0;
		$("#no-results").append('<div class="col col4 subhead"><span>Try Another Search:</span></div><div class="clear"></div>');
		while (keyWords < searchTerms.length){
			var searchUrl = ("/webapp/wcs/stores/servlet/NTESearch?storeId=6970&N=0&Ntk=All&Ntt=" + searchTerms[keyWords] + "&Nty=1&D=" + searchTerms[keyWords] + "&Ntx=mode+matchallpartial&Dx=mode+matchallpartial&cmnosearch=splitTerm");
			$("#no-results").append('<p style="margin:12px;"><a href="' + searchUrl + '">' + searchTerms[keyWords] + '</a></p>');
			keyWords+=1;
		}
	}

	$(".tooltipNRContainer").mouseover(function(){
		clearTimeout(t);
		t = setTimeout("showToolTip('" + $(this).attr("id") + "')",1000);
		})
	.mouseout(function(){
		clearTimeout(t);
		$(this).find(".tooltipNR").css("display","none");
		});

	$(".productImg img").hover(function(){
		if($(this).attr("id").replace("productImgL","tooltip") != "") {
			clearTimeout(t);
			t = setTimeout("showToolTip('" + $(this).attr("id").replace("productImgL","tooltip") + "')",1000);
		}
		},
		function(){
		if($(this).attr("id").replace("productImgL","tooltip") != "") {
			clearTimeout(t);
			$("#" + $(this).attr("id").replace("productImgL","tooltip")).find(".tooltipNR").css("display","none");
		}
	});
});

function showToolTip (name) {
	obj = $("#" + name);
	$(obj).find(".tooltipNR").css("display","block");
	var sku = $(obj).find(".tooltipNR").attr("name");
	var imgL = $("#productImgL" + sku).attr("src");
	var imgL = imgL.replace("_med","_lg");
	var description = $("#tooltip-details" + sku).attr("name");
	var rating = $("#tooltipRating" + sku).html();
	var rating = rating.replace(rating,'<p><b>' +rating+ '</b></p>');
	var wasprice = $("#tooltipWasPrice" + sku).html();
	var price = $("#tooltipPrice" + sku).html();
	var sale = $("#tooltipSale" + sku).html();

	$(obj).find("#tooltip-lgImg" + sku).attr("src",imgL);
	$(obj).find("#tooltip-details" + sku).html('<p>' + description + '</p><p style="padding-bottom: 1px;"><img class="tooltipNR-footer" src="/images/icons/tooltip-footer.gif" width="370" height="20" alt="See complete information on product detail page."></p>');
	$(obj).find("#tooltip-rating" + sku).html(rating);
	$(obj).find("#tooltip-wasprice" + sku).html(wasprice);
	$(obj).find("#tooltip-price" + sku).html(price);
	$(obj).find("#tooltip-sale" + sku).html(sale);

	var pos = $(obj).position();
	$(obj).find(".tooltipNR").css("top",pos.top - 180);
	$(obj).find(".arrow").css("display","block");
	if($(window).width()<(pos.left+650) && pos.left > 460) {
		$(obj).find(".tooltipNR").css("left",pos.left - 420);
		$(obj).find(".arrow").addClass("arrow-left");
	} else {
		$(obj).find(".tooltipNR").css("left",pos.left + 170);
	}
	if(($(obj).find(".tooltipNR").eq(0).position().left + 460)>$(window).width()){
		$(obj).find(".tooltipNR").css("left",$(window).width() - 460);
		$(obj).find(".arrow").removeClass("arrow-left");
		$(obj).find(".arrow").css("display","none");
	}
}


function getposOffset(overlay, offsettype){
	var totaloffset=(offsettype=="left")? overlay.offsetLeft : overlay.offsetTop;
	var parentEl=overlay.offsetParent;
	while (parentEl!=null){
		totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
		parentEl=parentEl.offsetParent;
	}
	return totaloffset;
}
function overlay(curobj, subobjstr, opt_position){
	if (document.getElementById){
		var subobj=document.getElementById(subobjstr)
		subobj.style.display=(subobj.style.display!="block")? "block" : "none"
		var xpos=getposOffset(curobj, "left")+((typeof opt_position!="undefined" && opt_position.indexOf("right")!=-1)? -(subobj.offsetWidth-curobj.offsetWidth) : -500) 
		var ypos=getposOffset(curobj, "top")+((typeof opt_position!="undefined" && opt_position.indexOf("bottom")!=-1)? curobj.offsetHeight : 0)
		subobj.style.left=xpos+"px"
		subobj.style.top=ypos+"px"
		return false
	} else { return true }
}
function overlayclose(subobj){
document.getElementById(subobj).style.display="none";
}// END: RVC DIV: eckman //
//@DOUG02 - check cart for current item.
//@BB01 When searching for sku append # to sku which terminates the item number-that way 00185 will not be mistaken for 001850 
function itemInCart(sku) {
	var skusearch = sku + '#';
	var cartItems = getCookie("CartItems");
	if (cartItems != null && cartItems != "") {
		var index = cartItems.indexOf(skusearch);
		return index != -1;
	}
	return false;
}
function parseit(optStr){ //Ron
	var oarray = new Array();
	var urlArg = new Array();
	oarray = optStr.split("&");
	for (var loop = 0; loop < oarray.length; loop++) {
		var broken_info = oarray[loop].split("=");
		var the_property = broken_info[0];
		var the_value = broken_info[1];
		if (the_property) urlArg[the_property] = the_value;
	}
	return urlArg;
}
function random_imglink() {
	var bannerimages=new Array(8);
	//specify random images below
	bannerimages[0]="/images/banners/slogans/slogan1.jpg";
	bannerimages[1]="/images/banners/slogans/slogan2.jpg";
	bannerimages[2]="/images/banners/slogans/slogan3.jpg";
	bannerimages[3]="/images/banners/slogans/slogan4.jpg";
	bannerimages[4]="/images/banners/slogans/slogan5.jpg";
	bannerimages[5]="/images/banners/slogans/slogan6.jpg";
	bannerimages[6]="/images/banners/slogans/slogan7.jpg";
	bannerimages[7]="/images/banners/slogans/slogan8.jpg";
	bannerimages[8]="/images/banners/slogans/slogan9.jpg";
	var ry=Math.floor(Math.random()*bannerimages.length)
	if (ry==0) ry=1;
	//document.write('<a href="http://www2.northerntool.com/catalog/">');
	document.write('<img src="'+bannerimages[ry]+'" width="766" height="100" alt="Northern Tool + Equipment">');
	//document.write('</a>');
}
//-->