var xmlHttp = createXmlHttpRequestObject();
var clientID;
var trace = false;
function addToMyStream(linkID, memberID, pClientID) {
     if (trace) {
          alert('in ajax.js::addToMyStream input var: link id: ' + linkID + ' and member id: ' + memberID + ' and client id: ' + memberID);
     }

     //var serverUrl = "http://dev.discollective.com/Services/addToMyStream.php";
     var serverUrl = "http://www.discollective.com/Services/addToMyStream.php";

     var serverParams = "linkID="+linkID+"&memID="+memberID;
     clientID = pClientID;
     serverUrl += "?" + serverParams;
     if (trace) {
          alert('serverUrl: '+serverUrl);
     }
     if (xmlHttp) {
          try {
               xmlHttp.open("GET", serverUrl, true);
          }
          catch(e) {
                alert("Error when trying to open connection:\najax.js::addToMyStream\n"+e.toString());
                return false;
          }
          try {
               xmlHttp.onreadystatechange = handleRequestStateChange;
          }
          catch(e) {
                alert("Error in trying to define request handler:\najax.js::addToMyStream\n"+e.toString());
                return false;
          }
          try {
               xmlHttp.send(null);
          }
          catch(e) {
                alert("Error in trying to send the request:\najax.js::addToMyStream\n"+e.toString());
                return false;
          }

     }
     else {
          alert("Error: xmlHttp was not defined:\najax.js::addToMyStream\n"+e.toString());
          return false;

     }

     return false;
}

function handleRequestStateChange() {

     if (xmlHttp.readyState == 4) {
          try {
               if(xmlHttp.status == 200) {
                    try {
                         var responseText = xmlHttp.responseText;
                         try {
                              var displayText;
                              if(responseText == true) displayText = "Successfully added";
                              else displayText = "Error! Please try again later";
                              var oLink = document.getElementById(clientID);
                              oLink.innerHTML = displayText;
                              //disable the onclick function so they cant resubmit
                              oLink.onclick = new Function("return false;" + oLink.onclick.toString().getFuncBody());
                              oLink.className = 'addedNonLink';
                              if (trace) {
                                   alert('ajax.js::handleRequestStateChange\nResponse from server: '+responseText);
                              }
                         }
                         catch(e) {
                              alert("Error in getting element by id: "+clientID+"\najax.js::handleRequestStateChange\n" + e.toString());
                              return false;
                         }
                    }
                    catch(e) {
                         alert("Error with the response:\najax.js::handleRequestStateChange\n" + e.toString());
                         return false;
                    }
               }
               else {
                    alert("There was an error reading the response:\najax.js::handleRequestStateChange\n"+xmlHttp.statusText);
                    return false;
               }
          }
          catch(e) {}

     }
}

function createXmlHttpRequestObject() {
     var xmlHttp;
     try {
          xmlHttp = new XMLHttpRequest();
     }
     catch(e) {
          //assume error was due to IE 6 or older
          var xmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0", "MSXML2.XMLHTTP.5.0",
                                          "MSXML2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0",
                                          "MSXML2.XMLHTTP", "Microsoft.XMLHTTP");

          for (var i=0; i<xmlHttpVersions.length && !xmlHttp; i++) {
               try {
                    xmlHttp = new ActiveXObject(xmlHttpVersions[i]);
               }
               catch(e) {}
          }
     }
     if (!xmlHttp) {
          alert("Your browser is incompatible with some of the functionality on this site.  Please update your browser get the most from this site");
          return false;
     }
     else return xmlHttp;
}

String.prototype.getFuncBody = function(){
  var str=this.toString();
  str=str.replace(/[^{]+{/,"");
  str=str.substring(0,str.length-1);
  str = str.replace(/\n/gi,"");
  if(!str.match(/\(.*\)/gi))str += ")";
  return str;
}
