var prepareFormOk = false;
function prepareForm(thisForm)
{
	if ( !prepareFormOk )
	{
		prepareFormOk = true;
		Y.one(thisForm).setAttribute('method','post');
		Y.one(thisForm).all('input').each(function(el)
		{
			if ( el.getAttribute('type') == 'text' )
			{
				if ( el.get('value') != '' )
				{
					el.setAttribute('alt',el.get('value'));
					el.setAttribute('title',el.get('value'));
					el.on('focus',function()
					{
						if ( this.hasClass('error') )
						{
							this.removeClass('error');
						}
						if ( this.get('value') == this.getAttribute('alt') )
						{
							if ( this.getAttribute('name') == 'telefon' && this.get('value').length == 2 )
							{
								;
							}
							else
							{
								this.set('value','');
							}
						}
					});
					el.on('blur',function()
					{
						if ( this.hasClass('checked') )
						{
							if ( this.get('value') == '' )
							{
								this.set('value',this.getAttribute('alt'));
							}
							if ( this.get('value') == this.getAttribute('alt') )
							{
								this.addClass('error');
							}
						}
					});
				}
			}
		});
		Y.one(thisForm).all('textarea').each(function(el)
		{
			if ( el.get('value') != '' )
			{
				el.setAttribute('alt',el.get('value'));
				el.setAttribute('title',el.get('value'));
				el.on('focus',function()
				{
					if ( this.hasClass('error') )
					{
						this.removeClass('error');
					}
					if ( this.get('value') == this.getAttribute('alt') )
					{
						this.set('value','');
					}
				});
				el.on('blur',function()
				{
					if ( this.hasClass('checked') )
					{
						if ( this.get('value') == '' )
						{
							this.set('value',this.getAttribute('alt'));
						}
						if ( this.get('value') == this.getAttribute('alt') )
						{
							this.addClass('error');
						}
					}
				});
			}
		});
	}
}
function confirmForm(thisForm)
{
	if ( !prepareFormOk )
	{
		prepareForm(thisForm);
	}
	erlaubt = true;
	Y.one(thisForm).all('input').each(function(el)
	{
		if ( el.getAttribute('type') == 'text' )
		{
			if ( el.hasClass('checked') )
			{
				if ( el.get('value') == '' || el.get('value') == el.getAttribute('alt') )
				{
					erlaubt = false;
					el.addClass('error');
				}
			}
		}
	});
	Y.one(thisForm).all('textarea').each(function(el)
	{
		if ( el.hasClass('checked') )
		{
			if ( el.get('value') == '' || el.get('value') == el.getAttribute('alt') )
			{
				erlaubt = false;
				el.addClass('error');
			}
		}
	});
	if ( erlaubt )
	{
		Y.one(thisForm).all('input').each(function(el)
		{
			if ( el.getAttribute('type') == 'text' )
			{
				if ( el.getAttribute('alt') != '' && el.get('value') == el.getAttribute('alt') )
				{
					el.set('value','');
				}
			}
		});
		Y.one(thisForm).all('textarea').each(function(el)
		{
			if ( el.getAttribute('alt') != '' && el.get('value') == el.getAttribute('alt') )
			{
				el.set('value','');
			}
		});
	}
	return erlaubt;
}
var ajaxLoaderId;
var nodeBeforeAjaxLoaderId;
function insertAjaxLoader(node,containerHtml,contentHtml)
{
	if ( !empty(ajaxLoaderId) )
	{
		Y.one('#'+ajaxLoaderId).remove();
	}
	if ( empty(containerHtml) )
	{
		containerHtml = '<div style="position:relative;float:right;"></div>';
		ajaxLoaderHtml = '<img src="/ajax-loader.gif" style="position:absolute;margin-left:-45px;margin-top:25px;">';
	}
	else
	{
		ajaxLoaderHtml = '<img src="/ajax-loader.gif" align="absmiddle">';
	}
	if ( empty(contentHtml) )
	{
		contentHtml = '';
	}
	nodeAjaxLoader = Y.one('body').create(containerHtml);
	ajaxLoaderId = nodeAjaxLoader.generateID();
	nodeAjaxLoader.setContent(ajaxLoaderHtml+contentHtml);
	node.insert(nodeAjaxLoader,'append');
}
function removeAjaxLoader()
{
	if ( !empty(ajaxLoaderId) )
	{
		if ( Y.one('#'+ajaxLoaderId) != null )
		{
			Y.one('#'+ajaxLoaderId).remove();
		}
		ajaxLoaderId = '';	
	}
}
function layerShadow(id,fnStart,fnEnd,grosseK)
{
	node = Y.one('#'+id);
	if ( node.getStyle('display') != 'block' )
	{
		node.setStyle('visibility','hidden');
		node.show();
		width = node.get('scrollWidth');
		height = node.get('scrollHeight');
		node.hide();
		node.setStyle('visibility','visible');
		halbWidth = Math.ceil(width/2);
		halbHeight = Math.ceil(height/2);
		node.setStyle('position','fixed');
		node.setStyle('width',width);
		node.setStyle('height',height);
		node.setStyle('left','50%');
		node.setStyle('top','50%');
		node.setStyle('marginLeft',-halbWidth);
		node.setStyle('marginTop',-halbHeight);
		node.setStyle('zIndex','40001');
		nodeShadow = Y.Node.create('<div/>');
		nodeShadow.setStyle('backgroundColor','#999');
		nodeShadow.setStyle('position','fixed');
		nodeShadow.setStyle('width','100%');
		nodeShadow.setStyle('height','100%');
		nodeShadow.setStyle('top','0');
		nodeShadow.setStyle('left','0');
		nodeShadow.setStyle('display','none');
		nodeShadow.setStyle('zIndex','40000');
		nodeShadow.setStyle('opacity',0.7);
		nodeShadow.setStyle('display','block');
		closeFunc = function()
		{
			node.hide();
			this.hide(true);
			if ( !empty(fnEnd) )
			{
				fnEnd();
			}
		}
		nodeShadow.closeFunc = closeFunc;
		nodeShadow.on('click',closeFunc);
		node.insertBefore(nodeShadow,node);
		node.show(true);
		if ( !empty(fnStart) )
		{
			fnStart();
		}
	}
}
function empty (mixed_var) {
	// !No description available for empty. @php.js developers: Please update the function summary text file.
	// 
	// version: 1103.1210
	// discuss at: http://phpjs.org/functions/empty
	// +   original by: Philippe Baumann
	// +      input by: Onno Marsman
	// +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
	// +      input by: LH
	// +   improved by: Onno Marsman
	// +   improved by: Francesco
	// +   improved by: Marc Jansen
	// +   input by: Stoyan Kyosev (http://www.svest.org/)
	// *     example 1: empty(null);
	// *     returns 1: true
	// *     example 2: empty(undefined);
	// *     returns 2: true
	// *     example 3: empty([]);
	// *     returns 3: true
	// *     example 4: empty({});
	// *     returns 4: true
	// *     example 5: empty({'aFunc' : function () { alert('humpty'); } });
	// *     returns 5: false
	var key;
 
	if (mixed_var === "" || mixed_var === 0 || mixed_var === "0" || mixed_var === null || mixed_var === false || typeof mixed_var === 'undefined') {
		return true;
	}
 
	if (typeof mixed_var == 'object') {
		for (key in mixed_var) {
			return false;
		}
		return true;
	}
 
	return false;
}
// класс-обёртка, явным образом обычно не создаётся (см. ниже)
function CssClassesHandler(object) { this.object = object }

