function updateMenuAndBreadCrump(uri){
	jQuery('#left_column h1:first-child').addClass('ajax');
	$('#navbar').load(domena+'index/updatemenu/uri/'+uri);
	$('#breadcrumbs').load(domena+'index/updatebreadcrumbs/uri/'+uri);	
	$(window).scrollTop(200);
}

function showNews(id){
	$(window).scrollTop(300);
	$('#news_list').hide();
	$('#large_news').load(domena+'index/getnews/id/'+id);
	$('#large_news').fadeIn();
}
		
function news_goBack(){
	$('#large_news').html('');
	$('#large_news').hide();
	$('#news_list').fadeIn();
}

$(window).bind("ajaxSend", function() {
			  //jQuery('#left_column').addClass('ajax');
			});

			$(window).bind("ajaxError", function() {
			 // jQuery('#left_column').removeClass('ajax');
			});

			$(window).bind("ajaxSuccess", function() {
				// jQuery('#left_column').removeClass('ajax');
			});

$(function(){

  $(window).bind( 'hashchange', function(e) {

		var hrefsplit = window.location.href.split('#');

		if (hrefsplit.length > 1) {
			var param = hrefsplit[1].split(':');
		} else {
			var param = "";
		}
		// param[0] podstrona
		// param[1] lp [paginacja]
		// param[2] strona paginacji

		switch(param[0]) {
		case 'oferty':
				updateMenuAndBreadCrump('oferty');
				$('#left_column').load(domena+'portal/oferty');
			break;
			
		case 'przetargi':
				updateMenuAndBreadCrump('przetargi');
				$('#center').load(domena+'portal/przetargi');
			break;

		case 'dodajogloszenie':
				updateMenuAndBreadCrump('dodajogloszenie');
				$('#left_column').load(domena+'portal/addoffer');
			break;
			
		case 'dodajpracodawce':
				updateMenuAndBreadCrump('dodajpracodawce');
				$('#left_column').load(domena+'portal/addemployer');
			break;
			
		case 'dodajcv':
				updateMenuAndBreadCrump('dodajcv');
				$('#left_column').load(domena+'portal/addcv');
			break;
			
		case 'bazacv':
				updateMenuAndBreadCrump('bazacv');
				$('#left_column').load(domena+'portal/getcvs');
			break;

		case 'bazacvb':
				updateMenuAndBreadCrump('bazacvb');
				window.location = domena+'#bazacv';
			break;
			
		case 'ofertypracy':
				updateMenuAndBreadCrump('ofertypracy');
				$('#left_column').load(domena+'portal/getoffers');
				$('#left_column').append('<div id="bip_offer"></div>');
				$('#bip_offer').load(domena+'portal/oferty');
			break;
			
		case 'ofertydlaniepelnosprawnych':
				updateMenuAndBreadCrump('ofertydlaniepelnosprawnych');
				$('#left_column').load(domena+'portal/getoffersfordisabled');
			break;

		case 'ofertypracyb':
				updateMenuAndBreadCrump('ofertypracyb');
				window.location =  domena+'#ofertypracy';
			break;			
		
		case 'listapracodawcow':
				updateMenuAndBreadCrump('listapracodawcow');
				$('#left_column').load(domena+'portal/getemployers');
			break;

		case 'listapracodawcowb':
				updateMenuAndBreadCrump('listapracodawcowb');
				window.location =  domena+'#listapracodawcow';
			break;
		
		case 'rejestracja':
			updateMenuAndBreadCrump('rejestracja');
			$('#left_column').load(domena+'login/register/');
		  break;

		case 'wyszukiwanie':
			updateMenuAndBreadCrump('wyszukiwanie');
			if (param[3] && param[4]) { var lp = '/'+param[3]+'/'+param[4];} else { var lp = '';}
			$('#content').load(domena+'wyszukiwarka/index/search-field/'+param[2]+lp);
		  break;
		  
		 case 'edit_profil':
		 	updateMenuAndBreadCrump('edit_profil');
		 	$('#left_column').load(domena+'login/edit/');
		 break;

		}

  });

  $(window).trigger( 'hashchange' );

});

