(function ($) {
	var SmartBrowseCloud = {
		modelObj:{},
		category: '',
		sb_ajax: function(selRef) {
			var invtype = this.config.invtype;
			var url = this.config.ajaxpaths[invtype] + '?' + ((selRef) ? + 'reset=InventoryListing&' + selRef.name + '=' + escape(selRef.value) : 'reset=InventoryListing');
			for (var criteria in this.config.catagories){
				url += '&' + criteria + '=' + this.config.catagories[criteria];
			}
			url += '&detect=false';
			//alert(url);
			this.doLoad(url);
		},
		doLoad: function (url) {
			$.ajax({
				url: url,
				dataType: 'json',
				success: function (req) {
					DDC.SmartBrowseCloud.sb_load(req);
				}
			});
		},

		sb_load: function (sbdata) {
			var hBoundry = 0;
			for (var dataset in sbdata) {
				if (dataset !== 'SBdefaults') {
					for (var key in sbdata[dataset]) {
						sbdata[dataset][key].replace(/\(\d+\)/,function($1){
							var value = $1;
							value = parseInt(value.replace(/\(/,'').replace(/\)/,''), 10);
							if(value > hBoundry ){
								hBoundry = value;
							}
						});
					this.category = dataset;
					}
					//console.log(hBoundry)
					var x = 20/hBoundry;
					//console.log(x)
					for (var key in sbdata[dataset]) {
						sbdata[dataset][key].replace(/\(\d+\)/,function($1){
							var value = $1;
							value = parseInt(value.replace(/\(/,'').replace(/\)/,''), 10);
							var myKey = sbdata[dataset][key].replace(/\s\(\d+\)/,'');
							value = Math.round((x * value) + 1);
							DDC.SmartBrowseCloud.modelObj['_'+myKey+'']= value;
						});

					}

				}
			}
			this.buildHtml();
		},
			//console.log(this.modelObj)
		buildHtml:function(){
			var invtype = this.config.invtype;
			var invpaths = this.config.invpaths;
			var obj = this.modelObj;
			var html = [];
			html.push('<ul>');
			for(var v in this.modelObj){
				//console.log(this.modelObj[v])
				if(obj[v] <= 3 ){
					html.push('<li class="sm"><a href="',invpaths[invtype],'?',this.category,'=',v.replace('_',''),'">',v.replace('_',''),'</a></li>');
				}
				if(obj[v] > 3 && obj[v] <= 5 ){
					html.push('<li class="sm b"><a href="',invpaths[invtype],'?',this.category,'=',v.replace('_',''),'">',v.replace('_',''),'</a></li>');
				}
				if(obj[v] > 5 && obj[v] <= 7 ){
					html.push('<li class="med"><a href="',invpaths[invtype],'?',this.category,'=',v.replace('_',''),'">',v.replace('_',''),'</a></li>');
				}
				if(obj[v] > 7 && obj[v] <= 10 ){
					html.push('<li class="med b"><a href="',invpaths[invtype],'?',this.category,'=',v.replace('_',''),'">',v.replace('_',''),'</a></li>');
				}
				if(obj[v] > 10 && obj[v] <= 13 ){
					html.push('<li class="lrg"><a href="',invpaths[invtype],'?',this.category,'=',v.replace('_',''),'">',v.replace('_',''),'</a></li>');
				}
				if(obj[v] > 13 && obj[v] <= 15 ){
					html.push('<li class="lrg b"><a href="',invpaths[invtype],'?',this.category,'=',v.replace('_',''),'">',v.replace('_',''),'</a></li>');
				}
				if(obj[v] > 15 && obj[v] <= 17 ){
					html.push('<li class="xLrg"> <a href="',invpaths[invtype],'?',this.category,'=',v.replace('_',''),'">',v.replace('_',''),'</a></li>');
				}
				if(obj[v] > 17 ){
					html.push('<li class="xLrg b"> <a href="',invpaths[invtype],'?',this.category,'=',v.replace('_',''),'">',v.replace('_',''),'</a></li>');
				}
			}
			html.push('</ul>');
			html = html.join('');
			this.loadDom(html);
		},

		loadDom: function(html){
			$(html).appendTo('.sbWordCloud');
		},

		init: function(config) {
			this.config = config;
			this.sb_ajax();
		}
	};
	window.DDC.SmartBrowseCloud = SmartBrowseCloud;
})(jQuery);
