	var isLoadCompleted = true;

	function createRequestObject() {
		var ro;
	    var browser = navigator.appName;
	    if(browser == "Microsoft Internet Explorer"){
		    ro = new ActiveXObject("Microsoft.XMLHTTP");
	    }else{
		    ro = new XMLHttpRequest();
	    }
		return ro;
	}
	
	function clickHandler(evt) {
        $("img.fthumb").click(function(){
			var fabricId = this.id;
			showFabricDetail(fabricId);
			var strUrl = "/services/json/fabricview.jsp?id="+fabricId;
			jsonRequest(strUrl);	
		});
	}
	
	function attachEvent(){
		 $(".fthumb").live("click", function() {
		 
				 var fabricId = this.id;
				 var strUrl = "/channel/fabric/view.jsp?id="+fabricId;
					 window.location.href=strUrl;
		    });
	
	 //    $("img.fthumb").click(function(){
	//			var fabricId = this.id;
	//			var strUrl = "/channel/fabric/view.jsp?id="+fabricId;
	//			window.location.href=strUrl;
	//			//$("img.fthumb").unbind('click');
	//	 });  
		 
		 
			
		 $("img.fthumb1").click(function(){
				var fabricId = this.id;
				var strUrl = "/channel/fabric/view.jsp?id="+fabricId;
				window.location.href=strUrl;
    	 }); 
    	 
	}
	
	function attachCollectionEvent(){
	     $("div.productShow").click(function(){
	    		var groupId = this.id;
				var strUrl = "/services/json/collection.jsp?groupId="+groupId;
				jsonRequest(strUrl);
			});        
	}
	
	
	function attachEventIframe(){
		$("a[rel^='prettyPhoto']").prettyPhoto({theme:'light_square'});
	}
	
	function jsonRequest(strUrl){
		clearData();
		$.getJSON(strUrl, displayData);		
	}
	
	
	function attachEventScroll(){
		// $('div.jScrollPaneContainer').css('height','300px'); 
		//$('#fFinish').jScrollPane({showArrows:true, scrollbarWidth: 14, arrowSize: 14});
	//	$('#fpatterns').jScrollPane({showArrows:true, scrollbarWidth: 14, arrowSize: 14});
		//$('#fstyle').jScrollPane({showArrows:true, scrollbarWidth: 14, arrowSize: 14});
	}
	
	function clearData(){
			$('#fpatt').html("");
			$('#fbase').html("");
			$('#fsku').html("");
			$('#views').css('backgroundImage',''); 
			$("#viewoptions").stop().unbind();
			$("#vclose").hide();
			$("#vclose").stop().unbind();
			$('#viewoptions').html("");
			$('#f_features').html("");
			$('#f_certs').html("");
			$('#f_testing').html("");
			$('#colors').html("");
			$('#coordinates').html("");	
	}

	function refreshPagination(){
	
			if(document.fabricsFacetForm.isUser.value=='true'){
				var noOfResultsPerPage = document.fabricsFacetForm.noOfResultsPerPage.value;
				var sStart = document.fabricsFacetForm.start.value;
				document.getElementById('fpagination').innerHTML =pageFabrics(numFound,noOfResultsPerPage,sStart);
			}
	}
		
	
	function pageFabrics(totalresults, itemsPerPage, startPage){
			var noOfItemsPerPage = itemsPerPage;
			//pagination
			var length = totalresults;
			var ipp    = itemsPerPage;
			var start  = startPage;
			
			if (start < 0 || start == length || start > (length/ipp)*ipp)
				start = 0;
			var end = start + ipp;
			if (end > length)
				end = length;
			//total pages
			var pageTotal = length/ipp;
			
			if ((length % ipp) != 0)
				pageTotal = parseInt(pageTotal)+1;	
				
			if (pageTotal == 0)
				pageTotal = 1;
				
			//links per page
			var lpp = 10;
			//current page
			var currentPage = start/ipp;	
				
			//first page number
			var startingPoint = Math.floor(currentPage/lpp)*lpp;
			
			if (startingPoint < 0)
				startingPoint = 0;
		
			//last page number
			var endingPoint = startingPoint+lpp;
			if(endingPoint > pageTotal){					
				endingPoint = pageTotal;
			}	
			//end pagination
			
			var sHtml="";
			//Start Fabric Navigation
			if (pageTotal > 1) {
				if (currentPage >= lpp) {
				//	var resultsPerSet = lpp*noOfItemsPerPage-noOfItemsPerPage;
					
					var prevSet = (startingPoint -lpp)*ipp;
					var prev="";
					sHtml+=	"<div class=\"nextprev\"><a href=\"#\" onClick=nextSet('"+ipp+"','"+prevSet+"');><img src=\"/common/images/fabrics/page_prev.gif\"/></a></div>";
			 	}
				var pageHtml="";
				
				// print CURRENT link
				for(var i = startingPoint; i < endingPoint; i++) {
					var pageno=0;
					var nextPageNo=0;
						nextPageNo = i*ipp;		
					var s = i;	
					 if (s==currentPage) {
						pageno = i+1;
						pageHtml+="<div id=\"pno_"+pageno+"\" class=\"pno-selected\"><a href=\"#\" onClick=nextPage('"+pageno+"','"+nextPageNo+"');>"+pageno +"</a></div>";
					  } else {
						pageno = i+1;
						pageHtml+="<div id=\"pno_"+pageno+"\" class=\"pno\"><a href=\"#\" onClick=nextPage('"+pageno+"','"+ nextPageNo+"');>"+ pageno +"</a></div>";
					  } 
				 }
			
				sHtml = sHtml + pageHtml;
				if(pageTotal > endingPoint ) {
					var next="";
					sHtml +="<div class=\"nextprev\"><a href=\"#\" onClick=nextSet('"+ipp+"','"+ (startingPoint + lpp)*ipp+"');>"+"<img src=\"/common/images/fabrics/page_next.gif\"/></a></div>";
				 }
			}
			 sHtml +="<br style=\"clear:both\"/>";
			return sHtml;
	}
		
	function displayData(data) {
	
			$('#fpatt').html(data.response.pattern);
			$('#fbase').html(data.response.basecloth);
			$('#fsku').html(data.response.sku);
			$('#fthumbImg').attr("src",data.response.imagethumb);
			
			$('#views').css('backgroundImage','url(' + data.response.Multi +')'); 
			
			var viewoptions = data.response.viewsavailable.toString();
			var views = viewoptions.split(",");
			
			var htmlString = "";
			htmlString = getViewsHtml(views,data);
			
			$("#viewoptions").stop().unbind();
			$("#vclose").stop().unbind();
			$('#viewoptions').html(htmlString);
			$('#Multi').addClass('voptions-selected');
			
			attachViews();
			attachViewOptions();
			
			htmlString = "";					
			htmlString = getSpecsHtml(data.response.specs);
			$('#f_features').html(htmlString);
					
			htmlString = "";	
			htmlString = getCertsHtml(data.response.certified);
			$('#f_certs').html(htmlString);
						
			
			htmlString = "";	
			htmlString = getTestsHtml(data.response.testpassed);
			$('#f_testing').html(htmlString);
			
						
			htmlString = "";							
			$.each(data.response.colorways, function(i,item){	
				var colors = data.response.colorways[i];		
				htmlString+= getColorWaysHtml(colors);
			});	
			htmlString +="<br style=\"clear: both;\"/>";														
			$('#colors').html(htmlString);
			
			//$('#colors').jScrollPaneRemove(); 
			//$('#colors').jScrollPane({showArrows:true, scrollbarWidth: 14, arrowSize: 14});
					
			htmlString = "";
			$.each(data.response.coordinates, function(i,item){
				var coordinate = data.response.coordinates[i];		
				if(coordinate!=null){
					if(coordinate.toString()=='NA'){
					}else{
					htmlString+= getColorWaysHtml(coordinate);
					}
				}
			});	
			
			htmlString +="<br style=\"clear: both;\"/>";														
			$('#coordinates').html(htmlString);		
			htmlString = "";
					
			
	}	


	function getResults(docs,isUser){

		var sHtml="";

			if(docs!=null){
			
				for(var i=0; i<docs.length; i++){
					var osVal ="<a rel=\"prettyPhoto[iframe]\" style=\"color:#000;\" href=\"/template/fabric/fabricaction.jsp?iframe=true&amp;width=300&amp;height=150&amp;acType=ordersample&amp;id="+docs[i].cftid+"\">";
					var addToP ="<a rel=\"prettyPhoto[iframe]\" style=\"color:#000;\" href=\"/template/fabric/fabricaction.jsp?iframe=true&amp;width=400&amp;height=425&amp;acType=myprojects&amp;id="+docs[i].cftid+"\">";
					var lval=	"<a href='/login.jsp'>";
						
					sHtml +="<div id=\"fab_"+docs[i].cftid+"\" class=\"fitem\">"	
					sHtml +="<table cellpadding=0 cellspacing=0><tr>";
					sHtml +="<td class=\"fthumb\"><img id=\""+docs[i].cftid+"\" class=\"fthumb\" src=\""+docs[i].fimagethumb+"\"></td>";
					sHtml +="<td width=4>&nbsp;</td>";
					sHtml +="<td valign=\"top\">";
					sHtml +="<div class=\"fTitle\"><b>"+getLabel(docs[i].fname)+"</b><br>";
					sHtml += getLabel(docs[i].colorname)+"</div>";
					sHtml += "<div class=\"fAction\">";
					
					if(docs[i].inStock!=null){
						getStockInfo(docs[i].cftid);					
						sHtml +="<p>Stock:<span id=\""+docs[i].cftid+"_stock\" class=\"plus\">&nbsp;processing...</span> &nbsp;</p>";
						sHtml +="<p>"+osVal+"Order</a> &nbsp;|&nbsp;"+addToP+"Save</a></p>";
					}else{
						sHtml +="<p><span class=\"plus\">+</span> &nbsp;";
						if(isUser=='true'){
							sHtml += osVal;
						}else{
							sHtml +=lval;
						}
						sHtml += "Order Sample"+"</a></p>";
						sHtml += "<p><span class=\"plus\">+</span> &nbsp;";
						if(isUser=='true'){
							sHtml +=addToP;
						}else{
							sHtml += lval;
						}
						sHtml +="Add to My Projects"+"</a></p>";
					}
					
					sHtml +="</div>";					
					sHtml +="</td>";
					sHtml +="</tr></table>";
					sHtml +="</div>";	
					
					
				}
			}
			sHtml +="<br style=\"clear: both;\"/>";
			
			
		return sHtml;
	}

	function attachViews(){
			$("#vclose").show();
			$("#vclose").click(function () {
			 		var closeimg="/common/images/closebox.png";
			 		var openimg="/common/images/openbox.png";
			   		$("#viewoptions").animate({width: 'toggle'});
				    var w = $("#viewoptions").width();
				    if(w<10){
						$('#vclose').attr("src",closeimg);
					}else{
					  	$('#vclose').attr("src",openimg);
					}
			   });
	}

	function attachViewOptions(){
		$("#voptionslist li").click(function(){	
			var newHref = $(this).find('a').attr("id");
			$('#views').css('backgroundImage','url(' + newHref +')');
			$('#view_popout').attr('href', newHref);
			$('#voptionslist li').removeClass('voptions-selected');
	        $(this).addClass('voptions-selected');
		});
	}
	
	//HTML CODE
	function getViewsHtml(views,rsp){
			sHtml = "<ul id=\"voptionslist\">";
			for(var i=0; i<views.length; i++){
				try{
					var imageUrl = eval("rsp.response."+views[i]).toString();
					var viewId = views[i];
					sHtml += "<li id=\""+viewId+"\" class=\"voptions\"><a href=\"#\" id=\""+imageUrl+"\">"+views[i]+"</a>";
					sHtml+="</li>";		
				}catch(err){
				}	
			}
			sHtml +="</ul>";
			return sHtml;
	}
	
	function getTestsHtml(oTest){
		var stest = oTest.toString().split(",");
		var sHtml="<table>";
			sHtml+="<tr><td class=\"specsLabel\">Testing Information:</td></tr>";
			for(var i=0; i<stest.length; i++){
				sHtml+="<tr><td>";
				sHtml+=stest[i];
				sHtml +="</td></tr>";
			}
			sHtml+="</table>";
		return sHtml;
	}		
	
	function getCertsHtml(oCertified){
		var certs = oCertified.toString().split(",");
		var sHtml="<table>";
			sHtml+="<tr><td class=\"specsLabel\">Certification Passed:</td></tr>";
			for(var i=0; i<certs.length; i++){
					sHtml+="<tr><td>";
					sHtml+="<img src=\""+certs[i]+"\"/>";
					sHtml +="</td></tr>";
			}
			sHtml+="</table>";
		return sHtml;
	}	
	
	function getColorWaysHtml(colorways){
		var sHtml="";
			if(colorways!=null){
				sHtml +="<div id=\"fab_"+colorways.cftid+"\" class=\"fitem\">"	
				sHtml +="<table cellpadding=0 cellspacing=0><tr>";
				sHtml +="<td><img id=\""+colorways.cftid+"\" class=\"fthumb1\" src=\""+colorways.fimagethumb+"\"></td>";
				sHtml +="<td width=4>&nbsp;</td>";
				sHtml +="<td valign=\"top\">";
				sHtml +="<div class=\"fTitle\"><b>"+getLabel(colorways.fname)+"</b><br>";
				sHtml += getLabel(colorways.colorname)+"</div>";
				sHtml += "<div class=\"fAction\"><p><span class=\"plus\">+</span> &nbsp;Order Sample"+"</p>";
				sHtml += "<p><span class=\"plus\">+</span> &nbsp;Add to My Projects???"+"</p></div>";
				sHtml +="</td>";
				sHtml +="</tr></table>";
				sHtml +="</div>"				
			}

		return sHtml;
	
	}

	function getSpecsHtml(specs){
		var sHtml="<table>";
				sHtml +="<tr><td class=\"specsLabel\">Features:</td><td>&nbsp;</td></tr>";
				sHtml +="<tr><td class=\"specsLabel\">Content:</td><td>"+specs.Content+"</td></tr>";
				sHtml +="<tr><td class=\"specsLabel\">Width:</td><td>"+specs.Width+"</td></tr>";
				sHtml +="<tr><td class=\"specsLabel\">Weight:</td><td>"+specs.Weight+"</td></tr>";
				sHtml +="<tr><td class=\"specsLabel\">Horizontal Repeat:</td><td>"+specs.HorizontalRepeat+"</td></tr>";
			 	sHtml +="<tr><td class=\"specsLabel\">Vertical Repeat:</td><td>"+specs.VerticalRepeat+"</td></tr>";
				sHtml +="<tr><td class=\"specsLabel\">Pattern Direction:</td><td>"+specs.PatternDirection+"</td></tr>";
				sHtml +="<tr><td class=\"specsLabel\">Recommended Use:</td><td>"+specs.RecommendedUse+"</td></tr>";
				sHtml +="<tr><td class=\"specsLabel\">Cleaning Code:</td><td>"+specs.CleaningCode+"</td></tr>";
				sHtml +="<tr><td class=\"specsLabel\">Country of Origin:</td><td>"+specs.CountryofOrigin+"</td></tr>";
				sHtml+="</table>";			
		return sHtml;
	}
//END HTML CODE


//UTILS
	function getLabel(sLabel){
		var label="";
			if(sLabel=='price9'){
					label="$";
			}else if(sLabel=='price100'){
					label="$$";
			}else if(sLabel=='999'){
					label="$$$";
			}else{
				 	label = sLabel.replace(/_/g," ")
			 }
		return label;
	}
	function appendMessage(moreResults){
			var sMessage="";
				sMessage="<div style=\"padding-left: 15px; height: 144px; padding-top: 20px;\">";
				sMessage+="<p>Please Login or Register to view the other "+moreResults+" items in this collection.</p>";
				sMessage+="If you are not a member, registration will give you access to the entire Hunter Douglas Hospitality catalog<br>";
				sMessage+="as well as all of our state-of-the-art designer tools.";
				sMessage+="</div>";
				if(moreResults>0){
					return sMessage;
				}else{
					return "";
				}
		}
		
	function getStockInfo(cftId){
	
		var scftId = cftId;
		var sUrl ="/services/getStockInfo.jsp?cftId="+scftId;
		
		$.ajax({
			 url: sUrl,
			 context: document.body,
			 success: function(data){
						 $("#"+cftId+"_stock").html(data);
		 				}
		 	});		
		 	
	}	
//END UTILS	