function addLoadEvent(func) {
	var oldOnload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			oldOnload();
			func();
		}
	}
}


var marqueeCurEl = new Array();
var in_scroll = false;
var pre_int = null;


function scrollPrev(pId, pCount, pScrollCount, pSpeed, pStep) {
	if(!marqueeCurEl[pId]) { marqueeCurEl[pId] = 0; }
	if(!pScrollCount) pScrollCount = 1;
	if(!pSpeed) pSpeed = 15;
	if(!pStep) pStep = 10;
	
	if(in_scroll) { return false; }

	if(marqueeCurEl[pId] < pScrollCount) { pScrollCount = marqueeCurEl[pId]; }

	if(pScrollCount > 0) {
		in_scroll = true;
		blockScroll(pId, "down", pScrollCount, pSpeed, pStep);
		marqueeCurEl[pId] -= pScrollCount;
	}
	return false;
}


function scrollNext(pId, pCount, pVisibleCount, pScrollCount, pSpeed, pStep) {
	if(!marqueeCurEl[pId]) { marqueeCurEl[pId] = 0; }
	if(!pScrollCount) pScrollCount = 1;
	if(!pSpeed) pSpeed = 15;
	if(!pStep) pStep = 10;
	
	if(in_scroll) { return false; }

	if(pCount - (marqueeCurEl[pId] + pVisibleCount) < pScrollCount) { pScrollCount = pCount - (marqueeCurEl[pId] + pVisibleCount); }

	if(pScrollCount > 0) {
		in_scroll = true;
		blockScroll(pId, "up", pScrollCount, pSpeed, pStep);
		marqueeCurEl[pId] += pScrollCount;
	}
	return false;
}


function blockScroll(id, dir, scrollcount, speed, step) {

	var element = document.getElementById(id);

	var children = element.children;

	var childrenArray = new Array();
	for (var i = 0, l = children.length; i < l; i++) {
		if (children[i].nodeType != 3) {
			childrenArray.push(children[i]);
		}
	}
	
	var moveText = function() {

		var steps       = step,
			scrollcounts = scrollcount,
			scrolling    = childrenArray,
			current      = marqueeCurEl[id],
			direction    = dir;
		
		
		return function() {
			var re = /px/g;

			var topNext = 0;
			var topPrev = 0;
			if(scrolling[current+scrollcounts]) {
				topNext = scrolling[current+scrollcounts].style.top;
				topNext = parseInt(topNext.replace(re, ""));
			}
			if(scrolling[current-scrollcounts]) {
				topPrev = scrolling[current-scrollcounts].style.top;
				topPrev = parseInt(topPrev.replace(re, ""));
			}
			
			if((direction == "up"  && topNext <= 0) || 
			   (direction == "down" && topPrev >= 0))
			{
				pre_int = clearInterval(pre_int);
				in_scroll = false;
			}
			else
			{

				if(direction == "down") {
					topFirst = scrolling[current-scrollcounts].style.top;
					topFirst = parseInt(topFirst.replace(re, ""));
					if(Math.abs(topFirst) < steps) { lstep = Math.abs(topFirst); } else { lstep = steps; }

					for(var i = 0; i < scrolling.length; i++) {
						var top = scrolling[i].style.top;
						top = parseInt(top.replace(re, ""));
						scrolling[i].style.top = (top + lstep) + "px";
					}
				} else if(direction == "up") {
					topFirst = scrolling[current+scrollcounts].style.top;
					topFirst = parseInt(topFirst.replace(re, ""));
					if(Math.abs(topFirst) < steps) { lstep = Math.abs(topFirst); } else { lstep = steps; }

					for(i = 0; i < scrolling.length; i++) {
						top = scrolling[i].style.top;
						top = parseInt(top.replace(re, ""));
						scrolling[i].style.top = (top - lstep) + "px";
					}
				}
			}
		}
	}();
	
	pre_int = setInterval(moveText, speed);
}


function scrollTextDown(pId) {
	var re = /px/g;
	var top = document.getElementById(pId).style.top;
	var topnext = parseInt(top.replace(re, ""))+20;
	if (topnext-20 < 0) {
		document.getElementById(pId).style.top = topnext + "px";
		}
	return false;
}

function scrollTextUp(pId, parent) {
	var re = /px/g;
	var top = document.getElementById(pId).style.top;
	var topnext = parseInt(top.replace(re, ""))-20;
	var evheight = document.getElementById(parent).children[0].clientHeight;
	var evheightcl = document.getElementById(parent).clientHeight;
	if (topnext+evheight > evheightcl) {
		document.getElementById(pId).style.top = topnext + "px";
		}
	return false;
}


function scrolLeft(pId, pCount, pScrollCount, pSpeed, pStep) {
	if(!marqueeCurEl[pId]) { marqueeCurEl[pId] = 0; }
	if(!pScrollCount) pScrollCount = 1;
	if(!pSpeed) pSpeed = 15;
	if(!pStep) pStep = 10;
	
	if(in_scroll) { return false; }

	if(marqueeCurEl[pId] < pScrollCount) { pScrollCount = marqueeCurEl[pId]; }

	if(pScrollCount > 0) {
		in_scroll = true;
		blockScrollsec(pId, "left", pScrollCount, pSpeed, pStep);
		marqueeCurEl[pId] -= pScrollCount;
	}
	return false;
}


