function bookmark(strTitle, strUrl){

    if (window.sidebar)
    {
        window.sidebar.addPanel(strTitle, strUrl, "");
    }
    else if (window.opera && window.print)
    {
        var elem = document.createElement('a');
        elem.setAttribute('href', strUrl);
        elem.setAttribute('title', strTitle);
        elem.setAttribute('rel', 'sidebar');
        elem.click();
    }
    else if (document.all)
    {
        window.external.AddFavorite(strUrl, strTitle);
    }
}

function setReserveBranchSelect(objSelect){
	var strId = objSelect.value;
	$('.loadingFlower').show();
	$.post(
	        '/ajax.php?x=setReserveBranch',
	        {
	            id : strId
	        },
	        function(data)
	        {
	        	var strMode = "HOME";
	        	if(strId != ''){
	        		strMode = "BRANCH";
	        	}
	        	$.post(
	        	        '/ajax.php?x=updateBasketStock',
	        	        {
	        	            mode : strMode,
	        	            store : strId
	        	        },
	        	        function(data)
	        	        {
	        	        	window.location.reload();
	        	        }
	        	     );
	        	
	        }
	     );
}

function displayQuickBasket()
{
    $.post(
        '/ajax.php?x=quickBasket',
        { },
        function(data)
        {
            $('#quickBasket').html(data);
        }
    );
}

function updateBasket()
{
	$("#basketForm").submit();
}

function addToBasketAjax(prodId, qtyField)
{
    var qty = $('#' + qtyField).val();
    $.post(
        '/ajax.php?x=addToBasket',
        {
           id : prodId,
           quantity : qty
        },
        function(data)
        {
            displayQuickBasket();
            $('#basketPrompt_' + prodId).css('display', 'block');
            window.setTimeout(function(){ $('#basketPrompt_' + prodId).css('display', 'none'); }, 3000);
        }
    );
}

function addToBasketInline(strProductId, strInput, strBasketPrompt)
{
    var iQuantity = $('#' + strInput).val();
    $.post(
        '/ajax.php?x=addToBasket',
        {
           id : strProductId,
           quantity : iQuantity
        },
        function(data)
        {
 
            displayQuickBasket();
     
            var arrOffset = $('#' + strBasketPrompt).position();
            var iWidth = $('#' + strBasketPrompt).outerWidth();
            var iHeight = $('#' + strBasketPrompt).outerHeight();
            
            var iPromptHeight = $('#basketPrompt').outerHeight();
            var iPromptWidth = $('#basketPrompt').outerWidth();
            
            var iNewTop = arrOffset.top - iPromptHeight;
            var iNewLeft =  arrOffset.left + (iWidth / 2) - (iPromptWidth / 2) + 30;

            $('#basketPrompt').css({top: iNewTop, left: iNewLeft});
            $('#basketPrompt').fadeIn(1000, function()
            {
            	$('#basketPrompt').delay(1000).fadeOut(1000);
            });
        }
    );
}

function buyNowAjax(prodId, qtyField)
{
    var qty = $('#' + qtyField).val();
    $.post(
        '/ajax.php?x=addToBasket',
        {
           id : prodId,
           quantity : qty
        },
        function(data)
        {
            window.location.href = '/order/process';
        }
    );
}

function removeFromBasketQuick(prodId)
{
    $.post(
        '/ajax.php?x=removeFromBasket',
        {
           id : prodId
        },
        function(data)
        {
            displayQuickBasket();
        }
    );
}

function removeFromBasket(prodId)
{
    $.post(
        '/ajax.php?x=removeFromBasket',
        {
           id : prodId
        },
        function(data)
        {
            window.location.reload();
        }
    );
}

function quickSearch()
{
    var searchTerm = encodeURIComponent($('input#searchInput').val());
    document.location = '/product/search/' + searchTerm;
}

function emptyBasket()
{

}

function toggleDiv(strId)
{
	if ($(strId).css('display') == 'none')
	{
		$(strId).show('slow');
	}
	else
	{
		$(strId).hide('slow');
	}
	
}
function drillDown(strOption)
{
    var iMin = $('#' + strOption + '_min').val();
    var iMax = $('#' + strOption + '_max').val();
    $.post(
        '/ajax.php?x=drillDown',
        {
            option : strOption,
            min : iMin,
            max : iMax
        },
        function(data)
        {
            window.location.reload();
        }
    );
}

function resetOption(strOption)
{
    $.post(
        '/ajax.php?x=resetOption',
        {
            option : strOption
        },
        function(data)
        {
            window.location.reload();
        }
    );
}


function postcodeSearch(strStub)
{
    var strPostcode = $("#" + strStub + "PostcodeLookup").val();
    
    if (strPostcode != "")
    {
    
        $.post(
        '/ajax.php?x=postcodeLookup',
        {
          postcode: strPostcode,
          stub : strStub
        },
        function(strHtml)
        {
            $("#" + strStub + "PostcodeResults").html(strHtml);
        }
        );
    }
    else
    {
        alert("Please enter a postcode first");
    }
    
    return false;
}

