function jSlide(){}

jSlide.prototype.slideFromLeft  = false;
jSlide.prototype.thumbHeight    = '50';
jSlide.prototype.thumbWidth     = '107';
jSlide.prototype.thumbTop       = '178';
jSlide.prototype.prevX          = '-165';  
jSlide.prototype.nextX          = '-167';
jSlide.prototype.canvasWidth    = '900';
jSlide.prototype.canvasHeight   = '420';
jSlide.prototype.canvasCenterLeft = '400';
jSlide.prototype.slideStartPoint  = '-350';
jSlide.prototype.filePath       = '/multimedia/promotions/';

jSlide.prototype.start = function(){
    $("#jslide_prev").bind('click',jSlide.prototype.preLoad).css({'cursor' : 'pointer'});
    $("#jslide_next").bind('click',jSlide.prototype.preLoad).css({'cursor' : 'pointer'});
    $("#jslide_breadcrumbs > li > a").bind('mouseout mouseleave mouseoff click',jSlide.prototype.closePreview).bind('mouseover',jSlide.prototype.preview).css({'cursor' : 'pointer'});
    $("#jslide_breadcrumbs > li > a[id=jslide_home]").bind('click',jSlide.prototype.loadHomepage);
    $("#jslide_breadcrumbs > li > a[id!=jslide_home]").bind('click',jSlide.prototype.preLoad);
    $("#jslide_arrow_prev").bind('click',function (){$("#jslide_prev").trigger('click');});
    $("#jslide_arrow_next").bind('click',function (){$("#jslide_next").trigger('click');});
    jSlide.prototype.setCanvasLink();
    jSlide.prototype.stopCurrent();
}

jSlide.prototype.setCanvasLink = function(){
    var elm = $($(".current")[0]);
    var url = jSlide.prototype.getUrl(elm);
    if( url!='' ) {
        $("#jslide_canvas").bind('click',function(){document.location="http://"+url;}).css({cursor:'pointer'});
    }
}

jSlide.prototype.loadHomepage = function(event){
     if( $("#jslide_content").css("display")=='block' ){
        $(".current").attr({className:''});
        jSlide.prototype.start();
        $("#jslide_content").css({position:'absolute'})
        $("#jslide_content").animate({
            opacity: 0
        }, 700);
        $("#jslide_content").css({display:'none',position:'relative'});
        $("#homepage_content").css({opacity:100,display:'block'});
        // $("#homepage_content").css({opacity:0,display:'block'});
        // $("#homepage_content").animate({
            // opacity: 1
        // }, 700);        
        
/*         $("#jslide_content").animate({
            opacity: 0
        }, 700, null, function(){
            $("#jslide_content").css({display:'none',position:'relative'});
            $("#homepage_content").css({opacity:0,display:'block'});
            $("#homepage_content").animate({
                opacity: 1
            }, 700);
        }); */
    }
    event.preventDefault();
}

jSlide.prototype.closePreview = function(){
    $(".preview").remove();
}

jSlide.prototype.getFile = function(obj,file){
    var files = $(obj).attr("alt").split(",");
    for( i=0; i<files.length; i++){
        var fileParts = files[i].split(":");
        if( fileParts[0]==file ){
            return jSlide.prototype.filePath + fileParts[1];
        }
    }
    return false;
}

jSlide.prototype.getUrl = function(obj){
    if(typeof $(obj).attr("alt") != 'undefined'){
        var files = $(obj).attr("alt").split(",");
        for( i=0; i<files.length; i++){
            var fileParts = files[i].split(":");
            if( fileParts[0]=='url' ){
                return fileParts[1];
            }
        }
        return false;
    }
}

jSlide.prototype.preview = function(event){
    //var tempSplit = $(event.target.parentNode).attr("href").split("/");
    var file = jSlide.prototype.getFile(event.target.parentNode,'thumb');
    var div = document.createElement('div');
    $(div).attr('id','preview');
    $(div).attr('class','preview');
    $(div).css({display:'none'});
    var img = document.createElement('img');
    $(img).attr({ 
        src: file, //event.target,
        width: jSlide.prototype.thumbWidth,
        height: jSlide.prototype.thumbHeight
    });
    $(img).appendTo(div);
    $(event.target).after(div);
    $(".preview").fadeIn("slow");
}

