/* Copyright (c) 2009 Brandon Aaron (http://brandonaaron.net)
 * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
 * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
 * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.
 * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.
 *
 * Version: 3.0.2
 *
 * Requires: 1.2.2+
 */
(function(c){
    var a=["DOMMouseScroll","mousewheel"];
    c.event.special.mousewheel={
	setup:function(){
	    if(this.addEventListener){
		for(var d=a.length;d;){
		    this.addEventListener(a[--d],b,false)
		}
	    }else{
		this.onmousewheel=b
	    }
	},
	teardown:function(){
	    if(this.removeEventListener){
		for(var d=a.length;d;){
		    this.removeEventListener(a[--d],b,false)
		}
	    }else{
		this.onmousewheel=null
	    }
	}
    };

    c.fn.extend({
	mousewheel:function(d){
	    return d?this.bind("mousewheel",d):this.trigger("mousewheel")
	},
	unmousewheel:function(d){
	    return this.unbind("mousewheel",d)
	}
    });
    function b(f){
	var d=[].slice.call(arguments,1),g=0,e=true;
	f=c.event.fix(f||window.event);
	f.type="mousewheel";
	if(f.wheelDelta){
	    g=f.wheelDelta/120
	}
	if(f.detail){
	    g=-f.detail/3
	}
	d.unshift(f,g);
	return c.event.handle.apply(this,d)
    }
})(jQuery);

