function akfGetCookie(name) {
    var dc = document.cookie;
    var prefix = name + "=";
    var begin = dc.indexOf("; " + prefix);
    if (begin == -1) {
        begin = dc.indexOf(prefix);
        if (begin != 0) return null;
    } else {
        begin += 2;
    }
    var end = document.cookie.indexOf(";", begin);
    if (end == -1) {
        end = dc.length;
    }
    return unescape(dc.substring(begin + prefix.length, end));
};

function akfMenuShow(id) {
    var d = document.getElementById(id);
    for (var i = 1; i<=10; i++) {
        if (document.getElementById('smenu'+i)) {
            document.getElementById('smenu'+i).style.display='none';
        }
    }
    if (d) {
        d.style.display='block';
    }
};

function akfOpenWindow(url, w, h, sb, wn, sx, sy, stb, l, mb, tb, rs) {
   tb  = (tb)  ? 'yes' : 'no';
   stb = (stb) ? 'yes' : 'no';
   l   = (l)   ? 'yes' : 'no';
   mb  = (mb)  ? 'yes' : 'no';
   sb  = (sb)  ? 'yes' : 'no';
   rs  = (rs)  ? 'yes' : 'no';
   wn  = (wn)  ? wn    : 'newWin' + new Date().getTime();
   sx = (sx) ? sx : 0;
   sy = (sy) ? sy : 0;


   var x = window.open(url, wn, 'scrollbars='+ sb + ',width=' + w + ',height=' + h + ',toolbar=' + tb + ',staus=' + stb + ',menubar=' + mb + ',links=' + l + ',resizable=' + rs);
   x.focus();
};

function akfRedirectWindow(url) {
   document.location.href = url;
   window.opener.close();
   return false;
};

function akfCloseWindow() {
    window.close();
    return false;
};

function akfCloseParent() {
    window.opener.close();
    return false;
};

function akfRefreshWindow() {
    window.location.href = window.location.href;
    return true;
};

function akfRefreshParent() {
    window.opener.location.href = window.opener.location.href;
    return true;
};

function akfRefreshParentAndCloseWindow() {
    akfRefreshParent();
    akfCloseWindow();
    return true;
};

function togDisp(e) {
    stopB(e);
    var elems=document.getElementsByName('more');
    for (var i=0;i<elems.length;i++) {
        var obj=elems[i],dp="";
        if (obj.style.display=="") { dp="none"; }
        obj.style.display=dp;
    }
    return false;
};

function stopB(e) {
      if (!e) e=window.event;
      e.cancelBubble=true;
};

function akfLsearch(item_list, item) {
    var item_array = item_list.split(" ");
    var curr_idx = 0;
    while (curr_idx < item_array.length) {
        if (item == item_array[curr_idx]) {
            return curr_idx;
        }
        curr_idx += 1;
    }
    return -1;
}

function akfReplaceSpecialChars(string) {
    string = string.replace(/\&/g,"__AND__");
    string = string.replace(/\=/g,"__EQ__");
    string = string.replace(/\+/g,"__PLUS__");
    string = string.replace(/\?/g,"__QUESTION__");

    return string;
};

function akfShowArtistList(key) {
    artist_type = "actor";
    var elems = document.getElementsByTagName("select");
    for (var i = 0; i < elems.length; i++) {
        if (elems[i].getAttribute("name") == "option") {
            option = elems[i].value;
        } else if (elems[i].getAttribute("name") == "artist_type") {
            artist_type = elems[i].value;
        }
    }
    if (key == "artist") {
        key = artist_type;
    }
 // alert("option = " + option);
    f_html = "/akf_html/artist/" + key + "_" + option + ".html" ;
    sList = window.open(f_html, "list");
    // sList = window.open(f_html, "list", "width=150,height=210");
    return false;
};

function akfShowRaagaList() {
    f_html = "/akf_html/raaga/raaga.html";
    sList = window.open(f_html, "list");
    // sList = window.open(f_html, "list", "width=150,height=210");
    return false;
};

function akfAdvancedSearchRemLink() {
    if (window.sList && window.sList.open && !window.sList.closed)
      window.sList.opener = null;
};

function akfPickArtist(name, id, type) {
    Parent = window.opener;
 // alert("window.opener = " + Parent);
 // alert("name=" + name + ", id=" + id + ", type=" + type);
    var show_artist = 1;
    if (Parent && !Parent.closed) {
        var parent_url = "http://www.from-somewhere.com";
        try {
            parent_url = unescape(Parent.document.location);
        } catch(e) {
            ; // do nothing
        }
        var parent_is_bollango = parent_url.indexOf('bollango.com');
        if (parent_is_bollango != -1) {
            show_artist = 0;
        }
   }

   if (show_artist) {
        f_html = "/cgi-bin/akf_artist.tcl?artist_id=" + id;
        // document.location.href = f_html;
        sList = window.open(f_html, "list");

    } else {
        curr_val = "";
        var elems = window.opener.document.getElementsByTagName("input");
        for (var i = 0; i < elems.length; i++) {
            if ((elems[i].getAttribute("name") == type) ||
                (elems[i].getAttribute("name") == "artist")) {
                curr_val = elems[i].value;
                idx = i;
            }
        }
        if (curr_val == "") {
            new_val = name;
        } else {
            new_val = curr_val + ", " + name;
        }
        elems[idx].value = new_val;

        window.close();
    }
};

