jQuery.noConflict();

jQuery(document).ready(function() {	
	query = "";
	/* address plugin for browser back and forward */
    jQuery.address.externalChange(function(event) {    	
    	epoq_processChange(event);   
    	if (event.parameterNames.length > 0) {
    		if (epoq_target.length == 0  || window.location.pathname.indexOf(epoq_target) != -1) {
    			epoq_getSearchResult();
    		}	
    	}    
    });   
    
    jQuery.address.internalChange(function(event) {    	
    	epoq_processChange(event);  
    	if (event.parameterNames.length > 0) {
    		if (epoq_target.length == 0  || window.location.pathname.indexOf(epoq_target) != -1) {
    			epoq_getSearchResult();
    		} else {    			
    			window.location = epoq_target + "#" + jQuery.address.value();
    		}    		
    	}    
    });      
	
    /* submit for enter event on searchbox*/
	jQuery("#epoq_advancedform").submit(function() {			
		query = jQuery("#epoq_advancedbox").val();
		jQuery.address.autoUpdate(false);
		jQuery.address.parameter('query', query, false);
		jQuery.address.autoUpdate(true);
//		var val1 = jQuery('#epoq_kat').val();
		epoq_getSelectedFilters();
		epoq_setFilters();
//		epoq_addFilter("g:product_type", val1, true);					
		return false;		 
	});
	
	
	jQuery("#epoq_advancedSearchHeadline").empty();
	jQuery("#epoq_advancedSearchHeadline").append(epoq_advanced_header);
	epoq_fillAdvancedFields();
});
/* end document ready */


function epoq_fillAdvancedFields() {	
	var html = "";
	var slv = 1;
	for (var i=0;i<epoq_fineSearch.items.length;i++) {
				
		var headline = epoq_fineSearch.items[i][0];
		var attributeStyle = epoq_fineSearch.items[i][2];
		var namesSeperated = epoq_fineSearch.items[i][3];
		var valueSeperated = epoq_fineSearch.items[i][4];
		var filterType = epoq_fineSearch.items[i][5];
		
		
		if (filterType == 'combo') {
			if (typeof(headline) != 'undefined' && typeof(valueSeperated) != 'undefined' && typeof(namesSeperated) != 'undefined') {		
				html += "<div class='epoq_dropdown " + attributeStyle +   "'>" + headline + "<br><SELECT id=\"" + attributeStyle + "\">";
				var values = valueSeperated.split(",");		
				var names = namesSeperated.split(",");
				for (var j=0;j<values.length;j++) {
					html += "<OPTION VALUE=\"" + values[j] + "\">" + names[j] + "</option>"
				}
				html += "</select><br></div>";
			}
		} else if (filterType == 'radio') {
		  var spalte = slv % 3;
		  var spaltenKlasse = 'rechts' + spalte;
		  slv++;

			if (typeof(attributeStyle) != 'undefined' && typeof(valueSeperated) != 'undefined') {		
				html += "<div class='epoq_radiobutton " + attributeStyle + " " + spaltenKlasse + "'>" + headline + "<br>";
				var values = valueSeperated.split(",");	
				var names = namesSeperated.split(",");
				for (var j=0;j<values.length;j++) {
					html += "<input type=\"radio\" name=\"" + attributeStyle +"\" value=\"" + values[j] +"\">" + names[j];
				}
				html += "<br></div>";
			}
		} else if (filterType == 'range') {
			if (typeof(headline) != 'undefined' && typeof(attributeStyle) != 'undefined') {
				html += "<div class='epoq_rangeFilter " + attributeStyle + "'>"  
				html += headline +  "<br>";
				html += "<INPUT id=\"" + attributeStyle +  "_from\" size='6'> - <INPUT id=\"" + attributeStyle +  "_to\" size='6'/>";
				html += "</div>";
			}
		} else if (filterType == 'checkbox') {
				var spalte = slv % 3;
		    var spaltenKlasse = 'rechts' + spalte;
		    slv++;
			if (typeof(attributeStyle) != 'undefined' && typeof(valueSeperated) != 'undefined') {		
				html += "<div class='epoq_checkbox " + attributeStyle + " " + "'>" + headline + "<br>";
				var values = valueSeperated.split(",");	
				var names = namesSeperated.split(",");
				for (var j=0;j<values.length;j++) {
					html += "<input type=\"checkbox\" name=\"" + attributeStyle +"\" value=\"" + values[j] +"\">" + names[j];
				}
				html += "<br></div>";
			}
		} else if (filterType == 'platzhalter') {
				var spalte = slv % 3;
		    var spaltenKlasse = 'rechts' + spalte;
		    slv++;
				html += "<div class=\"" + spaltenKlasse + "\"></div>";
		} else if (filterType == 'header') {
				var spalte = slv % 3;
		    var spaltenKlasse = 'rechts' + spalte;
		    slv++;
				html += "<div class='spaltentitel'>" + namesSeperated + "</div>";
		}
	}		
	
	/*
	html += "<div class='epoq_radiobuttons'>";	
	for (var i=0;i<epoq_radios.items.length;i++) {
		var headline = epoq_radios.items[i][0];
		var valueSeperated = epoq_radios.items[i][4];
		var namesSeperated = epoq_radios.items[i][3];
		var fieldStyle = epoq_radios.items[i][2];		
	}
	html+= "</div>";*/
	
	
	jQuery("#epoq_defineAdvanced").empty();
	jQuery("#epoq_defineAdvanced").append(html);
}

