/*
	Slimbox v2.04 - The ultimate lightweight Lightbox clone for jQuery
	(c) 2007-2010 Christophe Beyls <http://www.digitalia.be>
	MIT-style license.
*/
(function(w){var E=w(window),u,f,F=-1,n,x,D,v,y,L,r,m=!window.XMLHttpRequest,s=[],l=document.documentElement,k={},t=new Image(),J=new Image(),H,a,g,p,I,d,G,c,A,K;w(function(){w("body").append(w([H=w('<div id="lbOverlay" />')[0],a=w('<div id="lbCenter" />')[0],G=w('<div id="lbBottomContainer" />')[0]]).css("display","none"));g=w('<div id="lbImage" />').appendTo(a).append(p=w('<div style="position: relative;" />').append([I=w('<a id="lbPrevLink" href="#" />').click(B)[0],d=w('<a id="lbNextLink" href="#" />').click(e)[0]])[0])[0];c=w('<div id="lbBottom" />').appendTo(G).append([w('<a id="lbCloseLink" href="#" />').add(H).click(C)[0],A=w('<div id="lbCaption" />')[0],K=w('<div id="lbNumber" />')[0],w('<div style="clear: both;" />')[0]])[0]});w.slimbox=function(O,N,M){u=w.extend({loop:false,overlayOpacity:0.8,overlayFadeDuration:400,resizeDuration:400,resizeEasing:"swing",initialWidth:250,initialHeight:250,imageFadeDuration:400,captionAnimationDuration:400,counterText:"Image {x} of {y}",closeKeys:[27,88,67],previousKeys:[37,80],nextKeys:[39,78]},M);if(typeof O=="string"){O=[[O,N]];N=0}y=E.scrollTop()+(E.height()/2);L=u.initialWidth;r=u.initialHeight;w(a).css({top:Math.max(0,y-(r/2)),width:L,height:r,marginLeft:-L/2}).show();v=m||(H.currentStyle&&(H.currentStyle.position!="fixed"));if(v){H.style.position="absolute"}w(H).css("opacity",u.overlayOpacity).fadeIn(u.overlayFadeDuration);z();j(1);f=O;u.loop=u.loop&&(f.length>1);return b(N)};w.fn.slimbox=function(M,P,O){P=P||function(Q){return[Q.href,Q.title]};O=O||function(){return true};var N=this;return N.unbind("click").click(function(){var S=this,U=0,T,Q=0,R;T=w.grep(N,function(W,V){return O.call(S,W,V)});for(R=T.length;Q<R;++Q){if(T[Q]==S){U=Q}T[Q]=P(T[Q],Q)}return w.slimbox(T,U,M)})};function z(){var N=E.scrollLeft(),M=E.width();w([a,G]).css("left",N+(M/2));if(v){w(H).css({left:N,top:E.scrollTop(),width:M,height:E.height()})}}function j(M){if(M){w("object").add(m?"select":"embed").each(function(O,P){s[O]=[P,P.style.visibility];P.style.visibility="hidden"})}else{w.each(s,function(O,P){P[0].style.visibility=P[1]});s=[]}var N=M?"bind":"unbind";E[N]("scroll resize",z);w(document)[N]("keydown",o)}function o(O){var N=O.keyCode,M=w.inArray;return(M(N,u.closeKeys)>=0)?C():(M(N,u.nextKeys)>=0)?e():(M(N,u.previousKeys)>=0)?B():false}function B(){return b(x)}function e(){return b(D)}function b(M){if(M>=0){F=M;n=f[F][0];x=(F||(u.loop?f.length:0))-1;D=((F+1)%f.length)||(u.loop?0:-1);q();a.className="lbLoading";k=new Image();k.onload=i;k.src=n}return false}function i(){a.className="";w(g).css({backgroundImage:"url("+n+")",visibility:"hidden",display:""});w(p).width(k.width);w([p,I,d]).height(k.height);w(A).html(f[F][1]||"");w(K).html((((f.length>1)&&u.counterText)||"").replace(/{x}/,F+1).replace(/{y}/,f.length));if(x>=0){t.src=f[x][0]}if(D>=0){J.src=f[D][0]}L=g.offsetWidth;r=g.offsetHeight;var M=Math.max(0,y-(r/2));if(a.offsetHeight!=r){w(a).animate({height:r,top:M},u.resizeDuration,u.resizeEasing)}if(a.offsetWidth!=L){w(a).animate({width:L,marginLeft:-L/2},u.resizeDuration,u.resizeEasing)}w(a).queue(function(){w(G).css({width:L,top:M+r,marginLeft:-L/2,visibility:"hidden",display:""});w(g).css({display:"none",visibility:"",opacity:""}).fadeIn(u.imageFadeDuration,h)})}function h(){if(x>=0){w(I).show()}if(D>=0){w(d).show()}w(c).css("marginTop",-c.offsetHeight).animate({marginTop:0},u.captionAnimationDuration);G.style.visibility=""}function q(){k.onload=null;k.src=t.src=J.src=n;w([a,g,c]).stop(true);w([I,d,g,G]).hide()}function C(){if(F>=0){q();F=x=D=-1;w(a).hide();w(H).stop().fadeOut(u.overlayFadeDuration,j)}return false}})(jQuery);
jQuery.fn.isChildOf = function(b){ 
    return (this.parents(b).length > 0); 
};
var g = {
	id: document.body.getAttribute('id')
}
var isScrolledIntoView = function(elem)
{
    var docViewTop = $(window).scrollTop();
    var docViewBottom = docViewTop + $(window).height();
 
    var elemTop = $(elem).offset().top + 85;
    var elemBottom = elemTop + $(elem).height();

    return ((elemBottom >= docViewTop) && (elemTop <= docViewBottom));
}
var whereToBuyClick = function(e) {	
	e.preventDefault();
	var h = e.target.href,
	st = h.substring(h.indexOf('#')+1);
		$('#custAddr div:visible').hide();
		if ($('#custAddr div.'+st).length) {
			$('#custAddr div.'+st).show();
			$('#custAddr div:visible:even:gt(0)').css('clear','both');
			/*@cc_on
			if (parseInt(jQuery.browser.version)===6) { 
				$('#custAddr div:visible:odd').each(function() {
					$(this).css('height',$(this).prev().height()+'px');
				})
			}
			@*/
			if ($(e.target).isChildOf('#statesCust')) {
				$('#custAll').show();
			}
		} else {
			$('#NN').show();
		}
		if(!isScrolledIntoView(document.getElementById('custAddr'))) {
			$.scrollTo('#custAddr', 1000);
		}
}
var setUpHrefs = function() {
	$('a[href]:not(.nosource)').each( function() { 
		var $t = $(this), 
		h = this.href,
		loc = location.href;
		
		if ( 
			h===loc || 
			((h.indexOf('index') > -1) && (g.id==='home')) 
			) 
		{
			$t.addClass('cur').click(function(e) {
				e.preventDefault();
			});
		} else if (
			!$t.isChildOf('#custAddr') &&
			$t.isChildOf('#content') &&
			this.hostname && this.hostname !== location.hostname && this.hostname.indexOf('aslantrends') == -1 && this.hostname.indexOf('antemeridiem') == -1
			) 
		{
			$t.addClass('outsource').attr('target', 'external');
		}
	});
}
$('#ourYarn').hover( function() {
	$('#mainYarnsSubMenu').stop(true,true).fadeIn('slow');
}, function() {
	$('#mainYarnsSubMenu').stop(true,true).fadeOut('slow');
});
$('#subAbout').hover( function() {
	$('#mainAboutSubMenu').stop(true,true).fadeIn('slow');
}, function() {
	$('#mainAboutSubMenu').stop(true,true).fadeOut('slow');
});
$('#subAccessor').hover( function() {
	$('#mainAccessorSubMenu').stop(true,true).fadeIn('slow');
}, function() {
	$('#mainAccessorSubMenu').stop(true,true).fadeOut('slow');
});
$('#kettle').click( function() {
	$(this).find('ul').slideDown('slow',function() {$('#kettle').addClass('open')});
});

