/*****************************   anDeRan   ************************************/

var is_ie  = !!document.uniqueID;
var is_ie6 = is_ie && navigator.appVersion.match(/MSIE (5.5|6)/);

var s_interval;

if (is_ie6) {
	try {
		document.execCommand("BackgroundImageCache", false, true);
	} catch(err) {}
}

if (is_ie) {
	var XMLHttpRequest = function () {
		return (new ActiveXObject("Msxml2.XMLHTTP")) || (new ActiveXObject("Microsoft.XMLHTTP")) || false;
	};
}

var request = function () {
	try {
		var link = new XMLHttpRequest();
	} catch (e) {
		alert('Your browser doesn\'t support XMLHttpRequest. Please enable XMLHTTPRequest if disabled or update if your browser is old.');
	}

	var loading = document.getElementById('ajax-loading');
	document.onmousemove = function (e) {
		e = e || event;
		loading.style.display = 'block';
		loading.style.top = (e.clientY + (document.documentElement.scrollTop || window.scrollY || document.body.scrollTop) - 16) + 'px';
		loading.style.left = (e.clientX + (document.documentElement.scrollLeft || window.scrollX || document.body.scrollLeft) - 16) + 'px';
	};

	this.get = function (path, analyze, params, no_loading) {
		if (no_loading) {
			loading.style.display = 'none';
		}
		link.onreadystatechange = function () {
			if (link.readyState == 4 && link.status == 200) {
				loading.style.display = 'none';
				document.onmousemove = null;
				if (analyze) {
					analyze(link, params);
				}				
			}
		};
		link.open('GET', path, true);

		if (is_ie6) {
			link.setRequestHeader('If-Modified-Since', 'Sat, 1 Jan 2000 00:00:00 GMT');
		}
		link.send('');
	};
};

var preloadImgs = function () {
	var i = arguments.length;
	while (i-- > 0) {
		(new Image()).src = '/images/' + arguments[i];
	}
};

var initDefaults = function () {
	var inputs = document.getElementsByTagName('INPUT');
	var i = inputs.length;
	while (i-- > 0) {
		if (inputs[i].type == 'text' && inputs[i].className.indexOf('def-value') != -1) {
			inputs[i].onfocus = function () {
				if (this.value == this.defaultValue) {
					this.value = '';
				}
			};
			inputs[i].onblur = function () {
				if (!this.value) {
					this.value = this.defaultValue;
				}
			};
		}
	}
};

var setOpacity = function (obj, num) {
	if (is_ie && !is_ie6 && obj.style.filter != undefined) {
		obj.style.filter = 'alpha(opacity=' + (num * 100) + ')';
	} else {
		obj.style.opacity = num;
	}
};

var addToCart = function (input) {
	var form = input.form;
	input.blur();
	input.disabled = true;

	var total = 0;
	var url = '/scripts/requests.php?action=cart';
	var key, i = form.elements.length;
	while (i-- > 0) {
		if (form.elements[i].nodeName.toUpperCase() == 'INPUT') {
			if (form.elements[i].type.toUpperCase() == 'CHECKBOX' && form.elements[i].checked) {
				key = form.elements[i].name.replace(/.+\[(\d+)\]$/, '$1');
				url += '&' + form.elements[i].name + '=' + form.elements['amount[' + key + ']'].value;
				total++;
			}
		}
	}

	if (total) {
		(new request).get(url, function (req) {
			var cart = document.getElementById('cart');
			cart.getElementsByTagName('P')[0].innerHTML = req.responseText;
			var added = document.createElement('DIV');
			added.id = 'item-added';
			cart.appendChild(added);

			var opacity = 0.3, step = 0.05;
			setOpacity(added, opacity);
			s_interval = setInterval(function () {
				opacity += step;
				if (opacity > 1) {
					clearInterval(s_interval);
					setTimeout(function () {
						var opacity = 1;
						setOpacity(added, opacity);
						s_interval = setInterval(function () {
							opacity -= step;
							if (opacity < 0) {
								clearInterval(s_interval);
								added.parentNode.removeChild(added);
								input.disabled = false;
							} else {
								setOpacity(added, opacity);
							}
						}, 30);
					}, 2000);
				} else {
					setOpacity(added, opacity);
				}
			}, 30);
		});
	} else {
		input.disabled = false;
	}

	return false;
};

var initLoading = function () {
	var loading = document.createElement('DIV');
	loading.id = 'ajax-loading';
	loading.style.display = 'none';
	document.body.appendChild(loading);
};

var initArticles = function () {
	var articles = document.getElementById('articles');
	if (articles) {
		var i = articles.tBodies[0].rows.length;
		while (i-- > 0) {
			articles.tBodies[0].rows[i].onmouseover = function () {
				this.className = 'row-over';
			};
			articles.tBodies[0].rows[i].onmouseout = function () {
				this.className = '';
			};
		}		
	}
};

