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

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

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

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 makeDefaults = function () {
	var inputs = document.getElementsByTagName('INPUT');
	var i = inputs.length;
	while (i-- > 0) {
		if (inputs[i].type == 'text' && inputs[i].value && inputs[i].className && inputs[i].className == 'defined') {
			inputs[i].onfocus = function () {
				if (this.value == this.defaultValue) {
					this.value = '';
				}
			};
			inputs[i].onblur = function () {
				if (!this.value) {
					this.value = this.defaultValue;
				}
			};
		}
	}
};

var changeDelivery = function (input) {
	var delivery = input.nextSibling.nextSibling.innerHTML.replace(/[^0-9\.]+/g, '');
	var product = document.getElementById('price-product').innerHTML.replace(/[^0-9\.]+/g, '');
	var tax = document.getElementById('price-tax').innerHTML.replace(/[^0-9\.]+/g, '');
	
	var sum = parseFloat(delivery, 10) + parseFloat(product, 10) + parseFloat(tax, 10);
	
	document.getElementById('price-total').innerHTML = 'Total: $' + sum.toFixed(2);
};

var sendMsg = function (event) {
	var event = event || false;

	if (event == false || event != false && event.keyCode == '13') {
		this.form.submit();
	}
};

var showPopup = function (link, width, height) {
	var left       = screen.width / 2 - width / 2;
	var top        = screen.height / 2 - height / 2;
	window.open(link.href, '_blank', 'status=no,dependent=yes,modal=yes,scrollbars=0,height=' + height + ',width=' + width + ',left=' + left + ',top=' + top);
	return false;
};

var changePrice = function (input) {
	var price = parseFloat(input.parentNode.getElementsByTagName('A')[0].innerHTML.replace(/[^\d\.]+/g, ''), 10);
	var spans = input.parentNode.parentNode.parentNode.getElementsByTagName('SPAN');
	var i = spans.length;
	while (i-- > 0) {
		if (spans[i].className && spans[i].className.indexOf('price') != -1) {
			spans[i].innerHTML = '$' + price.toFixed(2);
		}
	}
};

var sendCode = function (button) {
	var parent = button.parentNode.parentNode;
	var inputs = parent.getElementsByTagName('INPUT');
	var input = inputs[0];
	var span = parent.getElementsByTagName('SPAN')[1];
	(new request).get('/scripts/requests.php?action=discount&code=' + input.value, function (req) {
		if (!span) {
			span = document.createElement('SPAN');
			parent.appendChild(span);
		}
		if (req.responseText == -1) {
			span.innerHTML = 'Special Offer Code Wrong or Expired.';
		} else {
			parent.firstChild.innerHTML = parent.firstChild.firstChild.nodeValue + ' <strong>' + input.value + '</strong><input type="hidden" name="code" value="' + input.value + '" />';
			var data = req.responseText.split(/\|!\|/);
			span.innerHTML = data[0];

			var subtotal = document.getElementById('price-product');
			var delivery = document.getElementById('delivery-price');
			var total = document.getElementById('price-total');
			subtotal.innerHTML = subtotal.innerHTML.replace(/(.+\$).+/, '$1' + data[1]);
			delivery.innerHTML = delivery.innerHTML.replace(/(.+\$).+/, '$1' + data[2]);
			total.innerHTML    = total.innerHTML.replace(/(.+\$).+/, '$1' + data[3]);
		}
	});
};

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

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

window.onload = function () {
	makeDefaults();
	initLoading();

	var search = document.getElementById('search-field');
	if (search) {
		if (document.addEventListener) {
			search.addEventListener('keydown', sendMsg, true);
		} else {
			search.attachEvent('onkeydown', sendMsg);
		}
	}

	initHighSlide();
};
