function isdefined( variable) {
    return (typeof(variable) == "undefined") ? false: true;
}
try {
	if ( window.charter == undefined ) {
		charter = false;
	} 
} catch(e) {
	charter = false;
}

jQuery.applicationInit.startSlider = function($) {
	SliderGroup.init(art);
	jQuery('.slider_reset').click(function() {
		SliderGroup.reset();
		return false;
	});
	jQuery('#searchform select').change(function() {
		SliderGroup.loadList();
	});
};
SliderGroup = {
	preventUpdate: false,
	keycount: 0,
	keyDownTimer: null,
	art: 'motor',
	/*slideHandler: function(e, ui){
		this.update(ui.value);
	},
	changeHandler: function(e, ui) {
		this.update(ui.value);
		SliderGroup.loadList();
	},*/
	setdots: function(val){
		var newString = "";
		val = val.toString();
		while(true) {
			if (val.length > 3) {
				var subS = val.substr(val.length - 3, 3);
				val = val.substring(0, val.length - 3);
				newString = subS + "." + newString;
			} else {
				newString = val + "." + newString;
				break;
			}
		}
		return newString.substring(0,newString.length-1);
	},
	init: function( art ) {
		SliderGroup.art = art;
		jQuery(window).keydown(function(e) {
			if (/(37|39)/.test(e.keyCode) && jQuery('.selected').length > 0 ) {
				SliderGroup.preventUpdate = true;
				++SliderGroup.keycount;
				if (SliderGroup.keyDownTimer != null) {
					window.clearTimeout(SliderGroup.keyDownTimer);
				}
				e.stopPropagation();
			}
		}).keyup(function(e) {
			if (/(37|39)/.test(e.keyCode) && jQuery('.selected').length > 0 && SliderGroup.keycount != 1) {
				SliderGroup.keycount = 0;
				SliderGroup.keyDownTimer = window.setTimeout(function(){
					SliderGroup.preventUpdate = false;
					SliderGroup.loadList();
				}, 700);
			}
		});

		$('head').append('<link rel="stylesheet" type="text/css" href="/globaldesign/jqueryui/boote-yachten/jquery-ui-1.7.2.custom.css">');

		if ( jQuery('#track1').length ) {
			jQuery('#track1').slider({
				min: 0,
				max: 14,
				range: 'min',
				stepping: 1,
				slide: function(e, ui) {
					var val = ui.value;
					val = SliderGroup.getSliderIntValue(this, val, SliderGroup.getters.pmin);

					jQuery('form#searchform > input[name=pmin]').attr('value', val);
					jQuery('#handle1_display').text(SliderGroup.setdots(val) + ' €');
				},
				change: function(e, ui){
					jQuery(this).data('slider').options.slide(e, ui);
					SliderGroup.loadList();
				}
			});
		}

		if ( jQuery('#track2').length ) {
			jQuery('#track2').slider({
				min: 0,
				max: 14,
				range: 'max',
				stepping: 1,
				slide: function(e, ui) {
					var val = ui.value;
					val = SliderGroup.getSliderIntValue(this, val, SliderGroup.getters.pmax);
	
					jQuery('form#searchform > input[name=pmax]').attr('value', val);
					jQuery('#handle2_display').text(SliderGroup.setdots(val) + ' €');
				},
				change: function(e, ui){
					jQuery(this).data('slider').options.slide(e, ui);
					SliderGroup.loadList();
				}
			});
		}

		if ( jQuery('#track3').length ) {
			jQuery('#track3').slider({
				min:0,
				max: 19,
				range: 'min',
				stepping: 1,
				slide: function(e, ui) {
					var val = ui.value;
					val = SliderGroup.getSliderIntValue(this, val, SliderGroup.getters.lmin);
	
					jQuery('form#searchform > input[name=lmin]').attr('value', val);
					jQuery('#handle3_display').text(val + ' m');
				},
				change: function(e, ui){
					jQuery(this).data('slider').options.slide(e, ui);
					SliderGroup.loadList();
				}
			});
		}

		if ( jQuery('#track4').length ) {
			jQuery('#track4').slider({
				min: 0,
				max: 19,
				range: 'max',
				stepping: 1,
				slide: function(e, ui) {
					var val = ui.value;
					val = SliderGroup.getSliderIntValue(this, val, SliderGroup.getters.lmax);
	
					jQuery('form#searchform > input[name=lmax]').attr('value', val);
					jQuery('#handle4_display').text(val + ' m');
				},
				change: function(e, ui){
					jQuery(this).data('slider').options.slide(e, ui);
					SliderGroup.loadList();
				}
			});
		}

		if ( jQuery('#track5').length ) {
			jQuery('#track5').slider({
				min: 0,
				max: 17,
				range: 'min',
				stepping: 1,
				slide: function(e, ui) {
					var val = ui.value;
					val = SliderGroup.getSliderIntValue(this, val, SliderGroup.getters.bjmin);
	
					jQuery('form#searchform > input[name=bjmin]').attr('value', val);
					jQuery('#handle5_display').text(val);
				},
				change: function(e, ui){
					jQuery(this).data('slider').options.slide(e, ui);
					SliderGroup.loadList();
				}
			});
		}

		if ( jQuery('#track6').length ) {
			jQuery('#track6').slider({
				min: 0,
				max: 14,
				range: 'max',
				stepping: 1,
				slide: function(e, ui) {
					var val = ui.value;
					val = SliderGroup.getSliderIntValue(this, val, SliderGroup.getters.bjmax);
	
					jQuery('form#searchform > input[name=bjmax]').attr('value', val);
					jQuery('#handle6_display').text(val);
				},
				change: function(e, ui){
					jQuery(this).data('slider').options.slide(e, ui);
					SliderGroup.loadList();
				}
			});
		}
		
		if ( jQuery('#track7').length ) {
			jQuery('#track7').slider({
				min: 0,
				max: 16,
				range: 'min',
				stepping: 1,
				slide: function(e, ui) {
					var val = ui.value;
					val = SliderGroup.getSliderIntValue(this, val, SliderGroup.getters.schlafplaetze);
	
					jQuery('form#searchform > input[name=schlafplaetze]').attr('value', val);
					jQuery('#handle7_display').text(val);
				},
				change: function(e, ui){
					jQuery(this).data('slider').options.slide(e, ui);
					SliderGroup.loadList();
				}
			});
		}

		jQuery(document).hashChange(function() {
			(function() {
				if (window.location.hash == '') {
					jQuery.each(this.sliderValues, function(k, v) {
						v[0] = 0;
					});
				} else {
					this.refreshFromUrl();
				}
				this.refreshSliders();
				this.loadList();
			}).apply(SliderGroup)
		});
		var default_v = this.refreshFromUrl();
		this.refreshSliders();
		if ( ! default_v ) {
			SliderGroup.loadList();
		}
	},
	getSliderIntValue: function(slider, value, getter) {
		//var stepping = jQuery(slider).data('slider').options.realMax.x /jQuery(slider).data('slider').options.steps;
		//var proz = jQuery(slider).data('slider').options.realMax.x *(value/100);
		var val = value;//Math.ceil(proz/stepping);
		if ( typeof getter == 'function' ) {
			return getter( val );
		} else {
			return val;
		}
	},
	refreshSliders: function() {
		SliderGroup.preventUpdate = true;
		if ( jQuery('#track1').length ) {
			jQuery('#track1').slider('value', this.sliderValues['pmin'][0]*jQuery('#track1').slider('option', 'stepping'));
		}
		if ( jQuery('#track2').length ) {
			jQuery('#track2').slider('value', this.sliderValues['pmax'][0]*jQuery('#track2').slider('option', 'stepping'));
		}
		if ( jQuery('#track3').length ) {
			jQuery('#track3').slider('value', this.sliderValues['lmin'][0]*jQuery('#track3').slider('option', 'stepping'));
		}
		if ( jQuery('#track4').length ) {
			jQuery('#track4').slider('value', this.sliderValues['lmax'][0]*jQuery('#track4').slider('option', 'stepping'));
		}
		if ( jQuery('#track5').length ) {
			jQuery('#track5').slider('value', this.sliderValues['bjmin'][0]*jQuery('#track5').slider('option', 'stepping'));
		}
		if ( jQuery('#track6').length ) {
			jQuery('#track6').slider('value', this.sliderValues['bjmax'][0]*jQuery('#track6').slider('option', 'stepping'));
		}
		if ( jQuery('#track7').length ) {
			jQuery('#track7').slider('value', this.sliderValues['schlafplaetze'][0]*jQuery('#track7').slider('option', 'stepping'));
		}
		SliderGroup.preventUpdate = false;
	},
	buildParams: function() {
		var pars = [];
		var hash = [];
		var default_values = true;
		var ignorpars = {
			section: true,
			art: true,
			b2b: true,
			liegeplatz: true
		};
		jQuery('#searchform input[type=hidden], #searchform select').each(function(k, v) {
			(function() {
				if ( (this.sliderValues[v.name] ) && v.value != '' ) {
					this.sliderValues[v.name][0] = eval(this.sliderValues[v.name][1]+'('+v.value+', true)');
					if (this.sliderValues[v.name][0] != 0) {
						default_values = false;
						pars.push(v.name + '=' + v.value);
						if ( ! ignorpars[v.name] ) {
							hash.push(v.name + '=' + v.value);
						}
					}
				} else if (v.value != '') {
					pars.push( encodeURIComponent(v.name) + '=' + encodeURIComponent(v.value) );
					if ( ! ignorpars[v.name] ) {
						hash.push( encodeURIComponent(v.name) + '=' + encodeURIComponent(v.value) );
					}
				}
			}).apply(SliderGroup);
		});
		var hash = '#' + hash.join('&');
		if ( window.location.hash != '' || window.location.hash != '#') {
			jQuery.hashUpdate(hash);
		}
		return pars.join('&');
	},
	refreshFromUrl: function() {
		var start = '';
		var type = '';

		if ( (start = window.location.href.split('#')[1]) ) {
			type = 'hash';
		} else if ( (start = window.location.href.split('?')[1]) ) {
			type = 'url';
		}

		var default_val = true;
		if (start && start != '') {
			start = start.split('&');

			var data = {};
			jQuery.each(start, function(k, v) {
				var ele = v.split('=');
				data[ele[0]] = ele[1];
			});

			jQuery.each(data, function(k, v){
				if ( SliderGroup.sliderValues[k] ) {
					v = eval(SliderGroup.sliderValues[k][1]+'('+v+', true)');
					SliderGroup.sliderValues[k][0] = v;
				}
				switch(k) {
					case 'art':
						jQuery('#searchform select[name=art]').val(v);
						break;
					case 'region':
						jQuery('#searchform select[name=region]').val(v);
						break;
					case 'brennstoff':
						jQuery('#searchform select[name=brennstoff]').val(v);
						break;
					case 'material':
						jQuery('#searchform select[name=material]').val(v);
						break;
					case 'antrieb':
						jQuery('#searchform select[name=antrieb]').val(v);
						break;
				}

				if ( v != 0 ) {
					default_val = false;
				}
			});
		} else {
			var that = this;
			jQuery.each(this.sliderValues, function(k, v) {
				v[0] = 0;
			});
		}
		return type == 'url' ? true : default_val;
	},
	loadList: function() {
		if ( ! SliderGroup.preventUpdate ) {
			(function(){
				var pars = this.buildParams();
				if (jQuery('#loading-indicator').length < 1) {
					jQuery('#list_content').empty();
					jQuery('<div id="loading-indicator" style="margin-left:365px; margin-top:220px;">' +
					'<img src="design/img/ajax-loader.gif />' +
					'</div>').appendTo('#list_content');
				}
				jQuery('#list_content').load('ajax/loadlist.php?' + pars, function() {
					jQuery('.boot_pic').picPopup();
				});
			}).apply(SliderGroup);
		}
	},
	getters: {
		pmin: function(v, getIndex) {
			if ( charter ) {
				var values = new Array(0, 50, 500, 1000, 1500, 2500, 3500, 4500, 5000, 5500, 6000, 7000, 8000, 9000, 10000);
			} else {
				switch(SliderGroup.art) {
					case 'motor':
					case 'segel':
						var values = new Array(0, 5000, 10000, 20000, 30000, 40000, 50000, 75000, 100000, 150000, 200000, 300000, 400000, 500000, 1000000);
						break;
					case 'jet':
					case 'schlauch':
					case 'klein':
						var values = new Array(0, 1000, 3000, 6000, 8000, 10000, 12000, 14000, 16000, 18000, 20000, 22000, 24000,26000,30000);
						break;
					default:
						var values = new Array(0, 5000, 10000, 20000, 30000, 40000, 50000, 75000, 100000, 150000, 200000, 300000, 400000, 500000, 1000000);
						break;
				}
					
			}
			if (getIndex) {
				for (i = 0; i < values.length; ++i) {
					if (values[i] == v) return i;
				}
				return false;
			}
			else {
				return values[v];
			}
		},
		pmax: function(v, getIndex) {
			if ( charter ) {
				var values = new Array(10000, 9000, 8000, 7000, 6000, 5500, 5000, 4500, 4000, 3500, 3000, 2500, 2000, 1500, 500, 50);
			} else {
				switch(SliderGroup.art) {
					case 'motor':
					case 'segel':
						var values = new Array(50000000, 5000000, 2500000, 1000000, 750000, 500000, 200000, 150000, 100000, 50000, 40000, 30000, 20000, 10000, 5000);
						break;
					case 'jet':
					case 'schlauch':
					case 'klein':
						var values = new Array(1000000, 500000, 250000, 75000, 50000, 35000, 25000, 20000, 15000, 10000, 8000, 6000, 4000, 2000, 1000);
						break;
					default:
						var values = new Array(50000000, 5000000, 2500000, 1000000, 750000, 500000, 200000, 150000, 100000, 50000, 40000, 30000, 20000, 10000, 5000);
						break;
				}
				
			}
			if (getIndex) {
				for (i = 0; i < values.length; ++i) {
					if (values[i] == v) return i;
				}
				return false;
			}
			else return values[v];
		},
		lmin: function(v, getIndex) {
			switch(SliderGroup.art) {
				case 'motor':
				case 'segel':
					var values = new Array(50, 40, 30, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 0);
					break;
				case 'jet':
				case 'schlauch':
				case 'klein':
					var values = new Array(19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
					break;
				default:
					var values = new Array(50, 40, 30, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 0);
					break;
			}
			values.reverse();
			if (getIndex) {
				for (i = 0; i < values.length; ++i) {
					if (values[i] == v) return i;
				}
				return false;
			}
			else return values[v];
		},
		lmax: function(v, getIndex) {
			switch(SliderGroup.art) {
				case 'motor':
				case 'segel':
					var values = new Array(60, 50, 40, 30, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5);
					break;
				case 'jet':
				case 'schlauch':
				case 'klein':
					var values = new Array(20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1);
					break;
				default:
					var values = new Array(60, 50, 40, 30, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5);
					break;
			}
			if (getIndex) {
				for (i = 0; i < values.length; ++i) {
					if (values[i] == v) return i;
				}
				return false;
			}
			else return values[v];
		},
		bjmin: function(v, getIndex) {
			var values = new Array("1900", "1950", "1960", "1970", "1980", "1990", "1992", "1994", "1996", "1998", "2000", "2002", "2004", "2005", "2006", "2007", "2008", "2009");
			if (getIndex) {
				for (i = 0; i < values.length; ++i) {
					if (values[i] == v) return i;
				}
				return false;
			}
			else return values[v];
		},
		bjmax: function(v, getIndex) {
			var values = new Array("2009", "2008", "2007", "2006", "2005", "2004", "2003", "2002", "2001", "2000", "1999", "1998", "1997", "1996", "1995");
			if (getIndex) {
				for (i = 0; i < values.length; ++i) {
					if (values[i] == v) return i;
				}
				return false;
			}
			else return values[v];
		},
		schlafplaetze: function(v, getIndex) {
			var values = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13","14","15","16");
			if (getIndex) {
				for (i = 0; i < values.length; ++i) {
					if (values[i] == v) return i;
				}
				return false;
			}
			else return values[v];
		}
	},
	reset: function() {
		jQuery('#searchform input[type=hidden]').each(function(k, v) {
			(function() {
				if ( this.sliderValues[v.name] ) {
					this.sliderValues[v.name][0] = 0;
					v.value = eval(this.sliderValues[v.name][1]+'(0)');
				}
			}).apply(SliderGroup);
		});
		jQuery('#searchform select').val('');
		jQuery.hashUpdate('#');
		SliderGroup.preventUpdate = true;
		jQuery('#track1').slider('value', '0');
		jQuery('#track2').slider('value', '0');
		jQuery('#track3').slider('value', '0');
		jQuery('#track4').slider('value', '0');
		jQuery('#track5').slider('value', '0');
		jQuery('#track6').slider('value', '0');
		jQuery('#track7').slider('value', '0');
		SliderGroup.preventUpdate = false;
		SliderGroup.loadList();
	},
	sliderValues: {
		pmin: [0, 'SliderGroup.getters.pmin'],
		pmax: [0, 'SliderGroup.getters.pmax'],
		lmin: [0, 'SliderGroup.getters.lmin'],
		lmax: [0, 'SliderGroup.getters.lmax'],
		bjmin: [0, 'SliderGroup.getters.bjmin'],
		bjmax: [0, 'SliderGroup.getters.bjmax'],
		schlafplaetze: [0, 'SliderGroup.getters.schlafplaetze']
	}
};

