﻿var submenus = new Array();
var subsubmenus = new Array();

function PushSubmenu(id) {
	window.submenus.push(id);
}
function ShowSubmenu(id) {
	var element = document.getElementById('submenu_'+id);
	if (element) element.style.display = 'block';
}
function HideAllSubmenu() {
	HideAllSubsubmenu();
	for(var i=0; i<submenus.length; i++) {
		var element = document.getElementById('submenu_'+submenus[i]);
		if (element) element.style.display = 'none';
	}
}
function PushSubsubmenu(id) {
	window.subsubmenus.push(id);
}
function ShowSubsubmenu(id) {
	var element = document.getElementById('subsubmenu_'+id);
	if (element) element.style.display = 'block';
}
function HideAllSubsubmenu() {
	//alert(subsubmenus.length);
	//alert(subsubmenus[1]);
	for(var i=0; i<subsubmenus.length; i++) {
		var element = document.getElementById('subsubmenu_'+subsubmenus[i]);
		if (element) element.style.display = 'none';
	}
}



var countCalculator = null;

CountCalculator = function(s) {
	this.init(s);
}

CountCalculator.prototype = {
	s: null,
	curVal: null,
	
	init: function(s) {
		this.s = s;
		this.curVal = s.find('.val').val();
		var that = this;
		s.find('.dec').click(function(){
			that.dec();
		});
		s.find('.inc').click(function(){
			that.inc();
		});
		s.find('.val').change(function(){
			that.fire();
		});
		this.fire();
	},
	
	dec: function() {
		this.curVal--;
		this.fire();
	},
	
	inc: function() {
		this.curVal++;
		this.fire();
	},
	
	fire: function() {
		this.s.find('.val').val(this.curVal);
		if (this.curVal==1) {
			this.s.find('.dec').attr('disabled', 'disabled');
		} else {
			this.s.find('.dec').removeAttr('disabled');
		}
		fireCalculator();
	},
	
	getVal: function() {
		return this.curVal;
	}
}


function validateAddFaq() {
	$('#form_addfaqquestion').validate({
		'rules': {
			title: {required: true},
			nick: {required: true},
			email: {required: true}
		}, 
		'messages': {
			title: '',
			nick: '',
			email: ''
		}, 
		'success': function(label) {
			label.html("&nbsp;").addClass("checked");
		}
	});
}

function initLinks() {
	if (location.hash.length>0) {
		var urlAnchor = location.hash;
		if ($(urlAnchor).length>0) {
			$(urlAnchor).trigger('click');
		}
	}
}


var userLogined = false;

function saveFormData(form) {
	if(!form) {
		return false;
	}
	
	if(!form.id) {
		alert("You should set id attribute in form tag to save or restore it.");
		return false;
	}

	var cookieData = new Array;	
	$(form).find('input, textarea, select').each(function(){
		input = $(this);
		
		switch (input.attr('type')) {
			case "text":
			case "textarea": {
				cookieData.push({type: 'T', name: input.attr('name'), value: input.val()});
				break;
			}
			case "checkbox":
			case "radio": {
				cookieData.push({type: 'C', name: input.attr('name'), value: (input.attr('checked') ? 1 : 0)});
				break;
			}
			case "select-multiple":
			case "select-one": {
				cookieData.push({type: 'S', name: input.attr('name'), value: input.attr('selectedIndex')});
				break;
			}
		}
	});
	
	var i, str = "";
	for(var i = 0; i < cookieData.length; i++) {
		var elementData = cookieData[i];
		var value = new String(elementData.value);
		var inputName = new String(elementData.name);
		
		if(!inputName || !value) {
			continue;
		}
		
		str += elementData.type + "," + inputName.length + "," + inputName + "," + value.length + "," + value;
	}
	document.cookie="frm" + form.id + "=" + escape(str.replace(/([|\\])/g, "\\$1"));
	return true;
}

