var imageInterval;
var imageCurrentSwap;
var imgSwapTemp;
var currentImageObject;

$(document).ready(function(){loadSceneRotate();});

function loadSceneRotate(domPath)
{
	if (typeof(domPath) === "undefined") domPath = '';
	else domPath+= ' ';

    $(domPath + ".swap_image").hover(function(){
        //var id = $(this).attr("id").replace("scene_", "");
        //imageInterval = setInterval("swapImage(" + id + ")", 500);
        currentImageObject = this;
		imageInterval = setInterval(function() {swapImage(currentImageObject)}, 500);
    }, function() {
        clearInterval(imageInterval);
        currentImageObject = null;
        if ( ($(this).data("url_beg") != undefined) && ($(this).data("url_end") != undefined) )
        {
        	$(this).attr("src", $(this).data("url_beg") + $(this).data("url_end"));
        }
    });
}

function swapImage(id)
{
	if (typeof (id) === 'object') {
		imageCurrentSwap = $(id);
	} else {
    	imageCurrentSwap = $("img#scene_"+ id);
	}

    var nbImages = 1;

    var meta = $(imageCurrentSwap).metadata();
    var duration = parseInt(meta.duration);

	if(meta)
	{
	    if (duration > 0)
	    {
    		nbImages = parseInt(duration / 3);
	    }
	}

    if (nbImages < 42) return false;

    if(imageCurrentSwap.size() == 0){imageCurrentSwap = $('div#scene_' + id + ' img');}

    if(imageCurrentSwap.data("url_beg") == undefined) {

    	var re = new RegExp("(.*/scene/[0-9]/[0-9]/[0-9]+)(/.*/([0-9]+)x.*)", "i");
		var regs = imageCurrentSwap.attr("src").match(re);
		if (regs == null) {
			// Related premium scenes on RTP have a different URL
			// http://cdn-2.dvdcdn.com/e1/v2/images/areas/tourhome/mostpopscenes/13402_160x120.jpg
            re = new RegExp("(.*/mostpopscenes/)([0-9]+)(_([0-9]+).*)", "i");
			regs = imageCurrentSwap.attr("src").match(re);
			console.log(regs);
		}

    	imageCurrentSwap.data("url_beg", regs[1]);
    	imageCurrentSwap.data("url_end", regs[2]);
    	imageCurrentSwap.data("width", regs[3]);

	}

    if(imageCurrentSwap.data("current_image") == undefined) {
    	imageCurrentSwap.data("current_image", 0);
    }
    var current_image = parseInt(imageCurrentSwap.data("current_image"));

    var next_image = 2;
    if (imageCurrentSwap.data("current_image") != 0)
    {
    	next_image = parseInt(imageCurrentSwap.data("current_image")) + 40;
    	if (next_image > nbImages)
    	{
    		next_image = 2;
    	}
    }

    imageCurrentSwap.data("next_image", next_image);

    var fNum = '' + next_image;
    while (fNum.length < 4)
    {
    	fNum = '0' + fNum;
    }

    imageSwapStatus = null;

    imgSwapTemp = new Image();
    imgSwapTemp.onerror = function(){
	    imageCurrentSwap.data("next_image", 0);
		swapImage2(false);
		clearInterval(imageInterval);
		$(currentImageObject).unbind('hover');
		currentImageObject = null;
	};

    imgSwapTemp.onload = function(){
    	swapImage2(true);
    }

    var imgwidth = '';
    if (imageCurrentSwap.data("width") != '224')
    {
    	imgwidth = imageCurrentSwap.data("width");
    }

    imgSwapTemp.src = imageCurrentSwap.data("url_beg") + '/caps/thm'+imgwidth+'/' + fNum + '.jpg';

}

function swapImage2(status) {

    var newsrc = '';
    if (status==false) {
    	newsrc = imageCurrentSwap.data("url_beg") + imageCurrentSwap.data("url_end");
    }
    else
    {
    	newsrc = imgSwapTemp.src;
    }

    if (imageCurrentSwap.attr('src') != newsrc)
    {
    	imageCurrentSwap.data("current_image", imageCurrentSwap.data("next_image"));
    	imageCurrentSwap.attr('src', newsrc);
    }

}

// metadata plugin for jquery
(function($){$.extend({metadata:{defaults:{type:'class',name:'metadata',cre:/({.*})/,single:'metadata'},setType:function(type,name){this.defaults.type=type;this.defaults.name=name;},get:function(elem,opts){var settings=$.extend({},this.defaults,opts);if(!settings.single.length)settings.single='metadata';var data=$.data(elem,settings.single);if(data)return data;data="{}";if(settings.type=="class"){var m=settings.cre.exec(elem.className);if(m)data=m[1];}else if(settings.type=="elem"){if(!elem.getElementsByTagName)return;var e=elem.getElementsByTagName(settings.name);if(e.length)data=$.trim(e[0].innerHTML);}else if(elem.getAttribute!=undefined){var attr=elem.getAttribute(settings.name);if(attr)data=attr;}if(data.indexOf('{')<0)data="{"+data+"}";data=eval("("+data+")");$.data(elem,settings.single,data);return data;}}});$.fn.metadata=function(opts){return $.metadata.get(this[0],opts);};})(jQuery);