function akfPickRaaga(name, id) {
 // alert("window.opener = " + window.opener);
 // alert("name=" + name + ", id=" + id + ", type=" + type);
    if (window.opener) {
        curr_val = "";
        var elems = window.opener.document.getElementsByTagName("input");
        for (var i = 0; i < elems.length; i++) {
            if (elems[i].getAttribute("name") == "raaga") {
                curr_val = elems[i].value;
                idx = i;
            }
        }
        if (curr_val == "") {
            new_val = name;
        } else {
            new_val = curr_val + ", " + name;
        }
        elems[idx].value = new_val;

        window.close();

    } else {
        f_html = "/cgi-bin/akf_raaga.tcl?raaga_id=" + id;
        // document.location.href = f_html;
        sList = window.open(f_html, "list");
    }
};

function akfPickVideo(id) {
    // alert("window.opener = " + window.opener);
    // alert("akfPickVideo(id=" + id + ")");
    if (window.opener) {
        video_id = "video_" + id;
        idx_manual_video_id = -1;
        var inputs = window.opener.document.getElementsByTagName("input");
        for (var i = 0; i < inputs.length; i++) {
            if (inputs[i].getAttribute("name") == "manual_video_id") {
                idx_manual_video_id = i;
            } else if (inputs[i].getAttribute("type") == "checkbox" &&
                inputs[i].getAttribute("name") == video_id ) {
                inputs[i].checked = true;
            }
        }
        if (idx_manual_video_id != -1) {
            curr_value = inputs[idx_manual_video_id].value;
            if (curr_value == "") {
                new_value = id;
            } else {
                new_value = curr_value + " " + id;
            }
            inputs[idx_manual_video_id].value = new_value;
        }
        window.close();
    }
};

function akfAttach__add_video_id(form, chkbox) {
    // alert ("akfAttach__add_video_id(" + form + ", " + chkbox + ")");
    video_id = chkbox.replace(/video_/, "");
    var inputs = document.getElementsByTagName("input");
    for (var i = 0; i < inputs.length; i++) {
        if (inputs[i].getAttribute("type") == "checkbox" &&
            inputs[i].getAttribute("name") == chkbox ) {
            curr_value = form.manual_video_id.value;
            if ( inputs[i].checked === true ) {
                if (curr_value == "") {
                    new_value = video_id;
                } else {
                    new_value = curr_value + " " + video_id;
                }
            } else {
                new_value = curr_value.replace(video_id, "");
                new_value = new_value.replace(/^ /, "");
                new_value = new_value.replace(/ $/, "");
            }
            form.manual_video_id.value = new_value;
            break; 
        }
    }
    return true;
};

function akfSong__add_album_info() {
    var inputs = document.getElementsByTagName("input");
    for (var i = 0; i < inputs.length; i++) {
        if (inputs[i].getAttribute("name") == "album" ) {
            album = inputs[i].getAttribute("value");
            idx_album = i;
        } else if (inputs[i].getAttribute("name") == "album_title" ) {
            title = inputs[i].getAttribute("value");
            idx_album_title = i;
        } else if (inputs[i].getAttribute("name") == "track" ) {
            track = inputs[i].getAttribute("value");
            idx_track = i;
        } else if (inputs[i].getAttribute("name") == "volume" ) {
            volume = inputs[i].getAttribute("value");
            idx_volume = i;
        }
    }

    new_val = "";
    if (curr_val != "") {
        new_val += ", ";
    }
    new_val += title + " (";
    new_val += "track " + track;
    new_val += ", ";
    new_val += "cd #" + volume;
    new_val += ")";
    // alert ("new_val = " + new_val);

    inputs[idx_album].setAttribute('value', new_val);

    inputs[idx_album_title].setAttribute('value', '');
    inputs[idx_track].setAttribute('value', '');
    inputs[idx_volume].setAttribute('value', '');

    return false;
};

function akfSong__download(song_id) {
    var email = akfGetCookie('login').split("|")[0];
    var err = akf_bad_email_addr(email, 1);

    if (err) {
        f_html = "/akf_perl/akf_download.pl?cmd=Signup";
        document.location.href = f_html;

    } else {
        url = "/cgi-bin/akf_song.tcl?action=download&song_id=" + song_id;
        // alert("url = " + url);
        akfOpenWindow(url, 425, 120); // popup
        // setTimeout("akfRefreshWindow()", 30000); // after 30 secs
    }

    return false;
};

function akfSong__send_bollogram(song_id, title, singer, movie, year, f_picture, media_type) {
    var subject = "Bollogram song - " + title;
    var message = "I thought you might like this song";
    if (singer != -1)
        message += " by " + singer;
    if (movie != -1)
        message += ", from movie - " + movie;
    if (year != -1)
        message+= " (" + year + ")";
    message += ". Enjoy !";

    var url = "/akf_perl/akf_bollogram.pl?style=simple";
    url += "&song_type=" + media_type;
    url += "&song_id=" + song_id;
    url += "&subject=" + subject;
    url += "&message=" + message;
    if (f_picture != -1)
        url += "&f_picture=" + f_picture;
    // cleanup url
    url = url.replace(/ /g,"+");

    // alert("url=" + url);

    akfOpenWindow(url, 650, 250);
    return false;
};

