var productArray = new Array();
var searchArray = new Array();

var brandArraySelect = new Array();
var brandArrayAll = new Array();

var brandLength = 0;
var typeArraySelect = new Array();
var typeLength = 0;
var firstStart = 1;

var brandStatus = 0;

var categorySet = "";

var currentPage;
var totalPages;
var totalCountAll = 0;
//var site_new = 0;

function clearPanel() {
    $('#products_container').html('');
}

function checkBrand() {

}

function unBrand() {
  var start = 1;
  while (start < brandLength) {
        document.getElementById('brand_' + start).checked = false;
        start++;
  }
  
  document.getElementById('brandStatus').innerHTML = 'All brands';
}

function unType() {
  var start = 1;
  while (start < typeLength) {
        document.getElementById('type_' + start).checked = false;
        start++;
  }
  
  document.getElementById('typeStatus').innerHTML = 'All types';
}

function getProducts(category) {

    categorySet = category;
      $.cookie("category", category)
    
    var brandSource = '/UserControls/Kleenheat/GetBrand.aspx?Category=' + category;
    $.post(brandSource, function(data) {
        
        var brandArray = data.split("\n");
	    var brandArrayAll = data.split("\n");

        var startBrand = 0;
        var endBrand = brandArray.length;
        brandLength = brandArray.length;
        var brandString = '<input type="checkbox" id="brand_0" checked="checked" onclick="unBrand();refineSearch(1)" /> <label for="brand_0">All</label>';
        brandArraySelect = new Array();

        while (startBrand < endBrand) {
            if (brandArray[startBrand] != "") {
                brandString = brandString + '<input type="checkbox" onclick="setBrands(' + startBrand + ',\'' + brandArray[startBrand] + '\')" value="' + brandArray[startBrand] + '" id="brand_' + (startBrand + 1) + '" /> <label for="brand_' + (startBrand + 1) + '">' + brandArray[startBrand] + '</label>';
            }
            startBrand = startBrand + 1;
        }

        document.getElementById('brandRefine').innerHTML = brandString;
    });

    var typeSource = '/UserControls/Kleenheat/GetType.aspx?Category=' + category;
    $.post(typeSource, function(data) {
        
        var typeArray = data.split("\n");
        var startType = 0;
        var endType = typeArray.length;
        typeLength = typeArray.length;
        var typeString = '<input type="checkbox" id="type_0" onclick="unType();refineSearch(1)" checked="checked" /> <label for="type_0">All</label>';
        typeArraySelect = new Array();

        while (startType < endType) {
            if (typeArray[startType] != "") {
                typeString = typeString + '<input type="checkbox" onclick="setProdType(' + startType + ',\'' + typeArray[startType] + '\')" value="' + typeArray[startType] + '" id="type_' + (startType + 1) + '" /> <label for="type_' + (startType + 1) + '">' + typeArray[startType] + '</label>';
            }
            startType = startType + 1;
        }

        document.getElementById('typeRefine').innerHTML = typeString;
    });


    $('#error_container').ajaxError(function(e, xhr, settings, exception) {

        $("#searching_container").fadeOut('fast', function() {
            $('#error_container').fadeIn('fast');
        });
    });
    
    var categorySource = "";
    if (getCookie("is_east") == "no") {
        categorySource = '/UserControls/Kleenheat/GetProducts.aspx?category=' + category + '&east=no';   
    } else {
        categorySource = '/UserControls/Kleenheat/GetProducts.aspx?category=' + category + '&east=yes';
    }
 
    $.post(categorySource, function(data) {
        if (data == "") {

            $("#searching_container").fadeOut('fast', function() {
                $("#filter_container").hide();
                $("#products_container").hide();
                $("#noproducts_container").fadeIn('fast');
            });

        } else {

            $("#searching_container").fadeOut('fast', function() {
                productArray = data.split("\n");
                searchArray = productArray;
                preparePages(searchArray.length);
                firstStart = 1;
                refineSearch(1);

                $("#filter_container").show();
                $(".pagenationBottom").show();
                $("#products_container").show();
                $("#noproducts_container").hide();
            });

        }

    });

    firstStart = 0;
}

