


//-------------------------------------------------------------------------------------------	DOCUMENT READY


	jQuery(document).ready(function($){
	
	//AddToCart = NewAddToCart;
	
	//Tabs script
		//formatProductTabs();
		
	//Format pagination
		formatPagination();
		
	//Add cover to product tittle
		addImgToSmallProdutTitle();
	
	//Remove grouping row if there is no grouping for this product
		removeEmptyAttributeRow();
		
	//Set current parent sub nav item
		setCurrentSection();
		
		cartSumString = jQuery('#hidden-cart-sum').html();
		
		jQuery('.lp-add-to-cart').live('click',function(){
			var count = 0;
			var oTimeout = setInterval(function(){
				
				if(count > 1000)
				{
					clearInterval(oTimeout);
					return;	
				}
				
				var oSum = jQuery('#hidden-cart-sum');
				if(oSum && (oSum.html().length > 0) &&  (oSum.html() != cartSumString))
				{
					clearInterval(oTimeout);	
					parseCartSummary(oSum.html());	
				}
				
				
				count += 1;	
			},60);	
		});
	
	});




//-------------------------------------------------------------------------------------------	PUBLIC PROPERTIES

	
	var ratingDrawer = null;
	
	var cartSumString = '';

//-------------------------------------------------------------------------------------------	PUBLIC METHODS

