$("textarea").live("keydown", function(e){
  if(13==e.keyCode) {
      this.value = this.value + "\n";
      return false;
  };
}); 

$(function() {
    var options = {
        success:   onAjaxSubscribeForm,  // post-submit callback
        dataType:  'json',
        timeout:   3000,
        beforeSubmit: function (formdata, form) {
			if (typeof validateFormVars == 'function') {
        		return validateFormVars(formdata, form);
			} else {
				return true;
			}
        }
    };
    $('form.subscribeform').ajaxForm(options);
});


function onAjaxSubscribeForm(response, statusText, form) {
    if (statusText == 'success') {
        if (response.submitOn) {
            if (response.redirectUrl) {
              if (response.openerOn) {
                  window.opener.location = response.redirectUrl;
                  window.opener.location.reload();
                  window.close();
              } else {
                  window.location = response.redirectUrl;
              }
            } else if (response.reloadOn) {
        if (typeof reloadPage == 'function') {
            // функция существует, ее можно вызывать
            closeDialogForm('fs_dialogForm');
            reloadPage(window.location.href, response);
        } else {
          window.location.reload();
        }
        	} else if (response.subscribeForm) {
        	    $('#ajaxsubscribe').html(response.body);
        	} else {
              closeDialogForm('fs_dialogForm');
              if (response.dirsTree) {
                dirsTree = response.dirsTree;
          buildDirsTree();
              }
            }
        }
        if (response.errors) {
          if ( $('#randomImage') ) {
        		$('#randomImage').attr('src', '/antibot.php?u=' + Math.random());
          }
            $(form).find('.fs_error').empty();
            for (var ctrlErr in response.errors) {
                $('#err_' + $(form).attr('id') + '_' + ctrlErr).html(response.errors[ctrlErr]).show();
            }
        }
    }
}


function getClientHeight()
{
  return document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientHeight:document.body.clientHeight;
}

function getBodyScrollTop()
{
	return self.pageYOffset || (document.documentElement && document.documentElement.scrollTop) || (document.body && document.body.scrollTop);
}

function getClientCenterY()
{
	return parseInt(getClientHeight()/2)+getBodyScrollTop();
}

function getyScroll() {
    yScroll = 0;

    if (window.innerHeight && window.scrollMaxY || window.innerWidth && window.scrollMaxX) {
        yScroll = window.innerHeight + window.scrollMaxY;
        xScroll = window.innerWidth + window.scrollMaxX;

        var deff = document.documentElement;
        var wff = (deff && deff.clientWidth) || document.body.clientWidth || window.innerWidth || self.innerWidth;
        var hff = (deff && deff.clientHeight) || document.body.clientHeight || window.innerHeight || self.innerHeight;

        xScroll -= (window.innerWidth - wff);
        yScroll -= (window.innerHeight - hff);
    } else if (document.body.scrollHeight > document.body.offsetHeight || document.body.scrollWidth > document.body.offsetWidth) {
        // all
        // but
        // Explorer
        // Mac
        yScroll = document.body.scrollHeight;
        xScroll = document.body.scrollWidth;
    } else {
        // Explorer Mac...would also work in Explorer 6 Strict, Mozilla
        // and Safari
        yScroll = document.body.offsetHeight;
        xScroll = document.body.offsetWidth;
    }
    return yScroll;
}


function pageload(hash) {
    if (hash) {
        if ($('#loader')) {
            $('#loader').css('display', 'block');
            $('#loaderImage').css('padding-top', getClientCenterY() + 'px');
            $('#loader').css('height', getyScroll() + 'px');
        }
        $.ajax(
        {
            type: 'POST',
            url: hash,
            data: 'ajax=on',
            dataType : "html",
            error: function (e) {
            	$("#loader").css("display", "none");
            },
            success: function(response) {
                $('#loader').css('display', 'none');
                $('#ajaxreload').attr("innerHTML", response);
            	window.scrollTo(0,0);
            	getCalendar();
            }
        });
    }
}

$(document).ready(function(){
    //$.history.init(pageload);
    //addEvent();
});