CssClassesHandler.prototype = {
    object      : null,
    
    // возвращает все классы элемента в виде массива строк
    all         : function() {
                    return this.object.className.split(/\s+/)
                },

    // назначен ли элементу данный класс?
    exists      : function(className) {
                    var classes = this.all()
                    for(var i = 0; i < classes.length; i++)
                        if(classes[i] == className) return true
                    return false
                },

    // назначает элементу класс
    add         : function(className) {
                    var classes = this.all()
                    for(var i = 0; i < classes.length; i++)
                        if(classes[i] == className) return
                    this.object.className = this.object.className + " " + className
                },

    // удаляет класс из назначенных элементу
    remove      : function(className) {
                    var classes = this.all()
                    var cn = ""
                    for(var i = 0; i < classes.length; i++)
                        if(classes[i] != className) cn = cn + " " + classes[i]
                    this.object.className = cn.substr(1)
                },

    // назначает/удаляет класс в зависимости от булевского параметра state
    set         : function(className, state) {
                    if(state)
                        this.add(className)
                    else
                        this.remove(className)
                },

    // назначает элементу класс, если он ещё не назначен, в противном случае удаляет
    flip        : function(className) {
                    if(this.exists(className))
                        this.remove(className)
                    else
                        this.add(className)
                }
}

