window.addEvent('domready', function () {
	setInputClears();
	if (document.getElementById("banner")) {
		startBanner();
	}
	//addBookmark();
	var clix = new dwClickables({
		elements: $$('.productBox')
	});
	if (document.getElementById("txtQty")) {
		$('mainProductQuantityAdjustUp').addEvent('click', function () { quantityUp(); return false });
		$('mainProductQuantityAdjustDown').addEvent('click', function () { quantityDown(); return false });
		$('txtQty').addEvent('keyup', function () { checkIsQuantity() });
	}
});

function addBookmark() {
	var title = "Legal Highz";
	var url = "http://www.legalhighz.co.uk";
	if ((navigator.userAgent.toLowerCase().indexOf('chrome') > -1)) {
		$('bookmarklink').setStyle('display', 'none');
	} else if (window.sidebar) { // Firefox
		$('bookmarklink').addEvent('click', function () {
			window.sidebar.addPanel(title, url, "");
		});
	}
	// IE Favorite
	else if (window.external) {
		$('bookmarklink').addEvent('click', function () {
			window.external.AddFavorite(url, title);
		});
	}
	// Opera Hotlist
	else if (window.opera && window.print) {
		$('bookmarklink').setStyle('display', 'none');
	} else {
		$('bookmarklink').setStyle('display', 'none');
	}
}


function goToUrl(url) {
	window.location.href = url;
}

function quantityUp() {
	var tempNumber = $('txtQty').value.toInt();
	tempNumber++;
	$('txtQty').value = tempNumber;
}

function quantityDown() {
	var tempNumber = $('txtQty').value.toInt();
	tempNumber--;
	if (tempNumber != 0) {
		$('txtQty').value = tempNumber;
	} else {
		$('txtQty').value = 1;
	}
}

function checkIsQuantity() {
	$('txtQty').value = $('txtQty').value.toInt()
	if ($('txtQty').value == "NaN") {
		$('txtQty').value = "1";
	}
}

function hideMostProducts() {
	var productArray = $('productBoxLeft').getElements('.productBox');
	var tempCounter = 0;
	productArray.each(function (el) {
		tempCounter++;
		if (tempCounter > 20) {
			$(el).setStyle('display', 'none');
		}
	});
}

function changeDisplayedProducts(number) {
	$$("#productPages a").setStyle('font-weight', 'normal');
	var productArray = $('productBoxLeft').getElements('.productBox');
	var countNumber = number.toInt();
	var tempCounter = 0;
	productArray.each(function (el) {
		tempCounter++;
		if (tempCounter > countNumber) {
			$(el).setStyle('display', 'none');
		} else {
			$(el).setStyle('display', 'block');
		}
	});
}

function changePagination(number) {
	var productArray = $('productBoxLeft').getElements('.productBox');
	var countNumber = number * 20;
	var fromNumber = countNumber - 20;
	var tempCounter = 0;
	productArray.each(function (el) {
		tempCounter++;
		if (tempCounter <= countNumber && tempCounter > fromNumber) {
			$(el).setStyle('display', 'block');

		} else {
			$(el).setStyle('display', 'none');
		}
	});
}

function setFeaturedHeights() {
	var maximumFeaturedHeight = 0;
	var featuredProdsArray = $$('.productBox');
	featuredProdsArray.each(function (item) {
		if (item.offsetHeight > maximumFeaturedHeight) {
			maximumFeaturedHeight = item.offsetHeight;
		};
	});
	featuredProdsArray.setStyle('height', maximumFeaturedHeight);
}


function alertUser(alertMessage, messageLines) {
	if (alertMessage != "") {
		if (typeof document.body.style.maxHeight != 'undefined') {
			document.getElementById("userAlert").innerHTML = "<a href='javascript: closeAlert();'><div id='alertText'>" + alertMessage + "</div></a>";
			document.getElementById("userAlert").style.display = "block";
		}
		else {
			alert(alertMessage);
		}
	}
}

function closeAlert() {
	$("userAlert").fade('out');
}

function popUp(URL) {
	day = new Date();
	id = day.getTime();
	eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=1,location=0,statusbar=1,menubar=0,resizable=1,width=700,height=520,left = 610,top = 340');");
}

function getXmlHttpRequestObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	}
	else if (window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	}
	else {
		alert('Status: Cound not create XmlHttpRequest Object. Consider upgrading your browser.');
	}
}

var removeItemReq = getXmlHttpRequestObject();
function removeItem(basketItemId) {
	if (removeItemReq.readyState == 4 || removeItemReq.readyState == 0) {
		removeItemReq.open("POST", 'ajax/RemoveItem.aspx', true);
		removeItemReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
		removeItemReq.onreadystatechange = function () { removeItemResponse(basketItemId) };
		var param = "Id=" + basketItemId;
		removeItemReq.send(param);
	}
}

function removeItemResponse(basketItemId) {
	if (removeItemReq.readyState == 4) {
		var response = removeItemReq.responseText;
		window.location = "Basket.aspx";
	}
}