jSlide.prototype.stop = function(){
    $("#jslide_prev").unbind('click',jSlide.prototype.preLoad).bind('click',jSlide.prototype.holdit).css({'cursor' : 'wait'});
    $("#jslide_next").unbind('click',jSlide.prototype.preLoad).bind('click',jSlide.prototype.holdit).css({'cursor' : 'wait'});
    $("#jslide_breadcrumbs > li > a").unbind('mouseover',jSlide.prototype.preview).unbind('click',jSlide.prototype.preLoad).bind('click',jSlide.prototype.holdit).css({'cursor' : 'wait'});
    //$("#jslide_breadcrumbs > li > a[id!=jslide_home]").unbind('mouseover',jSlide.prototype.preview).unbind('click',jSlide.prototype.preLoad).bind('click',jSlide.prototype.holdit).css({'cursor' : 'wait'});
    $("#jslide_arrow_prev").unbind('click',function (){$("#jslide_prev").trigger('click');});
    $("#jslide_arrow_next").unbind('click',function (){$("#jslide_next").trigger('click');});
}

jSlide.prototype.stopCurrent = function(){
    $(".current").unbind('mouseover',jSlide.prototype.preview).unbind('click',jSlide.prototype.preLoad).bind('click',jSlide.prototype.holdit);
}

jSlide.prototype.holdit = function(event){
    event.preventDefault();
}

jSlide.prototype.preLoad = function(event){
    if( $("#homepage_content").css("display")=='block' ){
        $("#homepage_content").css({position:'absolute'})
        $("#homepage_content").animate({
            opacity: 0
        }, 700); //, function(){
            // $("#homepage_content").css({display:'none',position:'relative'});
            // $("#jslide_content").css({opacity:0,display:'block'});
            // $("#jslide_content").animate({
                // opacity: 1
            // }, 700); //, null, function(event){jSlide.prototype.load(event);});
        // });        }, 700, function(){
        $("#homepage_content").css({display:'none',position:'relative'});
        $("#jslide_content").css({opacity:0,display:'block'});
        $("#jslide_content").animate({
            opacity: 1
        }, 700); //, null, function(event){jSlide.prototype.load(event);});
        jSlide.prototype.load(event);
    } else {
        jSlide.prototype.load(event);
    }
    event.preventDefault();
}

jSlide.prototype.load = function(event){
    //if ( $(event.target).attr("id")!='jslide_home'){
        var forceFromLeft = false;
        if( $(event.target).attr("id")=='jslide_prev' ){
            forceFromLeft = true;
            var tempSplit = $("#jslide_prev").attr("href").split("/");
            var image = jSlide.prototype.getFile($("a[alt*='" + tempSplit[tempSplit.length-1] + "']"),'image'); 
        } else if( $(event.target).attr("id")=='jslide_next' ){
            var tempSplit = $("#jslide_next").attr("href").split("/");
            var image = jSlide.prototype.getFile($("a[alt*='" + tempSplit[tempSplit.length-1] + "']"),'image'); 
        } else if(event.target.tagName.toUpperCase()=='IMG'){
            if ( $(event.target.parentNode).attr("id")=='jslide_prev' ){
                forceFromLeft = true;
            }
            var tempSplit = $(event.target.parentNode).attr("href").split("/");
            var image = jSlide.prototype.getFile($("a[alt*='" + tempSplit[tempSplit.length-1] + "']"),'image'); 
        } else {
            var image = jSlide.prototype.getFile(event.target,'image');
        }
        /* Prevent links from being clicked */
        jSlide.prototype.stop();
        
        /* Add .current class to selected breadcrumb */
        $("#jslide_breadcrumbs > li > a").removeClass("current");
        $("#jslide_breadcrumbs > li > a").each(function (i) {
            if( image == jSlide.prototype.getFile(this,'image')  ){
                $(this).addClass('current');
                var current = i;
            }
        });
        
        /* Reorder breadcrumbs so that selected item is in the center */
        jSlide.prototype.reOrderBreadCrumbs(forceFromLeft);
        
        /* Determine temporary canvas id# name */
        var temp_canvas = jSlide.prototype.slideFromLeft ? 'jslide_canvas_right' : 'jslide_canvas_left'; 
        
        /* Created canvas elements */
        var div = document.createElement('div');
        $(div).attr('id',temp_canvas);
        
        var img = document.createElement('img');
        $(img).attr('src',image);
        $(img).attr('width',jSlide.prototype.thumbWidth);
        $(img).attr('height',jSlide.prototype.thumbHeight);
        $(img).appendTo(div);
        $(div).appendTo("#jslide_content");
        event.preventDefault();
        
        /* Reset Prev and Next links */
        jSlide.prototype.resetControls(temp_canvas);
        /* Class slideout method */
        jSlide.prototype.doTransition(temp_canvas);
        /* Reactivate links */
        setTimeout(jSlide.prototype.start,2500);
    //}
}