(function($) {

	$.fn.preloader = function(options) {
		var settings = $.extend({}, $.fn.preloader.defaults, options);


		return this.each(function() {
			settings.beforeShowAll.call(this);
			var imageHolder = $(this);
			
			var images = imageHolder.find(settings.imgSelector).css({opacity:0, visibility:'hidden'});	
			var count = images.length;
			var showImage = function(image,imageHolder){
				if(image.data.source != undefined){
					imageHolder = image.data.holder;
					image = image.data.source;	
				};
				
				count --;
				if(settings.delay <= 0){
					image.css('visibility','visible').animate({opacity:1}, settings.animSpeed, function(){settings.afterShow.call(this)});
				}
				if(count == 0){
					imageHolder.removeData('count');
					if(settings.delay <= 0){
						settings.afterShowAll.call(this);
					}else{
						if(settings.gradualDelay){
							images.each(function(i,e){
								var image = $(this);
								setTimeout(function(){
									image.css('visibility','visible').animate({opacity:1}, settings.animSpeed, function(){settings.afterShow.call(this)});
								},settings.delay*(i+1));
							});
							setTimeout(function(){settings.afterShowAll.call(imageHolder[0])}, settings.delay*images.length+settings.animSpeed);
						}else{
							setTimeout(function(){
								images.each(function(i,e){
									$(this).css('visibility','visible').animate({opacity:1}, settings.animSpeed, function(){settings.afterShow.call(this)});
								});
								setTimeout(function(){settings.afterShowAll.call(imageHolder[0])}, settings.animSpeed);
							}, settings.delay);
						}
					}
				}
			};
			
			if(count==0){
				settings.afterShowAll.call(this);
			}else{
				images.each(function(i){
					settings.beforeShow.call(this);
				
					image = $(this);
				
					if(this.complete==true){
						showImage(image,imageHolder);
					}else{
						image.bind('error load',{source:image,holder:imageHolder}, showImage);
						if($.browser.opera){
							image.trigger("load");//for hidden image
						}
					}
				});
			}
		});
	};


	//Default settings
	$.fn.preloader.defaults = {
		delay:1000,
		gradualDelay:true,
		imgSelector:'img',
		animSpeed:500,
		beforeShowAll: function(){},
		beforeShow: function(){},
		afterShow: function(){},
		afterShowAll: function(){}
	};
})(jQuery);

	var enable_image_title = function(image){
		if(image.is('.image_title')){
			var alt = image.find('img').attr('alt');
			if (alt.length > 0){
				image.closest('.image_frame').append('<div class="image_desc">foto - '+alt+'</div>');
			}
		}	
	}
	
	
	/* enable lightbox */
	var enable_lightbox = function(parent){
			jQuery(".lightbox",parent).colorbox({
				opacity:0.7,
				maxWidth:"100%",
				maxHeight:"100%",
				initialHeight:0,
				initialWidth:0,
				current:"{current} of {total}",
				onOpen: function() {
					// prevent Overlay from being displayed...
					$('#cboxOverlay,#colorbox').css('visibility', 'hidden');
					// make the overlay visible and
					// re-add all it's original properties!
					$('#cboxOverlay').css({
						'visibility': 'visible',
						'opacity': 0.9,
						'cursor': 'pointer'
						// execute our original animation on the overlay!
						// animate it you can use here all the
						// possible animate combination or plugin...
					});
					var offset = jQuery(this).find('img').offset();
					var width = jQuery(window).width();
					var height = jQuery(window).height();
					
					
					
					$('#colorbox').animate({

						opacity: 'toggle'
					}, 500 , function() {
						$('#colorbox').css({
						'visibility': 'visible'
					}).fadeIn(100);
					});
				},
				onLoad: function(){
					jQuery("#cboxClose").css("visibility", "visible");
					jQuery("#colorbox").removeClass('withVideo');
				},
				onComplete: function(){
					if (typeof Cufon !== "undefined"){
						Cufon.replace('#cboxTitle');
					}
				}
			});
		};
	
	var enable_image_hover = function(image){
		if(image.is(".image_icon_zoom,.image_icon_play,.image_icon_doc,.image_icon_link")){
			if (jQuery.browser.msie && parseInt(jQuery.browser.version, 10) < 7) {} else {
				if (jQuery.browser.msie && parseInt(jQuery.browser.version, 10) < 9) {
					image.hover(function(){
						jQuery(".image_overlay",this).css("visibility", "visible");
					},function(){
						jQuery(".image_overlay",this).css("visibility", "hidden");
					}).children('img').after('<span class="image_overlay"></span>');
				}else{
					image.hover(function(){
						jQuery(".image_overlay",this).animate({
							opacity: '1'
						},"fast");
					},function(){
						jQuery(".image_overlay",this).animate({
							opacity: '0'
						},"fast");
					}).children('img').after(jQuery('<span class="image_overlay"></span>').css({opacity: '0',visibility:'visible'}));
				}
			}
		}		
	};

jQuery(document).ready(function (){
	
	//set width and height of span with img
	
	jQuery('.image_frame img').each(function () {
			var img_h = jQuery(this).attr("height");
			var img_w = jQuery(this).attr("width");
			//jQuery(this).parent().width(img_w).height(img_h);
		});
	
	jQuery("#postcards_container").preloader({
		delay:200,
		imgSelector:'.image_frame img',
		beforeShow:function(){
			jQuery(this).closest('.image_frame').addClass('preloading');
		},
		afterShow:function(){
			var image = jQuery(this).closest('.image_frame').removeClass('preloading').parent('a');
			enable_image_hover(image);
			//enable_image_title(image);
		}
	});
});