function restoreFormData(form) {
	if(!form) {
		return false;
	}
	
	if(!form.id) {
		alert("You should set id attribute in form tag to save or restore it.");
		return false;
	}
	var cookieName = "frm" + form.id + "=";
	
	var cookie = new String(unescape(document.cookie));
	var posStart, posEnd;
	if((posStart = cookie.indexOf(cookieName)) == -1) {
		return false;
	}
	
	if((posEnd = cookie.indexOf(";", posStart)) == -1) {
		posEnd = cookie.length;
	}
	
	var data = cookie.substring(posStart + cookieName.length, posEnd);
	var pos = 0, cookieData = new Array;

	while(pos < data.length) {
		var inputName;
		var type = data.substring(pos, pos + 1);
		pos += 2;
		
		var length = parseInt(data.substring(pos, data.indexOf(",", pos)));
		pos = data.indexOf(",", pos) + 1;
		var inputName = data.substring(pos, pos + length);
		pos += length + 1;

		var length = parseInt(data.substring(pos, data.indexOf(",", pos)));
		if(length == 0) {
			pos += 2;
			continue;
		} else {
			pos = data.indexOf(",", pos) + 1;
		}
		
		var value = data.substring(pos, pos + length);
		pos += length;
		
		cookieData.push({type: type, name: inputName, value: value});
	}
	
	for(var i = 0; i < cookieData.length; i++) {
		var elementData = cookieData[i];
		switch(elementData.type) {
			case "T": {
				form.elements[elementData.name].value = elementData.value;
				break;
			}
			
			case "C": {
				form.elements[elementData.name].checked = elementData.value ? true : false;
				break;
			}
			
			case "S": {
				form.elements[elementData.name].selectedIndex = elementData.value;
				break;
			}
		}
	}
}


DoorCalculator = {
	doorPrice: 0,
	doorDiscount: 0,
	
	getBenfitsCost: function(){
		var result = 0;
		$('table.object .c2 .benefits tr').each(function(){
			var cb = $(this).find('input:checkbox');
			if (cb.attr('checked')) {
				result+=parseFloat($(this).find('input[name=cost]').val());
			}
		});
		return result;
	},

	getSizesVal: function() {
		var result = 0;
		$('table.object .c2 .sizes li').each(function(){
			var b = $(this).find('input:radio');
			if (b.attr('checked')) {
				if ($(this).find('input[name=cost]').length>0 && $(this).find('input[name=cost]').val().length>0) {
				 	result+=parseFloat($(this).find('input[name=cost]').val());
				}
			}
		});
		return result;
	},

	getItemsCost: function() {
		var result = 0;
		$('table.object .c2 table.integration .cc2').each(function(){
			if ($(this).find('input:hidden').length>0) {
				if ($(this).find('input[name=cost]').length>0) {
					result+=parseFloat($(this).find('input[name=cost]').val());
				}
			}
		});
		return result;
	},
	
	getSum: function() {
		return parseFloat(this.getTotalSum())+parseFloat(this.getDiscountPrice());
	},
	
	getDiscountPrice: function(){
		return this.doorPrice-this.doorDiscount;
	},
	
	getTotalSum: function() {
		var result = parseFloat(this.doorDiscount);
		result+=parseFloat(this.getBenfitsCost());
		result+=parseFloat(this.getSizesVal());
		result+=parseFloat(this.getItemsCost());
		return result;
	}
}

Calculator = {
	setSum: function(price) {
		price = Math.round(price*100)/100;
		if (price>0) {
			$('table.object .c2 .summary').show();
		} else {
			$('table.object .c2 .summary').hide();
		}
		$('.summary .l1 span').html(price);
	},
	
	setDiscountPrice: function(price) {
		price = Math.round(price*100)/100;
		if (price>0) {
			$('.summary .l1').show();
			$('.summary .l2').show()
							.find('span')
								.html(price);
		} else {
			$('.summary .l2').hide();
			$('.summary .l1').hide();
		}
	},
	
	setTotalSum: function(price, total) {
		price = Math.round(price*100)/100;
		total = Math.round(total*100)/100;
		$('.summary .l3 span.total').html(price);
		$('.summary .l3 span.allTotal').html(total);
	}
}