$('#rack a').toggle( function(e) {
	e.preventDefault(); 
	$.get('html_includes/rack-instructions.html', function(data) {
		$('#menuYarnSticker').after(data);
		$.getScript('code/Library/jquery.scrollTo-1.4.2-min.js', function() {
			$('#rackInstr').slideDown('slow', function() {
			  $.scrollTo('#rackInstr', 800);
			});
		});
	});
}, function(e) {
	e.preventDefault(); $('#rackInstr').slideUp('fast');
});

if (g.id=='where_to_buy') {
	$('#states a').click( function(e) {
		whereToBuyClick(e);
	})
}
if (g.id=='home' || g.id=='pattern_books') {
	if (g.id =='pattern_books') {
		var imgTotal = 13;
	} else {
		var imgTotal = 10;
	}
	$('<a id="slideShowPrev"></a><a id="slideShowNext"></a>').appendTo('#logoMenu');
	var imgCount = 1, ctner = $('#mainImg'),
	loadedImg = ctner.find('img')[0].getAttribute('alt'),
	cyclePrefs = {
		speed: 2000,
		timeout: 3500,
		pause: 1,
		next: $('#slideShowNext'),
		prev: $('#slideShowPrev')
	};
	while (imgCount < imgTotal+1) {
		if (imgCount !== parseInt(loadedImg)){
			ctner.append('<img src="images/'+g.id+'/'+imgCount+'.jpg" alt="" width="960" height="320">');
		}
		imgCount++;
	};
	ctner.cycle(cyclePrefs);
	if (g.id=='home') {
		$('.freePatternSignUpInit').click( function(e) {
			e.preventDefault();
			$('#freePatternSignUpCtner').slideDown('slow');
		})
	}
	if (g.id=='pattern_books') {
		$('#seasonsVol2 a').click(function() {
			ctner.empty().cycle('destroy');
			imgCount = 1; imgTotal = 7; loadedImg = 0;
			while (imgCount < imgTotal+1) {
				if (imgCount !== parseInt(loadedImg)){
					ctner.append('<img src="images/pattern_books/vol2/'+imgCount+'.jpg" alt="" width="960" height="320">');
				}
				imgCount++;
			};
			ctner.cycle(cyclePrefs); $('#nickyTitle').empty();
		})
		$('#seasonsVol1 a').click(function() {
			ctner.empty().cycle('destroy');
			imgCount = 1; imgTotal = 5; loadedImg = 0;
			while (imgCount < imgTotal+1) {
				if (imgCount !== parseInt(loadedImg)){
					ctner.append('<img src="images/pattern_books/vol1/'+imgCount+'.jpg" alt="" width="960" height="320">');
				}
				imgCount++;
			};
			ctner.cycle(cyclePrefs); $('#nickyTitle').empty();
		})
	}
}