function epoq_getSelectedFilters() {		
	for (var i=0;i<epoq_fineSearch.items.length;i++) {
		var fieldName = epoq_fineSearch.items[i][0];
		var attributeName = epoq_fineSearch.items[i][1];
		var attributeStyle = epoq_fineSearch.items[i][2];
		var filterType = epoq_fineSearch.items[i][5];
		
		if (filterType == 'combo') {
			var value = jQuery("#" + attributeStyle).val();
			if (typeof(attributeName) != 'undefined' && typeof(value) != 'undefined' && value.length > 0) {
				epoq_addFilter(attributeName, value, false);
			}
		} else if (filterType == 'radio' || filterType == 'checkbox') {
			var value = jQuery("input[name=" + attributeStyle + "]:checked").val();
			if (typeof(attributeName) != 'undefined' && typeof(value) != 'undefined') {
				epoq_addFilter(attributeName, value, false);		
			}
		} else if (filterType == 'range') {
			if (typeof(fieldName) != 'undefined' && typeof(attributeName) != 'undefined' && typeof(attributeStyle) != 'undefined') {
				var attFrom = jQuery("#" + attributeStyle + "_from").val();
				var attTo = jQuery("#" + attributeStyle + "_to").val();
				if (attFrom.length > 0 && attTo > 0) {
					epoq_addFilter(attributeName, attFrom + "-" + attTo, false);
				} else if (attFrom > 0) {
					epoq_addFilter(attributeName, ">" + attFrom, false);
				} else if (attTo > 0) {
					epoq_addFilter(attributeName, "<" + attTo, false);
				}
			}			
		}
		
	}	
	
}