// функция, создающая класс-обёртку для данного элемента
function CssClasses(object) {
    return new CssClassesHandler(object)
}

//Изменения класса объекта Добавчоный "_on" стиль должен быть прописан в css следующим образом "имя.текущего.стиля"+"_on" при повторном вызове функции (важно чтобы она вызывалась тем же объектом) возвращается старое значение имени класса
className = '';
className2 = '';
function change(obj) {
	id = obj.title;
	if (id!=0) change2(document.getElementById('kp_'+id));
	if (className.indexOf('_on') == -1) {className=CssClasses(obj).all();prefiks='_on';} else {prefiks='';}
	CssClasses(obj).remove(className); if (prefiks=='') {className_temp=className; className=''; for (i=0;i<className_temp.indexOf('_on');i++) className+=className_temp.charAt(i);}
	className += prefiks;
	//Удаляет Лишние запятые (глюк в Опере)
	regx = /\W+/;className=className.replace(regx,'');
	CssClasses(obj).add(className);
}
function change2(obj) {
	if (className2.indexOf('_on') == -1) {className2=CssClasses(obj).all();prefiks='_on';} else {prefiks='';}
	CssClasses(obj).remove(className2); if (prefiks=='') {className_temp=className2; className2=''; for (i=0;i<className_temp.indexOf('_on');i++) className2+=className_temp.charAt(i);}
	className2 += prefiks;
	//Удаляет Лишние запятые (глюк в Опере)
	regx = /\W+/;className2=className2.replace(regx,'');
	CssClasses(obj).add(className2);
}
//Функция активизирует переход по ссылке. Id ссылки(тега А) должен выглядеть "a_"+"id объекта который вызвал эту функцию"
function gou(obj) {
	document.getElementById('a_'+obj.id).click()
}

function cat(cat_id) {
	val = document.getElementById('div_'+cat_id).style.display;
	if (val=='none') {document.getElementById('div_'+cat_id).style.display="block"; document.getElementById('img_'+cat_id).src="images/mn.jpg"; }
	else if (val=='block') {document.getElementById('div_'+cat_id).style.display="none"; document.getElementById('img_'+cat_id).src="images/pl.jpg"; }
	}
function catimg(cat_id) {
	val = document.getElementById('div_'+cat_id).style.display;
	if (val=='block') { document.getElementById('img_'+cat_id).src="images/mn.jpg"; }
	else if (val=='none') {document.getElementById('img_'+cat_id).src="images/pl.jpg"; }
	}

	
var decor;
function doba() {

	//decor = document.getElementById('dobavit').style.color;
	//if (decor=='') {document.getElementById('dobavit').style.color='#FF001E'; return;}
	cvet1 = '#970505';
	cvet2 = '#CE1212';
	if (decor!=cvet2) {document.getElementById('dobavit').style.color=cvet2; document.getElementById('dobavit2').style.color=cvet2; decor=cvet2;} else {document.getElementById('dobavit').style.color=cvet1; document.getElementById('dobavit2').style.color=cvet1; decor=cvet1;}
	}

