/*******************************************************************************************
Copyright (C) 2007  Derek Jones derek@derekjulie.com

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
*******************************************************************************************/
/********************************************
HTTP Request Handlers
********************************************/
var request1 = createRequest();
var request2 = createRequest();
var request3 = createRequest();
var request4 = createRequest();
var request5 = createRequest();
var request6 = createRequest();
var request7 = createRequest();
var request8 = createRequest();

function createRequest() {
  var request = null;
  try {
    request = new XMLHttpRequest();
  } catch (trymicrosoft) {
    try {
      request = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (othermicrosoft) {
      try {
        request = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (failed) {
        request = null;
      }
    }
  }
  if (request == null) {
    alert("Error creating request object!");
  } else {
    return request;
  }
}

/********************************************
Text tools
********************************************/
function replaceText(el, text) {
  if (el != null) {
    clearText(el);
    var newNode = document.createTextNode(text);
    el.appendChild(newNode);
  }
}

function clearText(el) {
  if (el != null) {
    if (el.childNodes) {
      for (var i = 0; i < el.childNodes.length; i++) {
        var childNode = el.childNodes[i];
        el.removeChild(childNode);
      }
    }
  }
}

function getText(el) {
  var text = "";
  if (el != null) {
    if (el.childNodes) {
      for (var i = 0; i < el.childNodes.length; i++) {
        var childNode = el.childNodes[i];
        if (childNode.nodeValue != null) {
          text = text + childNode.nodeValue;
        }
      }
    }
  }
  return text;
}

function stripslashes(str) {
str=str.replace(/\\'/g,'\'');
str=str.replace(/\\"/g,'"');
str=str.replace(/\\\\/g,'\\');
str=str.replace(/\\0/g,'\0');
return str;
}

function get_node(my_node){
	var elDoc = document.getElementById(my_node).lastChild;
	if(elDoc != null && elDoc != undefined){
		return elDoc.nodeValue;
	}
}
	

function my_replace(label,newText){
	var oldText= document.getElementById(label);
	replaceText(oldText,newText);
}

function hideProgress() {
    document.getElementById("indicator").style.visibility = "hidden";
	document.getElementById("prog_text").style.visibility = "hidden";
}
           
function dispProgress() {
	document.getElementById("indicator").style.visibility = "visible";
    document.getElementById("prog_text").style.visibility = "visible";
}

function errCheck(request){
	var newText = request.responseText;
	var loc = newText.search(/xml version/);
	if(loc != 2){
		alert(stripslashes("ERROR: " + newText));
	}
}

/**************************************************************************/
var numb = '0123456789';
var lwr = 'abcdefghijklmnopqrstuvwxyz';
var upr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';

function isValid(parm,val) {
	if (parm == "") return true;
		for (i=0; i<parm.length; i++) {
			if (val.indexOf(parm.charAt(i),0) == -1) return false;
		}
	return true;
}

function isNum(parm) {return isValid(parm,numb + '.');}
function isLower(parm) {return isValid(parm,lwr);}
function isUpper(parm) {return isValid(parm,upr);}
function isAlpha(parm) {return isValid(parm,lwr+upr);}
function isAlphanum(parm) {return isValid(parm,lwr+upr+numb);}