var updateItemReq = getXmlHttpRequestObject();
function updateQuantity(basketItemId, qty, psid) {
	if (updateItemReq.readyState == 4 || updateItemReq.readyState == 0) {
		updateItemReq.open("POST", 'ajax/UpdateQuantity.aspx', true);
		updateItemReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
		updateItemReq.onreadystatechange = function () { updateQuantityResponse(basketItemId) };
		var param = "Id=" + basketItemId + "&qty=" + qty + "&ProductSizeID=" + psid;
		updateItemReq.send(param);
		//alert(param);
	}
}

function updateQuantityResponse(basketItemId) {
	if (updateItemReq.readyState == 4) {
		var response = updateItemReq.responseText;
		window.location = "Basket.aspx";
	}
}

function startBanner() {
	/* Banner settings */
	var showDuration = 4000;
	var container = $('banner');
	var images = container.getElements('img');
	var currentIndex = 0;
	var interval;
	/* opacity and fade */
	images.each(function (img, i) {
		if (i > 0) {
			img.set('opacity', 0);
		}
	});
	/* worker */
	var show = function () {
		images[currentIndex].set('tween', { duration: '1000' }).fade('out');
		images[currentIndex = currentIndex < images.length - 1 ? currentIndex + 1 : 0].set('tween', { duration: '1000' }).fade('in');
	};
	/* start once the page is finished loading */
	window.addEvent('load', function () {
		interval = show.periodical(showDuration);
	});
}

function setInputClears() {
	$$('#leftBar input').each(function (item) {
		item.addEvent("focus", function () { if (this.value == this.defaultValue) this.set('value', ''); });
		item.addEvent("blur", function () { if (this.value == '') this.set('value', this.defaultValue); });
		return false;
	});
	$$('#leftBar textarea').each(function (item) {
		item.addEvent("focus", function () { if (this.value == this.defaultValue) this.set('value', ''); });
		item.addEvent("blur", function () { if (this.value == '') this.set('value', this.defaultValue); });
		return false;
	});
}

function createAccordion() {
	var myAccordion = new Accordion($('productBoxRight'), 'p.accordionToggle', 'div.inneraccordion', {
		opacity: false,
		onActive: function (toggler, element) {
			$('productBoxRight').getElements('p.accordionToggle').setStyles({
				'background-image': 'url("/common/accordion-in.png")',
				'background-repeat': 'no-repeat',
				'background-position': 'top right'
			});
			toggler.setStyles({
				'background-image': 'url("/common/accordion-out.png")',
				'background-repeat': 'no-repeat',
				'background-position': 'top right'
			});
		}
	});
}

function setUpFilterer() {
	if (document.getElementById("categorySelector")) {
		$("categorySelector").selectedIndex = 0;
		$("categorySelector").addEvent('change', function () {
			runFilter();
		});
	};
	if (document.getElementById("brandSelector")) {
		$("brandSelector").selectedIndex = 0;
		$("brandSelector").addEvent('change', function () {
			runFilter();
		});
	};
	if (document.getElementById("genderSelector")) {
		$("genderSelector").selectedIndex = 0;
		$("genderSelector").addEvent('change', function () {
			runFilter();
		});
	};
	if (document.getElementById("seasonSelector")) {
		$("seasonSelector").selectedIndex = 0;
		$("seasonSelector").addEvent('change', function () {
			runFilter();
		});
	};
	$('emptyListings').setStyle('display', 'none');
	runFilter();
}

function runFilter() {
	$('emptyListings').setStyle('display', 'none').fade('out');

	var findBrand = "0";
	var findCategory = "0";
	var findGender = "0";
	var findSeason = "0";

	if (document.getElementById("brandSelector")) {
		findBrand = $('brandSelector').value;
	}
	if (document.getElementById("categorySelector")) {
		findCategory = $('categorySelector').value;
	}
	if (document.getElementById("genderSelector")) {
		findGender = $('genderSelector').value;
	}
	if (document.getElementById("seasonSelector")) {
		findSeason = $('seasonSelector').value;
	}

	var productArray = $('productBoxLeft').getElements('.productBox');

	productArray.setStyle('display', 'block').fade('in');

	productArray.each(function (el) {
		if (findBrand != "0") {
			if (el.className.contains("brand" + findBrand) != true) {
				$(el).setStyle('display', 'none').fade('out');
			}
		}
		if (findCategory != "0") {
			if (el.className.contains("category" + findCategory) != true) {
				$(el).setStyle('display', 'none').fade('out');
			}
		}
		if (findGender != "0") {
			if (el.className.contains("gender" + findGender) != true) {
				$(el).setStyle('display', 'none').fade('out');
			}
		}
		if (findSeason != "0") {
			if (el.className.contains("season" + findSeason) != true) {
				$(el).setStyle('display', 'none').fade('out');
			}
		}
	});

	var visibleProducts = 0;

	productArray.each(function (el) {
		if (el.getStyle('display') == "block") {
			visibleProducts++;
		}
	});

	if (visibleProducts == 0) {
		$('emptyListings').setStyle('display', 'block').fade('in');
	}
}

function setProductOrder(orderOrder) {
	var productArray = $('productBoxLeft').getElements('.productBox');

	productArray.each(function (el) {

		alert(el.className);
	});

	//	var mysort = new Fx.Sort($$('div.productBox'), {
	//		transition: Fx.Transitions.Back.easeInOut,
	//		duration: 1000
	//	});
	//	mysort.sortByElements();
	//	mysort.rearrangeDOM();
}
