var scw = screen.width;
var refreshScrlAnim = 0;
var buildTimeout = false;
var xhrRequest = false;
var loadingTimeout = false;
var inputTimeout = false;
var product_slider = false;
var mmLevel = 0;




var openTab = function(el) {

	var tabcontent = $('#'+$(el).attr('data-tab'));

	$(tabcontent).parent().find('.tab-content').hide();

	$(tabcontent).show();

	$(el).parent('ul').find('li').removeClass('active');

	$(el).addClass('active');

	$(tabcontent).parent().find('.mobile-tab').removeClass('active');

	$(tabcontent).prev('.mobile-tab').addClass('active');

	lazyReload(document.body);

};


var openTabMobile = function(el) {

	if($(el).hasClass('active')) return false;

	$(el).parent().find('.tab-content').hide();

	$(el).next('.tab-content').show();

	$(el).parent().find('.mobile-tab').removeClass('active');

	$(el).addClass('active');

	lazyReload(document.body);

    $([document.documentElement, document.body]).animate({
        scrollTop: $(el).offset().top - 80
    }, 0);

};



var applyFilters = function() {

	var arr = [];

	$('#sidebar').find(':checkbox:checked').each(function(index, input) {

		var key = $(input).val().split(":");

		if(arr[key[0]] == null)arr[key[0]] = [];

		arr[key[0]].push(key[1]);

	});

	var query_arr = [];

	for(var k in arr)query_arr.push(k+'='+arr[k].join(','));

	var query_str = query_arr.join('&');

	showFilters();

	LP(location.pathname+(query_str ? ('?'+query_str) : ''));

};

var clearFilters = function() {

	showFilters();

	LP(location.pathname);

};

var showFilters = function(el) {

	$('#sidebar-cnt').removeClass('sort-expanded');

	$('#sidebar-cnt').toggleClass('filter-expanded');

};

var showSorts = function(el) {

	$('#sidebar-cnt').removeClass('filter-expanded');

	$('#sidebar-cnt').toggleClass('sort-expanded');

};

var filterExpand = function(el) {

	$(el).parents('.block').toggleClass('expanded');

};

var filterShowAll = function(el) {

	$(el).parents('.block').toggleClass('show-all');

};



