﻿/******************************************************************************
Плагин jQuery BlockUI исправлен!!! Не обновлять без учета изменений. Убрана эмуляция position fixed для IE
*******************************************************************************/


$(function () {
	if ( $.blockUI ) {
		$.blockUI.defaults.css = {
			padding:        0,
			margin:         0,
			width:          '100%',
			top:            '100px',
			left:           0,
			cursor:         'wait',
			position:       'absolute'
		}
	}
	
	if ($.browser.opera) {
		$.support.opacity = true;
	}
})

//Add support form feedback
var jLinkFeedback;
var jFormFeedback;

$(function () {
	jLinkFeedback = $('#link_feedback');
	
	jFormFeedBack = $(jLinkFeedback ).after(' \
		<form id="form_feedback" class="feedback" method="post" onsubmit="return postFeedback()" > \
			<div class="ff_title">Форма <span>обратной связи</span></div> \
			<div class="ff_row"> \
				<span class="ff_row_title">Ваше имя:</span> \
				<input type="text" name="name" value="" data-required="true" /> \
				<span class="required">*</span> \
			</div> \
			<div class="ff_row"> \
				<span class="ff_row_title">компания:</span> \
				<input type="text" name="company" value="" /> \
			</div> \
			<div class="ff_row"> \
				<span class="ff_row_title">Контакты:</span> \
				<input type="text" name="contact" value="" data-required="true" /> \
				<span class="required">*</span> \
			</div> \
			<div class="ff_row"> \
				<span class="ff_row_title">Сообщение:</span> \
				<textarea name="message" data-required="true"></textarea> \
				<span class="required">*</span> \
			</div> \
			<div class="ff_row_submit"> \
				<input type="submit" name="post_feedback" value="ОТПРАВИТЬ" /> \
				<span class="required">*</span> \
				<span class="ff_submit_annotation">Поля, обязательные для заполнения</span> \
			</div> \
		</form> \
		').next();
	
	//jFormFeedBack = $('#form_feedback');
	jLinkFeedback.click(toggleFormFeedback);

	jFormFeedBack.find('div.ff_row > [data-required="true"]').blur(function () {
			if ($(this).val().replace(/\s/g, '') != '') {
				$(this).css('background-color', '#fff');
			}
		});
})

function toggleFormFeedback () {
	$(jLinkFeedback).toggleClass('feedback_active');
	
	$(jFormFeedBack).toggleClass('feedback_active');
	
	return false;
}

function postFeedback() {
	jFormFeedBack.find('div.ff_row_submit input').attr('disabled', 'true');
	
	var sendData = {};
	jFormFeedBack
		.find('div.ff_row')
		.find('input:text, textarea')
		.each(function () {
			sendData[$(this).attr('name')] = $(this).val();
			$(this).css('background-color', '#fff');
		});
	
	for (var i in sendData) {
		//Компания не обязательна и не проверяется
		if (i == 'company') continue;
		//Проверяем на пустоту
		if (sendData[i].replace(/\s/g, '') == '') {
			var jPole = jFormFeedBack.find('div.ff_row [name="' + i + '"]').css('background-color', '#fbb');
			
			alert('Не заполнено поле "' + jPole.prev('span.ff_row_title').text().replace(/:$/, '') + '"');
			jFormFeedBack.find('div.ff_row_submit input').removeAttr('disabled');
			return false;
		}
	}
	
	$.post('/feedback/ajax.html', sendData, function (data) {
		jFormFeedBack.find('div.ff_row_submit input').removeAttr('disabled');
		if (data == 'ok') {
			alert('Ваш сообщение было успешно отправлено.');
			
			toggleFormFeedback();
			return false;
		} else if (data == 'not_enough_data') {
			alert('При отправке сообщения возникла ошибка.\nЗаданы не все обязательные поля.');
			return false;
		} else {
			alert('При отправке сообщения возникла неизвестная ошибка.\nПожалуйста свяжитесь с администрацией и опишите возникшую ситуацию.');
			return false;
		}
	});
	return false;
}


//Add hover effect for logo_partners
//Add scrolling for logo_partners
/*var iWidthLogos;
var iCountLogos;
var jFirstLogoPartner;
var jLogoPartners;*/
$(function () {
	var jLogoPartners = $('#logo_partners');
	var aPreloadImages = new Array();
	
	jLogoPartners.find('a')
		.each( function (i) {
			aPreloadImages[i] = '/_files/logo_partners/small/' + $(this).attr('data-logo_name') + '.' + $(this).attr('data-logo_ext');
		});
		
	preload(aPreloadImages);

	//var sNewHtml = '<div class="logo-partners-container" style="float:left;">' + jLogoPartners.html() + '</div>';
	/*iCountLogos = jLogoPartners.children('a').length;*/
	jLogoPartners.html(jLogoPartners.html()/*sNewHtml*/ + jLogoPartners.html());

	/*jFirstLogoPartner = jLogoPartners.children('div.logo-partners-container:first');
	iWidthLogos = jFirstLogoPartner.width();*/

	jLogoPartners.find('a')
		.hover(
			//over
			function () {
				$(this).find('img').attr('src', '/_files/logo_partners/small/' + $(this).attr('data-logo_name') + '.' + $(this).attr('data-logo_ext'))
			},
			//out
			function () {
				$(this).find('img').attr('src', '/_files/logo_partners/small/' + $(this).attr('data-logo_name') + '_bw.' + $(this).attr('data-logo_bw_ext'))
			}
		);
	
	function scrollLeft() {
	//	jFirstLogoPartner
	//		.animate({'marginLeft': -iWidthLogos}, iCountLogos*1500, 'swing', function () {
	//			$(this).css('marginLeft', 0);
	//			scrollLeft();
	//		});
		var jFirstLogo = jLogoPartners.children('a:first');
		var iWidth = jFirstLogo.width();
		var iK = 10 + (130 - iWidth) / 10;
		jFirstLogo.animate({'marginLeft': -iWidth}, iWidth*iK, 'swing', function () {
				$(this).css('marginLeft', '15px').appendTo(jLogoPartners);
				setTimeout(scrollLeft, 500);
			});
	}

	scrollLeft();
})


//Util function - preload images
function preload(images) {
    if (typeof document.body == "undefined") return;
    try {
        var div = document.createElement("div");
        var s = div.style;
        s.position = "absolute";
        s.top = s.left = 0;
        s.height = '10px';
        s.overflow = 'hidden';
        s.visibility = "hidden";
        document.body.appendChild(div);
        div.innerHTML = "<img src=\"" + images.join("\" /><img src=\"") + "\" />";
    } catch(e) {
        // Error. Do nothing.
    }
}