$(document).ready(function(){
	


//Submit with enter.
phoneChecking();

var userStatus = $('div.user-status');
if(userStatus.length)
{
	function ajaxForm()
	{
		$('form', userStatus).attr('action', $('form', userStatus).attr('action'));
		$('h4 > a', userStatus).bind('click', function(event)
		{
			event.preventDefault();
			userStatus.toggleClass('user-status_view').toggleClass('user-status_edit');
			$('form input[type=text]', userStatus).focus();
		})
		$('form', userStatus).bind('submit', function(event){
			event.preventDefault();
			var form = $('form', userStatus),
			    data = form.serialize() + '&save=true';
			$('input', form).attr('disabled', 'disabled');
			$.post(form.attr('action'), data, function(response){
				userStatus.parent().html(response);
				userStatus = $('div.user-status');
				ajaxForm();
			});
		});
	};
	ajaxForm();
}


	
	if($('.registration')[0]){
			
		$('#live-id-already,#live-id-later').click(function(){
			$('.small-box')[0].style.display='none';
			$('.small-box + .bottom-corners')[0].style.display='none';
		});
		
		$('#live-id-yes').click(function(){
			$('.small-box')[0].style.display='block';
			$('.small-box + .bottom-corners')[0].style.display='block';
		});
		var re;
		$('#login')[0].onblur=function(){
			re=/[^a-z0-9\-]/;
			if($('#login')[0].value.match(re)||$('#login')[0].value.length<3||$('#login')[0].value.length>40) {
				if(!$('.line:has(#login):has(.err)')[0]){
					$('.line:has(#login)').addClass('error');
					$('.line:has(#login)').append("<dd class=\"desc err\">Поле заполнено неправильно!</dd>")
				}
			}
			else{
				if($('.line:has(#login):has(.err)')[0]){
					$('.line:has(#login)').removeClass('error');
					$('.line:has(#login) .err:not(.login-check)').remove();
				}
			}
		}
		$('#login').bind('paste keyup', function(){
			$('dd.login-check').html('<a href="#">проверить</a>');
			$('dd.login-check').removeClass('err').removeClass('login-free');
		});

		$('#login').bind('paste change blur', function(event){
			var v = $('#login')[0].value;
			v = $.trim(v);
			if(v && !$('.line:has(#login):has(.err)')[0])
			{
				$.getJSON('/register/check?login=' + v, function(data){
					$('dd.login-check').addClass(data.login_exists == 1 || data.login_reserved == 1 ? 'err' : 'login-free');
					$('dd.login-check').html(data.login_exists == 1 || data.login_reserved == 1 ? 'уже занят' : 'свободен');
				});
			}
		});

		
		$('#email')[0].onblur=function(){
			re=/\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b/gi;
			if(!$('#email')[0].value.match(re))  {
				if(!$('.line:has(#email):has(.err)')[0]){
					$('.line:has(#email)').addClass('error');
					$('.line:has(#email)').append("<dd class=\"desc err\">Поле заполнено неправильно!</dd>")
				}
			}
			else{
				if($('.line:has(#email):has(.err)')[0]){
					$('.line:has(#email)').removeClass('error');
					$('.line:has(#email) .err').remove();
				}
			}
		}
		
		$('#password')[0].onblur=function(){
			if(this.value.length<6){
				if(!$('.password:has(.err)')[0]) $('.password:has(#password)').append("<p class=\"desc err\">Поле заполнено неправильно!</dd>");
				if(!$('.line:has(#password)').hasClass('error')) $('.line:has(#password)').addClass('error');
			}
			else{
				if($('.line:has(#password)').hasClass('error')) $('.line:has(#password)').removeClass('error');
				if($('.password:has(.err)')[0] && $('#password_again')[0].value.length>5) $('.password .err').remove();
			}
		}
		
		$('#password_again')[0].onblur=function(){
			if(this.value.length<6)  {
				if(!$('.password:has(.err)')[0]) $('.password:has(#password)').append("<p class=\"desc err\">Поле заполнено неправильно!</dd>");
				if(!$('.line:has(#password_again)').hasClass('error')) $('.line:has(#password_again)').addClass('error');
			}
			else{
				if($('.line:has(#password_again)').hasClass('error')) $('.line:has(#password_again)').removeClass('error');
				if($('.password:has(.err)')[0] && $('#password')[0].value.length>5) $('.password:has(#password) .err').remove();
			}
		}
		
		/*
		$(':submit')[0].onclick=function(){
			$('.submit-options .error').remove();
			if($('.err')[0]&&$('.err')[0].innerHTML!='Тест не пройден!') return false;
		}	
		*/

	}

	if($('#lm-login')[0]){
		$('#lm-login')[0].onfocus=function(){
			if($('#lm-login')[0].style.color!='rgb(0, 0, 0)'){
				$('#lm-login')[0].value="";
				$('#lm-login').css('color','#000');
				$('#lm-password')[0].value="";
				$('#lm-password').css('color','#000');
			}
		}
	}
	
	var hideUserLayer = function(layer){ layer.slideUp('fast', function(){ layer.remove() }); };
	
	$('ul.friends-dropdown > li:not(.all-users)').mouseenter(function(){
		var el = $(this),
		    div = el.parent().parent(),
		    cont = $('<div class="b-friend-hover b-friend-hover-left"></div>'),
		    username = el.find('a:first').attr('href').match(/http:\/\/([^\.]+)/)[1],
		    isMutual = el.parents('ul.non-mutual').length;

		cont.append(el.children().clone()).appendTo(div)
		.append($('<p class="remove"><a href="/friends/remove/' + username + '"><i></i>' + (isMutual ? 'Перестать наблюдать' : 'Удалить из друзей') + '</a></p>'))
		.css({ 
			top: el.offset().top - div.offset().top - 10,
			left: el.offset().left - div.offset().left - 5
		})
		.mouseenter(function(){ if(el.data('timer')) clearTimeout(el.data('timer')); })
		.mouseleave(function(){ hideUserLayer($(this)) })
		.slideDown('fast')
		.find('p.add > a, p.remove > a').click(getPopup);
		
		el.data('layer', cont);
	}).mouseleave(function(){
		var el = $(this),
		    layer = $(this).data('layer');
		if(layer)
		{
			el.data('timer', setTimeout(function(){
				hideUserLayer(layer);
			}, 10));
		}
	});
	
	$('a[ajax=true]').click(getPopup);

	/*$('#im-settings').click(function(event){
		event.preventDefault();
		switchPopup($('#alerts-popup'));
	});*/
	cancelPopup($('#alerts-popup'));

	var paging = $('div.paging > ul.paging-inner');
	if(paging.length)
	{
		var from = 38,
		    to = 197,
		    both = to + from,
		    lis = paging.find('> li'),
		    original = paging.find('li.current'),
		    current = $(original),
		    timer = null;

		paging.removeClass('no-script');
		lis.mouseenter(function(){
			if(timer) clearTimeout(timer);
			
			var li = $(this),
			    index = lis.index(li),
			    step = function(width){
			    	current.css('width', both - width);
			    	//console.debug(width);
			    },
			    action = function(){
			    	lis.stop().removeClass('current').width(from);
				current.width(to);

				li.animate({
					width: to
				}, {
					duration: 'fast',
					step: step,
					complete: function(){
						current = li;
						current.addClass('current');
						step(from);
						lis.removeAttr('style');
					}
				});
			    };

			if(!li.hasClass('current')) timer = setTimeout(action, 200);

			//console.debug('mouseenter', li);
		});
		paging.mouseleave(function(){
			original.trigger('mouseenter');
			//console.debug('------------------');
		});
	}
	
	var countdownContainer = $('#broadcastStartCountdown');
	
	if (countdownContainer.length) {
		startCountdown(countdownContainer, broadcastStartTime);
	}
	
	residenceSelectManager.init($('#residenceSelect'));
	
	$('div.video-chat').each(function(){
		var chat = $(this),
		    iframe = chat.find('iframe'),
		    form = chat.find('form'),
		    src = iframe.attr('src'),
		    input = form.find('input[name=message]'),
		    tzdiff = (240 + (new Date).getTimezoneOffset()) * 60 * 1000,
		    expires = (chat.attr('expires') * 1000) - tzdiff;
		function reloadFrame()
		{
			if(!iframe.data('lock'))
			{
				iframe.attr('src', src + '?r=' + Math.random());
			}
			if(+(new Date) < expires)
			{
				setTimeout(reloadFrame, 2500);
			}
			else
			{
				form.remove();
			}
		};
		reloadFrame();
		
		form.submit(function(event){
			var v = $.trim(input.val());
			if(!v.length)
			{
				alert('Введите текст сообщения');
				input.trigger('focus')[0].focus();
				event.preventDefault();
			}
			else
			{
				iframe.data('lock', true);
				form.find('p.submit').fadeTo('fast', 0.5);
				setTimeout(function(){ input.val('') }, 200);
			}
		});
		
		iframe
		.mouseenter(function(){ iframe.data('lock', true) })
		.mouseleave(function(){ iframe.data('lock', null) })
		.bind('load', function(){ iframe.data('lock', null); form.find('p.submit').stop().fadeTo('fast', 1) });
	});
	
});