jSlide.prototype.reOrderBreadCrumbs = function(forceFromLeft){
    var count = $("#jslide_breadcrumbs > li > a").length;
    var center = '';
    var current = '';
    $("#jslide_breadcrumbs > li > a").each(function (i) {
        if( $(this).hasClass('current') ) current = i;
        if( $(this).attr("id") == 'jslide_home' ) center = i;
    });
    var bump = Math.floor(count/2)-center;
    //var first = bump>0 ? count-bump : Math.abs(bump);
    // jSlide.prototype.slideFromLeft = bump>0 ? true : false;
    // jSlide.prototype.majorBump = bump>1 | bump<-1 ? true : false;
    if( forceFromLeft ){
        jSlide.prototype.slideFromLeft = true;
    } else {
        jSlide.prototype.slideFromLeft = current<center ? true : false;
    }
    //jSlide.prototype.majorBump = bump>1 | bump<-1 ? true : false;
    // var tempNode = '';
    // var newList = document.createElement('ul');
    // var crumbs = $("#jslide_breadcrumbs > li");
    // var ii = 0;
    // for(i=0; i<count; i++){
        // var place = first+i;
        // if( place >= count ){ place = ii; ii++; }
        // tempNode = $(crumbs[place]).clone(true);
        // $(tempNode).appendTo(newList);
    // }
    // $(newList).attr('id','jslide_breadcrumbs');
    // $("#jslide_breadcrumbs_wrapper").html(newList);
}

jSlide.prototype.resetControls = function(temp_canvas){
    var count = $("#jslide_breadcrumbs > li > a").length;
    $("#jslide_breadcrumbs > li > a").each(function (i) {
        if( this.className == 'current' ){
            var prev = i==0 ? count-1 : i-1;
            var next = i==count-1 ? 0 : i+1;
            if( $($("#jslide_breadcrumbs > li > a")[prev]).attr("id") == 'jslide_home' ) prev = prev-1;
            if( $($("#jslide_breadcrumbs > li > a")[next]).attr("id") == 'jslide_home' ) next = next+1;
            $("#jslide_prev").attr("href",$("#jslide_breadcrumbs > li > a")[prev].href);
            $("#jslide_next").attr("href",$("#jslide_breadcrumbs > li > a")[next].href);
            if( temp_canvas=='jslide_canvas_left' ){
                $("#jslide_next > img").attr("src",$("#jslide_breadcrumbs > li > a")[next].href);
                jSlide.prototype.prevImage = $("#jslide_breadcrumbs > li > a")[prev].href;
            } else {
                $("#jslide_prev > img").attr("src",$("#jslide_breadcrumbs > li > a")[prev].href);
                jSlide.prototype.nextImage = $("#jslide_breadcrumbs > li > a")[next].href;
            }
        }
    });
}

