/**
 * @projectDescription Religion in Ukraine main script file
 * @author Jman jman.ua@gmail.com
 */

$(function(){
	$("#menu li.active > a").click(function(){return false});
	$("#menu > li a").click(function(){
		if (!$(this).parent().hasClass("active")) {
			$("#menu > li").removeClass("active");
			$(this).parent().addClass("active");
		}
		return false;
	});
})


function gallery(){
	var ml = 0;
	var state = false;
	var page = 576;
	var obj = $("#gallery ul");
	var pager = $(".gallWrapper .galPager");
	var larr = $(".gallWrapper .larr");
	var rarr = $(".gallWrapper .rarr");
	var currentpage = 0;
	var pages = (($("li",obj).length) % 4) ? parseInt(($("li",obj).length) / 4)+ 1 : (($("li",obj).length) / 4);
	this.init = function(){
		if(!obj.size()){
			return;
		}
		for(var i = 1; i < pages; i++ )
			$("a:last", pager).clone("true").attr("rel", i ).insertAfter(".gallWrapper .galPager a:last");
		validate();
		$("a", pager).click(function(){;
			if (state && this.className != "active") {
				state = false;
				currentpage = this.rel;
				changePage();
			}
			return false;
		});
		$(larr).click(function(){;
			if (state && currentpage) {
				state = false;
				currentpage = currentpage - 1;
				changePage();
			}
			return false;
		});
		$(rarr).click(function(){;
			if (state && !(currentpage >= pages)) {
				state = false;
				currentpage = currentpage + 1;
				changePage();
			}
			return false;
		});
		$("a", obj).bind("mouseover", function(){hoverImage.show(this);});
		$("a", obj).bind("mouseout",function(){hoverImage.hide()});
	}

	var validate = function(){
		pager.get(0).style.display = (pages == 1) ? "none" : "block";
		larr.get(0).style.display = (currentpage == 0) ? "none" : "block";
		rarr.get(0).style.display = (currentpage == pages-1) ? "none" : "block";
		pager.find("a").removeClass("active");
		pager.find("a[rel='" + currentpage +"']").addClass("active");
		state = true;
	}

	var changePage = function(){
		ml = -(page * currentpage);
		$(obj).animate({marginLeft: ml}, 500, function(){validate()});
	}

	var hoverImage = {
		old : $("#photoPrev img").attr("src"),
		show : function(elem){
			$("#photoPrev img").attr("src", elem.rel);
			var xcor = $(elem).position();
			if(!$.browser.msie || $.browser.version != "6.0")
				$("#photoPrev").css({"left":xcor.left}).fadeIn(1000);
			else
				$("#photoPrev").css({"left":xcor.left,"display":"block"});
		},
		hide : function(){
			$("#photoPrev").stop(false,true);
			$("#photoPrev").css({display : "none"});
			$("#photoPrev img").attr("src", hoverImage.old);
		}
	}

}


$(function(){
	var gal = new gallery();
	gal.init();
});



Date.prototype.toMyDateString = function() {
	var y = this.getFullYear().toString();
	var m = "0" + (this.getMonth() + 1);
	var d = "0" + this.getDate();
	return d.slice(-2) + "." + m.slice(-2) + "." + y;
};
Date.prototype.copy = function() {
	return new Date(this.getTime());
};
Date.prototype.DAYNAMES = ["нд", "пн", "вт", "ср", "чт", "пт", "сб"];
Date.prototype.MONTHNAMES = ["Січень", "Лютий", "Березень", "Квітень", "Травень", "Черевень", "Липень", "Серпень", "Вересень", "Жовтень", "Листопад", "Грудень"];
Date.prototype.getShortDay = function() {
	return this.DAYNAMES[this.getDay()];
};
Date.prototype.getFullMonth = function() {
	return this.MONTHNAMES[this.getMonth()];
};
Date.prototype.lastDate = function() {
	var d = new Date(this.getFullYear(), this.getMonth() + 1, 0);
	return d;
};

function calendarInit(){
	var obj = document.getElementById("calendar");
	var url = "js/test.json"
	var today = new Date();
	var seted = $("caption span", obj).text();
	seted = seted.replace(/\s\d{4}/, '');
	for (key in today.MONTHNAMES) {
		if (seted == today.MONTHNAMES[key]) {
			today.setMonth(key);
		}
	}
	var setmonth = {
		next : function(){
			today.setMonth(today.getMonth() + 1);
			$.getJSON(url + "?date=" + today.getMonth() + "." + today.getFullYear(), function(data) {
				$("caption span", obj).text(today.getFullMonth() + " "+ today.getFullYear());
				buildcal(today,data);
			});
		},
		prev : function(){
			today.setMonth(today.getMonth() - 1);

			$.getJSON(url + "?date=" + today.getMonth() + "." + today.getFullYear() , function(data) {
				$("caption span", obj).text(today.getFullMonth() + " "+ today.getFullYear());
				buildcal(today,data);
			});
		}
	}
	var buildcal = function(day, events){
		var firstdate = day.copy();
		firstdate.setDate(1);
		firstdate.setHours(0,0,0);
		while(firstdate.getDay()!= 1){
			firstdate.setDate(firstdate.getDate()-1);
		}
		var lastdate = new Date();
		lastdate = day.lastDate();
		lastdate.setHours(1,0,0);
		var elemTbody = document.createElement("tbody");
		while (firstdate <= lastdate){
			var elemTR = document.createElement("tr");
			for(var i = 0; i < 7; i++){
				var elemTD = document.createElement("td");
				elemTD.innerHTML = (firstdate.getMonth() == lastdate.getMonth()) ? ((events && events[firstdate.getDate()]) ? '<a href="' + events[firstdate.getDate()].href + '" title="' + events[firstdate.getDate()].title + '">' + firstdate.getDate() + '</a>' : firstdate.getDate()) : "";
				elemTR.appendChild(elemTD);
				firstdate.setDate(firstdate.getDate()+1);
			}
			elemTbody.appendChild(elemTR);
		}
		$("tbody", obj).replaceWith(elemTbody);
	}
	$("a.prev", obj).click(function(){setmonth.prev();return false});
	$("a.next", obj).click(function(){setmonth.next();return false});
}

$(function(){
	var cal = new calendarInit();
})