function scrollRight(pId, pCount, pVisibleCount, pScrollCount, pSpeed, pStep) {
	if(!marqueeCurEl[pId]) { marqueeCurEl[pId] = 0; }
	if(!pScrollCount) pScrollCount = 1;
	if(!pSpeed) pSpeed = 15;
	if(!pStep) pStep = 10;
	
	if(in_scroll) { return false; }

	if(pCount - (marqueeCurEl[pId] + pVisibleCount) < pScrollCount) { pScrollCount = pCount - (marqueeCurEl[pId] + pVisibleCount); }

	if(pScrollCount > 0) {
		in_scroll = true;
		blockScrollsec(pId, "right", pScrollCount, pSpeed, pStep);
		marqueeCurEl[pId] += pScrollCount;
	}
	return false;
}


function blockScrollsec(id, dir, scrollcount, speed, step) {

	var element = document.getElementById(id);
	

	var children = element.children;


	var childrenArray = new Array();
	for (var i = 0, l = children.length; i < l; i++) {
		if (children[i].nodeType != 3) {
			childrenArray.push(children[i]);
		}
	}
	

	var moveText = function() {

		var steps       = step,
			scrollcounts = scrollcount,
			scrolling    = childrenArray,
			current      = marqueeCurEl[id],
			direction    = dir;
		
		
		return function() {
			var re = /px/g;

			var leftNext = 0;
			var leftPrev = 0;
			if(scrolling[current+scrollcounts]) {
				leftNext = scrolling[current+scrollcounts].style.left;
				leftNext = parseInt(leftNext.replace(re, ""));
			}
			if(scrolling[current-scrollcounts]) {
				leftPrev = scrolling[current-scrollcounts].style.left;
				leftPrev = parseInt(leftPrev.replace(re, ""));
			}
			
			if((direction == "right"  && leftNext <= 0) || 
			   (direction == "left" && leftPrev >= 0))
			{
				pre_int = clearInterval(pre_int);
				in_scroll = false;
			}
			else
			{

				if(direction == "left") {
					leftFirst = scrolling[current-scrollcounts].style.left;
					leftFirst = parseInt(leftFirst.replace(re, ""));
					if(Math.abs(leftFirst) < steps) { lstep = Math.abs(leftFirst); } else { lstep = steps; }

					for(var i = 0; i < scrolling.length; i++) {
						var left = scrolling[i].style.left;
						left = parseInt(left.replace(re, ""));
						scrolling[i].style.left = (left + lstep) + "px";
					}
				} else if(direction == "right") {
					leftFirst = scrolling[current+scrollcounts].style.left;
					leftFirst = parseInt(leftFirst.replace(re, ""));
					if(Math.abs(leftFirst) < steps) { lstep = Math.abs(leftFirst); } else { lstep = steps; }

					for(i = 0; i < scrolling.length; i++) {
						left = scrolling[i].style.left;
						left = parseInt(left.replace(re, ""));
						scrolling[i].style.left = (left - lstep) + "px";
					}
				}
			}
		}
	}();
	
	pre_int = setInterval(moveText, speed);
}

function getContent(id, target) {

	var request = kAjax("/ajax/getContent/"+id+"/", __getContent);
	request.Send();
	
	function __getContent()	{
		var ajax_text = request.GetText();
		document.getElementById(target).innerHTML = ajax_text;

	}
	
	return false;
}

function getContentNews(id, target) {

	var request = kAjax("/ajax/getContentNews/"+id+"/", __getContentNews);
	request.Send();
	
	function __getContentNews()	{
		var ajax_text = request.GetText();
		document.getElementById('scroll').innerHTML = ajax_text;
	}
	return false;
	
}


function getContentNewsPic(id, target) {
	var request = kAjax("/ajax/getContentNewsPic/"+id+"/", __getContentNewsPic);
	request.Send();
	getContentNews(id, 'nn')
	function __getContentNewsPic()	{
		var ajax_text = request.GetText();
		document.getElementById('im').innerHTML = ajax_text;
	}
	
	return false;
	
}

function getContentCon(id, target, parent) {
	var request = kAjax("/ajax/getContent/"+id+"/", __getContent);
	request.Send();
	
	var child = document.getElementById(parent).children;
	for (i = 0; i<child.length; i++) {
		var children_p = child[i].children;
		children_p[0].className = 'notel'
	}
	
	document.getElementById(id).className = "thisnote notel";
	
	function __getContent()	{
		var ajax_text = request.GetText();
		document.getElementById(target).innerHTML = ajax_text;		
	}

	return false;
}




var FormSendOptions =
{ 
	success:  successSendForm,
	type: 'post',
	url:  '/ajax/form/',
	clearForm: false 

};
var emailfilter = /^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i;
var formId = new String;

function checkmail(v)
{
	return emailfilter.test(v);
}