/**
 * Выбор места жительства (с AJAX-подгрузкой списков регионов/городов по ходу выбора)
 */
var residenceSelectManager = (function () {
	var CONFIG = {
			url : {
				region : '/geo/find_regions?country_id={id}',
				city : '/geo/find_cities?region_id={id}'
			},
			tmpl : '<option value="{id}">{name}</option>',
			errorBlockSelector : '.err'
		},
		_container, _selects, _submitButton;
	
	/**
	 * Находит селекты внутри контейнера и вешает на "onchange" подгрузку данных в след. селект
	 */
	function bindEvents () {
		_selects = _container.find('select'); 
		
		_selects
			.bind('change', function () {
				var currentControl = $(this),
					currentValue = currentControl.val(),
					valueIsNotDefault = (parseInt(currentValue, 10) !== 0),
					nextControl = currentControl.next('select');
					
				if (nextControl.length && valueIsNotDefault) {
					loadData(nextControl, currentValue);
				}
				
				_container
					.nextAll(CONFIG.errorBlockSelector)
						.remove(); // если были ошибки валидации формы, при изменении селекта они по-любому исчезнут
			})
			// мы должны задизейблить первую строку в первом селекте, данные в который вставляются сервером при загрузке страницы
			// (мы не можем сразу поставить "disabled" в шаблоне, потому что тогда первая строка селекта не будет выбрана и пользователь не
			// увидит побудительного сообщения "Выберите страну")
			.first()
				.find('option:first-child')
					.attr('disabled', 'disabled');
	}
	
	/**
	 * Загружает данные по данной стране/региону (соответственно, регионы/города) в данный селект
	 * 
	 * @param {Object} control контрол (селект), куда будем загружать данные
	 * @param {Object} requestId значение (value) селекта, в котором была выбрана страна/регион, для которых будем грузить данные - т.е. id страны/региона
	 */
	function loadData (control, requestId) {
		var	defaultRow = control.find('option:first-child'), // запоминаем строчку "Выберите..."
			nextControl = control.next('select'),
			controlType = control.attr('id').replace('_id', ''), // определяем тип контрола ("region" или "city")
			url = CONFIG.url[controlType].supplant({ id : requestId }),
			newHtml;
			
		_selects.attr('disabled', 'disabled');
		_submitButton.attr('disabled', 'disabled');
			
		$.getJSON(url, function (data) {
			newHtml = parseData(data);
			
			control
				.html(newHtml)
				.prepend(defaultRow) // вставляем строчку "Выберите..."
				/* .removeAttr('disabled') */
				.val(0); // делаем первую строчку ("Выберите...") - выделенной
			
			_selects.removeAttr('disabled');
			_submitButton.removeAttr('disabled');
			
			control
				.nextAll('select')
					.val(0)
					.attr('disabled', 'disabled'); // если еще правее есть контролы, задизейбливаем их
		});
	}
	
	function parseData (data) {
		var currentData, 
			tmpl = CONFIG.tmpl,
			htmlCache = [ ];		
		
		for (var i = 0, l = data.length; i < l; i++) {
			currentData = data[i];
			htmlCache.push(tmpl.supplant(currentData));
		}
		
		return htmlCache.join(' ');
	}
	
	return {
		/**
		 * @param {jQuery} container
		 */
		init : function (container) {
			if (!container.length) {
				return false;
			}			
			
			_container = container;
			_submitButton = container.closest('form').find('input:submit');

			bindEvents();
		}
	};
})();

