var scrollStarted = false;
var gameLock = false;
var ulWidth = 0;
var x = -1;


function selectChallengeID(id) {
    var requestURL = 'home/getMiniChallenge/'+id;
    
    var req = new Request.HTML({url:requestURL,
                onSuccess: function(html) {
                    function afterDelay() {
                        $('ajax-content').set('text','');
                        $('ajax-content').adopt(html);
                        //$$('#video-flash object').set('tween',{duration: 0, link: 'chain'}).tween('opacity',[1,0.1]);
                        $//('mini-challenge-title').set('html',$('video-title').get('value'));
                        $('mini-challenge-title').setStyle('background-image','url('+$('video-title-img').get('value')+')');
                        $('challenge-link').set('href',$('video-page-url').get('value'));
                        setupVideo();
                        $('ajax-content').set('tween',{duration: 300, link: 'chain'});
                        $('ajax-content').tween('opacity',[0.1,1]);
                        
                    }
                    
                    $('ajax-content').set('tween',{duration: 300, link: 'chain'}).tween('opacity',[1,0.1]);
                    afterDelay.delay(300);
                }
            }).send();
}

function currentChallengeID() {
    return $('video-id').get('value');
}

function changeSet() {
    $('Challenges').changeSet();
}

function addSwitchLink(video) {
	if($('video-switcher-container')) { $('video-switcher-container').dispose(); }

	var switchLink = new Element('a',{
			href: '#',
			rel: video,
			events: {
				click: function() {
					showVideo($(this.rel).get('value'));
					if(this.rel == "video-url") { addSwitchLink('video-alt-url'); }
					else { addSwitchLink('video-url'); }
					return false;
				}
			}
		}).set('text', 'Switch video');
		
	var switchLinkContainer = new Element('li').grab(switchLink);
	
	var switchLinkList = new Element('ul', {id: 'video-switcher-container'}).grab(switchLinkContainer);
	
	$$('div.left-inner').grab(switchLinkList);
}

function showVideo(url,inc) {
//	$('video-flash').set('text','');

	var width=384;
	var height=255;
	var id="Video"+inc;
	var name="Video"+inc;
        
        var options = {
            id: id,
            width: width,
            height: height,
            container: 'video-flash-'+inc,
            params: {
                quality: "high",
                align: "middle",
                devicefont: "false",
                bgcolor: "#ffffff",
                menu: "true",
                allowScriptAccess: "sameDomain",
                allowFullScreen: "false",
                salign: "",
                wmode: "transparent",
                scale: "showall",
                swfLiveConnect: true
            },
            properties: {
                name: name
            }
        };
    
        new Swiff(url, options);
}
function showNewVideo(vid, thumb, container_id) {
 
  var inc = 99;
 
	var width=384;
	var height=255;
	var id="Video"+inc;
	var name="Video"+inc;
        
        var options = {
            id: id,
            width: width,
            height: height,
            container: container_id,
            params: {
                quality: "high",
                align: "middle",
                devicefont: "false",
                bgcolor: "#ffffff",
                menu: "true",
                allowScriptAccess: "sameDomain",
                allowFullScreen: "true",
                salign: "",
                wmode: "transparent",
                scale: "noscale",
                swfLiveConnect: true,
								FlashVars: "debug=true&video="+vid+"&thumb="+thumb
            },
            properties: {
                name: name
            }
        };
    
        new Swiff("/bomplayer.swf", options);
}
function setupVideo() {
    if($('video-flash-1')){
        showVideo($('video-url').get('value'),1);
        if($('video-alt-url')) {
        	showVideo($('video-alt-url').get('value'),2);
        }
       /*
        if($('video-alt-url')) {
        	addSwitchLink('video-alt-url');
        }
        */
    }
		if($('new-video-block')) showNewVideo($('video_url').value, $('thumb_url').value, 'new-video-block');
		if($('new-video-block2')) showNewVideo($('video_url2').value, $('thumb_url2').value, 'new-video-block2');
}

