var size = null;
function getSize(e)
	{
		var w = jQuery.css(e,'width');
		var h = jQuery.css(e,'height');
		var wb = 0;
		var hb = 0;
		var es = e.style;
		if (jQuery(e).css('display') != 'none') {
			wb = e.offsetWidth;
			hb = e.offsetHeight;
			if (wb == 0){
			  // fix for chrome & safari
			  if (w > 940){
			    wb = 940;
			  }
			}
		} else {
			var oldVisibility = es.visibility;
			var oldPosition = es.position;
			es.visibility = 'hidden';
			es.display = 'block';
			es.position = 'absolute';
			wb = e.offsetWidth;
			hb = e.offsetHeight;
			es.display = 'none';
			es.position = oldPosition;
			es.visibility = oldVisibility;
		}

		return {w:w, h:h, wb:wb, hb:hb};
	}

function compl() {
    $("#top_banner .sliderow")[0].scrollLeft = 0;
  $("#top_banner .sliderow").animate({ "scrollLeft":size.wb },9000,'linear',compl);
 }

function getFirstDayOfMonth(month,year) {
	var day = new Date(year, month, 1).getDay();
	if (day==0) day=6; else day--;
  return day;
}

function getDaysInMonth(month,year) {
		return 32 - new Date(year, month, 32).getDate();
	}

function getMonthName(month) {
  var monthNames = [ "Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь" ];
  return monthNames[month];
}

function showCalendar(month,year) {
		$("#calendar").attr({ month:month,year:year });
		var startDay = getFirstDayOfMonth(month,year)
		var days = getDaysInMonth(month,year);
		var showDate = new Date(year,month,1);
		var prevMonth = new Date(showDate.getFullYear(), showDate.getMonth()-1, 1);
		var nextMonth = new Date(showDate.getFullYear(), showDate.getMonth()+1, 1);
		if (startDay==0)
		  startDay=7;
		$("#calendar .title .current-month").text(getMonthName(showDate.getMonth()));
		$("#calendar .title .prev-month").text(getMonthName(prevMonth.getMonth()));
		$("#calendar .title .next-month").text(getMonthName(nextMonth.getMonth()));
		var prevMonthDays = getDaysInMonth(prevMonth.getMonth(),prevMonth.getFullYear());
    $("#calendar .days > div").each(function(i) {
      if (i>=startDay && i<startDay+days) {
        $("span",this).removeClass("othermonth").removeClass("prev").removeClass("next").text(i-startDay+1);
      } else if (i<startDay) {
        $("span",this).addClass("othermonth").addClass("prev").text(prevMonthDays-startDay+i+1);
      } else if (i>=startDay+days) {
        $("span",this).addClass("othermonth").addClass("next").text(i-startDay-days+1);
      }
    });
    showSelection();
}

function getSelDate(type) {
  var sd = $("#calendar").attr(type+"-date");
  if (!sd)
    return null;
  var parts = sd.split(".");
  if (parts.length==3) {
      pp = [ parseInt(parts[2],10),parseInt(parts[1],10)-1,parseInt(parts[0],10) ];
      dt = new Date(parseInt(parts[2],10),parseInt(parts[1],10)-1,parseInt(parts[0],10));
    return dt;
  } else
    return null;
}

function showSelection() {
  removeSelection();
  var startDate = getSelDate("start");
  var endDate = getSelDate("end");
  var month = parseInt($("#calendar").attr("month"),10);
  var year = parseInt($("#calendar").attr("year"),10);
  if (!startDate || !endDate)
    return;

		var startDay = getFirstDayOfMonth(month,year)
		var days = getDaysInMonth(month,year);
		var showDate = new Date(year,month,1);
		var prevMonth = new Date(showDate.getFullYear(), showDate.getMonth()-1, 1);
		var nextMonth = new Date(showDate.getFullYear(), showDate.getMonth()+1, 1);
		var prevMonthDays = getDaysInMonth(prevMonth.getMonth(),prevMonth.getFullYear());
		if (startDay==0)
		  startDay=7;
    $("#calendar .days > div").each(function(i) {
      var cur_date = null;
      if (i>=startDay && i<startDay+days) {
        cur_date = new Date(year,month,i-startDay+1);
      } else if (i<startDay) {
        cur_date = new Date(prevMonth.getFullYear(),prevMonth.getMonth(),prevMonthDays-startDay+i+1);
      } else if (i>=startDay+days) {
        cur_date = new Date(nextMonth.getFullYear(),nextMonth.getMonth(),i-startDay-days+1);
      }
      if (cur_date && cur_date>=startDate && cur_date<=endDate) {
        $(this).addClass("selected-day").removeClass("day");
      }
    });
}

