var Shop = {
	changeTree: function(id, isParent, page) {
		$("body").css("cursor","wait");
		if(isParent == 'sendForm') {
			isParent = '';
			var sendForm = 'sendForm';
		} else {
			var sendForm = '';
		}
		$.ajax({
			type: "POST",
			url: Helper.baseUrl+"/sklep/tree/",
			data: 'id='+id+'&isParent='+isParent,
			cache: false,
			success: function(html) {
				if(html) $("#shopTree").css("display","none").html(html).fadeIn();
				$("body").css("cursor","auto");
			}
		});
		this.changeAssortment(id, isParent, page, sendForm);
		return false;
	},
	changeAssortment: function(id, isParent, page, sendForm) {
		//if(!isParent) {
			var el = $("#shopSearch");
			var search = (el.length > 0) ? $("#shopSearch").val() : '';
			$.ajax({
				type: "POST",
				url: Helper.baseUrl+"/sklep/assort/",
				data: 'id='+id+'&isParent='+isParent+'&page='+((page) ? page : '')+'&search='+search+'&sendForm='+sendForm,
				cache: false,
				success: function(html) {
					if(html) $("#assortment").css("display","none").html(html).fadeIn();
				}
			});
		//} else {
		//	$("#assortment").css("display","none").html('parent costam').fadeIn();
		//}
		return false;
	},
	goToAssort: function(id, prev) {
		//if(!prev) return false;
		$.ajax({
			type: "POST",
			url: Helper.baseUrl+"/ajax/oferta/",
			data: 'id='+id+'&action=shop&prev='+prev,
			cache: false,
			success: function(html) {
				if(html) $("#assortment").css("display","none").html(html).fadeIn();
			}
		});
	},
	addToCart: function(id) {
		var xhtml = (
			'<div style="width: 100%; text-align: center; font-size: 14px; font-weight: bold;">'+
				'Podaj ilość&nbsp;&nbsp;'+
				//'&nbsp;&nbsp;<span onClick="javascript: Shop.valueMinus(\'lot\');" style="cursor: pointer;">&laquo</span>&nbsp;'+
					'<input id="lot" type="text" style="width: 100px;" maxlength="11" value="1" onKeyUp="javascript: Helper.parseFloat(this,10,3);" />'+
				//'&nbsp;<span onClick="javascript: Shop.valuePlus(\'lot\');" style="cursor: pointer;">&raquo</span>'+
			'</div>'
		);
		var button = PopUp.createButton('DODAJ', 'Shop.addToCartAction('+id+');');
		PopUp.showPopUp(xhtml+'<div style="padding: 20px 0 0 100px;">'+button+'</div>');
	},
	addToCartAction: function(id, value) {
		$.ajax({
			type: "POST",
			url: Helper.baseUrl+"/sklep/addtocart/",
			data: 'id='+id+'&lot='+(value ? value : $("#lot").val()),
			cache: false,
			success: function(html) {
			}
		});
		PopUp.closePopUp(PopUp.popUpId);
	},
	valuePlus: function(id) {
		var el = $("#"+id);
		var val = el.val();
		val++;
		el.val(val);
		return val;
	},
	valueMinus: function(id) {
		var el = $("#"+id);
		var val = el.val();
		val--;
		if(val > 0) {
			el.val(val);
			return val;
		}
		return false;
	},
	cartSum: function(id, price, type) {
		var lot = (type == 'plus') ? this.valuePlus("lot_"+id) : this.valueMinus("lot_"+id);
		if(lot) {
			price = parseFloat(price);
			$("#sum_"+id).html(this.parseFl(lot*price));
			var sum = parseFloat($("#sum").html());
			$("#sum").html((type == 'plus') ? this.parseFl(sum+price) : this.parseFl(sum-price));
		}
	},
        countCart: function(el) {
            var prices      = $('.cart_assort_price');
            var sum         = 0;
            var elId        = $(el).attr('id');
            var i           = 0;
            var fieldSum    = 0;
            el = false;
            $(".cart_assort").each(function() {
                el = $(this);
                fieldSum = Math.round(el.val() * $(prices[i]).val() * 100) / 100;
                sum += fieldSum;
                if(el.attr('id') == elId) $("#sum_"+elId.split('_')[1]).html(fieldSum);
                i++;
            });
            sum = Math.round(sum * 100) / 100;
            $("#sum").html(sum);
        },
	moveFromCart: function(el, id, price) {
		price = parseFloat(price);
		var lot = parseInt($("#lot_"+id).val());
		var sum = parseFloat($("#sum").html());
		$("#sum").html(this.parseFl(sum-(lot*price)));
		$(el).parent().parent().remove();
	},
	sendForm: function(url) {
		var data = $("form#data").serialize();
		PopUp.createAjaxLoader(PopUp.popUpId);
		if(data) {
			$.ajax({
				type: "POST",
				url: url,
				data: data,
				cache: false,
				success: function(html) {
					var el = $("#popUpText_"+PopUp.popUpId);
					Shop.tempHtml = html;
					el.fadeOut('fast', function() {
						$("#popUpText_"+PopUp.popUpId).html(Shop.tempHtml);
						delete Shop.tempHtml;
					});
					el.fadeIn();
				}
			});
		}
	},
	userDataValid: function(url) {
		var err							= false;
		var name							= $("#name");
		var surname						= $("#surname");
		var street						= $("#street");
		var home							= $("#home");
		var accommodation				= $("#accommodation");
		var post							= $("#post");
		var city							= $("#city");
		var area							= $("#area");
		var email						= $("#email");
		var phone						= $("#phone");
		var companyCheckbox			= $("#companyCheckbox");
		var companyDataCheckbox		= $("#companyDataCheckbox");
		var companyName				= $("#companyName");
		var companyNIP					= $("#companyNIP");
		var companyStreet				= $("#companyStreet");
		var companyHome				= $("#companyHome");
		var companyAccommodation	= $("#companyAccommodatiparseFloaton");
		var companyPost				= $("#companyPost");
		var companyCity				= $("#companyCity");
		var companyArea				= $("#companyArea");
		
		if(!this._minLen(name.val())) {
			name.css("background-color","#F49CA4");
			err = true;
		} else {
			name.css("background-color","#FFFFFF");
		}
		if(!this._minLen(surname.val())) {
			surname.css("background-color","#F49CA4");
			err = true;
		} else {
			surname.css("background-color","#FFFFFF");
		}			
		if(!this._minLen(street.val())) {
			street.css("background-color","#F49CA4");
			err = true;
		} else {
			street.css("background-color","#FFFFFF");
		}			
		if(home.val().length < 1) {
			home.css("background-color","#F49CA4");
			err = true;
		} else {
			home.css("background-color","#FFFFFF");
		}
		if(!post.val().match(/^[0-9]{2}\-[0-9]{3}$/)) {
			post.css("background-color","#F49CA4");
			err = true;
		} else {
			post.css("background-color","#FFFFFF");
		}
		if(!this._minLen(city.val())) {
			city.css("background-color","#F49CA4");
			err = true;
		} else {
			city.css("background-color","#FFFFFF");
		}
		if(area.val() == 0) {
			area.css("background-color","#F49CA4");
			err = true;
		} else {
			area.css("background-color","#FFFFFF");
		}
		if(!email.val().match(/^[a-z\.\-_0-9]+\@[a-z0-9\.\-_]+\.[a-z]{2,4}$/)) {
			email.css("background-color","#F49CA4");
			err = true;
		} else {
			email.css("background-color","#FFFFFF");
		}
		if(phone.val().length < 6) {
			phone.css("background-color","#F49CA4");
			err = true;
		} else {
			phone.css("background-color","#FFFFFF");
		}
		if(companyCheckbox.is(":checked")) {
			if(!this._minLen(companyName.val())) {
				companyName.css("background-color","#F49CA4");
				err = true;
			} else {
				companyName.css("background-color","#FFFFFF");
			}
			if(companyNIP.val().length < 10) {
				companyNIP.css("background-color","#F49CA4");
				err = true;
			} else {
				companyNIP.css("background-color","#FFFFFF");
			}
			if(companyDataCheckbox.is(":checked")) {
				if(!this._minLen(companyStreet.val())) {
					companyStreet.css("background-color","#F49CA4");
					err = true;
				} else {
					companyStreet.css("background-color","#FFFFFF");
				}			
				if(companyHome.val().length < 1) {
					companyHome.css("background-color","#F49CA4");
					err = true;
				} else {
					companyHome.css("background-color","#FFFFFF");
				}
				if(!companyPost.val().match(/^[0-9]{2}\-[0-9]{3}$/)) {
					companyPost.css("background-color","#F49CA4");
					err = true;
				} else {
					companyPost.css("background-color","#FFFFFF");
				}
				if(!this._minLen(companyCity.val())) {
					companyCity.css("background-color","#F49CA4");
					err = true;
				} else {
					companyCity.css("background-color","#FFFFFF");
				}
				if(companyArea.val() == 0) {
					companyArea.css("background-color","#F49CA4");
					err = true;
				} else {
					companyArea.css("background-color","#FFFFFF");
				}
			}
		}
		if(!err) {
			var url = Helper.baseUrl+'/sklep/orderconfirm/';
			this.sendForm(url);
		}
	},
	_minLen: function(val) {
		if(val.length < 3) return false;
		return true;
	},
	addCompany: function(element) {
		this.addTableGroup(element, 'company');
	},
	addCompanyData: function(element) {
		this.addTableGroup(element, 'company_data');
	},
	addTableGroup: function(element, className) {
		var el = $(element);
		if(el.is(":checked")) {
			$("tbody."+className).css("display","table-row-group");
		} else {
			$("tbody."+className).css("display","none");
		}
	},
	showCart: function() {
		//'<div style="padding: 20px 0 0 100px;">'+button+'</div>'
		PopUp.width		= 800;
		PopUp.height	= 400;
		$.ajax({
			url: Helper.baseUrl+"/sklep/showcart/",
			cache: false,
			success: function(html) {
				PopUp.showPopUp(html);
				PopUp.width		= 350;
				PopUp.height	= 150;
			}
		});
                return false;
	},
	phoneParser: function(element) {
		var el = $(element);
		var val = el.val();
		var count = val.length;
		res = '';
		for(var i=0;i<count;i++) {
			if(val[i].match(/^[0-9]+$/)) res += val[i];
		}
		el.val(res);
	},
	countMsg: function(element, max) {
		var el = $(element);
		var maxValue = $("#msgCharacters");
		len = el.val().length;
		if(len > max) {
			var newVal = el.val();
			newVal = newVal.substr(0, max);
			el.val(newVal);
			element.scrollTop = element.scrollHeight;
			maxValue.val(0);
			return false;
		}
		maxValue.html(parseInt(max) - parseInt(len));
	},
	parseFl: function(value) {
		if(!value) return false;
		value = parseFloat(value);
		value = parseFloat(Math.round((parseFloat(value) * 100))) / 100;
		value += '';
		val = value.split('.');
		val1 = parseInt(val[0]);
		val2 = parseInt(val[1]);
		if(val1 < 1) val1 = '0';
		if(isNaN(val2) || val2 < 1) val2 = '00';
		else if(val2 < 10) val2 += '0';
		else if(val2 > 99) {
			val2 += '';
			val2 = '0.'+val2.substring(0, 2);
		}
		return val1+'.'+val2;
	}
};
