summaryrefslogtreecommitdiffstats
path: root/lib/javascript/base.js
blob: 9d56f4f494c48add37234b14dbb0349c1ccac450 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
// vim:set softtabstop=4 shiftwidth=4 expandtab:
//
// Copyright 2001 - 2013 Ampache.org
// All rights reserved.
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License v2
// as published by the Free Software Foundation.
// 
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
//

// flipField
// Toggles the disabled property on the specifed field
function flipField(field) {
        if ($(field).disabled == false) {
                $(field).disabled = true;
        }
        else {
                $(field).disabled = false;
        }
} // flipField

// updateText
// Changes the specified elements innards. Used for the catalog mojo fluff.
function updateText(field, value) { 
    $(field).innerHTML = value;
} // updateText

// toggleVisible
// Toggles display type between block and none. Used for ajax loading div.
function toggleVisible(element) { 

    if ($(element).style.display == 'block') { 
        $(element).style.display = 'none';
    }
    else { 
        $(element).style.display = 'block'; 
    } 
} // toggleVisible

// delayRun
// This function delays the run of another function by X milliseconds
function delayRun(element, time, method, page, source) { 

    var function_string = method + '(\'' + page + '\',\'' + source + '\')'; 

    var action = function () { eval(function_string); }; 

    if (element.zid) { 
        clearTimeout(element.zid); 
    }

    element.zid = setTimeout(action, time); 

} // delayRun

// reloadUtil
// Reload our util frame
// IE issue fixed by Spocky, we have to use the iframe for Democratic Play & 
// Localplay, which don't actually prompt for a new file
function reloadUtil(target) { 

    if (navigator.appName == 'Opera') { 
        $('util_iframe').contentWindow.location.reload(true);    
    } 
    else if (navigator.appName == 'Konqueror') { 
        $('util_iframe').contentDocument.location.reload(true);
    } 
    else { 
        $('util_iframe').src = $('util_iframe').src;
    } 
} // reloadUtil

// reloadRedirect
// Send them elsewhere
function reloadRedirect(target) { 
    window.location = target;
} // reloadRedirect

// popupWindow
// Loads the specified URL in a new window.  Used for art.
function popupWindow(url) {
        var newWindow = window.open(url, "ampache_art", "menubar=no,toolbar=no,location=no,directories=no");
        if (window.focus) { newWindow.focus(); }
} // popupWindow

// This is kind of ugly.  Let's not mess with it too much.
function check_inline_song_edit(type, song) {
        var target = type + '_select_' + song;
    if ($(target).options[$(target).selectedIndex].value == -1) {
        $(target).innerHTML = '<input type="textbox" name="' + type + '_name" value="New ' + type + '" />';
    } else {
        $(target).innerHTML = '';
    }
}