/**
 * This script-file hand 
 *
 *
 *
 */
function getDeckActualWidth(){
    var cards = jQuery("#deck .card")
    var cw=0;
    for(var i=0;i<cards.length;i++){
        cw += jQuery(cards[i]).outerWidth(true)
    }
    return cw
}

function getDeckWidthMismatch(){
    var cw=getDeckActualWidth();
    return jQuery("body").width()-cw
}

/**
 * Sets the cursors for usability.
 */
function doSetCursors(){
    if(jQuery("#the_rest .card").length >0 ){
    jQuery("#deck .card").removeClass("firstCard").removeClass("lastCard")
    jQuery("#deck .card:first").addClass("firstCard")
    jQuery("#deck .card:last").addClass("lastCard")
    jQuery("#deck .card a,#deck .card a").attr("onClick","return true")
    jQuery("#deck .card:first a,#deck .card:last a").attr("onClick","return false")
}else {
jQuery("#viewport").css({"display":"none"})
}

}

/**
 * Loophandler for doSetCursors
 */
function setCursors(){
    doSetCursors()
    setTimeout(setCursors,500)   
}


function makeCardDefinitionList(){
/*    var lis=jQuery(".card .cardfront ul li")
    for(var i=0 ; i<lis.length; i++){
        if(jQuery(lis[i]).html().indexOf(";")>0){
            var content=jQuery(lis[i]).html().split(";",2)
            jQuery(lis[i]).html("<div class='key'>"+content[0]+"</div>" + "<div class='value'>"+content[1]+"</div>")
        }
        
    }
*/}

/**
 * Called to initialize (reshuffle) the deck of cards, and bind actions to the cards.
 */
function activateDeck(){
    if(jQuery(".card").length == 0){
        return;
    }else if (jQuery(".card").length == 1){
        jQuery(".card").removeClass("small").addClass("large").css({"float":"none","margin":"auto"})
        jQuery("#deck").css({"float":"none","margin-left":"auto","margin-right":"auto"})
        //makeCardDefinitionList()
        return
    }else if (jQuery(".card").length == 2){
        jQuery(".card").removeClass("small").addClass("large").css({"float":"left"})
        nw=jQuery(".card").outerWidth(true)*2
        jQuery("#deck").css({"float":"none","margin-left":"auto","margin-right":"auto","width":nw+"px"})
        //makeCardDefinitionList()
        return
    }
        setCursors()

        jQuery("#the_rest").append(jQuery(".card"))
    
    var the_rest=jQuery("#the_rest .card")
    var card=the_rest[0]
    jQuery(card).removeClass("small").addClass("large")
    jQuery("#deck").append(card)
    jQuery(card).append(jQuery("<div class='cardid'>"+0+"</div>"))
    jQuery("#viewport").append(jQuery("<div class='viewcard' id='vc"+(0)+"'></div>"))
    
    //makeCardDefinitionList()
    for(var i=1 ; i<the_rest.length; i+=1){
        if(jQuery("#deck").width() < jQuery("body").width()){
            var card=the_rest[i]
            if(i%2==0){
                jQuery("#deck").append(card)
                jQuery("#viewport").append(jQuery("<div class='viewcard' id='vc"+(i)+"'></div>"))
            }else{
                jQuery("#deck").prepend(card)
                jQuery("#viewport").prepend(jQuery("<div class='viewcard' id='vc"+(i)+"'></div>"))
            }
        }else{
            jQuery("#viewport").append(jQuery("<div class='viewcard' id='vc"+(i)+"'></div>"))
        }
        if(i%2==0){
            jQuery(the_rest[i]).append(jQuery("<div class='cardid'>"+i+"</div>"))
        }else{
            jQuery(the_rest[i]).append(jQuery("<div class='cardid'>"+i+"</div>"))
        }
    }
    for(var i=0;i<jQuery("#the_rest .card").length/2;i++){

        jQuery("#viewport").prepend(jQuery("#viewport .viewcard:last"))
    }
        jQuery("#viewport").css({"width":(jQuery(".card").length*25)+"px"})
    updateViewport()
    doSetCursors()
    var mm=getDeckWidthMismatch()

    if(mm<0){
    jQuery("style#dynamic").html(".card.firstCard {margin-left:"+ Math.ceil(getDeckWidthMismatch()/2) +"px;} \n"
        + ".card.lastCard {margin-right:"+ Math.ceil(getDeckWidthMismatch()/2) +"px;}");
    
    }else {
        jQuery("#deck").css({"width": getDeckActualWidth()+"px","margin-left":"auto","margin-right":"auto","float":"none"})
    }

    //jQuery("#deck").sortable({ axis: 'x' })
    jQuery(".card").mouseover(function(){
        var t=jQuery("#deck .card")
        var item=-1
        for(var i=0;i<t.length;i++){
            if(t[i]==this){
                item=i
            }
        }
        var c=jQuery("#the_rest .card")
        if(item>0 && item<t.length-1|| c.length===0){
            jQuery(".card.large").removeClass("large").addClass("small")
            jQuery(this).removeClass("small").addClass("large");
            jQuery(".viewcard").removeClass("over");
            jQuery("#viewport #vc"+jQuery(".cardid",this).html()).addClass("over");
        }
        //jQuery(test).html(item + " " + jQuery(this).outerWidth(true))
    })

    jQuery(".card").click(function(){
        var t=jQuery("#deck .card")
        var item=-1
        for(var i=0;i<t.length;i++){
            if(t[i]==this){
                item=i
            }
        }
        if(item==0 && jQuery("#the_rest .card").length >0){
            //jQuery("#test").html("left")
            jQuery("#the_rest").prepend(t[t.length-1])
            var tr=jQuery("#the_rest .card")
            jQuery("#deck").prepend(tr[tr.length-1])
            t=jQuery("#deck .card")
            jQuery(t[Math.ceil((t.length-1)/2)]).mouseover()
            doSetCursors()
            updateViewport()
        }
        if(item==t.length-1 && jQuery("#the_rest .card").length >0){
            //jQuery("#test").html("right")
            jQuery("#the_rest").append(t[0])
            jQuery("#deck").append(jQuery("#the_rest .card")[0])
            t=jQuery("#deck .card")
            jQuery(t[Math.ceil((t.length-1)/2)]).mouseover()
            doSetCursors()
            updateViewport()
        }
    })

}