function removeSelection() {
  $("#calendar .selected-day").each(function() {
    $(this).removeClass("selected-day").addClass("day");
  });
}

function bindCalendar(start_date, end_date) {
    if (!start_date){
      var start_date= new Date();
  		start_date = new Date(start_date.getFullYear(), start_date.getMonth(), start_date.getDate()); // clear time
    } else {
  		start_date = new Date(start_date.substr(6,4), (start_date.substr(3,2)-1), start_date.substr(0,2)); // clear time
  	}
		showCalendar(start_date.getMonth(),start_date.getFullYear());
		$("#calendar .title .prev-month").click(function() {
		  var y = parseInt($("#calendar").attr("year"),10);
		  var m = parseInt($("#calendar").attr("month"),10);
		  var curDate = new Date(y,m-1,1);
		  showCalendar(curDate.getMonth(),curDate.getFullYear());
		  return false;
    });
		$("#calendar .title .next-month").click(function() {
		  var y = parseInt($("#calendar").attr("year"),10);
		  var m = parseInt($("#calendar").attr("month"),10);
		  var curDate = new Date(y,m+1,1);
		  showCalendar(curDate.getMonth(),curDate.getFullYear());
		  return false;
    });
    $("#calendar .days .day").click(function() {
		  var y = parseInt($("#calendar").attr("year"),10);
		  var m = parseInt($("#calendar").attr("month"),10);
		  var d= parseInt($("span",this).text(),10);
      if ($("span",this).is(".prev"))
        m--;
      else if ($("span",this).is(".next"))
        m++;
      var selDate = new Date(y,m,d);
      var d = selDate.getDate();
      if (d<10)
        d="0"+d;
      var m = selDate.getMonth()+1;
      if (m<10)
        m="0"+m;
      var y = selDate.getFullYear();
      var strDate = d+"."+m+"."+y;
      if ($("#calendar").attr("start_choosed")=="true") {
        $("#calendar").removeAttr("start_choosed").attr("end-date",strDate);
        $("#calendar .fields input[name='end-date']")[0].value = strDate;
        showSelection();
      } else {
        $("#calendar").attr("start_choosed","true").attr("start-date",strDate).removeAttr("end-date");
        $("#calendar .fields input[name='start-date']")[0].value = strDate;
        $("#calendar .fields input[name='end-date']")[0].value = "";
        removeSelection();
      $(this).removeClass("day").addClass("selected-day");
      }


      return false;
    });
}

$(document).ready(function() {
  size = getSize($("#top_banner .sliderow span:first")[0]);
  $("#top_banner .sliderow").animate({ "scrollLeft":size.wb },9000,'linear',compl);
  if (!$.browser.msie)
    $("#main_pic .slogan,#main_pic .border").corner();
  $(".rounded").corner();
  $(".rounded-top").corner("round top");
  $(".rounded-bottom").corner("round bottom");
  $(".rounded-br").corner("round br");
  $(".rounded-bl").corner("round bl");
  $("#categories a,#categories .tip").hover(function() { $(".tip",this.parentNode).show(); },function() { $(".tip",this.parentNode).hide(); });
  $("#top_banner .play_status").click(function() {
    if ($(this).is(".play")) {
      $(this).removeClass("play").addClass("pause").find(".txt").text("запустить");
      $("#top_banner .sliderow").stop();
    } else {
      $(this).removeClass("pause").addClass("play").find(".txt").text("остановить");
      curT = (1-$("#top_banner .sliderow")[0].scrollLeft/size.wb)*9000;
      if (curT==0)
        curT=9000;
      $("#top_banner .sliderow").animate({ "scrollLeft":size.wb },curT,'linear',compl);
    }
    return false;
  });
});