function addEvent () {
    /*$("a[rel='ajax']").unbind('click');
    $("a[rel='ajax']").click(function(){
        $.history.load(this.href.replace(/^http:\/\/[^\/]+/, ''));
        return false;
    });*/

    closeDialogForm('fs_dialogForm');
    closeDialogForm('fs_login');
    //биндим клик по кнопке открыть форму
	$(".openDialogForm").live("click", function (e) {
		closeDialogForm('fs_dialogForm');
		closeDialogForm('fs_login');
		var sizes = $(this).attr('rel').split(",");
		var width = (parseInt(sizes[0]) != 0) ? parseInt(sizes[0]): 100;
		var height = (parseInt(sizes[1]) != 0) ? parseInt(sizes[1]): 100;
		$.post(
		  $(this).attr('href'),
		  {},
		  function(data) {
				$(data).appendTo("body");
				showDialogForm('fs_dialogForm', width, height);
		  }
		);
		return false;
    });
	//биндим клик по кнопке закрыть
	$(".closeDialogForm").live("click", function (e) {
		closeDialogForm('fs_dialogForm');
		closeDialogForm('fs_login');
    });
	$(":input").live("keydown", function (e) {
		if (e.keyCode == 13) {
			$("form.dialogform").submit();
		}
	});
    // опции для ajax submit form
    var options = { 
        success:   onAjaxSubmitForm,  // post-submit callback 
        dataType:  'json'
    }; 
    // вешаем ajax form submit
    $('form.simpleform').ajaxForm(options);

}

// END AJAX

function searchWord (hash, word, geotagId) {
    word = $("#"+word);
    geotagId = $("#"+geotagId);
    if (word.attr("value") != 'Поиск по новостям') {
        hash += '&' + word.attr("name") + '=' + word.attr("value") + '&' + geotagId.attr("name") + '=' + geotagId.attr("value");
        hash = hash.replace(/^http:\/\/[^\/]+/, '');
        $.historyLoad(hash);
    }
    return false;
}

function sendSubscribe (hash) {
    if (hash) {
        if ($('#loader')) {
            $('#loader').css('display', 'block');
            $('#loaderImage').css('padding-top', getClientCenterY() + 'px');
            $('#loader').css('height', getyScroll() + 'px');
        }
        var params = 'ajax=on&';
        params += $('#subscribeform').serialize();
        $.ajax(
        {
            type: 'POST',
            url: hash,
            data: params,
            dataType : "json",
            error: function (e) {
            	$("#loader").css("display", "none");
            },
            success: function(response) {
                $('#loader').css('display', 'none');
                $('#ajaxsubscribe').attr("innerHTML", response);
            	window.scrollTo(0,0);
            	getCalendar();
            }
        });
    }
    return false;
}

// Geography
function refreshPage(param1, param2) {
    $.historyLoad(param1);
}
var geoflashvars = {
    startUrl: "/news/index.html",
    xmlUrl: "/map_news.xml"
}
var geoparams = {
    menu: "false"
}

/*****************НАЧАЛО КАЛЕНДАРЯ********************/
var calendarUrlGlobal = '';
var calendarMonthArrayGlobal = new Array();
var calendarCurrentMonthGlobal = 0;
var calendarCurrentYearGlobal = 0;

function getCalendar() {
    var url = calendarUrlGlobal;
	params = 'ajax=on&month=' + calendarCurrentMonthGlobal + '&year=' + calendarCurrentYearGlobal;
    $.ajax(
    {
        type: 'POST',
        url: url,
        data: params,
        dataType : "html",
        error: function (e) {
            $("#the-calendar").attr("innerHtml", "Error! Could not load the calendar");
        },
        success: function(response) {
            $("#the-calendar").attr("innerHTML", response);
        	$('#calendar_month').attr("innerHTML", calendarMonthArrayGlobal[calendarCurrentMonthGlobal] + ' ' + calendarCurrentYearGlobal);
            //addEvent();
        }
    });
}


monthBack = function() {
	if (calendarCurrentMonthGlobal > 1) {
		calendarCurrentMonthGlobal--;
	} else {
		calendarCurrentMonthGlobal = 12;
		calendarCurrentYearGlobal--;
	}
	$('#calendar_month').attr("innerHTML", calendarMonthArrayGlobal[calendarCurrentMonthGlobal] + ' ' + calendarCurrentYearGlobal);
	getCalendar();
}

monthForward = function() {
	if (calendarCurrentMonthGlobal < 12) {
		calendarCurrentMonthGlobal++;
	} else {
		calendarCurrentMonthGlobal = 1;
		calendarCurrentYearGlobal++;
	}
	$('#calendar_month').attr("innerHTML", calendarMonthArrayGlobal[calendarCurrentMonthGlobal] + ' ' + calendarCurrentYearGlobal);
	getCalendar();
}
/*****************КОНЕЦ КАЛЕНДАРЯ******************/