function debug(txt, t) {
	try {
		switch(t) {
			case "info":
				console.info(txt);
				break;
			case "error":
				console.error(txt);
				break;
			case "warn":
				console.warn(txt);
				break;
			default:
				console.log(txt);
		}
	} catch(e) {
		//try{$("js_debug").innerHTML += txt+"<br/>"} catch(e) {}
}
}

var CInterpolator;
	(function() {
		if(!CInterpolator)
			CInterpolator = new Object();
			CInterpolator.mCallbacks= {};
	
			CInterpolator.interpolate = function (id, duration, callback)
			{
				if(CInterpolator.mCallbacks[id]) {
					if(CInterpolator.mCallbacks[id].timer)
						clearInterval(CInterpolator.mCallbacks[id].timer);
						var percent = Math.min(CInterpolator.mCallbacks[id].duration, new Date().getTime() - CInterpolator.mCallbacks[id].start) / CInterpolator.mCallbacks[id].duration;
						var start = new Date().getTime() + (percent*CInterpolator.mCallbacks[id].duration)-CInterpolator.mCallbacks[id].duration;
					} else {
						var start = new Date().getTime();
				}
				CInterpolator.mCallbacks[id] = {"duration": duration, "timer": setInterval(function(){CInterpolator._interpolate(id)}, 25), "start":start, "callback": 						callback};
			}
			CInterpolator._interpolate = function (id) {
			try {
				var _this = CInterpolator.mCallbacks[id];
				var percent = 100*Math.min(_this.duration, new Date().getTime() - _this.start) / _this.duration;
				if (percent < 100) {
					_this.callback(percent);
				} else {
					if(_this.timer) {clearInterval(_this.timer);_this.timer=0;}
					_this.callback(100);
					delete(CInterpolator.mCallbacks[id]);
				}
			} catch(e) {debug(e)};
		}
})();

function initMenuChecks () {
	if (tooltips.hMenuInterval)
		window.clearInterval(tooltips.hMenuInterval);
		tooltips.hMenuInterval = window.setInterval(function() {
			for(var key in tooltips["tips_ref"]) {
				if (tooltips["tips_ref"][key]["status"]=="out") {
					closeTipAnimated(key)
				}
			}
			if (tooltips["tips_ref"].length==0 && tooltips.hMenuInterval) {
				window.clearInterval(tooltips.hMenuInterval);
			}
		},300);
}

function axGetRect(p) {
	var p = jQuery(p)[0];
	if(!p) return null;
		var curleft = curtop = 0;
		var curwidth =p.offsetWidth;
		var curheight=p.offsetHeight;
		if (p.offsetParent) {
			curleft= p.offsetLeft
			curtop = p.offsetTop
			while (p = p.offsetParent) {
				curleft += p.offsetLeft
				curtop += p.offsetTop
		}
	}
	return [curleft,curtop,curwidth,curheight];
}

function registerEvent(obj, event, handler)
{
	if (obj) {
		if (obj.attachEvent)
			obj.attachEvent (event, handler);
		else if (obj.addEventListener)
			obj.addEventListener (event, handler, false);
	else
		obj["on" + event] = handler;
	}
}

function unregisterEvent(obj, event, handler)
{
	if (obj) {
		if (obj.detachEvent)
			obj.detachEvent (event, handler);
		else if (obj.removeEventListener)
			obj.removeEventListener (event, handler, false);
	else
		obj["on" + event] = null;
	}
}

