﻿(function($) {
	$.fn.doSearch = function(options, maxResult, level) {
		buildListing(options, level, maxResult);

		function buildListing(LastId, level, maxResult) {
			$('#gpsLoader').html('<img src="/Content/themes/blackfoot/images/medium_size_loading_logo.gif" />');

			$.ajax({
				type: "GET",
				url: "/Content/gps.xml",
				//url: "/gps/list/",
				error: function(objAJAXRequest, strError) {
					alert("Error" + strError);
					$('#gpsLoader').empty();
					return false;
				},
				success: function(xml) {
					var count = 0;
					var nowSelect = 0;
					var formGPSID = parseInt($('.itemslisting:last').attr('item'));
					if (isNaN(formGPSID)) {
						formGPSID = 0;
					}

					var sortOrders = BuildOrder();

					$(xml).find('gps').sort(sortOrders, true).each(function(i, e) {
						if (i > formGPSID) {
							var gps = $(this);
							var useages = gps.find('useages');
							if (filters(useages)) {
								if (count < 10) {
									var page = 'item="' + i + '"';
									BuildTemplate(gps, page);
									nowSelect++;
								}
								count++;
							}
						};
						$('#gpsLoader').empty();
					});
					var r1 = nowSelect + parseInt(formGPSID);
					var r2 =  parseInt(formGPSID)+ count;
					var r3 = "";
					if (r1 == r2) {
					    r3 = '<div ><a href="#">Oben</a>';
					} else {
					    r3 = '<div ><a href="#">Oben</a> | <a  onclick="javascript:NextPage();" >Mehr</a></div>';
					}


					$('.itemslisting:last').after('<div id="pagingPanel"><div>' + r1 + '/' + r2 + '</div>\n' + r3 + '</div>');
					$('#ResultOutput').text(count + formGPSID);
					return false;
				}
			})
			function BuildOrder() {
				var controls = $("input[type='hidden']");
				var r = new Array();
				var param = "";
				$.each(controls.sort('value', 'desc'), function(i, control) {

					r[i] = control.id;
				});
				return r;
			}
			function MyParser(o) {
				var r = "";
				var controls = $("input[type='hidden']");
				$.each(controls.sort('value', 'desc'), function(i, control) {
					var sImg = '<img src="/content/Themes/Blackfoot/images/search_icon_18_' + $('#' + control.id).attr('title') + '.gif" title="GPS ' + control.id + '" >';
					r += '<li>' + sImg + '<br/>' + $(o).find(control.id).text() + '</li>';
				});

				return '<ul>' + r + '</ul>';
			}
			function BuildTemplate(gps, page) {

				var id = gps.attr('id');
				var title = gps.find('title').text();
				var price = gps.find('price').text();
				//var subtitle = gps.find('subtitle').text();
				var ratea = gps.find('ratea').text();
				var Defaultimage = '/Content/ProductImages/' + id + '/thumb/' + gps.find('defaultImage').text();
				//var link = gps.find('url').text();
				//	var urlText = gps.find('url').attr('text');
				var brands = gps.find('brandId').text();
				var useages = gps.find('useages');
				var fbtn = "";


				var col1 = '<div class="col1"><a href="/GPS/Details/' + id  + '" title="' + title + '"><img border="0" src="' + Defaultimage + '" title="' + title + '" /></a></div>\n';
				var urlTitle = "";// furl(title);

				fbtn = '<a href="/GPS/Details/' + id  + '" title="' + title + '"><img src="/Content/images/icon18x18_detail.jpg" border="0" >Detei lesen</a></div>';
				title = '<a href="/GPS/Details/' + id + '" title="' + title + '">' + title + '</a>';

				var col2 = '<div class="col2"><b>' + title + '</b><div id="subtitle">' + MyParser(useages) + '</div></div>\n';
				var col3 = '<div class="col3"><div id="gpsPrice">' + price + '<div><b>Bewertung</b><br/><img src="/Content/Themes/Blackfoot/images/a_rateImage_' + ratea + '.gif" /></div>' + fbtn + '</div>';

				$('.itemslisting:last').after('\n<div id="' + id + '" class="itemslisting" ' + page + '>\n' + col1 + col2 + col3 + '\n</div>\n');
			}

			function UsageFilter(s) {
				var r = true;
				var controls = $("input[type='hidden']");

				$.each(controls, function(i, control) {
					if (parseInt(control.value) > parseInt($(s).find(control.id).text())) {
						r = false;
					}
					//alert($(s).find(control.id).text() + " " + control.id + " " + control.value);
				});
				return r;
			};
			function furl(str) {
				var badlist = ["®", "/", "Ga"];
				$.each(badlist, function(i, obj) { str = str.replace(/obj/i, ''); });
				return str;
			}

			function filters(u) { if (UsageFilter(u) == false) { return false; } else { return true; } };

		};
	};
})(jQuery);