function toggleDeliveryAddress()
{
  if ($("[name=deliveryDifferent]").is(":checked"))
  {
    $("[name=deliveryAsBilling]").val("false");
    $("#deliveryAddress").show("slide", {direction: "up"});
  }
  else
  {
    $("[name=deliveryAsBilling]").val("true");
    $("#deliveryAddress").hide("slide", {direction: "up"});
  }
}

function completeDeliveryDetails()
{
  $("#error").html("");

  var bValid = false;

  if (areDetailsValid())
  {
    if (isBillingAddressValid())
    {
      if ($("[name=deliveryDifferent]").is(":checked"))
      {
        if (isDeliveryAddressValid())
        {
          bValid = true;
        }
      }
      else
      {
        bValid = true;
      }
    }
  }

  if (bValid)
  {
	  if (!$("[name=terms]").is(":checked"))
	  {
		  bValid = false;
		  $("#error").html("Please confirm you have read the terms and conditions");
	  }
  }
  
  if (!bValid)
  {
    $('html, body').animate({ scrollTop: $("#error").position().top }, 'slow');
  }
  
  return bValid;
}


function areDetailsValid()
{
  var bValid = true;

  bValid = validateItem("billingFirstName", bValid);
  bValid = validateItem("billingSurname", bValid);
  bValid = validateItem("billingPhone", bValid);
  bValid = validateItem("billingMobile", bValid);

  if (bValid)
  {
    bValid = validateEmail("customerEmail", bValid);

    if (!bValid)
    {
      $("#error").html("Please enter a valid email address.");
    }
    else if ($("[name=customerConfirmEmail]").val() != $("[name=customerEmail]").val())
    {
      bValid = false;
      $("#error").html("Please confirm your email addresses match");
    }
    
  }
  else
  {
    $("#error").html("Please complete your contact details");
  }

  return bValid;
}

function isBillingAddressValid()
{
  var bValid = true;

  bValid = validateItem("billingAddress1", bValid);
  bValid = validateItem("billingCity", bValid);
  bValid = validateItem("billingCounty", bValid);
  bValid = validateItem("billingPostCode", bValid);
  
  if (!bValid)
  {
    $("#error").html("Please complete your billing address");
  }
  
  return bValid;
}

function isDeliveryAddressValid()
{
  var bValid = true;

  bValid = validateItem("deliveryFirstName", bValid);
  bValid = validateItem("deliverySurname", bValid);
  bValid = validateItem("deliveryAddress1", bValid);
  bValid = validateItem("deliveryCity", bValid);
  bValid = validateItem("deliveryCounty", bValid);
  bValid = validateItem("deliveryPostCode", bValid);

  if (!bValid)
  {
    $("#error").html("Please complete your delivery address");
  }

  return bValid;
}

function validateItem(strId, bValid)
{ 
  if ($("[name=" + strId + "]").val() != "")
  {
	$("[name=" + strId + "]").removeClass('invalid');
   
	if (bValid)
	{
		return true;
	}
  }
  else
  {
	  $("[name=" + strId + "]").addClass('invalid');
  }
  
  return false;
}

function validateEmail(strId, bValid)
{
	
  if (!bValid)
  {
    return false;
  }
  
  var strEmail = $("[name=" + strId + "]").val()

  var strExpression = "^[\\w-_\.+]*[\\w-_\.]\@([\\w-_]+\\.)+[\\w]+[\\w]$";
  var objReg = new RegExp(strExpression);

  var bOK = objReg.test(strEmail);
  
  if (!bOK)
  {
	  $("[name=" + strId + "]").addClass('invalid');
  } else {
	  $("[name=" + strId + "]").removeClass('invalid');
  }
  return bOK;
}

function copyBillingToDelivery()
{
	$('#deliveryAddress1').val($('#billingAddress1').val());
	$('#deliveryAddress2').val($('#billingAddress2').val());
	$('#deliveryCity').val($('#billingCity').val());
	$('#deliveryCounty').val($('#billingCounty').val());
	$('#deliveryCountry').val($('#billingCountry').val());
	$('#deliveryPostCode').val($('#billingPostCode').val());
}

function validateRegister()
{
	var bValid = true;
	
	if (!_validateRegister())
	{
		bValid = false;
		$('html, body').animate({ scrollTop: $("#error").position().top }, 'slow');
	}
	
	return bValid;
}

