
var script = {
    catalogMenu: function() {
        $('.main-left > ul > li').each(function(){
            var menuConteiner = $(this);
            var subMenu = menuConteiner.children('ul');
            if (subMenu.length)
            {
                var active = true;
                if (!menuConteiner.hasClass('current') && !menuConteiner.find('.current').length){
                    subMenu.hide();
                    active = false;
                }
                /*else
                    menuConteiner.addClass('visible-sub-menu');*/
                
                menuConteiner.children('a').click(function(){
                    $(this).toggleClass('active-sub-menu-link');
                    /*if (active)
                        $(this).addClass('active-sub-menu-link');*/
                    subMenu.slideToggle();
                    return false;
                });
            }
        });
        $('.main-left .current').parents('li').children('a').addClass('active-sub-menu-link');
    },
    
    fadeCart: {
        node: {
            main: null,
            window: null,
            processBar: null,
            message: null,
            form: null,
            formFields: {}
        },
        options: {
            mainHeight: 300,
            topInc: 100,
            formIsClose: true
        },
        init: function() {
            var self = this;
            
            $('div.fade-window').each(function(){
                var fadeForm = $(this);
                fadeForm.children('.background').css('opacity', 0.5);
            });
            
            self.node.main = $('#cart');
            if (!self.node.main.length)
                return;
            self.node.window = self.node.main.children('.window');
            self.node.message = self.node.window.children('.ajax-message');
            self.node.processBar = self.node.window.find('.process-bar');
            self.node.form = self.node.window.find('form');
            
            $('.basket a').click(function() {
                self.node.window.css('top', ((document.documentElement && document.documentElement.scrollTop) || (document.body && document.body.scrollTop) + self.options.topInc));
                self.node.main.show();
                return false;
            });
            self.node.window.children('.close-window').click(function(){
                self.resetForm(self);
                self.node.message.html('&nbsp;');
                self.node.main.hide();
            });
            /*
            self.node.form.unbind('submit');
            self.node.form.submit(function(){
                var postData = {};
                self.node.form.find('input, textarea').each(function(){
                    var inputNode = $(this);
                    postData[inputNode.attr('name')] = inputNode.hasClass('pale-text') ? '' : inputNode.val();
                });
                $.ajax({
                    url: '/send-mail/?format=json',
                    data: postData,
                    type: "post",
                    success: function(data) {
                        if (!data.response)
                            return;
                        self.setMessages(self, data.response);
                    }
                });
                return false;
            });
            */
        },
        setMessages: function(self, response) {
            self.node.message.removeClass('ajax-error ajax-success');
            self.node.message.addClass((!response.error) ? 'ajax-success' : 'ajax-error');
            self.node.message.text(response.message);
            $.each(response.messages, function(node, errors){
                if (errors.length)
                    $('#'+node).addClass('error');
                
            });
            if (!response.error)
                self.resetForm(self);
        },
        resetForm: function(self)
        {
            self.node.form.find("input[type='text']").removeClass('error').val('').blur();
            self.node.form.find("textarea").removeClass('error').text('').blur();
        }
    },
	
	
    simpleCart:  {
		
		n: {
			checkcheck: null
		},
		storage: {},
		inc: {
			count: null
		},
		init: function(){
			
			var self = this;
			self.n.checkcheck = $('table:has(input:checkbox)');
			$(".pcontent").wrap('<form action="/ext-libs/submit.php?param=0" method="post" />');
			if (self.n.checkcheck.length <= 0) return;
			self.checkattr(self);
			self.bttnadd(self);
			self.chckbx(self);
		},
		checkattr: function(self){
			$(".contnm").find("h1:first").each(function(){
				self.n.checkcheck.prepend(('<caption class="invis">'+hex_md5($(this).text())+'</caption>'));
			});
			self.n.checkcheck.find("tr").each(function() {
				$(this).prepend('<td class="invis">'+hex_md5($(this).html())+'</td>');
			});
        },
		chckbx:  function(self){
			self.n.checkcheck = $('table:has(input:checkbox)');
			self.n.checkcheck.find("input:checkbox:first").click(function() {
				if($(this).attr('checked')) {
					$(this).parents("table:first").find("input:checkbox").attr('checked', 'checked');
				} else {
					$(this).parents("table:first").find("input:checkbox").removeAttr('checked');
				}
			});
		},
		chckchck:  function(){
			var self = this;
			self.getdata(self, function(data){
				if(data)
				self.storage = JSON.parse(data);
				if(self.n.checkcheck)
				self.n.checkcheck.find("input:checkbox").each(function(){
					$(this).parents("tr:first").each(function(){
						var temp = $(this).find(".invis");
						$.each(self.storage,function(){
							$.each($(this), function(){
								for(var key in this)
								if (key == temp.text()){
									$(temp).parents("tr:first").find("input:checkbox").attr('checked', 'checked');
								}
							});
							
						});
					});	
				});
			});
		},
		addtocart: function(self){
			$.ajax({
				url: '/ext-libs/cart.php',
				data: {data: JSON.stringify(self.storage)},
				type: "post",
				success: function(data) {
				}
            });
		},
		getdata: function(self, success){
			
			if(!success) {
				success = function(data) {
					self.storage = JSON.parse(data);
				}
			}	
			$.ajax({
				url: '/ext-libs/cart.php',
				success: success
			});
			
		},
		osuccess: function(){
			var self = this;
			console.log(self.storage);			
			$.ajax({
				url: '/ext-libs/cart.php',
				data: {data:'clear'},
				type: "post",
				success: function(data) {
				}
			});
			delete(self.storage);
			
		},
		formValidate: function(){ 
			$('form').submit(function(){
				var hasError = false;
				$(this).find('.error-empty-field').removeClass('error-empty-field');
				$(this).find('.error').addClass('invis');
				$(this).find('.required').each(function(){
				if ($.trim($(this).val()) == ''){
				$(this).addClass('error-empty-field');
				hasError = true;
				}
				});
				if (hasError){
					$(this).find('.error').removeClass('invis');
					return false;
				}
				return true;
			});
		}, 
		
		bttnadd: function(self){
			$('<a href="#" class="return corner">Добавить в корзину</a>').insertAfter(self.n.checkcheck).click(function(){
				var postData = {};
				var i = null;
				postData[0] = $(".contnm").find("h1:first").text();
				postData[1] = self.n.checkcheck.find('tr:first').html();
				self.n.checkcheck.find("input:gt(0):checked").each(function(){
					$(this).parents("tr:first").each(function(){
						i = $(this).find(".invis").text();
					});
					postData[i] = $(this).parents("tr:first").html();
				});
				$('body #cart-notify').remove();
				$('<div id="cart-notify" class="cart-notify-add">Товар добавлен в корзину</div>').appendTo('body');
				$('body #cart-notify').fadeOut(2500, function(){ $(this).remove()});
				self.storage[self.n.checkcheck.find('caption').text()] = postData;
				self.addtocart(self);
				return false;
			});
			$('<a href="/korzina/" class="return corner">Перейти в корзину</a>').insertAfter(self.n.checkcheck)
        },		
        checkout: function() {
            var me = this;
            
            var data = {},
                haveErrors = false;
            
            $('.customer-info').find('.error').removeClass('error');
            $('.customer-info').find('.required').each(function(){
                if ($.trim($(this).val()) == '') {
                    $(this).addClass('error');
                    haveErrors = true;
                }else
                    data[$(this).attr('name')] = $(this).val();
            });
            
            if (haveErrors == true)
                return;
            $('div[class^="item"]').each(function(i){
				data[$(this).attr('class')+'['+i+']'] = $(this).text();
			});
            
            $.ajax({
                type: "POST",
                url: "/parcer/send_mail.php",
                data: data,
                dataType: 'json',
                success: function(msg){
                    me.empty();
                    $('.customer-info').find('.required').val('');
                    $('.simpleCart_items').append('<div class="checkout-success">Ваш заказ принят.<br/>В ближайшее время наши менеджеры связутся с Вами.<br/>Спасибо. </div>');
                }
            });
        },
		cartbuttons: function(self) {
			$('<a class="return corner"href="#">Удалить</a>').corner().click(function(){
				self.n.checkcheck.find("input:checked").each(function(){
					$(this).parents("tr:first").each(function(){
						var temp = $(this).find(".invis").text();
						var table = $(this).parents("table:first");
						$.each(self.storage,function(){
							$.each($(this), function(){
								for(var key in this)
								if (key == temp){
									delete(this[key]);
									self.addtocart(self);
								}
							});
							
						});
						$.each(self.storage,function(i,key){
							var count = 0;
							for(var keyx in this)
								count++;
							if(count < 3){
								delete(self.storage[i]);
								table.remove();
								self.addtocart(self);
								if(jQuery.isEmptyObject(self.storage)){
									$.ajax({
										url: '/ext-libs/cart.php',
										data: {data:'clear'},
										type: "post",
										success: function(data) {
										}
									});
									$(".pcontent").remove();
								}
							}
						});
					}).remove();
				});
				$('body #cart-notify').remove();
				$('<div id="cart-notify" class="cart-notify-remove">Товар удален из корзины</div>').appendTo('body');
				$('body #cart-notify').fadeOut(2500, function(){ $(this).remove()});
				return false;
			}).appendTo(".pcontent");
			$('<a class="return"href="#">Очистить корзину</a>').click(function(){
				self.storage = {};
				$.ajax({
					url: '/ext-libs/cart.php',
					data: {data:'clear'},
					type: "post",
					success: function(data) {
					}
				});
				$(".pcontent").remove();
				$('body #cart-notify').remove();
				$('<div id="cart-notify" class="cart-notify-empty">Корзина очищена</div>').appendTo('body');
				$('body #cart-notify').fadeOut(2500, function(){ $(this).remove()});
			}).corner().appendTo(".pcontent");
			$('<div class="info"><label for="name">Наименование Вашей организации</label><input class="required" id="name" name="info[]" type="text"></input><label for="city">Город (область)</label><input class="required" name="info[]" id="city" type="text"></input><label for="phone">Контактный телефон</label><input class="required" name="info[]" id="phone" type="text"></input><label for="mail">E-mail для обратной связи</label><input class="required" name="info[]" id="mail" type="text"></input><label for="face">Контактное лицо</label><input class="required" name="info[]" id="face" type="text"></input><label for="info">Дополнительная информация</label><textarea class="required" name="info[]" id="info" type="text"></textarea></div>').appendTo(".pcontent");
			$("<p class='error invis'>Пожалуйста, укажите полную информацию</p>").insertAfter(".info");
			$('<input class="return" type="submit" value="Отправить"></input>').click(function(){
				self.n.checkcheck.each(function(table){
					$(this).append(('<input class="invis" name="col['+table+'][capt]" value="'+$(this).find("caption").text()+'"></input>'));
					$(this).find("tr").each(function(j) {
						$(this).find("input:checkbox").attr('name', 'che['+table+j+']');
						$(this).children("td").each(function(i) {
							$(this).append(('<input class="invis" name="col['+table+']['+j+']['+i+']" value="'+$(this).text()+'"></input>'));
							$(this).addClass("item_name"+i);
							self.inc.count = i;
						});
					});
				});
				}).appendTo(".pcontent");
		},
		showcart: function(){
			var self = this;
			self.getdata(self, function(data){
				self.storage = JSON.parse(data);
				$.each(self.storage,function(){
					$.each($(this), function(){
						var table = $('<table><caption>'+this[0]+'</caption><tbody></tbody></table>');
						for(var key in this)
							if(key!=0)
								table.find("tbody").append('<tr>'+this[key]+'</tr>');
						$(".pcontent").append(table);
					});
				})
				self.chckbx(self);
				self.n.checkcheck.each(function(table){
					$('<td class="count">Кол-во</td>').insertBefore($(this).find("td:has(input:checkbox):first"));
					$(this).find("td:has(input:checkbox):gt(0)").each(function(im){
						var inc = im+1;
						$('<td><input type="text" name="col['+table+']['+inc+'][999]"></input></td>').insertBefore(this);
					});
				});
				self.cartbuttons(self);
			});
			
		}
    },
	corner: {
		init: function(){
			$('.corner').corner();
			$('.corner-5').corner("5px");
		}
	}
}
$(document).ready(function(){
    (function() {
		
        this.catalogMenu();
        //this.cart.init();
        this.fadeCart.init();
        this.simpleCart.init();
		this.simpleCart.formValidate();
		this.corner.init();
    }).call(script);
});

