
var tyreCount;
var makeArray = Array("bridgestone", "continental", "dunlop", "firestone", "michelin", "goodyear", "pirelli", "avon", "yokohama", "toyo", "nexen", "economy", "midrange");
var filterArray = Array();
var gotMakeArray = Array();
var direction;
var down=true;

function filterResults(ty) {
	
	alreadyInArray = in_array(ty, filterArray);
	
	if(!alreadyInArray) {
		$("."+ty).fadeIn("fast");
		$("#filter-"+ty).css("border", "2px solid #d6040d");
		filterArray.push(ty);
	} else {
		delete filterArray[alreadyInArray];
		$("#filter-"+ty).css("border", "2px solid #e5e5e5");
	}

	
	filterCounter=0;

	for(var i in makeArray) {
		if(in_array(makeArray[i], filterArray)) {
			filterCounter += $("."+makeArray[i]).length;
		} else {
			$("."+makeArray[i]).fadeOut("fast");
		}
	}
	


	if(filterCounter==0) {
		$("#filter-status").fadeOut("fast");
		$(".tyre").fadeIn("fast");
	} else {
		$("#filter-status").fadeIn("fast");
		$("#filter-status").html("Which are now filtered to "+filterCounter+" result(s).");
	}


}


function filterReinforced() {
	$(".tyre").fadeOut("fast");
	$(".reinforced").fadeIn("fast");

	filterCounter = $(".reinforced").length;
	$("#filter-status").html("Which are now filtered to "+filterCounter+" result(s).");
}


function getInfo(id) {
	$("#moreinfo"+id).load("http://www.etyres.co.uk/car-tyres-uk/detail?productId="+id +" #productForm");
}

function sortResultsDown() {
	//for(var i=tyreCount; i>1; i--) {
	//	singleWidget = "#tyre"+i;
	//	$('#tyreresults').append($(singleWidget));
	//}
	updateImages('up');
}

function sortResultsUp() {
	//for(var i=1; i<=tyreCount; i++) {
	//	singleWidget = "#tyre"+i;
	//	$('#tyreresults').append($(singleWidget));
	//}
	updateImages('down');
}

function updateImages(direction)
{
	if(!tyreCount) {
		tyreCount= $(".tyre").length;
	}
	
	direction=direction;

	imageToggle=true;
	visibleCount=0;

	$('.ad').remove();

	if(direction=='down') {
		
		for(var i=1; i<=tyreCount; i++) {
			
			tyreDiv = "#tyre"+i;

			if(visibleCount==4) {
				visibleCount=0;

				if(imageToggle) {
					//$('#tyreresults').append("<a class='ad' href='http://www.etyres.co.uk/alloygator'><img src='/images/gator.jpg' /></a>");
					//$('#tyreresults').append("<img class='ad' src='/images/salesteam.jpg' />");
					imageToggle=false;
				} else {
					$('#tyreresults').append("<img class='ad' src='/images/salesteam.jpg' />");
					imageToggle=true;
				}
			}
			
			if($(tyreDiv).is(":visible")) {
				visibleCount++;
			} 

			$('#tyreresults').append($(tyreDiv));
		}

		
	} else if(direction=='up') {

		for(var i=tyreCount; i>=1; i--) {
		
			tyreDiv = "#tyre"+i;

			if(visibleCount==4) {
				visibleCount=0;

				if(imageToggle) {
					//$('#tyreresults').append("<a class='ad' href='http://www.etyres.co.uk/alloygator'><img src='/images/gator.jpg' /></a>");
					//$('#tyreresults').append("<img class='ad' src='/images/salesteam.jpg' />");
					imageToggle=false;
				} else {
					$('#tyreresults').append("<img class='ad' src='/images/salesteam.jpg' />");
					imageToggle=true;
				}
			}
			
			if($(tyreDiv).is(":visible")) {
				visibleCount++;
			} 

			$('#tyreresults').append($(tyreDiv));
		}

	}

}



function sortResults() {

	if(!tyreCount) {
		tyreCount= $(".tyre").length;
	}

	if(down) {
		sortResultsDown();
		down=false;
	} else {
		sortResultsUp();
		down=true;
	}
}

function addTyreCount(name, count) {
	$('#'+name+'-count').html(count);
}

function removeFilter(name) {
	$('#filter-'+name).fadeOut("fast");
	$('#'+name+'-count').fadeOut("fast");
}


function in_array (needle, haystack, argStrict) {

    var key = '', strict = !!argStrict;
 
    if (strict) {
        for (key in haystack) {
            if (haystack[key] === needle) {
                return true;
            }
        }
    } else {
        for (key in haystack) {
            if (haystack[key] == needle) {
                return key;
            }
        }
    }
 
    return false;
}


