// remote scripting library // (c) copyright 2005 modernmethod, inc var sajax_debug_mode = false; var sajax_request_type = "GET"; var sajax_target_id = ""; function sajax_debug(text) { if (sajax_debug_mode) alert("RSD: " + text) } function sajax_init_object() { sajax_debug("sajax_init_object() called..") var A; try { A=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { A=new ActiveXObject("Microsoft.XMLHTTP"); } catch (oc) { A=null; } } if(!A && typeof XMLHttpRequest != "undefined") A = new XMLHttpRequest(); if (!A) sajax_debug("Could not create connection object."); return A; } function sajax_do_call(func_name, args) { var i, x, n; var uri; var post_data; var target_id; sajax_debug("in sajax_do_call().." + sajax_request_type + "/" + sajax_target_id); target_id = sajax_target_id; if (sajax_request_type == "") sajax_request_type = "GET"; uri = ""; if (sajax_request_type == "GET") { if (uri.indexOf("?") == -1) uri += "?rs=" + escape(func_name); else uri += "&rs=" + escape(func_name); uri += "&rst=" + escape(sajax_target_id); uri += "&rsrnd=" + new Date().getTime(); for (i = 0; i < args.length-1; i++) uri += "&rsargs[]=" + escape(args[i]); post_data = null; } else if (sajax_request_type == "POST") { post_data = "rs=" + escape(func_name); post_data += "&rst=" + escape(sajax_target_id); post_data += "&rsrnd=" + new Date().getTime(); for (i = 0; i < args.length-1; i++) post_data = post_data + "&rsargs[]=" + escape(args[i]); } else { alert("Illegal request type: " + sajax_request_type); } x = sajax_init_object(); x.open(sajax_request_type, uri, true); if (sajax_request_type == "POST") { x.setRequestHeader("Method", "POST " + uri + " HTTP/1.1"); x.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); } x.onreadystatechange = function() { if (x.readyState != 4) return; sajax_debug("received " + x.responseText); var status; var data; status = x.responseText.charAt(0); data = x.responseText.substring(2); if (status == "-") alert("Error: " + data); else { if (target_id != "") document.getElementById(target_id).innerHTML = eval(data); else args[args.length-1](eval(data)); } } sajax_debug(func_name + " uri = " + uri + "/post = " + post_data); x.send(post_data); sajax_debug(func_name + " waiting.."); delete x; return true; } // wrapper for getCurrentSong function x_getCurrentSong() { sajax_do_call("getCurrentSong", x_getCurrentSong.arguments); } // wrapper for getUser function x_getUser() { sajax_do_call("getUser", x_getUser.arguments); } // wrapper for musicLookup function x_musicLookup() { sajax_do_call("musicLookup", x_musicLookup.arguments); } // wrapper for playlist_rem function x_playlist_rem() { sajax_do_call("playlist_rem", x_playlist_rem.arguments); } // wrapper for playlist_add function x_playlist_add() { sajax_do_call("playlist_add", x_playlist_add.arguments); } // wrapper for playlistInfo function x_playlistInfo() { sajax_do_call("playlistInfo", x_playlistInfo.arguments); } // wrapper for clearPlaylist function x_clearPlaylist() { sajax_do_call("clearPlaylist", x_clearPlaylist.arguments); } // wrapper for buildBreadcrumb function x_buildBreadcrumb() { sajax_do_call("buildBreadcrumb", x_buildBreadcrumb.arguments); } // wrapper for play function x_play() { sajax_do_call("play", x_play.arguments); } // wrapper for playlist_move function x_playlist_move() { sajax_do_call("playlist_move", x_playlist_move.arguments); } // wrapper for searchMusic function x_searchMusic() { sajax_do_call("searchMusic", x_searchMusic.arguments); } // wrapper for editUser function x_editUser() { sajax_do_call("editUser", x_editUser.arguments); } // wrapper for switchMode function x_switchMode() { sajax_do_call("switchMode", x_switchMode.arguments); } // wrapper for viewPlaylist function x_viewPlaylist() { sajax_do_call("viewPlaylist", x_viewPlaylist.arguments); } // wrapper for getDropDown function x_getDropDown() { sajax_do_call("getDropDown", x_getDropDown.arguments); } // wrapper for savePlaylist function x_savePlaylist() { sajax_do_call("savePlaylist", x_savePlaylist.arguments); } // wrapper for getRandItems function x_getRandItems() { sajax_do_call("getRandItems", x_getRandItems.arguments); } // wrapper for randPlay function x_randPlay() { sajax_do_call("randPlay", x_randPlay.arguments); } // wrapper for resetDatabase function x_resetDatabase() { sajax_do_call("resetDatabase", x_resetDatabase.arguments); } // wrapper for createInviteCode function x_createInviteCode() { sajax_do_call("createInviteCode", x_createInviteCode.arguments); } // wrapper for editSettings function x_editSettings() { sajax_do_call("editSettings", x_editSettings.arguments); } // wrapper for deletePlaylist function x_deletePlaylist() { sajax_do_call("deletePlaylist", x_deletePlaylist.arguments); } // wrapper for adminEditUsers function x_adminEditUsers() { sajax_do_call("adminEditUsers", x_adminEditUsers.arguments); } // wrapper for adminAddUser function x_adminAddUser() { sajax_do_call("adminAddUser", x_adminAddUser.arguments); } // wrapper for submitScrobbler function x_submitScrobbler() { sajax_do_call("submitScrobbler", x_submitScrobbler.arguments); } // wrapper for insert_art function x_insert_art() { sajax_do_call("insert_art", x_insert_art.arguments); }