// remote scripting library // (c) copyright 2005 modernmethod, inc var sajax_debug_mode = false; var sajax_request_type = "POST"; var sajax_target_id = ""; var sajax_failure_redirect = ""; function sajax_debug(text) { if (sajax_debug_mode) alert(text); } function sajax_init_object() { sajax_debug("sajax_init_object() called..") var A; var msxmlhttp = new Array( 'Msxml2.XMLHTTP.5.0', 'Msxml2.XMLHTTP.4.0', 'Msxml2.XMLHTTP.3.0', 'Msxml2.XMLHTTP', 'Microsoft.XMLHTTP'); for (var i = 0; i < msxmlhttp.length; i++) { try { A = new ActiveXObject(msxmlhttp[i]); } catch (e) { A = null; } } if(!A && typeof XMLHttpRequest != "undefined") A = new XMLHttpRequest(); if (!A) sajax_debug("Could not create connection object."); return A; } var sajax_requests = new Array(); function sajax_cancel() { for (var i = 0; i < sajax_requests.length; i++) sajax_requests[i].abort(); } 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 (typeof(sajax_request_type) == "undefined" || sajax_request_type == "") sajax_request_type = "GET"; uri = "/inc/meatwave.js.php"; 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(); if (x == null) { if (sajax_failure_redirect != "") { location.href = sajax_failure_redirect; return false; } else { sajax_debug("NULL sajax object for user agent:\n" + navigator.userAgent); return false; } } else { x.open(sajax_request_type, uri, true); // window.open(uri); sajax_requests[sajax_requests.length] = x; 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; var txt = x.responseText.replace(/^\s*|\s*$/g,""); status = txt.charAt(0); data = txt.substring(2); if (status == "") { // let's just assume this is a pre-response bailout and let it slide for now } else if (status == "-") alert("Error: " + data); else { if (target_id != "") document.getElementById(target_id).innerHTML = eval(data); else { try { var callback; var extra_data = false; if (typeof args[args.length-1] == "object") { callback = args[args.length-1].callback; extra_data = args[args.length-1].extra_data; } else { callback = args[args.length-1]; } callback(eval(data), extra_data); } catch (e) { sajax_debug("Caught error " + e + ": Could not 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 printCalendar function x_printCalendar() { sajax_do_call("printCalendar", x_printCalendar.arguments); } // wrapper for makeCalendar function x_makeCalendar() { sajax_do_call("makeCalendar", x_makeCalendar.arguments); } // wrapper for loginBox function x_loginBox() { sajax_do_call("loginBox", x_loginBox.arguments); } // wrapper for inviteRegister function x_inviteRegister() { sajax_do_call("inviteRegister", x_inviteRegister.arguments); } // wrapper for sendInvite function x_sendInvite() { sajax_do_call("sendInvite", x_sendInvite.arguments); } // wrapper for printRSVP function x_printRSVP() { sajax_do_call("printRSVP", x_printRSVP.arguments); } // wrapper for submitRSVP function x_submitRSVP() { sajax_do_call("submitRSVP", x_submitRSVP.arguments); } // wrapper for printComments function x_printComments() { sajax_do_call("printComments", x_printComments.arguments); } function calendarYear(year) { x_printCalendar(year,diplsayCal); } function diplsayCal(cal) { document.getElementById("left_column").innerHTML = cal; document.getElementById("background").style.height = '100%'; } function calendarJump(month,year) { x_makeCalendar(month,year,updateCal); } function updateCal(cal) { document.getElementById("calendar").innerHTML = cal; } function toggleLogin(view) { if (view == 'hide') { document.getElementById("login_box").style.display = 'none'; x_loginBox("","1",loginBox); } else { document.getElementById("login_box").style.display = 'block'; document.getElementById("login_email").focus(); } } function logOut () { location.href='?logout=1'; } function sendLogin() { var email = document.getElementById("login_email").value; x_loginBox(email,"",loginBox); } function loginBox(box) { document.getElementById("box").innerHTML = box; } function toggleInvite (inputID,view) { var inputValue = document.getElementById(inputID).value; if (view == 'clear') { if (inputValue == "Name" || inputValue == "Email") { document.getElementById(inputID).value = ""; document.getElementById(inputID).style.color = '#000000'; } } else { if (inputValue == "") { if (inputID == "invite_name") { inputValue = "Name"; } else { inputValue = "Email"; } document.getElementById(inputID).value = inputValue; document.getElementById(inputID).style.color = '#cacaca'; } } } function inviteRegister(username,name,email,error) { x_inviteRegister(username,name,email,error,updateInvite); } function sendInvite (username) { var action = document.getElementById("invite_action").value; var name = document.getElementById("invite_name").value; var email = document.getElementById("invite_email").value; x_sendInvite(username,name,email,action,updateInvite); } function updateInvite (invite) { document.getElementById("invite").innerHTML = invite; } function changeRSVP (meatwave_id,username,change) { document.getElementById("rsvp").innerHTML = "
RSVP
\"loading\" Please wait...
"; x_printRSVP(meatwave_id,username,change,"",updateRSVP); } function updateRSVP (rsvp) { document.getElementById("rsvp").innerHTML = rsvp; } function submitRSVP (meatwave_id,user_id,username) { var len = document.rsvp_form.flag.length; var choosen_flag = ""; var note = document.getElementById("note").value; for (x = 0; x < len; x++) { if (document.rsvp_form.flag[x].checked) { choosen_flag = document.rsvp_form.flag[x].value } } document.getElementById("rsvp").innerHTML = "
RSVP
\"loading\" Please wait...
"; x_submitRSVP(meatwave_id,user_id,username,choosen_flag,note,updateMeatwave); } function updateMeatwave (meatwave) { document.getElementById("left_column").innerHTML = meatwave; } function postComment(postID,preview) { var name = document.getElementById("name").value; var email = document.getElementById("email").value; var url = document.getElementById("url").value; var comment = document.getElementById("comment").value; var remember = "n"; var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/; if (document.getElementById("remember").checked == true) { remember = 'y'; } if (name == "") { document.getElementById("comment_error").innerHTML = "
You must add a name!"; } else if (email == "") { document.getElementById("comment_error").innerHTML = "
You must add an email address!
Your email will not be shared with anyone."; } else if (reg.test(email) == false) { document.getElementById("comment_error").innerHTML = "
That email address is not valid!"; } else if (comment == "") { document.getElementById("comment_error").innerHTML = "
You must add a comment!"; } else { document.getElementById("comment_loading").innerHTML = "\"loading\" Please wait..."; x_printComments(postID,preview,name,email,url,comment,remember,updateComments); } } function updateComments (comments) { document.getElementById("comments_container").innerHTML = comments; } function toggleHTTP (view) { var url = document.getElementById("url").value; if (view == 'clear') { if (url == "http://") { document.getElementById("url").value = ""; } } else { if (url == "") { document.getElementById("url").value = "http://"; } } } if (document.images) { image1= new Image(); image1.src="images/button.preview.ro.gif"; image2= new Image(); image2.src="images/button.post.ro.gif"; image3= new Image(); image3.src="images/button.submit.ro.gif"; image4= new Image(); image4.src="images/button.login.ro.gif"; image5= new Image(); image5.src="images/button.cancel.ro.gif"; image6= new Image(); image6.src="images/loading.gif"; }