// ToolTips
function reloadToolTips(handle){
	 var arrTips = jQuery('#'+handle).find('.tooltip');
     var addEv = function(elem) {
		 jQuery(elem).bind("mouseenter",'',function(){showTip(elem)});
		 jQuery(elem).bind("mouseleave",'',function(){closeTip(elem)});
	}

	if (arrTips.length)
		for(var i=0;i<arrTips.length;i++)
			addEv(jQuery(arrTips[i]));
	}
	
	function showTip(p) {
		var h = p.attr("tooltip");
		var szOpen = p.attr("open")?p.attr("open"):"";
		var js_tooltip = p.find('#js_tooltip_'+h);
		if(!tooltips["tips"][h]) return;
		tooltips["tips_ref"][h] = {"status": "over", "elem": p, "open": szOpen};
		//if(js_tooltip.length) return;
		if (js_tooltip.find('.tooltip-black').length == 0) {
			var cm = jQuery('<div>');
			cm.attr('id','js_tooltip_'+h)
			  .css('position','absolute')
			  .css('visibility','hidden')
			  .css('z-index',10000)
			  .css('padding',0)
			  .css('height','auto')
			  .html('<div class="tooltip-black"><div class="tooltip-content"><p>'+tooltips["tips"][h]+'</p></div></div><div class="tooltip-arrow-black-down"></div>');
			p.prepend(cm);
		}
		var cm = p.find('#js_tooltip_'+h);
		jQuery(cm).mouseenter(function(){tooltips["tips_ref"][h] = {"status": "over", "elem": p, "open": szOpen}})
				  .mouseleave(function(){tooltips["tips_ref"][h] = {"status": "out", "elem": p, "open": szOpen}});
		var pcm= axGetRect(p);
		cm.css('visibility','visible').css('overflow','hidden');
		var iWidth = cm.children(':first-child').width();
		var iHeight= cm.children(':first-child').height();
	
		switch(szOpen) {
			case "up":
				cm.css('left',-(iWidth/2)+(pcm[2]/2)-5).css('overflow','hidden').children(':first-child');//.addClass('tooltip-arrow-black-left');
				var addX = 0;
				break;
			default:
				var bRight = (szOpen=="left")?false:(pcm[0]+pcm[2]/2<axGetRect($("rs2010"))[2]/2)?true:false;
				var addX = -10;
				if(bRight) addX = 10+pcm[2];
				cm.css('left', addX+"px");
				if(bRight){
				cm.children(':first-child');//.addClass('tooltip-arrow-black-left');
		}
		cm.css('top',-((iHeight-pcm[3])/2)+"px");
	}

	cm.css('opacity',0);
	cm.css('visibility','');
	CInterpolator.interpolate(h,300,function(w){
	var e = Math.sin(Math.PI/2/100*w);
	if(cm) {
		cm.css('opacity',e);
		switch(szOpen) {
			case "up":
				cm.css('height', (e*(iHeight+30))+"px");
				cm.css('top', -(e*(iHeight+10))+"px");
				break;
			default:
				cm.css('width' , (e*(iWidth+pcm[2]/2))+"px");
				if(!bRight)
					cm.css('left',-(e*(iWidth+pcm[2]/2))+addX+"px");
				}
			}
		if(w==100) {initMenuChecks();}
	});
	}
	
	
	function closeTip(p) {
		var h = p.attr("tooltip");
		tooltips["tips_ref"][h] = {"status": "out", "elem": p, "open": p.attr("open")?p.attr("open"):""};
		initMenuChecks();
	}
	
	
	function closeTipAnimated(key) {
		var cm = $('#js_tooltip_'+key);
		if(!cm) {debug("no cm "+key);return;}
		tooltips["tips_ref"][key]["status"] = "closing";
		var szOpen = tooltips["tips_ref"][key]["open"];
		var pcm = axGetRect(tooltips["tips_ref"][key]["elem"]);
		var bRight = (szOpen=="left")?false:(pcm[0]+pcm[2]/2<24[2]/2)?true:false;
		var addX = -10;
		if(bRight) addX = 10+pcm[2];
		var iWidth = cm.children(':first-child').width();
		var iHeight= cm.children(':first-child').height();
		CInterpolator.interpolate(key+"_out",300,function(w){
			var e = 1-Math.sin(Math.PI/2/100*w);
			if(cm) {
				cm.css('opacity',e);
				switch(szOpen) {
					case "up":
						cm.css('height', (e*(iHeight+10))+"px");
						cm.css('top' ,-(e*(iHeight+10))+"px");
						break;
					default:
						cm.css('width', (e*(iWidth+pcm[2]/2))+"px");
						if(!bRight)
							cm.css('left' , -(e*(iWidth+pcm[2]/2))+addX+"px");
				}
			}
			if(w==100 && cm && cm.parent()) {
				cm.parent().remove(cm);
				delete(tooltips["tips_ref"][key]);
			}
	});
}

/* --------------------------- enable autoclose colorbox_modal ------------------------------------------------*/

var enable_autoclose_colorbox = function(parent){	
            var secs;
            var timerID = null;
            var timerRunning = false;
            var delay = 1000;

            var  InitializeTimer = function() {
                secs = 5;
				jQuery(parent).css('display','block');
                StopTimer();
                StartTimer();
            }
            var StopTimer = function() {
                if (timerRunning) {
                    clearTimeout(timerID);
                    timerRunning = false;
                }
            }
            StartTimer = function() {
                if (secs == 0) {
                    StopTimer();
					jQuery(parent).css('display','none');
					$.fn.colorbox.close();
                }
                else {
                    secs = secs - 1;
                    timerRunning = true;
					jQuery(parent).find('#to_wait').text(secs);
                    timerID = self.setTimeout("StartTimer()", delay);
                }
            } 

		
			InitializeTimer();
}
