//--------------------------------------------------------------
// Sandstone Media
// Client: Camelbak
// Author: Winn Jewett
// Date: April, 2009
//--------------------------------------------------------------

function getDistributorRegion(url){
	$j("#results").html('<img src="/images/img_loading.gif" class="img_loading" />');
	$j.get(url,{ industry: $j("#distributorsForm #industry").val()},
		function(data){
			$j("#results").html(data);
		}
	);
}


// currently select product color, used for swatch rollover
//var currentColor = $j(";

// change the main product image on the product detail page
function switchSwatch(obj, imgURL, color, sku, price, pos) {
    $j('#swatches' + pos + ' img.swatch').removeClass('selected');
    $j(obj).addClass('selected');

    //loadStores(pid, sid);
	$j('#prodImage' + pos).attr('src', imgURL);
	$j('#prodImage' + pos).attr('color', color);
	$j('#swatchName' + pos).html(color);
	$j('#productSKU' + pos).html(sku);
	$j('#productPrice' + pos).html(price);
	//currentColor = color;
}

function swatchOver(color, pos) {
	//currentColor = this.html();
    $j('#swatchName' + pos).html(color);
}

function swatchOut(pos) {
	//alert('currentColor: ' + $j('#prodImage1').attr('color'));
    $j('#swatchName' + pos).html($j('#prodImage' + pos).attr('color'));
}


// track check products in the product list
var checkedProducts = [];


function updateCheckedProducts(product) {
    if ($j(product).attr('checked')) {
		var checkLength = $j(":checkbox:checked").length != null ? $j(":checkbox:checked").length : 0;

		if (checkLength > 3 || checkedProducts.length >= 3 ) {
		    //var box = checkedProducts.shift();
		    $j('#prod_'+product.value).attr('checked','');
			alert("NO MORE THAN 3 PRODUCTS CAN BE COMPARED AT ONCE");
			return false;
		}
		if (checkedProducts.length < 3)	
			checkedProducts.push(product.value);
    }
    else {
		var newList = [];
		for (var i=0; i<checkedProducts.length; i++) {
		    if (checkedProducts[i] != product.value) {
				newList.push(checkedProducts[i]);
		    }
		}
		checkedProducts = newList;
    }
	return false;
}

function showZipResponse(responseText, statusText){
    alert('status: ' + statustext + '\n\nresponsetext: ' + responseText);
}


//greybox
var GB_ANIMATION = true;

