	var isIE = (navigator.appName == "Microsoft Internet Explorer");	var isFF = (!isIE && !(navigator.appVersion.indexOf("MSIE")>-1));	var isOPR = (navigator.userAgent.indexOf("Opera")!=-1);	if (isOPR) { isIE = false; }	var albumsLoading = false;	var topOffset = 0;	if (!isOPR) var bottomHeight = document.documentElement.clientHeight;	else var bottomHeight = window.innerHeight;	function processCatalogFiltersNEW(){		searchValue = null;		searchWhere = $('schwhere').value;		if (Object.isElement($('search'))){			if ($('search').value != '' && $('search').value != 'воспользуйтесь поиском'){				searchValue = $('search').value;				searchValue = searchValue.replace('/', '%2F');			}		}		switch(searchWhere){			case 'name':				searchURL = '/catalog/search/name/'+searchValue;				break;			case 'artist':				searchURL = '/catalog/search/artist/'+searchValue;				break;			case 'barcode':				searchURL = '/catalog/search/barcode/'+searchValue;				break;			default:				searchURL = '/catalog/search/everywhere/'+searchValue;				break;		}		$('catalogFilter').action = searchURL;		$('catalogFilter').submit();		return false;	}	function processCatalogFilters()		{		//		if(Object.isElement($('Style'))&&$('Style').value=='Введите стиль'){$('Style').value='';}		if(Object.isElement($('Label'))&&$('Label').value=='Введите лейбл'){$('Label').value='';}		if(Object.isElement($('Artist'))&&($('Artist').value=='артист или альбом'||$('Artist').value=='Наберите имя артиста или название группы')){$('Artist').value='';}		//		searchValue = null;		if (Object.isElement($('search')))			{			if ($('search').value != '' && $('search').value != 'воспользуйтесь поиском' && $('search').value != 'артист или альбом')				{				searchValue = $('search').value;				searchValue = searchValue.replace('/', '%2F');				}			}		if (searchValue)			{			if ($('preCheck').value == '0')				{				labelValue = '';				if (Object.isElement($('Label'))) labelValue = encodeURIComponent($('Label').value);				artistValue = '';				if (Object.isElement($('Artist'))) artistValue = encodeURIComponent($('Artist').value);				styleValue = '';				if (Object.isElement($('Style'))) styleValue = encodeURIComponent($('Style').value);				availableValue = '';				if (Object.isElement($('Available')) && $('Available').checked){availableValue='&active=Y';}				else{availableValue='';}				eppValue = '';				if (Object.isElement($('Epp')))					{					if (!/^[0-9]+$/.exec($('Epp').value))						{					//	alert('Кол-во записей на страницу задано неверно!');					//	return false;						}					eppValue = '&epp='+$('Epp').value;					}				new Ajax.Request('/api/filter.api.php', {					method: 'post',					parameters: 'style='+styleValue+'&label='+labelValue+'&artist='+artistValue+eppValue+availableValue,					onSuccess: function(transport) {						if (transport.responseText.match(/noStyle/))							{							alert('Такой стиль не найден!');							$('Style').focus();							return false;							}						if (transport.responseText.match(/noLabel/))							{							alert('Такой лейбл не найден!');							$('Label').focus();							return false;							}						transport.responseText = transport.responseText.replace('noArtist','allArtists');						$('catalogFilter').action = '/catalog/'+($('Type').value?$('Type').value:'allTypes')+'/'+($('SubType').value?$('SubType').value:'allSubTypes')+'/'+transport.responseText+'/search/'+encodeURIComponent(searchValue)+(availableValue?'&available':'');						$('preCheck').value = '1';						$('catalogFilter').submit();						return false;					}				});				}			return false;			}		else			{			if ($('preCheck').value == '0')				{				labelValue = '';				if (Object.isElement($('Label'))) labelValue = encodeURIComponent($('Label').value);				artistValue = '';				if (Object.isElement($('Artist'))) artistValue = encodeURIComponent($('Artist').value);				styleValue = '';				if (Object.isElement($('Style'))) styleValue = encodeURIComponent($('Style').value);				availableValue = '';				if (Object.isElement($('Available')) && $('Available').checked){availableValue='&active=Y';}				else{availableValue='';}				eppValue = '';				if (Object.isElement($('Epp')))					{					if (!/^[0-9]+$/.exec($('Epp').value))						{					//	alert('Кол-во записей на страницу задано неверно!');					//	return false;						}					eppValue = '&epp='+$('Epp').value;					}				new Ajax.Request('/api/filter.api.php', {					method: 'post',					parameters: 'style='+styleValue+'&label='+labelValue+'&artist='+artistValue+eppValue+availableValue,					onSuccess: function(transport) {						if (transport.responseText.match(/noStyle/))							{							alert('Такой стиль не найден!');							$('Style').focus();							return false;							}						if (transport.responseText.match(/noLabel/))							{							alert('Такой лейбл не найден!');							$('Label').focus();							return false;							}						if (transport.responseText.match(/noArtist/))							{							alert('Такой исполнитель не найден!');							$('Artist').focus();							return false;							}						if (!artistValue && Object.isElement($('filter_artist_identify')))							{							transport.responseText = transport.responseText.replace('allArtists',$('filter_artist_identify').value);							}						$('catalogFilter').action = '/catalog/'+($('Type').value?$('Type').value:'allTypes')+'/'+($('SubType').value?$('SubType').value:'allSubTypes')+'/'+transport.responseText+(availableValue?'&available':'');						$('preCheck').value = '1';						$('catalogFilter').submit();					}				});				return false;				}			else				{				return true;				}			}		}	var ac_artist,ac_label,ac_style;	function init()		{		// quit if this function has already been called		if (arguments.callee.done) return;		// flag this function so we don't do the same thing twice		arguments.callee.done = true;		if (Object.isElement($('filter_epp')))			{			albumContList = $$('.albums_container').length;			if ($('filter_epp').value == 'allPages' && albumContList==1)				{				Event.observe(window, 'scroll', function (event) {					getBottomOffset();					loadAlbums();				});				}			else				{				Event.observe(window, 'scroll', function (event) {					getBottomOffset();				});				}			}		else			{			Event.observe(window, 'scroll', function (event) {				getBottomOffset();			});			}		if (document.getElementById('page_name') && /order\/?$/.exec(document.getElementById('page_name').value) && order_lib_js)			{			initOrderForm();			}//		if ($$('.hits_lenta') && /catalog|product/.exec($('page_name').value))//	 		{			Event.observe(window, 'scroll', function (event) {					cartPosition(event)				});			//alert('!')//			}		if (Object.isElement($('scroll')))			{			scrollerInit();			}				color();		if (Object.isElement($('order')))			{			Event.observe('order', 'click', function (event) {				cartInit();			});			}		if (Object.isElement($('Epp')))			{			Event.observe('Epp', 'keyup', function (event) {				$('Epp').value = $('Epp').value.replace(/[^0-9]/g, '');			});			Event.observe('Epp', 'blur', function (event) {				if (!$('Epp').value) $('Epp').value = '15';			});			}		if (Object.isElement($('Label')))			{			if (Object.isElement($('Style'))) ac_label = new Ajax.Autocompleter('Label','ac_update','/api/_autocomplete_labels.html?style='+$('Style').value, {indicator: 'auto_indicator'});			else ac_label = new Ajax.Autocompleter('Label','ac_update','/api/_autocomplete_labels.html', {indicator: 'auto_indicator'});			Event.observe('Label', 'focus', function (event) {				if ($('Label').value=='Введите лейбл') $('Label').value = '';			});			Event.observe('Label', 'blur', function (event) {				if (!$('Label').value) $('Label').value = 'Введите лейбл';			});			}		if (Object.isElement($('Artist')))			{			if (Object.isElement($('Style'))) ac_artist = new Ajax.Autocompleter('Artist','ac_update_2','/api/_autocomplete_artists.html?style='+$('Style').value, {indicator: 'auto_indicator_2'});			else ac_artist = new Ajax.Autocompleter('Artist','ac_update_2','/api/_autocomplete_artists.html', {indicator: 'auto_indicator_2'});			Event.observe('Artist', 'focus', function (event) {				if ($('Artist').value=='Наберите имя артиста или название группы') $('Artist').value = '';			});			Event.observe('Artist', 'blur', function (event) {				if (!$('Artist').value) $('Artist').value = 'Наберите имя артиста или название группы';			});			}		if (Object.isElement($('search')))			{			Event.observe('search', 'focus', function (event) {				oldSearch = $('search').value;				if ($('search').value=='воспользуйтесь поиском' || $('search').value=='артист или альбом') $('search').value = '';			});			Event.observe('search', 'blur', function (event) {				if (!$('search').value) $('search').value = oldSearch;			});			}		if (Object.isElement($('Artist')) && Object.isElement($('Label')))			{		//	initAutocompleters();			}		if (Object.isElement($('Style')))			{			ac_style = new Ajax.Autocompleter('Style','ac_update_3','/api/_autocomplete_styles.html', {indicator: 'auto_indicator_3'});			Event.observe('Style', 'change', function (event) {	//			reinitAutocompleters();			});			Event.observe('Style', 'focus', function (event) {				if ($('Style').value=='Введите стиль') $('Style').value = '';			});			Event.observe('Style', 'blur', function (event) {				if (!$('Style').value) $('Style').value = 'Введите стиль';			});			}		}	function cartPosition(e)		{		if ($('cart_m') && !isIE)		{		if (document.documentElement && document.documentElement.scrollTop)			{			topOffset = document.documentElement.scrollTop;			}		else			{			topOffset = document.body.scrollTop;			}		if (topOffset < 78)			{			//alert(topOffset)			$('cart_m').style.position = 'absolute';			$('cart_m').style.top = '85px';			}		else			{			$('cart_m').style.position = 'fixed';			$('cart_m').style.top = '8px';			}		}		}	function initAutocompleters()		{	//	ac_artist = new Ajax.Autocompleter('Artist','ac_update_2','/api/_autocomplete_artists.html?style='+$('Style').value, {select:'selectme'});	//	ac_label = new Ajax.Autocompleter('Label','ac_update','/api/_autocomplete_labels.html?style='+$('Style').value, {select:'selectme'});		}	function reinitAutocompleters()		{		if (Object.isElement($('Style')))			{			if (Object.isElement($('Artist'))) ac_artist.url = '/api/_autocomplete_artists.html?style='+$('Style').value;			if (Object.isElement($('Label'))) ac_label.url = '/api/_autocomplete_labels.html?style='+$('Style').value;			}		}	function loadAlbums()		{		if (bottomOffset < 500 && !albumsLoading)			{			articlesLoading = true;			lastId = getLastId();			request = 'startnum='+$$('.album_container').length;			if ($('filter_type').value) request += '&type='+$('filter_type').value;			if ($('filter_subtype').value) request += '&subtype='+$('filter_subtype').value;			if ($('filter_style').value) request += '&style='+$('filter_style').value;			if ($('filter_label').value) request += '&label='+$('filter_label').value;			if ($('filter_artist').value) request += '&artist='+$('filter_artist').value;			new Ajax.Request('/api/catalog.api.php', {				method: 'post',				parameters: request,				onSuccess: function(transport) {					var span = document.createElement("span");					span.innerHTML = transport.responseText;					$('a'+lastId).parentNode.appendChild(span);					albumsLoading = false;				}			});			}		}	function getLastId()		{		objList = $$('.album_container');		return objList[objList.length-1].id.replace('a', '');		}	function scrollerInit()		{		var cW = $('scroll').offsetWidth;		var arrows = $('arrows').getElementsByTagName('IMG');		arrows[0].onmousedown = function () { scroll(1) }		arrows[0].onmouseup = function () { clearTimeout(t) }		arrows[1].onmousedown = function () { scroll(2); }		arrows[1].onmouseup = function () { clearTimeout(t) }		if ($('scroll').offsetWidth >= $('scroller').offsetWidth)			{			$('a1').style.opacity = '0.7';			$('a1').style.filter = 'Alpha(opacity=70)';			}		}	var a = 0;	var t;	function scroll(dir)		{		if (a<0 || a>-($('scroller').offsetWidth - $('scroll').offsetWidth))		{ $('a1').style.opacity = '1'; $('a2').style.opacity = '1'; $('a1').style.filter = 'Alpha(opacity=100)'; $('a2').style.filter = 'Alpha(opacity=100)'; }		if (dir == 1)			{			if (a>-($('scroller').offsetWidth - $('scroll').offsetWidth)) { a-=5 };			$('scroller').style.marginLeft = a + 'px';			}		else			{			if (a<0) { a+=5 };			$('scroller').style.marginLeft = a + 'px';			}		t = setTimeout('scroll('+dir+')', 1);		if (a>=0 || a<=-($('scroller').offsetWidth - $('scroll').offsetWidth))			{ clearTimeout(t); $('a'+dir).style.opacity = '0.7'; $('a'+dir).style.filter = 'Alpha(opacity=70)'; }		}	function resizebleScroll()		{		if ($('scroll'))		{		if ($('scroll').offsetWidth >= $('scroller').offsetWidth)			{			$('a1').style.opacity = '0.7';			$('a2').style.opacity = '0.7';			$('a1').style.filter = 'Alpha(opacity=70)';			$('a2').style.filter = 'Alpha(opacity=70)';			}		else			{			$('a1').style.opacity = '1';			$('a1').style.filter = 'Alpha(opacity=100)';			}			if (a < $('scroll').offsetWidth-$('scroller').offsetWidth) a = $('scroll').offsetWidth-$('scroller').offsetWidth;			if (a>0) { a = 0 }			$('scroller').style.marginLeft = a + 'px';		}		}	var cT = null;	var oH = 0;	var cartHeight = 0;	var open = false;	var cartDisabled = false;	function cartInit()		{		if (cartDisabled) return false;		oH = $('cart').offsetHeight;		cartHeight = -oH;		if (!open) openCart();		else closeCart();		}	function openCart()		{		cartDisabled = true;		$('cart').style.height = 'auto';		if (!isIE){oH = $('cart').offsetHeight;		$('cart_m').style.marginTop = -oH + 'px';		cT = setInterval('cartOpen()', 1);}		else { if ($('frame')) {$('frame').style.display='block'}; open = true; cartDisabled = false; }		}	function closeCart()		{		cartDisabled = true;		if (!isIE) { cT = setInterval('cartClose()', 1); }		else { $('cart').style.height = '0px'; if ($('frame')) $('frame').style.display='none'; open = false; cartDisabled = false; }		}	var time = 0;	function cartOpen()		{		cartBehaviorOpen(time, -oH, oH-9, 30)		time++		if (cartHeight == -9)			{			$('ch').style.overflow = 'auto';			clearInterval(cT);			open = true;			time = 0;			cartDisabled = false;			}		}	var check;	function cartClose()		{		$('ch').style.overflow = 'hidden';		check = val		time++		cartBehaviorClose(time, -9, -oH+4, 85, 140, 20)		if (Math.round(check*10)/10 == Math.round(val*10)/10)			{			clearInterval(cT);			open = false;			time = 0;			$('cart').style.height = '0px';			$('cart_m').style.marginTop = '-15px';			cartDisabled = false;			}		}	function cancelOrder(id)		{		if (!confirm('Вы действительно хотите отменить эту позицию в заказе?'))			{			return false;			}		new Ajax.Request('/api/order.cancel.api.php', {			method: 'post',			parameters: 'id='+id,			onSuccess: function(transport) {				if (transport.responseText == 'Ok')					{					location.reload();					}			}		});		}	function cancelWholeOrder(id){		if(!confirm('Вы действительно хотите отменить этот заказ?')){			return false;		}		new Ajax.Request('/api/order.cancel.whole.api.php',{			method:'post',			parameters:'id='+id,			onSuccess:function(transport){				if(transport.responseText=='Ok'){					location.reload();				}			}		});	}	function updateOrderQuantity(id,qua){		if(confirm('Вы действительно хотите изменить этот заказ?')){			new Ajax.Request('/api/order.update.api.php',{				method:'post',				parameters:'id='+id+'&qua='+Number(qua),				onSuccess:function(transport){					if(transport.responseText == 'Ok'){						location.reload();					}				}			});		}	}	function confirmInvoice(el,id){		if(!id||isNaN(Number(id))){return false;}		if(confirm('Вы подтверждаете актуальность этих данных?')){			new Ajax.Request('/api/invoice.api.php',{				method:'post',				parameters:'id='+id,				onSuccess:function(transport){					if(transport.responseText=='[:ok:]'){						el.value='Подтверждено';						el.disabled=true;						window.setTimeout(function(){el.parentNode.removeChild(el);},1500)					}				}			});		}	}	function buy(id)		{		if (isIE)			{			if (document.documentElement && document.documentElement.scrollTop)				topOffset = document.documentElement.scrollTop;			else				topOffset = document.body.scrollTop;			if (topOffset>100) alert('Товар добавлен в корзину!');			}		if (!open && !cartDisabled)			{			openCart();			new Ajax.Request('/api/addCart.api.php', {				method: 'post',				parameters: 'catalog_id='+id+'&qua=1',				onSuccess: function(transport) {					$('cart_paste').innerHTML = transport.responseText;					setTimeout('if (!cartDisabled && open) { closeCart(); }', 1000);				}			});			}		else			{			if (open)				{				new Ajax.Request('/api/addCart.api.php', {					method: 'post',					parameters: 'catalog_id='+id+'&qua=1',					onSuccess: function(transport) {						$('cart_paste').innerHTML = transport.responseText;						setTimeout('if (!cartDisabled && open) { closeCart(); }', 1000);					}				});				}			else				{				new Ajax.Request('/api/addCart.api.php', {					method: 'post',					parameters: 'catalog_id='+id+'&qua=1',					onSuccess: function(transport) {						$('cart_paste').innerHTML = transport.responseText;					}				});				}			}		}	function cartBehaviorOpen (t, b, c, d)		{		if ((t/=d) < (1/2.75)) {			val = c*(7.5625*t*t) + b;		} else if (t < (2/2.75)) {			val = c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;		} else if (t < (2.5/2.75)) {			val = c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;		} else {			val = c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;}		cartHeight = Math.round(val)		$('cart_m').style.marginTop = cartHeight + 'px';		}	function cartBehaviorClose(t, b, c, d, a, p)		{		if (t==0) val = -9; if ((t/=d)==1) val = b+c; if (!p) p=d*.3;		if (!a || a < Math.abs(c)) { a=c; var s=p/4; }		else { var s = p/(2*Math.PI) * Math.sin (c/100); }		val = (a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b);		cartHeight = Math.round(val);		if(!val) { val - check }		//$('test').innerHTML = $('test').innerHTML +'<br />' +'s='+s+ ' t='+t+' b='+b+' c='+c+' d='+d+' a='+a+' p='+p +' - '+val;		$('cart_m').style.marginTop = cartHeight + 'px';		}	function color()		{		var tabsList = $$('.tabs')		for (i=0; i<tabsList.length; i++)			{			if (tabsList[i].id != 'bill_tabs')				{				var rn = 55;				var r = 200;				var pageList = tabsList[i].getElementsByTagName('a');				if (pageList.length>1)					{					if (tabsList[i].className != 'tabs invertColor')						{						for (j=0; j<pageList.length; j++)							{							r+=Math.round(rn/(pageList.length));							pageList[j].style.backgroundColor='rgb('+r+','+r+','+r+')'							}						}					else						{						for (j=pageList.length-1; j>0; j--)							{							r+=Math.round(rn/(pageList.length));							pageList[j].style.backgroundColor='rgb('+r+','+r+','+r+')'							}						}					}				}			}		}	// Изменение кол-ва продуктов в корзине	function updateCart(v,k)		{		new Ajax.Request('/api/editCart.api.php', {			method: 'post',			parameters: 'catalog_id='+k+'&qua='+v,			onSuccess: function(transport) {				ReLocation = /^Location: ([a-zA-Z0-9._\/-]+)/.exec(transport.responseText);				if ( ReLocation )					{					document.location.href = ReLocation[1];					return false;					}				$('cart_paste').innerHTML = transport.responseText;			}		});		}	function updateOrderCart(v,k)		{		new Ajax.Request('/api/editCart.api.php', {			method: 'post',			parameters: 'skipOrder=Y&catalog_id='+k+'&qua='+v,			onSuccess: function(transport) {				ReLocation = /^Location: ([a-zA-Z0-9._\/-]+)/.exec(transport.responseText);				if ( ReLocation )					{					document.location.href = ReLocation[1];					return false;					}				$('cart_paste').innerHTML = transport.responseText;			}		});		}	function resetCart()		{		new Ajax.Request('/api/editCart.api.php', {			method: 'post',			parameters: 'reset=true',			onSuccess: function(transport) {				ReLocation = /^Location: ([a-zA-Z0-9._\/-]+)/.exec(transport.responseText);				if ( ReLocation )					{					document.location.href = ReLocation[1];					return false;					}				$('cart_paste').innerHTML = transport.responseText;				setTimeout('if (!cartDisabled && open) { cartDisabled = true; cT = setInterval(\'cartClose()\', 1); }', 1000);			}		});		}	function resetOrder()		{		new Ajax.Request('/api/editCart.api.php', {			method: 'post',			parameters: 'reset=true',			onSuccess: function(transport) {				ReLocation = /^Location: ([a-zA-Z0-9._\/-]+)/.exec(transport.responseText);				if ( ReLocation )					{					document.location.href = ReLocation[1];					return false;					}				$('cart_paste').innerHTML = transport.responseText;				location.href='/';			}		});		}	///////////////////////////////// Формы /////////////////////////////////	// Обратная связь	function checkFeedbackForm()		{		if (!$('f_title').value)			{			alert('Укажите ваше ФИО!');			$('f_title').focus();			return false;			}		if (!$('f_coords').value)			{			alert('Укажите ваши координаты!');			$('f_coords').focus();			return false;			}		if (!$('f_text').value)			{			alert('Напишите своё объявление!');			$('f_text').focus();			return false;			}		return true;		}	///////////////////////////////// Утилиты /////////////////////////////////	// Нижний зазор	function getBottomOffset()		{		if (document.documentElement && document.documentElement.scrollTop)			{			bottomOffset = document.body.offsetHeight - document.documentElement.scrollTop;			topOffset = document.documentElement.scrollTop;			}		else			{			bottomOffset = document.body.offsetHeight - document.body.scrollTop;			topOffset = document.body.scrollTop;			}		if (!isOPR)			{			bottomOffset = bottomOffset - document.documentElement.clientHeight;			bottomHeight = topOffset + document.documentElement.clientHeight;			}		else			{			bottomOffset = bottomOffset - window.innerHeight;			bottomHeight = topOffset + window.innerHeight;			}		}	function getAbsolutePos(el)		{		var r = { x: el.offsetLeft, y: el.offsetTop };		if (el.offsetParent)			{			var tmp = getAbsolutePos(el.offsetParent);			r.x += tmp.x;			r.y += tmp.y;			}		return r;		}	engineLoaded = true;