// JavaScript Document
(function(a){if(window.DOMParser==undefined&&window.ActiveXObject){DOMParser=function(){};DOMParser.prototype.parseFromString=function(c){var b=new ActiveXObject("Microsoft.XMLDOM");b.async="false";b.loadXML(c);return b}}a.xmlDOM=function(b,h){try{var d=(new DOMParser()).parseFromString(b,"text/xml");if(a.isXMLDoc(d)){var c=a("parsererror",d);if(c.length==1){throw ("Error: "+a(d).text())}}else{throw ("Unable to parse XML")}}catch(f){var g=(f.name==undefined?f:f.name+": "+f.message);if(a.isFunction(h)){h(g)}else{a(document).trigger("xmlParseError",[g])}return a([])}return a(d)}})(jQuery);


$j(document).ready(function(){
var windowLeft = '';
var windowTop = '';
var product = '';
var ql = '#quicklook';
var activeSize = '';
var nextImg = '';
//var slideStarted = false;
var checkSize = true;

nextImg = $j(this).next().attr('alt');
var zoomOn = false;

/*ADD ZOOM FUNCTION*/
$j('#quicklook').livequery(function(){ 
	var zoomBoxW = 300;
	var zoomBoxH = 300;
	$j(this).mousemove(function(e){
		pageX = e.pageX;
		pageY = e.pageY;
		var elOffset = $j('#ql-image').offset();
		var tstImg = $j('#ql-loupe img').attr('src');
		if (tstImg != zoomImg) { //zoom image is defined in gallery.js
			$j('#ql-loupe').html('<img src="' + zoomImg + '" />');
		}
		var loupeLeft = 291 + (e.pageX - elOffset.left - (zoomBoxW / 2)) + "px";
		var loupeTop = 50 + (e.pageY - elOffset.top - (zoomBoxH /2)) + "px";
		$j('#ql-loupe').css({'top' : loupeTop, 'left' : loupeLeft});
		var imgLeft = (elOffset.left - e.pageX ) * 2 + (zoomBoxW / 2);
		var imgTop = (elOffset.top - e.pageY ) * 2 + (zoomBoxH / 2);
		$j('#ql-loupe img').css({'marginLeft': imgLeft, 'marginTop': imgTop});
		
		if ((elOffset.left < e.pageX) && (elOffset.top < e.pageY) && (e.pageY < (elOffset.top + 418 )) && (e.pageX < (elOffset.left + 435 )) && (zoomOn)) {
			if (slideStarted == true) { clearInterval(slideshow); slideStarted = false; }		
			$j('#ql-loupe').fadeIn(50);
		
		} else {
			$j('#ql-loupe').fadeOut(50);
		}
	});
});

$j('#ql-image, #ql-zoom-msg').click(function(e) {
	zoomOn = true; // ACTIVATE ZOOM VARIABLE
	$j('#ql-zoom-msg').css('background-position', '0px 23px');
	if (slideStarted == true) { clearInterval(slideshow); slideStarted = false; }		
	$j('#ql-loupe').fadeIn(50);
});
$j('#ql-loupe').click(function() {
	zoomOn = false; // DE-ACTIVATE ZOOM VARIABLE
	$j('#ql-loupe').fadeOut(50);
	$j('#ql-zoom-msg').css('background-position', '0px 0px');
});

/* THIS WAS CREATED TO ADDRESS IMPROPERLY NAMED IMAGES THAT ARE ACTUALLY THUMBNAIL SIZE */
function checkImgSize(image_loc, imgHolder) {
	var width = thWidth;
	if (imgHolder == '#ql-image') { var holderTst = false; } else { var holderTst = true; }
	if (holderTst == false) {
		var img = new Image();
		$j(img).load(function() {
			if (imgHolder == '#ql-image') {
				width = img.width;
				if (width < thWidth) { image_loc = image_loc.replace('2pa', '1th');  checkSize = false; }
				else { checkSize = true; }
				loadImage(image_loc, imgHolder);
			}
		}).attr('src', image_loc);
	}
}

/* DEFINE SLIDESHOW FUNCTION */
function viaSlide() {
	if (!slideStarted) { slideStarted = true; }
	slideshow = setInterval(function(){
		var imgLoc = $j('#ql-views a.active').next().attr('alt');	
		if (!imgLoc) {
			$j('#ql-views a:first').addClass('active');
			var imgLoc = $j('#ql-views a.active').attr('alt');
		}
		imgLoc = imgLoc;
		loadImage(imgLoc, '#ql-image');
	}, 3000);
}

/* STOP SLIDESHOW FUNCTION */
function stopSlide() {
	if (slideStarted) {
		clearInterval(slideshow); //stop image rotation
	}
}

/* GET AND DISPLAY PRODUCT DETAILS */
function getDetails(product, cartOpen) {
	var qlViews = '';
	var sizes = '';
	stopSlide();
	qOpen = true;
	$j('#ql-size, .ql-disc, #ql-price').show();
	$j('#ql-image').html('<img src="/App_Themes/Default/2010/images/ql-loading.gif" />');
	$j('#ql-views a.active').removeClass('active');
	$j('#ql-views a').attr('alt', '');
	$j('#ql-price h3, #curr-price').text('');
	if (cartOpen == false) {
		$j('#ql-thumbs').html('');
		$j('#ql-color').text('');
	}	
	$j.ajax({
		url: 'xml/productDetails.aspx',
		type: 'GET',
		data: 'p=' + product,
		dataType: 'text',
		success: function(xml) {
			var text = xml;
			var position = text.indexOf('product') - 1;
			if (position) {
				text = text.substr(position);
				var tags = ['<li>', '</li>', '<br />', '<br/>', '<br>', '<ul>', '</ul>', '-', '^'];
				jQuery.each(tags, function() {
					var intIndexOfMatch = text.indexOf(this); 
					while (intIndexOfMatch != -1){
						text = text.replace(this, '' )				  
						intIndexOfMatch = text.indexOf(this);
					}
				});
			}

			var $jxml = $j.xmlDOM(text);
			if (cartOpen == false) {
				$jxml.find('product').each(function(){
					var text = $j(this).text();
					var prodName = $j(this).children('title').text();
					var prodDesc = $j(this).children('description').text();
					
					$j('#ql-desc').html('<p>' + prodDesc + '</p>');
					//$j('#ql-image').html('<img src="http://www.viaspiga.com/flashproductimages/' + product + '/2pa.jpg" />');
					$j('#ql-name').html('<h2>' + prodName + '</h2>');
				});
			}
			$jxml.find('variant').each(function(){
				var thisId = $j(this).children('id').text();
				var thumbImg = $j(this).children('thumbnail').text();
				var color = $j(this).children('title').text();
				var colorName = $j(this).children('title').text();
				if (thisId != product) {
					if (cartOpen == false) {
						$j('#ql-thumbs').prepend('<a href="#' + thisId + '" title="' + colorName + '"><img alt="' + color + '" src="http://www.viaspiga.com/' + thumbImg + '" /></a>');
					}
				} else {					
					if (cartOpen == false) {
						$j('#ql-color').text(color);
					}
					if (cartOpen == false) {
						$j('#ql-thumbs').append('<a href="#' + thisId + '" class="active" title="' + colorName + '"><img alt="' + color + '" src="http://www.viaspiga.com/' + thumbImg + '" /></a>');
					}
					var origPrice = $j(this).find('originalPrice').text();
					var dispPrice = $j(this).find('displayPrice').text();
					if (dispPrice != origPrice) {
						$j('#ql-price h3').html('Original Price:<span id="orig-price">$' + origPrice + '</span>');
					}
					$j('#curr-price').text(dispPrice);
					$j(this).find('size').each(function(){
						var sizeId = $j(this).children('value').text();
						var size = $j(this).children('text').text();
						var p = size.indexOf('(');
						if (p >= 0) {
							p = p-1;
							size = size.substr(0, p);
						}
						if (size.indexOf('000') > -1) {
								sizes += '<a href="#' + sizeId + '" class="active" style="display:none">' + size + '</a>';
						}else if (size == activeSize) {
							sizes += '<a href="#' + sizeId + '" class="active">' + size + '</a>';
						} else {
							sizes += '<a href="#' + sizeId + '">' + size + '</a>';
						}
					});
					if (sizes != '') {
						if (sizes.indexOf('>000') > -1 ) {
							$j('#sizes').html(sizes);
							$j('#ql-size, .ql-disc').hide();
						} else {
							$j('#sizes').html(sizes);
						}
					}
					var first = true;
					$j(this).find('photo').each(function(){
						var imgLoc = $j(this).text();
						var imgLoc = 'http://www.viaspiga.com' + imgLoc;
						if ((imgLoc.indexOf('1th') < 0) && (imgLoc.indexOf('Shoes_PL0') < 0)) {
							if (first) { 
								first = false;
								if (checkSize == false) { imgLoc = imgLoc.replace('2pa', '1th'); } //replace linked image if it's a thumbnail - set in loadImage function
								qlViews += '<a href="#" class="active" alt="' + imgLoc + '"><img src="/App_Themes/Default/2010/images/pixel.gif" /></a>'; 
							}
							else { qlViews += '<a href="#" alt="' + imgLoc + '"><img src="/App_Themes/Default/2010/images/pixel.gif" /></a>'; }
						}
					});
				}
			});
			if (qlViews == '') { 
				$j('#ql-views').html('<p>no product views available</p>');
				//$j('#curr-price, #sizes').html('<p>not available</p>');
				$j('#curr-price').html('<p>not available</p>');
				$j('#ql-size, #ql-price').hide();
				$j('#ql-image').html('<img alt="product not available" src="/App_Themes/Default/2010/images/ql-not-available.gif" />');	
				$j('#ql-add').hide();
			}
			else {
				// LOAD PRODUCT IMAGE
				var imgLoc = 'http://www.viaspiga.com/flashproductimages/' + product + '/2pa.jpg';
				var imgHolder = '#ql-image';
				/* CHECK TO SEE IF WE'RE GOING TO END UP LOADING A THUMBNAIL IMAGE */
				checkImgSize(imgLoc, imgHolder); //THIS CONTAINS THE loadImage FUNCTION
				$j('#ql-views').html(qlViews).livequery(function() {
					viaSlide();
				});
				$j('#ql-add').fadeIn();
			}
			$jxml.find('variants variant:contains(' + product + ')').each(function(){
				var thisColor = $j(this).children('id').text();
			});			

		},
		error:function (xhr, ajaxOptions, thrownError){
			alert(xhr.status);
			alert(thrownError);
		} 
	});

}

	/* DEFINE QUICKLOOK CLICK BINDING */
	$j('.shoe-holder').livequery('click', function() {
		closeCart(true);
		 //var windowLeft = ($j(window).width() - $j(ql).width()) / 2;
		var windowTop = Math.round(($j(window).height() - 539) / 2);
		if (windowTop > $j('#TopMargin').height()) {
			windowTop = (windowTop - 10) + 'px';
		} else {
			windowTop = '0px';	
		}
		var product = $j(this).attr('id');
		if ((grid) && (noFixed)) {
			var scrolledY = $j(window).scrollTop();
			windowTop = parseInt(windowTop.replace('px', ''));
			windowTop = (windowTop + scrolledY) + 'px';
		}
		$j('#ql-content').css({
			//left: windowLeft,
			marginTop: windowTop
		})
		$j(ql).fadeIn(400, function() {
			getDetails(product, false, '');
		});		
		return false;
	});
	
	/* CLOSE QUICKLOOK */
	function closeQL(addCart){
		if (slideStarted == true) { clearInterval(slideshow); slideStarted = false; }
		qOpen = false;
		if (addCart == true) {
			addToCart();
			$j(ql).fadeOut(400, function() {
				cartOpen();			 
			});
		} else {
			$j(ql).fadeOut(400, function() {
				$j('#ql-image').html('<img src="/App_Themes/Default/2010/images/ql-loading.gif" />');							 
			});
		}
		$j('#ql-desc, #ql-image, #ql-name, #ql-price h3, #curr-price, #ql-thumbs, #ql-color, #sizes').empty();
		activeSize = '';
		zoomOn = false;
	}
	
	$j(ql + ' .close').click(function(){
		closeQL();
		return false;
	});
	$j('body').click(function(){
		closeQL();
	});
	$j('#ql-size a, #ql-thumbs a').livequery('click', function() {
		$j(this).siblings().removeClass('active');
		$j(this).addClass('active');
		var sizeTst = $j(this).parent().attr('id');
		if (sizeTst == 'sizes') { 
			activeSize  = $j(this).text();
		} else {
			var cN = $j(this).attr('title'); 
			$j('#ql-color').text(cN); 
			var product = $j(this).attr('href');
			var position = product.indexOf('#') + 1;
			product = product.substr(position);
			//product = product.replace('#', '');
			getDetails(product, true);
		}
		return false;
	});
	$j('a.add-to-cart').click(function() {
		stopSlide();
		var sizeActive = $j('#sizes a.active').size();
		if (sizeActive > 0) {
			closeQL(true);
		} else {
			alert('Please Select a Size');	
		}
		return false;
	});
	$j(ql).click(function(event){
		event.stopPropagation();
	});
	$j('#ql-views a') 
		.livequery('click', function() { 
			clearInterval(slideshow);
			slideStarted = false;
			$j('#ql-views a.active').removeClass('active');
			$j(this).addClass('active');
			var imgLoc = $j(this).attr('alt');
			if (imgLoc != '') {
				var imgHolder = '#ql-image';
				var img = new Image();
				$j(imgHolder).html('');
				loadImage(imgLoc, imgHolder);
			}
			return false; 
		});
});