• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt/router/APP-IPK/AiCloud-ipk/opt/etc/aicloud_UI/js/
1var TOOLS_PATH = '/smb/js/';
2var CSS_PATH = '/smb/css/';
3
4document.write('<link rel="stylesheet" type="text/css" href="'+CSS_PATH+'jqmWindow.css"/>');
5document.write('<link rel="stylesheet" type="text/css" href="'+CSS_PATH+'barousel.css"/>');
6
7document.write('<script type="text/javascript" src="'+TOOLS_PATH+'jquery-1.7.1.min.js"></script>');
8//document.write('<script type="text/javascript" src="'+TOOLS_PATH+'my.js"></script>');
9document.write('<script type="text/javascript" src="'+TOOLS_PATH+'jquery.mobile-1.2.0.min.js"></script>');
10document.write('<script type="text/javascript" src="'+TOOLS_PATH+'jquery.cookie.js"></script>');
11document.write('<script type="text/javascript" src="'+TOOLS_PATH+'jquery.fileDownload.js"></script>');
12document.write('<script type="text/javascript" src="'+TOOLS_PATH+'smbdav-tools.min.js"></script>');
13document.write('<script type="text/javascript" src="'+TOOLS_PATH+'jplayer/jquery.jplayer.min.js"></script>');
14document.write('<link rel="stylesheet" type="text/css" href="'+CSS_PATH+'jplayer.blue.monday.app.css"/>');
15
16function initJPlayer(){
17
18	var Playlist = function(instance, playlist, options) {
19  	var self = this;
20
21    this.instance = instance; // String: To associate specific HTML with this playlist
22    this.playlist = playlist; // Array of Objects: The playlist
23    this.options = options; // Object: The jPlayer constructor options for this playlist
24
25    this.current = 0;
26
27	this.cssId = {
28    	jPlayer: "jquery_jplayer_",
29      	interface: "jp_interface_",
30      	playlist: "jp_playlist_",
31      	playtitle: "jp_title_"
32    };
33
34    this.cssSelector = {};
35
36    $.each(this.cssId, function(entity, id) {
37    	self.cssSelector[entity] = "#" + id + self.instance;
38    });
39
40    if(!this.options.cssSelectorAncestor) {
41    	this.options.cssSelectorAncestor = this.cssSelector.interface;
42    }
43
44    $(this.cssSelector.jPlayer).jPlayer(this.options);
45
46    $(this.cssSelector.interface + " .jp-previous").click(function() {
47    	self.playlistPrev();
48      	$(this).blur();
49      	return false;
50    });
51
52    $(this.cssSelector.interface + " .jp-next").click(function() {
53    	self.playlistNext();
54      	$(this).blur();
55      	return false;
56	});
57};
58
59Playlist.prototype = {
60	displayPlaylist: function() {
61    	var self = this;
62      	$(this.cssSelector.playlist + " ul").empty();
63
64      	for (i=0; i < this.playlist.length; i++) {
65      		var filename = this.playlist[i].name;
66      		var listItem = (i === this.playlist.length-1) ? "<li class='jp-playlist-last'>" : "<li>";
67        	listItem += "<a href='#' id='" + this.cssId.playlist + this.instance + "_item_" + i +"' tabindex='1'>"+ filename +"</a>";
68
69        	// Associate playlist items with their media
70        	$(this.cssSelector.playlist + " ul").append(listItem);
71
72        	$(this.cssSelector.playlist + "_item_" + i).data("index", i).click(function() {
73        		var index = $(this).data("index");
74          		if(self.current !== index) {
75          			self.playlistChange(index);
76          		}
77          		else {
78          			$(self.cssSelector.jPlayer).jPlayer("play");
79          		}
80          		$(this).blur();
81          		return false;
82        	});
83      	}
84    },
85    playlistInit: function(autoplay) {
86    	if(autoplay) {
87      		this.playlistChange(this.current);
88      	} else {
89        	this.playlistConfig(this.current);
90      	}
91    },
92    playlistConfig: function(index) {
93    	$(this.cssSelector.playlist + "_item_" + this.current).removeClass("jp-playlist-current").parent().removeClass("jp-playlist-current");
94      	$(this.cssSelector.playlist + "_item_" + index).addClass("jp-playlist-current").parent().addClass("jp-playlist-current");
95      	this.current = parseInt(index);
96
97      	var filename = this.playlist[this.current]['name'];
98      	var full_filename = filename;
99      	//var ui_width = $(this.cssSelector.playtitle + " li").width();
100		var ui_width = $("#container").width();
101      	var cur_width = String(filename).width($(this.cssSelector.playtitle + " li").css('font'));
102
103      	if(cur_width>ui_width){
104      		var fileext = getFileExt(filename);
105      		var len = filename.length;
106      		var new_name = "";
107      		var i=0;
108      		for(i=0; i<len; i++){
109      			new_name+=filename[i];
110      			var test_name = new_name + "." + fileext
111      			var test_width = String(test_name).width($(this.cssSelector.playtitle + " li").css('font'));
112      			if(test_width>ui_width){
113      				break;
114      			}
115      		}
116
117      		filename = filename.substring(0,i-4) + "...." + fileext;
118    	}
119    	//alert("play "+this.playlist[this.current].mp3);
120    	$(this.cssSelector.playtitle + " li").attr("title",full_filename);
121      	$(this.cssSelector.playtitle + " li").text(filename);
122      	$(this.cssSelector.jPlayer).jPlayer("setMedia", this.playlist[this.current]);
123    },
124    playlistChange: function(index) {
125      	this.playlistConfig(index);
126      	$(this.cssSelector.jPlayer).jPlayer("play");
127    },
128    playlistNext: function() {
129    	var index = (this.current + 1 < this.playlist.length) ? this.current + 1 : 0;
130      	this.playlistChange(index);
131    },
132    playlistPrev: function() {
133    	var index = (this.current - 1 >= 0) ? this.current - 1 : this.playlist.length - 1;
134      	this.playlistChange(index);
135    }
136};
137
138var audioPlaylist = new Playlist("1", g_audio_playlist, {
139  	ready: function() {
140  		audioPlaylist.displayPlaylist();
141    	audioPlaylist.current = g_current_index;
142      	audioPlaylist.playlistInit(true); // Parameter is a boolean for autoplay.
143
144      	$("#playlist").css("visibility","visible");
145      	showHideAudioInterface(true);
146      	showHideAudioList(false);
147    },
148    ended: function() {
149    	audioPlaylist.playlistNext();
150    },
151    play: function() {
152    	$(this).jPlayer("pauseOthers");
153    },
154    swfPath: "/smb/js/jplayer/",
155		supplied: g_jplayer_supplied,
156		solution: g_jplayer_solution,
157		wmode: "window",
158		errorAlerts: true,
159		warningAlerts: false
160	});
161}