
	function appStoreFeed(xmlFeedPath, showCount, publisherStr, asContainer, cdnURL, firstRenderCallback) {
			//members
			var root = this;
			this.publisherStr = publisherStr;
			this.trackingName = 'as';
			this.showCount = showCount;
			this.firstRenderCallback = firstRenderCallback;
			this.renderFeed = renderFeed;
			this.cdnURL = cdnURL;
			this.xmlFeedPath = xmlFeedPath;
			this.asgetFeed = asgetFeed;
			this.xmlFeedResults = "";
			this.asContainer = asContainer;
			this.apps = [];
			this.myData = []; // set the starting data

				
					
	}
	
	//get feed
	var asgetFeed = function(xmlPath) {
		var classObj = this;	//because inside a jquery function (this) refers to the jQuery obj
		xmlPath = xmlPath;
		$.get(xmlPath, function(data) {          
			classObj.xmlFeedResults = data;	
			classObj.apps = [];
			classObj.myData = [];
			
			//"sort"
			$(data).find('item').each(function() {
				var $result = $(this);				
				classObj.apps.push($result);
			}); 
			
			//render
			var feedIndex = 0;
			$(classObj.apps).each(function() {
				if (feedIndex < classObj.showCount) { 
					var $result = $(this);
	//				classObj.myData.push('<div class="module_content">\r<div class="content_summary whitepaper">\r<h1>'+$result.attr("title")+'</h1>\r <p>'+$result.attr("description")+'</p>\r	<a href="'+classObj.cdnURL+$result.attr("url")+'" target="_NEW" class="download_button trackable" objType="asDownloadClick asDownloadEng" nstrack-asset="'+$result.attr("url")+'">&nbsp;</a>\r	</div>\r</div>\r');
					
					var thumbURL = $($result.find("[nodeName='media:content']")[0]).attr("url");
					if (thumbURL !== undefined) {
						thumbURL = thumbURL.replace("?t=11", "?t=9");
					}
					var vendor = (($result.find("[nodeName='aw:vendor']").text().length>24) ? $result.find("[nodeName='aw:vendor']").text().substr(0, 24) + "..." : $result.find("[nodeName='aw:vendor']").text());
					var productTitle = (($result.find("title").text().length>40) ? $result.find("title").text().substr(0, 40) + "..." : $result.find("title").text());

					if ($result.find("link").text().length > 0) {
						var linkURL = $result.find("link").text();
					} else {
						if ($result.find("link").attr(classObj.publisherStr.toLowerCase())) {
							var linkURL = $result.find("link").attr(classObj.publisherStr.toLowerCase());
						} else {
							//if there was no LINK text and there's no LINK ATTR with the current publisher string, then FAIL we have no URL
							//this should never happen
							var linkURL = "http://appworld.blackberry.com/webstore/"; 
						}
					}
					
					var currentProductKeyName = window.currentProduct 
						? window.currentProduct.keyName 
						: 'undefined';
					
                    var anchor = "<a target='_blank' href='" + linkURL + "' class='trackable appLink' objType='appStoreClick' nstrack-placement='branding_area' nstrack-asset='" + currentProductKeyName + ".app_" + feedIndex + "'>";
					classObj.myData.push("  <li>\
				                                <div class='appBG'>" +
				                                    anchor + "\
					                                    <img class='asThumb' src='" + thumbURL + "' />\
					                                </a>\
			                                    </div>\
			                                    <div class='asProduct'>\
			                                        <div class='asProductTitle'>" +
                                                        anchor + 
				                                            productTitle + "\
                                                        </a>\
			                                        </div>\
			                                        <div class='asProductDescr'>" + 
                                                        anchor + 
				                                            vendor + "\
                                                        </a>\
			                                        </div>\
			                                        <div class='asProductPrice'>" + 
                                                        anchor + 
    				                                        $result.find("[nodeName='aw:price']").text() + "\
                                                        </a>\
			                                        </div>\
			                                    </div>\
			                                </li>"
					);
				}
				feedIndex++;
			});
			
			classObj.renderFeed();
		}, 'xml'); 
	}
	
	

	var renderFeed = function () {

		$(this.asContainer).html(this.myData.join(""));
		
		$('.trackable').nsTrackable();	//reload tracking
		
		//if its the first time we're rendering, run this callback
		this.firstRenderCallback(this.trackingName);
	};