if (g.id == 'customers_free_patterns') {
	var $thumb = $('#thumbArea');
	$('#patternsCtner a').each(function() {
	if (this.href.split('customers/free_patterns/')[1]) {
		var nr = (this.href.split('customers/free_patterns/')[1]).substring(0,3);
		var pathToImg = 'customers/thumbs/'+nr+'.jpg';
		$('<img id="'+nr+'"width="172" height="250" style="display:none" src="'+ pathToImg+ '" />').appendTo($thumb);
		var $this = $(this),
		x = $this.closest('li').prevAll('li.yarnName')[0],
		y = $(x).position().top;
		
		$this.hover(
			function () {
				$thumb.css('top',y+'px'); $('#'+nr).show();
			}, 
			function () {
				$('#'+nr).hide();
			}
		);
	}
	});
}

$('img.am-hoverShwImg').each(function() { $(this).closest('a').addClass('am-hoverShw').text(this.getAttribute('alt')).closest('p').css({'width':this.getAttribute('width')+'px','height':this.getAttribute('height')+'px','background-image':'url('+this.getAttribute('src')+')','background-repeat':'no-repeat'}).end().end().remove();
})

setUpHrefs();
$('noscript').remove();

//START IE
/*@cc_on
//START IE6
if (parseInt(jQuery.browser.version)===6 || parseInt(jQuery.browser.version)===7) { 
	$('#menuYarn a:not(:first)').each(function() {
	$(this).text($(this).text()+'\x20\x20\xAB');
	})
}
if (parseInt(jQuery.browser.version)===6) { 
	$('#rack a').toggle( function(e) {
		return false;
	}, function(e) {
		return false;
	});
	$('#slideShowNext,#slideShowPrev').hover( function() {
		$(this).css('cursor','pointer');
	}, function(e) {
		$(this).css('cursor','default');
	});
	if ($('#becomeCustomerCtner').length) {
		$.getScript('code/Library/DD_belatedPNG_0.0.8a-min.js', function() {
			  DD_belatedPNG.fix('#becomeCustomerCtner');
		})
	}
	$('#contentRight h2:first-child').css('margin-top','0'); 	
}//end IE6
@*/
//end IE

