integ/iri/js/iri-creation-cinecard.js
changeset 42 3a2328ffd759
parent 40 67df6092aebe
child 45 0703b079a2ba
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/integ/iri/js/iri-creation-cinecard.js	Thu Apr 18 18:20:50 2013 +0200
@@ -0,0 +1,282 @@
+$(function(){
+
+function setSidebarContentHeight(){
+	var newHeight = $(window).height() - $('header').height() - $('footer').height();
+	$(".sidebar .content").css('height', newHeight);
+}
+$(window).on('resize', setSidebarContentHeight);
+setSidebarContentHeight();
+
+$(".sidebar .content").mCustomScrollbar({
+	advanced:{
+	    updateOnContentResize: true
+	}
+});
+
+$('a.more').bind('click', function(e){
+	e.preventDefault();
+	var target = $(this).attr('href');
+	if($(target).hasClass('less')){
+		$(target).removeClass('less');
+		$(this).addClass('less');
+	}else{
+		$(target).addClass('less');
+		$(this).removeClass('less');
+	}	
+});// a.more
+
+$('.stickers a').bind('click', function(e){
+	e.preventDefault();
+});
+
+$('[data-image*="{stickers_base}"]').each(function() {
+	var el = $(this);
+	el.attr("data-image", el.attr("data-image").replace("{stickers_base}",stickers_base));
+});
+
+//-- API allocine
+
+//-- movie
+var urlMovie = 'http://api.allocine.fr/rest/v3/movie?partner='+partnerCode+'&code='+ idMovie;
+$.getJSON(urlMovie, function(data) {
+	var movie = data.movie;
+
+	//-- title
+	$('.wrap-top .movie-title').text(movie.title);
+	$('.wrap-top .movie-year').text(movie.productionYear);
+
+	//-- stars
+	var castMember = movie.castMember;
+
+	$.each(castMember, function(k, v){
+		var name =	v.person.name;
+		var codeActor = v.person.code;
+		var urlPicture;
+		if(v.picture !== undefined) {
+			urlPicture = v.picture.href;
+		}else{
+			urlPicture = 'http://fr.web.img3.acsta.net/c_160_213/b_1_d6d6d6/commons/emptymedia/empty_star.jpg';
+		}	
+		var urlFichePersonne = 'http://www.allocine.fr/personne/fichepersonne_gen_cpersonne='+codeActor+'.html';
+		var itemStar = 
+			'<li class="cinecard-draggable" draggable="true">'+
+				'<a class="tool-info" target="_blank" href="'+ urlFichePersonne +'" data-title="'+ name +'">'+
+					'<img src="'+ urlPicture +'" alt="'+ name +'" />'+
+				'</a>'+
+			'</li>';
+		$('#stars-more').append(itemStar);
+	});	
+
+	/* Creating Renkan Template */
+	var _posterData = {
+			title: movie.title,
+			image: movie.poster.href,
+			uri: _(movie.link).find(function(l) { return l.rel === "aco:web" }).href,
+			position: {
+				x: 0,
+				y: 0
+			},
+			description: "Affiche du film",
+			size: 4
+		},
+		_stickers = [
+			"pourquoi-j-ai-aime.png",
+			"pourquoi-le-voir.png",
+			"secrets-et-bonus.png",
+			"message-perso.png"
+		],
+		_startAngle = Math.PI / 4,
+		_stickerDistance = 220,
+		_filmNode = _renkan.project.addNode(_posterData);
+		
+	_(_stickers).each(function(v, k) {
+		var _a = _startAngle + 2 * Math.PI * k / _stickers.length,
+			_stickerData = {
+				title: " ",
+				position: {
+					x: _stickerDistance * Math.cos(_a),
+					y: - _stickerDistance * Math.sin(_a)
+				},
+				image: stickers_base + v,
+				size: 0
+			}
+		_stickerNode = _renkan.project.addNode(_stickerData);
+		var _edgeData = {
+			from: _filmNode,
+			to: _stickerNode
+		}
+		_renkan.project.addEdge(_edgeData);
+	});
+
+
+});
+
+//-- picture
+var urlPicture = 'http://api.allocine.fr/rest/v3/picturelist?partner='+partnerCode+'&subject=movie:'+ idMovie;
+$.getJSON(urlPicture, function(data) {
+	var media = data.feed.media;
+	$.each(media, function(k, v){
+		var urlThumb = v.thumbnail.href;
+		var rcode = v.rcode;
+		var title = v.title;
+		var urlAllocine = 'http://www.allocine.fr/film/fichefilm-'+ idMovie +'/photos/detail/?cmediafile='+ rcode;
+		var itemImagess = 
+			'<li class="cinecard-draggable" draggable="true">'+
+				'<a class="tool-info" target="_blank" href="'+ urlAllocine +'" data-title="'+title+'">'+
+					'<img src="'+ urlThumb +'" alt="'+title+'" />'+
+				'</a>'+
+			'</li>';
+		$('#images-more').append(itemImagess);
+	});
+	resizeImg('#images-more');
+});//get
+
+//-- trailer
+var urlTrailers = 'http://api.allocine.fr/rest/v3/videolist?partner='+partnerCode+'&mediafmt=flv&subject=movie:'+ idMovie;
+$.getJSON(urlTrailers, function(data) {
+	var media = data.feed.media;
+	$.each(media, function(k, v){
+		console.log(v)
+		var urlThumbnail = v.thumbnail.href;
+		var title = v.title;
+		var code = v.code;
+		var url = 'http://www.allocine.fr/video/player_gen_cmedia='+code+'&cfilm='+idMovie+'.html';
+		var itemVideo = 
+			'<li class="cinecard-draggable" draggable="true">'+
+				'<a class="tool-info" target="_blank" href="'+ url +'" data-title="'+title+'">'+
+					'<img src="'+ urlThumbnail +'" alt="'+title+'" />'+
+				'</a>'+
+			'</li>';
+		$('#videos-more').append(itemVideo);
+		resizeImg('#videos-more');
+	});
+});
+
+
+function resizeImg(parentId){
+	$(parentId+" img").each(function() {
+	    var img = $(this),
+	        div = $(this).parent();
+	    img.load(function() {
+	        var iw = img.width(),
+	            ih = img.height(),
+	            dw = div.width(),
+	            dh = div.height(),
+	            scale = Math.max(dw/iw, dh/ih),
+	            niw = iw * scale,
+	            nih = ih * scale;
+	        img.css({
+	            width: niw,
+	            height: nih,
+	            "margin-left": (dw - niw) / 2,
+	            "margin-top": (dh - nih) / 3
+	        });
+	    });
+	});
+}
+
+//TOOLTIP
+var show_tooltip_info_iri = function(elem){
+	var tooltip = $('.rate_tooltip'),
+		name = elem.attr('data-title'),
+		arrow = tooltip.find('.arrow_l'),
+		top = elem.offset().top,
+		right = elem.offset().left + elem.width() + arrow.width();
+	tooltip.find('p').text(name)
+	tooltip.show();
+	tooltip.css({
+		top : top,
+		left : right
+	});
+}
+var hide_tooltip_info_iri = function(elem){
+	var tooltip = $('.rate_tooltip');
+	tooltip.hide();
+}
+$(document).on({
+    mouseenter: function() {
+    	show_tooltip_info_iri($(this));
+	},
+    mouseleave: function() {
+    	hide_tooltip_info_iri($(this));
+    }
+}, 'a.tool-info');
+
+//Renkan initialization
+var _renkan = new Rkns.Renkan({
+    user_id: "u-iri",
+    language: "fr_cg",
+    container: "cinecard",
+    show_bins: false,
+    show_top_bar: false,
+    show_minimap: false,
+    show_node_circles: false,
+    clip_node_images: false,
+    size_bug_fix: false,
+    allow_double_click: false,
+    node_size_base: 40,
+    default_user_color: "#808080",
+    static_url: renkan_base
+});
+
+var elementDropped = false;
+
+// Attach drag and drop events
+$(".sidebar")
+	.on("mousemove", ".cinecard-draggable", function(e) {
+		try {
+			this.dragDrop();
+		}
+		catch(err) {}
+    })
+    .on("dragstart", ".cinecard-draggable", function(e) {
+    	$(".cinecard-draggable").css("opacity", .5);
+    	$(this).css("opacity",1);
+    	var div = document.createElement('div');
+    	div.appendChild(this.cloneNode(true));
+		try {
+			e.originalEvent.dataTransfer.setData("text/html",div.innerHTML);
+		}
+		catch(err) {
+			e.originalEvent.dataTransfer.setData("text",div.innerHTML);
+		}
+    })
+    .on("dragend", ".cinecard-draggable", function(e) {
+    	$(".cinecard-draggable").css("opacity", 1);
+    })
+    .on("touchstart", ".cinecard-draggable", function(e) {
+		elementDropped = false;
+    	$(".cinecard-draggable").css("opacity", .5);
+    	$(this).css("opacity",1);
+	})
+	.on("touchmove", ".cinecard-draggable", function(e) {
+		e.preventDefault();
+		var touch = e.originalEvent.changedTouches[0],
+			off = _renkan.renderer.canvas_$.offset(),
+			w = _renkan.renderer.canvas_$.width(),
+			h = _renkan.renderer.canvas_$.height();
+		if (touch.pageX >= off.left && touch.pageX < (off.left + w) && touch.pageY >= off.top && touch.pageY < (off.top + h)) {
+			if (elementDropped) {
+				_renkan.renderer.onMouseMove(touch, true);
+			} else {
+				elementDropped = true;
+	        	var div = document.createElement('div');
+	        	div.appendChild(this.cloneNode(true));
+				_renkan.renderer.dropData({"text/html": div.innerHTML}, touch);
+				_renkan.renderer.onMouseDown(touch, true);
+			}
+		}
+	})
+	.on("touchend", ".cinecard-draggable", function(e) {
+    	$(".cinecard-draggable").css("opacity", 1);
+		if (elementDropped) {
+			_renkan.renderer.onMouseUp(e.originalEvent.changedTouches[0], true);
+		}
+		elementDropped = false;
+	});
+
+$(".send").click(function() {
+	alert("Save JSON data:\n\n" + JSON.stringify(_renkan.project.toJSON()));
+});
+
+});
\ No newline at end of file