function _validateRegister()
{
	var bValid = true;
	bValid = validateItem("contactFirstName", bValid);
	bValid = validateItem("contactSurname", bValid);
	bValid = validateItem("contactDayTel", bValid);
	
	if (bValid)
	{
		bValid = validateEmail("contactEmail", bValid);
		
		if (!bValid)
		{
			 $("#error").html("Please enter a valid email address");
			 return false;
		}
	}
	
	bValid = validateItem("regPassword", bValid);
	bValid = validateItem("regPasswordConfirm", bValid);
	
	if (!bValid)
	{
	    $("#error").html("Please complete your contact details");
	    return false;
	}
	else if ($("[name=regPassword]").val() != $("[name=regPasswordConfirm]").val())
	{
		$("#error").html("Please make sure your passwords match");
	    return false;
	}
	

	bValid = validateItem("billingAddress1", bValid);
	bValid = validateItem("billingCity", bValid);
	bValid = validateItem("billingCounty", bValid);
	bValid = validateItem("billingCountry", bValid);
	bValid = validateItem("billingPostCode", bValid);
	
	if (!bValid)
	{
	    $("#error").html("Please complete your billing address");
	    return false;
	}
	
	bValid = validateItem("deliveryAddress1", bValid);
	bValid = validateItem("deliveryCity", bValid);
	bValid = validateItem("deliveryCounty", bValid);
	bValid = validateItem("deliveryCountry", bValid);
	bValid = validateItem("deliveryPostCode", bValid);
	
	if (!bValid)
	{
	    $("#error").html("Please complete your delivery address");
	    return false;
	}
	
	return true;
}

function createAccountTog()
{
	  if ($("[name=createAccount]").is(":checked"))
	  {
	    $("#togglePasswords").show();
	  }
	  else
	  {
	    $("#togglePasswords").hide();
	  }
}

function changeAddress(objSelect, strStub)
{
    var objOption = $(objSelect.value);
    
    $("[name=" + strStub + "Address1]").val($(objOption).attr("address1"));
    $("[name=" + strStub + "Address2]").val($(objOption).attr("address2"));
    $("[name=" + strStub + "City]").val($(objOption).attr("town"));
    $("[name=" + strStub + "County]").val($(objOption).attr("county"));
    $("[name=" + strStub + "PostCode]").val($(objOption).attr("postcode"));
}

function saveDetails()
{
  $("#error").html("");

  var bValid = false;
  $("#error").removeClass("errorBox");
  
  if (areDetailsValid(true))
  {
    if (isBillingAddressValid())
    {
      if ($("[name=deliveryDifferent]").is(":checked"))
      {
        if (isDeliveryAddressValid())
        {
          bValid = true;
        }
      }
      else
      {
        bValid = true;
      }
    }
  }
  if (bValid)
  {
  	if ($('[name=password]').val() != '' && $('[name=password]').val() != $('[name=confirmPassword]').val())
	{
  		bValid = false;
  		$("#error").html("Please ensure both passwords match.");
	}
  }
  if (!bValid)
  {
	  $("#error").addClass("errorBox");
    $('html, body').animate({ scrollTop: $("#error").position().top }, 'slow');
  }
  else
 {
	  $("#userForm").submit();
 }

}

var objMenu = null;
$(document).ready(function ()
{
	$('.imageLightBox').lightBox({fixedNavigation:true});
	/*if ($('#leftSideBarFloat').length == 0)
	{
		return;
	}
	
    var top = $('#leftSideBarFloat').offset().top - parseFloat($('#leftSideBarFloat').css('marginTop').replace(/auto/, 0));
    
    $(window).scroll(function()
    {
    	
    	var iHolderTop = $(".leftSideBar").offset().top;
    	var iScrollTo = $(window).scrollTop();
    	var iHeight = $('#leftSideBarFloat').height();
    	var iFooterTop = $('#footer').offset().top;
    	
    	if (iHeight + iScrollTo < iFooterTop)
    	{
	    	if (iScrollTo > iHolderTop)
			{
	    		iScrollTo -= iHolderTop;
			}
	    	else
	    	{
	    		iScrollTo = 0;
	    	}
    	}
    	else
    	{
    		iScrollTo = iFooterTop - iHolderTop - iHeight;

    	}
    	
    	iScrollTo = Math.max(iScrollTo, 0);
    	
    	$('#leftSideBarFloat')
        .animate(
            { top: iScrollTo + 'px' },
            { queue: false, duration: 250, easing: 'easeInOutSine' }
        );
    	    	
    	return;
    	
    	
        $('#leftSideBarFloat').css('margin-top', '10px');
        var dynamicSidebarHeight = $('#leftSideBarFloat').height();
        var fixedFooterOffset = 0;
        
        var calculatedMaxTop = $('#footer').offset().top - dynamicSidebarHeight - fixedFooterOffset;

//alert(calculatedMaxTop + ":" + scrollTo + ":" + top);
        if (scrollTo > calculatedMaxTop)
        {
            scrollTo = calculatedMaxTop;
        }

        if (scrollTo > top)
        {
            scrollTo -= top - 10;
        }
        else
        {
            scrollTo = 0;
        }

     
        $('#leftSideBarFloat')
            .animate(
                { top: scrollTo + 'px' },
                { queue: false, duration: 250, easing: 'easeInOutSine' }
        );
        //$('#leftColumnFloat').css('top', scrollTo + 'px');
    });
	*/
});