/**
 * countdown timer for broadcast (translations)
 * 
 * @param {jQuery} elem
 * @param {ISO} finalTime yyyy-mm-dd hh:mm:ss
 */
function startCountdown(elem, broadcastTime) {
	var currentTime = Date.parse(new Date()),
		finalTime = parseToUnixTime(broadcastTime),
		messageContainer = elem.find('span');
		
	if (currentTime < finalTime) {
		elem.show();
	} else {
		return;
	}

	setInterval(refresh, 1000);
	
	function parseToUnixTime (time) {
		var parsedTime = time.match(/([0-9]{4})\-([0-9]{2})\-([0-9]{2})\s([0-9]{2})\:([0-9]{2})\:([0-9]{2})/),
			year = parsedTime[1],
			month = parsedTime[2] - 1,
			day = parsedTime[3],
			hour = parsedTime[4],
			min = parsedTime[5],
			sec = parsedTime[6],
			
			unixTime = Date.parse(new Date(year, month, day, hour, min, sec));

		return unixTime;
	}
	
	/**
	 * 
	 * @param {Unix time} timeRemaining
	 * @return {String} timeRemainingStr
	 */
	function parseToString (timeRemaining) { 
		var days, hours, min;
		
		// to seconds
		timeRemaining = timeRemaining / 1000;
		
		days = Math.floor(timeRemaining / (60 * 60 * 24));
		hours = Math.floor(timeRemaining / (60 * 60)); 
		min = Math.floor(timeRemaining / 60);
		
		hours = hours - (24 * days);
		min = min - (24 * 60 * days) - (60 * hours);
		
		function pasteAffixes (x, one, twoThreeFour, other) {
			var result, y;
			
			if (x === 0) {
				return '';
			}
			
			if (x > 10) {
				x = parseInt((x + '').substr(-2, 2), 10);
				if (x < 20) {
					result = other;
					return x + ' ' + result;
				}
			}
			
			y = x % 10;
			
			if (y == 2 || y == 3 || y == 4) {
				result = twoThreeFour;
			} else if (y == 1) {
				result = one;
			} else {
				result = other;
			}
			
			return x + ' ' + result;
		}		
		
		return pasteAffixes(days, 'день', 'дня', 'дней') + ' ' + pasteAffixes(hours, 'час', 'часа', 'часов') + ' ' + pasteAffixes(min, 'минута', 'минуты', 'минут');
	}
	
	function refresh () {
		var currentTime = Date.parse(new Date()),
			remainingTime = finalTime - currentTime,
			resultMessage = '0 дней 0 часов 0 минут';
			
		if (remainingTime < 0) {
			elem.hide();
			return;
		}
		
		resultMessage = parseToString(remainingTime);
		messageContainer.html(resultMessage);
	}
}