var a_ch = new Array();
var interval;
function ch() {
	var a_checked = new Array(); var price_all = 0; var kol_all = 0; enabl=false; pid="";
	for (i=0;i<a_ch.length;i++) if(document.getElementById('check_'+a_ch[i]).checked==true) a_checked.push(a_ch[i]); 
	for (i=0;i<a_checked.length;i++) { if (i==0) enabl=true;
		price_one = document.getElementById('price_'+a_checked[i]).value;
		if (parseFloat(price_one)==NaN) enabl=false;
		kol = document.getElementById('kol_'+a_checked[i]).value;
		if (parseFloat(kol)==NaN) enabl=false; 
		if (kol=="") enabl=false;
		switch (i) {case 0: pid += a_checked[i]+","+parseFloat(kol); break; default: pid += ";"+a_checked[i]+","+parseFloat(kol); }
		price_all += parseFloat(price_one)*parseFloat(kol);
		if (parseFloat(price_all)==NaN) enabl=false;
		kol_all += parseFloat(kol);
		if (parseFloat(kol_all)==NaN) enabl=false;
		if (parseFloat(kol)==NaN) enabl=false;
		}
	if (enabl) {
		document.getElementById('ipid').value=pid;
		document.getElementById('r').innerHTML           = "Выбрано товаров: <b>"+kol_all+"</b>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Общая стоимость: <b>"+parseFloat(price_all.toPrecision(4))+"&nbsp;&euro;</b>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='javascript:document.all.form0.submit()' id='dobavit'><img align=absmiddle src='images/vkorzinu.jpg'></a>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"; 
				document.getElementById('r2').innerHTML = "Выбрано товаров: <b>"+kol_all+"</b>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Общая стоимость: <b>"+parseFloat(price_all.toPrecision(4))+"&nbsp;&euro;</b>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='javascript:document.all.form0.submit()' id='dobavit2'><img align=absmiddle src='images/vkorzinu.jpg'></a>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"; 

		if(!interval) interval = window.setInterval(doba,20);
		
		} else {
		
		document.getElementById('r').innerHTML="Выбрано товаров: <b>0</b>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='javascript:document.all.form0.submit()' id='dobavit'></a>Общая стоимость: <b>0&nbsp;&euro;</b>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"; 
		document.getElementById('r2').innerHTML="Выбрано товаров: <b>0</b>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='javascript:document.all.form0.submit()' id='dobavit2'></a>Общая стоимость: <b>0&nbsp;&euro;</b>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
		}
	}
	
function addBookmark(url, title)
{
  if (!url) url = location.href;
  if (!title) title = document.title;
  
  //Gecko
  if ((typeof window.sidebar == "object") && (typeof window.sidebar.addPanel == "function")) window.sidebar.addPanel (title, url, "");
  //IE4+
  else if (typeof window.external == "object") window.external.AddFavorite(url, title);
  //Opera7+
  else if (window.opera && document.createElement)
  {
    var a = document.createElement('A');
    if (!a) return false; //IF Opera 6
    a.setAttribute('rel','sidebar');
    a.setAttribute('href',url);
    a.setAttribute('title',title);
    a.click();
  }
  else return false;
  
  return true;
}

function form_razdel(catid,n) {
	document.getElementById('razdel_'+catid).name = "razdel_"+n;
	document.getElementById('form_'+catid).submit();
	}
	
function uhlop4ik(id) {
	if (document.getElementById('uhlop_'+id).value!='on') {
		document.getElementById('uhlop_table_'+id).style.display='none';
		document.getElementById('uhlop_'+id).value='on';
		} else { 
		document.getElementById('uhlop_table_'+id).style.display='block';
		document.getElementById('uhlop_'+id).value='off';
		}
	}
	
function preventSelection(element){
  var preventSelection = false;

  function addHandler(element, event, handler){
    if (element.attachEvent) 
      element.attachEvent('on' + event, handler);
    else 
      if (element.addEventListener) 
        element.addEventListener(event, handler, false);
  }
  function removeSelection(){
    if (window.getSelection) { window.getSelection().removeAllRanges(); }
    else if (document.selection && document.selection.clear)
      document.selection.clear();
  }
  function killCtrlA(event){
    var event = event || window.event;
    var sender = event.target || event.srcElement;

    if (sender.tagName.match(/INPUT|TEXTAREA/i))
      return;

    var key = event.keyCode || event.which;
    if (event.ctrlKey && key == 'A'.charCodeAt(0))  // 'A'.charCodeAt(0) можно заменить на 65
    {
      removeSelection();

      if (event.preventDefault) 
        event.preventDefault();
      else
        event.returnValue = false;
    }
  }

  // не даем выделять текст мышкой
  addHandler(element, 'mousemove', function(){
    if(preventSelection)
      removeSelection();
  });
  addHandler(element, 'mousedown', function(event){
    var event = event || window.event;
    var sender = event.target || event.srcElement;
    preventSelection = !sender.tagName.match(/INPUT|TEXTAREA/i);
  });

  // борем dblclick
  // если вешать функцию не на событие dblclick, можно избежать
  // временное выделение текста в некоторых браузерах
  addHandler(element, 'mouseup', function(){
    if (preventSelection)
      removeSelection();
    preventSelection = false;
  });

  // борем ctrl+A
  // скорей всего это и не надо, к тому же есть подозрение
  // что в случае все же такой необходимости функцию нужно 
  // вешать один раз и на document, а не на элемент
  addHandler(element, 'keydown', killCtrlA);
  addHandler(element, 'keyup', killCtrlA);
}