function akfSong__collect_info() {
    var elems = document.getElementsByTagName("input");
    for (var i = 0; i < elems.length; i++) {
        name = elems[i].getAttribute("name");
        value = elems[i].value;
        value = value.replace(/ /g,"+");

     // alert("name = " + name + ", value = " + value);
        if (name == "song_id") {
            song_id = value;
        } else if (name == "title" || name == "song" || name == "song_title") {
            title = value;
        } else if (name == "movie") {
            movie = value;
        } else if (name == "year") {
            year = value;
        } else if (name == "music_director") {
            music_director = value;
        } else if (name == "singer") {
            singer = value;
        } else if (name == "lyricist") {
            lyricist = value;
        } else if (name == "f_mp3") {
            f_mp3 = value;
        } else if (name == "f_lyrics") {
            f_lyrics = value;
        } else if (name == "idb_tcl_info") {
            idx_tcl_info = i;
        } else if (name == "idb_php_info") {
            idx_php_info = i;
        }
    }

    info  = "song_id="         + song_id;
    info += "&title="          + title;
    info += "&movie="          + movie;
    info += "&year="           + year;
    info += "&music_director=" + music_director;
    info += "&singer="         + singer;
    info += "&lyricist="       + lyricist;
 // info += "&f_mp3="          + f_mp3;
 // info += "&f_lyrics="       + f_lyrics;

    elems[idx_tcl_info].value = info;
    elems[idx_php_info].value = info;

 // alert("info = " + info);

    return true;
};

function akfSong__post_action_and_id (action, song_id) {
    // JRoy 2009.06.15
    // - couldn't make it to work on Firefox, haven't tried IE

    var url = "/cgi-bin/akf_song.tcl";
    var form = createElement("form", {action: url, method: "POST",
                                      style: "display: none"});
    form.appendChild(createElement("input", {type: "hidden",
                                             name: 'action',
                                             value: action}));
    form.appendChild(createElement("input", {type: "hidden",
                                             name: 'song_id',
                                             value: song_id}));
    document.body.appendChild(form);
    form.submit();
    document.body.removeChild(form);
};

function akfMovie__collect_info() {
    var elems = document.getElementsByTagName("input");
    for (var i = 0; i < elems.length; i++) {
        name = elems[i].getAttribute("name");
        value = elems[i].value;
        value = value.replace(/ /g,"+");

     // alert("name = " + name + ", value = " + value);
        if (name == "movie_id") {
            movie_id = value;
        } else if (name == "title" || name == "movie") {
            title = value;
        } else if (name == "year") {
            year = value;
        } else if (name == "actor") {
            actor = value;
        } else if (name == "music_director") {
            music_director = value;
        } else if (name == "director") {
            director = value;
        } else if (name == "producer") {
            producer = value;
        } else if (name == "lyricist") {
            lyricist = value;
        } else if (name == "dialogue") {
            dialogue = value;
        } else if (name == "f_poster") {
            f_poster = value;
        } else if (name == "f_synopsis") {
            f_poster = value;
        } else if (name == "idb_tcl_info") {
            idx_tcl_info = i;
        } else if (name == "idb_php_info") {
            idx_php_info = i;
        }
    }

    info  = "movie_id="        + movie_id;
    info += "&title="          + title;
    info += "&year="           + year;
    info += "&actor="          + actor;
    info += "&music_director=" + music_director;
    info += "&director="       + director;
    info += "&producer="       + producer;
    info += "&lyricist="       + lyricist;
    info += "&dialogue="       + dialogue;
 // info += "&f_poster="       + f_poster;
 // info += "&f_synopsis="     + f_poster;

    elems[idx_tcl_info].value = info;
    elems[idx_php_info].value = info;

 // alert("info = " + info);

    return true;
};

function akfArtist__collect_info() {
    var elems = document.getElementsByTagName("input");
    for (var i = 0; i < elems.length; i++) {
        name = elems[i].getAttribute("name");
        value = elems[i].value;
        value = value.replace(/ /g,"+");

// alert("name = " + name + ", value = " + value);

        if (name == "artist_id") {
            artist_id = value;
        } else if (name == "title" || name == "artist") {
            title = value;
        } else if (name == "dob") {
            dob = value;
        } else if (name == "yob") {
            yob = value;
        } else if (name == "pob") {
            pob = value;
        } else if (name == "yod") {
            yod = value;
        } else if (name == "dod") {
            dod = value;
        } else if (name == "alias") {
            alias = value;
        } else if (name == "award") {
            award = value;
        } else if (name == "f_picture") {
            f_picture = value;
        } else if (name == "f_story") {
            f_story = value;
        } else if (name == "idb_tcl_info") {
            idx_tcl_info = i;
        } else if (name == "idb_php_info") {
            idx_php_info = i;
        }
    }

    info  = "artist_id="  + artist_id;
    info += "&title="     + title;
    info += "&dob="       + dob;
    info += "&yob="       + yob;
    info += "&pob="       + pob;
    info += "&dod="       + dod;
    info += "&yod="       + yod;
    info += "&award="     + award;
    info += "&alias="     + alias;
 // info += "&f_picture=" + f_picture;
 // info += "&f_story="   + f_story;

    elems[idx_tcl_info].value = info;
    elems[idx_php_info].value = info;

// alert("info = " + info);

    return true;
};

function akfPlaylist__new() {
    f_html = "/cgi-bin/akf_playlist.tcl?action=new"
 // alert("f_html = " + f_html);
    document.location.href = f_html;
    return false;
};