// Popup functions -----------------------------

function getPopup(event)
{
	event.preventDefault();
	hidePopup();
	showSpinner();
	loadPopup($(this).attr('href'));
};
function loadPopup(url)
{
	$.get(url, function(data){
		showPopup(data);
	});
};
function switchPopup(popup)
{
	var hidden = popup.filter(':not(:visible)'),
	    visible = popup.filter(':visible');
	if(hidden.length) showPopupAnimate(hidden);
	if(visible.length) hidePopupAnimate(visible);
};
function showPopup(data)
{
	var popup = $('<div class="popup"></div>'),
	    winHeight = $(window).height();

	if(popup.length)
	{
		popup.html(data).css({ top: winHeight * -1 }).appendTo('body');
		if(popup.find('form[name=pay]').attr('ajax', 'false').trigger('submit').length) return true;
		cancelPopup(popup);
		showPopupAnimate(popup);
	}
	return popup;
};
function cancelPopup(popup){
  var els;
  if(popup.length){
    els = popup.find('input[name=cancel], input[type=reset], i.close-popup').show();
  }
  if(els && els.length){
		var close = function(){
			hidePopup(popup);
			hideSpinner();
    };
		$(document).bind('keyup', function(event){
			if(event.keyCode == 27) close();
		});
		els.click(function(event){
			event.preventDefault(); 
			$(this).parents('form').data('canceled', true);
			close();
		});
	}
}
function centerPopup()
{
	var popup = $('div.popup'),
	    winHeight = $(window).height(),
	    popHeight = popup.height();
	if(popHeight < winHeight - 20)
	{
		popup.stop().animate({
			top: $(window).scrollTop() + ((winHeight - popHeight) / 2)
		}, 'fast');
	}
};
var wasScroll = null;
$(window).scroll(function(){
	if(wasScroll) clearTimeout(wasScroll);
	wasScroll = setTimeout(centerPopup, 500);
});
function showPopupAnimate(popup)
{
	var winHeight = $(window).height(),
	    popHeight = popup.css({ top: winHeight * -1, display: 'block' }).height();
	popup
	.css({ top: $(window).scrollTop() + (popHeight * -1), marginLeft: popup.width() / -2 })
	.animate({
		top: $(window).scrollTop() + ((winHeight - popHeight) / 2)
	}, 'normal');

	// popup actions
	if(popup.find('#userpics-popup').length) upicsControl();
	if(!popup.find('#vob-personal-popup').length && !popup.find('#userpics-popup').length) validateForms();
	if(popup.find('form.favorites-add-form').length) favoritesAdd();
	residenceSelectManager.init($('#residenceSelect', popup));	
};
function hidePopup(popup)
{
	if(!popup) popup = $('div.popup');
	if(popup.length) hidePopupAnimate(popup, true);
};
function hidePopupAnimate(popup, remove)
{
	var remove = remove,
	    popup = popup || $('body > div.popup');
	popup.animate({ top: $(window).scrollTop() + (popup.height() * -1) }, 'fast', function(){
		if(remove)
		{
			popup.remove();
		}
		else
		{
			popup.css({ display: 'none' });
		}
	});
};
function formPopup(event)
{
	var form = $(this),
	    submit = form.find(':submit:first');
	if(form.data('canceled'))
	{
		event.preventDefault();
		return false;
	}
	if(form.attr('ajax') == 'false') return true;
	
	event.preventDefault();
	if(submit.length)
	{
		submit = '&' + submit.attr('name') + '=' + encodeURIComponent(submit.val());
	}
	else
	{
		submit = '';
	}
	hidePopupAnimate(null, true);
	$[form.attr('method') == 'post' ? 'post' : 'get'](form.attr('action'), form.serialize() + submit, function(data){
		var popup = form.parents('div.popup');
		if($.trim(data).length)
		{
			showPopup(data);
		}
		else
		{
			hideSpinner();
		}
	});
};
function showSpinner()
{
	if(!$('body > div.spinner').length)
	$('<div class="spinner"></div>').css({ opacity: 0 }).appendTo('body').fadeTo('fast', 0.7);
};
function hideSpinner()
{
	$('body > div.spinner').fadeOut('fast', function(){
		$(this).remove();
	});
}

