function xmlClass()
  {
  function Loader(url, func)
    {
    var xmlDoc
    var http_request = false
    var _ms_XMLHttpRequest_ActiveX=""

    http_request = false

    if (window.XMLHttpRequest)
            { // Mozilla, Safari,...
      http_request = new XMLHttpRequest()
      if (http_request.overrideMimeType)
                    {
        http_request.overrideMimeType('text/xml')
        }
      }
    else if (window.ActiveXObject)
            { // IE
      var versions = ["Msxml2.XMLHTTP.7.0", "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 < versions.length ; i++)
                    {
        try
                          {
          // try to create the object
          // if it doesn't work, we'll try again
          // if it does work, we'll save a reference to the proper one to speed up future instantiations
          http_request = new ActiveXObject(versions[i])

          if (http_request)
                                  {
            _ms_XMLHttpRequest_ActiveX = versions[i]
            break
            }
          }
        catch (objException) {   }   // trap; try next one
        }
      }

      if (!http_request)
                  {
        alert('Giving up :( Cannot create an XMLHTTP instance')
        return false
        }
      else

      http_request.onreadystatechange = function()
        {
        if (http_request.readyState == 4)
                            {
          if (http_request.status == 200)
                                    {
                                    if (window.ActiveXObject)
                                      {
                                      xmlDoc = new ActiveXObject('Microsoft.XMLDOM')
                                      xmlDoc.async = false
              xmlDoc.loadXML(http_request.responseText)
              }
            else
              {
              var parser = new DOMParser()
              xmlDoc = parser.parseFromString(http_request.responseText, 'text/xml')
              }
                                                xmlDoc = xmlDoc.getElementsByTagName('item')
            if (func)
              func(xmlDoc)
            }
                          else
                                  {
            alert('There was a problem with the request.'+ http_request.status)
            }
          }
        }

      http_request.open('GET', url, true)
      http_request.send(null)
    }
    
  this.xmlLoad = function(fn, F)
           {
                  Loader(fn, F)

                }
  } //xmlClass

//--------------------------------------------
function itemsClass()
  {
  itemsArr = []
  displayDiv = ''

  this.itemsLoad = function(items)
    {
    itemsArr = items
    }

  this.setDisplayDiv = function(divName)
    {
    displayDiv = divName
    }

  this.itemsLength = function()
    {
    return itemsArr.length
    }

  this.itemsGetNumber = function(itemNo)
    {
    return parseInt(itemsArr[itemNo].childNodes[0].firstChild.data)
    }

  this.itemsGetTitle = function(itemNo)
    {
    return (itemsArr[itemNo].childNodes[1].firstChild.data).trim()
    }

  this.itemsGetSummery = function(itemNo)
    {
    return (itemsArr[itemNo].childNodes[2].firstChild.data).trim()
    }

  this.itemsGetMainPageLink = function(itemNo)
    {
    return (itemsArr[itemNo].childNodes[3].firstChild.data).trim()
    }

  this.itemsGetExternalLinkYN = function(itemNo)
    {
    return (itemsArr[itemNo].childNodes[4].firstChild.data).trim()
    }

  this.itemsGetFileLink = function(itemNo)
    {
    return (itemsArr[itemNo].childNodes[5].firstChild.data).trim()
    }

  this.itemsGetImage = function(itemNo)
    {
    return (itemsArr[itemNo].childNodes[6].firstChild.data).trim()
    }

  this.itemsGetMainPageImgAlign = function(itemNo)
    {
    return (itemsArr[itemNo].childNodes[7].firstChild.data).trim()
    }

  this.itemsGetText = function(itemNo)
    {
    return (itemsArr[itemNo].childNodes[8].firstChild.data).trim()
    }

  this.itemsDelIndex = function(index_no)
    {
    var boxs = xTagName('div' , 'itemBox')
    //alert(boxs.length)
    boxs[index_no].style.border = "2px solid red"
    if(confirm('Are you sure you want to delete this item?'))
      {
      var counter = 0
      var tempItemsArr = []
      for(var x=0;x<itemsArr.length;x++)
        if(index_no != x)
          tempItemsArr[counter++] = itemsArr[x]
      itemsArr = tempItemsArr
      }
    else
      boxs[index_no].style.border = "1px solid black"
    }//END arrDelIndex

  this.itemsDisplay = function()
    {
    var tempStr  = ""
    if(this.itemsLength() > 0)
      {
      for(var g=0;g<itemsArr.length;g++)
        {
        //alert(g)
        var tempTitle =  ( this.itemsGetTitle(g) ).toLowerCase().trim()
        //alert('+' + tempTitle + '+')
        if( (tempTitle != 'announcements') && (tempTitle != 'daily bible verse') && (tempTitle != 'church newsletter') && (tempTitle != 'send a coded message')  && (tempTitle != 'decode a message') )
          {
          var extLink = ''
          tempStr += '<div id="announc" name=\"itemBox\" class=\"data\" subId=' + g + '><h4>' + this.itemsGetTitle(g).replace(/\^/g, "'") +  '</h4>'
          tempStr += '<img src=\"../../announc_doc/' + this.itemsGetImage(g) + '\"  height="75" align="' + this.itemsGetMainPageImgAlign(g) + '" hspace="7" vspace="4" border="0" >'
          tempStr += '<p>'+this.itemsGetSummery(g)
          if (this.itemsGetExternalLinkYN(g) == 'true')
              extLink = 'announce.asp?num='+g
          else 
             extLink = 'announc_doc/'+this.itemsGetFileLink(g)
          tempStr += '&nbsp;[<a  href="../../'+extLink+'">'+this.itemsGetMainPageLink(g)+']</a></p>'
          tempStr += '<div><a href=\"javascript:void(0);\" onclick=\"items.itemsDelIndex(' + g + ');saveDisplay();\">Delete</a>&nbsp;|&nbsp;'
          tempStr += '<a href=\"javascript:void(0);\" onclick=\"editItem(' + g + ');\">Edit</a></div>&nbsp;'
          tempStr += '</div>'
          }
        else
          {
          tempStr += '<div style=\"height:310px;\" name=\"itemBox\" class=\"data\" style=\"text-align:center;\" subId=' + g + '><h2>' + this.itemsGetTitle(g).replace(/\^/g, "'") +  '</h2>'
          var tempImg = ''
          if (tempTitle == 'announcements')
            tempImg =  'ANNOUNCEMENTS.JPG'
          else if (tempTitle == 'daily bible verse')
            tempImg = 'DBV.JPG'
          else if (tempTitle == 'send a coded message')
            tempImg =  'ENCODE.JPG'
          else if (tempTitle == 'decode a message')
            tempImg = 'DECODE.JPG'
          else if (tempTitle == 'church newsletter')
            tempImg = 'NL.JPG'

          tempStr += '<img align="center" src=\"media/images/' + tempImg + '\"  >'
          tempStr += '</div>'
          }
        }
      }
    else
      tempStr = 'No items to be displayed!'

    if(displayDiv != '') //error forgot to pass div name in inistialization
      xid(displayDiv).innerHTML = tempStr
    else
      alert('Error: cannot find main div name!')
    }//END itemsDisplay


      this.itemsMainPageDisplay = function()
    {
    var tempStr  = ""
    if(this.itemsLength() > 0)
      {
      for(var g=0;g<itemsArr.length;g++)
        {
        //alert(g)
        var tempTitle =  ( this.itemsGetTitle(g) ).toLowerCase().trim()
        //alert('+' + tempTitle + '+')
        if( (tempTitle != 'announcements') && (tempTitle != 'daily bible verse') && (tempTitle != 'church newsletter') && (tempTitle != 'send a coded message')  && (tempTitle != 'decode a message') )
          {
          var extLink = ''
          tempStr += '<div style="display:block;min-height:130px;" name=\"itemBox\" class=\"data\" subId=' + g + '><h4>' + this.itemsGetTitle(g).replace(/\^/g, "'") +  '<\/h4>'
          tempStr += '<p><img src=\"announc_doc/' + this.itemsGetImage(g) + '\"  height="75" align="' + this.itemsGetMainPageImgAlign(g) + '" hspace="7" vspace="4" border="0" \/>'
          tempStr += this.itemsGetSummery(g)
          if (this.itemsGetExternalLinkYN(g) == 'true')
              extLink = 'announce.asp?num='+g
          else 
             extLink = 'announc_doc/'+this.itemsGetFileLink(g)
          tempStr += '&nbsp;[<a  href="'+extLink+'">'+this.itemsGetMainPageLink(g)+'<\/a>]<\/p></div>'
          }
        }
      }
    else
      tempStr = 'No items to be displayed!'

    if(displayDiv != '') //error forgot to pass div name in inistialization
      xid(displayDiv).innerHTML = tempStr
    else
      alert('Error: cannot find main div name!')
    }//END itemsDisplay



  this.itemsAdd = function()
    {
    if(window.ActiveXObject)
      var temp_node = new ActiveXObject("Microsoft.XMLDOM")
    else
      var temp_node = document.implementation.createDocument("","",null)

    var item       = temp_node.createElement("item")

    var num        = temp_node.createElement("number")
    item.appendChild(num)
    var numberVal  = temp_node.createCDATASection(itemsArr.length)
    num.appendChild(numberVal)

    var tit        = temp_node.createElement("title")
    item.appendChild(tit)
    var titleVal   = temp_node.createCDATASection('Title for New item')
    tit.appendChild(titleVal)

    var sum        = temp_node.createElement("summery")
    item.appendChild(sum)
    var summeryVal = temp_node.createCDATASection('This is a summery for New item')
    sum.appendChild(summeryVal)

    var mpl        = temp_node.createElement("mainPageLink")
    item.appendChild(mpl)
    var mplVal     = temp_node.createCDATASection('Read More')
    mpl.appendChild(mplVal)

    var elyn       = temp_node.createElement("externalLinkYN")
    item.appendChild(elyn)
    var elynVal    = temp_node.createCDATASection('true')
    elyn.appendChild(elynVal)

    var fl         = temp_node.createElement("fileLink")
    item.appendChild(fl)
    var flVal      = temp_node.createCDATASection('')
    fl.appendChild(flVal)

    var img        = temp_node.createElement("image")
    item.appendChild(img)
    var imageVal   = temp_node.createCDATASection('file_icon.png')
    img.appendChild(imageVal)

    var mpia       = temp_node.createElement("mainPageImgAlign")
    item.appendChild(mpia)
    var mpiaVal    = temp_node.createCDATASection('left')
    mpia.appendChild(mpiaVal)

    var txt        = temp_node.createElement("text")
    item.appendChild(txt)
    var textVal    = temp_node.createCDATASection('This is the text for New item')
    txt.appendChild(textVal)

    var tempArr = []
    for(var x=0;x<itemsArr.length;x++)
      tempArr[x] = itemsArr[x]

    tempArr[x] = item
    //alert(tempArr[tempArr.length -1].childNodes[1].nodeValue)
    itemsArr = tempArr
    }//END addItem

  this.itemsAddFixed = function(itemName)
    {
    var exist = false
    for (var x=0;x<itemsArr.length;x++)
      if (itemName.toLowerCase() == (itemsArr[x].childNodes[1].firstChild.data).toLowerCase())
        exist = true
    if (!exist)
      {
      this.itemsAdd()
      itemsArr[itemsArr.length-1].childNodes[1].firstChild.data  = itemName
      }
    else
      alert('"' + itemName + '"' + " Already exists!")
    }


  this.itemsOrder = function(newOrder)
    {
    var tempArr = []
    for(var x=0;x<newOrder.length;x++)
      tempArr[eval(parseInt(newOrder[x].value) - 1)] = itemsArr[x]
    itemsArr = tempArr
    }//END itemsOrder

  this.itemsUpdate = function(itemNo, strAll)
    {
    for(var i=0; i<9;i++)
      {
      var x = strAll[i]

      if ((x != null) && (x.length > 0))
        {    //alert(itemNo)
        itemsArr[itemNo].childNodes[i].firstChild.data =  (x).trim()
        }
      }
    }//END updateItem

  this.itemsSave = function(itemNo, fileName)
    { //alert('itemsSave: length: '+this.itemsLength())
    var startIndex = 0
    var endIndex   = this.itemsLength()

    // -1 for all
    if (itemNo > -1)
      {    //alert(fileName)
      startIndex   = parseInt(itemNo)
      endIndex     = startIndex + 1
      }

    if( endIndex > 0)
      {
      var tempStr = ''
      var tempArr = [] 
      tempArr.push("<?xml version=\"1.0\" encoding=\"utf-8\" ?>")
      tempArr.push("<items>")

      for(var x=startIndex;x<endIndex;x++)
        {
        tempArr.push("<item>")
        tempArr.push(  "<number><![CDATA["+x+"]]></number>")
        tempArr.push(  "<title><![CDATA["+this.itemsGetTitle(x)+"]]></title>")
        tempArr.push(  "<summery><![CDATA["+this.itemsGetSummery(x)+"]]></summery>")
        tempArr.push(  "<mainPageLink><![CDATA["+this.itemsGetMainPageLink(x)+"]]></mainPageLink>")
        tempArr.push(  "<externalLinkYN><![CDATA["+this.itemsGetExternalLinkYN(x)+"]]></externalLinkYN>")
        tempArr.push(  "<fileLink><![CDATA["+this.itemsGetFileLink(x)+"]]></fileLink>")
        tempArr.push(  "<image><![CDATA["+this.itemsGetImage(x)+"]]></image>")
        tempArr.push(  "<mainPageImgAlign><![CDATA["+this.itemsGetMainPageImgAlign(x)+"]]></mainPageImgAlign>")
        tempArr.push(  "<text><![CDATA["+this.itemsGetText(x)+"]]></text>")
        tempArr.push("</item>")
        }

      tempArr.push("</items>")
      }
    else
      tempStr = ''

    //tempStr = tempStr.replace(/\s/g, '+')
    //tempStr = tempStr.replace(/\n/g, '')
    tempStr = endIndex > 0 ? encodeURIComponent(tempArr.join(''))   : 'dd'

    var http = new XMLHttpRequest()
    var urlStr =  "saveXML.asp"
    var params = "urlStr="+fileName+"&xmlStr="+tempStr
    http.open("POST", urlStr, true)
    http.setRequestHeader("Content-type" , "application/x-www-form-urlencoded")
    http.setRequestHeader("Content-length" , params.length)
    http.setRequestHeader("connection", "close")

    http.onreadystatechange = function()
      {
      if (http.readyState == 4 && http.status == 200)
        alert(http.responseText)
      }

    http.send(params)
    }//END itemsSave
  }//END  itemsClass

//-----------------------------------------
//msic
  function xid(item)
          {
    return document.getElementById(item)
    }

  function xTagName(tagName, filterName)
          {
    var T = document.getElementsByTagName(tagName)

    var TT =[]
    var x=0

    for(var r=0;r<T.length;r++)
      {
      //alert(T[r].getAttribute('name'))
      if(T[r].getAttribute('name') === filterName)
        TT[x++] = T[r]
      }
      //alert(TT.length)
    return TT
    }

  function _qs(s)
    {
    s = s.replace( /\r/g, '\\r' )
    s = s.replace( /\n/g, '\\n' )
    s = s.replace( /\"/g, '\\"' )
    return '"' + s + '"'
    }


    String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}
String.prototype.ltrim = function() {
	return this.replace(/^\s+/,"");
}
String.prototype.rtrim = function() {
	return this.replace(/\s+$/,"");
}
    /*
  function L_Trim(str1)
    {
    return str1.replace(/^\\s+/,'')
    }
  function R_Trim(str2)
    {
    return str2.replace(/\\s+$/,'')
    }
  function Trim(str3)
    {
    return R_Trim(L_Trim(str3))
    }
   */