function akfPlaylist__del() {
    // find marked pids
    var marked = "";
    var inputs = document.getElementsByTagName("input");
    for (var i = 0; i < inputs.length; i++) {
        if (inputs[i].getAttribute("type") == "checkbox" &&
            inputs[i].checked == true) {
            name = inputs[i].getAttribute("name");
            if (name.indexOf("pid_") != -1) {
                marked += "&delete_" + name.replace(/pid_/,"");
            }
        }
    }
    if (marked == "") {
        alert("No playlists were selected for delete");
        return;
    }

    // delete marked playlists
    f_html = "/cgi-bin/akf_playlist.tcl?action=delete" + marked;
 // alert("f_html = " + f_html);
    document.location.href = f_html;

    return false;
};

function akfPlaylist__rename(uid, pid) {
    var elems = document.getElementsByTagName("input");
    for (var i = 0; i < elems.length; i++) {
        name = elems[i].getAttribute("name");
        if (name == "rename") {
            value = elems[i].value;
            value = value.replace(/ /g,"+");
            value = value.replace(/\'/g,"");
            value = value.replace(/\"/g,"");
        }
    }

    f_html = "/cgi-bin/akf_playlist.tcl?action=rename"
 // f_html += "&uid=" + uid;
 // f_html += "&pid=" + pid;
    f_html += "&rename_" + pid + "=" + value;
 // alert("f_html = " + f_html);

    document.location.href = f_html;
    return false;
};

function akfPlaylist__set_criteria(criteria) {
    value = 10;
    var elems = document.getElementsByTagName("input");
    for (var i = 0; i < elems.length; i++) {
        name = elems[i].getAttribute("name");
        if (name == "max_cnt") {
            value = elems[i].value;
        }
    }
    f_html = "/cgi-bin/akf_playlist.tcl?action=edit"
    f_html += "&criteria=" + criteria;
    f_html += "&max_cnt=" + value;
 // alert("f_html = " + f_html);

    document.location.href = f_html;
    return false;
};

function akfPlaylist__set_description(uid, pid) {
    var elems = document.getElementsByTagName("input");
    for (var i = 0; i < elems.length; i++) {
        name = elems[i].getAttribute("name");
        if (name == "description") {
            value = elems[i].value;
            value = value.replace(/ /g,"+");
            value = value.replace(/\'/g,"");
            value = value.replace(/\"/g,"");
        }
    }

    f_html = "/cgi-bin/akf_playlist.tcl?action=description"
 // f_html += "&uid=" + uid;
    f_html += "&pid=" + pid;
    f_html += "&description=" + value;
 // alert("f_html = " + f_html);

    document.location.href = f_html;
    return false;
};

function akfPlaylist__marked_songs() {
    // return list of marked songs
    marked = "";
    var inputs = document.getElementsByTagName("input");
    for (var i = 0; i < inputs.length; i++) {
        if (inputs[i].getAttribute("type") == "checkbox" &&
            inputs[i].checked == true) {
            name = inputs[i].getAttribute("name");
            if (name.indexOf("song_") != -1) {
                marked += "&" + name + "=on";
            }
        }
    }
    return marked;
};

function akfPlaylist__unmarked_songs() {
    // return list of unmarked songs
    unmarked = "";
    var inputs = document.getElementsByTagName("input");
    for (var i = 0; i < inputs.length; i++) {
        if (inputs[i].getAttribute("type") == "checkbox" &&
            inputs[i].checked == false) {
            name = inputs[i].getAttribute("name");
            if (name.indexOf("song_") != -1) {
                unmarked += "&" + name + "=on";
            }
        }
    }
    return unmarked;
};

function akfPlaylist__download(ppl) {
    var email = akfGetCookie('login').split("|")[0];
    var err = akf_bad_email_addr(email, 1);

    if (err) {
        f_html = "/akf_perl/akf_download.pl?cmd=Signup";
        document.location.href = f_html;

    } else {

        // list of marked songs
        marked = akfPlaylist__marked_songs();
        if (marked == "") {
            marked = akfPlaylist__unmarked_songs(); // get all songs
        }

        f_html = "/cgi-bin/akf_playlist.tcl?action=download"
        f_html += "&ppl=" + ppl;
        f_html += marked;
        // alert("f_html = " + f_html);

        akfOpenWindow(f_html, 425, 120); // popup
        // setTimeout("akfRefreshWindow()", 30000); // after 30 secs
    }
    return false;
};

function akfPlaylist__publish(uid, pid) {
    value = pid;
    var elems = document.getElementsByTagName("input");
    for (var i = 0; i < elems.length; i++) {
        name = elems[i].getAttribute("name");
        if (name == "description") {
            value = elems[i].value;
            value = value.replace(/ /g,"+");
            value = value.replace(/\'/g,"+");
            value = value.replace(/\"/g,"+");
        }
    }
    // list of marked songs
    marked = akfPlaylist__marked_songs();
    if (marked == "") {
        marked = akfPlaylist__unmarked_songs(); // get all songs
    }

    f_html = "/cgi-bin/akf_playlist.tcl?action=publish"
 // f_html += "&uid=" + uid;
    f_html += "&pid=" + pid;
    f_html += "&description=" + value;
    f_html += marked;
 // alert("f_html = " + f_html);

    document.location.href = f_html;
    return false;
};

function akfPlaylist__withdraw(uid, pid) {
    f_html = "/cgi-bin/akf_playlist.tcl?action=withdraw"
 // f_html += "&uid=" + uid;
    f_html += "&pid=" + pid;
 // f_html += "&description=" + description;
 // alert("f_html = " + f_html);

    document.location.href = f_html;
    return false;
};

function akfPlaylist__favorite(action, ppl) {
    f_html = "/cgi-bin/akf_playlist.tcl?action=favorite:" + action;
 // f_html += "&uid=" + uid;
    f_html += "&ppl=" + ppl;
 // alert("f_html = " + f_html);

    document.location.href = f_html;
    return false;
};

function akfArticle__set_criteria(criteria) {
    value = 10;
    var elems = document.getElementsByTagName("input");
    for (var i = 0; i < elems.length; i++) {
        name = elems[i].getAttribute("name");
        if (name == "max_cnt") {
            value = elems[i].value;
        }
    }
    f_html = "/cgi-bin/akf_article.tcl?action=edit"
    f_html += "&criteria=" + criteria;
    f_html += "&max_cnt=" + value;
 // alert("f_html = " + f_html);

    document.location.href = f_html;
    return false;
};

function akfArticle__note2publisher(atl) {
    var elems = document.getElementsByTagName("input");
    for (var i = 0; i < elems.length; i++) {
        name = elems[i].getAttribute("name");
        if (name == "note2publisher") {
            note2publisher = elems[i].value;
            note2publisher = note2publisher.replace(/ /g,"+");
            note2publisher = note2publisher.replace(/\'/g,"");
            note2publisher = note2publisher.replace(/\"/g,"");
        }
    }

    f_html = "/cgi-bin/akf_article.tcl?action=note2publisher"
    f_html += "&atl=" + atl;
    f_html += "&note2publisher=" + note2publisher;
 // alert("f_html = " + f_html);

    document.location.href = f_html;
    return false;
};

function akfArticle__favorite(action, atl) {
    f_html = "/cgi-bin/akf_article.tcl?action=favorite:" + action;
 // f_html += "&uid=" + uid;
    f_html += "&atl=" + atl;
 // alert("f_html = " + f_html);

    document.location.href = f_html;
    return false;
};

function akfArticle__rename(uid, pid) {
    var elems = document.getElementsByTagName("input");
    for (var i = 0; i < elems.length; i++) {
        name = elems[i].getAttribute("name");
        if (name == "rename") {
            rename = elems[i].value;
            rename = rename.replace(/ /g,"+");
            rename = rename.replace(/\'/g,"");
            rename = rename.replace(/\"/g,"");
        }
    }

    f_html = "/cgi-bin/akf_article.tcl?action=rename"
 // f_html += "&uid=" + uid;
 // f_html += "&pid=" + pid;
    f_html += "&rename_" + pid + "=" + rename;
 // alert("f_html = " + f_html);

    document.location.href = f_html;
    return false;
};

function akfArticle__set_description(uid, pid) {
    var elems = document.getElementsByTagName("input");
    for (var i = 0; i < elems.length; i++) {
        name = elems[i].getAttribute("name");
        if (name == "description") {
            description = elems[i].value;
            description = description.replace(/ /g,"+");
            description = description.replace(/\'/g,"");
            description = description.replace(/\"/g,"");
        }
    }

    f_html = "/cgi-bin/akf_article.tcl?action=description"
 // f_html += "&uid=" + uid;
    f_html += "&pid=" + pid;
    f_html += "&description=" + description;
 // alert("f_html = " + f_html);

    document.location.href = f_html;
    return false;
};

function akfArticle__publish(uid, pid) {
    var elems = document.getElementsByTagName("input");
    for (var i = 0; i < elems.length; i++) {
        name = elems[i].getAttribute("name");
        if (name == "description") {
            description = elems[i].value;
            description = description.replace(/ /g,"+");
            description = description.replace(/\'/g,"");
            description = description.replace(/\"/g,"");
        }
    }

    f_html = "/cgi-bin/akf_article.tcl?action=publish"
 // f_html += "&uid=" + uid;
    f_html += "&pid=" + pid;
    f_html += "&description=" + description;
 // alert("f_html = " + f_html);

    document.location.href = f_html;
    return false;
};

function akfArticle__withdraw(uid, pid) {
    f_html = "/cgi-bin/akf_article.tcl?action=withdraw"
 // f_html += "&uid=" + uid;
    f_html += "&pid=" + pid;
 // f_html += "&description=" + description;
 // alert("f_html = " + f_html);

    document.location.href = f_html;
    return false;
};

function akfUser__check_availability(email, key) {
    var elems = document.getElementsByTagName("input");
    for (var i = 0; i < elems.length; i++) {
        name = elems[i].getAttribute("name");
        if (name == "alias") {
            alias = elems[i].value;
            alias = alias.replace(/ /g,"+");
            alias = alias.replace(/\'/g,"");
            alias = alias.replace(/\"/g,"");
        }
    }

    f_html  = "/cgi-bin/akf_user.tcl?action=availability";
    f_html += "&email=" + email;
    f_html += "&key=" + key;
    f_html += "&key_val=" + alias;
 // alert("f_html = " + f_html);
    akfOpenWindow(f_html, 525, 50); // popup
    return false;
};

function akfUser__update_pic_alias(email, alias, name) {
    f_html = "/akf_perl/akf_upload_pic.pl?email=" + email;
    if (alias != -1) {
        f_html += "&alias=" + alias;
    }
    f_html += "&name=" + name;
 // alert("f_html = " + f_html);
    akfOpenWindow(f_html, 550, 150);
    return false;
};

function akfUser__list2playlist() {
    var email = akfGetCookie('login').split("|")[0];
    f_url = "/akf_perl/akf_list2playlist.pl?email=" + email;
 // alert("f_url = " + f_url);
    window.location.href = f_url;
    // akfOpenWindow(f_html, 550, 200);
    return false;
};

function akfUser__upload_article(email) {
    f_html = "/akf_html/akf_post_article.html";
 // alert("f_html = " + f_html);
 // akfOpenWindow(f_html, 840, 625, 'yes');
    document.location.href = f_html;
    return false;
};

function akf_bad_email_addr(email_addr_list, silent) {
    // equivalent of tcl regsub
    email_addr_list = email_addr_list.replace(/\,/g," ");
    email_addr_list = email_addr_list.replace(/\s+/g," ");
    email_addr_list = email_addr_list.replace(/\s+$/g,"");

    var error_cnt = 0;
    var email_arr = email_addr_list.split(" ");

    var error = 0; var tmp_array; var email;
    for (var i = 0; i < email_arr.length; i++) {
        email = email_arr[i]; error = 0;
        // email must have exactly 1 '@' and at least 1 '.'
        tmp_array = email.split("@");
        if (tmp_array.length != 2) error += 1;
        tmp_array = email.split(".");
        if (tmp_array.length < 2) error += 1;
        if (error) {
            if (! silent) alert("Bad email address: " + email);
            error_cnt += 1
        }
    }
    return error_cnt
};

function akfUser__invite_friends(email, action) {
    friends = "";
    var elems = document.getElementsByTagName("input");
    for (var i = 0; i < elems.length; i++) {
        if (elems[i].getAttribute("name") == "invite_friends" ) {
            friends = elems[i].value;
            break;
        }
    }
    if (friends == "email addresses") {
        alert("No email address specified.")
        return false
    }
    if (akf_bad_email_addr(friends, 0)) {
        return false
    }
    elems[i].value = "email addresses"; // reset it

    f_html  = "/akf_perl/akf_invite_friends.pl"
    f_html += "?action=" + action;
    f_html += "&friends=" + friends;
 // alert("f_html = " + f_html);

    akfOpenWindow(f_html, 450, 125);

    return false;
};

function akfPlaylist__email_ppl(ppl) {
    friends = "";
    var elems = document.getElementsByTagName("input");
    for (var i = 0; i < elems.length; i++) {
        if (elems[i].getAttribute("name") == "email_list" ) {
            friends = elems[i].value;
            break;
        }
    }
    if (friends == "email addresses") {
        alert("No email address specified.")
        return false
    }
    if (akf_bad_email_addr(friends, 0)) {
        return false
    }
    elems[i].value = "email addresses"; // reset it

    f_html  = "/akf_perl/akf_invite_friends.pl"
    f_html += "?action=ppl";
    f_html += "&ppl=" + ppl;
    f_html += "&friends=" + friends;
 // alert("f_html = " + f_html);

    akfOpenWindow(f_html, 450, 125);

    return false;
};

function akfUser__send_this_page() {
    var elems = document.getElementsByName("page_url");
    if (elems.length > 0) {
        page_url = elems[0].value;
    } else {
        page_url = akfReplaceSpecialChars(window.location.href);
    }

    f_html  = "/akf_perl/akf_send_this_page.pl"
    f_html += "?page_url=" + page_url;
    // alert("f_html = " + f_html);

    akfOpenWindow(f_html, 500, 200);

    return false;
};

function akfUser__send_note(recipient) {
    f_html = "/akf_perl/akf_send_note.pl?action=show&recipient=" + recipient;
 // alert("f_html = " + f_html);
    akfOpenWindow(f_html, 440, 125);
    return false;
};

function akfUser__show_note(key) {
    f_html = "/cgi-bin/akf_user.tcl?action=message&key=" + key;
 // alert("f_html = " + f_html);
    document.location.href = f_html;
    return false;
};

/* common utilities */

function akfHREF(url) {
    document.location.href = url;
    return false;
};

function akfFavorite(action, db, id) {
    f_html = "/cgi-bin/akf_" + db + ".tcl?action=favorite:" + action;
 // f_html += "&uid=" + uid;
    if (db == "user") {
        f_html += "&email=" + id;
    } else {
        f_html += "&" + db + "_id=" + id;
    }
 // alert("f_html = " + f_html);

    document.location.href = f_html;
    return false;
};

function akfClearInput(name, default_value) {
    var elems = document.getElementsByTagName("input");
    for (var i = 0; i < elems.length; i++) {
        if (name == elems[i].getAttribute("name")) {
            if (default_value == -1 || default_value == elems[i].value) {
                elems[i].value = "";
            }
        }
    }
};

function akfSearch(db) {
    v_max_cnt = 10; v_title = "";
    var elems = document.getElementsByTagName("input");
    for (var i = 0; i < elems.length; i++) {
        name = elems[i].getAttribute("name");
        if (name == "title") {
            value = elems[i].value;
            value = value.replace(/ /g,"+");
            value = value.replace(/\'/g,"");
            value = value.replace(/\"/g,"");
            v_title = value;
        } else if (name == "max_cnt") {
            v_max_cnt = elems[i].value;
        }
    }

    if (v_title != "") {
        f_html = "/cgi-bin/akf_search.tcl?key=" + db;
        f_html += "&title="   + v_title;
        f_html += "&max_cnt=" + v_max_cnt;
     // alert("f_html = " + f_html);
        document.location.href = f_html;
    }

    return false;
};

function akfSurpriseMe(param) {
    // alert("param = " + param);
    if (param == "check") {
        var email = akfGetCookie('login').split("|")[0];
        var err = akf_bad_email_addr(email, 1);
        if (! err) { param = "yes"; }
    }
    if (param == "yes") {
        f_html  = "/cgi-bin/akf_radio.tcl?action=f_mp3&surprise_me=1"
        cnt = 10;
        var inputs = document.getElementsByTagName("input");
        for (var i = 0; i < inputs.length; i++) {
            name = inputs[i].getAttribute("name");
            if (name == "cnt") {
                cnt = inputs[i].value;
            }
        }
        f_html += "&cnt=" + cnt;
    } else {
            f_html = "/akf_perl/akf_login.pl?cmd=Signup";
    }
    // alert("f_html = " + f_html);
    document.location.href = f_html;

    return false;
};

function akfPlayRadio(channel, play_cnt) {
    marked_eras = ""; marked_singers = ""; 
    marked_music_directors = ""; marked_genres = "";
    cnt = 10;
    var inputs = document.getElementsByTagName("input");
    for (var i = 0; i < inputs.length; i++) {
        name = inputs[i].getAttribute("name");
        value = inputs[i].value;
        if ((inputs[i].getAttribute("type") == "checkbox") &&
            (inputs[i].checked == true)) {
            if (name.indexOf("era_") == 0) {
                era = name.replace(/era_/,"");
                marked_eras += "&era=" + era;
            } else if (name.indexOf("singer_") == 0) {
                singer = name.replace(/singer_/,"");
                marked_singers += "&singer=" + singer;
            } else if (name.indexOf("music_director_") == 0) {
                music_director = name.replace(/music_director_/,"");
                marked_music_directors += "&music_director=" + music_director;
            } else if (name.indexOf("genre_") == 0) {
                genre = name.replace(/genre_/,"");
                marked_genres += "&genre=" + genre;
            }
        } else if (name == "cnt") {
            cnt = inputs[i].value;
        }
    }

    f_html  = "/cgi-bin/akf_radio.tcl?action=f_mp3&radio=1"
    if (play_cnt != "-1") {
        f_html += "&cnt=" + play_cnt;
    } else {
        f_html += "&cnt=" + cnt;
    }
    if (channel != "-1") {
        f_html += "&channel=" + channel;
    } else {
        f_html += marked_eras;
        f_html += marked_singers;
        f_html += marked_music_directors;
        f_html += marked_genres;
    }
 // alert("f_html = " + f_html);
    document.location.href = f_html;
    return false;
};

function akfRadio__img_onclick(checkbox_name) {
    var checkbox = document.getElementsByName(checkbox_name);
    var status = checkbox[0].checked;
    if (status == false) {
        checkbox[0].checked = true;
    } else {
        checkbox[0].checked = false;
    }
};

function akfRandom__play() {
    // collect list of marked playlists
    marked_pids = ""; marked_ppls = "";
    var inputs = document.getElementsByTagName("input");
    for (var i = 0; i < inputs.length; i++) {
        if (inputs[i].getAttribute("type") == "checkbox" &&
            inputs[i].checked == true) {
            name = inputs[i].getAttribute("name");
            if (name.indexOf("pid_") == 0) {
                id_upl = name.replace(/pid_/,"");
                marked_pids += "&id_upl=" + id_upl;
            } else if (name.indexOf("ppl_") == 0) {
                id_ppl = name.replace(/ppl_/,"");
                marked_ppls += "&id_ppl=" + id_ppl;
            }
        }
    }

    f_html  = "/cgi-bin/akf_radio.tcl?action=f_mp3&cnt=10"
    f_html += marked_pids;
    f_html += marked_ppls;
 // alert("f_html = " + f_html);
    document.location.href = f_html;
    return false;
};

function akfAddToFavorites() {
    var page_url = window.location.href;
    var page_title = document.title;
    if (window.sidebar) { 
        // alert("2. Firefox");
        window.sidebar.addPanel(page_title, page_url, "");

    } else if (document.all) {
        // alert("2. IE");
        window.external.AddFavorite(page_url, page_title);

    } else {
        alert("Sorry! Your browser doesn't support this function.");
    }
};

function akf_clear_key(key, def_val) {
    var inputs = document.getElementsByTagName("input");
    for (var i = 0; i < inputs.length; i++) {
        name = inputs[i].getAttribute("name");
        if ( name == key ) {
            value = inputs[i].value;
            if ( value == def_val ) {
                inputs[i].value = "";
            } else if (value == "") {
                inputs[i].value = def_val;
            }
        }
    }
    return false;
};

function akf_toggle_key(key) {
    var inputs = document.getElementsByTagName("input");
    for (var i = 0; i < inputs.length; i++) {
        name = inputs[i].getAttribute("name");
        if ( name == key ) { 
            if (inputs[i].disabled == true) {
                inputs[i].disabled = false;
            } else {
                inputs[i].disabled = true;
            }
        }
    }
    return false;
};

function akf_mgPlayer (email, song_id, song_title) {
    var url;
    var err = akf_bad_email_addr(email, 1);
    if (err) {
        url = "/akf_perl/akf_login.pl?cmd=KaraokeSignup";
        document.location.href = url;

    } else {
        url = "/cgi-bin/akf_karaoke.tcl";
        url += "?action=play";
        url += "&email=" + email;
        url += "&karaoke_id=" + song_id;
        akfOpenWindow(url); // popup
    }

    return false;
};

function akf_eSnipsPlayer (email, song_id, media_type, song_title) {
    var err = akf_bad_email_addr(email, 1);
    if (err) {
        var url = "/akf_perl/akf_login.pl?cmd=KaraokeSignup";
        document.location.href = url;

    } else {
        // akfSong__post_action_and_id ('karaoke', song_id);
        if (media_type == "mp3") {
            akf_eSnipsPlayer__mp3 (song_id, song_title);
        } else if (media_type == "wma") {
            akf_eSnipsPlayer__wma (song_id, song_title);
        }
    }
};

function akf_eSnipsPlayer__mp3 (song_id, song_title) {

    var url_eSnips = "http://fb.esnips.com//escentral/images/widgets/flash";
    var url_eSnipsPlayer = url_eSnips + "/esnips_player.swf";
    var url_eSnipsPlayer__widget = url_eSnips + "/mp3WidgetPlayer.swf";

    var song_url = "http://esnips.com/nsdoc/" + song_id;

    eSnips = window.open("", "eSnips_mp3", "height=110, width=345, toolbar=no, scrollbars=no, menubar=no, location=no");
    eSnips.document.write("<HTML>");
    eSnips.document.write("<TITLE>eSnips Player</TITLE>");
    eSnips.document.write("<BODY>");

    eSnips.document.write("<table bgcolor=#000000 cellpadding=0 cellspacing=0>");
    eSnips.document.write("  <tr><td>");
    eSnips.document.write('      <embed quality="high"');
    eSnips.document.write('        pluginspage="http://www.macromedia.com/go/getflashplayer"');
    eSnips.document.write('        type="application/x-shockwave-flash"');
    eSnips.document.write('        bgcolor="#000" width="328" height="94"');
    eSnips.document.write('        src="' + url_eSnipsPlayer + '"');
    eSnips.document.write('        flashvars="theTheme=blue&amp;autoPlay=yes&amp;theFile=' + song_url + '&amp;theName=' + song_title + '&amp;thePlayerURL=' + url_eSnipsPlayer__widget + '">');
    eSnips.document.write("      </embed>");
    eSnips.document.write("</td></tr>");
    eSnips.document.write("</table>");

    eSnips.document.write("</BODY>")
    eSnips.document.write("</HTML>")

    eSnips.document.close()
    eSnips.focus()
    self.name="main"

    return false;
};

function akf_eSnipsPlayer__wma (song_id, song_title) {
    var song_url = "http://esnips.com/doc/" + song_id;
    // akfOpenWindow(song_url);
    // akfOpenWindow(url, w, h, sb, wn, stb, l, mb, tb, rs);
    var w = 460, h = 275;
 // akfOpenWindow(song_url, w, h, 'yes', 'eSnips_wma', 200, 500);
    akfOpenWindow(song_url, w, h, 'no', 'eSnips_wma');

/*
    // var url_eSnipsPlayer_js = "http://res1.esnips.com/3rd/media/music12.js";
    eSnips = window.open("", "eSnips", "height=80, width=505, toolbar=no, scrollbars=no, menubar=no, location=no");
    eSnips.document.write('<HTML>');
    eSnips.document.write('<TITLE>eSnips Player</TITLE>');
    eSnips.document.write('<BODY>');

alert("eSnips OK 2");
    eSnips.document.write('<table cellpadding=0 cellspacing=0>');
    eSnips.document.write('<tr><td>');
    eSnips.document.write('    <script type="text/javascript"');
    eSnips.document.write('            src="' + url_eSnipsPlayer_js + '">');
    eSnips.document.write('    <table border=0 cellpadding=2 cellspacing=2 id="tableMain">');
    eSnips.document.write('    <tr><td>');
    eSnips.document.write('        <div id="divPlayer">');
    eSnips.document.write('        <script language="JavaScript">');
    eSnips.document.write('                makeWMPlayer("' + song_url + '", -1);');
    eSnips.document.write('        </script>');
    eSnips.document.write('        </div>');
    eSnips.document.write('    </tr></td>');
    eSnips.document.write('    </table>');
    eSnips.document.write('</tr></td>');
    eSnips.document.write('</table>');
alert("eSnips OK 3");

    eSnips.document.write('</BODY>');
    eSnips.document.write('</HTML>')

    eSnips.document.close()
    self.name="main"
alert("eSnips OK 4");
*/

    return false;
};

function akfTab__show (tab_id, tab_idx) {
    // See: http://www.barelyfitz.com/projects/tabber => Advanced
    // tab_idx starts from 0 (index of first tab)
    // Example: akfTab__show ('movie_tab', 1);

// alert("1. akfTab__show (" + tab_id + ", " + tab_idx + ")");
    // document.getElementById(tab_id).tabber.tabShow(tab_idx);
    document.getElementById('movie/movie').tabber.tabShow(1);
// alert("2. akfTab__show (" + tab_id + ", " + tab_idx + ")");
    return false;
};

function akfIndex__show (tab) {

    f_url = "/akf_html/akf_index.html";
    if (tab == "movie" || tab == "movies") {
       tab_id = 'movie_tab' ; tab_idx = 1;
    } else if (tab == "actor" || tab == "actors") {
       tab_id = 'actor_tab' ; tab_idx = 2;
    } else if (tab == "singer" || tab == "singers") {
       tab_id = 'singer_tab' ; tab_idx = 3;
    } else if (tab == "music_director" || tab == "music_directors") {
       tab_id = 'music_director_tab' ; tab_idx = 4;
    } else if (tab == "director" || tab == "directors") {
       tab_id = 'director_tab' ; tab_idx = 5;
    } else if (tab == "lyricist" || tab == "lyricists") {
       tab_id = 'lyricist_tab' ; tab_idx = 6;
    }

    // window.location.href = f_url;
    akfTab__show (tab_id, tab_idx);

    return false;
};