function setBrands(index, brandVal) {
    var totalBrands = 0;
    var startBrand = 1;
    
    if (brandVal == "all") {
    	while (startBrand < brandLength) {
        	var id = 'brand_' + startBrand;
		document.getElementById(id).checked = true
        	startBrand++;
	}
    }

    startBrand = 1

    while (startBrand < brandLength) {
        var id = 'brand_' + startBrand;
        if (document.getElementById(id).checked == true) {
            totalBrands++;
        }
        startBrand++;
    }
    

    
    
    if (totalBrands != (brandLength - 1)) {
        document.getElementById('brand_0').checked = false;
        
        if (totalBrands == 1) {
            document.getElementById('brandStatus').innerHTML = totalBrands + ' brand';
        } else {
            document.getElementById('brandStatus').innerHTML = totalBrands + ' brands';
        }
        
    } else {
        document.getElementById('brandStatus').innerHTML = 'All brands';
    }
    
    var id = 'brand_' + (index + 1);
    if (document.getElementById(id).checked == true) {
        brandArraySelect[index] = brandVal;
    } else {
        brandArraySelect[index] = '';
    }
    
    if (totalBrands == 0) {
        document.getElementById('brand_0').checked = true;
        document.getElementById('brandStatus').innerHTML = 'All brands';
    }
    refineSearch(1);
}

function setProdType(index, typeVal) {

    var totaltypes = 0;
    var starttype = 1;
    

    while (starttype < typeLength) {
        var id = 'type_' + starttype;
        if (document.getElementById(id).checked == true) {
            totaltypes++;
        }
        starttype++;
    }
    
    if (totaltypes == 0) {
        document.getElementById('type_0').checked = true;
    }    
    
    if (totaltypes != (typeLength - 1)) {
        document.getElementById('type_0').checked = false;
        
        if (totaltypes == 1) {
            document.getElementById('typeStatus').innerHTML = totaltypes + ' type';
        } else {
            document.getElementById('typeStatus').innerHTML = totaltypes + ' types';
        }
        
    } else {
        document.getElementById('typeStatus').innerHTML = 'All types';
    }

    var id = 'type_' + (index + 1);
    if (document.getElementById(id).checked == true) {
        typeArraySelect[index] = typeVal;
    } else {
        typeArraySelect[index] = '';
    }
    
    if (totaltypes == 0) {
        document.getElementById('type_0').checked = true;
        document.getElementById('typeStatus').innerHTML = 'All types';
    }
    refineSearch(1);
}

