/**
 * @author Vlad Yakovlev (scorpix@design.ru)
 * @copyright Art.Lebedev Studio (http://www.artlebedev.ru)
 * @version 0.1.1 (2009-07-03)
 * @requires jCommon
 * @requires jQuery
 */

var ie6FixPngImagePath = '/f/1/global/i/0.gif';

jCommon.measurer = (function() {

	var
		callbacks = {},
		interval = 500,
		genId = 1,
		curHeight,
		el,
		isInit = false,
		isDocReady = false;

	$(function() {
		isDocReady = true;
		isInit && initBlock();
	});

	function initBlock() {
		el = $('<div></div>').css({
			height: '1em',
			left: 0,
			lineHeight: '1em',
			position: 'absolute',
			top: '-1em',
			visibility: 'hidden',
			width: '100%'
		}).appendTo('body');
		curHeight = el.height();


		setInterval(function() {
			checkScale();
		}, interval);
		$(window).resize(callFuncs);
	}

	function checkScale() {
		var newHeight = el.height();

		if (newHeight != curHeight) {
			curHeight = newHeight;
			callFuncs();
		}
	}

	function callFuncs() {
		for (var id in callbacks) {
			callbacks[id]();
		}
	}

	return {
		onUpdate: function(name, callback) {
			if (!$.isFunction(name) && !$.isFunction(callback)) {
				callbacks[name] && (delete callbacks[name]);

				return;
			}

			isInit = true;
			isDocReady && initBlock();

			if ($.isFunction(name)) {
				callbacks[genId.toString()] = name;
				genId++;
			} else {
				callbacks[name] = callback;
			}
		}
	};
})();


/**
 * Эмулирует поведение input type="search" как в Сафари.
 */
$.browser.safari || $(function() {
	$('input[placeholder]').each(function () {
		makePlaceholder(this);
	});

	/**
	 * Эмулирует поведение input type="search" как в Сафари.
	 * @param {Element} elem Поле ввода
	 * @param {String} [class_empty] Класс для пустого поля ввода
	 */
	function makePlaceholder(elem, classEmpty) {
		classEmpty = ('string' === typeof classEmpty) ? classEmpty : 'empty';

		$(elem).focus(function () {
			if (this.value === $(this).attr('placeholder')) {
				this.value = '';
			}

			$(this).removeClass(classEmpty);
		});

		$(elem).blur(function () {
			if (!this.value.length) {
				this.value = $(this).attr('placeholder');
				$(this).addClass(classEmpty);
			}
		});

		if (elem.value == $(elem).attr('placeholder')) {
			$(elem).addClass(classEmpty)
		} else if(!elem.value.length) {
			$(elem).blur()
		}
	}
});

jCommon.checkCanvas = function() {
	if ('undefined' != typeof(HTMLCanvasElement)) return true;

	// В IE для VML надо добавить схему и стили.
	if (!document.namespaces['v']) {
		document.namespaces.add('v', 'urn:schemas-microsoft-com:vml');

		var ss = document.createStyleSheet();

		//ss.cssText = 'v\\:* {behavior:url(#default#VML);display:block;}';
		ss.cssText = '.vml {behavior:url(#default#VML);display:block;}';
	}

	return false;
}

jCommon.isCanvas = jCommon.checkCanvas();

if ($.browser.msie) {
	try {
		document.execCommand('BackgroundImageCache', false, true);
	} catch(e) {}

	function fixIePng(element) {
		if (!(/MSIE (5\.5|6).+Win/.test(navigator.userAgent)) || undefined === window.ie6FixPngImagePath) return;

		/** @type {String} */
		var src;

		if ('IMG' == element.tagName || ('INPUT' == element.tagName && 'image' == element.type)) {
			if (/\.png$/.test(element.src)) {
				src = element.src;
				element.src = ie6FixPngImagePath;
			}
		} else {
			src = element.currentStyle.backgroundImage.match(/url\("(.+\.png)"\)/i);

			if (src) {
				src = src[1];
				element.runtimeStyle.backgroundImage = 'none';
			}
		}

		var reScaleMode = /iesizing\-(\w+)/;
		var m = reScaleMode.exec(element.className);

		if (src) {
			var scaleMode = m ? m[1] : 'crop';
			element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "',sizingMethod='" + scaleMode + "')";
		}
	}
}


/**
 * Форма подключения.
 */
$(function() {
	var root = $('#connect_panel');

	if (!root.size()) return;

	var submits = root.find('form .submit');
	var textField = root.find('form .text input');

	submits.eq(0).removeClass('hidden');
	submits.eq(1).addClass('hidden');
/*
	check();
	textField.bind('focus blur mouseup change keyup', check);
	root.find('form').submit(check);
*/
	function check() {

		if (/^\(49[59]\) \d{3}-\d{2}-\d{2}$/.test(textField.val())) {
			submits.eq(0).removeClass('hidden');
			submits.eq(1).addClass('hidden');

			return true;
		} else {
			submits.eq(1).removeClass('hidden');
			submits.eq(0).addClass('hidden');

			return false;
		}
	}
});

$.browser.msie && 7 >= parseInt($.browser.version) && $(function() {
	$('.rur span').each(function() {
		this.innerHTML = String.fromCharCode(8211);
	});
});

/**
 * Private Office
 */
$(function() {
	var root = $('#private_office');

	root.length && root.find('.enter a').click(function() {
		var form = root.find('.simple_form');

		root.find('.activate').toggleClass('hidden');
		form.toggleClass('hidden');

		form.hasClass('hidden') || form.find('input:first').focus();

		return false;
	});
});