function updateViewport(){
    var ids=jQuery("#deck .card:not(:first):not(:last) .cardid")
    jQuery(".viewcard").removeClass("visible")
    for(var i=0;i<ids.length;i++){
        jQuery("#viewport #vc"+jQuery(ids[i]).html()).addClass("visible")
    }
}


function prettyLinks(){
    
		        var fixlinks=jQuery("a")
			for(var i=0;i<fixlinks.length;i++){
				fixlinks[i].href=fixlinks[i].href.replace(/dl38tvmapnp8c\.cloudfront\.net/,'files.vizrt.com')
				fixlinks[i].href=fixlinks[i].href.replace(/files\.vizrt\.com\.s3\.amazonaws\.com/,'files.vizrt.com')
			}
			jQuery("a[rel^='prettyPhoto']").prettyPhoto({theme:'light_square'});
			var vlinks=jQuery("a[href^='http://www.vizrt.com/products'], a[href^='http://www.vizrt.com/solutions/']")
			for(var i=0;i<vlinks.length;i++){
				vlinks[i].href=vlinks[i].href+"?framework=minimal&iframe=true&width=975&height=600"
				jQuery(vlinks[i]).prettyPhoto({theme:'dark_square'});
			}
			var vlinks=jQuery("a[href$='.flv'], a[href$='.mp4']")
			for(var i=0;i<vlinks.length;i++){
				vlinks[i].href="http://files.vizrt.com/flash/player.swf?allowfullscreen=true&width=950&height=615&flashvars=file=" + vlinks[i].href + "&autostart=true"
				var img=jQuery("img",vlinks[i])
                                var pad=Math.floor(img.height()/2)
				img.after("<div style='width:"+Math.floor(img.width()/2+23)+"px;height:"+(pad+23)+"px;background:#000 url("+img.attr("src")+");padding-top:"+(pad-23)+"px;padding-left:"+Math.floor(img.width()/2-23)+"px'><div class='playbutton'></div></div>").remove();
				jQuery(vlinks[i]).prettyPhoto({theme:'dark_square'});
			}
                        jQuery("a[rel^='prettyPhoto[slides]']:not(#slideViewer)").hover(slidesRollover)
                        
}
function slidesRollover(){
    jQuery("#slideViewer").css({"background-image":"url("+jQuery("img",this).attr("src")+")"})
    jQuery("#slideViewer").attr("href",jQuery(this).attr("href"))
    jQuery(".slideViewport img").removeClass("active")
    jQuery("img",this).addClass("active")
}
