function rur(price){
	fprice = '';

	price = ' ' + price.toString();

	if (price.length > 4)
		for (i = 0; i < price.length; i++) {
			if ((price.length - i) % 3 == 0 && i > 0) fprice += ' ';
			fprice += price.charAt(i);
		}
	else fprice = price;

	fprice = fprice.replace(/^([\s]+)/, '');

	return fprice;
}

function ie6() {
}

function sliderBasic(slider, stepPx) {
	var width = $('.target:visible', slider).width() - $('.cutter', slider).width() + stepPx;
	function step(left) {
		if (left <= 0) {
			$('.controll .r', slider).show();
			$('.controll .l', slider).show();
    		if (Math.abs(left) < $('.cutter', slider).width())
    			$('.target-wrapper', slider).css('left', left);
    		else
				$('.controll .r', slider).hide();
     } else {
			$('.controll .l', slider).hide();
     }
	}

	if (! stepPx) {
		stepPx = 130;
	}

	$('*', slider).unbind();

	$('.target-wrapper', slider).css('left', '0px');
	var target = $('.target-wrapper', slider);

	//$(target).each(function() {
	//	$(this).width(($('div.tissue', this).size() + 1) * 130);
	//});

	if ($('.target.acv', target).width() < $('.cutter', slider).width()) {
		$('.controll', slider).hide();
	} else {

		$('.controll', slider).show();
		$('.controll .l', slider).hide();

		$('.controll .l', slider).click(function() {
      	step(parseInt(target.css('left')) + stepPx)
		});

		$('.controll .r', slider).click(function() {
      	step(parseInt(target.css('left')) - stepPx)
		});
 	}
}

function sliderWheel(slider, stepPx) {

	function step(left) {
		var width = $('.target:visible', slider).width() - $('.cutter', slider).width() + stepPx;
		if (left <= 0) {
			$('.controll .r', slider).show();
			$('.controll .l', slider).show();
    		if (Math.abs(left) < width)
    			$('.target-wrapper', slider).css('left', left);
    		else
					$('.controll .r', slider).hide();
     } else {
			$('.controll .l', slider).hide();
     }
	}

	if (! stepPx) {
		stepPx = 130;
	}

	var target = $('.target-wrapper', slider);

	sliderBasic(slider, stepPx);

  $(target).bind('mousewheel', function(event, delta) {
  	step(parseInt($(this).css('left')) + (delta * stepPx))
  	return false;
	})
}

function sliderRoll(parent) {
	var steps = new Array();
	var step;

	steps[0] = 20;
	step = steps[0];

	$('.roll-wrapper .good').each(function(i) {

		steps[i + 1] = steps[i] - $(this).width() - 60;
		$(this).addClass('i-' + i);
	});

	$('.roll-wrapper').draggable({
		axis: 'x',
		start: function() {
			$(this).stop();
		},
		stop: function() {
			var left = parseInt($(this).css('left'));

			step = step - left - 20;

			if (left > 0) {
				i = 0;
			} else
				for (i = 0; i < steps.length; i++) {
					if (left <= steps[i] && left >= steps[i + 1]) {
						if (step > 0) i++;
						break;
					}
				}

			$('.big' , this).removeClass('big').addClass('small');
			$('.i-' + i, this).removeClass('small').addClass('big');

			$('.roll-wrapper .good').each(function(j) {
				steps[j + 1] = steps[j] - $(this).width() - 60;
			});

			if (steps[i])
				$(this).animate({"left": steps[i]}, 1500, function() {
				});

			step = left;
		}
	});
}

function basic() {
	$('#login-popup').hide();
	$('#to-login').click(function() {
		$('#login-popup').toggle();
		$('#login-popup input:first').focus();
		return false;
	});

	$('form').each(function() {
		$(this).validate({
			submitHandler: function(form) {
				form.submit();
			}
		});
	});

	if ($('#catalogue-home').size()) {

		$('#catalogue-home h2 .java').click(function() {
			$('#catalogue-home .acv').removeClass('acv').removeClass('r-star');
			$(this).addClass('acv').addClass('r-star');
		});

		$('#to-modules').click(function() {
			$('#modules').show();
			$('#others').hide();
		});

		$('#to-others').click(function() {
			$('#modules').hide();
			$('#others').show();
		});
	}

	if ($('#roll').size()) {
		sliderRoll($('#roll'));
	}


	$('input.toggle-hint').each(function() {
		$(this).data('title', $(this).val());
	}).focus(function () {
		if ( $(this).val() == $(this).data('title'))
			$(this).val('');
	}).blur(function () {
		if ( $(this).val() == '')
			$(this).val($(this).data('title'));
	});

	$('#catalogue-left').each(function() {
		var menu = $(this);

		//$('li:has(ul)', menu).addClass('parent');
		//$('li.parent .parent', menu).removeClass('parent').addClass('parent-2');
		//$('li.parent a:not(li.parent ul a), li.parent span:not(li.parent ul span)', menu).wrap('<span class="r-star decor" />').before('<b class="tl"></b><b class="tr"></b><b class="bl"></b><b class="br"></b>');

	});
}