jSlide.prototype.doTransition = function(temp_canvas){
    if( temp_canvas == 'jslide_canvas_left' ){
        $("#jslide_next").css({opacity: "0",display : 'block',right : jSlide.prototype.slideStartPoint+"px"});
    } else {
        $("#jslide_prev").css({opacity: "0",display : 'block',left : jSlide.prototype.slideStartPoint+"px"});
    }
    $("#jslide_flash_canvas").remove();
    $("#jslide_canvas").css({display:'block'});
    $("#jslide_canvas").animate({
        left: jSlide.prototype.canvasCenterLeft+"px",
        top: jSlide.prototype.thumbTop+"px",
        width: jSlide.prototype.thumbWidth+"px",
        height: jSlide.prototype.thumbHeight+"px"
    }, 700);
    $("#jslide_canvas > img").animate({
        width: jSlide.prototype.thumbWidth+"px",
        height: jSlide.prototype.thumbHeight+"px"
    }, 700, null, function(){ jSlide.prototype.slidein(temp_canvas); });
}

jSlide.prototype.slidein = function(temp_canvas){
    if( temp_canvas == 'jslide_canvas_left' ){
        $("#jslide_next").animate({opacity: "1",right: jSlide.prototype.nextX+"px"}, 700);
        $("#jslide_prev").animate({opacity: "0",left: jSlide.prototype.slideStartPoint+"px"}, 700);
    } else {
        $("#jslide_prev").animate({opacity: "1",left: jSlide.prototype.prevX+"px"}, 700);
        $("#jslide_next").animate({opacity: "0",right: jSlide.prototype.slideStartPoint+"px"}, 700);
    }
    $("#jslide_canvas").animate({
        //top: (Number(jSlide.prototype.thumbTop)-3)+"px",
        top: jSlide.prototype.thumbTop+"px",
        left: temp_canvas=='jslide_canvas_left' ? (jSlide.prototype.prevX-4)+"px" : (Number(jSlide.prototype.canvasWidth)+64)+"px"
    }, 700);
    $("#"+temp_canvas).animate({
        left: jSlide.prototype.canvasCenterLeft+"px"
    }, 700, null, function(){ jSlide.prototype.blowUpImage(temp_canvas); });
} 

jSlide.prototype.blowUpImage = function(temp_canvas){
    $("#"+temp_canvas).animate({top: "0px",left: "0px"}, 700);
    $("#"+temp_canvas+" > img").animate({
        width: jSlide.prototype.canvasWidth+"px",
        height: jSlide.prototype.canvasHeight+"px"
    }, 700, null, function(){ jSlide.prototype.swapCanvas(temp_canvas); });
}

jSlide.prototype.swapCanvas = function(temp_canvas){
    $("#jslide_canvas").remove();
    $("#"+temp_canvas).attr('id','jslide_canvas');
    jSlide.prototype.addFlashMovie();
    if( temp_canvas=='jslide_canvas_left' ){
        $("#jslide_prev > img").attr("src",jSlide.prototype.prevImage);
        $("#jslide_prev").css({opacity: "1",left : jSlide.prototype.prevX+'px'});
    } else {
        $("#jslide_next > img").attr("src",jSlide.prototype.nextImage);
        $("#jslide_next").css({opacity: "1",right : jSlide.prototype.nextX+'px'});
    }
    $("#"+temp_canvas).remove();
}

jSlide.prototype.addFlashMovie = function(){
    var flashFile = jSlide.prototype.getFile($(".current"),'file');
    if( flashFile ){
        var swf = document.createElement('div');
        $(swf).attr({ 
            id: 'jslide_flash_canvas',
            width: jSlide.prototype.canvasWidth,
            height: jSlide.prototype.canvasHeight
        });
        $("#jslide_canvas > img").css({display:'none'});
        $(swf).appendTo($("#jslide_canvas"));
        jSlide.prototype.createSwfObject('jslide_flash_canvas',flashFile,jSlide.prototype.canvasWidth,jSlide.prototype.canvasHeight);
    }
}

jSlide.prototype.createSwfObject = function(div,swfFile,width,height){ 
    var so = new SWFObject(swfFile + '?r=' + new Date().getTime(),'videoplayerembed', width, height, 8);
    so.addParam('wmode','transparent'); 
    so.write(div); 
}

$(document).ready(jSlide.prototype.start);