var formContactBuilder = function(paramsClass) {
	var paramsInstance = { };
	var that = formConstructor(paramsClass,paramsInstance);
	return that;
}
var formConstructor = function(paramsClass,paramsInstance) {
	var formId = '#' + paramsClass.formId,
		thanksId = paramsClass.thanksId,
		$formJQ = $(formId);

	var prepareForm = function() {

		$formJQ.find('.validate').focus( function() { 
			var li = $(this).closest('li');
			var errSpan = $(li).find('.error:visible')[0];
			if(errSpan) { 
				$(errSpan).hide('slow');
			}
		});
		if (jQuery.browser.msie) {
			if (parseInt(jQuery.browser.version) < 7) {
				$formJQ.find('#submitBtn').hover(function() { 
					$(this).toggleClass("over"); },function() {
					$(this).toggleClass("over"); 
				});
			}
			$formJQ.find('input, textarea').focus(function() { 
				$(this).addClass('ieFocus');
			});
			$formJQ.find('input, textarea').blur(function() {
				$(this).removeClass('ieFocus');
			});
		};
		var options = { 
			dataType: 'json',
			beforeSubmit: validate,
			success: showResponse 
		};
		$formJQ.ajaxForm(options);
	};
	var validate = function(formData, jqForm, options) { 
		var form = jqForm[0], err = 0, errThis;
		for (var i=0; i < formData.length; i++) {
			var $this = $(form [name=formData[i].name]);
			var v = formData[i].value;
			if ($this.hasClass('validate')) {
				if ($this.hasClass('notempty') || $this.hasClass('radio')) {
					errThis = valFields(v,$this,formData[i].type);
					err = err + Number(errThis);
				}
				if ($this.hasClass('email')) {
					errThis = valFields(v,$this,'email');
					err = err + Number(errThis);
				}
			}
		}
		if(!err)
		{
			$formJQ.find('ol').append('<span id="submitting"/>');
			$('#submitting').css('opacity','0.5').fadeIn('slow');
		};
		return !err;
	};
	var valFields = function(v,$field,type) {
			var isErr, errMsg;
		if (type === 'email') {
			isErr = !v.match(/^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i);
			errMsg = '<span class="error">Please enter a valid e-mail address!</span>';
		} else if (type === 'radio') {
			isErr = !jQuery.trim( v );
			errMsg = '<span class="error">Please select one of the choices!</span>';
		}  else {
			isErr = !jQuery.trim( v );
			errMsg = '<span class="error">Please fill out the field above!</span>';
		}
		if ( isErr ) {
			var li = $field.closest('li'),
				errSpan = $(li).find('.error')[0];

			if ( !errSpan ) {
				$(li).append(errMsg);
				errSpan = $(li).find('.error')[0];
			} 
			
			$(errSpan).show();
		}
		return isErr;
	}
	var showResponse = function(data)  {	
		$formJQ.unbind('submit');		
		var cont = $formJQ.closest('div');
		cont.slideUp('slow',function() {
			cont.empty()
			.addClass('processed')
			.append('<h3 id="' + thanksId + '">' + data.message + '</h3>').slideDown('slow');
		});
	};
	var that = {};
	that.prepareForm = prepareForm;
	return that;
}
if (g.id=='contact') {
	$('#amd_contactform_fixed').attr('action','code/process_contact.php');
	var contactForm = formContactBuilder( {formId : 'amd_contactform_fixed', thanksId: 'amf_response_thank' } );
	contactForm.prepareForm();	
};
if (g.id=='home') {
	$('#freePatternSignUpForm').attr('action','code/process_signup.php');
	var contactForm = formContactBuilder( {formId : 'freePatternSignUpForm', thanksId: 'amf_response_thank' } );
	contactForm.prepareForm();	
};
if (g.id=='leather_handbag_handles') {
	if (!/android|iphone|ipod|series60|symbian|windows ce|blackberry/i.test(navigator.userAgent)) {
		$("a[rel^='lightbox']").slimbox({
			initialWidth: 500,
			initialHeight: 640,
			counterText: ''
			}, null, function(el) {
				return (this == el) || ((this.rel.length > 8) && (this.rel == el.rel));
			});
	}
}
//END formConstructor

