$(document).ready(function(){
//	$('.productFinder input[type=checkbox]').prettyCheckboxes();

	$('#search-phrase').bind("keypress", function(e) {
        if((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {
            productSearch(1, 1);
            return false;
        }
    });
	$('#name').bind("keypress", function(e) {
        if((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {
            productFinder(0,1,0);
            return false;
        }
    });
});

function switchSubEntries(article_group_id) {
	$('#subnavs_'+article_group_id).toggle();
    if(article_group_id.indexOf('_',1) == -1) {
        if($('#finder_category_'+article_group_id).attr('checked') == false)
        {
            $('#subnavs_'+article_group_id+' ^input:checked').each( function(i) {

                $(this).attr('checked', false);
                $('#label_for_category_'+$(this).val()).removeClass('checked');
                $('#subnavs_'+$(this).val()).hide();
            });
        }
    }
    else {
        var splittedNumber = article_group_id.split('_');
        var splitLength = splittedNumber.length;
        var takenNumber = splittedNumber[splitLength-1];
        if($('#finder_category_'+takenNumber).attr('checked') == false)
        {
            $('#subnavs_'+$('#finder_category_'+takenNumber).val()+' ^input:checked').each( function(i) {
                $(this).attr('checked', false);
                $('#subnavs_'+$('#finder_category_'+takenNumber).val()).hide();
            });
        }
    }
}

var started = 0;
var allResults = new Array();
function productSearch(given_page, paginate) {
	var page = 1;
    $('#search-phrase-short').hide();
	if(given_page > 0)
		page = given_page;

	var searchPhrase = '';

	if($('#search-phrase').val() != '') {
        searchPhrase = $('#search-phrase').val();
    }

    if(searchPhrase.length < 3 || searchPhrase == 'Produkt suchen') {
        $('#search-phrase-short').show();
        return;
    }

	if(searchPhrase != '' && searchPhrase.length >= 3) {

		if(started == 0) {
			//toggleSearchResults(1);
			started = 1;
		}
		$('#search-phrase').removeClass('loading-search-field');
		$('#productSearchImg').show();
        $('#search-phrase').attr('readonly', false);
		if(paginate == 0) {
			$('#rightContainer').fadeOut().html('');
		}
		else {
			var height = $('#leftContainer').height()*1;
			$('#rightContainer').html('<div id="loader" align="center" style="height:'+height+'px;" >'+
				'<img title="loading..." src="/themes/default/img/list-loader.gif" style="margin-top:'+(height/2)+'px;" alt="loading..."/>'+
				'</div>');
		}
		var finder_height = $('#product_finder').height()*1;
		var finder_width = $('#product_finder').width()*1;
		$('#patience_enforcer').css('height', finder_height);
		$('#patience_enforcer').css('width', finder_width);
		$('#patience_enforcer').show();
		$('#search-phrase').addClass('loading-search-field');
        $('#productSearchImg').hide();
        $('#search-phrase').attr('readonly', true).blur();
		$.ajax({
            url: '/ajax.php/search/phrase/',
            type: 'POST',
            data:  {
                search_phrase: searchPhrase,
                page: page,
                navi_id: $('#main-nav-id').val()
                    },
            dataType: 'text',
            success: function(responseText){
				if(responseText != ''){
					out = renderResults(responseText);
				}
				else {
				   out = '<div class="item topleftArrow homeNewStyles"><div align="center"><strong>Keine Suchergebnisse</strong></div></div>';
				}
				$('#rightContainer').fadeIn('slow');
				$('#rightContainer').append(out);
				$('#search-phrase').removeClass('loading-search-field');
                $('#productSearchImg').show();
                $('#search-phrase').attr('readonly', false);
				$('#patience_enforcer').hide();
				$('#hide-searchphrase-link').html('Suche ausblenden');
				$('#hide-searchphrase-link-div').slideDown('fast');
				$('#close-searchphrase-link-div').slideDown('fast');
			}
		});
	}
	else {
		$('#hide-searchphrase-link-div').slideUp('fast');
		$('#close-searchphrase-link-div').slideUp('fast');
		if(started == 1) {
			//toggleSearchResults(0);
			started = 0;
		}
	}
}

function productFinder(given_page, paginate) {
	var page = 1;
	if(given_page > 0)
		page = given_page;

	var input = 0;
	
	var categoryValues = new Array();
	var brandValues = new Array();
	var lengthValues = new Array();
	var widthValues = new Array();
	var colorValues = new Array();
	var normalSizeValues = new Array();
	var colorTexts = new Array();

	$("input[name=finder_category[]]:checked").each( function(i) {
        categoryValues.push(this.value);
		input = 1;
    });
	$("input[name=finder_brand[]]:checked").each( function(i) {
        brandValues.push(this.value);
		input = 1;
    });
	$("input[name=finder_length[]]:checked").each( function(i) {
        lengthValues.push(this.value);
		input = 1;
    });
	$("input[name=finder_width[]]:checked").each( function(i) {
        widthValues.push(this.value);
		input = 1;
    });
	$("input[name=finder_color[]]:checked").each( function(i) {
        colorValues.push(this.value);
		colorTexts.push($('#color-value-'+this.value).val());
		input = 1;
    });
	
	$("input[name=finder_normal_size[]]:checked").each( function(i) {
		normalSizeValues.push(this.value);
		input = 1;
    });

	var sendCategoryValues = categoryValues.join(",");
	var sendBrandValues = brandValues.join(",");
	var sendLengthValues = lengthValues.join(",");
	var sendWidthValues = widthValues.join(",");
	var sendColorValues = colorValues.join(",");
	var sendColorTexts = colorTexts.join(",");
	var sendNormalSizeValues = normalSizeValues.join(",");

	if(input > 0) {
		
		if(started == 0) {
			//toggleSearchResults(1);
			started = 1;
		}
		$('#finder-loader').fadeOut();
		if(paginate == 0) {
			$('#rightContainer').fadeOut().html('');
		}
		else {
			var height = $('#leftContainer').height()*1;
			$('#rightContainer').html('<div id="loader" align="center" style="height:'+height+'px;" >'+
				'<img title="loading..." src="/themes/default/img/list-loader.gif" style="margin-top:'+(height/2)+'px;" alt="loading..."/>'+
				'</div>');
		}
		var finder_height = $('#product_finder').height()*1;
		var finder_width = $('#product_finder').width()*1;
		$('#patience_enforcer').css('height', finder_height);
		$('#patience_enforcer').css('width', finder_width);
		$('#patience_enforcer').show();
		$('#finder-loader').fadeIn();
		$.ajax({
            url: '/ajax.php/search/options/',
            type: 'POST',
            data:  {
                category_values: sendCategoryValues,
                brand_values: sendBrandValues,
                length_values: sendLengthValues,
                width_values: sendWidthValues,
                color_values: sendColorValues,
                color_texts: sendColorTexts,
                normal_size_values: sendNormalSizeValues,
                page: page,
                navi_id: $('#main-nav-id').val()
                    },
            dataType: 'text',
            success: function(responseText){
				
				if(responseText != ''){
					out = renderResults(responseText);
				}
				else {
				   out = '<div class="item topleftArrow homeNewStyles"><div align="center"><strong>Keine Suchergebnisse</strong></div></div>';
				}
				$('#rightContainer').fadeIn('slow');
				$('#rightContainer').append(out);
				$('#finder-loader').fadeOut();
				$('#patience_enforcer').hide();
				$('#hide-search-link').html('Produktfilter ausblenden');
				$('#hide-search-link-div').slideDown('fast');
				$('#close-search-link-div').slideDown('fast');
			}
		});
	}
	else {
		$('#hide-search-link-div').slideUp('fast');
		$('#close-search-link-div').slideUp('fast');
		$('#search-again-div').slideUp('fast');
		if(started == 1) {
			//toggleSearchResults(0);
			started = 0;
		}
	}

}

function toggleSearchResults(start) {
	if(start == 1) {
		$('#content-backup').html('');
		$('#content-backup').append($('#rightContainer').html());
	}
	else {
		$('#rightContainer').html('');
		$('#rightContainer').append($('#content-backup').html());
	}
}

var toggleState = 'search';
function toggleSearchAndContentResults() {
	if($('#hide-search-link').html() == 'Produktfilter ausblenden'
        || $('#hide-search-link').html() == 'Suche ausblenden'
    ) {
		//$('#hide-search-link').html('Produktfilter einblenden');
		window.location.reload();
	}
	/*else
		$('#hide-search-link').html('Produktfilter ausblenden');
	if(toggleState == 'search') {
		$('#search-backup').html('');
		$('#search-backup').append($('#rightContainer').html());
		$('#rightContainer').html('');
		$('#rightContainer').append($('#content-backup').html());
		toggleState = 'content';
		return true;
	}
	if(toggleState == 'content') {
		$('#rightContainer').html('');
		$('#rightContainer').append($('#search-backup').html());
		toggleState = 'search';
		return true;
	}*/
	return true;
}

function renderResults(responseText) {
    var pageOut = "";
    $('#rightContainer').html('');
    $('#rightContainer').append('<h3 class="heading floatLeft georgia italic"><span>Suchergebnisse</span></h3><div class="clearBoth"></div>');

    eval(responseText);
    var resultCountOut = '';
    if(typeof(resultcount) != 'undefined') {
        if(resultcount == "1")
            resultCountOut =  '<div id="resultcount" align="center">Es wurde '+resultcount+' Artikel gefunden.</div>';
        else
            resultCountOut = '<div id="resultcount" align="center">Es wurden '+resultcount+' Artikel gefunden.</div>';
    }
    var out = '<div class="item itemNoBottom topleftArrow articleListing">';
    if(typeof(pagination) != 'undefined' && typeof(foundData) != 'undefined' && foundData.length > 0) {
        pageOut += pagination;
//						out += pageOut;
    }
    if(typeof(foundData) != 'undefined') {
        out += resultCountOut;
        var j = 0;
        for(var i = 0; i < foundData.length; i++) {

            if(typeof(foundData[i]) == 'undefined')
                continue;

            if(j == 0) {
                out += '<div class="first floatLeft">';
            }
            else if(j == 1) {
                out += '<div class="second floatLeft">';
            }
            else if(j == 2) {
                out += '<div class="third floatLeft">';
            }

            out += '<div class="pic">'+
                '<a title="'+foundData[i]['title']+'" href="'+foundData[i]['url']+'">'+
                '<img border="0" width="191" height="287" alt="'+foundData[i]['title']+'" src="'+foundData[i]['image']+'">'+
                '</a>'+
                '</div>'+
                '<div class="title helvetica fontSize12px"><a title="'+foundData[i]['title']+'" href="'+foundData[i]['url']+'">'+foundData[i]['title']+'</a></div>'+
                '<div class="price fontSize14px">';
            if(foundData[i]['price_old'] != '0,00') {
                out += '<span class="colorRed bold fontSize10px">Statt <span class="lineThrough">'+foundData[i]['price_old']+' EUR</span> jetzt nur</span><br/>';
            }
            out +='<span class="bold color">'+foundData[i]['price']+' EUR</span>';
            if(foundData[i]['tax'] == 1 || foundData[i]['tax'] == '1') {
                out += '<span class="fontSize10px"> inkl. MwSt.</span>';
            }

            out += '</div>'+
                '</div>';
            allResults.push(foundData[i]['pid']);
            if(j == 2) {
                out += '<div class="clearBoth"></div>';
                j = 0;
            }
            else {
                j++;
            }
        }
        out += '<div class="clearBoth"></div></div>'+pageOut;
        if(foundData.length == 0 || resultcount == "0")
            out = '<div class="item topleftArrow homeNewStyles"><div align="center"><strong>Keine Suchergebnisse</strong></div></div>';
    }
    else {
       out = '<div class="item topleftArrow homeNewStyles"><div align="center"><strong>Keine Suchergebnisse</strong></div></div>';
    }
    return out;
}