jslous.noConflict();
var js = jslous;
js(function(){
 var boxthumbnailoffset = 71;
 var boxthumbnailmargin = 5;
 var carousels = jslous.html.query('i.carousels');
 var carflg = false;
 var accselator = function(ods,offset,margin){ return ((offset*ods)+(margin*ods+5)); }
 
 var crossfadorListener = function(elm){
  jslous.Event.Listener(elm,'click',function(evt){
   if(document.getElementById('crossfador')){ document.getElementById('crossfador').parentNode.removeChild(document.getElementById('crossfador')); }
   var elm = jslous.Event.target(evt);
   while(elm.tagName.toLowerCase() != 'img'){ elm = elm.parentNode; }
   var main = document.createElement('div');
   main['id'] = 'crossfador';
   document.body.appendChild(main);
   var src = elm.getAttribute('name');
   var cache = document.createElement('img'); 
   cache['id'] = 'cache';
   cache['src'] = src;
   jslous.css.opacity(cache,0);
   main.appendChild(cache);
   var loading = false;
   jslous.Event.Listener(cache,'imgload',function(evt){
    var width = jslous.css.current(cache,'width'),height = jslous.css.current(cache,'height');
    var totop = (jslous.size.scrollTop() > 0 ? ((jslous.size.clientHeight()-height)/2)+jslous.size.scrollTop():((jslous.size.clientHeight()-height)/2)+50);
    var toleft = (jslous.size.scrollLeft() > 0 ? ((jslous.size.clientWidth()-width)/2)+jslous.size.scrollLeft():((jslous.size.clientWidth()-width)/2)+50);
    jslous.css.setstyles(cache,{top:totop+'px',left:toleft+'px'});
    loading = true;
   });
   var overlay_1 = document.createElement('div');
   var laywidth = (jslous.size.scrollLeft() > 0 ? (jslous.size.clientWidth()+jslous.size.scrollLeft()):(jslous.size.clientWidth()-15));
   var layheight = jslous.size.clientHeight();
   var basetop = jslous.size.scrollTop() > 0 ? jslous.size.scrollTop():0;
   overlay_1.style['top'] = basetop+'px';
   overlay_1.style['width'] = laywidth+'px';
   overlay_1.style['height'] = 0+'px';
   main.appendChild(overlay_1);
   jslous.func.motion.Listener(overlay_1.style,{
    time:0.25,
    effect:'circin',
    height:{from:0,to:layheight,unit:''},
    comp:function(){
     overlay_1.style['height'] = layheight+'px';
     setTimeout(function(){
      if(loading == false){ setTimeout(arguments.callee,50); }
      jslous.func.motion.Listener({},{
       time:0.5,
       effect:'liner',
       down:{from:50,to:0,unit:''},
       up:{from:0,to:100,unit:''},
       upd:function(){
        jslous.css.opacity(overlay_1,parseInt(this.target.down));
        jslous.css.opacity(cache,parseInt(this.target.up));
       },
       comp:function(){
        overlay_1.parentNode.removeChild(overlay_1);
        jslous.css.opacity(cache,100);
        jslous.Event.Listener(cache,'click',function(evt){
         jslous.func.motion.Listener(cache.style,{
          time:0.3,
          effect:'circin',
          opacity:{from:100,to:0,unit:''},
          comp:function(){ if(document.getElementById('crossfador')){ document.getElementById('crossfador').parentNode.removeChild(document.getElementById('crossfador')); }
          }
         });
        });
       }
      });
     },250); 
    }
   });
  });
 }


 var dissolves = jslous.html.query('img.dissolves');
 js('div#flashcontent').each(function(){
  var elm = this;
  if(elm && elm.tagName && elm.tagName.toLowerCase() == 'div'){
   var so = new SWFObject("top.swf", "top", "100%", "480", "7", "#fff");
   so.addVariable("flashVarText", "this is passed in via FlashVars for example only");
   so.addParam("scale", "noscale");
   so.write("flashcontent");
  }
 }).query('img.dissolves').hover(function(evt){
  var trg = jslous.Event.target(evt);
  while(trg.tagName.toLowerCase() != 'img'){ trg = trg.parentNode; }
  if(!trg['className'].toString().match(/active/i)){
   trg['className'] = trg['className']+' hover';
  }
 },function(evt){
  var trg = jslous.Event.target(evt);
  while(trg.tagName.toLowerCase() != 'img'){ trg = trg.parentNode; }
  if(!trg['className'].toString().match(/active/i)){
   trg['className'] = trg['className'].replace(' hover','');
  }
 }).click(function(evt){
  var trg = jslous.Event.target(evt);
  while(trg.tagName.toLowerCase() != 'img'){ trg = trg.parentNode; }
  if(trg['className'].toString().match(/active/i)){ return false; }
  marker = document.getElementById('dissolvemarker');
  marker.style['left'] = parseInt(jslous.elmPos.left(trg))+'px';
  for(var i = 0,len = dissolves.length;i < len;i++){ dissolves[i]['className'] = ''; }
  trg['className'] = trg['className']+' active';
  var prv = document.getElementById('dissolve');
  if(prv && trg['name']){
   prv['id'] = '';
   var next = document.createElement('img');
   next['src'] = trg['name'];
   prv.parentNode.insertBefore(next,prv);
   jslous.Event.Listener(next,'imgload',function(){
    jslous.func.motion.Listener(prv.style,{
     time:0.75,
     effect:'liner',
     opacity:{from:100,to:0,unit:''},
     comp:function(){
      jslous.css.opacity(prv,0);
      prv.parentNode.removeChild(prv);
      next['id'] = 'dissolve';
     }
    });
   });
  }
 }).query('i.carousels').each(function(){
  var elm = this,ods = elm.getAttribute('index');
  elm.style['left'] = (boxthumbnailoffset*ods)+(boxthumbnailmargin*ods+5)+'px';
  crossfadorListener(elm);
 }).query('div#rightarrow').click(function(evt){
  if(carflg == true){ return false; }
  carflg = true;
  var currents = [];
  var latest = carousels[carousels.length-1];
  jslous.node.insertFirst(latest.cloneNode(true),latest.parentNode);
  carousels = jslous.html.query('i.carousels');
  jslous.each(carousels,function(){
   var elm = this,key = elm.getAttribute('index');
   currents[key] = parseInt(jslous.css.current(elm,'left'));
  });
  jslous.func.motion.Listener({},{
   time:0.1,
   effect:'liner',
   offset:{from:-830,to:boxthumbnailoffset,unit:0},
   margin:{from:-830,to:boxthumbnailmargin,unit:0},
   upd:function(){
    var offset = parseInt(this.target.offset);
    var margin = parseInt(this.target.margin);
    jslous.each(carousels,function(){
     var elm = this,key = elm.getAttribute('index');
     elm.style['left'] = (accselator(key,offset,margin))-(boxthumbnailoffset+boxthumbnailmargin)+'px';
    });
   },
   comp:function(){
    jslous.each(carousels,function(){
     var elm = this,key = elm.getAttribute('index');
     elm.style['left'] = (accselator(key,boxthumbnailoffset,boxthumbnailmargin))+'px';
     crossfadorListener(elm);
    });
    carousels[carousels.length-1].parentNode.removeChild(carousels[carousels.length-1]);
    carousels = jslous.html.query('i.carousels');
    carflg = false;
   }
  });
 }).query('div#leftarrow').click(function(evt){
  if(carflg == true){ return false; }
  carflg = true;
  var currents = [];
  var latest = carousels[0];
  latest.parentNode.appendChild(latest.cloneNode(true));
  carousels = jslous.html.query('i.carousels');
  jslous.each(carousels,function(){
   var elm = this,key = elm.getAttribute('index');
   currents[key] = parseInt(jslous.css.current(elm,'left'));
  });
  jslous.func.motion.Listener({},{
   time:0.1,
   effect:'liner',
   offset:{from:830+boxthumbnailoffset,to:boxthumbnailoffset,unit:0},
   margin:{from:830+boxthumbnailmargin,to:boxthumbnailmargin,unit:0},
   upd:function(){
    var offset = parseInt(this.target.offset);
    var margin = parseInt(this.target.margin);
    jslous.each(carousels,function(){
     var elm = this,key = elm.getAttribute('index');
     elm.style['left'] = (accselator(key-1,offset,margin))-(boxthumbnailoffset+boxthumbnailmargin)+'px';
    });
   },
   comp:function(){
    jslous.each(carousels,function(){
     var elm = this,key = elm.getAttribute('index');
     elm.style['left'] = (accselator(key-1,boxthumbnailoffset,boxthumbnailmargin))+'px';
     crossfadorListener(elm);
    });
    carousels[0].parentNode.removeChild(carousels[0]);
    carousels = jslous.html.query('i.carousels');
    carflg = false;
   }
  });
 });
});