/*
 * FancyBox - jQuery Plugin
 * Simple and fancy lightbox alternative
 *
 * Examples and documentation at: http://fancybox.net
 *
 * Copyright (c) 2008 - 2010 Janis Skarnelis
 *
 * Version: 1.3.1 (05/03/2010)
 * Requires: jQuery v1.3+
 *
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 */
(function(A){
    var J,S,Q,K,d,w,I,N,z,D=0,H={},h=[],e=0,F={},y=[],f=null,m=new Image(),g=/\.(jpg|gif|png|bmp|jpeg)(.*)?$/i,k=/[^\.]\.(swf)\s*$/i,q,L=1,a,c,O=false,C=20,t=A.extend(A("<div/>")[0],{
	prop:0
    }),j=0,R=!A.support.opacity&&!window.XMLHttpRequest,i=function(){
	S.hide();
	m.onerror=m.onload=null;
	if(f){
	    f.abort()
	}
	J.empty()
    },p=function(){
	A.fancybox('<p id="fancybox_error">The requested content cannot be loaded.<br />Please try again later.</p>',{
	    scrolling:"no",
	    padding:20,
	    transitionIn:"none",
	    transitionOut:"none"
	})
    },E=function(){
	return[A(window).width(),A(window).height(),A(document).scrollLeft(),A(document).scrollTop()]
    },b=function(){
	var V=E(),ac={},aa=F.margin,W=F.autoScale,ab=(C+aa)*2,Z=(C+aa)*2,X=(F.padding*2),Y;
	if(F.width.toString().indexOf("%")>-1){
	    ac.width=((V[0]*parseFloat(F.width))/100)-(C*2);
	    W=false
	}else{
	    ac.width=F.width+X
	}
	if(F.height.toString().indexOf("%")>-1){
	    ac.height=((V[1]*parseFloat(F.height))/100)-(C*2);
	    W=false
	}else{
	    ac.height=F.height+X
	}
	if(W&&(ac.width>(V[0]-ab)||ac.height>(V[1]-Z))){
	    if(H.type=="image"||H.type=="swf"){
		ab+=X;
		Z+=X;
		Y=Math.min(Math.min(V[0]-ab,F.width)/F.width,Math.min(V[1]-Z,F.height)/F.height);
		ac.width=Math.round(Y*(ac.width-X))+X;
		ac.height=Math.round(Y*(ac.height-X))+X
	    }else{
		ac.width=Math.min(ac.width,(V[0]-ab));
		ac.height=Math.min(ac.height,(V[1]-Z))
	    }
	}
	ac.top=V[3]+((V[1]-(ac.height+(C*2)))*0.5);
	ac.left=V[2]+((V[0]-(ac.width+(C*2)))*0.5);
	if(F.autoScale===false){
	    ac.top=Math.max(V[3]+aa,ac.top);
	    ac.left=Math.max(V[2]+aa,ac.left)
	}
	return ac
    },M=function(V){
	if(V&&V.length){
	    switch(F.titlePosition){
		case"inside":
		    return V;
		case"over":
		    return'<span id="fancybox-title-over">'+V+"</span>";
		default:
		    return'<span id="fancybox-title-wrap"><span id="fancybox-title-left"></span><span id="fancybox-title-main">'+V+'</span><span id="fancybox-title-right"></span></span>'
	    }
	}
	return false
    },s=function(){
	var X=F.title,W=c.width-(F.padding*2),V="fancybox-title-"+F.titlePosition;
	A("#fancybox-title").remove();
	j=0;
	if(F.titleShow===false){
	    return
	}
	X=A.isFunction(F.titleFormat)?F.titleFormat(X,y,e,F):M(X);
	if(!X||X===""){
	    return
	}
	A('<div id="fancybox-title" class="'+V+'" />').css({
	    width:W,
	    paddingLeft:F.padding,
	    paddingRight:F.padding
	}).html(X).appendTo("body");
	switch(F.titlePosition){
	    case"inside":
		j=A("#fancybox-title").outerHeight(true)-F.padding;
		c.height+=j;
		break;
	    case"over":
		A("#fancybox-title").css("bottom",F.padding);
		break;
	    default:
		A("#fancybox-title").css("bottom",A("#fancybox-title").outerHeight(true)*-1);
		break
	}
	A("#fancybox-title").appendTo(d).hide()
    },o=function(){
	A(document).unbind("keydown.fb").bind("keydown.fb",function(V){
	    if(V.keyCode==27&&F.enableEscapeButton){
		V.preventDefault();
		A.fancybox.close()
	    }else{
		if(V.keyCode==37){
		    V.preventDefault();
		    A.fancybox.prev()
		}else{
		    if(V.keyCode==39){
			V.preventDefault();
			A.fancybox.next()
		    }
		}
	    }
	});
	if(A.fn.mousewheel){
	    K.unbind("mousewheel.fb");
	    if(y.length>1){
		K.bind("mousewheel.fb",function(V,W){
		    V.preventDefault();
		    if(O||W===0){
			return
		    }
		    if(W>0){
			A.fancybox.prev()
		    }else{
			A.fancybox.next()
		    }
		})
	    }
	}
	if(!F.showNavArrows){
	    return
	}
	if((F.cyclic&&y.length>1)||e!==0){
	    N.show()
	}
	if((F.cyclic&&y.length>1)||e!=(y.length-1)){
	    z.show()
	}
    },T=function(){
	var V,W;
	if((y.length-1)>e){
	    V=y[e+1].href;
	    if(typeof V!=="undefined"&&V.match(g)){
		W=new Image();
		W.src=V
	    }
	}
	if(e>0){
	    V=y[e-1].href;
	    if(typeof V!=="undefined"&&V.match(g)){
		W=new Image();
		W.src=V
	    }
	}
    },v=function(){
	w.css("overflow",(F.scrolling=="auto"?(F.type=="image"||F.type=="iframe"||F.type=="swf"?"hidden":"auto"):(F.scrolling=="yes"?"auto":"visible")));
	if(!A.support.opacity){
	    w.get(0).style.removeAttribute("filter");
	    K.get(0).style.removeAttribute("filter")
	}
	A("#fancybox-title").show();
	if(F.hideOnContentClick){
	    w.one("click",A.fancybox.close)
	}
	if(F.hideOnOverlayClick){
	    Q.one("click",A.fancybox.close)
	}
	if(F.showCloseButton){
	    I.show()
	}
	o();
	A(window).bind("resize.fb",A.fancybox.center);
	if(F.centerOnScroll){
	    A(window).bind("scroll.fb",A.fancybox.center)
	}else{
	    A(window).unbind("scroll.fb")
	}
	if(A.isFunction(F.onComplete)){
	    F.onComplete(y,e,F)
	}
	O=false;
	T()
    },G=function(Z){
	var W=Math.round(a.width+(c.width-a.width)*Z),V=Math.round(a.height+(c.height-a.height)*Z),Y=Math.round(a.top+(c.top-a.top)*Z),X=Math.round(a.left+(c.left-a.left)*Z);
	K.css({
	    width:W+"px",
	    height:V+"px",
	    top:Y+"px",
	    left:X+"px"
	});
	W=Math.max(W-F.padding*2,0);
	V=Math.max(V-(F.padding*2+(j*Z)),0);
	w.css({
	    width:W+"px",
	    height:V+"px"
	});
	if(typeof c.opacity!=="undefined"){
	    K.css("opacity",(Z<0.5?0.5:Z))
	}
    },x=function(V){
	var W=V.offset();
	W.top+=parseFloat(V.css("paddingTop"))||0;
	W.left+=parseFloat(V.css("paddingLeft"))||0;
	W.top+=parseFloat(V.css("border-top-width"))||0;
	W.left+=parseFloat(V.css("border-left-width"))||0;
	W.width=V.width();
	W.height=V.height();
	return W
    },U=function(){
	var Y=H.orig?A(H.orig):false,X={},W,V;
	if(Y&&Y.length){
	    W=x(Y);
	    X={
		width:(W.width+(F.padding*2)),
		height:(W.height+(F.padding*2)),
		top:(W.top-F.padding-C),
		left:(W.left-F.padding-C)
	    }
	}else{
	    V=E();
	    X={
		width:1,
		height:1,
		top:V[3]+V[1]*0.5,
		left:V[2]+V[0]*0.5
	    }
	}
	return X
    },u=function(){
	S.hide();
	if(K.is(":visible")&&A.isFunction(F.onCleanup)){
	    if(F.onCleanup(y,e,F)===false){
		A.event.trigger("fancybox-cancel");
		O=false;
		return
	    }
	}
	y=h;
	e=D;
	F=H;
	w.get(0).scrollTop=0;
	w.get(0).scrollLeft=0;
	if(F.overlayShow){
	    if(R){
		A("select:not(#fancybox-tmp select)").filter(function(){
		    return this.style.visibility!=="hidden"
		}).css({
		    visibility:"hidden"
		}).one("fancybox-cleanup",function(){
		    this.style.visibility="inherit"
		})
	    }
	    Q.css({
		"background-color":F.overlayColor,
		opacity:F.overlayOpacity
	    }).unbind().show()
	}
	c=b();
	s();
	if(K.is(":visible")){
	    A(I.add(N).add(z)).hide();
	    var W=K.position(),V;
	    a={
		top:W.top,
		left:W.left,
		width:K.width(),
		height:K.height()
	    };

	    V=(a.width==c.width&&a.height==c.height);
	    w.fadeOut(F.changeFade,function(){
		var X=function(){
		    w.html(J.contents()).fadeIn(F.changeFade,v)
		};

		A.event.trigger("fancybox-change");
		w.empty().css("overflow","hidden");
		if(V){
		    w.css({
			top:F.padding,
			left:F.padding,
			width:Math.max(c.width-(F.padding*2),1),
			height:Math.max(c.height-(F.padding*2)-j,1)
		    });
		    X()
		}else{
		    w.css({
			top:F.padding,
			left:F.padding,
			width:Math.max(a.width-(F.padding*2),1),
			height:Math.max(a.height-(F.padding*2),1)
		    });
		    t.prop=0;
		    A(t).animate({
			prop:1
		    },{
			duration:F.changeSpeed,
			easing:F.easingChange,
			step:G,
			complete:X
		    })
		}
	    });
	    return
	}
	K.css("opacity",1);
	if(F.transitionIn=="elastic"){
	    a=U();
	    w.css({
		top:F.padding,
		left:F.padding,
		width:Math.max(a.width-(F.padding*2),1),
		height:Math.max(a.height-(F.padding*2),1)
	    }).html(J.contents());
	    K.css(a).show();
	    if(F.opacity){
		c.opacity=0
	    }
	    t.prop=0;
	    A(t).animate({
		prop:1
	    },{
		duration:F.speedIn,
		easing:F.easingIn,
		step:G,
		complete:v
	    })
	}else{
	    w.css({
		top:F.padding,
		left:F.padding,
		width:Math.max(c.width-(F.padding*2),1),
		height:Math.max(c.height-(F.padding*2)-j,1)
	    }).html(J.contents());
	    K.css(c).fadeIn(F.transitionIn=="none"?0:F.speedIn,v)
	}
    },r=function(){
	J.width(H.width);
	J.height(H.height);
	if(H.width=="auto"){
	    H.width=J.width()
	}
	if(H.height=="auto"){
	    H.height=J.height()
	}
	u()
    },P=function(){
	O=true;
	H.width=m.width;
	H.height=m.height;
	A("<img />").attr({
	    id:"fancybox-img",
	    src:m.src,
	    alt:H.title
	}).appendTo(J);
	u()
    },l=function(){
	i();
	var aa=h[D],X,Y,ac,ab,W,V,Z;
	H=A.extend({},A.fn.fancybox.defaults,(typeof A(aa).data("fancybox")=="undefined"?H:A(aa).data("fancybox")));
	ac=aa.title||A(aa).title||H.title||"";
	if(aa.nodeName&&!H.orig){
	    H.orig=A(aa).children("img:first").length?A(aa).children("img:first"):A(aa)
	}
	if(ac===""&&H.orig){
	    ac=H.orig.attr("alt")
	}
	if(aa.nodeName&&(/^(?:javascript|#)/i).test(aa.href)){
	    X=H.href||null
	}else{
	    X=H.href||aa.href||null
	}
	if(H.type){
	    Y=H.type;
	    if(!X){
		X=H.content
	    }
	}else{
	    if(H.content){
		Y="html"
	    }else{
		if(X){
		    if(X.match(g)){
			Y="image"
		    }else{
			if(X.match(k)){
			    Y="swf"
			}else{
			    if(A(aa).hasClass("iframe")){
				Y="iframe"
			    }else{
				if(X.match(/#/)){
				    aa=X.substr(X.indexOf("#"));
				    Y=A(aa).length>0?"inline":"ajax"
				}else{
				    Y="ajax"
				}
			    }
			}
		    }
		}else{
		    Y="inline"
		}
	    }
	}
	H.type=Y;
	H.href=X;
	H.title=ac;
	if(H.autoDimensions&&H.type!=="iframe"&&H.type!=="swf"){
	    H.width="auto";
	    H.height="auto"
	}
	if(H.modal){
	    H.overlayShow=true;
	    H.hideOnOverlayClick=false;
	    H.hideOnContentClick=false;
	    H.enableEscapeButton=false;
	    H.showCloseButton=false
	}
	if(A.isFunction(H.onStart)){
	    if(H.onStart(h,D,H)===false){
		O=false;
		return
	    }
	}
	J.css("padding",(C+H.padding+H.margin));
	A(".fancybox-inline-tmp").unbind("fancybox-cancel").bind("fancybox-change",function(){
	    A(this).replaceWith(w.children())
	});
	switch(Y){
	    case"html":
		J.html(H.content);
		r();
		break;
	    case"inline":
		A('<div class="fancybox-inline-tmp" />').hide().insertBefore(A(aa)).bind("fancybox-cleanup",function(){
		    A(this).replaceWith(w.children())
		}).bind("fancybox-cancel",function(){
		    A(this).replaceWith(J.children())
		});
		A(aa).appendTo(J);
		r();
		break;
	    case"image":
		O=false;
		A.fancybox.showActivity();
		m=new Image();
		m.onerror=function(){
		    p()
		};

		m.onload=function(){
		    m.onerror=null;
		    m.onload=null;
		    P()
		};

		m.src=X;
		break;
	    case"swf":
		ab='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+H.width+'" height="'+H.height+'"><param name="movie" value="'+X+'"></param>';
		W="";
		A.each(H.swf,function(ad,ae){
		    ab+='<param name="'+ad+'" value="'+ae+'"></param>';
		    W+=" "+ad+'="'+ae+'"'
		});
		ab+='<embed src="'+X+'" type="application/x-shockwave-flash" width="'+H.width+'" height="'+H.height+'"'+W+"></embed></object>";
		J.html(ab);
		r();
		break;
	    case"ajax":
		V=X.split("#",2);
		Z=H.ajax.data||{};

		if(V.length>1){
		    X=V[0];
		    if(typeof Z=="string"){
			Z+="&selector="+V[1]
		    }else{
			Z.selector=V[1]
		    }
		}
		O=false;
		A.fancybox.showActivity();
		f=A.ajax(A.extend(H.ajax,{
		    url:X,
		    data:Z,
		    error:p,
		    success:function(ae,af,ad){
			if(f.status==200){
			    J.html(ae);
			    r()
			}
		    }
		}));
		break;
	    case"iframe":
		A('<iframe id="fancybox-frame" name="fancybox-frame'+new Date().getTime()+'" frameborder="0" hspace="0" scrolling="'+H.scrolling+'" src="'+H.href+'"></iframe>').appendTo(J);
		u();
		break
	}
    },n=function(){
	if(!S.is(":visible")){
	    clearInterval(q);
	    return
	}
	A("div",S).css("top",(L*-40)+"px");
	L=(L+1)%12
    },B=function(){
	if(A("#fancybox-wrap").length){
	    return
	}
	A("body").append(J=A('<div id="fancybox-tmp"></div>'),S=A('<div id="fancybox-loading"><div></div></div>'),Q=A('<div id="fancybox-overlay"></div>'),K=A('<div id="fancybox-wrap"></div>'));
	if(!A.support.opacity){
	    K.addClass("fancybox-ie");
	    S.addClass("fancybox-ie")
	}
	d=A('<div id="fancybox-outer"></div>').append('<div class="fancy-bg" id="fancy-bg-n"></div><div class="fancy-bg" id="fancy-bg-ne"></div><div class="fancy-bg" id="fancy-bg-e"></div><div class="fancy-bg" id="fancy-bg-se"></div><div class="fancy-bg" id="fancy-bg-s"></div><div class="fancy-bg" id="fancy-bg-sw"></div><div class="fancy-bg" id="fancy-bg-w"></div><div class="fancy-bg" id="fancy-bg-nw"></div>').appendTo(K);
	d.append(w=A('<div id="fancybox-inner"></div>'),I=A('<a id="fancybox-close"></a>'),N=A('<a href="javascript:;" id="fancybox-left"><span class="fancy-ico" id="fancybox-left-ico"></span></a>'),z=A('<a href="javascript:;" id="fancybox-right"><span class="fancy-ico" id="fancybox-right-ico"></span></a>'));
	I.click(A.fancybox.close);
	S.click(A.fancybox.cancel);
	N.click(function(V){
	    V.preventDefault();
	    A.fancybox.prev()
	});
	z.click(function(V){
	    V.preventDefault();
	    A.fancybox.next()
	});
	if(R){
	    Q.get(0).style.setExpression("height","document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px'");
	    S.get(0).style.setExpression("top","(-20 + (document.documentElement.clientHeight ? document.documentElement.clientHeight/2 : document.body.clientHeight/2 ) + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop )) + 'px'");
	    d.prepend('<iframe id="fancybox-hide-sel-frame" src="javascript:\'\';" scrolling="no" frameborder="0" ></iframe>')
	}
    };

    A.fn.fancybox=function(V){
	A(this).data("fancybox",A.extend({},V,(A.metadata?A(this).metadata():{}))).unbind("click.fb").bind("click.fb",function(X){
	    X.preventDefault();
	    if(O){
		return
	    }
	    O=true;
	    A(this).blur();
	    h=[];
	    D=0;
	    var W=A(this).attr("rel")||"";
	    if(!W||W==""||W==="nofollow"){
		h.push(this)
	    }else{
		h=A("a[rel="+W+"], area[rel="+W+"]");
		D=h.index(this)
	    }
	    l();
	    return false
	});
	return this
    };

    A.fancybox=function(Y){
	if(O){
	    return
	}
	O=true;
	var X=typeof arguments[1]!=="undefined"?arguments[1]:{};

	h=[];
	D=X.index||0;
	if(A.isArray(Y)){
	    for(var W=0,V=Y.length;W<V;W++){
		if(typeof Y[W]=="object"){
		    A(Y[W]).data("fancybox",A.extend({},X,Y[W]))
		}else{
		    Y[W]=A({}).data("fancybox",A.extend({
			content:Y[W]
		    },X))
		}
	    }
	    h=jQuery.merge(h,Y)
	}else{
	    if(typeof Y=="object"){
		A(Y).data("fancybox",A.extend({},X,Y))
	    }else{
		Y=A({}).data("fancybox",A.extend({
		    content:Y
		},X))
	    }
	    h.push(Y)
	}
	if(D>h.length||D<0){
	    D=0
	}
	l()
    };

    A.fancybox.showActivity=function(){
	clearInterval(q);
	S.show();
	q=setInterval(n,66)
    };

    A.fancybox.hideActivity=function(){
	S.hide()
    };

    A.fancybox.next=function(){
	return A.fancybox.pos(e+1)
    };

    A.fancybox.prev=function(){
	return A.fancybox.pos(e-1)
    };

    A.fancybox.pos=function(V){
	if(O){
	    return
	}
	V=parseInt(V,10);
	if(V>-1&&y.length>V){
	    D=V;
	    l()
	}
	if(F.cyclic&&y.length>1&&V<0){
	    D=y.length-1;
	    l()
	}
	if(F.cyclic&&y.length>1&&V>=y.length){
	    D=0;
	    l()
	}
	return
    };

    A.fancybox.cancel=function(){
	if(O){
	    return
	}
	O=true;
	A.event.trigger("fancybox-cancel");
	i();
	if(H&&A.isFunction(H.onCancel)){
	    H.onCancel(h,D,H)
	}
	O=false
    };

    A.fancybox.close=function(){
	if(O||K.is(":hidden")){
	    return
	}
	O=true;
	if(F&&A.isFunction(F.onCleanup)){
	    if(F.onCleanup(y,e,F)===false){
		O=false;
		return
	    }
	}
	i();
	A(I.add(N).add(z)).hide();
	A("#fancybox-title").remove();
	K.add(w).add(Q).unbind();
	A(window).unbind("resize.fb scroll.fb");
	A(document).unbind("keydown.fb");
	function V(){
	    Q.fadeOut("fast");
	    K.hide();
	    A.event.trigger("fancybox-cleanup");
	    w.empty();
	    if(A.isFunction(F.onClosed)){
		F.onClosed(y,e,F)
	    }
	    y=H=[];
	    e=D=0;
	    F=H={};

	    O=false
	}
	w.css("overflow","hidden");
	if(F.transitionOut=="elastic"){
	    a=U();
	    var W=K.position();
	    c={
		top:W.top,
		left:W.left,
		width:K.width(),
		height:K.height()
	    };

	    if(F.opacity){
		c.opacity=1
	    }
	    t.prop=1;
	    A(t).animate({
		prop:0
	    },{
		duration:F.speedOut,
		easing:F.easingOut,
		step:G,
		complete:V
	    })
	}else{
	    K.fadeOut(F.transitionOut=="none"?0:F.speedOut,V)
	}
    };

    A.fancybox.resize=function(){
	var W,V;
	if(O||K.is(":hidden")){
	    return
	}
	O=true;
	W=w.wrapInner("<div style='overflow:auto'></div>").children();
	V=W.height();
	K.css({
	    height:V+(F.padding*2)+j
	});
	w.css({
	    height:V
	});
	W.replaceWith(W.children());
	A.fancybox.center()
    };

    A.fancybox.center=function(){
	O=true;
	var V=E(),W=F.margin,X={};

	X.top=V[3]+((V[1]-((K.height()-j)+(C*2)))*0.5);
	X.left=V[2]+((V[0]-(K.width()+(C*2)))*0.5);
	X.top=Math.max(V[3]+W,X.top);
	X.left=Math.max(V[2]+W,X.left);
	K.css(X);
	O=false
    };

    A.fn.fancybox.defaults={
	padding:10,
	margin:20,
	opacity:false,
	modal:false,
	cyclic:false,
	scrolling:"auto",
	width:560,
	height:340,
	autoScale:true,
	autoDimensions:true,
	centerOnScroll:false,
	ajax:{},
	swf:{
	    wmode:"transparent"
	},
	hideOnOverlayClick:true,
	hideOnContentClick:false,
	overlayShow:true,
	overlayOpacity:0.3,
	overlayColor:"#666",
	titleShow:true,
	titlePosition:"outside",
	titleFormat:null,
	transitionIn:"fade",
	transitionOut:"fade",
	speedIn:300,
	speedOut:300,
	changeSpeed:300,
	changeFade:"fast",
	easingIn:"swing",
	easingOut:"swing",
	showCloseButton:true,
	showNavArrows:true,
	enableEscapeButton:true,
	onStart:null,
	onCancel:null,
	onComplete:null,
	onCleanup:null,
	onClosed:null
    };

    A(document).ready(function(){
	B()
    })
})(jQuery);

/*
				     * iViewer - JQuery Plugin
				     * by Dmitry Petrov
				     */
(function(b){
    b.fn.iviewer=function(d){
	return this.each(function(){
	    b(this).data("viewer",new a(this,d))
	})
    };

    var c={
	zoom:"fit",
	zoom_base:100,
	zoom_max:800,
	zoom_min:25,
	zoom_delta:1.4,
	ui_disabled:false,
	update_on_resize:true,
	onZoom:null,
	initCallback:null,
	onStartDrag:null,
	onDrag:null,
	onMouseMove:null,
	onClick:null,
	onStartLoad:null,
	onFinishLoad:null
    };

    b.iviewer=function(f,g){
	var d=this;
	this.img_object={};

	this.zoom_object={};

	this.image_loaded=false;
	this.dx=0;
	this.dy=0;
	this.dragged=false;
	this.settings=b.extend({},c,g||{});
	this.current_zoom=this.settings.zoom;
	if(this.settings.src===null){
	    return
	}
	this.container=b(f);
	if(this.settings.update_on_resize==true){
	    this.update_container_info();
	    b(window).resize(function(){
		d.update_container_info()
	    })
	}
	this.container.css("overflow","hidden");
	this.img_object.x=0;
	this.img_object.y=0;
	this.img_object.object=b("<img>").css({
	    position:"absolute",
	    top:"0px",
	    left:"0px"
	}).mousedown(function(h){
	    return d.drag_start(h)
	}).mousemove(function(h){
	    return d.drag(h)
	}).mouseup(function(h){
	    return d.drag_end(h)
	}).click(function(h){
	    return d.click(h)
	}).mouseleave(function(h){
	    return d.drag_end(h)
	}).mousewheel(function(h,i){
	    var e=(i>0)?1:-1;
	    d.zoom_by(e);
	    return false
	});
	this.loadImage(this.settings.src);
	if(!this.settings.ui_disabled){
	    this.createui()
	}
	if(this.settings.initCallback){
	    this.settings.initCallback.call(this)
	}
    };

    var a=b.iviewer;
    a.fn=a.prototype={
	iviewer:"0.4.2"
    };

    a.fn.extend=a.extend=b.extend;
    a.fn.extend({
	loadImage:function(e){
	    this.current_zoom=this.settings.zoom;
	    this.image_loaded=false;
	    var d=this;
	    if(this.settings.onStartLoad){
		this.settings.onStartLoad.call(this)
	    }
	    this.img_object.object.unbind("load").removeAttr("src").removeAttr("width").removeAttr("height").css({
		top:0,
		left:0
	    }).load(function(){
		d.image_loaded=true;
		d.img_object.display_width=d.img_object.orig_width=this.width;
		d.img_object.display_height=d.img_object.orig_height=this.height;
		if(!d.container.hasClass("iviewer_cursor")){
		    d.container.addClass("iviewer_cursor")
		}
		if(d.settings.zoom.match(/fit.*/)){
		    d.fit()
		}else{
		    d.set_zoom(d.settings.zoom)
		}
		if(d.settings.onFinishLoad){
		    d.settings.onFinishLoad.call(d)
		}
		d.img_object.object.prependTo(d.container)
	    }).attr("src",e)
	},
	fit:function(){
	    var f=this.img_object.orig_width/this.img_object.orig_height;
	    var d=this.settings.width/this.settings.height;
	    var e=(f>d);
	    var g=0;
	    if(e){
		g=this.settings.width/this.img_object.orig_width*100
	    }else{
		g=this.settings.height/this.img_object.orig_height*100
	    }
	    this.set_zoom(g)
	},
	center:function(){
	    this.setCoords(-Math.round((this.img_object.display_height-this.settings.height)/2),-Math.round((this.img_object.display_width-this.settings.width)/2))
	},
	moveTo:function(d,i){
	    var f=d-Math.round(this.settings.width/2);
	    var e=i-Math.round(this.settings.height/2);
	    var h=this.img_object.x-this.dx;
	    var g=this.img_object.y-this.dy;
	    this.setCoords(h,g)
	},
	setCoords:function(d,e){
	    if(!this.image_loaded){
		return
	    }
	    if(e>0){
		e=0
	    }
	    if(d>0){
		d=0
	    }
	    if(e+this.img_object.display_height<this.settings.height){
		e=this.settings.height-this.img_object.display_height
	    }
	    if(d+this.img_object.display_width<this.settings.width){
		d=this.settings.width-this.img_object.display_width
	    }
	    if(this.img_object.display_width<=this.settings.width){
		d=-(this.img_object.display_width-this.settings.width)/2
	    }
	    if(this.img_object.display_height<=this.settings.height){
		e=-(this.img_object.display_height-this.settings.height)/2
	    }
	    d=Math.round(d);
	    e=Math.round(e);
	    this.img_object.x=d;
	    this.img_object.y=e;
	    this.img_object.object.css("top",e+"px").css("left",d+"px")
	},
	containerToImage:function(d,e){
	    if(d<this.img_object.x||e<this.img_object.y||d>this.img_object.x+this.img_object.display_width||e>this.img_object.y+this.img_object.display_height){
		return false
	    }
	    return{
		x:a.descaleValue(d-this.img_object.x,this.current_zoom),
		y:a.descaleValue(e-this.img_object.y,this.current_zoom)
	    }
	},
	imageToContainer:function(d,e){
	    if(d>this.img_object.orig_width||e>this.img_object.orig_height){
		return false
	    }
	    return{
		x:this.img_object.x+a.scaleValue(d,this.current_zoom),
		y:this.img_object.y+a.scaleValue(e,this.current_zoom)
	    }
	},
	getMouseCoords:function(d){
	    var f=this.img_object.object.offset();
	    return{
		x:a.descaleValue(d.pageX-f.left,this.current_zoom),
		y:a.descaleValue(d.pageY-f.top,this.current_zoom)
	    }
	},
	set_zoom:function(j){
	    if(this.settings.onZoom&&this.settings.onZoom.call(this,j)==false){
		return
	    }
	    if(!this.image_loaded){
		return
	    }
	    if(j<this.settings.zoom_min){
		j=this.settings.zoom_min
	    }else{
		if(j>this.settings.zoom_max){
		    j=this.settings.zoom_max
		}
	    }
	    if(this.current_zoom=="fitMax100"){
		this.current_zoom="fit";
		if(j>100){
		    j=100
		}
	    }
	    if(this.current_zoom=="fit"){
		var d=Math.round(this.settings.width/2+this.img_object.orig_width/2);
		var i=Math.round(this.settings.height/2+this.img_object.orig_height/2);
		this.current_zoom=100
	    }else{
		var d=-parseInt(this.img_object.object.css("left"),10)+Math.round(this.settings.width/2);
		var i=-parseInt(this.img_object.object.css("top"),10)+Math.round(this.settings.height/2)
	    }
	    var e=a.scaleValue(this.img_object.orig_width,j);
	    var f=a.scaleValue(this.img_object.orig_height,j);
	    var h=a.scaleValue(a.descaleValue(d,this.current_zoom),j);
	    var g=a.scaleValue(a.descaleValue(i,this.current_zoom),j);
	    h=this.settings.width/2-h;
	    g=this.settings.height/2-g;
	    this.img_object.object.attr("width",e).attr("height",f);
	    this.img_object.display_width=e;
	    this.img_object.display_height=f;
	    this.setCoords(h,g);
	    this.current_zoom=j;
	    this.update_status()
	},
	zoom_by:function(g){
	    var f=this.find_closest_zoom_rate(this.current_zoom);
	    var d=f+g;
	    var e=this.settings.zoom_base*Math.pow(this.settings.zoom_delta,d);
	    if(g>0&&e<this.current_zoom){
		e*=this.settings.zoom_delta
	    }
	    if(g<0&&e>this.current_zoom){
		e/=this.settings.zoom_delta
	    }
	    this.set_zoom(e)
	},
	find_closest_zoom_rate:function(g){
	    if(g==this.settings.zoom_base){
		return 0
	    }
	    function j(l,k){
		return l/k
	    }
	    function h(l,k){
		return l*k
	    }
	    var f=(g>this.settings.zoom_base)?h:j;
	    var i=(g>this.settings.zoom_base)?1:-1;
	    var d=this.settings.zoom_delta;
	    var e=1;
	    while(Math.abs(f(this.settings.zoom_base,Math.pow(d,e))-g)>Math.abs(f(this.settings.zoom_base,Math.pow(d,e+1))-g)){
		e++
	    }
	    return i*e
	},
	update_status:function(){
	    if(!this.settings.ui_disabled){
		var d=Math.round(100*this.img_object.display_height/this.img_object.orig_height);
		if(d){
		    b(this.zoom_object).html(d+"%")
		}
	    }
	},
	update_container_info:function(){
	    this.settings.height=this.container.height();
	    this.settings.width=this.container.width()
	},
	drag_start:function(d){
	    if(this.settings.onStartDrag&&this.settings.onStartDrag.call(this,this.getMouseCoords(d))==false){
		return false
	    }
	    this.dragged=true;
	    this.container.addClass("iviewer_drag_cursor");
	    this.dx=d.pageX-this.img_object.x;
	    this.dy=d.pageY-this.img_object.y;
	    return false
	},
	drag:function(g){
	    this.settings.onMouseMove&&this.settings.onMouseMove.call(this,this.getMouseCoords(g));
	    if(this.dragged){
		this.settings.onDrag&&this.settings.onDrag.call(this,this.getMouseCoords(g));
		var d=g.pageY-this.dy;
		var f=g.pageX-this.dx;
		this.setCoords(f,d);
		return false
	    }
	},
	drag_end:function(d){
	    this.container.removeClass("iviewer_drag_cursor");
	    this.dragged=false
	},
	click:function(d){
	    this.settings.onClick&&this.settings.onClick.call(this,this.getMouseCoords(d))
	},
	createui:function(){
	    var d=this;
	    b("<div>").addClass("iviewer_zoom_in").addClass("iviewer_common").addClass("iviewer_button").mousedown(function(){
		d.zoom_by(1);
		return false
	    }).appendTo(this.container);
	    b("<div>").addClass("iviewer_zoom_out").addClass("iviewer_common").addClass("iviewer_button").mousedown(function(){
		d.zoom_by(-1);
		return false
	    }).appendTo(this.container);
	    b("<div>").addClass("iviewer_zoom_zero").addClass("iviewer_common").addClass("iviewer_button").mousedown(function(){
		d.set_zoom(100);
		return false
	    }).appendTo(this.container);
	    b("<div>").addClass("iviewer_zoom_fit").addClass("iviewer_common").addClass("iviewer_button").mousedown(function(){
		d.fit(this);
		return false
	    }).appendTo(this.container);
	    this.zoom_object=b("<div>").addClass("iviewer_zoom_status").addClass("iviewer_common").appendTo(this.container);
	    this.update_status()
	}
    });
    a.extend({
	scaleValue:function(e,d){
	    return e*d/100
	},
	descaleValue:function(e,d){
	    return e*100/d
	}
    })
})(jQuery);

/*
				     * RC Willey home grown code
				     */

var pr_locale="en_US";
var pr_zip_location="/reviews";
var pr_page_id=sku;
var pr_write_review="/WriteAReview.jsp?sku="+ sku;
var pr_read_review="javascript:showTab(4,true)";

var iviewer, viewerHeight, viewerWidth;
var zoomSetup = false;
var inFrame = false;

// if in an iframe, change some layout
if (top.location != self.location) {
    document.write("<style>\
			.productTitle {display:none}\
			#resultsCrumbs{display:none}\
			#alsoViewedColumn,#alsoViewedSpacer{width:0px;padding:0;border:none}\
			#detailContainer{width:570px}\
			#detailsProd{padding-left:5px}\
		</style>");
    inFrame = true
}

homeStoreChangeListener = function()
{
    location.reload(true)
}

$(document).ready(function(){
    $("#zoomImageTrigger").bind('click', showZoomImg);
    $(".detailThumbs").attr('style','display:none'); // for ie
    if (project != '')
    {
	$("#checkAvailibility").hide(0);
	$("#inStockDiv").show(0);
    }
    else if (!inStoreOnly && sku != '')
    {
	$.ajax({
	    url: "/GetProductDetailAjaxAction.jsp",
	    dataType: 'json',
	    timeout: 6000,
	    data: {
		id:sku
	    },
	    success: function(data, status){
		handleAjaxData(data)
	    },
	    error: function(){
		handleAjaxData()
	    }
	});
    }
    addThumbs('detailThumbs',true);
})

function setTabSelection(index) {
    for (var i = 1; i <= 6 ; i++)
    {
	var div = document.getElementById('detailsHeader' + i);
	if (div != null)
	    div.className = (i == index)?'tabSelected':'tab';
    }
    for (var i = 1; i <= 6 ; i++)
    {
	var div = document.getElementById('detailsTab' + i);
	if (div != null)
	    div.style.display = (i == index)?'block':'none';
    }
}

function checkQuantity() {
    var quantity = parseInt(addToCartForm.quantity.value);
    if (isNaN(quantity) || quantity < 1) {
	alert("Please enter a valid quantity.");
	addToCartForm.quantity.focus();
	return false;
    }
    return true;
}

function showTab(index, scroll)
{
    var url;
    switch(index)
    {
	case 1:
	    url = '/productDetailsTabDescription/' + sku
	    break
	case 2:
	    url = '/productDetailsTabFeatures/' + sku
	    break
	case 3:
	    url = '/productDetailsTabSpecs/' + sku
	    break
	case 4:
	    url = '/productDetailsTabReviews/' + sku
	    break
	case 5:
	    url = '/productDetailsTabQA/' + sku
	    break
	case 6:
	    url = '/productDetailsTabOptions/' + sku
	    break
    }
    _gaq.push(['_trackPageview',url]);

    setTabSelection(index);
    document.getElementById('detailsTab' + index).scrollTop = 0;
    if (scroll) $.scrollTo('#tabArea',500)
}

function addThumbs(id, detailsPage)
{
    for (var index = 1; index <= imageCount; index++)
    {
	if (index == 2)
	{
	    // We have more than one so show
	    $("#" + id).attr('style', 'display:table');
	}
	$("#" + id + " tr").append('<td><a href="#" onclick="showZoomImg(' +
	    index + ')"' + (detailsPage?
		'onmouseover="showOverImg('+index+')"':
		'') + '><img border=0 src="' +
	    imagePrefix + 'thumb' + index + '.jpg"/></a></td>');
    }
}

function showOverImg(index)
{
    $("#prodImage").attr("src", imagePrefix + "preview" + index + ".jpg");
}

function showZoomImg(index)
{
    if (index == null || index instanceof Object) index = 1
    if (index < 0) index = imageCount + 1 + index;
    if (!zoomSetup)
    {
	viewerWidth = Math.min(800,$(window).width()-150);
	viewerHeight = Math.min(800,$(window).height()-150);
    }

    $("#iviewer").children(":not(#popupThumbs)").remove();

    $("#iviewer").height(viewerHeight).width(viewerWidth);
    iviewer = $("#iviewer").iviewer(
    {
	src:imagePrefix + 'image' + index + ".jpg",
	update_on_resize: false,
	zoom:'fitMax100',
	width:viewerWidth,
	height:viewerHeight
    });

    if (zoomSetup)
    {
	if (!isZoomShowing())
	    $("#zoomImageTrigger").click();
    }
    else
    {
	$("#zoomImageTrigger").unbind().fancybox({
	    hideOnContentClick: false,
	    titleShow    : false,
	    transitionIn	: 'fade',
	    transitionOut	: 'fade',
	    padding: 5
	}).click();

	zoomSetup = true;

	// hack for ie, or no image is shown
	$("#zoomImageHider").css('display','none');

	addThumbs('popupThumbs');
    }

    return false;
}

function isZoomShowing()
{
    return $("#zoomImageDiv").parent().attr("id") != 'zoomImageHider';
}

function formatCurrency(amount)
{
    var i = parseFloat(amount);
    if(isNaN(i)) {
	i = 0.00;
    }
    var minus = '';
    if(i < 0) {
	minus = '-';
    }
    i = Math.abs(i);
    i = parseInt((i + .005) * 100);
    i = i / 100;
    s = new String(i);
    if(s.indexOf('.') < 0) {
	s += '.00';
    }
    if(s.indexOf('.') == (s.length - 2)) {
	s += '0';
    }
    s = minus + s;
    return s;
}


function handleAjaxData(data)
{
    $("#checkAvailibility").hide(0);
    var html = "";
    if (data == null || data == undefined || data.inventory == undefined)
    {
	// error fallback
	$("#inStockDiv").show(0);
	$("#availabilityArea").html($("#availabilityArea").html() + 
	    '<tr><td><image src="/images/icons/deliveryError.gif" border="0"/></td><td class="detailNotes" valign="top">Problem checking stock levels</td></tr>');
    }
    else
    {
	if (!isWebOnly && !isGiftCard)
	{
	    if (typeof(data.pickupLocalStore) != "undefined" &&
		data.pickupLocalStore != "")
		{
		html =
		'<tr><td><image src="/images/icons/deliveryCheck.gif" border="0"/></td><td class="detailNotes" valign="top">Store Pickup Available<br />Pick It Up Today at <a href="/StoreLocations.jsp">' +
		data.pickupLocalStore + '</a></td></tr>';
	    }
	    else if (data.truckDeliveryAvailable)
	    {
		// we can ship it and then they can pickup
		html = '<tr><td><image src="/images/icons/deliveryCheck.gif" border="0"/></td><td class="detailNotes" valign="top">Customer Pickup Available</td></tr>';
	    }
	    else if (customerHomeStore == '')
	    {
	    // No info so featured will not be sold out
	    }
	    else
	    {
		html = '<tr><td><image src="/images/icons/deliveryError.gif" border="0"/></td><td class="detailNotes" valign="top">Sold Out In Your Area</td></tr>';
		data.inventory = 0;
	    }
		
	    if (data.truckDeliveryAvailable)
	    {
		html += '<tr><td><image src="/images/icons/deliveryCheck.gif" border="0"/></td><td>Local Delivery Available</td></tr>'
	    }
	    $("#availabilityArea").html($("#availabilityArea").html() + html);
	}
	if (isGiftCard)
	{
	// We already showed what we needed to
	}
	else if (data.inventory > 1 || (data.inventory == 1 && !isClearance))
	{
	    $("#inStockDiv").show(0);
	}
	else
	{
	    if (isFeatured || isClearance)
	    {
		$("#soldOutDiv").show(0);
	    }
	    else
	    {
		$("#outOfStockDiv").show(0);
	    }
	}
	html = "";
	for (var i = 0; i < 5 ; i++)
	{
	    var p = data.alsoViewedProducts[i]
	    html += (inFrame?"":"<tr>");
	    html += '<td align="center" valign="top">';
	    if (p)
	    {
		html += '<a class="prodLink" style="width:80px" href="' +
		p.detailsURL + '" onclick="return recordAlsoViewedClick(this,' + p.sku + ')" id="' +
		p.sku + '"><div style="text-align:center;margin:auto"><img src="' +
		p.imageURL + '" border="0" width="75" height="75" /></div><br />' +
		p.name + '</a>';
		if (!p.listPrice && !p.price)
		{
		    html+='<div id="inStorePurchase">In-Store Purchase Only</div>'
		}
		else if (p.hasMAPPrice)
		{
		    if(p.isCartPricing)
		    {
			if (p.listPrice != '')
			{
			    html += '<div id="ourPrice" style="text-decoration: line-through">' + p.listPrice +
			    '</div>';
			}
			html += '<div class="clickPrice"><a href="' + p.detailsURL +
			'" onclick="return recordAlsoViewedClick(this,' + p.sku +
			')">Show Details</a></div>'
		    }
		    else
		    {
			html+='<div class="salePrice"><a href="javascript:showPricePopup('+
			p.sku+')">Click to see price</a></div>';
		    }
		}
		else if (p.isClearance && p.specialPrice)
		{
		    html+='<div class="clearancePrice">Clearance: $' +
		    formatCurrency(p.specialPrice) + '</div>';
		}
		else if (p.isOnSale && p.specialPrice)
		{
		    html+='<div class="salePrice">Sale: $' +
		    formatCurrency(p.specialPrice) + '</div>';
		}
		else if (p.price)
		{
		    html+='<div class="ourPrice">$'+
		    formatCurrency(p.price) + '</div>';
		}
		else if (p.listPrice)
		{
		    html+='<div class="ourPrice">$'+
		    formatCurrency(p.listPrice) + '</div>';
		}
		if (p.hasCurrentRebate)
		{
		    var descToks = p.rebateDesc.split("|");
		    html+='<div class="prodRebate" align="center"><span style="color:#F60"><strong>Rebate:</strong></span> &nbsp;<a href="/RebateCenter.jsp">' +
		    descToks[0] + '</a><br>valid: ' + descToks[1] + '</div>'
		}
	    }
	    html += '</td>';
	    html += (inFrame?"":"</tr>");
	}

	$("#alsoViewedArea"+ (inFrame?"H":"V")).html((inFrame?"<tr>":"") + html + (inFrame?"</tr>":"")).show();
	$("#alsoViewedHeader" + (inFrame?"H":"V")).show();
    }
}

function recordAlsoViewedClick(link, sku)
{
    _gat._getTracker("UA-166447-1")._trackEvent("alsoViewed", "sku-" + sku);
    setTimeout('document.location = "' + link.href + '"', 100);
    return false;
}

function doShippingEstimate()
{
    $("#shippingEstimate").html('<table id="estimateLoading"><tr><td>\
<img src="/images/icons/loading.gif" width="16" height="16">\
</td></tr></table>')
    var zip = $("#shipZip").val();
    $("#estimateZip").html(zip)
    $("#estimateForm").hide();
    $("#estimateDiv").show();

    $.getJSON("/GetShippingEstimateAction.jsp",
    {
	sku:sku,
	zip:zip,
	fromZip:$("#shipZipFrom").val(),
	weight:$("#shipWeight").val(),
	value:$("#shipValue").val()
    }, function(data, status)
    {
	if (status == 'success')
	{
	    var html = '<table>'
	    //options -> code cost description
	    
	    if (data == null || data.options == null || data.options.length == 0)
	    {
		html += "<tr><td colspan='2'>\
 Unknown zip code or our data is incomplete</td></tr></table>";
	    }
	    else
	    {
		for (var i in data.options)
		{
		    var opt = data.options[i];
		    html += "<tr><td>" + opt.description + "</td><td>$" +
		    opt.cost.toFixed(2) + "</td></tr>";
		}
	    }
	    $("#shippingEstimate").html(html+'</table>').css({
		height:'auto'
	    });
	}
    })
}

function showWhyCartPopup()
{
    var width = $("body").width()*.8;
    var height = Math.max(900-width,300);
    $("body").append('<div class="iframePopup" id="popup" style="width:' + width + 
	'px;height:'+height+'px;margin-left:-' + (width/2) + 'px"><div style="float:right">\
	<a href="#" onClick="$(parent.document.getElementById(\'popup\')).remove()" class="closeX">X</a></div>\
	<div class="iframePopupTitle"></div><iframe src="/jsp/info/cartPricingInfo.jsp" style="height:' +
	height + 'px" class="iframePopup"></iframe></div>');
    $("#popup").fadeIn(500)
}