function formCheck(formobj, sendoptions)
{
	var fieldRequired = Array();
	var fieldDescription = Array();
	if (formobj.requiredfileds)
	{
		fieldRequired = formobj.requiredfileds.value.split(',');
	}
	if (formobj.requireddescription)
	{
		fieldDescription = formobj.requireddescription.value.split(',');
	}
	var alertMsg = "Пожалуйста правильно заполните следующие поля:\n";
	var focused = false;
	formId = formobj.id;
	var defaultStr = 'Введите';	
	var l_Msg = alertMsg.length;	
	for (var i = 0; i < fieldRequired.length; i++)
	{
		var obj = formobj.elements[fieldRequired[i]];
		if (obj)
		{
			obj.style.border = '';
			switch(obj.type)
			{
			case "select-one":
				if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].text == "")
				{
					alertMsg += " - " + fieldDescription[i] + "\n";
					obj.style.border = '1px solid red';
				}
				break;
			case "select-multiple":
				if (obj.selectedIndex == -1)
				{
					alertMsg += " - " + fieldDescription[i] + "\n";
					obj.style.border = '1px solid red';
				}
				break;
			case "text":
			case "textarea":
				if ((obj.value == "" || obj.value == null || obj.value.substring(0, defaultStr.length) == defaultStr) || (fieldRequired[i] == 'email' && !checkmail(obj.value)))
				{
					alertMsg += " - " + fieldDescription[i] + "\n";
					obj.style.border = '1px solid red';
					if (!focused)
					{
						obj.focus();
						focused = true;
					}
				}
				break;
			default:
			}
			if (obj.type == undefined)
			{
				var blnchecked = false;
				for (var j = 0; j < obj.length; j++)
				{
					if (obj[j].checked)
					{
						blnchecked = true;
					}
				}
				if (!blnchecked)
				{
					alertMsg += " - " + fieldDescription[i] + "\n";
					obj.style.border = '1px solid red';
				}
			}
		}
	}

	if (sendoptions && sendoptions.url)
	{
		FormSendOptions.url = sendoptions.url;
	}
	if (sendoptions && sendoptions.success)
	{
		FormSendOptions.success = sendoptions.success;
	}

	if (alertMsg.length == l_Msg)
	{
		if (FormSendOptions.url)
		{
			jQuery('#' + formId).ajaxSubmit(FormSendOptions);
			//alert(formId + ' ajaxSubmit: ' + FormSendOptions.success);
			return false;
		}
		else
		{
			return true;
		}
	}
	else
	{
		alert(alertMsg);		
		return false;
	}
}

function RefreshCaptcha(form, focus) 
{
	if (focus)
	{
		document.getElementById(form).kcaptcha.focus();
	}
	jQuery('#' + form + '-image-kcaptcha').attr('src', '/kcaptcha/' + Math.random() + '/');
}

function CaptchaError(form, focus, message) 
{
	var input_captcha = document.getElementById(form).kcaptcha;
	input_captcha.style.border = '1px solid red';
	input_captcha.value = '';
	RefreshCaptcha(form, focus);
	if (message)
	{
		alert('Код безопасности (защиты от спама) введён не верно !');
	}
}

function ResetForm(form) 
{
	jQuery('#' + form + ' input').css('border', '');
	jQuery('#' + form + ' textarea').css('border', '');
	RefreshCaptcha(form, false);
	document.getElementById(form).reset();
}

function successSendForm(result, message) 
{
		//alert(result);
		form = document.getElementById(formId);
		if (result == 1)
		{
			if (form.successmessage)
			{
				alert(form.successmessage.value);
			}
			else
			{
				alert('Данные формы успешно отправлены!');
			}
			if (form.successclose)
			{
				//parent.$.fancybox.close();
				parent.jQuery.fancybox.close();
			}
			else
			{			
				parent.location.reload(1);
			}
		}
		else if (result == 0)
		{
			alert(form.errormessage.value);
			CaptchaError(formId, false, false);
		}
		else if (result == -1)
		{
			CaptchaError(formId, true, true);
		}
		else
		{
			alert(result);
		}
}

function switch_content(link, target, content_area, links_area) 
{	
	var $link = jQuery(link);
		
	if (jQuery($link).hasClass('thisnote'))
	{
		return false;
	}

	jQuery('#' + content_area).fadeOut("slow", function() {
		jQuery('#' + links_area).find('.thisnote').removeClass('thisnote');
		
		jQuery('.switch-content').hide();

		jQuery('#' + target).show();

		jQuery('#' + content_area).fadeIn("slow", function() {
			jQuery($link).addClass('thisnote');
		});
	});

}

function loadNews(id)
{
	jQuery('#news-content').load('/ajax/news/' + id + '/', function() {
		jQuery('#news-list ul li').removeClass('current');
		jQuery('#news-' + id).addClass('current');		
	});
}


jQuery(document).ready(function()
{
	jQuery("a.modal").fancybox(
	{
		'titlePosition'		: 'outside',
		'overlayColor'		: '#000',
		'overlayOpacity'	: 0.9
	});
});