fireCalculator = function() {
	Calculator.setSum(DoorCalculator.getSum());
	Calculator.setDiscountPrice(DoorCalculator.getDiscountPrice());
	totalSum = DoorCalculator.getTotalSum();
	count = 1;
	if (countCalculator) {
		count = countCalculator.getVal();
	}
	Calculator.setTotalSum(totalSum, count*totalSum);
}

addCalculateListener = function() {		
	fireCalculator();
	if ($('#doorSelection .benefits').length>0) {
		$('#doorSelection .benefits').find('input:checkbox').each(function(){
			$(this).click(function(){
				fireCalculator();
			});
		});
	}
	if ($('#doorSelection ul.sizes').length>0) {
		$('#doorSelection ul.sizes').find('input:radio').each(function(){
			$(this).click(function(){
				fireCalculator();
			});
		});
	}
	if ($('#glazing').length>0) {
		$('#glazing li, #glazing a').each(function(){	
			$(this).click(function(){
				fireCalculator();
			});
		});
	}
}

function fixPng() {
	if ($.browser.msie && $.browser.version=='6.0') {
		try {
			document.execCommand("BackgroundImageCache", false, true); /* TredoSoft Multiple IE doesn't like this, so try{} it */
		} catch(r) {}
		DD_belatedPNG.createVmlNameSpace();
		DD_belatedPNG.createVmlStyleSheet();
		DD_belatedPNG.fix('.png, .door-pic .gradient .gradient-inner, #gekos, #footer #contacts #contacts2 .columns, .boxy-wrapper td.left div, .boxy-wrapper td.right div');
	}
}

function doorValidate() {
	if ($('#doorSelection').length>0) {
		$('#doorSelection').submit(function(){
			var sizes = $('table.object .c2 ul.sizes');
			var colors = $('table.object .c2 ul.colors');
			if (colors.length>0) {
				if ($('#color_id').val()=='') {
					new Boxy('<p>Для добавления товара, необходимо выбрать тонировку.</p>', {title: 'Ошибка', modal: true});
					return false;
				}
			}
			if (sizes.length>0) {
				var res = false;
				sizes.find('input:radio').each(function(){
					if ($(this).attr('checked')) {
						res = true;
					}
				});
				if (!res) {
					new Boxy('<p>Для добавления товара, необходимо выбрать размер двери.</p>', {title: 'Ошибка', modal: true});
					return false;
				}
			}
		});
	}
}

function outerWidth(obj) {
	width = obj.width();
	width+=parseInt(obj.css('padding-left'));
	width+=parseInt(obj.css('padding-right'));
	width+=parseInt(obj.css('margin-left'));
	width+=parseInt(obj.css('margin-right'));
	return width;
}

function isSuccessViewsImage(sel) {
    if ($.browser.opera) {
        width = sel.attr('width');
        height = sel.attr('height');
        sel.removeAttr('width');
        sel.removeAttr('height');
        sel.attr('alt', '');
        aHeight = sel.height();
        aWidth = sel.width();
        if (width) {
            sel.attr('width', width);
        }
        if (height) {
            sel.attr('height', height);
        }
        if (aHeight<=1 || aWidth<=1) {
            return false;
        }
        return true;
    } else if ($.browser.msie) {
        obj = sel[0];
        return obj.fileSize!=-1;
    } else {
        return parseInt(sel.attr('naturalWidth'))>0;
    }
}

CountedByHeightItems = function(c) {
    this.init(c);
}

