	function fpLink(){	    	    	    
	    var class1='fpLinks',class2='fpOn';	    	        
	    this.className=this.className==class1?class2:class1;	    	    
	    aStore.checkCategory(this.id);	   
	    return false; 	    
	}	
	function fpLinkStore(){this.category=[];this.URL='';/*this.checkCategory('l0-mens');*/}
	fpLinkStore.prototype={	
	    addCategory:function(cat){	        
	        for(var i=0;i<this.category.length;i++){if(this.category[i].id===cat){return false;}}	        
	        this.category.push(new this.buildCategory(cat));	        	        
	    },
	    buildCategory:function(cat){
	        this.id=cat;
	        this.value=[];  
	        this.checkValue=function(val){for(var i=0;i<this.value.length;i++){if(this.value[i]===val){this.removeValue(val);return false;}}this.addValue(val);}; 
	        this.addValue=function(value){this.value.push(value);};
	        this.removeValue=function(value){for(var i=0;i<this.value.length;i++){if(this.value[i]===value){this.value.splice(i,1);break;}}};
	    },
	    checkCategory:function(id){      
	        //var cat=id.substr(0,3),tag=id.substr(3);      	        
	        var cat=id.split('___')[0],tag=id.split('___')[1];
	        
	        this.addCategory(cat);	        
	        for(var i=0;i<this.category.length;i++){if(this.category[i].id===cat){this.category[i].checkValue(tag);}}   
	    },
	    buildURL:function(){this.URL='l0-products.html#&';                   
	        this.category.sort(this.compareLevels);	        
	        for(var i=0;i<this.category.length;i++){	            
	            if(this.category[i].value.length>0){
	                this.URL+=this.category[i].id+'=';
	            }	            
	            for(var j=0;j<this.category[i].value.length;j++){	            
	                this.URL+=link_encode(this.category[i].value[j]);
	                //this.URL+=j==this.category[i].value.length-1?i==this.category.length-1?'.html':'-':'::';
	                this.URL+=j==this.category[i].value.length-1?i==this.category.length-1?'':'&':'::';
	            }
	        }	        	        
	        if(this.URL!=''&&this.URL!=window.location){window.location=window.location.protocol+'//'+window.location.host+'/'+this.URL;}	        
	    },
	    compareLevels:function(a,b){var a=parseInt(a.id.substr(1,1)),b=parseInt(b.id.substr(1,1));return a-b;}	    	
	}		
	
	function generateSliders(a){			
        fpSliders.push(
            new slider({
                container:a.container,
                content:a.content,
                get:a.get,
                set:a.set,         
                style:a.style,
                option:a.option,
                display:a.display
            })
        );
        fpSliders[fpSliders.length-1].init=0;       
        for(var i=0;i<a.content.length;i++){fpSliders[fpSliders.length-1].init+=a.content[i][a.get];}            
        a.container.style[a.set]=fpSliders[fpSliders.length-1].init+'px';        
        a.ctrl.left.onclick=
        d$(
            fpSliders[fpSliders.length-1],
            'slider',
            'prev'
        );
        a.ctrl.right.onclick=
        d$(
            fpSliders[fpSliders.length-1],
            'slider',
            'next'
        );                                                        
	}	
	//function updateDisplay(display,obj){display.innerHTML=obj.id;}//function should be inline prototype
	function slider(args){
	    this.t=new t();	    
	    this.container=args.container;
	    this.content=args.content;	    
	    this.get=args.get;
	    this.set=args.set;
	    this.style=args.style;	        
	    this.distance=0;
	    this.currentSlide=1;	    
	    this.slideDistance=args.content[0][args.get];	         
        this.minSlideNum=1;              
        this.maxSlideNum=args.content.length;
        this.currentPos=0; 
        this.calcVal=0;  
        this.sJump=60; //magic number
        this.bound=5; 
        this.startJump=5;
        this.jump=this.mJump=5; //minus jumpval        
        this.page={class1:'off',class2:'on'};
        if(args.option!=null){            
            this.display=args.display
            this.onceComplete=args.option;      
            this.display.innerHTML=this.content[this.currentSlide-1].id;
            //this.onceComplete(this.display,this.getRef(this.currentSlide));//update display text onload
        }
	}
	slider.prototype={  
	    //updateDisplay:function(display,obj){display.innerHTML=obj.id;}
	    guary:function(){        
	        var base=$('pages')   
	        for(var i=1;i<=this.content.length;i++){            
	            var div=document.createElement('div');           	            
	            var p  =document.createElement('p');            	            
                div.id="container"+i;            
	            p.id=p.innerHTML=i;             
	            this.currentSlide==i?p.className=this.page.class2:p.className=this.page.class1;          
	            p.onclick=d$(this,'slider',p);	            
	            Dom.add(p,div);	      	             
	            Dom.add(div,base);	            
	        }    
	    },  
	    pageClick:function(obj){	                
	        var items=$$(document,'p',this.page.class1).concat($$(document,'p',this.page.class2));	            
	        for(var i=0;i<items.length;i++){items[i].className=this.page.class1;}
	        obj.className=this.page.class2;
	    },
	    getPageClicked:function(val){
	        this.pageClick(typeof(val)=='object'?val:$(val));	    
	    },
	    slider:function(val){    
            if(this.t.interval!=null){return false;}
            switch(val){
                case 'next':
                    this.slideAmount=this.currentSlide+1<=this.maxSlideNum?-1:Math.abs(this.minSlideNum-this.maxSlideNum);
                    this.currentSlide+=this.slideAmount!=0&&this.currentSlide+1<=this.maxSlideNum?1:(this.minSlideNum-this.maxSlideNum);                    
                    break;               
                case 'prev':
                    this.slideAmount=this.currentSlide-1>=this.minSlideNum?1:(this.minSlideNum-this.maxSlideNum);          
                    this.currentSlide-=this.slideAmount!=0&&this.currentSlide-1>=this.minSlideNum?1:(this.minSlideNum-this.maxSlideNum);                    
                    break; 
                default:
                    if(val.id>this.currentSlide){                    
                        this.slideAmount=-(val.id-this.currentSlide);
                        this.currentSlide+=Math.abs(this.slideAmount);
                    }else{
                        this.slideAmount=(this.currentSlide-val.id);
                        this.currentSlide-=this.currentSlide-val.id;
                    }
                    break;
            }                           
            //this.getPageClicked(this.currentSlide);                
            this.jump=this.startJump;                
            this.sToD();            
            this.t.timer(
                c$(
                    this,
                    'initSlide'
                ),1
            );
	    },
	    sToD:function(){       
	        this.distance+=this.slideAmount*this.slideDistance;
	    }, 
	    initSlide:function(){            
            this.slideAmount!=0?
            this.t.intervaler(
                d$(
                    this,
                    'slides',
                    this.slideAmount<0?false:true
                ),1
            ):this.t.endInterval();     
	    },  
	    slides:function(bool){
            bool?this.slidePrev():this.slideNext();
            this.applyStyle();          
	    },
	    applyStyle:function(){
	        this.container.style[this.style]=this.currentPos+'px';	    
	    },
	    finishVals:function(){
	        this.currentPos=this.distance;	        
	        this.t.endInterval();
	        this.jump=this.mJump*Math.abs(this.slideAmount);	        	        
	        if(this.onceComplete){
	            //this.onceComplete(this.display,this.getRef(this.currentSlide));
	            this.display.innerHTML=this.content[this.currentSlide-1].id;
	        }//eek
	    },
	    getRef:function(slideNum){return this.content[slideNum-1];},
	    slideNext:function(){       
	        if(this.currentPos>this.distance){	                                 
	            if(this.currentPos>=-(parseInt(this.slideDistance*((this.currentSlide-1)-Math.abs(this.slideAmount))+(this.slideDistance/this.bound)*Math.abs(this.slideAmount)))&&this.jump<this.sJump*Math.abs(this.slideAmount)){
	                this.jump+=(this.mJump*Math.abs(this.slideAmount));	
	                this.jump=this.jump>this.sJump*Math.abs(this.slideAmount)?this.sJump*Math.abs(this.slideAmount):this.jump;
	            }
	            if(this.currentPos<=parseInt(this.distance+((this.slideDistance/this.bound)*Math.abs(this.slideAmount)))&&this.jump>this.mJump*Math.abs(this.slideAmount)){	                
	                this.jump-=(this.mJump*Math.abs(this.slideAmount));	
	                this.jump=this.jump<this.mJump*Math.abs(this.slideAmount)?this.mJump*Math.abs(this.slideAmount):this.jump;                
	            }	            
	            this.currentPos-=this.jump;            	        
	        }
	        if(this.currentPos<=this.distance){
	            this.finishVals();	  
	        }    
	    },
	    slidePrev:function(){
	        if(this.currentPos<this.distance){
	           if(this.currentPos<=-Math.abs(parseInt(this.slideDistance*((this.currentSlide-1)+Math.abs(this.slideAmount))-(this.slideDistance/this.bound)*Math.abs(this.slideAmount)))&&this.jump<this.sJump*Math.abs(this.slideAmount)){
	                this.jump+=(this.mJump*Math.abs(this.slideAmount));	
	                this.jump=this.jump>this.sJump*Math.abs(this.slideAmount)?this.sJump*Math.abs(this.slideAmount):this.jump; 
	            }
	            if(this.currentPos>=parseInt(this.distance-((this.slideDistance/this.bound)*Math.abs(this.slideAmount)))&&this.jump>this.mJump*Math.abs(this.slideAmount)){	                	                
	                this.jump-=(this.mJump*Math.abs(this.slideAmount));		
	                this.jump=this.jump<this.mJump*Math.abs(this.slideAmount)?this.mJump*Math.abs(this.slideAmount):this.jump;                   
	            }           
	            this.currentPos+=this.jump;	               
	        }
	        if(this.currentPos>=this.distance){
	            this.finishVals();
	        }    
	    }
	    	    
	} 
