/**
 * jQuery.timers - Timer abstractions for jQuery
 * Written by Blair Mitchelmore (blair DOT mitchelmore AT gmail DOT com)
 * Licensed under the WTFPL (http://sam.zoy.org/wtfpl/).
 * Date: 2009/02/08
 *
 * @author Blair Mitchelmore
 * @version 1.1.2
 *
 **/

jQuery.fn.extend({
	everyTime: function(interval, label, fn, times, belay) {
		return this.each(function() {
			jQuery.timer.add(this, interval, label, fn, times, belay);
		});
	},
	oneTime: function(interval, label, fn) {
		return this.each(function() {
			jQuery.timer.add(this, interval, label, fn, 1);
		});
	},
	stopTime: function(label, fn) {
		return this.each(function() {
			jQuery.timer.remove(this, label, fn);
		});
	}
});

jQuery.event.special

jQuery.extend({
	timer: {
		global: [],
		guid: 1,
		dataKey: "jQuery.timer",
		regex: /^([0-9]+(?:\.[0-9]*)?)\s*(.*s)?$/,
		powers: {
			// Yeah this is major overkill...
			'ms': 1,
			'cs': 10,
			'ds': 100,
			's': 1000,
			'das': 10000,
			'hs': 100000,
			'ks': 1000000
		},
		timeParse: function(value) {
			if (value == undefined || value == null)
				return null;
			var result = this.regex.exec(jQuery.trim(value.toString()));
			if (result[2]) {
				var num = parseFloat(result[1]);
				var mult = this.powers[result[2]] || 1;
				return num * mult;
			} else {
				return value;
			}
		},
		add: function(element, interval, label, fn, times, belay) {
			var counter = 0;
			
			if (jQuery.isFunction(label)) {
				if (!times) 
					times = fn;
				fn = label;
				label = interval;
			}
			
			interval = jQuery.timer.timeParse(interval);

			if (typeof interval != 'number' || isNaN(interval) || interval <= 0)
				return;

			if (times && times.constructor != Number) {
				belay = !!times;
				times = 0;
			}
			
			times = times || 0;
			belay = belay || false;
			
			var timers = jQuery.data(element, this.dataKey) || jQuery.data(element, this.dataKey, {});
			
			if (!timers[label])
				timers[label] = {};
			
			fn.timerID = fn.timerID || this.guid++;
			
			var handler = function() {
				if (belay && this.inProgress) 
					return;
				this.inProgress = true;
				if ((++counter > times && times !== 0) || fn.call(element, counter) === false)
					jQuery.timer.remove(element, label, fn);
				this.inProgress = false;
			};
			
			handler.timerID = fn.timerID;
			
			if (!timers[label][fn.timerID])
				timers[label][fn.timerID] = window.setInterval(handler,interval);
			
			this.global.push( element );
			
		},
		remove: function(element, label, fn) {
			var timers = jQuery.data(element, this.dataKey), ret;
			
			if ( timers ) {
				
				if (!label) {
					for ( label in timers )
						this.remove(element, label, fn);
				} else if ( timers[label] ) {
					if ( fn ) {
						if ( fn.timerID ) {
							window.clearInterval(timers[label][fn.timerID]);
							delete timers[label][fn.timerID];
						}
					} else {
						for ( var fn in timers[label] ) {
							window.clearInterval(timers[label][fn]);
							delete timers[label][fn];
						}
					}
					
					for ( ret in timers[label] ) break;
					if ( !ret ) {
						ret = null;
						delete timers[label];
					}
				}
				
				for ( ret in timers ) break;
				if ( !ret ) 
					jQuery.removeData(element, this.dataKey);
			}
		}
	}
});

jQuery(window).bind("unload", function() {
	jQuery.each(jQuery.timer.global, function(index, item) {
		jQuery.timer.remove(item);
	});
});

Array.prototype.max = function(){
	return Math.max.apply({},this);
};

function loadGallery(el, url, selector) {
	$(el).load(url + " " + selector,null, function() {
		$(el).find('a').css('display', 'block').each( function() {
				this.href = url;
		}).find("img").each(
				function() {
					this.src = this.src.replace("?q=gallery", "?q=default");
				}
		);
		$(el).find('.element').css('float','left').css('padding','0px 10px 10px 0px');
		$(el).find('a.title').hide();
	});
}