CountedByHeightItems.prototype =  {
    c:null,
    
    init: function(c) {
        this.c = c;
        this.tryRecalcContainerElementsHeights();
    },
    
    thumbsAlreadyLoaded: function() {
        var loaded = true;
        this.c.children().each(function(){
            img = $(this).find('img');
            if (img.length>0 && !isSuccessViewsImage(img)) {
                loaded = false;
            }
        });
        return loaded;
    },
    
    recalcContainerElementsHeights: function() {
        maxWidth = this.c.width();
        curWidth = 0; maxHeight = 0;
        elems = []; row = 0;
        this.c.children().each(function(){
            width = outerWidth($(this));
            height = $(this).height();
            if (curWidth+width>maxWidth) {
                while (elems.length>0) {
                    elem = elems.pop();
                    elem.css('height', maxHeight);
                    elem.css('width', elem.width());
                    elem.addClass('row'+row);
                }
                maxHeight = 0;
                curWidth = 0;
                row++;
            }
            curWidth+=width;
            maxHeight = (maxHeight<height) ? height : maxHeight;
            elems.push($(this));
        });
        while (elems.length>0) {
            elem = elems.pop();
            elem.css('height', maxHeight);
            elem.css('width', elem.width());
            elem.addClass('row'+row);
        }
    },
    
    tryRecalcContainerElementsHeights: function() {
        if (this.thumbsAlreadyLoaded()) {
            this.recalcContainerElementsHeights();
        } else {
            var that = this;
            setTimeout(function(){
                that.tryRecalcContainerElementsHeights();
            }, 100);
        }
    }
    
}

CountedByWidthItems = function(c) {
    this.init(c);
}

CountedByWidthItems.prototype =  {
    c:null,
    
    init: function(c) {
        this.c = c;
        this.tryRecalcContainerElementsHeights();
    },
    
    thumbsAlreadyLoaded: function() {
        var loaded = true;
        this.c.children().each(function(){
            img = $(this).find('img');
            if (img.length>0 && !isSuccessViewsImage(img)) {
                loaded = false;
            }
        });
        return loaded;
    },
    
    recalcContainerElementsHeights: function() {
        maxWidth = this.c.width();
        curWidth = 0; maxElemWidth = 0;
        elems = []; row = 0;
        this.c.children().each(function(){
            width = outerWidth($(this));
            if (curWidth+width>maxWidth) {
                maxElemWidth = 0;
                curWidth = 0;
                row++;
            }
            curWidth+=width;
            maxElemWidth = (maxElemWidth<$(this).width()) ? $(this).width() : maxElemWidth;
            elems.push($(this));
        });
		if (row>0) {
			while (elems.length>0) {
				elem = elems.pop();
				elem.css('width', maxElemWidth);
				elem.addClass('row'+row);
			}
		}
    },
    
    tryRecalcContainerElementsHeights: function() {
        if (this.thumbsAlreadyLoaded()) {
            this.recalcContainerElementsHeights();
        } else {
            var that = this;
            setTimeout(function(){
                that.tryRecalcContainerElementsHeights();
            }, 100);
        }
    }
    
}

Cities = function(sel, defCity) {
	this.init(sel, defCity);
}

Cities.prototype = {
	sel: null,
	
	switchCity: function(city) {
		this.sel.find('.cities li a:hover').removeClass('active');
		this.sel.find('.city').each(function(){
			$(this).hide();
		});
		city.addClass('active');
		$('#'+city.attr('rel')).show();
	},

	init: function(sel, defCity) {
		this.sel = sel;
		sel.find('.right .right-inner').css(($.browser.msie && $.browser.version=='6.0') ? 'height' : 'min-height', sel.find('.cities').outerHeight()-15);
		var that = this;
		sel.find('.cities li a').each(function(index){
			if ($(this).hasClass('active')) {
				defCity = $(this).text();
			}
			$(this).hover(function(){
				that.switchCity($(this));
			});
		});
		sel.find('.cities li a').each(function(){
			if ($.trim($(this).text())==defCity) {
				that.switchCity($(this));
			}
		});
	}
}

HotDate = function() {
	this.init();
}