$('div.popup form').live('submit', formPopup);
$('div.popup a[ajax=true]').live('click', getPopup);

$.ajaxSetup({
	error: function(request, textStatus)
	{
		if(request.status == 403)
		{
			hideSpinner();
			document.location.href = '//' + project_domain + '/login';
		}
	},
	complete: function(request, textStatus)
	{
		var done = request.getResponseHeader('Done'),
		    next = request.getResponseHeader('Next');
		if(request.status == 200 && done)
		{
			hideSpinner();
			document.location.href = done;
		}
		if(request.status == 200 && next)
		{
			hidePopup();
			loadPopup(next);
		}
	}
});

$(document).ready(function(){
	if(document.location.search)
	{
		var parts = document.location.search.replace(/^\?/, '').split('&'),
		    result = {};
		for(var i = 0, l = parts.length; i < l; i++)
		{
			var splited = parts[i].split('=');
			if(splited.length > 1) result[splited[0]] = splited[1];
		}
		if(result.autoload)
		{
			showSpinner();
			loadPopup(result.autoload);
		}
	}
	//loadPopup(url)
});

// ---------------------------------------------


function favoritesAdd()
{
	var add = function(event){
		event.preventDefault();
		hidePopup();
		loadPopup($(this).attr('href'));
	};
	$('div.popup form.favorites-add-form').each(function(){
		var form = $(this),
		    help = form.find('div.favorites-help'),
		    hover = form.find('div.favorites-result'),
		    result = form.find('div.favorites-resulted'),
		    aval = '',
		    prepare = function(){
		    		result.find('div.favorites-list a').click(add);
		    		result.find('ul.favorites-results-pager a').click(function(event){
		    			event.preventDefault();
		    			result.html('<img src="/i/popup.gif" style="margin: 10px auto; display: block" />').show();
		    			$.get($(this).attr('href'), append);
		    		});
		    },
		    append = function(data){
				var cache = form.data('cache');
				cache[aval] = data;
				form.data('cache', cache);
				form.data('lastV', aval);
				result.html(data);
				prepare();
		    };
		form.data('cache', {});
		if(form.find('input[type=text]:not([readonly])').bind('paste keyup change', function(){
			var val = $.trim($(this).val());
			if(form.data('timer')) clearTimeout(form.data('timer'));

			if(form.data('lastV') == val) return true;

			if(val.length > 2)
			{
				help.hide();
				hover.addClass('favorites-result-hover');

				if(form.data('cache')[val])
				{
					form.data('lastV', val);
					result.html(form.data('cache')[val]).show();
					prepare();
				}
				else
				{
					result.html('<img src="/i/popup.gif" style="margin: 10px auto; display: block" />').show();
					var g = function(){
						aval = val;
						$.get(form.attr('action'), {'letters': val}, append);
					};
					form.data('timer', setTimeout(g, 500));
				}
			}
			else
			{
				form.data('lastV', val);
				hover.removeClass('favorites-result-hover');
				result.hide();
				help.show();
			}
		}).length){
			form.submit(function(event){
				event.preventDefault();
				return false;
			});
		}
	});
};