jQuery.fn.extend({

	showAd: function() {
		this.siblings().hide(300);
		this.show(300);
	},
	
	setSuperHoverOn: function(interval, fn, fnoff) {
		this.parent().find(".superhoveron").setSuperHoverOff(fnoff);
		this.addClass("superhoveron");
		fn.call(this.get(0));
	},
	
	setSuperHoverOff: function(fn) {
		this.removeClass("superhoveron");
		this.stopTime('superhover');
		fn.call(this.get(0));
	},
	
	superHoverTimerOn: function(interval, fnon, fnoff) {
		//alert('shton ' + interval + this);
		$(this).setSuperHoverOn(interval, fnon, fnoff);
		$(this).oneTime(interval, 'superhover', function() {
			//alert('xxx' + this);
			$(this).setSuperHoverOff(fnoff);
			var n = $(this).next(".superhover");
			if( n.length == 0) 
				n = $(this).parent().children(":first");
			n.setSuperHoverOn(interval, fnon, fnoff);
			n.superHoverTimerOn(interval, fnon, fnoff);
		});
	},
	
	superhover: function(interval, fnon, fnoff) {
		this.addClass('superhover');
		this.hover( function() {
			$(this).setSuperHoverOn(interval, fnon, fnoff);
		}, function() {
			$(this).superHoverTimerOn(interval, fnon, fnoff);
		});
		var sh = this.parent().children(":first");
		sh.superHoverTimerOn(interval, fnon, fnoff);
	},
	
	hSavings: function() {
		var savings = 0;
		this.each( function() {
			var h = $(this).outerHeight();
			var ph = $(this).parent().height();
			savings = savings + ph - h;
		});
		return savings;
	},
	
	hSave: function(h) {
		var r = h;
		this.each( function() {
			if( r<=0) return;
			var reduceby = Math.min( $(this).hSavings(), r);
			var par = $(this).parent();
			par.height( par.height() - reduceby);
			r = r - reduceby;
		});
		return r;
	}
	
});

$(document).ready(function(){
	x = $("#menu").children(":last").addClass('last-child');
	
	window.setTimeout( function() {
		if(! (document.cookie.indexOf('autothickbox=') >= 0) ) {
				var t = "Komunikat";
				var a = "/catalog/komunikaty.htm?height=300&width=300";
				var g = "";
				try {
				$.get(a, function(data) {
					tb_show(t,a,g);


	                        });
	                        } catch (x) {
 	                        }
 		
				//this.blur();
			document.cookie = 'autothickbox=once; path=/catalog/;';
			return false;
		}
		else if(! (document.cookie.indexOf('komunikaty=') >= 0) ) {
                        var t = "Komunikat";
                        var a = "/komunikaty/index.htm?height=300&width=300";
                        var g = "";
			try {
			$.get(a, function(data) {
				tb_show(t,a,g);
				document.cookie = 'komunikaty=once; path=/;';
			});
			} catch (x) {
			}
                        return false;
                }
	}, 1000);
	
	//$(".forty div.bct").prepend("<div class='slab'>forty bct</div>");
	//$(".sixty div.bct").prepend("<div class='slab'>sixty bct</div>");
	
	{ 
	//	var forty = $(".forty div.bct .inner").hSavings();
	//	var sixty = $(".sixty div.bct .inner").hSavings();
	//	var savings = Math.min(forty,sixty);
	//	alert("F: "+forty+"S: "+sixty+"SAV:"+savings);
	//	$(".forty div.bct .inner").hSave(savings);
	//	$(".sixty div.bct .inner").hSave(savings);
		
		
		
		
	}
	

	var sumsixty = 0;
	$("#ctt tr div.sixty div.bct").each( function() {
		var x = $(this).innerHeight() - $(this).children('div.inner').height() - 8;

		if(x < 0) {
		   sumsixty -=x;

		   $(this).addClass('testing');
		   $(this).height($(this).height() - x);
		}
	});



	var lastForty = $("#ctt td.forty:last div.bct");

	lastForty.height(lastForty.height() + sumsixty);
	
});