var initHighSlide = function () {
	if (typeof hs == 'object') {
		hs.addSlideshow({
			slideshowGroup: 'gallery',
			interval: 5000,
			repeat: false,
			useControls: true,
			fixedControls: 'fit',
			overlayOptions: {
				opacity: .6,
				position: 'bottom center',
				hideOnMouseOut: true
			}
		});
	}
};

var initIeFixes = function () {
	if (is_ie6) {
		var i = document.links.length;
		while (i-- > 0) {
			if (document.links[i].className == 'highslide') {
				document.links[i].onmouseover = function () {
					this.firstChild.style.borderColor = '#FC0';
				};
				document.links[i].onmouseout = function () {
					this.firstChild.style.borderColor = '#FFF';
				};
			}
		}
	}
};

var getSelect = function (select) {
	var sub, parent = select;
	(new request).get('/scripts/requests.php?action=select&id=' + select.options[select.selectedIndex].value, function (req) {
		if (parent.name == 'filter1') {
			sub = parent.form.elements['filter2'];
		}
		if (parent.name == 'filter2') {
			sub = parent.form.elements['filter3'];
		}
		if (sub) {
			var select = req.responseXML.documentElement;
			var opts = select.childNodes.length;
			var i, j, opt, t_opt;
			opt = select.childNodes;

			t_opt           = document.createElement('OPTION');
			t_opt.value     = sub.options[0].value;
			t_opt.innerHTML = sub.options[0].text;
			sub.innerHTML = '';
			sub.appendChild(t_opt);
			t_opt = null;

			for (i = 0; i < opts; i++) {
				t_opt           = document.createElement('OPTION');
				t_opt.value     = opt[i].getAttribute('value');
				t_opt.innerHTML = opt[i].firstChild.nodeValue;
				sub.appendChild(t_opt);
				t_opt = null;
			}
		}
	});
};

var makeURL = function (name, val) {
	var parts = location.href.split(/\?/);
	if (parts[1]) {
		parts[1] = '?' + parts[1];
		var pos = parts[1].indexOf(name + '=');
		if (pos != -1) {
			pos = pos + name.length + 1;
			return parts[0] + parts[1].substring(0, pos) + parts[1].substring(pos).replace(/^[a-z0-9]+/, val);
		} else {
			return parts[0] + parts[1] + '&' + name + '=' + val;
		}
	} else {
		return parts[0] + '?' + name + '=' + val;
	}
};

var setPerPage = function (select) {
	location.href = makeURL('per', select.options[select.selectedIndex].value);
};

var changeTotal = function () {
	var articles = document.getElementById('articles');
	var inputs = articles.getElementsByTagName('INPUT');
	var i = inputs.length;
	var price, sum = 0;
	while (i-- > 0) {
		price = parseFloat(inputs[i].parentNode.parentNode.cells[2].innerHTML);
		sum += price * inputs[i].value;
	}

	var total = document.getElementById('total');
	var data = total.innerHTML.split(' ');
	total.innerHTML = sum.toFixed(2) + ' ' + data[1];
};

var showPhoto = function (pointer, photo, width, height) {
	if (!window.hint) {
		window.hint = document.createElement('DIV');
		hint.id = 'hint';
		hint.style.visibility = 'hidden';
		document.body.insertBefore(hint, document.body.firstChild);
	}
	hint.style.visibility = 'hidden';
	hint.style.display = 'block';
	hint.innerHTML = '<img src="' + photo + '" width="' + width + '" height="' + height + '" />';

	var inner = window.innerHeight ? window.innerHeight : document.body.clientHeight;
	pointer.onmousemove = function (e) {
		e = e || event;
		hint.style.visibility = 'visible';
		var by_top = (document.documentElement.scrollTop || window.scrollY || document.body.scrollTop);
		hint.style.top = (e.clientY < inner - height - 25 ? e.clientY + by_top + 35 : e.clientY + by_top - height + 10) + 'px';
		hint.style.left = e.clientX + (document.documentElement.scrollLeft || window.scrollX || document.body.scrollLeft) + 10 + 'px';
	};
	pointer.onmouseout = function () {
		hint.style.display = 'none';
	};
};

var initCartForm = function () {
	var form = document.getElementById('cart-form');
	if (form) {
		var spans = form.getElementsByTagName('SPAN');
		var s_timeout = setTimeout(function () {
			var opacity = 0.95, _step = 0.05;
			var s_interval = setInterval(function () {
				opacity -= _step;
				if (opacity < 0) {
					clearInterval(s_interval);
					var i = spans.length;
					while (i-- > 0) {
						if (spans[i].className == 'hint') {
							spans[i].parentNode.removeChild(spans[i]);
						}
					}
				} else {
					var i = spans.length;
					while (i-- > 0) {
						if (spans[i].className == 'hint') {
							setOpacity(spans[i], opacity);
						}
					}
				}
			}, 30);
		}, 2000);
	}
};

window.onload = function () {
	initLoading();
	initDefaults();
	initArticles();
	initHighSlide();
	initIeFixes();
	initCartForm();
	preloadImgs('common/added.png');
};