$('#amount').live('keyup', function(){
	var val = Math.round($(this).val()) * 10;
	$('div.add-balance input:eq(1)').val(val >= 10 /*&& val <= 10000*/ ? val : '');
});
$('#login-check').live('click', function(event){
	event.preventDefault();
	var v = $.trim($('#taker_login').val());
	if(v && !$('.line:has(#login):has(.err)')[0])
	{
		$.getJSON('/money/give/check?login=' + v, function(data){
			$('#result-check')
			.removeClass('login-free err')
			.addClass(data.login_exists == 1 || data.login_reserved == 1 ? 'login-free' : 'err')
			.html(data.login_exists == 1 || data.login_reserved == 1 ? 'Логин существует' : 'Такого логина не существует');
		});
	}
});






// Form vaidation functions ------------

function validateForms(){
	var re;
	
	if($('#name')[0]){
		$('#personal-popup :submit:eq(0)').click(function(event){
			re=/[^A-Za-zА-Яа-яёЁъЪ_\s\-]/gi;
			if($('#name')[0].value.match(re)||($('#name')[0].value.length>0&&$('#name')[0].value.length<3)||$('#name')[0].value.length>20) {
				if(!$('.line:has(#name):has(.err)')[0]){
					$('.line:has(#name)').addClass('error');
					$('.line:has(#name)').append("<dd class=\"desc err\">Поле заполнено неправильно!</dd>")
				}
			}
			else{
				$('.line:has(#name)').removeClass('error');
				$('.line:has(#name) .err').remove();
			}
			
			re=/[^A-Za-zА-Яа-яёЁъЪ_\s\-]/gi;
			if($('#city')[0].value.match(re)||($('#name')[0].value.length>0&&$('#name')[0].value.length<2)||$('#city')[0].value.length>40) {
				if(!$('.line:has(#city):has(.err)')[0]){
					$('.line:has(#city)').addClass('error');
					$('.line:has(#city)').append("<dd class=\"desc err\">Поле заполнено неправильно!</dd>")
				}
			}
			else{
				$('.line:has(#city)').removeClass('error');
				$('.line:has(#city) .err').remove();
			}

			if($('#about').val().length>1024) {
				if(!$('.line:has(#about):has(.err)')[0]){
					$('.line:has(#about)').addClass('error');
					$('.line:has(#about)').append("<dd class=\"desc err\">Максимум 1024 символа!</dd>")
				}
			}
			else{
				$('.line:has(#about)').removeClass('error');
				$('.line:has(#about) .err').remove();
			}


			if($('.err')[0])
			{
				event.preventDefault();
				return false;
			}
		});
	}


	if($('#email')[0]){
		checkInput('email',/\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b/gi,'changemail-popup',100,4,'unmatch');
	}

}