HotDate.prototype = {
	canShow: true,
	canHide: true,
	
	init: function() {
		var that = this;
		$('#hot_date').hover(function(){
			that.hide();
		}, function(){
			that.show();
		});
		$('#menu').hover(function(){
			that.canShow = false;
			that.hide();
		}, function(){
			that.canShow = true;
			that.show();
		});
		$('#city-select select').hover(function(){
			that.canShow = false;
			that.hide();
		}, function(){
			that.canShow = true;
			that.show();
		});
	},
	
	show: function() {
		var that = this;
		if (this.canShow) {
			$('#hot_date div').show();
			$('#menu').css('z-index', 1);
			$('#city-select select').css('z-index', 1);
		}
	},
	
	hide: function(){
		var that = this;
		if (this.canHide) {
			$('#hot_date div').hide();
			$('#menu').css('z-index', 4);
			$('#city-select select').css('z-index', 4);
		}
	}
	
}

function addSortsEventListeners(obj){
		obj.find('span.label').click(function(){
			$(this).parents('div.sort').find('span.label').each(function(){
				$(this).find('input').removeAttr('checked');
				$(this).removeClass('checked');
			});
			$(this).find('input').attr('checked', 'checked');
			$(this).addClass('checked');
		});

}

function showFeedback(mail, descr) {
	$('#feedback input[name=system_email_to]').val(mail);
	$('#feedback input[name=descr]').val(descr);
			
	var feedback = $('#feedback');
	new Boxy(feedback.clone(), {title: 'Обратная связь', modal:true, draggable: true, afterShow: function(){
		rules = {};
		messages = {};
		$('.boxy-wrapper form input[type=text], .boxy-wrapper form select, .boxy-wrapper form textarea').each(function(){
			if ($(this).parents('dd').prev().find('label').hasClass('required')) {
				name = $(this).attr('name');
				rules[name] = { required: true };
				messages[name] = { required: '' };
			}
		});
		var options = {
			'rules': rules, 
			'messages': messages, 
			'success': function(label) {
				label.html("&nbsp;").addClass("checked");
			}
		};
		$('.boxy-wrapper form').validate(options);
	}});
}