$j(document).ready(function(){

  $j('.btn').each(function(){
    var b = $j(this);
    var tt = b.text() || b.val();
    if ($j(':submit,:button',this)) {
      b = $j('<a>').insertAfter(this). addClass(this.className).attr('id',this.id);
      $j(this).remove();
    }

  b.text('').css({cursor:'pointer'}). prepend('<i></i>').append($j('<span>').
  text(tt).append('<i></i><span></span>'));
  });
  
  var zipFormOptions = {
    target: '#results',
    success: 'showZipResponse'
  };
   //$j("#distributorsForm").ajaxForm({target: '#results'});
  //$j("#distributorsForm").ajaxForm(zipFormOptions);

     $j('#distributorsForm').submit(function() { 
        // inside event callbacks 'this' is the DOM element so we first 
        // wrap it in a jQuery object and then invoke ajaxSubmit 
        $j(this).ajaxSubmit(zipFormOptions); 
 
        // !!! Important !!! 
        // always return false to prevent standard browser submit and page navigation 
        return false; 
    }); 
  //$j("#distributorsFormBtn").click(function(){getDistributorZip();});
 $j("#zipCodeSearch a").click(function(){$j('#distributorsForm').ajaxSubmit(zipFormOptions); });

	$j("#localDistributorsNav h3 + div:not(:first)").hide();
	$j("#localDistributorsNav h3:first").addClass("active");
	

	$j("#distributorsForm h3").click(function(){
		$j(this).next().slideToggle("slow",function(){
      if($j(this).prev().hasClass("active")){
        $j(this).prev().removeClass("active");
      }else{
        $j(this).prev().addClass("active");
      }
		});
	});
	
	$j("#distributorsForm #state").change(function(){
		var state = $j("#distributorsForm #state option:selected").val();
		if(state != "state"){
      //alert(state);
  		getDistributorRegion(state);
		}
	});

	$j("#productFilters input").click(function(){
		var checkedFilters = $j("#productFilters :checked");
		if(checkedFilters.length == 0){
			$j(".tile").show();
		}else{
		
			$j(".tile").hide();
			$j(".tile input").attr('checked',false);
			var eachFilter = checkedFilters.each(function(){
				$j("." + this.value).show();
//				alert('value: ' + this.value);
			});
		}
	})
	.change();

 
    
    //graybox
    $j("a.greybox").click(function() {
	    var t = this.title || this.innerHTML || this.href;
	    GB_show(t, this.href, 590, 760);
	    return false;
    });


	//Product Detail Accordion Behavior
	$j("dt:first").addClass('accordion_toggle_active');
	$j("dd:not(:first)").hide();
	$j("dt.accordion_toggle").click(function(){
		$j("dt").removeClass('accordion_toggle_active');
		$j(this).addClass('accordion_toggle_active');
		$j("dd:visible").slideUp("slow");
		$j(this).next().slideDown("slow");
		return false;
		});

  $j("#clearSelection").click(function(){
 			$j(".tile input").attr('checked',false);
  });   

	$j('#btnCompare').click(function(){	
		var checkLength = $j("#productList :checkbox:checked").length != null ? $j("#productList :checkbox:checked").length : 0;
	//	alert(checkLength);
		if(checkLength > 3){
			alert("NO MORE THAN 3 PRODUCTS CAN BE COMPARED AT ONCE");
			return false;
		}else if(checkLength < 1){
			alert("AT LEAST 1 PRODUCT MUST BE CHECKED");
			return false;
		}
		var productIdString = "";
		var checkedProducts = $j("#productList :checkbox:checked").each(function(){
			productIdString += this.value + ",";
		});
		//alert(productIdString);
		var compareURL = '/compare-products.aspx';
		
		// hide current page
		$j('#col2').fadeOut("slow", function(){
			$j('#productListNav p').html("compare up to 3 products");
			$j('#productListNav p').css('color', '#000000');
			// show loading icon
			$j('img.loading').show();
					
			// load products for comparison
			$j.get(compareURL, { compare: productIdString },
				function(data) {
					$j('#col2_pop').html(data);
					$j('img.loading').hide();
					$j('#col2_pop').slideDown('slow');
					$j('#btnClose').click(function() { 
						$j('#col2_pop').slideUp('slow', function() {
							$j('#col2').fadeIn('slow');
						}); 
					});
				});		
			});
			return false;
		});//end #btnCompare action
		
//	var $jscroller = $j('#scroller').jScrollPane({showArrows:true, scrollbarWidth:9, dragMaxHeight: 23, animateTo:true});
	$j('.scroll-to-top').bind(
				 'click',
				 function(){
					 $j('#scroller')[0].scrollTo(0);
					 return false;
				 }
	);
	$j('.popUp_close').bind(
				   'click',
				   function(){
				   $j(".pop").css('visibility', 'hidden');
				   }
	);		
	$j('#faq').bind(
			   'click',
			   function(){
				   $j(".pop").css('visibility', 'hidden');
				   $j(".pop.FAQ").css('visibility', 'visible');
			   }
	);	  
/* SSM
	$j('a.scroll-to-id').bind(
				 'click',
				 function(){
					 var targetElementSelectorString = $j(this).attr('rel');
					 $jscroller[0].scrollTo(targetElementSelectorString);
					 return false;
				 }
	);
*/
	$j('#tellFriend').bind(
				  'click',
				  function(){
					  $j(".pop").css('visibility', 'hidden');
					  $j(".pop.tellAFriend").css('visibility', 'visible');
				  }
	);
	$j('#backLink').bind(
			    'click',
			    backLink
	);				
});

function backLink() {
    if (history.length > 1) {
	history.back();
    }
    else {
	document.location = $j('#backLink').attr('href');
    }
    return false;
}

function formSubmit () {
	$j("#prodName").attr("value",function(){
		var A=$j("div#mast h3").text();
		return A;
	});
	$j("#baseURL").attr("value",function(){
		return location.hostname;
	});
	$j("#prodURL").attr("value",function(){
		return location.href;
	})
	$j.post(
		$j('#tellAFriendForm').attr('action'),
		$j('#tellAFriendForm').serialize(),
		function(data){
		    $j('#formWrapper').html(data)
			$j('.popUp_close').bind(
				'click',
				function(){
					$j(".pop").css('visibility', 'hidden');
				}
			);
		}
	);
}

(function($j) {
	
	$j.fn.defaultvalue = function() {
		
		// Scope
		var elements = this;
		var args = arguments;
		var c = 0;
		
		return(
			elements.each(function() {				
				
				// Default values within scope
				var el = $j(this);
				var def = args[c++];

				el.val(def).focus(function() {
					if(el.val() == def) {
						el.val("");
					}
					el.blur(function() {
						if(el.val() == "") {
							el.val(def);
						}
					});
				});
				
			})
		);
	}
})(jQuery)