function checkPhoneNeed(event)
{
	var v = jQuery.trim(event.target.value);
	if(v == '')
	{
		$('dd.line-adding a').fadeIn('fast');
		$('dl.line:has(#phone2)').fadeOut('fast');
	}
};
function phoneChecking() 
{
	$('#phone2').bind('paste change blur', checkPhoneNeed);
	$('dd.line-adding a').bind('click', function(event)
	{
		event.preventDefault();
		$('dd.line-adding a').fadeOut('fast');
		$('dl.line:has(#phone2)').fadeIn('fast');
		$('#phone2').focus();
	});
};


function checkAgree(event)
{
	var sb = $('#vob-giveaway-popup input[name=save]');
	if($('#vob_giveaway_agree')[0].checked)
	{
		sb.removeClass('submit-disabled');
		sb.removeAttr('disabled');
	}
	else
	{
		sb.addClass('submit-disabled');
		sb.attr('disabled', 'true');
	}
};
$('#vob_giveaway_agree').live('click', checkAgree);


function checkInput(inputId, re, formId, maxL, minL,reType){
	var checkReg;
	$('#'+formId+' :submit')[0].onclick=function(){
		if(reType=='unmatch'){checkReg=!$('#'+inputId)[0].value.match(re)} else {checkReg=$('#'+inputId)[0].value.match(re)}	
		if(checkReg||$('#'+inputId)[0].value.length<minL||$('#'+inputId)[0].value.length>maxL){
			if(!$('.line:has(#'+inputId+'):has(.err)')[0]){
				$('.line:has(#'+inputId+')').addClass('error');
				$('.line:has(#'+inputId+')').append("<dd class=\"desc err\">Поле заполнено неправильно!</dd>")
			}
			return false;
		}
		else{
			if($('.err')[0]){
				$('.line:has(#'+inputId+')').removeClass('error');
				$('.line:has(#'+inputId+') .err').remove();
			}
		}
			
	}
}

function checkPassword(){
	
	$('#cur-password')[0].onblur=function(){
		if($('#cur-password')[0].value.length<6){
			if(!$('.line:has(#cur-password):has(.err)')[0]){
				$('.line:has(#cur-password)').addClass('error');
				$('.line:has(#cur-password)').append("<dd class=\"desc err\">Поле заполнено неправильно!</dd>")
			}
		}
		else{
			if($('.line:has(#cur-password):has(.err)')[0]){
				$('.line:has(#cur-password)').removeClass('error');
				$('.line:has(#cur-password) .err').remove();
			}

		}
	}
	
	$('#new-password')[0].onblur=function(){
		if($('#new-password')[0].value.length<6){
			if(!$('.line:has(#new-password):has(.err)')[0]){
				$('.line:has(#new-password)').addClass('error');
				$('.line:has(#new-password)').append("<dd class=\"desc err\">Поле заполнено неправильно!</dd>")
			}
		}
		else{
			if($('.line:has(#new-password):has(.err)')[0]){
				$('.line:has(#new-password)').removeClass('error');
				$('.line:has(#new-password) .err').remove();
			}

		}
	}
	
	$('#retype-password')[0].onblur=function(){
		if($('#retype-password')[0].value.length<6){
			if(!$('.line:has(#retype-password):has(.err)')[0]){
				$('.line:has(#retype-password)').addClass('error');
				$('.line:has(#retype-password)').append("<dd class=\"desc err\">Поле заполнено неправильно!</dd>")
			}
		}
		else{
			if($('.line:has(#retype-password):has(.err)')[0]){
				$('.line:has(#retype-password)').removeClass('error');
				$('.line:has(#retype-password) .err').remove();
			}

		}
	}

	$('#changepassword-popup :submit')[0].onclick=function(){
		if($('.err')[0]) return false;
	}

}