function epoq_processChange(event) {
	matchAttr = "";
	matchValue = "";
	for (var i=0; i< event.parameterNames.length;i++) {
		if (event.parameterNames[i] == 'limit') {
    		limit = parseInt(event.parameters['limit']);
    	}
		if (event.parameterNames[i] == 'offset') {
			offset = parseInt(event.parameters['offset']);
    	}
		if (event.parameterNames[i] == 'order') {
			order = event.parameters['order'];
    	}
		if (event.parameterNames[i] == 'orderBy') {
			orderBy = event.parameters['orderBy'];
    	}
		if (event.parameterNames[i] == 'matchAttr') {
			if (typeof(event.parameters['matchAttr']) == 'object') {
				for (var j=0; j<event.parameters['matchAttr'].length; j++) {
					matchAttr += event.parameters['matchAttr'][j] + "§";
				}
			} else {
				matchAttr += event.parameters['matchAttr'] + "§";
			}      			
    	}
		if (event.parameterNames[i] == 'matchValue') {
			if (typeof(event.parameters['matchValue']) == 'object') {
				for (var j=0; j<event.parameters['matchValue'].length; j++) {
					matchValue += epoq_unescapeAmp(event.parameters['matchValue'][j]) + "§";
				}
			} else {
				matchValue += epoq_unescapeAmp(event.parameters['matchValue']) + "§";
			}      	
    	}  
		if (event.parameterNames[i] == 'query') {
			query = event.parameters['query'];
			query = epoq_unescapeAmp(query);
			jQuery("#searchbox").val(query);
    	}  
	}    	
		       
}

function epoq_replaceApostrophs(val) {
	var replacement= val.replace(/'/g, "§").replace(/\"/g, "#");	
	return replacement;
}

function epoq_restoreApostrophs(val) {
	var restoration = val.replace(/§/g, "'").replace(/#/g, "\"");	
	return restoration;
}


function epoq_currencyFormatted(amount)
{
	var i = parseFloat(amount);
	if(isNaN(i)) { i = 0.00; }
	var minus = '';
	if(i < 0) { minus = '-'; }
	i = Math.abs(i);
	i = parseInt((i + .005) * 100);
	i = i / 100;
	s = new String(i);
	if(s.indexOf('.') < 0) { s += '.00'; }
	if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
	s = minus + s;
	s += " " + currencySymbol;
	return s;
}




function epoq_addFilter(stat, value, reload) {
	/*var el = document.getElementById(filterId);
	var classList = el.attr('class').split(' ');
	if (typeof(classList) != undefined) {
		for (var i =0; i < classList.length; i++) {
			if (classList[i] == '')
		}
	}*/
	
	
	value = epoq_restoreApostrophs(value);
	if (reload != false) {
		offset=0;
	}		
	/*epoq_removeFilter(stat, false);*/
	for (var i = 0; i< activeFilters.items.length; i++) {		
		if (typeof(activeFilters.items[i][0]) == 'undefined') {
			activeFilters.items[i][0] = stat;
			activeFilters.items[i][1] = value;
			break;
		} else if (stat == activeFilters.items[i][0]) {		
			if (stat == "g:price") { /* multiple price or range filters not available atm */
				activeFilters.items[i][1] = value;
			} else {
				activeFilters.items[i][1] = activeFilters.items[i][1] + ";" + value;
			}
			
			break;				
		}
	}
	if (reload != false) {
		epoq_setFilters(reload);
	}	
}





function epoq_setFilters() {
	/*set expert arg*/
	matchAttr = "";
	matchValue = "";
	for (var i = 0; i< activeFilters.items.length; i++) {
		if (typeof(activeFilters.items[i][0]) != "undefined" && typeof(activeFilters.items[i][1]) != "undefined") {
			//expert += "&matchAttr=" + activeFilters.items[i][0] + "&matchValue=" + activeFilters.items[i][1];
			matchAttr += activeFilters.items[i][0] + "§";
			matchValue += activeFilters.items[i][1] + "§";
		}
	}	
	jQuery.address.autoUpdate(false);
	jQuery.address.parameter('offset', offset, false);
	jQuery.address.parameter('matchAttr', matchAttr, false);
	jQuery.address.parameter('matchValue', epoq_escapeAmp(matchValue), false);
	jQuery.address.update();
	jQuery.address.autoUpdate(true);	
}
function epoq_escapeAmp(text) {
	return text.replace(/&/g, "I_I");
}

function epoq_unescapeAmp(text) {
	return text.replace(/I_I/g, "&");
}

