You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
731 lines
27 KiB
731 lines
27 KiB
// event bindings
|
|
jQuery(function ($) {
|
|
|
|
// browse.tpl, search.tpl -- show icons on hover
|
|
var orig_opac = $('table.data tr').children('td.icons').children('div.icon').css('opacity');
|
|
$('table.data tr').hover(
|
|
function () {
|
|
$(this).children('td.icons').children('div.icon').css('opacity', 1);
|
|
},
|
|
function () {
|
|
$(this).children('td.icons').children('div.icon').css('opacity', orig_opac);
|
|
}
|
|
);
|
|
|
|
$(".forumpostsubmit").click(function (e) {
|
|
if ($.trim($("#addMessage").val()) == "" || $.trim($("#addSubject").val()) == "") {
|
|
alert("Please enter a subject and message.");
|
|
return false;
|
|
}
|
|
});
|
|
|
|
$(".forumreplysubmit").click(function (e) {
|
|
if ($.trim($("#addReply").val()) == "") {
|
|
alert("Please enter a message.");
|
|
return false;
|
|
}
|
|
});
|
|
|
|
$(".check").click(function (e) {
|
|
if (!$(e.target).is('input'))
|
|
$(this).children(".nzb_check").prop('checked', !$(this).children(".nzb_check").prop('checked'));
|
|
});
|
|
|
|
$(".descmore").click(function (e) {
|
|
$(".descinitial").hide();
|
|
$(".descfull").show();
|
|
return false;
|
|
});
|
|
|
|
$('.nzb_check_all').change(function () {
|
|
$('table#browsetable tr td input:checkbox').prop('checked', $(this).prop('checked'));
|
|
});
|
|
|
|
$('.nzb_check_all_season').change(function () {
|
|
var season = $(this).attr('name');
|
|
$('table.data tr td input:checkbox').each(function (i, row) {
|
|
if ($(row).attr('name') == season) {
|
|
$(row).prop('checked', !$(row).prop('checked'));
|
|
}
|
|
});
|
|
});
|
|
|
|
// browse.tpl, search.tpl
|
|
$('.icon_cart').click(function (e) {
|
|
if ($(this).hasClass('icon_cart_clicked')) return false;
|
|
var guid = $(this).parent().parent().attr('id').substring(4);
|
|
$.post(SERVERROOT + "cart?add=" + guid, function (resp) {
|
|
$(e.target).addClass('icon_cart_clicked').attr('title', 'Added to Cart');
|
|
createGrowl('Added to Cart');
|
|
});
|
|
return false;
|
|
});
|
|
$('.icon_sab').click(function (e) { // replace with cookies?
|
|
if ($(this).hasClass('icon_sab_clicked')) {
|
|
return false;
|
|
}
|
|
|
|
var guid = $(this).parent().parent().attr('id').substring(4);
|
|
var nzburl = SERVERROOT + "sendtoqueue/" + guid;
|
|
|
|
$.post(nzburl, function (resp) {
|
|
$(e.target).addClass('icon_sab_clicked').attr('title', 'Added to Queue');
|
|
createGrowl('Added to Queue');
|
|
});
|
|
return false;
|
|
});
|
|
|
|
$('.sendtocouch').click(function (e) {
|
|
if ($(this).hasClass('icon_cp_clicked')) return false;
|
|
var id = $(this).attr('id').substring(4);
|
|
var cpurl = SERVERROOT + "sendtocouch/" + id;
|
|
|
|
$.post(cpurl, function(resp){
|
|
$(e.target).addClass('icon_cp_clicked').attr('title','Added to CouchPotato');
|
|
createGrowl('Added to CouchPotato');
|
|
});
|
|
});
|
|
|
|
$("table.data a.modal_nfo").colorbox({ // NFO modal
|
|
href: function () {
|
|
return $(this).attr('href') + '&modal';
|
|
},
|
|
title: function () {
|
|
return $(this).parent().parent().children('a.title').text();
|
|
},
|
|
innerWidth: "800px", innerHeight: "90%", initialWidth: "800px", initialHeight: "90%", speed: 0, opacity: 0.7
|
|
});
|
|
// Screenshot modal
|
|
$("table.data a.modal_prev").colorbox({maxWidth: "800px", maxHeight: "800x"});
|
|
|
|
$("table.data a.modal_imdb").colorbox({ // IMDB modal
|
|
href: function () {
|
|
return SERVERROOT + "movie/" + $(this).attr('name').substring(4) + '&modal';
|
|
},
|
|
title: function () {
|
|
return $(this).parent().parent().children('a.title').text();
|
|
},
|
|
innerWidth: "800px", innerHeight: "450px", initialWidth: "800px", initialHeight: "450px", speed: 0, opacity: 0.7
|
|
}).click(function () {
|
|
$('#colorbox').removeClass().addClass('cboxMovie');
|
|
});
|
|
|
|
$("table.data a.modal_music").colorbox({ // Music modal
|
|
href: function () {
|
|
return SERVERROOT + "musicmodal/" + $(this).attr('name').substring(4) + '&modal';
|
|
},
|
|
title: function () {
|
|
return $(this).parent().parent().children('a.title').text();
|
|
},
|
|
innerWidth: "800px", innerHeight: "450px", initialWidth: "800px", initialHeight: "450px", speed: 0, opacity: 0.7
|
|
}).click(function () {
|
|
$('#colorbox').removeClass().addClass('cboxMusic');
|
|
});
|
|
$("table.data a.modal_console").colorbox({ // Console modal
|
|
href: function () {
|
|
return SERVERROOT + "consolemodal/" + $(this).attr('name').substring(4) + '&modal';
|
|
},
|
|
title: function () {
|
|
return $(this).parent().parent().children('a.title').text();
|
|
},
|
|
innerWidth: "800px", innerHeight: "450px", initialWidth: "800px", initialHeight: "450px", speed: 0, opacity: 0.7
|
|
}).click(function () {
|
|
$('#colorbox').removeClass().addClass('cboxConsole');
|
|
});
|
|
$("table.data a.modal_book").colorbox({ // Book modal
|
|
href: function () {
|
|
return SERVERROOT + "bookmodal/" + $(this).attr('name').substring(4) + '&modal';
|
|
},
|
|
title: function () {
|
|
return $(this).parent().parent().children('a.title').text();
|
|
},
|
|
innerWidth: "800px", innerHeight: "450px", initialWidth: "800px", initialHeight: "450px", speed: 0, opacity: 0.7
|
|
}).click(function () {
|
|
$('#colorbox').removeClass().addClass('cboxBook');
|
|
});
|
|
|
|
|
|
$('#nzb_multi_operations_form').submit(function () {
|
|
return false;
|
|
});
|
|
$('input.nzb_multi_operations_download').click(function () {
|
|
var ids = "";
|
|
$("table.data INPUT[type='checkbox']:checked").each(function (i, row) {
|
|
if ($(row).val() != "on")
|
|
ids += $(row).val() + ',';
|
|
});
|
|
ids = ids.substring(0, ids.length - 1);
|
|
if (ids)
|
|
window.location = SERVERROOT + "getnzb?zip=1&id=" + ids;
|
|
});
|
|
$('input.nzb_multi_operations_cart').click(function () {
|
|
var guids = new Array();
|
|
$("table.data INPUT[type='checkbox']:checked").each(function (i, row) {
|
|
var guid = $(row).val();
|
|
var $cartIcon = $(row).parent().parent().children('td.icons').children('.icon_cart');
|
|
if (guid && !$cartIcon.hasClass('icon_cart_clicked')) {
|
|
$cartIcon.addClass('icon_cart_clicked').attr('title', 'Added to Cart'); // consider doing this only upon success
|
|
guids.push(guid);
|
|
createGrowl('Added to Cart');
|
|
}
|
|
$(this).prop('checked', false);
|
|
});
|
|
$.post(SERVERROOT + "cart?add=" + guids);
|
|
});
|
|
$('input.nzb_multi_operations_sab').click(function () {
|
|
$("table.data INPUT[type='checkbox']:checked").each(function (i, row) {
|
|
var $sabIcon = $(row).parent().parent().children('td.icons').children('.icon_sab');
|
|
var guid = $(row).val();
|
|
if (guid && !$sabIcon.hasClass('icon_sab_clicked')) {
|
|
var nzburl = SERVERROOT + "sendtoqueue/" + guid;
|
|
$.post(nzburl, function (resp) {
|
|
$sabIcon.addClass('icon_sab_clicked').attr('title', 'Added to Queue');
|
|
createGrowl('Added to Queue');
|
|
});
|
|
}
|
|
$(this).prop('checked', false);
|
|
});
|
|
});
|
|
//front end admin functions
|
|
$('input.nzb_multi_operations_edit').click(function () {
|
|
var ids = "";
|
|
$("table.data INPUT[type='checkbox']:checked").each(function (i, row) {
|
|
if ($(row).val() != "on")
|
|
ids += '&id[]=' + $(row).val();
|
|
});
|
|
if (ids)
|
|
$('input.nzb_multi_operations_edit').colorbox({
|
|
href: function () {
|
|
return SERVERROOT + "ajax_release-admin?action=edit" + ids + "&from=" + encodeURIComponent(window.location);
|
|
},
|
|
title: 'Edit Release',
|
|
innerWidth: "400px", innerHeight: "250px", initialWidth: "400px", initialHeight: "250px", speed: 0, opacity: 0.7
|
|
});
|
|
});
|
|
$('input.nzb_multi_operations_delete').click(function () {
|
|
var ids = "";
|
|
$("table.data INPUT[type='checkbox']:checked").each(function (i, row) {
|
|
if ($(row).val() != "on")
|
|
ids += '&id[]=' + $(row).val();
|
|
});
|
|
if (ids)
|
|
if (confirm('Are you sure you want to delete the selected releases?')) {
|
|
$.post(SERVERROOT + "ajax_release-admin?action=dodelete" + ids, function (resp) {
|
|
window.location = window.location;
|
|
});
|
|
}
|
|
});
|
|
//cart functions
|
|
$('input.nzb_multi_operations_cartdelete').click(function () {
|
|
var ids = new Array();
|
|
$("table.data INPUT[type='checkbox']:checked").each(function (i, row) {
|
|
if ($(row).val() != "on")
|
|
ids.push($(row).val());
|
|
});
|
|
if (ids) {
|
|
if (confirm('Are you sure you want to delete the selected releases from your cart?')) {
|
|
$.post(SERVERROOT + "cart?delete", { 'delete': ids }, function (resp) {
|
|
window.location = window.location;
|
|
});
|
|
}
|
|
}
|
|
});
|
|
|
|
// headermenu.tpl
|
|
$('#headsearch')
|
|
.focus(function () {
|
|
if (this.value == 'Enter keywords') this.value = '';
|
|
})
|
|
.blur(function () {
|
|
if (this.value == '') this.value = 'Enter keywords';
|
|
});
|
|
$('#headsearch_form').submit(function () {
|
|
$('headsearch_go').trigger('click');
|
|
return false;
|
|
});
|
|
$('#headsearch_go').click(function () {
|
|
if ($('#headsearch').val() && $('#headsearch').val() != 'Enter keywords') {
|
|
document.location = WWW_TOP + "/search/" + $('#headsearch').val() + ($("#headcat").val() != -1 ? "?t=" + $("#headcat").val() : "");
|
|
}
|
|
});
|
|
|
|
// search.tpl
|
|
$('#search_search_button').click(function () {
|
|
if ($('#search').val())
|
|
document.location = WWW_TOP + "/search/" + $('#search').val() + ($("#search_cat").val() != -1 ? "?t=" + $("#search_cat").val() : "");
|
|
return false;
|
|
});
|
|
|
|
// login.tpl, register.tpl, search.tpl, searchraw.tpl
|
|
if ($('#username').length)
|
|
$('#username').focus();
|
|
if ($('#search').length)
|
|
$('#search').focus();
|
|
|
|
// viewfilelist.tpl
|
|
$('#viewfilelist_download_selected').click(function () {
|
|
if ($('#fileform input:checked').length)
|
|
$('#fileform').trigger('submit');
|
|
return false;
|
|
});
|
|
|
|
// misc
|
|
$('.confirm_action').click(function () {
|
|
return confirm('Are you sure?');
|
|
});
|
|
|
|
// mmenu
|
|
$('.mmenu').click(function () {
|
|
document.location = $(this).children('a').attr('href');
|
|
return false;
|
|
});
|
|
|
|
// mmenu_new
|
|
$('.mmenu_new').click(function () {
|
|
window.open($(this).children('a').attr('href'));
|
|
return false;
|
|
});
|
|
|
|
// searchraw.tpl, viewfilelist.tpl -- checkbox operations
|
|
// selections
|
|
var last1, last2;
|
|
$(".checkbox_operations .select_all").click(function () {
|
|
$("table.data INPUT[type='checkbox']").prop('checked', true).trigger('change');
|
|
return false;
|
|
});
|
|
$(".checkbox_operations .select_none").click(function () {
|
|
$("table.data INPUT[type='checkbox']").prop('checked', false).trigger('change');
|
|
return false;
|
|
});
|
|
$(".checkbox_operations .select_invert").click(function () {
|
|
$("table.data INPUT[type='checkbox']").each(function () {
|
|
$(this).prop('checked', !$(this).prop('checked')).trigger('change');
|
|
});
|
|
return false;
|
|
});
|
|
$(".checkbox_operations .select_range").click(function () {
|
|
if (last1 && last2 && last1 < last2)
|
|
$("table.data INPUT[type='checkbox']").slice(last1, last2).prop('checked', true).trigger('change');
|
|
else if (last1 && last2)
|
|
$("table.data INPUT[type='checkbox']").slice(last2, last1).prop('checked', true).trigger('change');
|
|
return false;
|
|
});
|
|
$('table.data td.check INPUT[type="checkbox"]').click(function (e) {
|
|
// range event interaction -- see further above
|
|
var rowNum = $(e.target).parent().parent()[0].rowIndex;
|
|
if (last1) last2 = last1;
|
|
last1 = rowNum;
|
|
|
|
// perform range selection
|
|
if (e.shiftKey && last1 && last2) {
|
|
if (last1 < last2)
|
|
$("table.data INPUT[type='checkbox']").slice(last1, last2).prop('checked', true).trigger('change');
|
|
else
|
|
$("table.data INPUT[type='checkbox']").slice(last2, last1).prop('checked', true).trigger('change');
|
|
}
|
|
});
|
|
$('table.data a.data_filename').click(function (e) { // click filenames to select
|
|
// range event interaction -- see further above
|
|
var rowNum = $(e.target).parent().parent()[0].rowIndex;
|
|
if (last1) last2 = last1;
|
|
last1 = rowNum;
|
|
|
|
var $checkbox = $('table.data tr:nth-child(' + (rowNum + 1) + ') td.selection INPUT[type="checkbox"]');
|
|
$checkbox.prop('checked', !$checkbox.prop('checked'));
|
|
|
|
return false;
|
|
});
|
|
|
|
|
|
// show/hide invite form
|
|
$('#lnkSendInvite').click(function () {
|
|
$('#divInvite').slideToggle('fast');
|
|
});
|
|
|
|
// send an invite
|
|
$('#frmSendInvite').submit(function () {
|
|
var inputEmailto = $("#txtInvite").val();
|
|
if (isValidEmailAddress(inputEmailto)) {
|
|
|
|
// no caching of results
|
|
var rand_no = Math.random();
|
|
$.ajax({
|
|
url: WWW_TOP + '/ajax_profile?action=1&rand=' + rand_no,
|
|
data: { emailto: inputEmailto},
|
|
dataType: "html",
|
|
success: function (data) {
|
|
$("#txtInvite").val("");
|
|
$('#divInvite').slideToggle('fast');
|
|
$("#divInviteSuccess").text(data).show();
|
|
$("#divInviteError").hide();
|
|
},
|
|
error: function (xhr, err, e) {
|
|
alert("Error in ajax_profile: " + err);
|
|
}
|
|
});
|
|
}
|
|
else {
|
|
$("#divInviteSuccess").hide();
|
|
$("#divInviteError").text("Invalid email").show();
|
|
}
|
|
return false;
|
|
});
|
|
|
|
// movie.tpl
|
|
$('.mlmore').click(function () { // show more movies
|
|
$(this).parent().parent().hide();
|
|
$(this).parent().parent().parent().children(".mlextra").show();
|
|
return false;
|
|
});
|
|
|
|
// lookup tmdb for a movie
|
|
$('#frmMyMovieLookup').submit(function () {
|
|
var movSearchText = $("#txtsearch").val();
|
|
// no caching of results
|
|
var rand_no = Math.random();
|
|
$.ajax({
|
|
url: WWW_TOP + '/ajax_mymovies?rand=' + rand_no,
|
|
data: { id: movSearchText},
|
|
dataType: "html",
|
|
success: function (data) {
|
|
$("#divMovResults").html(data);
|
|
},
|
|
error: function (xhr, err, e) {
|
|
alert("Error in ajax_mymovies: " + err);
|
|
}
|
|
});
|
|
|
|
return false;
|
|
});
|
|
|
|
|
|
// file list tooltip
|
|
$(".rarfilelist").each(function () {
|
|
var guid = $(this).children('img').attr('alt');
|
|
$(this).qtip({
|
|
content: {
|
|
title: {
|
|
text: 'rar archive contains...'
|
|
},
|
|
text: 'loading...', // The text to use whilst the AJAX request is loading
|
|
ajax: {
|
|
url: SERVERROOT + 'ajax_rarfilelist', // URL to the local file
|
|
type: 'GET', // POST or GET
|
|
data: { id: guid }, // Data to pass along with your request
|
|
success: function (data, status) {
|
|
this.set('content.text', data);
|
|
}
|
|
}
|
|
},
|
|
position: {
|
|
my: 'top right',
|
|
at: 'bottom left',
|
|
},
|
|
style: {
|
|
classes: 'qtip-dark qtip-shadow qtip-rounded',
|
|
width: { max: 500 },
|
|
tip: { // Now an object instead of a string
|
|
corner: 'topRight', // We declare our corner within the object using the corner sub-option
|
|
size: {
|
|
x: 8, // Be careful that the x and y values refer to coordinates on screen, not height or width.
|
|
y: 8 // Depending on which corner your tooltip is at, x and y could mean either height or width!
|
|
}
|
|
}
|
|
}
|
|
});
|
|
});
|
|
|
|
// seriesinfo tooltip
|
|
$(".seriesinfo").each(function () {
|
|
var guid = $(this).attr('title');
|
|
$(this).qtip({
|
|
content: {
|
|
title: {
|
|
text: 'episode info...'
|
|
},
|
|
text: 'loading...', // The text to use whilst the AJAX request is loading
|
|
ajax: {
|
|
url: SERVERROOT + 'ajax_tvinfo', // URL to the local file
|
|
type: 'GET', // POST or GET
|
|
data: { id: guid }, // Data to pass along with your request
|
|
success: function (data, status) {
|
|
this.set('content.text', data);
|
|
}
|
|
}
|
|
},
|
|
style: {
|
|
classes: 'qtip-dark qtip-shadow qtip-rounded'
|
|
}
|
|
});
|
|
});
|
|
|
|
// mediainfo tooltip
|
|
$(".mediainfo").each(function () {
|
|
var guid = $(this).attr('title');
|
|
$(this).qtip({
|
|
content: {
|
|
title: {
|
|
text: 'extended media info...'
|
|
},
|
|
text: 'loading...', // The text to use whilst the AJAX request is loading
|
|
ajax: {
|
|
url: SERVERROOT + 'ajax_mediainfo', // URL to the local file
|
|
type: 'GET', // POST or GET
|
|
data: { id: guid }, // Data to pass along with your request
|
|
success: function (data, status) {
|
|
this.set('content.text', data);
|
|
}
|
|
}
|
|
},
|
|
style: {
|
|
classes: 'qtip-dark qtip-shadow qtip-rounded',
|
|
width: { max: 500 },
|
|
tip: { // Now an object instead of a string
|
|
corner: 'topLeft', // We declare our corner within the object using the corner sub-option
|
|
size: {
|
|
x: 8, // Be careful that the x and y values refer to coordinates on screen, not height or width.
|
|
y: 8 // Depending on which corner your tooltip is at, x and y could mean either height or width!
|
|
}
|
|
}
|
|
}
|
|
});
|
|
});
|
|
|
|
// preinfo tooltip
|
|
$(".preinfo").each(function () {
|
|
var preid = $(this).attr('title');
|
|
$(this).qtip({
|
|
content: {
|
|
title: {
|
|
text: 'PreDB info...'
|
|
},
|
|
text: 'loading...', // The text to use whilst the AJAX request is loading
|
|
ajax: {
|
|
url: SERVERROOT + 'ajax_preinfo', // URL to the local file
|
|
type: 'GET', // POST or GET
|
|
data: { id: preid }, // Data to pass along with your request
|
|
success: function (data, status) {
|
|
this.set('content.text', data);
|
|
}
|
|
}
|
|
},
|
|
style: {
|
|
classes: 'qtip-dark qtip-shadow qtip-rounded',
|
|
width: { max: 500 },
|
|
tip: { // Now an object instead of a string
|
|
corner: 'topLeft', // We declare our corner within the object using the corner sub-option
|
|
size: {
|
|
x: 8, // Be careful that the x and y values refer to coordinates on screen, not height or width.
|
|
y: 8 // Depending on which corner your tooltip is at, x and y could mean either height or width!
|
|
}
|
|
}
|
|
}
|
|
});
|
|
});
|
|
|
|
// titleinfo tooltip
|
|
$(".titleinfo").each(function () {
|
|
var guid = $(this).attr('title');
|
|
$(this).qtip({
|
|
content: {
|
|
title: {
|
|
text: 'Release info...'
|
|
},
|
|
text: 'loading...', // The text to use whilst the AJAX request is loading
|
|
ajax: {
|
|
url: SERVERROOT + 'ajax_titleinfo', // URL to the local file
|
|
type: 'GET', // POST or GET
|
|
data: { id: guid }, // Data to pass along with your request
|
|
success: function (data, status) {
|
|
this.set('content.text', data);
|
|
}
|
|
}
|
|
},
|
|
style: {
|
|
classes: 'qtip-dark qtip-shadow qtip-rounded',
|
|
width: { max: 500 },
|
|
tip: { // Now an object instead of a string
|
|
corner: 'topLeft', // We declare our corner within the object using the corner sub-option
|
|
size: {
|
|
x: 8, // Be careful that the x and y values refer to coordinates on screen, not height or width.
|
|
y: 8 // Depending on which corner your tooltip is at, x and y could mean either height or width!
|
|
}
|
|
}
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
$.extend({ // http://plugins.jquery.com/project/URLEncode
|
|
URLEncode: function (c) {
|
|
var o = '';
|
|
var x = 0;
|
|
c = c.toString();
|
|
var r = /(^[a-zA-Z0-9_.]*)/;
|
|
while (x < c.length) {
|
|
var m = r.exec(c.substr(x));
|
|
if (m != null && m.length > 1 && m[1] != '') {
|
|
o += m[1];
|
|
x += m[1].length;
|
|
} else {
|
|
if (c[x] == ' ')o += '+'; else {
|
|
var d = c.charCodeAt(x);
|
|
var h = d.toString(16);
|
|
o += '%' + (h.length < 2 ? '0' : '') + h.toUpperCase();
|
|
}
|
|
x++;
|
|
}
|
|
}
|
|
return o;
|
|
},
|
|
URLDecode: function (s) {
|
|
var o = s;
|
|
var binVal, t;
|
|
var r = /(%[^%]{2})/;
|
|
while ((m = r.exec(o)) != null && m.length > 1 && m[1] != '') {
|
|
b = parseInt(m[1].substr(1), 16);
|
|
t = String.fromCharCode(b);
|
|
o = o.replace(m[1], t);
|
|
}
|
|
return o;
|
|
}
|
|
});
|
|
|
|
|
|
function isValidEmailAddress(emailAddress) {
|
|
var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
|
|
return pattern.test(emailAddress);
|
|
}
|
|
|
|
function mymovie_del(imdbid, btn) {
|
|
var rand_no = Math.random();
|
|
$.ajax({
|
|
url: WWW_TOP + '/ajax_mymovies?rand=' + rand_no,
|
|
data: { del: imdbid},
|
|
dataType: "html",
|
|
success: function (data) {
|
|
$(btn).hide();
|
|
$(btn).prev("a").show();
|
|
},
|
|
error: function (xhr, err, e) {
|
|
}
|
|
});
|
|
|
|
return false;
|
|
}
|
|
|
|
function mymovie_add(imdbid, btn) {
|
|
$(btn).hide();
|
|
$(btn).next("a").show();
|
|
|
|
var rand_no = Math.random();
|
|
$.ajax({
|
|
url: WWW_TOP + '/ajax_mymovies?rand=' + rand_no,
|
|
data: { add: imdbid},
|
|
dataType: "html",
|
|
success: function (data) {
|
|
},
|
|
error: function (xhr, err, e) {
|
|
}
|
|
});
|
|
|
|
return false;
|
|
}
|
|
|
|
|
|
// qtip growl
|
|
$(document).ready(function () {
|
|
|
|
window.createGrowl = function (tipText /*, tipTitle, persistent*/) {
|
|
// Use the last visible jGrowl qtip as our positioning target
|
|
var target = $('.qtip.jgrowl:visible:last');
|
|
var tipTitle = 'Attention!';
|
|
var persistent = false;
|
|
|
|
// Create your jGrowl qTip...
|
|
$(document.body).qtip({
|
|
// Any content config you want here really.... go wild!
|
|
content: {
|
|
text: tipText,
|
|
title: {
|
|
text: tipTitle,
|
|
button: true
|
|
}
|
|
},
|
|
position: {
|
|
my: 'top right', // Not really important...
|
|
at: (target.length ? 'bottom' : 'top') + ' right', // If target is window use 'top right' instead of 'bottom right'
|
|
target: target.length ? target : $(document.body), // Use our target declared above
|
|
adjust: { y: 5 } // Add some vertical spacing
|
|
},
|
|
show: {
|
|
event: false, // Don't show it on a regular event
|
|
ready: true, // Show it when ready (rendered)
|
|
effect: function () {
|
|
$(this).stop(0, 1).fadeIn(400);
|
|
}, // Matches the hide effect
|
|
|
|
// Custom option for use with the .get()/.set() API, awesome!
|
|
persistent: persistent
|
|
},
|
|
hide: {
|
|
event: false, // Don't hide it on a regular event
|
|
effect: function (api) {
|
|
// Do a regular fadeOut, but add some spice!
|
|
$(this).stop(0, 1).fadeOut(400).queue(function () {
|
|
// Destroy this tooltip after fading out
|
|
api.destroy();
|
|
|
|
// Update positions
|
|
updateGrowls();
|
|
})
|
|
}
|
|
},
|
|
style: {
|
|
classes: 'jgrowl qtip-dark qtip-shadow qtip-rounded', // Some nice visual classes
|
|
tip: false // No tips for this one (optional ofcourse)
|
|
},
|
|
events: {
|
|
render: function (event, api) {
|
|
// Trigger the timer (below) on render
|
|
timer.call(api.elements.tooltip, event);
|
|
}
|
|
}
|
|
})
|
|
.removeData('qtip');
|
|
};
|
|
|
|
// Make it a window property see we can call it outside via updateGrowls() at any point
|
|
window.updateGrowls = function () {
|
|
// Loop over each jGrowl qTip
|
|
var each = $('.qtip.jgrowl:not(:animated)');
|
|
each.each(function (i) {
|
|
var api = $(this).data('qtip');
|
|
|
|
// Set the target option directly to prevent reposition() from being called twice.
|
|
api.options.position.target = !i ? $(document.body) : each.eq(i - 1);
|
|
api.set('position.at', (!i ? 'top' : 'bottom') + ' right');
|
|
});
|
|
};
|
|
|
|
// Setup our timer function
|
|
function timer(event) {
|
|
var api = $(this).data('qtip'),
|
|
lifespan = 5000; // 5 second lifespan
|
|
|
|
// If persistent is set to true, don't do anything.
|
|
if (api.get('show.persistent') === true) {
|
|
return;
|
|
}
|
|
|
|
// Otherwise, start/clear the timer depending on event type
|
|
clearTimeout(api.timer);
|
|
if (event.type !== 'mouseover') {
|
|
api.timer = setTimeout(api.hide, lifespan);
|
|
}
|
|
}
|
|
|
|
// Utilise delegate so we don't have to rebind for every qTip!
|
|
$(document).delegate('.qtip.jgrowl', 'mouseover mouseout', timer);
|
|
});
|
|
|