function refineSearch(pageId) {
	clearPanel();
	clearPagination();
	totalCountAll = 0;
	
	searchArray = productArray;
	
	var searchCount = searchArray.length;
	var searchStart = 0;
	
	pageId = pageId - 1;

	var startProd = pageId * 12;
	var endProd = startProd + 11;

	var startProdInt = startProd;
	if (endProd > searchArray.length) {
	    endProd = searchArray.length;
	}

	var maxCount = 0;
	var pageCount = 0;
	var currentSearch = 0;
	var currentItemBuild = 0;
	
	var sPage = 1;
	var sitemCount = 0;
	while (searchStart < searchCount) {
    
	        var lineArray = searchArray[searchStart].split("|");
	        var showItem = 1;
	        var currentPrice = lineArray[8];
	        var currentRoom = lineArray[14];
	        var currentStar = lineArray[6];
	        var currentBrand = lineArray[4];
	        var currentType = lineArray[5];
	        var currentBBQ = lineArray[15];
	        
	        var searchRoomFrom = parseFloat(searchVals[0]);
	        var searchRoomTo = parseFloat(searchVals[1]);
	        var searchPriceFrom = parseFloat(searchVals[2]);
	        var searchPriceTo = parseFloat(searchVals[3]);
	        var searchStarFrom = parseFloat(searchVals[4]);
	        var searchStarTo = parseFloat(searchVals[5]);
	        var searchbbqFrom = parseFloat(searchVals[6]);
	        var searchbbqTo = parseFloat(searchVals[7]);
            
	        if (lineArray[9] != '') {
	            currentPrice = lineArray[9];
	        }
	        
            if (currentRoom != '') {
                currentRoom = parseFloat(currentRoom);
	            if (currentRoom > (searchRoomFrom - 1) && currentRoom < (searchRoomTo + 1) && showItem == 1) {
    	            showItem = 1;
	            } else {
	                showItem = 0;
	            }
	        } else {
	            showItem = 1;
	        }
            
            currentPrice = parseFloat(currentPrice.replace(',', ''));
	        if (currentPrice >= searchPriceFrom && currentPrice <= searchPriceTo && showItem == 1) {
	            showItem = 1;
	        } else {
	            showItem = 0;
	        }

            if (currentStar != '' && currentStar != '0') {
                currentStar = parseFloat(currentStar);
	            if (currentStar > (searchStarFrom - 1) && currentStar < (searchStarTo + 1) && showItem == 1) {
	                showItem = 1;
	            } else {
	                showItem = 0;
	            }
	        }
	        
            if (currentBBQ != '' && currentBBQ != '0') {
                currentBBQ = parseFloat(currentBBQ);
	            if (currentBBQ > (searchbbqFrom - 1) && currentBBQ < (searchbbqTo + 1) && showItem == 1) {
	                showItem = 1;
	            } else {
	                showItem = 0;
	            }
	        }
	        
	        var totalBrands = brandArraySelect.length;
	        var startBrands = 0;
	        var findBrand = 0;
	        while (startBrands < totalBrands) {
	            var setBrand = brandArraySelect[startBrands];
	                if (currentBrand == setBrand) {
	                    findBrand++;
	                }
	            startBrands++;
	        }	        
	        
	        if (findBrand > 0 && showItem == 1) {
	            showItem = 1;
	        } else if (document.getElementById('brand_0').checked == true && showItem == 1) {
	            showItem = 1;
	        } else {
	            showItem = 0;
	        }
	        
            var totalTypes = typeArraySelect.length;
	        var startTypes = 0;
	        var findType = 0;
	        while (startTypes < totalTypes) {
	            var setType = typeArraySelect[startTypes];
	                if (currentType == setType) {
	                    findType++;
	                }
	            startTypes++;
	        }	        
	        
	        try {
	            if (findType > 0 && showItem == 1) {
	                showItem = 1;
	            } else if (document.getElementById('type_0').checked == true && showItem == 1) {
	                showItem = 1;
	            } else {
	                showItem = 0;
	            }
	        } catch (ex) {
	        
	        }
            
	        if (refall == 0) {
	            if (lineArray[1] != undefined) {
                    totalCountAll = totalCountAll + 1;
                }
                sitemCount = sitemCount + 1;

                var showTrue = true;
              
                if (startProdInt <= searchStart && endProd >= (currentSearch) && currentSearch < 12) {
                    showTrue = true;
                } else {
                    showTrue = false;
                }
                
                var currentPageBuild = ((pageId) * 12);
                var currentPageBuildFinal = currentPageBuild + 13;
               
                if (sitemCount > currentPageBuild && sitemCount < currentPageBuildFinal) {
                    showTrue = true;
                } else {
                    showTrue = false;
                }
                
	            if (showTrue) {
		                createProductPanel(lineArray,sitemCount + ' ' + currentPageBuild + ' ' + currentPageBuildFinal);
                        currentSearch++;
                        currentItemBuild++;
	                    maxCount = maxCount + 1;
		                pageCount = pageCount + 1;
	            }
	        } 
	        else if (showItem == 1) 
	        {
	            if (lineArray[1] != undefined) {
                    totalCountAll = totalCountAll + 1;
                }
                sitemCount = sitemCount + 1;

                var showTrue = true;
              
                if (startProdInt <= searchStart && endProd >= (currentSearch) && currentSearch < 12) {
                    showTrue = true;
                } else {
                    showTrue = false;
                }
                
                var currentPageBuild = ((pageId) * 12);
                var currentPageBuildFinal = currentPageBuild + 13;
               
                if (sitemCount > currentPageBuild && sitemCount < currentPageBuildFinal) {
                    showTrue = true;
                } else {
                    showTrue = false;
                }
                
	            if (showTrue) {
		                createProductPanel(lineArray,sitemCount + ' ' + currentPageBuild + ' ' + currentPageBuildFinal);
                        currentSearch++;
                        currentItemBuild++;
	                    maxCount = maxCount + 1;
		                pageCount = pageCount + 1;
	            }
	        }
	    
        searchStart++;

	    startProd = startProd + 1;
    }
           
    if (endProd > totalCountAll) {
        endProd = totalCountAll;
    }
    
    if (totalCountAll == 0) {
        document.getElementById('results_display').style.display = 'none';
        return true;
    } else {
        document.getElementById('results_display').style.display = 'block';
    }

    document.getElementById('totalFrom').innerHTML = (startProdInt + 1) + ' to ' + (maxCount * (pageId + 1));
    
    preparePages(totalCountAll);
    document.getElementById('totalResults').innerHTML = totalCountAll;
    currentPage = (pageId + 1);
    
    if (currentPage == 1) {
        $("#pagenation-prev").hide();
        $("#pagenation-prev2").hide();
        document.getElementById('totalFrom').innerHTML = (startProdInt + 1) + ' to ' + (maxCount * (pageId + 1));
    } else {
        $("#pagenation-prev").show();
        $("#pagenation-prev2").show();
    }
    
    if (currentPage == (totalPages-1)) {
        document.getElementById('totalFrom').innerHTML = (startProdInt + 1) + ' to ' + (totalCountAll);
        $("#pagenation-next").hide();
        $("#pagenation-next2").hide();
    } else {
        $("#pagenation-next").show();
        $("#pagenation-next2").show();
    }
    
    if (totalPages == 2) {
        document.getElementById('totalFrom').innerHTML = (startProdInt + 1) + ' to ' + (totalCountAll);
    }
    $("#searchPage" + currentPage).addClass("active");
    $("#searchPage2" + currentPage).addClass("active");
    
    
    
    if (refall == 0) {
        refall = 1;
    }
}