function upicsControl(){
	var upics=$(".userpics li[class!='no-pic']");
	for(var i=0;i<upics.length;i++){
		upics[i].onclick=(function(i){return function(){
			$(".userpics li[class='sel']").removeClass('sel');
			$(".userpics li[class!='no-pic']:eq("+i+")").addClass('sel');
			$(".userpics input:eq("+i+")").attr('checked','checked');
		}})(i);
	}
	
	$("ul.userpics li a").click(function(event){
		event.preventDefault();
		/*var token=this.getAttribute('href').match(/\d+&save/gi)[0];
		var newToken=token.substring(0,token.length-5);
		var upicName=this.getAttribute('href').match(/\d+....(?=\&)/gi)[0];*/
		$.get($(this).attr('href'),
			  function(data){
			  	  var popup = $('#userpics-popup').parents('div.popup');
  				  popup.html(data);
				  upicsControl();
				  cancelPopup(popup);
		});
		hidePopup();
	});
	
	if($('#userpics-popup form')[0]){
		$('#userpics-popup form').submit(function(){
			var selUpic=$('.sel img').attr('src');
			$('.user-info .userpic img').attr('src',selUpic);
			sendForm($('#userpics-popup form')[0],'/userpics');
			return true;
		});
		$("#userpics-popup dd.file input[name='save']").click(function(){
			if($("#userpics-popup form .file input[name='userpic_file']").val()==""){
				return false;
			}else{
				return true;
			}
		});
	}
}

function createIFrame() {
	  var id = 'f' + Math.floor(Math.random() * 99999);
	  var div = document.createElement('div');
	  div.innerHTML = "<iframe style='position: absolute; left: -3000px; top: -1000px' src='about:blank' id="+id+" name='"+id+"' onload=sendComplete('"+id+"')></iframe>";
	  document.body.appendChild(div);
	  var ifr = document.getElementById(id);
	  ifr.status = $.browser.opera ? 0 : 1;
	  return ifr;
}
function sendForm(form, url) {
	  if (!document.createElement) return; // not supported

          if (typeof(form)=="string") form=document.getElementById(form);
	  var frame=createIFrame();
	  frame.onSendComplete = function() { getIFrameData(frame); };
	  form.setAttribute('target', frame.id);
}

function sendComplete(id) {
	  var iframe=document.getElementById(id);
	  if (iframe.onSendComplete && typeof(iframe.onSendComplete) == 'function') iframe.onSendComplete();
}

function getIFrameData(iframe) {
	var doc;
	if(iframe.contentDocument)
	{
		doc = iframe.contentDocument.getElementById('userpics-popup');
	}
	else
	{
		doc = iframe.contentWindow.document.getElementById('userpics-popup');
	}

	iframe.status++;
	if(doc && iframe.status == 2)
	{
		$('#userpics-popup').html(doc.innerHTML);
		upicsControl();
		if($("#userpics-popup input[name='cancel']")[0]){
			$("#userpics-popup input[name='cancel']")[0].onclick=function(){
				$('#userpics-popup')[0].style.display='none';
				return false;
			}
		}
	}
	else if(iframe.status == 2)
	{
		hidePopup();
		hideSpinner();
	}
	return doc;
}

// ---------------------------------------------

String.prototype.supplant = function (o) {
    return this.replace(/{([^{}]*)}/g,
        function (a, b) {
            var r = o[b];
            return typeof r === 'string' || typeof r === 'number' ? r : a;
        }
    );
};



