/*----------------------------------------------------------------------------------------------------------------------------
 * Loader
 */
var Loader = {
	initialized: 0,
	stack: [],

	/** push function on stack */
	push: function(funct) {
		this.stack.push(funct);
	},

	/** execute functions stored in stack */
	start: function() {
		if (this.initialized == 0) {
			for (var i=0; i<this.stack.length; i++) {
				this.stack[i]();
				this.stack[i] = null;
			}
			this.stack = [];
		}
		this.initialized += 1;
	}
}

var _init = function() {
	Loader.start();
}
if (document.addEventListener) {
    document.addEventListener("DOMContentLoaded", _init, false);
}
window.onload = _init;

_js_hide = function () {
	var dom = document.getElementsByTagName('*');
	for(var i=0; i<dom.length; i++) {
		if(dom[i].className && dom[i].className.match('js_hide')) {
			dom[i].style.display = 'none';
		}
		if(dom[i].className && dom[i].className.match('js_show')) {
			dom[i].style.display = '';
		}
	}
}
Loader.push(_js_hide);

/*----------------------------------------------------------------------------------------------------------------------------
 * Zajax (xmlhttp transport)
 */
var Zajax = {};
Zajax.Request = function(url, params) {
	    var xmlHttpReq = false;
	    var self = this;
	    // Mozilla/Safari
	    if (window.XMLHttpRequest) {
	        self.xmlHttpReq = new XMLHttpRequest();
	    }
	    // IE
	    else if (window.ActiveXObject) {
	        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
	    }
	    self.xmlHttpReq.open(params.method || 'get', url, true);
	    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	    self.xmlHttpReq.onreadystatechange = function() {
	        if (self.xmlHttpReq.readyState == 4) {
	            params.onComplete(self.xmlHttpReq.responseText);
	        }
	    }
	    self.xmlHttpReq.send(url);
	}


String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ''); };

/*----------------------------------------------------------------------------------------------------------------------------
 * Shop by brand
 */
var Brand = {
	select: function(brand) {
		var zajax = new Zajax.Request('?_event_=z_search_kit&brand='+brand, {method: 'get', onComplete: Brand.onSelect});
		var options = document.getElementById('i-search_in2').options;
		for(var i=0; i<options.length; i++) {
			options[i] = null;
		}
		options.length = 0;
		options[0] = new Option('Please wait...', '');
	},
	onSelect: function(response) {
		document.getElementById('js_insert_category').innerHTML = response;
		document.getElementById('i-search_in2').focus();
	}
}
var Search = {
	submit: function() {
		var fbrand = document.getElementById('i-search_in');
		var fcategory = document.getElementById('i-search_in2');
		var fquery = document.getElementById('i-search-for');
		var fake = document.getElementById('i-search-for_fake');
		var brand = '', category = '', query = [];

		if (fbrand.value != 0) brand = fbrand.options[fbrand.selectedIndex].text;
		if (fcategory.value != 0) category = fcategory.options[fcategory.selectedIndex].text;

		if (category) query.push(category.trim());
		if (brand) query.push(brand.trim());
		if (fquery.value) query.push(fquery.value.trim());
		fake.value = query.join(' ');
		fquery.form.submit();
	},
	onEnter: function(event) {
		var key = (window.event) ? window.event.keyCode : event.keyCode;
			if (key == 13) {
			Search.submit();
			return false;
		}
		else return true;
	}
}

Loader.push(function() { if(document.getElementById('i-search-for')) { document.getElementById('i-search-for').onkeydown = Search.onEnter; } });

/*----------------------------------------------------------------------------------------------------------------------------
 * Menu (brands)
 */
var Menu = {
	init: function() {
		var buttons = document.getElementById('main-navigation').getElementsByTagName('li');
		for(var i=0; i<buttons.length;i++) {
			if(buttons[i].className.match('btn_menu')) {
				this.attach(buttons[i]);
			}
		}
	},

	attach: function(element) {
		var data = element.getElementsByTagName('ul');
		if (data.length) {
			element.onmouseover = function() { data[0].style.display = ''; };
			element.onmouseout = function() { data[0].style.display = 'none'; };
			data[0].onmouseover = function() { this.style.display = ''; };
			data[0].onmouseout = function() { this.style.display = 'none'; };
		}
	}
}
Loader.push(function() { Menu.init() });

/*----------------------------------------------------------------------------------------------------------------------------
 * Login
 */
var Login = {
	show: function(myaccount) {
		var ma = document.getElementById('js_myaccount');
		if (ma) {
			ma.value = (myaccount == true);
		}
		var login = document.getElementById('login');
		if (login.style.display == '') {
			login.style.display = 'none';
		} else {
			login.style.display = '';
			if (typeof cmCreateConversionEventTag == 'function')
				cmCreateConversionEventTag("Login","1","LoginProcess","10");
		}
		return true;
	},
	hide: function() {
		var login = document.getElementById('login');
		login.style.display = 'none';
		return true;
	}
}
Loader.push(function() {
	var login = document.getElementById('login');
	if(login.style.display != 'none') { login.style.display = 'none'; login.style.display = '';}
});

Loader.push(function() {
	var search = document.getElementById('i-search-for');
	search.onfocus = function() { this.style.background = '#FFFFFF'; };
});