$(document).ready(function(){
	MM.start();
});

/*
 * In jQuery lightbox were comented 3 lines of codes thac close ligtbox whec clicked in iverlay
 * Its done to prevent closing window during voting
 * */

var MM = {

	/* ---------- global variables -----------*/
	globals: {
		vidoeHomeVar: null,
		home: null,
		people: null,
		maps: null,
		articlesAndBlogs: null,
		photos: null
	},

	/* ---------- func definitions -----------*/
	start: function() {
		var root = this;

		this.searchMenu();
		this.personalizePage();
		this.blogsCarousel();
		this.switchTopTabs();
		this.homeSlideDown();
		this.reportToModerator();
		this.checkOnlineUsers();

		//if(MM.globals.home) {
			/* loading sorted elements */
			a = window.location+'';
			page = a.replace(new RegExp("\/|:","gi"),"-");

			if(location.search.indexOf('?districtChanged=true') === 0 || location.search.indexOf('?districtChanged=true') > 0) {
				var locationSearch = location.search;
				var length = locationSearch.length;
				var pageLength = page.length - locationSearch.length;

				page = page.substring(0, pageLength)
			} else {
			}


			if(MM.globals.otherColumn){
				this.loadPreferences('MMuserPreferences1'+page, "div#lowerbar-one");
				this.loadPreferences('MMuserPreferences2'+page, "div#lowerbar-two");
				this.loadPreferences('MMuserPreferences3'+page, "div#sidebar-one");

				/* sortable elements definitions */
				this.setSortable($("div#lowerbar-one"), 'placeholder2');
				this.setSortable($("div#lowerbar-two"), 'placeholder2');

				if(MM.globals.videoPopular) {
				} else {
					this.setSortable($("div#sidebar-one"), 'placeholder1');
				}


			}else{
				this.loadPreferences('MMuserPreferences1'+page, "div#main-column");
				this.loadPreferences('MMuserPreferences2'+page, "div#sidebar-one");
				this.loadPreferences('MMuserPreferences3'+page, "div#sidebar-two");
				/* sortable elements definitions */
				this.setSortable($("div#main-column"), 'placeholder2');
				this.setSortable($("div#sidebar-one"), 'placeholder1');
				this.setSortable($("div#sidebar-two"), 'placeholder1');
			}


		//}
		if(MM.globals.home) {
			this.sendVote();
		}

		if(MM.globals.articlesHomeVar){
			/* article tabs */
			this.articlesTabsNavigate.start();
		}

		if(MM.globals.meetingHomeVar){
			/* article tabs */
			this.meetingTabsNavigate.start();
		}
		if(MM.globals.eventsHomeVar){
			this.meetingTabsNavigate.openTab();
		}
		if(MM.globals.searchVar){
			/* article tabs */
			this.searchTabsNavigate.start();
		}

		if(MM.globals.articlesAndBlogs) {
			/* tabs in top5 */
			this.switchCommentedTabs($(".replace_content_commented .sort-menu > li a.link_day_1"), $("#articles-commented-1"));
			this.switchCommentedTabs($(".replace_content_commented .sort-menu > li a.link_day_7"), $("#articles-commented-7"));
			this.switchCommentedTabs($(".replace_content_commented .sort-menu > li a.link_day_31"), $("#articles-commented-31"));
		}

		if(MM.globals.maps) {
			this.maps.start();
		}

		if(MM.globals.people) {
			this.people();
		}

		if(MM.globals.recommend) {
			this.recommend();
		}

		if(MM.globals.messsages) {
			this.messages.start();
		}

		if(MM.globals.captchaRefresh) {
			root.captchaReload();
		}

		if(MM.globals.placeFirstFromCategory) {
			MM.maps.placeFirstFromCategory();
		}

		this.messages.writeNewMessage();

		if(MM.globals.photos) {
			/* photos from articles and blogs */
			$("#photos_from_articles").bind("click", function(e){
				e.preventDefault();
				root.getRemoteContent("#photos_content_2",this.href+document.location.search);
				root.setActive(this);
			});

			$("#photos_from_blogs").bind("click", function(e){
				e.preventDefault();
				root.getRemoteContent("#photos_content_3",this.href+document.location.search);
				root.setActive(this);
			});

			$("#photos_from_all").bind("click", function(e){
				e.preventDefault();
				root.getRemoteContent("#photos_content_1",'');
				root.setActive(this);
			});
		}
		if(MM.globals.ajaxPaging){
			root.ajaxPaging();
		}

		if(MM.globals.hideLoader) {
			$('.loader').hide();
		}

		if(MM.globals.replaceArrtibutes) {
			var rel;
			$(".tabbed-menu a").each(function(i,el){
				rel = $(el).attr("rel");
				$(el).attr("target", rel);
				$(el).removeClass("greyed");
				$(el).attr("rel","");
			});


		}

		if(MM.globals.linksLoader) {
			$(MM.globals.linksToLoad).attr('href','#');
		}

		if(MM.globals.subscribe){
			root.subscribe();
		}
		if(MM.globals.video){
			root.video.switchTabs();
		}

		root.userFriendRemove();
		$('a.photo').lightBox();

		if(MM.globals.reloadLightboxes) {
			for (preciseClass in MM.globals.reloadLightboxesPreciseClasses) {
				if(!isNaN(preciseClass) === true) {
					$(MM.globals.reloadLightboxesPreciseClasses[preciseClass]).unbind();
					$(MM.globals.reloadLightboxesPreciseClasses[preciseClass]).lightBox();
				}
			}
		}

		if(MM.globals.observe){
			root.observe();
		}

		if(MM.globals.userNewsTabs){
			MM.globals.userNewsText = [$('#userNews .inner').html(),'',''];
			root.userNewsTabs();
		}
		if(MM.globals.userNewsPaginate){
			root.userNewsPaginate();
		}
		if(MM.globals.inviteFriend){
			root.inviteFriend();
		}
		if(MM.globals.userComments){
			root.userComments();
		}

		//only for IE's
		if(MM.globals.cropperTooltip && !$.support.noCloneEvent) {
			root.cropperTooltip();
		}
		MM.moveAds();
	},

	_randomString: function(length) {
		chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
		gener = "";

		for (x = 0; x < length; x++) {
			i = Math.floor(Math.random() * 62);
			gener += chars.charAt(i);
		}

		return gener;
	},

	setActive:function(link){
		$(".sort-menu").find("li").removeClass("on");
		$(link).parent().addClass("on");
	},

	captchaReload:function() {
		$(".refreshButton").click(function(e){
			e.preventDefault();
			var genString = MM._randomString(10);
			var captcha_url = '/captcha/'+genString+'?nocache='+Date.parse(new Date());

			$("input[name='captcha_id']").val(genString);
			$(".captcha").find("img").attr('src', captcha_url);
		});
	},

	getRemoteContent:function(target, content){
		$(".loaded_photo_content").css("display","none");
		$(target).parent().addClass("on");

		if($(target).find("ul").size() == 0){
			MM.showLoader();
			$(target).load(content, function(){
				MM.hideLoader();
				$(target).css("display","block");
				$('a.photo').lightBox();
			});
		}else{
			$(target).css("display","block");
		}
	},

	showLoader:function(){
		$(".ajax_loader").css('display', 'block');
	},

	hideLoader:function(){
		$(".ajax_loader").css('display', 'none');
	},

	switchTopTabs: function(){
		$("#news_recommended").bind("click", function(e){
			e.preventDefault();
			$(".replace_content_commented").css('display','none');
			$(".replace_content_recommended ").css('display','block');
			if($(".replace_content_recommended").find("ul").size() == 0){
				MM.showLoader();
				$(".replace_content_recommended").load($(this).attr('target'), function() {
					MM.hideLoader();
					MM.switchCommentedTabs($(".replace_content_recommended .sort-menu > li a.link_day_1"), $("#articles-recommended-1"));
					MM.switchCommentedTabs($(".replace_content_recommended .sort-menu > li a.link_day_7"), $("#articles-recommended-7"));
					MM.switchCommentedTabs($(".replace_content_recommended .sort-menu > li a.link_day_31"), $("#articles-recommended-31"));
				});
			}
			$(this).parents(".tabbed-menu").find("li").removeClass("on last-on");
			$(this).parent().addClass("on");
		});

		$("#news_commented").bind("click", function(e){
			e.preventDefault();
			$(".replace_content_commented").css('display','block');
			$(".replace_content_recommended").css('display','none');
			$(this).parents(".tabbed-menu").find("li").removeClass("on last-on");
			$(this).parent().addClass("last-on");
		});
	},

	switchCommentedTabs: function(link, tab){
		$(link).bind("click", function(e){
			e.preventDefault();
			$(".sort-menu").find("li > a").removeClass("link_active");
			$(this).addClass("link_active");
			$(tab).siblings().removeClass("tabVisible");
			$(tab).addClass("tabVisible");
		});

	},

	ajaxPaging: function(){
		$('.ajax-paging .pagination li a').bind('click', function(e){
			$.ajax({
				type: 'GET',
				url: $(this).attr('href'),
				success: function(data){
					$(MM.globals.ajaxPaging).html(data);
					//$(MM.globals.ajaxPaging).html($(data).html());
					MM.ajaxPaging();
				}
			});

			e.preventDefault();
		});
	},

	homeSlideDown: function(){

		$(".common-box").find(".roll a").bind("click", function(e){
			e.preventDefault();
			MM.testFun2(this);
		});

		$(".select-district-main").bind("click", function(e){
			e.preventDefault();
			MM.selectDistrict("show");
		});

			/*
			$(".select-district-main").bind("mouseleave", function(e){
				var $target = $(e.relatedTarget);
				if(!$target.is("ul")){
					MM.selectDistrict();
				}
			});


			$(".select-district-list").bind("mouseleave", function(e){
				MM.selectDistrict();
			});
			*/

		$("#main-menu li").bind("mouseover", function(e){
			var $this = $(this);
			var $target = $(e.relatedTarget);
			var $ul = $(this).children('.sub-menu');

			if	(typeof $ul == 'object' && $ul.length == 1) {
				if ($ul.is(':hidden')) {
					$ul.slideDown();
				} else { }
			} else {  }
		});

		$("#main-menu li").bind("mouseleave", function(e){
			var $this = $(this);
			var $target = $(e.relatedTarget);
			var $ul = $(this).children('.sub-menu');

			if	(typeof $ul == 'object' && $ul.length == 1) {

				if (!$ul.is(':hidden')) {
					$ul.slideUp('fast');
				} else {}
			} else {}
		});

		$("#mainSearchSubmit").bind("click", function(){
			MM.rewriteField(this);
		});

		$(".accordion-list dt.header").bind("click", function(e){
			e.preventDefault();
			MM.toggleTabs(this);
		});

		$(".personalize").bind("click", function(e){
			e.preventDefault();

			a = window.location+'';
			page = a.replace(new RegExp("\/|:","gi"),"-");

			if(location.search.indexOf('?districtChanged=true') === 0 || location.search.indexOf('?districtChanged=true') > 0) {
				var locationSearch = location.search;
				var length = locationSearch.length;
				var pageLength = page.length - locationSearch.length;
				page = page.substring(0, pageLength)
			} else {
			}

			if(MM.globals.otherColumn){
				MM.sortableElements("lowerbar-one",'MMuserPreferences1'+page);
				MM.sortableElements("lowerbar-two",'MMuserPreferences2'+page);
				MM.sortableElements("sidebar-on",'MMuserPreferences3'+page);
			} else {
				MM.sortableElements("main-column",'MMuserPreferences1'+page);
				MM.sortableElements("sidebar-one",'MMuserPreferences2'+page);
				MM.sortableElements("sidebar-two",'MMuserPreferences3'+page);
			}
		});

		$(".common-box-control li.add > a").bind("click", function(e){
			e.preventDefault();
			var $actBox = $(this).parents(".common-box");
			if($actBox.prevAll('div.common-box').size() > 0) {
				$actBox.prevAll('div.common-box').eq(0).before($actBox);
			}
		});

		$(".common-box-control li.remove > a").bind("click", function(e){
			e.preventDefault();
			var $actBox = $(this).parents(".common-box");
			if($actBox.nextAll('div.common-box').size() > 0) {
				$actBox.nextAll('div.common-box').eq(0).after($actBox);
			}
		});
	},

	personalizePage: function() {
		var tooltip = $('#tooltip');
		var personalizeTooltip = $('#personalize-tooltip');

		personalizeTooltip.hover(
			function() {
				tooltip.show();
			},
			function() {
				tooltip.hide();
			}
		);
	},

	reportToModerator: function() {

		var _slideUp = function() {
			$(".popup-bg").slideUp(function() {
				$(this).remove();
			});
		};

		$(".report-abuse").bind("click", function(e){
			e.preventDefault();
			var _submit = function(e){
				e.preventDefault();
				$.ajax({
					type: 'POST',
					url: $(this).attr('action'),
					data: $(this).serialize(),
					success: function(msg){
						$('.popup-bg')
							.html(msg)
							.find('.common-box').css('top', $(document).scrollTop()+60).end()
							.find('form').bind("submit", _submit).end();
					}
				});
			};
			$.ajax({
				type: 'GET',
				url: $(this).attr('rel'),
				success: function(data){
					$('body').append(
						$('<div class="popup-bg">' + data + '</div>').height($('body').height())
							.find('.common-box').css('top', $(document).scrollTop() + 60).end()
							.find('form').bind("submit", _submit).end()
					);


				}
			});

		});

		$(".popup-bg .refreshButton").live("click", function(e){
			e.preventDefault();

			var genString = MM._randomString(10);
			var captcha_url = '/captcha/'+genString+'?nocache='+Date.parse(new Date());

			$(".popup-bg input[name='captcha_id']").val(genString);
			$(".popup-bg .captcha-label").find("img").attr('src', '');
			$(".popup-bg .captcha-label").find("img").attr('src', captcha_url);

		});

		$(".popup-bg .close-button").live("click", _slideUp);
		$(".popup-bg .close2-button").live("click", _slideUp);

	},

	checkOnlineUsers: function() {
		var usersAvatarCollection = $('a.user-avatar');
		var usersIdentifiers = "/loggedUserJson?usersIds=";
		var hostLink = "http://"+location.hostname;
		var url = hostLink + usersIdentifiers;
		var queryString ="";

		var getLinkWidth = $('a.user-avatar').attr('width');
		var getImageWidth = $('a.user-avatar').find('img').attr('width');

		if(usersAvatarCollection.size() > 0) {

			usersAvatarCollection.each(function(index, item){
//				var stringItem = item.toString();
//				var usersId = stringItem.replace(/.+\/(\w+)$/, '$1');
				var usersId = $(item).attr("rel");
//				var usersIdInt = parseInt(usersId, 10);
				queryString += usersId + ',';
			});

			queryString = queryString.substring(0, queryString.length - 1);
			var newString = url + queryString;

			$.getJSON(newString, function(data) {
				usersAvatarCollection.each(function(index, item){
//					var stringItem = item.toString();
//					var usersId = stringItem.replace(/.+\/(\w+)$/, '$1');

					var usersId = $(item).attr("rel");
					var usersIdInt = parseInt(usersId, 10);

					var getImageWidth = $(this).find('img').css('width');
					if(typeof getImageWidth == 'undefined'){
						getImageWidth = '';
					}
					var numberImageWidth = getImageWidth.substring(0, getImageWidth.length - 2);
					if(typeof numberImageWidth == 'undefined'){
						numberImageWidth = 0;
					}

					if(!isNaN(numberImageWidth) && numberImageWidth > 0) {
						var spanWidth = getImageWidth;
					} else {
						var spanWidth = '100%';
					}

					var i = 0;
					for( ; i < data.length; i ++ ) {
						if(usersIdInt === data[i][0]) {
							if(data[i][1] == true) {
								$(this)
									.css('position', 'relative')
									.append('<span class="online-user">online</span>')
									.find('span.online-user').css('width', spanWidth);
								var getImageHeight = parseInt($(this).find('img').height(),10);
								var topOffset = getImageHeight - parseInt($(this).find('span.online-user').height(),10);
								topOffset = topOffset + "px";

								$(this).css('display','block');
								$(this)
									.find('span.online-user').css('top', topOffset);
							}
						}
					}
				});
			});
		}

	},

	recommend: function() {
		$('.recommend-link').bind('click', function(e) {
			location.href = $(this).attr('href') + 'http://' + location.hostname + location.pathname
			e.preventDefault();
		});
	},

	setSortable:function(containerElement, placeHolderClass){
		containerElement.sortable({
			cursor:"move",
			handle:"h2",
			opacity:0.6,
			axis:'y',
			placeholder:placeHolderClass,
			items:"div.common-box"
		});
	},

	loadPreferences: function(preferencesPartCookie, container){
		var preferencesString = $.cookie(preferencesPartCookie);
		if(preferencesString != null){
			preferencesArray = preferencesString.split(",");
			for(var i=0; i < preferencesArray.length; i++){
				if(preferencesArray[i] != ""){

					var oneBlock = preferencesArray[i].split(":");
					var blockId = oneBlock[0];
					var blockProp = oneBlock[1];

					if(typeof blockProp != "undefined") {
						$('#' + blockId).prependTo($(container));
						if(blockProp == 1) {
							$('#' + blockId).find("li.roll > a").addClass("hiddenBox");
							$('#' + blockId).find(".inner").css("display","none");
						}
					}
				}
			}
		}
	},

	sortableElements:function(container, cookieName){

		var sortableArray = $('#' + container).sortable("toArray");
		for(var i=0; i< sortableArray.length; i++){
			if(sortableArray[i] != ""){
				if($('#' + sortableArray[i]).find(".roll > a").hasClass("hiddenBox")){
					sortableArray[i] = sortableArray[i] + ":1";
				}else{
					sortableArray[i] = sortableArray[i] + ":0";
				}
			}
		}
		saveArray = new Array;
		for(var j=0; j < sortableArray.length; j++){
			if(sortableArray[j] != ""){
				saveArray[sortableArray.length - j]= sortableArray[j];
			}
		}

		var stringToSave = saveArray.toString();
		$.cookie(cookieName ,stringToSave,{ expires: 365});

		if (location.search.length === 0) {
			cookieName = cookieName + '?districtChanged=true';
			$.cookie(cookieName ,stringToSave,{ expires: 365});
		}

		$("#savePropertiesPopup").css("display","block");

		$("#savePropertiesPopup").animate({
			opacity:1
			},
			800,
			"swing",
			function(){
				$("#savePropertiesPopup").animate({
					opacity:0
					},
					800,
					"swing",
					function(){
						$("#savePropertiesPopup").animate({opacity:0});
						$("#savePropertiesPopup").css("display","none");
				});
		});
	},

	rewriteField: function(submitEl){
		submitEl.form.ns_query.value = submitEl.form.q.value;
		submitEl.form.submit();
	},

	testFun2: function(element){

		$linkRoll = $(element);
		if($linkRoll.hasClass("hiddenBox")) {
			$linkRoll.parents(".common-box").find(".inner").slideDown(600);
			$linkRoll.removeClass("hiddenBox");
		}
		else {
			$linkRoll.addClass('hiddenBox');
			$linkRoll.parents(".common-box").find('.inner').slideUp(600);
		}
	},

	searchMenu: function() {
		$('.search li a').bind('click',function(e){
			e.preventDefault();
			$('.search li').removeClass('on');
			$(this).parent().addClass('on');
			$("#headerSearch").attr("action", $(this).attr("href"));
		});
	},


	blogsCarousel: function() {
		  $("#carousel").jCarouselLite({
	        btnNext: ".next",
	        btnPrev: ".previous",
	        visible: 7,
	        scroll: 7,
	        circular: true

	    });

	},

	selectDistrict:function(option){
		if(option == "show"){
			$(".select-district-list").slideDown("fast");
		}else{
			$(".select-district-list").slideUp("fast");
		}
	},


	toggleTabs:function(elem){

		if($(elem).hasClass("last-off")){

			$(elem).siblings().not($(this)).removeClass("on");
			$(elem).siblings().not($(this)).addClass("off");

			$(elem).removeClass("last-off off");
			$(elem).addClass("last-on on");
			$(elem).next().removeClass("last-off off");
			$(elem).next().addClass("last-on on");

		}else{

			$(elem).siblings(".last-on, .last-off").addClass("last-off off");
			$(elem).siblings(".last-on, .last-off").removeClass("last-on on");

			$(elem).siblings().not(".last-on, .last-off").removeClass("on");
			$(elem).siblings().not(".last-on, .last-off").addClass("off");

			$(elem).removeClass("off");
			$(elem).addClass("on");

			$(elem).next().removeClass("off");
			$(elem).next().addClass("on");

		}

	},



	people: function() {
		var $mainDeck = $('.bloggers-district'),
			$triggers = $mainDeck.find('.menu li'),
			$target = $mainDeck.find('.blog-box');

		$triggers.bind('click', function(e) {
			var $this = $(this),
				title = $this.find('.data-title'),
				desc = $this.find('.data-desc'),
				userAvatar = $this.find('.data-user-avatar'),
				blogUser = $this.find('.data-blog-user'),
				blogName = $this.find('.data-blog-name');

			$triggers.removeClass('on');
			$triggers.find('span.state').hide();
			$triggers.find('a.state').show();

			$this.addClass('on');
			$this.find('a.state').hide();
			$this.find('span.state').show();

			$target.find('.header').replaceWith(title.html());
			$target.find('.data-desc').html(desc.html());
			$target.find('.user-avatar').replaceWith(userAvatar.html());
			$target.find('.data-blog-user').html(blogUser.html());
			$target.find('.data-blog-name').html(blogName.html());

			e.preventDefault();
		});
	},

	video: {
		switchTabs: function(){
			$('.top-content .tabbed-menu li a').each(function(i){
				$(this).bind('click', function(e){
					$('.top-rated-content').hide().eq(i).show();
					$('.top-content .tabbed-menu li').removeClass('on').eq(i).addClass('on');
					e.preventDefault();
				});
			});
		}
	},

	articlesTabsNavigate:{
		start: function(){
			/*zmienne przechowujce zawartosc zakladki*/
			MM.globals.articleText = [$('#articles .inner').html(),'',''];
			MM.articlesTabsNavigate.bind();
		},

		bind: function(){
			$('#articles .sort-menu li a').each(function(i){
				$(this).bind('click',function(e){
					if(MM.globals.articleText[i] == ''){
						$.ajax({
							type: 'GET',
							url: $(this).attr('target'),
							success: function(data){
								MM.globals.articleText[i] = $(data).html();
								$('#articles .inner').html(MM.globals.articleText[i]);
								MM.articlesTabsNavigate.bind();
							}
						});
					}else{
						$('#articles .inner').html(MM.globals.articleText[i]);
						MM.articlesTabsNavigate.bind();
					}
					e.preventDefault();
				});
			});
		}

	},

	subscribe: function(){
		$('.subscribeItems a.roll').bind('click', function(e){
			var $this = $(this).parents('.subscribeItems').find('table');
			if($(this).hasClass('up')){
				$this.slideUp("slow");
				$(this).removeClass('up').addClass('down').text('rozwiń');
			}else{
				$this.slideDown("slow",function(){
					$this.css('display','');
				});
				$(this).removeClass('down').addClass('up').text('zwiń');
			}
			e.preventDefault();
		});
		$('.subscribeItems td.action a').bind('click', function(e){
			var $this = $(this);
			$.ajax({
				type: 'POST',
				url: this.href,
				success: function(data){
					var $parent = $this.parents('table');
					$this.parents('tr').remove();
					$parent.find('tr').each(function(i){
						$(this).find('td:first').text(i+1);
					});
				}
			});
			e.preventDefault();
		});

	},

	meetingTabsNavigate:{
		start: function(){
			/*zmienne przechowujce zawartosc zakladki*/
			MM.globals.meetingText = [$('.events .inner').html(),'','',''];
			MM.meetingTabsNavigate.bind();
			$(window.location.hash + 'Tab').click();
		},

		bind: function(){

			$('.events .tabbed-menu li a').each(function(i){

				if (i != 0) {
					$(this).bind('click',function(e){

						e.preventDefault();

						if(MM.globals.meetingText[i] == ''){
							$.ajax({
								type: 'GET',
								url: $(this).attr('target'),
								success: function(data){
									MM.globals.meetingText[i] = $(data).html();
									$('.events .inner').html(MM.globals.meetingText[i]);
									ajaxPaging();
									MM.meetingTabsNavigate.bind();
								}
							});
						}else{
							$('.events .inner').html(MM.globals.meetingText[i]);
							MM.meetingTabsNavigate.bind();
						}

					});
				}
			});

			function ajaxPaging(){
				$('.events .pagination a').bind('click',function(e){
					e.preventDefault();
					$('.loader').show();

					$.ajax({
						url: $(this).attr('href'),
						type: 'GET',
						success: function(data){
							$('.events .inner').html(data);
							$('.loader').hide();
							ajaxPaging();
							window.location = '#header';
							MM.meetingTabsNavigate.bind();
						}
					});

				});
			}

		},

		openTab: function(){
			$('.accordion-list dd a.see-more').bind('click', function(e){
				if(window.location.href.slice(0,window.location.href.lastIndexOf("#")) == this.href.slice(0,this.href.lastIndexOf("#"))){
					$(this.href.slice(this.href.lastIndexOf("#")) + 'Tab').click();
				}
			})

		}

	},

	searchTabsNavigate:{
		classes: {
			newsy: 'articles',
			ludzie: 'users',
			firmy: 'companies',
			zdjecia: 'photos',
			blogi: 'blogs',
			miejsca: 'events'
		},

		/*start: function(){

			var location = window.location.href.split('#')[1];

			$('#search .tabbed-menu li').removeClass("on");
			$('#search .inner > div').css('display','none');

			if(location=='people'){
				$('#search .tabbed-menu li').eq(1).addClass("on");
				$('#search .inner #ludzie').css('display','block');
			}else if(location=='companies'){
				$('#search .tabbed-menu li').eq(2).addClass("on");
				$('#search .inner #firmy').css('display','block');
			}else if(location=='photos'){
				$('#search .tabbed-menu li').eq(3).addClass("on");
				$('#search .inner #zdjecia').css('display','block');
			}else if(location=='blogs'){
				$('#search .tabbed-menu li').eq(4).addClass("on");
				$('#search .inner #blogi').css('display','block');
			}else{
				$('#search .tabbed-menu li').eq(0).addClass("on");
				$('#search .inner #newsy').css('display','block');
			}

			$('#search .tabbed-menu li a').each(function(i,el){
				$(el).bind('click',function(e){
					var cat = $(el).attr("href").replace('#','');
					var basicUrl = window.location.href.split("?")[0] ;
					var extendUrl = window.location.href.split("?")[1];
					var cityAttr = extendUrl.split("&")[0];
					var newUrl = basicUrl + "?" + cityAttr + "&c="+cat + "& page=1"+"#"+cat;
					window.location.href = newUrl;
				});
			});

		}*/

		start: function(){

			/*TODO: to jest tymczasowe fejkowe rozwiązanie zrobione na potrzeby pokazania klientowi- bedzie zaorane*/

			var cat = window.location.href.replace('#','');
			var basicUrl = window.location.href.split("?")[0] ;
			var extendUrl = window.location.href.split("?")[1];
			if(extendUrl){
				var cityAttr = extendUrl.split("&")[0];
			}

			if(typeof cat!='undefined' && cat!='' && cityAttr!='' && typeof cityAttr!='undefined'){

				var location = window.location.href.split('#')[1];

				$('#search .tabbed-menu li').removeClass("on");
				$('#search .inner > div').addClass('hidden');

				if(location=='ludzie'){
					$('#search .tabbed-menu li').eq(1).addClass("on");
					$('#search')
					.removeClass()
					.addClass('common-box')
					.addClass('users');
					$('#search .inner #ludzie').removeClass('hidden');
				}

				else if(location=='firmy'){
					$('#search .tabbed-menu li').eq(2).addClass("on");
					$('#search')
						.removeClass()
						.addClass('common-box')
						.addClass('companies');
					$('#search .inner #firmy').removeClass('hidden');

				}else if(location=='zdjecia'){
					$('#search .tabbed-menu li').eq(3).addClass("on");
					$('#search')
						.removeClass()
						.addClass('common-box')
						.addClass('photos');
					$('#search .inner #zdjecia').removeClass('hidden');

				}else if(location=='blogi'){
					$('#search .tabbed-menu li').eq(4).addClass("on");
					$('#search')
						.removeClass()
						.addClass('common-box')
						.addClass('blogs');
					$('#search .inner #blogi').removeClass('hidden');

				}else{
					$('#search .tabbed-menu li').eq(0).addClass("on");
					$('#search')
						.removeClass()
						.addClass('common-box')
						.addClass('articles');
					$('#search .inner #newsy').removeClass('hidden');
				}

				$('#search .tabbed-menu li a').each(function(i,el){
					$(el).bind('click',function(e){
						var cat = $(el).attr("href").replace('#','');
						var basicUrl = window.location.href.split("?")[0] ;
						var extendUrl = window.location.href.split("?")[1];
						var cityAttr = extendUrl.split("&")[0];
						var newUrl = basicUrl + "?" + cityAttr + "&c="+cat + "& page=1"+"#"+cat;
						window.location.href = newUrl;
					});
				});
			}else{
				$('#search .tabbed-menu li a').bind('click',function(e){
					$('#search .inner > div').addClass('hidden');
					$('#search .tabbed-menu li').removeClass('on');

					$(this).parent().addClass('on');
					var box = $($(this).attr('href')).removeClass('hidden').attr('id');

					$('#search')
						.removeClass()
						.addClass('common-box')
						.addClass(MM.searchTabsNavigate.classes[box]);
					e.preventDefault();
				});
				var $box = $('#search .inner > div');
				if($box.length == 1){
					$box.removeClass('hidden');
					$('#search')
						.removeClass()
						.addClass('common-box')
						.addClass(MM.searchTabsNavigate.classes[$box.attr('id')]);
				}
			}
		}

	},

	maps: {
		popup: null,

		//googleKey needs to be set
		loadGmap: function(callback){

			$.googleMap.load({
				googleKey: MM.globals.googleKey,
				showLoader: false,
				loadCallback: function(){
					$.executeScript('/js/newPage/markermanager.js', false);
					if(typeof callback == "function"){
						callback();
					}
				}
			});

		},

		createMapPopup: function(callback){
			if(MM.maps.popup == null){
				var $mapa = $('<div class="map"><div id="gmapa490x242" style="width:490px;height:242px;"></div></div>')
				MM.maps.popup = new Popup({
					width:490,
					height:242,
					text:'Mapa',
					content: $mapa,
					destroyOnClose : false,
					callback: function(){
						MM.maps.initMap("gmapa490x242");
						if(typeof callback == "function"){
							callback();
						}
					}
				});
			}
			else{
				map.clearOverlays();
				MM.maps.popup.showPopup();
			}
		},

		initMap: function(mapId){
			map = new GMap2(document.getElementById(mapId));
			map.setUIToDefault();
	    	map.setCenter(new GLatLng(MM.globals.googleDefaultLat, MM.globals.googleDefaultLong), 15);
	    	markerMgr = new MarkerManager(map);
		},


		start: function(){
			if(MM.globals.lazyMap){
				MM.maps.mapLocate();
			}else{
				MM.maps.initMap(MM.globals.mapId);

		    	if(MM.globals.searchMap){
		    		gmapsMM(map, "/searchLocations/"+gmapsShowBounds(map)+"/");
		    		MM.maps.searchAddres();
				}
		    	MM.maps.changeCategory();
		    	if(MM.globals.addMarkers){
		    		MM.maps.addMarkersMap();
		    	}
		    	MM.maps.mapLocate();
			}
		},

		searchAddres: function(){
			$('form[name="geoLocSearch"]').bind('submit',function(e){
				MM.maps.showAddress();
				e.preventDefault();
			});
		},

		showAddress: function() {

			var searchAddress = "";
			searchAddress = (MM.globals.isCityNameConstant === true) ? "Poland, "+MM.globals.cityName+", " + document.geoLocSearch.street.value : searchAddress = "Poland, "+ $('form[name="geoLocSearch"] select option:selected').text() +", " + document.geoLocSearch.street.value;

	 	 	if (geocoder && document.geoLocSearch.street.value.length > 1 ) {
        		geocoder.getLatLng(searchAddress ,
          		function(point) {
            		if (!point) {
              			alert("Podana ulica '" + document.geoLocSearch.street.value + "' nie została znaleziona");
            		} else {
               			//var marker = new GMarker(point);
            			var marker = gmapsMakeMarker(point.lat()+":"+point.lng(), 'empty', '', point.lat(), point.lng());
              			map.addOverlay(marker);
        				gmapsCenter(map, point.lat(), point.lng(), 13)
					}
          		}
        		);
      		}
    	},

    	changeCategory: function(){
    		$('.pins-list .inner li a').bind('click',function(e){
    			var href=this.href.split("maps/");
    			var cat = href[1].split("/");
    			gmapsChangeCategory(cat[0],cat[1]);
    			e.preventDefault();
    		});
    	},

    	addMarkersMap: function(){
    		var $points = $('.map-coord').parent('a');

    		$.each($points, function(){
    			var data = $(this).find('.map-coord').text().split(',');
    			var marker = gmapsMakeMarker(data[0]+":"+data[1], markersCategory, markersSubCategory, data[0], data[1]);

    			if(markersArray.indexOfId(marker.mmId) == -1) {
    				markersArray.push(marker);
    				markerMgr.addMarker(marker,9,17);
    				var $html = $(this).next('.map-desc');

    				gmapsAddEventClickToMarker(marker,$html.html());
    			}

    			$(this).bind('click',function(e){
    				gmapsCenter(map, data[0], data[1], 15);
    				e.preventDefault();
    			});
    		});
    		var bounds = map.getBounds().getCenter();
    		gmapsCenter(map, bounds.lat(), bounds.lng(),11);
    	},

		savePosition: function(url) {
    		loadingState = parseInt($('#curloadingState').attr('value'));
			if(!loadingState) {
				$('#curloadingState').attr('value','1');
				$('#loader').show();
				$('#linkDel').hide();
				$('#linkSave').hide();

				var linkPos = $('zapisz').html();

				$.ajax({
					url: url,
					type: 'get',
					success: function(){
						setTimeout(function(){
							$('#linkDel').show();
							$('#linkSave').show();
						},400);
						$('#loader').hide();
						$('#curloadingState').attr('value','0');
					}
				});
			}
			return false;
		},

		mapLocate: function(){
			$('.on-map-small').bind('click', function(e){

				var $clickedElem = $(this);
				MM.maps.loadGmap(function(){
					if(MM.globals.lazyMap){
						MM.maps.createMapPopup();
					}

					var $coord = $clickedElem.find('span.map-coord');
					var $address = $clickedElem.find('span.map-desc');

					if($coord != null){

						$coord = $coord.text().split(',');
						gmapsCenterAndMark(map, parseFloat($coord[0]), parseFloat($coord[1]), 15, true, true);

					}else if($address != null){
						geocoder.getLatLng(
							"Poland, "+MM.globals.cityName+", " + $address,
							function(point) {
								if (!point) {
									alert("Podana ulica '" + $address + "' nie została znaleziona");
								} else {
									//var marker = new GMarker(point);
									var marker = gmapsMakeMarker(point.lat()+":"+point.lng(), 'empty', '', point.lat(), point.lng());
									map.addOverlay(marker);
									gmapsCenter(map, point.lat(), point.lng(), 10)
								}
							}
						);
					}

				});

				e.preventDefault();

			});

		},

		placeOnMap: function(){

			$('.placeOnMap').bind('click', function(e){
				var $this = $(this);

				MM.maps.loadGmap(function(){
					$.ajax({
						url: $this.attr('href'),
						type: 'get',
						success: function(data){
							MM.maps.popup = new Popup({
								width:490,
								height:242,
								text:'Mapa',
								content: '',
								destroyOnClose : true,
								callback: function(){
									$('.popupContent').html(data);
								}
							});
						}
					});
				});
				e.preventDefault();
    		});
		},

		placeFirstFromCategory: function(){
			var $firstCompany = $('.company-box:first');
			var $coord = $firstCompany.find('span.map-coord');
			var $coordHTML = $coord.html();

			if($coordHTML != null){
				$coord = $coord.text().split(',');
				gmapsCenterAndMark(map, parseFloat($coord[0]), parseFloat($coord[1]), 15, true, true);
			}
		}
	},

	messages: {
		popup: null,

		start: function(){
			var count = $('dt.unread').length;

			MM.messages.setNewMessagesCount(count);
			MM.messages.showMessage();
		},

		writeNewMessage: function () {
			$('a.send-message').bind('click', function(e){
				MM.messages.popup = new Popup({url:this.href,width:508,height:321,text:'wyślij wiadomość',callback:enableForm});
				e.preventDefault();
			});

			function enableForm() {
				$(".popup form").submit( function () {
					$.ajax({
						type: 'POST',
						url: $(this).attr('action'),
						data: $(this).serialize(),
						success: function(data) {
							$('.popupContent').html(data);
							enableForm();
						}
					});
					return false;
				});
			}
		},

		showMessage: function(){
			$('.user-messages dt').each(function(i){
				var msgId = $(this).attr('id').split('-');
				msgId = parseInt(msgId[2]);

				$(this).find('span[class!=actions]').bind('click', function(){
					$('.message-content:visible').slideUp(600);
					if(!$(this).parent().next().is(':visible')){
						$(this).parent().next().slideDown(600);
						MM.messages.markRead(msgId);
					}
				});
				var $del = $(this).next().find('a.del');
				$(this).find('.actions a').add($del).unbind().bind('click', function(e){
					var $msgContent = $('#msg-content-'+msgId);
					var $listMsg = $('#list-msg-'+msgId);
					var folder = $msgContent.attr('folder');
					var agree=confirm("Jeśli chcesz usunąć wybierz OK.");
					if(agree)
					{
						$.ajax({
							url: this.href,
							type: 'POST',
							success: function(data) {
								if ($listMsg.hasClass('unread')) {
									MM.messages.decreaseNewMessagesCount();
								}
								$listMsg.remove();
								$msgContent.remove();
							}
						});
					}
					e.preventDefault();
				});
			});
		},

		markRead: function(msgId){
			var $msg = $('#list-msg-'+msgId);
			var folder = $('#msg-content-'+msgId).attr('folder');

			if ($msg.hasClass('unread')) {
				$.ajax({
					url:'/user/msgs/'+folder+'/'+msgId+'/markAsRead',
					type: 'POST',
					success: function(){
						$msg.removeClass('unread');
						MM.messages.decreaseNewMessagesCount();
					}
				});
			}
		},

		decreaseNewMessagesCount: function(){
			var messageCount = $('.user-messages h2 em').html();
			var count = parseInt( messageCount );
			if (count > 0) {
				count = count -1;
			}
			MM.messages.setNewMessagesCount(count);
		},

		setNewMessagesCount: function(count){
			$('.user-messages h2 em').html(count);
			$('.logged-user-actions h4 span').html('('+count+')');
			$('.userLoggedPanelSmall li span').html(count);
		}
	},

	time: {
		formatDay: function(day) {
			var temp = day + ' ';
			if (day == 1) {
				temp += 'dzień';
			} else {
				temp += 'dni';
			}
			temp += ' ';
			return temp;
		},
		formatHour: function(hour) {
			var INY = new Array(2,3,4,22,23,24);
			var temp = hour + ' ';
			if (INY.indexOf(hour) != -1) {
				temp += 'godziny';
			} else if(hour == 1) {
				temp += 'godzina';
			} else {
				temp += 'godzin';
			}
			temp += ' ';
			return temp;
		},
		formatMinute: function(minute) {
			var INY = new Array(2,3,4,22,23,24);
			var temp = minute + ' ';
			if (INY.indexOf(minute) != -1) {
				temp += 'minuty';
			} else if(minute == 1) {
				temp += 'minuta';
			} else {
				temp += 'minut';
			}
			temp += ' ';
			return temp;
		},
		checkZero: function(value) {
			if (value < 10) {
				return '0' + value;
			} else {
				return value;
			}
		},
		timePeriod: function(date, supertext) {
			var span = (MM.globals.systemTime - date) / 1000;
			// silnia
			if (span < 0) {
				span = span * (-1);
			}

			var days = Math.floor(span / 86400);
			var days_reszta = span % 86400;
			var hours = Math.floor(days_reszta / 3600);
			var hours_reszta = days_reszta % 3600;
			var minutes =  Math.floor(hours_reszta / 60);

			if (hours == 0 && minutes == 0) { // exactly now
				minutes = 1;
			}
			var period = '';
			if (days > 0 ) {
				period+= MM.time.formatDay(days) +' '+ supertext;
			} else {
				if(hours > 0){
					period += MM.time.formatHour(hours) +' '+ supertext;
				}
				else{
					period+= MM.time.formatMinute(minutes) +' '+ supertext;
				}
			}

			document.write(period);
		}
	},

    userFriendRemove: function() {
        var $inPlace = $('.in-place');
        $inPlace.bind('click', function(e) {
        	var $this = $(this);
            if(!$(this).hasClass('stop')){
                var $loader = $('<div class="action-info"></div>');
                $(this).after($loader);
                $.ajax({
                    type: 'GET',
                    url: this.href,
                    success: function(data) {
                        $loader.html("OK");
                        $this.parent().remove();
                        setTimeout(function(){$loader.remove()},500)
                    }
                });
            }

            e.preventDefault();
        });
	},

	observe: function(){
		var $form = $('.observe-button').parents('form');
		$form.bind('submit', function(e){
			$thisForm = $(this);
			$.ajax({
				type: 'POST',
				url: $thisForm.attr('action'),
				data: $thisForm.serialize(),
				success: function(data){
					var $popup = $("<div id='savePropertiesPopup'>Zapisano ustawienia</div>");
					$thisForm.append($popup);
					$popup.css({display:"block",zIndex:"10000"}).animate({
						opacity:1
						},
						800,
						"swing",
						function(){
							$popup.animate({
								opacity:0
								},
								800,
								"swing",
								function(){
									$popup.animate({opacity:0});
									$popup.css("display","none");



									$thisForm.append('<div id="observeRec">'+data+'</div>');
									var $obsv = $('#observeRec');
									var $rval = $obsv.find('#remove');
									var $title = $obsv.find('.observe-button').val();
									$obsv.remove();

									$thisForm.find('.observe-button').val($title);


									if($rval.attr('id') == 'remove'){
										$thisForm.append('<input type="hidden" value="true" name="remove" id="remove" />');
										if($thisForm.hasClass("blog")){
											$('form.blogEntry').hide();
										}
									}else{
										$thisForm.find('#remove').remove();
										if($thisForm.hasClass("blog")){
											$('form.blogEntry').show();
										}
									}


									/*
									if($thisForm.hasClass("blog")){
										$form.hide();





									}
									else{
										$thisForm.hide();
									}
									*/
							});
					});

				}
			});
			e.preventDefault();
		});
	},

	sendVote: function(){
		$('form[name="questionnaireForm"]').submit(function(e){
			var $parent = $(this).parent();
			if($(this).hasClass('unlogged')){
				window.location = '/login';
			} else {
				$.ajax({
					type: 'post',
					url: '/questionnaire',
					data: $(this).serialize(),
					success: function(data){
						$parent.html($(data).find('.inner').html());
					}

				});
			}
			e.preventDefault();
		});
	},

	userNewsTabs : function(){
		$('#userNews .tabbed-menu li a').each(function(i){
			$(this).bind('click',function(e){
				if(MM.globals.userNewsText[i] == ''){
					$.ajax({
						type: 'GET',
						url: $(this).attr('target'),
						success: function(data){
							MM.globals.userNewsText[i] = $(data).find('.inner').html();
							$('#userNews .inner').html(MM.globals.userNewsText[i]);
							MM.userNewsTabs();
							MM.userNewsPaginate();
						}
					});
				}else{
					$('#userNews .inner').html(MM.globals.userNewsText[i]);
					MM.userNewsTabs();
					MM.userNewsPaginate();
				}
				e.preventDefault();
			});
		});
	},

	userNewsPaginate : function(){
		$('#userNews .pagination a').bind('click',function(e){
			$.ajax({
				type: 'GET',
				url: $(this).attr('href'),
				success: function(data){
					$('#userNews .inner').html($(data).find('.inner').html());
					MM.userNewsTabs();
					MM.userNewsPaginate();
				}
			});
			e.preventDefault();
		});
	},

	starVoting: function(href,updateElement,rate) {
		$('#'+updateElement+'Msg').show();
		var thisDate = new Date();
		href = href;//+'?noCache='+thisDate.getTime();
		$.ajax({
			type:'get',
			url:href,
			success:function(data){
				$('#'+updateElement).html(data);
				var msg = $('#'+updateElement+'Msg').show().html($('#'+updateElement+'VotedMsg').html());
				setTimeout(function() {
					msg.hide().html($('#'+updateElement+'OriginalMsg').html())
				},2500);
			}
		});
		return false;
	},

	recommendEntity: function(){
		$('.recommend').bind('click', function(e){
			var $this = $(this);
			jQuery.ajax({
				url: "/recommend",
				type: "post",
				data: $(this).attr('data'),
				success: function(data){
					$this.text(data);
					$this.unbind().bind('click', function(e){e.prevetDefault();});
				}
			});
			e.preventDefault();
		});
	},

	inviteFriend: function(){
        var $inPlace = $('.invite-friend');

        $inPlace.bind('click', function(e) {
            if(!$(this).hasClass('stop')){
                var $loader = $('<div class="action-info"></div>');
                $(this).after($loader);
                $.ajax({
                    type: 'POST',
                    url: this.href,
                    success: function(data) {
                		if($inPlace.hasClass('off')){
                			$inPlace.html("Usunięto ze znajomych<span></span>").removeClass('off');
                		}else{
                			$inPlace.html("Dodano do znajomych<span></span>").addClass('off');
                		}
                		$inPlace.unbind().click(function(e){e.preventDefault();});
                		return false;
                    }
                });
                return false;
            }

            e.preventDefault();
        });
	},

	cropperTooltip: function(){
		$('.useCropper .cropperPreviewContainer').hover(
				function(){
					$(this).css({'zIndex':'1'})
						.find('.tooltip').css('display','block')
				},
				function(){
					$(this).css({'zIndex':''})
						.find('.tooltip').css('display','none')
				}
		);
	},

	userComments: function(){
		/*$('.loader').show();
		$.ajax({
			url: '/user/'+MM.globals.userComments+'/comments/',
			type: 'get',
			success: function(data){
				$('.user-comments').html(data);
				$('.loader').hide();
				ajaxPaging();
			}
		});*/

		$('#userComments .tabbed-menu a').bind('click',function(e){
			$('.loader').show();
			var $this = $(this);
			$.ajax({
				url: $this.attr('href'),
				type: 'get',
				success: function(data){
					$('#userComments .tabbed-menu li').removeClass('on');
					$this.parent().addClass('on');
					$('.user-comments').html(data);
					$('.loader').hide();
					ajaxPaging();
					window.location = '#userComments';
				}
			});
			e.preventDefault();
		});

		function ajaxPaging(){
			$('.user-comments .pagination a').bind('click',function(e){
				$('.loader').show();
				$.ajax({
					url: $(this).attr('href'),
					type: 'get',
					success: function(data){
						$('.user-comments').html(data);
						$('.loader').hide();
						ajaxPaging();
						window.location = '#userComments';
					}
				});
				e.preventDefault();
			});
		}

	},
	moveAds: function(){
		$('.ads').each(function(){
			var place = $(this).attr('id').replace(/ad\-/gi,'adplace-');
			if($('#'+place).length > 0 && $(this).find(':not(script)').length > 0){
				$(this).find('script').remove();
				$('#'+place).append($(this).children());
			}
		}).filter(':empty').remove();
		$('.adplaces:empty').remove();
	}
};

String.prototype.toHash = function(splitAll, splitPair)
{
        var aAll,hash = {};
        for(var i=0,l=(aAll = this.split(splitAll)).length; i<l; i++){
            hash[ (aAll[i] = aAll[i].split(splitPair))[0] ] = aAll[i][1];
        }
    return hash;
}