function card(parent) {

	if ($.browser.msie && $.browser.version == 6) {
	/*
		var leftHeight = 0;
		var rightHeight = 0;

		if ($('.left', parent).size())
			leftHeight = $('.left', parent).height();

		rightHeight = $('.right', parent).height();

		if (leftHeight > rightHeight)
			$('.right', parent).height(leftHeight);
		else
			$('.left', parent).height(rightHeight);*/
	}

	function imgSizeCheck() {
		$('#wp-photo .target img').load(function() {
			var bodyWidth = $('body').width() - 420;
			if ($(this).width() > bodyWidth) {
				$(this).css('width', parseInt(bodyWidth) + 'px');
			}
		});
	}

	function photos(parent) {

		$('ul a', parent).unbind('click').click(function() {
			$('li', parent).removeClass('acv');
			$(this).parent().addClass('acv');

			$('.big', parent).attr('src', $(this).attr('href'));
			$('#photo-big').attr('href', $(this).attr('rel'));

			return false;
		});

		$('#photo-big').click(function() {
			if (! $('#wp-photo ul').size()) {

				if ($('ul',parent).size())
					$('#wp-photo .wrapper').append('<ul>' + $('ul',parent).html() + '</ul>');

				$('#wp-photo ul a, #wp-photo ul img').click(function() {

					var target = $(this);

					if ($(this).is('img')) {
						target = $(this).parent();
					}

					$('#wp-photo li').removeClass('acv');
					$(target).parent().addClass('acv');

					$('#wp-photo .target img').attr('src', target.attr('rel'));

					$('#wp-photo img').load(function() {

						imgSizeCheck();
						$('#wp-photo').alignToScreen().show();

					});

					return false;
				});
			}

			$('#wp-photo .target').html('').append('<img src="' + $(this).attr('href') + '">');

			$('#wp-photo img').load(function() {

				imgSizeCheck();
				$('#wp-photo').alignToScreen().show();

			});

			return false;
		});
	}

	function flyingPrice(target) {

		if (! ($.browser.msie && $.browser.version == 6)) {
			$(window).bind('scroll', function() {
				var top = document.documentElement.scrollTop;
				var height = 150 + $('.general').height();

				if (top > height && ! target.hasClass('flying')) {
					target.addClass('flying');

					if ($.browser.msie && $.browser.version == 6) {
						//$('#in-basket').css('absolute');
						//$('#in-basket').css('top', parseInt(top + 10) + 'px');
					}

				} else
				if (top <= height && target.hasClass('flying')) {
					target.attr('style', '');
					target.removeClass('flying');
				}
			});
		}

	}

	function modules(parent) {

		function composition(parent) {

			//добавляет нужные элементы в композицию с листа вида id1:count;id2:count;id3:count
			function parseElement(list) {
				$('.element').removeClass('acv').addClass('de');
				var ids = explode(';', list);
				for (i = 0; i <= ids.length; i++) {
					var id = explode(':', ids[i]);
					if (id)
						$('#element_' + id[0]).addClass('acv').removeClass('de');
				}
			}

			//если у нас есть композиции, то
			if ($(parent).size()) {

				//берем лист с элементами
				var list = $('.general:visible .dv-compositions input').val();
				//парсим лист
				parseElement(list);

				//если пользователь кликнул по композиции (картинки)
				$('a', parent).unbind('click').click(function() {

					var id = $(this).attr('rel'); //берем id композиции
					var href = $(this).attr('href'); //берем урл на композицию

					//если такая композиция еще не загружена (ее нет в документе)
					if (! $('#composition_' + id).size()) {

						var last = $('.general:last').hide();
						var height = $(last).height();

						$('#ajax-progress').show().ajaxProgress().height(height);

						//грузим ее аяксом
						$.get(href, {}, function(data) {

							$(last).after($('.general', data));

							$('.general').hide();
							$('#composition_' + id).show();
							$('#ajax-progress').hide();

							//запускаем карту
							card($('#content'));
							flyingPrice($('#composition_' + id + ' .in-basket'));
						});

					} else { //иначе просто показываем ее и выделяем нужные элементы

						$('.general:visible').hide();
						$('#composition_' + id).show();
						parseElement($('.general:visible .dv-compositions input').val());
					}

					//добавляем рамочку на активную композицию и убираем с неактивных

					$('.acv', parent).removeClass('acv');
					$(this).parents('li').addClass('acv');

					return false;
				});

			}

		}

		function elements(parent) {

			function calc() {

				var ids = '';
				var arts = '';
				var price = 0;

				var countElement = $('.acv', parent).size() - 1;

				$('.acv', parent).each(function(i) {

					var id = $('.java', this).attr('rel');
					var art = $('strong', this).text();
					var count = parseInt($('select', this).val()) + 1;

					ids += id + ':' + count + ';'
					arts += ((i > 0) ? (i == countElement ? ' и ' : ', ') : '') + art;
					price += parseInt($('.price', this).text().replace(' ', '')) * count;

				});

				$('.general:visible .dv-compositions input').val(ids);
				$('.general:visible .composition').text(arts);
				$('.general:visible .price_target').text(rur(price));

			}

			$('.element a', parent).unbind('click').click(function() {

				var popup = $('#wp-element');
				var parent = $(this).parents('.element');

				if (parent.hasClass('acv')) {
					$('.tools .add', popup).hide();
					$('.tools .del', popup).show();
					$('.count', popup).css('visibility', 'visible');
				} else {
					$('.tools .add', popup).show();
					$('.tools .del', popup).hide();
					$('.count', popup).css('visibility', 'hidden');

				}

				var element_id = $('.java', parent).attr('rel');

				$(this).val($('#element_' + element_id + ' select').val());

				$('h1', popup).text($('h4', parent).text() + ' ' + $('strong', parent).text());

				$('.target-photo', popup).html('<img src="' + $(this).attr('href') + '">');

				$('.tools .add', popup).unbind('click').click(function() {
					$('#element_' + element_id).addClass('acv');
					$(this).hide();
					$('.count', popup).css('visibility', 'visible');
					$('.tools .del', popup).show();

					calc();
				});

				$('.tools .del', popup).unbind('click').click(function() {
					$('#element_' + element_id).removeClass('acv');
					$(this).hide();
					$('.count', popup).css('visibility', 'hidden');
					$('.tools .add', popup).show();

					calc();
				});

				$('select', popup).unbind('change').click(function() {
					$('#element_' + element_id + ' select').val($(this).val());
					calc();
				});


				$('img', popup).load(function() {

					imgSizeCheck();
					popup.alignToScreen().show();

				});

				//фикс бага с перекрытием селекторов
				if ($.browser.msie && $.browser.version == 6) {
					$(popup).bgiframe();
				}

				return false;
			});

			$('.element .java', parent).unbind('click').click(function() {

				if (! $(this).hasClass('count')) {
					$(this).parents('.element').toggleClass('acv').toggleClass('de');

					calc();

					return false;
				}
			}).unbind('mouseenter').mouseenter(function() {
				$('.java', this).addClass('hover');
			}).unbind('mouseleave').mouseleave(function() {
				$('.java', this).removeClass('hover');
			});

			$('.element select', parent).unbind('change').change(function() {

				calc();
				return false;
			});

			calc();

		}

		if ($(parent).size()) {

			sliderBasic($('.slider', parent), 185);

			composition($('#compositions'));
			elements('.elements', parent);

		}
	}

	function sofa(parent) {

		var categories = new Array();
		var currentCategory = null;

		if ($('#h-tissue-category').val() && ($('#h-tissue-1').val() || $('#h-tissue-2').val())) {
			currentCategory = $('#tissue-categories ul.acv li.main-ct');
			categories[1] = $('#h-tissue-category-1').val();
			categories[2] = $('#h-tissue-category-2').val();
		}

		if ($('#h-tissue-category-1').val()) {
			var id = $('#h-tissue-category-1').val();
			categories[1] = $('#tissue-categories .o-' + id);
		}

		if ($('#h-tissue-category-2').val()) {
			var id = $('#h-tissue-category-2').val();
			categories[2] = $('#tissue-categories .o-' + id);
		}

		function setCategory(category, i) {

			var j = $('.a', category).attr('rel');

			if (i || categories.length > 0) {

				if (categories.length == 0) {

					categories[1] = category;
					categories[2] = category;

				} else

					categories[i] = category;

				var price_c1 = parseInt($('.target', categories[1]).text().replace(' ', ''));
				var price_c2 = parseInt($('.target', categories[2]).text().replace(' ', ''));
				var price_cc = parseInt($('#tissue-categories  .main-ct .target').text().replace(' ', ''));
				var price = 0;


				if (price_c1 <= price_c2) {

					var b = $('#h-price').val() - price_cc;
					price = price_c2 + b;

					category = categories[2];

					$('#tissue-categories .main-ct').removeClass('main-ct');
				} else {

					var b = $('#h-price').val() - price_cc;
					price = price_c1 + b;


					category = categories[1];
				}

				$('#h-price').val(price);
				$('#in-tissues-basket .price_target').html(rur(price));
			}


			$('#h-tissue-category').val(j);

			var j = $('.a', category).attr('rel');

			$('#tissue-categories ul .main-ct').removeClass('main-ct');
			$('#tissue-categories ul .o-' + j).addClass('main-ct');

			$('#tissue-title .target').text(parseInt(j)+1);

			$('#sizes tr').each(function(i) {
				$('td:last .target', this).text(
					$('#tissue-categories ul:eq(' + parseInt(i - 1) + ') li:eq(' + j + ') .price .target').text()
				);
			});
		}

		function setTissue(id, i) {
			function move(id, i) {
				var roaming = $('#color_' + id);
				var target = $('#selected-tissues .tissue-' + i);

				if ($(roaming).size()) {

					$('#clone-tissue-' + id).remove();
					$('.tissue', target).remove();

					$(target).append(roaming.clone().attr('id', 'clone-tissue-' + id));

					var clone = $('#clone-tissue-' + id);

					clone.html('<b class="tl"></b><b class="tr"></b><b class="bl"></b><b class="br"></b>' + clone.html());

					clone.addClass('acv');
					bindLoadColor(clone);
				}
			}

			if ($('#color_' + id).size() || $('#selected-tissues .tissue-' + i + ' .tissue').size()) {

				$('#colors .i'+i).removeClass('acv').removeClass('i'+i);

				var j = 3 - i;

				if (id == $('#h-tissue-' + j).val()) {
					var p = $('#h-tissue-' + i).val();

					$('#h-tissue-' + j).val(p);
					move(p, j);
					$('#color_' + p).addClass('acv').addClass('i'+j);
				}

				$('#h-tissue-' + i).val(id);

				move(id, i);

				$('#color_' + id).addClass('acv').addClass('i'+i);

				calcPrice();

				return true;

			} else {
				$('#h-tissue-' + i).val('');

				return false;
			}
		}

		function bindLoadColor(color) {
			$('.a', color).unbind().click(function() {
				$('#wp-photo .wrapper').ajaxProgress().alignToScreen();
				$('#wp-photo').show();

				var tissue_id = $(this).attr('rel');

				$.get($(this).attr('href'), function(data) {
					$('#wp-photo .wrapper').html(data);
					$('#wp-photo').alignToScreen();

					if (tissue_id == $('#h-tissue-1').val())
						$('#tissue-card .t-1').parent().addClass('acv');

					if (tissue_id == $('#h-tissue-2').val())
						$('#tissue-card .t-2').parent().addClass('acv');

					$('#tissue-card .java').click(function() {

						var i = $(this).attr('rel');

						setCategory($('#tissue-categories ul.acv li.acv'), i);
						setTissue(tissue_id, i);

						$('#tissue-card .tools .acv').removeClass('acv');
						$(this).parent().addClass('acv');
					});
				})

				return false;
			});
		}

		function ajaxSetParams(url, callback) {

			var good_id = $('#h-good-id').val();
			var params = $('#h-params').val();
			var sid = $('#h-sid').val();

			if (! url) {
				url = document.URL;
			}

			$.post('/set_params.php?sid=' + sid , {'params' : params, 'good_id' : good_id, 'ref' : url}, function() {

				if (callback) {
					callback();
				}

				return true;
			});

		}

		function setParams() {
			var params = $('#h-params').val(params);;

			var size = $('#sizes .acv .java').attr('rel');
			if (size)
				params = params.replace(/size=([^&]*)/, 'size=' + size);

			$('#groups .group').each(function() {
				var group = $('.acv .java', this).attr('rel');
				if (group) {
					params = params.replace(/group([^=]+)=([^&]*)&/, '');
					params += group + '&';
				}
			});

			var c = parseInt($('#tissue-categories ul.acv li.main-ct .java').attr('rel'));
			if (c) {
				params = params.replace(/c=([^&]*)/, 'c=' + parseInt(c + 1));
			}

			var t1 = $('#h-tissue-1').val();
			if (t1) {
				params = params.replace(/t1=([^&]*)/, '');
				params += 't1=' + t1 + '&';
			}

			var t2 = $('#h-tissue-2').val();
			if (t2){
				params = params.replace(/t2=([^&]*)/, '');
				params += 't2=' + t2 + '&';
			}

			$('#h-params').val(params);

			ajaxSetParams();

		}

		function calcPrice() {
			var sizesPrice = parseInt($('#sizes .acv .price .target').text().replace(' ', ''));
			var groupsPrice = 0;

			$('#groups .group').each(function() {
				$('.price .target', this).each(function() {
					if ($(this).attr('percent') > 0) {

						var percent = $(this).attr('percent');
						var price = Math.ceil(sizesPrice * percent/100);

						$(this).text(rur(price));
					}
				});

				groupsPrice += parseInt($('.acv .price .target', this).text().replace(' ', ''));
			});

			var price = sizesPrice + groupsPrice;

			$('#in-basket .price_target').text(rur(price));

			setParams();
		}

		function tissuesCatalogue(parent){

			if ($(parent).size()) {
				$(window).bind('scroll', function() {
					var top = document.documentElement.scrollTop;
					if (top > 160) {
						$('#tissue-basket').addClass('flying-tissue-basket');
						//$('#in-basket').css('top', parseInt(top + 10) + 'px');
						//$('#in-basket').stop().animate({top : parseInt(top + 10) + 'px'}, 10);
					} else {
						$('#tissue-basket').attr('style', '');
						$('#tissue-basket').removeClass('flying-tissue-basket');
					}
				});
			}

			$('.tissue', parent).each(function() {
				bindLoadColor(this);
			});

			$('#selected-tissues .tissue').each(function() {
				bindLoadColor(this);
			});

			$('#tissue-catalogue .swicher').click(function() {
				$(this).toggleClass('swicher-show');
				var parent = $(this).parents('.tissue-collections');
				if (! $(this).hasClass('swicher-show'))
					$('.tissues',parent).show();
				else
					$('.tissues',parent).hide();
			});

		}

		if (parent.size()) {

			tissuesCatalogue($('#tissue-catalogue'));

			$('#sizes .java').click(function() {
				$('#tissue-categories ul.acv').removeClass('acv');
				$('#category' + $(this).attr('rel')).addClass('acv');
			});

	    $('.options .java').click(function() {
	    	$(this).parents('.option').find('.acv').removeClass('acv');
	    	$(this).parents('.parent').addClass('acv');

				calcPrice();

	    	return false;
			});

			$('#tissue-categories a').click(function() {
				var url = $(this).attr('href');
				ajaxSetParams(url, function() {
					window.location = url;
				});
				return false;
			});
		}
	}

	function blank(parent) {

		function setParams() {
			var params = '';

			params += 'size=' + $('#sizes .acv .java').attr('rel') + '&';

			$('#groups .group').each(function() {
				var group = $('.acv .java', this).attr('rel');
				if (group)
					params += group + '&';
			});

			$('#h-params').val(params);
		}

		function calcPrice() {
			var sizesPrice = parseInt($('#sizes .acv .price .target').text().replace(' ', ''));

			var groupsPrice = 0;

			$('#groups .group').each(function() {
				$('.price .target', this).each(function() {
					if ($(this).attr('percent') > 0) {

						var percent = $(this).attr('percent');
						var price = Math.ceil(sizesPrice * percent/100);

						$(this).text(rur(price));
					}
				});

				groupsPrice += parseInt($('.acv .price .target', this).text().replace(' ', ''));
			});

			var price = sizesPrice + groupsPrice;

			$('#in-basket .price_target').text(rur(price));

			setParams();
		}

		if ($(parent).size()) {

	    $('.options .java').click(function() {
	    	$(this).parents('.option').find('.acv').removeClass('acv');
	    	$(this).parents('.parent').addClass('acv');

				calcPrice();

	    	return false;
			});

		}
	}

	if ($(parent).size()) {
		photos($('.photos', parent));
		modules($('#modules'))
		sofa($('#sofa'));
		blank($('#blank'));

		flyingPrice($('#in-basket'));
	}
}

$(function() {
	basic();
	card($('#content'));
	ie6();

	$('.wp div.close').click(function() {
		$(this).parent().hide();
	});
});