function imgswap(img,ref){
  if (document.images) {
        document.images[img].src = ref;
  }
}

function changeStyle(nodeObj, newStyle) {
  var attrMax = nodeObj.attributes.length
  for (var j=0; j<attrMax; j++) {
    if (nodeObj.attributes.item(j).nodeName == 'class') {
      nodeObj.attributes.item(j).nodeValue = newStyle;
    }
  }
}

function translateBadChars(myString) {
// myString     : string to check for bad chars (i.e. MS-Word special characters)
// RETURN VALUE : updated string

  myString = myString.replace(/’/g,"'");
  myString = myString.replace(/‘/g,"'");
  myString = myString.replace(/“/g,'"');
  myString = myString.replace(/”/g,'"');
  myString = myString.replace(/…/g,"...");
  myString = myString.replace(/–/g,"-");
  myString = myString.replace(/—/g,"-");
  myString = myString.replace(/Œ/g,"Oe");
  myString = myString.replace(/œ/g,"oe");

  return myString;
}

function getPostData(myForm) {
// myForm       : form from which POST data will be extracted
// RETURN VALUE : URL encoded string of POST data

  var postData = '';
  for (e=0; e<myForm.elements.length; e++) {
    if (myForm.elements[e].name != '') {
      if (((myForm.elements[e].type.toLowerCase() == "radio") || (myForm.elements[e].type.toLowerCase() == "checkbox")) && (!myForm.elements[e].checked)) {
        continue;
      }
      postData += (postData == '') ? '' : '&';
      // plus signs would have been interpreted as space characters, as JavaScript's escape() function doesn't encode it, so we encode it ourselves
      postData += escape(myForm.elements[e].name).replace(/\+/g,"%2B") + '=' + escape(translateBadChars(myForm.elements[e].value)).replace(/\+/g,"%2B");
    }
  }
  return postData;
}

function createXMLHttpRequest() {
   try { return new XMLHttpRequest(); } catch(e) {}
   try { return new ActiveXObject("MSXML2.XMLHTTP.5.0"); } catch (e) {}
   try { return new ActiveXObject("MSXML2.XMLHTTP.4.0"); } catch (e) {}
   try { return new ActiveXObject("MSXML2.XMLHTTP.3.0"); } catch (e) {}
   try { return new ActiveXObject("MSXML2.XMLHTTP"); } catch (e) {}
   try { return new ActiveXObject("MICROSOFT.XMLHTTP.1.0"); } catch (e) {}
   try { return new ActiveXObject("MICROSOFT.XMLHTTP.1"); } catch (e) {}
   try { return new ActiveXObject("MICROSOFT.XMLHTTP"); } catch (e) {}
   return null;
}

function sendRequestAsynch(myPostData, mySection) {
// myPostData   : URL encoded string of POST data to send to server
// mySection    : keyword determining which part of the database we are updating
// RETURN VALUE : response from server, or error message

  var serverScript = "";
  if      (mySection == 'admin_users')                { serverScript = 'users_update.php'; }
  else if (mySection == 'admin_companies')            { serverScript = 'companies_update.php'; }
  else if (mySection == 'admin_events')               { serverScript = 'events_update.php'; }
  else if (mySection == 'admin_programs')             { serverScript = 'programs_update.php'; }
  else if (mySection == 'admin_employment')           { serverScript = 'employment_update.php'; }
  else    { return "Error: Section not specified."; }

  var xmlhttp = createXMLHttpRequest();
  if (xmlhttp == null) {
    return "Error: XMLHttpRequest is not supported by your browser.";
  }

  if (window.ActiveXObject) { // IE
    xmlhttp.onreadystatechange = function() {
      if (xmlhttp.readyState == 4) {
        if (xmlhttp.status == 200) {
          validateFormResponse(xmlhttp.responseText);
        } else {
          validateFormResponse("Error: Incorrect server response (" + xmlhttp.status + " - " + xmlhttp.statusText + ").");
        }
      }
    }
  } else { // Mozilla
    xmlhttp.addEventListener("load", function() {
      if (xmlhttp.status == 200) {
        validateFormResponse(xmlhttp.responseText);
      } else {
        validateFormResponse("Error: Incorrect server response (" + xmlhttp.status + " - " + xmlhttp.statusText + ").");
      }
    }, false);
  }

  xmlhttp.open('POST', serverScript, true);

  xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  xmlhttp.setRequestHeader('Connection', 'close'); // without this header, the connection hangs every now and then, at least in IE 6
  try {
    xmlhttp.send(myPostData);
  } catch(e) {
    return "Error: Data not sent to server due to a connection problem.";
  }

  return "OK";
}



/***********************************************
* Bookmark site script- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
***********************************************/

/* Modified to support Opera */
function bookmarksite(title,url){
    if (window.sidebar) // firefox
	    window.sidebar.addPanel(title, url, "");
    else if(window.opera && window.print){ // opera
	    var elem = document.createElement('a');
	    elem.setAttribute('href',url);
	    elem.setAttribute('title',title);
	    elem.setAttribute('rel','sidebar');
	    elem.click();
    } 
    else if(document.all)// ie
	    window.external.AddFavorite(url, title);
}

