// JSLibrary.js

// variables and constants for the confirm message.
jsOK = 1;
jsCANCEL = 2;
jsYES = 4;
jsNO = 8;
jsRETRY = 16;
jsOKCANCEL = 3;
jsYESNO = 12;
jsYESNOCANCEL = 14;
jsRETRYCANCEL = 18;

//constants for checkChange function
jsTEXT = 1;
jsCHECKBOX = 2;
jsRADIO = 3;
jsHIDDEN = 4;

// bag of invalid characters for manufacturer name
var invalidCharsForSearch = "\\!@#$%^&*()_+=-{}[]:;\'?/>.<,|~`\" ";

// whitespace characters
var whitespace = " \t\n\r";

//=================================================================================================
function isEmpty(s) {
	return ((s == null) || (s.length == 0))
}
//=================================================================================================
function isWhitespace (s) {
	var i;
    if (isEmpty(s)) return true;
    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if (whitespace.indexOf(c) == -1) return false;
    }
    return true;
}
//=================================================================================================
function isDigit (c) {
	return ((c >= "0") && (c <= "9"));
}
//=================================================================================================
function findCharsInBag (s, bag) {
	var i;
    for (i = 0; i < s.length; i++) {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) != -1) return true;
    }
    return false;
}
//=================================================================================================
function stripCharsInBag (s, bag)
{   var i;
    var returnString = "";
    for (i = 0; i < s.length; i++) {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}
//=================================================================================================
function stripInitialWhitespace (s)

{   var i = 0;
    while ((i < s.length) && findCharsInBag (s.charAt(i), whitespace))
       i++;

	return s.substring (i, s.length);
}
//=================================================================================================
function stripTailWhitespace (s)

{   var i = s.length-1;
   
    while ((i > 0) && findCharsInBag (s.charAt(i), whitespace))
       i--;
   
	return s.substring (0, i + 1);
}
//=================================================================================================
function trimWhitespace (s)

{   var returnNewString = "";
	
	returnNewString = stripInitialWhitespace(s);
	returnNewString = stripTailWhitespace(returnNewString);
      
	return returnNewString;
}
//=================================================================================================
function isInteger (s) {
	var i;
	s = stripInitialWhitespace(s);

	if (isEmpty(s)) { 
       return true; 
	} else {
		for (i = 0; i < s.length; i++) {   
			var c = s.charAt(i);
	        if (!isDigit(c)) return false;
		} // end for
    }

	return true;
}
//=================================================================================================
function checkChange(varField, varType) {
	var fieldChanged = false;
	if (varType == "text")	{ 
		varType = 1;
	} else if (varType == "checkbox"){
		varType = 2;
	} else if (varType == "radio") {
		varType = 3;
	} else if (varType == "Hidden"){
		varType = 4; 
	}

	switch (varType) {
	case 1:								// jsTEXT
		if (varField.value != varField.defaultValue) {
			fieldChanged = true;
		}
		break;
	case 2:								// jsCHECKBOX
		if (varField.checked != varField.defaultChecked) {
			fieldChanged = true;
		}
		break;
	case 3:								// jsRADIO
		if (varField.checked || (varField.checked==false)) {
			if (varField.checked != varField.defaultChecked) {
				fieldChanged = true;
			}
		} else {
			for (x=0;x<varField.length;x++) {
				radToCheck = varField[x]
				if (radToCheck.checked != radToCheck.defaultChecked) {
					fieldChanged = true;
				}
			}
		}
		break;
	case 4:                              //jsHIDDEN
		fieldChanged = false;
		break;
	} // end switch
	return fieldChanged;
} // end function
//=================================================================================================
function showConfirm(varTitle, varMessage, varButtons) {
	var retvalue;
	var isNetscape = (navigator.appName == "Netscape");
	if (!isNetscape)
	{
		varTitle = escape(varTitle);
		varMessage = escape(varMessage);
        winHeight = 8 + Math.ceil((varMessage.length-100)/50);

		retvalue = window.showModalDialog("popprompt.jsp?TITLE="+ varTitle + "&MESSAGE=" + varMessage + "&BUTTONS=" + varButtons,"", "dialogHeight="+winHeight+";dialogWidth=30;center=1;status=0;resizable=0;help=0");
	} else {
		retvalue = window.confirm(varMessage+"\nOk=Yes Cancel=No");
		if (retvalue)
		{
			retvalue = jsYES;
		} else {
			retvalue = jsNO;
		}
	}
	return retvalue;
}
//=================================================================================================
function stripDirectory(varPath, varDirectory) {

    var returnValue = "";
    if ((varPath.indexOf("/" + varDirectory + "/") >= 0) && (varPath.indexOf("https://") < 0)) {
		
        dirArray = varPath.split("/");
        for (i=0;i<dirArray.length;i++) {
            if (dirArray[i].indexOf(varDirectory) < 0 && dirArray[i].length != 0) {
	            returnValue += "/" + dirArray[i];
            }
        }
    } else {
        returnValue = varPath;
    }

    return returnValue;
} // end function
//=================================================================================================