$(document).ready(function(){
	if (userLogined && is_order) {
		document.location = '/eshop/orders/';
	}
	if ($('div.sort').length>0) {
		addSortsEventListeners($('div.sort'));
	}
	if ($('#hot_date').length>0) {
		new HotDate();
	}
	if ($('table.object ul.colors').length>0) {
		$('table.object ul.colors').each(function(){
		  new CountedByHeightItems($(this));
		});
    }
	if ($('#glazing').length>0) {
		new CountedByWidthItems($('#glazing'));
		new CountedByHeightItems($('#glazing'));
	}
	// cities
	new Cities($('#contacts'), city);
	new Cities($('#contacts2'), city);
	$('#city-select select option').each(function(){
		if ($(this).text()==city) {
			$(this).attr('selected', 'selected');
		}
	});
	$('#city-select select').change(function(){
		$('#city-select').submit();
	});
	// faqs
	if ($('dl.faq').length>0) {
		$('dl.faq dt a').each(function(){
			$(this).click(function(){
				var dd = $(this).parents('dt').next();
				if (dd.css('display')=='none') {
					dd.show('fast');
				} else {
					dd.hide('fast');
				}
				return false;
			});
		});
	}
	if ($('#faqs').length>0) {
		$('#faqs .next').click(function(){
			AjaxProgress.show($('#faqs'));
			$.getJSON('/ajax/faq.php', {
				id: $('#faqs_id').val()
			}, function(json){
				AjaxProgress.hide($('#faqs'));
				$('#faqs_id').val(json['id']);
				$('#faq_question').html(json['question']);
				$('#faq_answer').html(json['answer']);
			})
			return false;
		});
	}
	// colors in filters
	// sidebar
	$('#door_selection ul.colors li input').click(function(){
		var li = $(this).parents('li');
		if ($(this).attr('checked')) {
			li.addClass('active');
		} else {
			li.removeClass('active');
		}
	});
	$('#door_selection ul.colors li a').click(function(){
		var li = $(this).parents('li');
		var input = li.find('input');
		if (!input.attr('checked')) {
			input.attr('checked', 'checked');
			li.addClass('active');
		} else {
			input.removeAttr('checked');
			li.removeClass('active');
		}
		return false;
	});
	$('#door_selection ul.colors li a').hover(function(){
		$(this).parents('li').find('.full_size').show();
	}, function(){
		$(this).parents('li').find('.full_size').hide();
	});
	// content filter
	if ($('select[id=colorset]').length>0) {
		$('select[id=colorset]').each(function(){
			$(this).multiSelect({
				selectAll: false,
				noneSelected: '',
				oneOrMoreSelected: '*'
			});
		});
		$('#colorset input').click(function(){
			var li = $(this).parents('span.label');
			if ($(this).attr('checked')) {
				li.addClass('active');
			} else {
				li.removeClass('active');
			}
		});
		$('#colorset a').click(function(){
			var li = $(this).parents('span.label');
			var input = li.find('input');
			if (!input.attr('checked')) {
				input.attr('checked', 'checked');
				input.trigger('click');
				input.attr('checked', 'checked');
				li.addClass('active');
			} else {
				input.removeAttr('checked');
				input.trigger('click');
				input.removeAttr('checked');
				li.removeClass('active');
			}
			return false;
		});
		$('#colorset span.label a').hover(function(){
			$(this).parents('span.label').find('.full_size').show();
		}, function(){
			$(this).parents('span.label').find('.full_size').hide();
		});
	}
	// door page
	if ($('#doorSelection').length>0 && !$('#doorSelection').hasClass('is_order')) {
		if ($('table.object .c2 .glazing').length>0) {
			setActiveGlazingItem = function(li){
				if (li.hasClass('selected')) {
					li.removeClass('selected');
				} else {
					li.nextAll().each(function(){
						$(this).removeClass('selected');
					});
					li.prevAll().each(function(){
						$(this).removeClass('selected');
					});
					li.addClass('selected');
					glaz_id = li.find('input[name=id]').val();
					$('table.object .c1 img').each(function(){
						$(this).hide();
					});
					$('#door_'+glaz_id).show();
					$('#page_id').val(glaz_id);
					DoorCalculator.doorPrice = li.find('input[name=price]').val();
					DoorCalculator.doorDiscount = li.find('input[name=discount]').val();
					title = li.find('.title').text();
					price = li.find('.cost').text();
					oldprice = li.find('.oldcost').text();
					$('table.object .c1 .oldcost').hide();
					$('#sale_coner').hide();
					/*if (oldprice==0) {
						$('table.object .c1 .oldcost').fadeOut('normal');
						$('#sale_coner').fadeOut('normal');
					} else {
						$('table.object .c1 .oldcost').fadeIn('normal');
						$('table.object .c1 .oldcost').html('<span class="oldcost-inner">Старая&nbsp;цена:&nbsp;<s>'+oldprice+'</s></span>');
						$('#sale_coner').fadeIn('normal');
					}*/
					if (price==0) {
						$('table.object .c1 .cost').html('<span class="nocost">просчитывается<br />индивидуально</span>');
					} else {
						/*if (oldprice==0) {*/
							$('table.object .c1 .cost').html('<span class="cost-inner">'+price+'</span>');
						/*} else {
							$('table.object .c1 .cost').html('<span class="sale">'+price+'</span>');
						}*/
					}
//					$('h1').html(title);
				}
			};
			$('table.object .c2 .glazing li').hover(function(){
				$(this).addClass('active');
			}, function(){
				$(this).removeClass('active');
			});
			$('table.object .c2 .glazing li a').click(function(){
				setActiveGlazingItem($(this).parents('li'));
				return false;
			});
			$('table.object .c2 .glazing li').click(function(){
				setActiveGlazingItem($(this));
				return false;
			});
		}
	}
	if ($('#doorSelection').length>0 && !$('#doorSelection').hasClass('disabled')) {
		if ($('table.object .c2 .colors').length>0 && !$('table.object .c2 ul.colors').hasClass('disabled')) {
			$('table.object .c2 .colors li').hover(function(){
				$(this).addClass('active');
			}, function(){
				$(this).removeClass('active');
			});
			$('table.object .c2 .colors li a').click(function(){
				var li = $(this).parents('li');
				$('table.object .c2 .colors li').each(function(){
					$(this).removeClass('selected');									   
				});
				li.addClass('selected');
				$('#color_id').val(li.find('input:hidden').val());
/*				if ($(this).hasClass('selected')) {
					li.removeClass('selected');
					$('#color_id').val('');
				} else {
					li.nextAll().each(function(){
						
					});
					li.prevAll().each(function(){
						$(this).removeClass('selected');
					});
					li.addClass('selected');
					$('#color_id').val(li.find('input:hidden').val());
				}*/
				return false;
			});
			if ($('table.object ul.colors li').length==1) {
				$('table.object ul.colors li a').trigger('click');
			}
		}
		
		if ($('table.object .c2 .sizes').length>0) {
			$('table.object .c2 input:radio').click(function(){
				$('#size_id').val($(this).val());
			});
		}
		if ($('table.object .c2 .add').length>0) {
			addItemsPageEvents = function(dist, href) {
				$('.boxy-wrapper .pagesbar-numbers a').click(function(){
					AjaxProgress.show($('.boxy-wrapper'));
					$.get('/catalog/doorItems/'+$(this).attr('href'), {}, function(content){
						AjaxProgress.hide($('.boxy-wrapper'));
						var boxy = $('.boxy-wrapper').data('boxy');
						boxy.setContent(content);
						boxy.center('x');
						boxy.center('y');
						addItemsPageEvents(dist, href);
					});
					return false;
				});
				$('.boxy-wrapper form').submit(function(){
					AjaxProgress.show($('.boxy-wrapper'));
					params = {};
					$(this).find('input:text, input:hidden, select').each(function(){
						params[$(this).attr('name')] = $(this).val();
					});
					$(this).find('input:radio, input:checkbox').each(function(){
						if ($(this).attr('checked')) {
							params[$(this).attr('name')] = $(this).val();
						}
					});
					$.get(href+'&is-ajax=yes', params, function(content){
						AjaxProgress.hide($('.boxy-wrapper'));
						var boxy = $('.boxy-wrapper').data('boxy');
						boxy.setContent(content);
						boxy.center('x');
						boxy.center('y');
						addItemsPageEvents(dist, href);
					});
					return false;
				});
				if ($('.boxy-wrapper div.sort').length>0) {
					addSortsEventListeners($('.boxy-wrapper div.sort'));
				}
				addItem = function(c) {
					var boxy = $('.boxy-wrapper').data('boxy');
					var item_id = 0;
					var item_price = 0;
					c.find('input:hidden').each(function(){
						if ($(this).attr('name')=='id') {
							item_id = $(this).val();
						}
						if ($(this).attr('name')=='price') {
							item_price = $(this).val();
						}
					});
					title = c.find('.title').html()+' ('+item_price+' грн.)';
					dist.html(title);
					dist.attr('class', 'other');
					dist.append('<input type="hidden" name="goods[]" value="'+item_id+'">');
					dist.append('<input type="hidden" name="cost" value="'+item_price+'">');
					dist.next().html('изменить');
					fireCalculator();
					boxy.hide();
				}
				$('.boxy-wrapper ul.catalog li a').click(function(){
					addItem($(this).parents('li'));
					return false;
				});
				$('.boxy-wrapper ul.catalog li').click(function(){
					addItem($(this));
					return false;
				});
			}
			$('table.object .c2 .add').click(function(){
				var obj = $(this);
				if (!obj.hasClass('clicked')) {
					obj.addClass('clicked');
					obj.addClass('ajax-right');
					var title = $(this).parents('tr').find('td:first').html();
					var dist = $(this).parent('td').find('span:first');
					var href = $(this).attr('href');
					Boxy.load(href+'&is-ajax=yes', {
							modal:true, 
							fixed:false, 
							title:'Комплектация &gt; '+title,
							afterShow: function() {
								obj.removeClass('clicked');
								obj.removeClass('ajax-right');
								addItemsPageEvents(dist, href);
							}
						}
					);
				}
				return false;
			});
		}
		if ($('#countCalculator').length>0) {
			countCalculator = new CountCalculator($('#countCalculator'));
		}
	}
	// write_us
	$('.write_feedback').each(function(){
		$(this).click(function(){
			var mail = $(this).parents('td.c1').find('input[name=feedback_mail]').val();
			var type = $(this).parents('td.c1').find('.type').html();
			type = type.substr(0, type.length-1);
			var city = $('#contacts ul.cities a.active span').html();
			descr = 'Пришло сообщение с формы обратной связи ('+type+', '+city+')';
			
			showFeedback(mail, descr)
			
			return false;
		});
	});
	if ($('#write_us').length>0) {
		$('#write_us').click(function(){
			var mail = $('#office').find('input[name=feedback_mail]').val();
			var type = $(this).parents('td.c1').find('.type').html();
			var city = $('#contacts ul.cities a.active span').html();
			descr = 'Пришло сообщение с формы обратной связи ('+type+', '+city+')';

			showFeedback(mail, descr)
			
			return false;
		});
	}
	/*if ($('#write_us').length>0) {
		$('#write_us').click(function(){
			var feedback = $('#'+$(this).attr('rel'));
			new Boxy(feedback.clone(), {title: 'Обратная связь', modal:true, draggable: true, afterShow: function(){
				rules = {};
				messages = {};
				$('.boxy-wrapper form input[type=text], .boxy-wrapper form select, .boxy-wrapper form textarea').each(function(){
					if ($(this).parents('dd').prev().find('label').hasClass('required')) {
						name = $(this).attr('name');
						rules[name] = { required: true };
						messages[name] = { required: '' };
					}
				});
				var options = {
					'rules': rules, 
					'messages': messages, 
					'success': function(label) {
						label.html("&nbsp;").addClass("checked");
					}
				};
				$('.boxy-wrapper form').validate(options);
			}});
			return false;
		});
		
	}*/
	if ($('#door_selection').length>0) {
		tabs = $('#door_selection .tabs a');
		tabs.each(function(){
			$(this).click(function(){
				$(this).parents('table').find('a').each(function(){
					$(this).parents('td').removeClass('active');
					$('#'+$(this).attr('rel')).hide();
				});
				$(this).parents('td').addClass('active');
				$('#'+$(this).attr('rel')).show();
				return false;
			});
		});
		tabs.eq(0).trigger('click');
	}
	if ($('#callback').length>0) {
		rules = {};
		messages = {};
		$('#callback form input[type=text], #callback select, #callback textarea').each(function(){
			if ($(this).parents('dd').prev().find('label').hasClass('required')) {
				name = $(this).attr('name');
				rules[name] = { required: true };
				messages[name] = { required: '' };
			}
		});
		var options = {
			'rules': rules, 
			'messages': messages, 
			'success': function(label) {
				label.html("&nbsp;").addClass("checked");
			}
		};
		$('#callback form').validate(options);
	}
	fixPng();
	doorValidate();
	if ($('#doorSelection').length>0) {
		addCalculateListener();
	}
	initLinks();
	if ($('#form_addfaqquestion').length>0) {
		validateAddFaq();
	}
	if ($('.office_photos').length>0) {
		$('.office_photos a').click(function(){
			href = $(this).attr('href');
			name = $(this).attr('title');
			width = $(this).find('img').attr('big-width');
			height = $(this).find('img').attr('big-height');
			new Boxy('<p><img src="'+href+'" width="'+width+'" height="'+height+'" /></p>', {title: name, modal: true});
			return false;
		});
	}
});