/*
#
#  GreatWebScripts    http://www.GreatWebScripts.com
#
#  Copyright (c)2006, GreatWebScripts . All rights reserved.
#
#  No portion of this content may be copied, distributed or reproduced for any
#  reason without the express written consent of the owner. Federal copyright
#  law prohibits unauthorized reproduction by any means and imposes severe fines
#  for violation.
#

#
#  $RCSfile: gws_ajax_common.js,v $ $Revision: 1.1 $   $Date: 2008-02-23 10:32:46-05 $
#
*/

// Function Group: Common
//
// ajaxgwsc_initiateXML
// Initialize an XML conection
//
var browser = '';
function ajaxgwsc_InitializeXML (response)
{
  // Internet Explorer
  if (window.ActiveXObject)
  {
    browser = 'IE';

    var doc=new ActiveXObject ("Microsoft.XMLDOM");
    doc.async = "false";
    doc.loadXML (response);

    // Check for error processing
    if (doc.parseError.errorCode != 0)
    {
       document.write("Error code: " + doc.parseError.errorCode);
       document.write("<br />Error reason: " + doc.parseError.reason);
       document.write("<br />Error line: " + doc.parseError.line);

       document.write ("<br>" + response);
    } // end if (doc.parseError.errorCode > 0)
  }
  // Mozilla, Firefox, Opera, etc.
  else
  {
    browser = 'MZ';

    var parser=new DOMParser();
    var doc=parser.parseFromString(response,"text/xml");
  }

  return doc;
} // end ajaxgwsc_InitializeXML

//
// Function: ajaxgwsc_getInnerText
// Read Node Value
//
function ajaxgwsc_getInnerText (node)
{

  if (typeof node.text != 'undefined')
    return node.text;

  else if (typeof node.textContent != 'undefined')
    return node.textContent;

  else if (typeof node.innerText != 'undefined')
    return node.innerText;

  else
  {
    switch (node.nodeType)
    {
      case 3:
      case 4:
        return node.nodeValue;
        break;

      case 1:
      case 11:
        var innerText = '';
        for (var i = 0; i < node.childNodes.length; i++)
          innerText += ajaxgwsc_getInnerText(node.childNodes[i]);
        return innerText;
        break;

      default:
        return '';
    } // end switch (node.nodeType)
  } // end else
} // ajaxgwsc_getInnerText


//
// Determines if the user's browser is AJAX enabled
//
function BrowserAJAXEnabled ()
{
  var req = false;

  // IE
  if (window.ActiveXObject)
  {
    try
    {
      req = new ActiveXObject("Microsoft.XMLDOM");
    } // end try
    catch (e)
    {
      req = false;
    } // end catch
  } // end else if (window.ActiveXObject)


  // Safari, Firefox, and other non-MS browsers
  else
  {
    try
    {
      req = new DOMParser();
    } // end try
    catch (e)
    {
      req = false;
    } // end catch
  } // end else to: if (window.ActiveXObject)


  // Check whether it worked or no
  if (req === false) return false;
  else               return true;

} // end BrowserAJAXEnabled


//
// Cookie Processing
//
function setCookie (name,value,days)
{
 if (days)
 {
  var date = new Date();
  date.setTime(date.getTime()+(days*24*60*60*1000));
  var expires = "; expires="+date.toGMTString();
 }
 else var expires = "";

 document.cookie = name+"="+value+expires+"; path=/";
} // end setCookie

function readCookie(name)
{
 var nameEQ = name + "=";
 var ca = document.cookie.split(';');
 for(var i=0;i < ca.length;i++) {
  var c = ca[i];
  while (c.charAt(0)==' ') c = c.substring(1,c.length);
  if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
 }
 return null;
} // end readCookie

function eraseCookie (name)
{
 createCookie(name,"",-1);
} // end eraseCookie

function checkCookie ()
{
  // Set a 30-day cookie and try it read it back
  setCookie ('testCookie', 'xyzzy', 30);
  cookieTest = readCookie ('testCookie');

  // And return the result
  cookieTestreturn = (cookieTest == 'xyzzy');
  return cookieTestreturn;
} // end checkCookie