function preparePages(productAmt) {

    var numPages = productAmt / 12;
    var numPageSet = '' + numPages;
    var numArr = numPageSet.split(".");
    if (numArr[1] != '') {
        numPages = numPages + 1;
    }
    document.getElementById('pageContainer').innerHTML = '<strong>Pages</strong>';
    document.getElementById('pageContainer2').innerHTML = '<strong>Pages</strong>';
    var tempPage = '';
    startPages = 1;
    while (startPages < numPages) {
        document.getElementById('pageContainer').innerHTML += ' | <a id="searchPage' + startPages + '" href="javascript:void(0);" onclick="refineSearch(' + startPages + ')">' + startPages + '</a>'; ;
        document.getElementById('pageContainer2').innerHTML += ' | <a id="searchPage2' + startPages + '" href="javascript:void(0);" onclick="refineSearch(' + startPages + ')">' + startPages + '</a>'; ;
        startPages++;
    }
    
    totalPages = startPages;
}

function listProducts(pageId) {
    clearPanel();
    pageId = pageId - 1;

    var startProd = pageId * 12;
    var endProd = startProd + 12;

    var startBreak = 0;
    while (startProd < endProd) {
        var productLineArray = new Array();
        productLineArray = searchArray[startProd].split('|');
        createProductPanel(productLineArray);
        startBreak++;
        startProd++;

        if (startBreak == 4) {
            startBreak = 0;
            document.getElementById('products_container').innerHTML += '<br clear="both" />';
        }
    }
}

function gotoProduct(url) {
    document.location.href = url;
}

function clearPagination() {
    var start = 1;
    while (start < totalPages) {
        document.getElementById("searchPage" + start).className = '';
        document.getElementById("searchPage2" + start).className = '';
        start++;
    }
}

function gotoPrev() {
    clearPagination();
    if (currentPage > 1) {
        currentPage = currentPage - 1;
        document.getElementById("searchPage" + currentPage).className = 'pagination-selected';
        document.getElementById("searchPage2" + currentPage).className = 'pagination-selected';
        refineSearch(currentPage);
    }
}

function gotoNext() {
    clearPagination();
    totalPages = totalPages - 1;    
    if (currentPage < totalPages) {
        currentPage = currentPage + 1;
        document.getElementById("searchPage" + currentPage).className = 'pagination-selected';
        document.getElementById("searchPage2" + currentPage).className = 'pagination-selected';
        refineSearch(currentPage);
    }
}

function createProductPanel(lineArray,l) {
    var divElement = '';
    divElement += '<div id="prod_' + lineArray[0] + '" class="product" title="' + lineArray[2] + '" onclick="gotoProduct(\'/gashouse/product/' + lineArray[16] + '.aspx\');"><div class="product_inner">';
    divElement += '<a href="/gashouse/product/' + lineArray[16] + '.aspx"><div class="imgwrap"><img src="' + lineArray[13] + '" alt="' + lineArray[2] + '" class="product_thumb" /></div></a>';
    divElement += '<h1>' + lineArray[2] + '</h1>';
    divElement += '<h2>';
    
    if (lineArray[9] != '') {
        divElement += '<span class="sale_price">$' + lineArray[9] + '</span>';
    }
    if (lineArray[9] != '') {
        divElement += '<span class="sale_was">';
    }
    divElement += "$" + lineArray[8];
       
    if (lineArray[9] != '') {
        divElement += '</span>';
    }
    	
    divElement += '</h2>';
    divElement += '<p class="thisproduct_desc">' + lineArray[7] + '</p>';
    divElement += '<a href="/gashouse/product/' + lineArray[16] + '.aspx" class="more">More</a>'
    divElement += '</div></div>';
    document.getElementById('products_container').innerHTML += divElement;
}