function homeFlash() {
    if($('home-flash')){
        var options = {
            id: "Challenges",
            width: 350,
            height: 200,
            container: 'home-flash',
            vars: {
                xmlPath: "home/flash_xml"
            },    
            params: {
                quality: "high",
                align: "middle",
                devicefont: "false",
                bgcolor: "#ffffff",
                menu: "true",
                allowScriptAccess: "sameDomain",
                allowFullScreen: "false",
                salign: "lt",
                wmode: "transparent",
                scale: "showall",
                swfLiveConnect: true
            },
            properties: {
                name: "Challenges"
            }
        };
    
        new Swiff("mysite/swf/Challenges.swf", options);
        
        $$('a[rel="home-flash"]').addEvent('click',function(){
           Swiff.remote($('Challenges'),'changeSet');
           return false;
        });
    }
}

var banner = {
	current: 0,
	bannerLength: 0,
	showTime: 1500,
	init: function() {
		this.banners = $$('#banner-images li');
		banner.bannerLength = this.banners.length;
		
		if(banner.bannerLength > 1){
			var allOthers = this.banners[0].getAllNext();
			allOthers.addClass('banner-hide');
			allOthers.set('tween',{duration: 0, link: 'chain'}).tween('opacity',[1,0.1]);
			banner.current = 1;
			banner.rotate.delay(banner.showTime);
		}
	},
	rotate: function(){
		var fadeOut = function(b) {
			$(b).set('tween',{duration: banner.showTime, link: 'chain'});
			$(b).tween('opacity',[1,0.1]);
		};
		
		var hide = function() {
			$(this).addClass('banner-hide');
		};
		
		var show = function() {
			$(this).removeClass('banner-hide');
			$(this).set('tween',{duration: banner.showTime, link: 'chain'});
			$(this).tween('opacity',[0.1,1]);		
		};
		
		var previous = "banner-image-"+banner.current;
		if(++banner.current > banner.bannerLength) {
			banner.current = 1;
		}
		var current = "banner-image-"+banner.current;
		
		fadeOut(previous);
		hide.delay(banner.showTime, previous);
		show.delay(banner.showTime, current);
		banner.rotate.delay(5000);
	}
};

function gameScroll(left){
	if(x == -1) { 
		if(jQuery("p.scroll-left a").hasClass("on") != true)
		{
			jQuery("p.scroll-left a").addClass("on");
		}
		jQuery("p.scroll-right a").removeClass("on");
	}
	else if(x == 1) {
		if(jQuery("p.scroll-right a").hasClass("on") != true)
		{
			jQuery("p.scroll-right a").addClass("on");
		}
		jQuery("p.scroll-left a").removeClass("on");
	}
	scrollStarted =true;
	distance = ((ulWidth)/3);
	startpos = -distance;
	if(left){leftval = parseFloat((""+left).replace(/px/,""));}else{leftval = startpos;}
	time = ((leftval - (startpos + (distance * x)))*x*-1)/0.05;
	jQuery("#slide-show-images ul").css({left:leftval}).animate({left:startpos + (distance * x)},time,'linear',function(){gameScroll(startpos);})
}