function setCurrentSection()
{
	var sPathname = location.pathname.toString();
	
	jQuery('#sub-nav ul:first').children().each(function(){
		var e = jQuery(this);
		e.find('a').each(function(){
			if(sPathname.toLowerCase().indexOf(jQuery(this).attr('href').toLowerCase().replace(/https*\:\/\/[a-zA-Z.]*\//gi,'')) != -1)e.addClass('selected');	
		});
	});	
}

function addFacebookButton()
{
	var winLoc = window.location.toString();
	jQuery('.productLarge .facebook').html('<iframe src="http://www.facebook.com/plugins/like.php?href=' + decodeURIComponent(winLoc) + '&amp;send=true&amp;layout=button_count&amp;width=90&amp;show_faces=false&amp;action=like&amp;colorscheme=light&amp;font=arial&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:90px; height:21px;" allowTransparency="true"></iframe>');	
}


function removeEmptyAttributeRow()//Removes the epty grouping row if a product is not grouped
{
	var grouping = jQuery('.productLarge').find('tr.grouping');
	if(grouping.length > 0 && grouping.find('select').length == 0)grouping.hide();	
}

function addImgToSmallProdutTitle()//Adds a transparent png which is used to truncate long product titles in list view
{
	jQuery('.productSmall').find('h2 a').each(function(){
		jQuery('<img src="/assets-img/layout/bkg-product-title.png" width="129" height="20" class="png-fix" />').appendTo(this);
	});	
}

function formatPagination()
{
	var pagHolder = jQuery('.shop-main .footer .pagination-holder');
	var oUl = jQuery('<ul class="pagination"></ul>').appendTo(pagHolder);
	
	jQuery('.shop-main .footer #pagination').contents().each(function(){
		if(this.nodeType == '3' && jQuery.trim(this.nodeValue).length > 0)
		{
			jQuery(this).wrap('<span class="current"></span>').parent().detach().wrap('<li></li>').parent().appendTo(oUl);
		} else if(this.nodeType == '1'){
			jQuery(this).detach().wrap('<li></li>').parent().appendTo(oUl);	
		} else {}
	});
	
	pagHolder.children('a').each(function(){
		var oA = $(this).detach();
		if(jQuery.trim(oA.text().toLowerCase()) == 'next')
		{
			oUl.append(oA.wrap('<li class="pag-next"></li>').parent());	
		} else {
			oUl.prepend(oA.wrap('<li class="pag-prev"></li>').parent());		
		}
	});	
	
	jQuery('.shop-main .footer #pagination').remove();
}


function formatProductTabs()
{
	
	
	var anchors = jQuery('.description .nav a');	//Ref to anchors
	var tabs = jQuery('#tab-details,#tab-dimensions-sizing,#tab-fabric-material');
	var animating = false;
	
	if(tabs.length == 3)jQuery('.shop-main .tabs .nav').css('display','block');
	
	anchors.click(function($e){
		$e.preventDefault();
		
		var nIndex = anchors.index(this);
		var selectedIndex = 0;
		
		anchors.each(function($key,$value){
			if(jQuery(this).attr('class').indexOf('selected') != -1)selectedIndex = $key;
		});
		
		if(selectedIndex == nIndex || animating)return;
		animating = true;
		
		//var $inner = jQuery('.productLarge .tabs .inner').css('height',jQuery('.productLarge .tabs .inner').innerHeight());
		var $inner = jQuery('.productLarge .tabs .inner');
		anchors.each(function($key,$value){
			jQuery(this).attr('class','tab-' + ($key + 1));	
		}).eq(nIndex).attr('class','tab-' + (nIndex + 1) + ' tab-' + (nIndex + 1) + '-selected');
		
		jQuery(anchors.eq(selectedIndex).attr('href')).animate({
			opacity: 0	
		},250,'swing',function(){
			var e = jQuery(anchors.eq(nIndex).attr('href')).css({opacity:0,display:'block'});
			jQuery(this).hide();
			
			$inner.animate({
				height: e.outerHeight()	
			},250,'swing',function(){
				e.animate({opacity:1},250,'swing',function(){
					animating = false;	
				});
			});
		});
			
	});	
}


function formatRatings()
{
	
	
	ratingDrawer = jQuery('#rating-drawer');
	var hasRatings = jQuery('#rating').find('.rating').length > 0;
	var ratingsSummary = jQuery('.ratings-summary');
	
	
		
	
		
	if(hasRatings)//If there are no ratings dis play the hidden form
	{
		
		ratingsSummary.html(ratingsSummary.html() + ' ' + jQuery('#rating').find('.rating').length +' Reviews').css('display','block');
		
		ratingDrawer.css({
			height: 0,
			overflow: 'hidden'
		});
		
		var reviewBtnHolder = jQuery('.rating-btn-holder');
		
		jQuery('<a></a>')
			.attr({
				href: '#',
				title: 'write a review'	
			})
			.text('write a review')
			.appendTo(reviewBtnHolder)
			.click(function($e){
			
				$e.preventDefault();
				
				var o = jQuery(this);
				
				if(o.parent().hasClass('rating-btn-holder-on'))
				{
					ratingDrawer.animate({height: 0},350,'swing', function(){
						o.parent().removeClass('rating-btn-holder-on');	
					});			
				} else {
					ratingDrawer.animate({height:ratingDrawer.find('.inner').innerHeight()},350,'swing',function(){
						o.parent().addClass('rating-btn-holder-on');		
					});	
				}
					
			});	
	} else {
		ratingsSummary.html(jQuery('<img src="/assets-img/layout/0stars.gif" alt="0" />'));	
	}
	
	
//Format rating graphics in individual ratings
	jQuery('#rating').find('.cherries').each(function(){
		var e = jQuery(this);	
		switch(true)
		{
			case (e.find('img').attr('src').indexOf('/05stars.gif') != -1):
				e.html(jQuery('<img />').attr('src','/assets-img/layout/ratings-cherries/05stars.gif'));
				break;
			case (e.find('img').attr('src').indexOf('/1stars.gif') != -1):
				e.html(jQuery('<img />').attr('src','/assets-img/layout/ratings-cherries/1stars.gif'));
				break;
			case (e.find('img').attr('src').indexOf('/15stars.gif') != -1):
				e.html(jQuery('<img />').attr('src','/assets-img/layout/ratings-cherries/15stars.gif'));
				break;
			case (e.find('img').attr('src').indexOf('/2stars.gif') != -1):
				e.html(jQuery('<img />').attr('src','/assets-img/layout/ratings-cherries/2stars.gif'));
				break;
			case (e.find('img').attr('src').indexOf('/25stars.gif') != -1):
				e.html(jQuery('<img />').attr('src','/assets-img/layout/ratings-cherries/25stars.gif'));
				break;
			case (e.find('img').attr('src').indexOf('/3stars.gif') != -1):
				e.html(jQuery('<img />').attr('src','/assets-img/layout/ratings-cherries/3stars.gif'));
				break;
			case (e.find('img').attr('src').indexOf('/35stars.gif') != -1):
				e.html(jQuery('<img />').attr('src','/assets-img/layout/ratings-cherries/35stars.gif'));
				break;
			case (e.find('img').attr('src').indexOf('/4stars.gif') != -1):
				e.html(jQuery('<img />').attr('src','/assets-img/layout/ratings-cherries/4stars.gif'));
				break;
			case (e.find('img').attr('src').indexOf('/45stars.gif') != -1):
				e.html(jQuery('<img />').attr('src','/assets-img/layout/ratings-cherries/45stars.gif'));
				break;
			case (e.find('img').attr('src').indexOf('/5stars.gif') != -1):
				e.html(jQuery('<img />').attr('src','/assets-img/layout/ratings-cherries/5stars.gif'));
				break;
			default:	
		}
	});
	
	
	jQuery('#catratingform2343').submit(function($e){
		
		var errors = new Array();
		
		if(jQuery(this).find('input[name="Rating"]:checked').length == 0)
		{
			
			errors.push('- You must select a cherry rating for the product ' + jQuery('.productLarge h2:first').text());	
		}
		
		if(this.CaptchaV2) 
		{
			var why = captchaIsInvalid(this, "Enter Word Verification in box below", "Please enter the correct Word Verification as seen in the image");
			if(why.length > 0)errors.push(why);
			
		}
		
		if(errors.length > 0)
		{
			$e.preventDefault();
			alert(errors.join('\n\n'));	
		}
		
	});
	
}




function NewAddToCart(j, w, t, B, l) 
{
    var h = w;
    var q = "";
    var f = document.getElementById("Units_" + w);
    var A = readCookie("CartID");
    var v = document.getElementById("Grouping_" + w);
    var F = document.getElementById("Related_" + w);
    var e = document.getElementById("catProdTd_" + w);				//Used for displaying products outside the cart area. E.g publife home page 	{module_productfeaturelist,Wine Packs,6,date,,true}
    var n = document.getElementById("catProdAttributes_" + w);
    var u = document.getElementById("catProdAttributes2_" + w); //Reference to parent of attibute groups
    var s = document.getElementById("catProdInstructions_" + w);
    var c = "";
    var p = new Array();
    var C = false;
    var a = false;
    var m;
    var g = 0;
    var E;
    var d = true;
    
	if(f) 
	{
		m = f.value;
        if (m < 0) 
		{
            alert(OshopLang.RemoveError);
            return false
        } 
    } else { 
		m = 1 
	} 
	
	if(A == null || A == "") 
	{ 
		A = -1 
	} 
	
	E = document.getElementById("catCartSummary");
    
	if(v) 
	{
		if (v.nodeName == "SELECT") 
		{ 
			h = v.value 
		} else {
            var r = v.getElementsByTagName("input");
            for (var z = 0; z < r.length;z++) 
			{
                if (r[z].checked) 
				{
                    h = r[z].value;
                    break;
                } 
            } 
        } 
    } 
	
	if (F) 
	{
        q = GetCheckListValue(F);
        if (q.length > 0) 
		{ 
			g = q.split(",").length; 
		} 
    } 
	
	if (s) 
	{ 
		c = s.value; 
	} 
	
	if (n) 
	{
        var o = n.getElementsByTagName("select");
        if (o) 
		{ 
			if (c.length > 0) 
			{ 
				c += ";" 
			} 
			for(var z = 0; z < o.length; z++) 
			{ 
				if (o[z].value.length > 0) 
				{ 
					c += o[z].value + ";" 
				} 
			} 
		} 
    } 
	
	
	if (u)// START - if(u) - if there are attribute groups on the page
	{
        var D = 0;
        var o = u.getElementsByTagName("select");
        var y;
        var x;
        var k = "";
        if (o) //If there are any select elements
		{
            for (var z = 0;z < o.length;z++)//Loop through each 
			{
                if(o[z].value.length > 0) //If a value has been set
				{
                    p[D] = o[z].value + "|1";
                    D++
                } else {
                    if (o[z].getAttribute("mandatory")) 
					{
                        alert(Oshoplang.ChooseAttribute);
                        return
                    } 
                } 
            } 
        } 
		
		var o = u.getElementsByTagName("input");
        if (o) //If there are any input values 
		{
            for (var z = 0;z < o.length;z++) //Loop through each
			{
                if(o[z].type == "checkbox" || o[z].type == "radio") //If the input is checkbox or radio
				{
                    if(k != o[z].getAttribute("name")) 
					{
                        if(z > 0 && !x && o[z - 1].getAttribute("mandatory")) 
						{
                            alert(Oshoplang.ChooseAttribute);
                            return
                        } 
						
						x = false
                    } 
					
					if (o[z].checked) 
					{
                        p[D] = o[z].id + "|1";
                        D++;
                        x = true
                    } 
					k = o[z].getAttribute("name")
					
                } else { // If the input is of any other type than radio or checkbox
				
                    if (o[z].value.length > 0) 
					{
                        p[D] = o[z].id + "|" + o[z].value;
                        D++;
                        x = true
                    } else {
                        if (o[z].getAttribute("mandatory")) 
						{
                            alert(Oshoplang.ChooseAttribute);
                            return
                        } 
                    } 
                } 
            } 
			
			if (o.length > 0 && (o[o.length - 1].type == "checkbox" || o[o.length - 1].type == "radio")) 
			{
                if (!x && o[z - 1].getAttribute("mandatory")) 
				{
                    alert(Oshoplang.ChooseAttribute);
                    return
                } 
            } 
        } 
    } // END - if(u) 
	
	if (E) 
	{ 
		if(E.getAttribute("Vertical") == "True") 
		{ 
			C = true 
		} 
		
		if(E.getAttribute("Quote") == "True") 
		{ 
			a = true 
		} 
	} 
	
	var b = CMS.CatalogueRetrieve.ServerSideAddItemToOrder(A, j, h, m, q, p, c, C, B, a, t, d);
    /*
		b.value[0] - orderid
		b.value[2] - shopping cart summary
		b.value[3] - large product
	
	*/
	
	
	
	if (b.value[4]) 
	{ 
		g = b.value[4] 
	} 
	createCookie("CartID", b.value[0], 2);
    
	if(E) 
	{ 
		E.innerHTML = b.value[2] ;
		if(typeof parseCartSummary == 'function')parseCartSummary(b.value[2]);
	} 
	
	switch (b.value[1]) 
	{
        case 0: 
			if (!l) 
			{
            	if (e) 
				{
                    e.innerHTML = b.value[3];
                    ProcessJS(e)
					
                } 
				
				alert(g + Oshoplang.Added);
            } else { 
				document.location = "/OrderRetrievev2.aspx?CatalogueID=" + j 
			} 
			break;
        case 1: 
			alert(Oshoplang.OutOfStock);
            break;
        
		case 2: 
			if (!l) 
			{
            	if(e)
				{
                    e.innerHTML = b.value[3];
                    ProcessJS(e)
                } 
				alert(g + Oshoplang.PreOrder)
            
			} else { 
				document.location = "/OrderRetrievev2.aspx?CatalogueID=" + j 
			} 
			break;
        
		case 3: 
			alert(Oshoplang.MinLimit);
            break;
        case 4: 
			alert(Oshoplang.MaxLimit);
            break
    } 
	
	if(typeof AddProductExtras == "function") 
	{ 
		AddProductExtras(j, h, b.value[1]) 
	} 
}

