function svgFallback(container) {

	if(document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Image", "1.1"))return false;

	$(container).find('.svg').each(function(index, img) {

		$(img).attr('src', $(img).attr('src').replace(".svg", ".png"));

	});

}


var lazyReload = function(container) {

	responsivelyLazy.hasChange = true;

};


var backMMenu = function(el) {

	if(mmLevel == 0)return mobileMenuClose();

	mmLevel--;

	var sb = $(el).parents('.mobile-sidebar');

	$(sb).find('.content').scrollTop(0,0);

	if(mmLevel > 0)$(sb).addClass('level'+mmLevel);

	if(mmLevel == 0)$(sb).removeClass('level1 level2 level3');
	else if(mmLevel == 1)$(sb).removeClass('level2 level3');
	else if(mmLevel == 2)$(sb).removeClass('level1 level3');
	else if(mmLevel == 3)$(sb).removeClass('level1 level2');


};

var expandMMenu = function(el) {

	var sb = $(el).parents('.mobile-sidebar');

	$(sb).find('.content').scrollTop(0,0);

	mmLevel++;

	var li = $(el).parent('li');

	$(li).parent('ul').find('li').removeClass('active');

	$(li).addClass('active');

	$(sb).addClass('level'+mmLevel);

	if(mmLevel == 1)$(sb).removeClass('level2 level3');
	else if(mmLevel == 2)$(sb).removeClass('level1 level3');
	else if(mmLevel == 3)$(sb).removeClass('level1 level2');

};



var modalClose = function() {

	$(document.body).removeClass('overlay');

	$('#modal-cnt').hide();

	$("#modal-cnt").removeClass();

	$(document).off("keydown.modalEvent");

};


var modalAlert = function(title, content, classname) {

	$('#modal-title').html(title);

	$('#modal-content').html(content);

	$(document.body).addClass('overlay');

	if(classname)$('#modal-cnt').addClass(classname);

	$('#modal-cnt').show();

	$(document).on("keydown.modalEvent", function(e) {

		if(e.keyCode == 27 || e.keyCode == 13) {

			e.preventDefault();

			modalClose();

		}

	});

};


var mobileMenuOpen = function(id) {

	$('#'+id).addClass('open');

	$(document.body).addClass("overlay");

	return false;

};


var mobileMenuClose = function() {

	mmLevel = 0;

	$(document.body).find('.mobile-sidebar').each(function(index, sb) {

		if($(sb).hasClass('open')) {

			$(sb).find('.content').scrollTop(0,0);

			$(sb).find('.active').removeClass('active');

			$(sb).removeClass('level1 level2 level3');

			$(sb).removeClass('open');

		}

	});

	$(document.body).removeClass("overlay");

	$('#modal-cnt').hide();

	return false;
};


var buildMenu = function() {

	$('#body-overlay').on('click touchmove touchstart', function() {

		return mobileMenuClose();

	});

	if($('#menu-desktop').css('position').indexOf('sticky') == -1) {

		$(document.body)[($(window).scrollTop() >= $("#header").height() ? 'add' : 'remove') + 'Class']('fixed');

		$(window).on('scroll touchmove', function() {

			$(document.body)[($(window).scrollTop() >= $("#header").height() ? 'add' : 'remove') + 'Class']('fixed');

		});
	}

	$("#language-selector").find("label").on('click', function() {

		if($("#language-selector").hasClass("open")) $("#language-selector").removeClass("open");

		else $("#language-selector").addClass("open");

	});

	$('html').click(function(e) {

		if(!$(event.target).parents("#language-selector")[0]) {

			$("#language-selector").removeClass("open");

		}

	});

};



var buildContent = function(container) {

	$(container).find('form#autosubmit').submit();

	if(location.pathname == BASE_URL)$(document.body).addClass('home');

	else $(document.body).removeClass('home');

	$(document.body).find('a[data-lp="1"]').click(function(e) {

		LP($(this).attr('href'));

		e.preventDefault();

		return false;

	});

	svgFallback(container);

	lazyReload(container);


	$(container).find('.product-slider').owlCarousel({
	    loop:true,
	    margin:10,
	    stagePadding: 50,
	    responsiveClass: true,
		nav:true,
		dotsEach: 1,
	    responsive:{
	        0:{
	            items:1,
	            dotsEach: 2,
	        },
	        600:{
	            items:2,
	        },
	        1000:{
	            items:4,
	        }
	    }
	});


	$(container).find('.product-details-slider').owlCarousel({
	    loop:true,
	    responsiveClass: true,
		nav:true,
		dotsEach: 1,
	    responsive:{
	        0:{
	            items:1,
	        },
	        600:{
	            items:1,
	        },
	        1000:{
	            items:1,
	        }
	    }
	});

};




var loadXhr = function(url, postdata, complete) {

	if(inputTimeout)clearTimeout(inputTimeout);

	if(xhrRequest)xhrRequest.abort();

	xhrRequest = $.ajax({

		url: url,
		data: postdata,
		type: (postdata ? 'POST' : 'GET'),
		dataType: 'html',

		beforeSend: function(request) {

			loadingTimeout = setTimeout(function(){$('body').addClass('loading');}, 500);

			request.setRequestHeader("Ajax-Call", "1");

		},

		error: function (x, ajaxOptions, thrownError) {

			if(loadingTimeout)clearTimeout(loadingTimeout);

			$('body').removeClass('loading');

			if(x.status != 0)alert(x.status+':'+thrownError);

			return false;

		}

	}).done(function(response) {

		if(loadingTimeout)clearTimeout(loadingTimeout);

		$('body').removeClass('loading');

		response = response.split('|CONNECTOR_DATA|');

		var data = (response[1] ? $.parseJSON(response[1]) : false);

		if(data) {

			if(data.meta_title) {

				document.title = data.meta_title;

			}

			if(data.redirect) {

				History.pushState('', '', data.redirect);

				return false;
			}

			if(data.alert) {

				modalAlert(data.alert.title, data.alert.message, data.alert.classname);

			}

		}

		complete(response[0], data);

	});

};



var refreshContent = function(postdata, noscroll, url) {

	clearTimeout(buildTimeout);

	$(document).off();

	if(!url) {

		var state = History.getState();

		url = state.url.replace((location.protocol + "//" + location.host), '');

	}

	modalClose();

	mobileMenuClose();

	loadXhr(url, postdata, function(response) {

		$(response).find(".runscript").each(function(index, script) {

			eval($(script).html());

		});

		$('#page-content').html(response);

		buildTimeout = setTimeout(function(){buildContent($('#page-content'));}, 1);

		if(!noscroll) {

			if(refreshScrlAnim) {

				refreshScrlAnim = 0;

				$(window).animate({scrollTop: 1}, 300);

			}

			else $(window).scrollTop(0)

		}

		return false;

	});

};



var LP = function(url)  {

	$("#menu-desktop").html($("#menu-desktop").html());

	mobileMenuClose();

	$("#language-selector").removeClass("open");

	refreshScrlAnim = 0;

	History.pushState('', '', url.replace('//','/'));

};


var isEmail = function(email) {

  var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;

  return regex.test(email);

};


var formSubmit = function(el, form, refresh, complete) {

	form = form ? form : $(el).closest('form');

	var url = $(form).attr('action') != "" ? $(form).attr('action') : document.location;

	var postdata = $(form).serializeArray();

	postdata.push({name: $(el).attr('name'), value: $(el).val()});

	if(refresh) {

		refreshContent(postdata, true, url);

	}

	else {

		loadXhr(url, postdata, function(response, data) {

			if(complete)complete(response, data);

		});

	}

};




$(document).ready(function() {

	FastClick.attach(document.body);

	History.Adapter.bind(window,'statechange',function() {

		refreshContent();

		return false;

	});

	buildContent(document.body);

	buildMenu();

});