function startSlide(){
	clone = jQuery("#slide-show-images ul").html();

	clone = clone+clone;

	jQuery("#slide-show-images ul").append(jQuery(clone));

	jQuery("#slide-show-images").prepend('<p class="scroll-left"><a href="#">&laquo;</a></p><p class="scroll-right"><a href="#">&raquo;</a></p>').css("overflow","hidden");

	ulWidth = jQuery("#slide-show-images ul li").size() * jQuery("#slide-show-images ul li").width();

	jQuery("#slide-show-images ul").width(ulWidth);

	jQuery("#slide-show-images li").mouseover(function(){
		jQuery("#slide-show-images ul").stop();
	}).mouseout(function(){
		if (scrollStarted == true)
		{
			gameScroll(jQuery("#slide-show-images ul").css('left'));
		}
	});

	if (scrollStarted == true)
	{
		gameScroll(jQuery("#slide-show-images ul").css('left'));
	}
	
	jQuery("a[rel='milkbox']").click(function(){
		Milkbox.showThisImage(this.href,"Popup image");
		return false;
	});
	/*
	if(IE6){
	mask = "<div class=\"png-mask brandscroll-left\" style=\"margin-left:11px;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='img/shadow-left.png', sizingMethod='scale')\"></div><div class=\"png-mask brandscroll-right\"  style=\"margin-left:272px;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='img/shadow-right.png', sizingMethod='scale')\"></div>";
	maskAttr = 'style';
	}else{
	mask = '<img src="img/shadow-left.png" style="margin-left:11px;"/><img src="img/shadow-right.png" style="margin-left:272px;"/>';
	maskAttr = 'src';
	}

	mask = jQuery(mask).css({position:'absolute',width:6,height:99,zIndex:99});
	
	jQuery("#slide-show-images").prepend(jQuery(mask));*/

	ulWidth= jQuery("#slide-show-images ul li").size() * jQuery("#slide-show-images ul li").width();

	jQuery("#slide-show-images ul").css({width:ulWidth,position:'absolute',zIndex:0,left:-(ulWidth/3)+22});

	jQuery("p.scroll-left a").css({cursor:'pointer'}).click(function(){jQuery("#slide-show-images ul").stop();x = -1; gameScroll(jQuery("#slide-show-images ul").css('left'));return false;});
	jQuery("p.scroll-right a").css({cursor:'pointer'}).click(function(){jQuery("#slide-show-images ul").stop();x = 1; gameScroll(jQuery("#slide-show-images ul").css('left'));return false;});

	//Auto-start
	jQuery("#slide-show-images ul").stop(); x = -1; gameScroll(jQuery("#slide-show-images ul").css('left'));
}

window.addEvent('domready', function(){
    if(Browser.Plugins.Flash.version >= 9) {
        homeFlash();
        setupVideo();
    }
});

window.addEvent('domready', function() {
    $$('input.overtext').each(function(item){
        item.getPrevious('label').destroy();
        new OverText(item);
    });

    var entries = $$("li.library-entry");
    var i = 0;
    entries.each(function(item){
        item.setStyle('position', 'relative');
        var imageWidth = 420;
        var imageHeight = 598;
        var itemDim = item.getSize();
        var newDiv = new Element('div', {
            'styles': {
                'display': 'none',
                'width': imageWidth,
                'position': 'absolute',
                'left': '-'+(imageWidth/2 - itemDim.x/2).toInt().toString()+'px',
                'top': '-' + (imageHeight/2 - itemDim.y/2).toString()+'px',
                'z-index': 1000
                //'height': imageHeight,
            },
            'class': 'large-image'
        }).grab(new Element('img', {
            'src': item.get('rel'),
            'styles': {
                'position': 'relative',
                'bottom': 'auto'
            }
        }));

        var handleStyles = {
                'width' : itemDim.x,
                'height': itemDim.y,
                'z-index': 1600,
                'background': "url('/mysite/images/transparent.gif') no-repeat",
                'position':'absolute',
                'top': (imageHeight/2 - itemDim.y/2) + 'px',
                'left': (imageWidth/2 - itemDim.x/2) + 'px'
            };

        // create a empty div over the popup so we can do a smart moouse out
        var handleDiv = new Element('div', {
            'styles': $merge(handleStyles, {'top': '0px', 'left':'0px', 'z-index': 1500})
        });
        newDiv.grab(handleDiv);
        new Element('a', {'href': item.getFirst('a').get('href'), 'styles': handleStyles}).wraps(handleDiv);

        item.grab(newDiv);
        item.store('largeimg', newDiv);
        item.getFirst('a').addEvent('mouseenter', function() {
            entries.each(function(item2){
                if (item2.retrieve('largeimg')) {
                    item2.retrieve('largeimg').setStyle('display', 'none');
                }
            });
            item.retrieve('largeimg').setStyle('display', 'block');
            //item.retrieve('largeimg').position(document);
            //item.retrieve('largeimg').getFirst('div').position();
        });
        handleDiv.addEvents({
            'mouseout': function() {
                item.retrieve('largeimg').setStyle('display', 'none');
            }
        });
    });

});

