
function ValidateCharacter(strText, intMode)
{
	var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; 
	var chkOK = "1234567890-";
	var checkStr = strText.value;

	if (intMode == 1)
	{
		for (i = 0;  i < checkStr.length;  i++)
		{
			ch = checkStr.charAt(i);
			for (j = 0;  j < checkOK.length;  j++)
				if (ch == checkOK.charAt(j))
					break;
			if (j == checkOK.length)
			{
				return false;
			}
		}
	}
	if (intMode == 2)
	{
		for (i = 0;  i < checkStr.length;  i++)
		{
			ch = checkStr.charAt(i);
			for (j = 0;  j < chkOK.length;  j++)
			{
				if (ch == chkOK.charAt(j))
				{
					break;
				}
			}
			if (j == chkOK.length)
			{
				return false
			}
		}
	}
	return true;
}

function GetDateWeekMonthDay()
{
    var week = new Array(7);
    var month = new Array(12);
    var d = new Date();

    week[0] = "Sunday";
    week[1] = "Monday";
    week[2] = "Tuesday";
    week[3] = "Wednesday";
    week[4] = "Thursday";
    week[5] = "Friday";
    week[6] = "Saturday";

    month[0] = "January";
    month[0]="January";
    month[1]="February";
    month[2]="March";
    month[3]="April";
    month[4]="May";
    month[5]="June";
    month[6]="July";
    month[7]="August";
    month[8]="September";
    month[9]="October";
    month[10]="November";
    month[11]="December";

    today = week[d.getDay()] + ", " + month[d.getMonth()] + " " + d.getDate();
    return today;
}
function TrimStr(str)
{
    return str.replace(/^\s+|\s+$/g,"");
}

function getHTTPRequestObject()
{   
    try{
            xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
       }    
    catch(e)
    {
        try{
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
        catch(E)
        {
            xmlhttp = false;
        }
    }
    if (!xmlhttp && typeof XMLHttpRequest != 'undefined')
    {
        xmlhttp = new XMLHttpRequest();
    }
}
function runFunction(objFn)
{
    
    if (xmlhttp.readyState == 4)
    {
        if (xmlhttp.status == 200)
        {
            try 
            {
                XMLDoc = new ActiveXObject("Microsoft.XMLDOM");
                XMLDoc.async = "false";
                XMLDoc.loadXML(xmlhttp.responseText);
            }
            catch(e)
            {
                try //Firefox, Mozilla, Opera, etc.
                {
                    parser = new DOMParser();
                    XMLDoc = parser.parseFromString(xmlhttp.responseText, "text/xml");
                }
                catch(e)
                {
                    alert(e.message);
                    return;
                }
            }
            objFn();
       }
       else {waiting = false;}
    }
    else {}
} 
String.prototype.trim = function () {
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
}
function Trim(s) 
{
    // Remove leading spaces and carriage returns
    while ((s.substring(0,1) == ' ') || (s.substring(0,1) == '\n') || (s.substring(0,1) == '\r'))
    { 
        s = s.substring(1,s.length); 
    }

    // Remove trailing spaces and carriage returns
    while ((s.substring(s.length-1,s.length) == ' ') || (s.substring(s.length-1,s.length) == '\n') || (s.substring(s.length-1,s.length) == '\r'))
    { 
        s = s.substring(0,s.length-1); 
    }

    return s;
}
function checkBoolean(obj)
{
    if (obj == "false")
        return false;
    else    
        return true;
}      
//    function sortList(listID)
//    {
//        arrTexts = new Array();
//        for(i=0; i<listID.length; i++)  
//        {
//          arrTexts[i] = listID.options[i].text + ':' + listID.options[i].value;
//        }
//        
//        arrTexts.sort();

//        for(i=0; i<listID.length; i++)  
//        {
//            el = arrTexts[i].split(':');
//            listID.options[i].text = el[0];
//            listID.options[i].value = el[1];
//        }            
//   }
var pleaseWaitLoading = false;
function pleaseWait(div)
{
    if(!div)
    {
        return;
    }
    div = typeof div === "string" ? document.getElementById(div) : div;
    loadingText = "";
    loadingText += "<div style=\"height: 100%; width: 100%; float: left;\">";
    loadingText += "<table style=\"height: 100%; width: 100%; float: left;\" >";
    loadingText += "<tr><td align=\"center\" valign=\"top\" style=\"height: 100%; width: 100%;\">";
    loadingText += "<img src=\"images/please_wait.gif\" style=\"float: none;\"/></td>";
    loadingText += "</tr></table></div>";
/*    
    div.style.position = "relative";
    div.style.cssFloat = "left";
    div.style.height = "100%";
    div.style.width = "100%";
*/    
    pleaseWaitLoading = true;
    pwCurDiv = div;
    div.innerHTML = "";
    window.setTimeout("if(pleaseWaitLoading){pwCurDiv.innerHTML = loadingText;}", delayTimer);
    return;
}

var waiting = false;
var funcQueue = new Array();
var funcLoop = false;
function checkWait(functionToRun)
{
    if(!functionToRun)
    {
        return;
    }
    funcQueue.push(functionToRun);
    if(!funcLoop)
    {
        funcLoop = true;
        callNextFunc(); 
    }
    return;
}
function callNextFunc()
{
    if (!waiting)
    {
        if(funcQueue.length > 0)
        {
            waiting = true;
            //(funcQueue.shift())();
            func = funcQueue.shift();
            //try {
                func();
                if (!waiting)
                { callNextFunc(); }
                else
                { window.setTimeout("callNextFunc()", 1); }
                //}
            //catch(Error){ waiting = false; }
        }
        else
        {
            funcLoop = false;
            return;
        }
    }
    else 
    {window.setTimeout("callNextFunc()", 1);}
}

var descr="";
var maxChar = 125;
function getlong(text, textfield, maxChar)
{
    text = unescape(text);
    if(text.length < maxChar)
    { return; }
    text = text.replace(/\n/g,',');
    text = text.replace(/\s/g,' ').replace(/  ,/g,','); 
    document.getElementById(textfield).innerHTML = text + "<span style=\"cursor: pointer;\" onclick=\"getshort('"+escape(text)+"','"+textfield+"', "+maxChar+")\"> << </span>";
    usersize();
}

function getshort(text, textfield, maxChar)
{
    text = unescape(text);
    if(text.length < maxChar)
    { return; }
    text = text.replace(/\n/g,'<br/>');
    text = text.replace(/\s/g,' ').replace(/  ,/g,'<br/>'); 
    
    temp = sliceString(text, maxChar);
    document.getElementById(textfield).innerHTML = temp+"<span style=\"cursor: pointer;\" onclick=\"getlong('"+escape(text)+"','"+textfield+"', "+maxChar+")\"> >> </span>";
    usersize();
}

function sliceString(temp, maxChar)
{
    tmaxChar = maxChar - 1;
    if (temp.length >= tmaxChar)
    {
        for (tmaxChar; tmaxChar > 0; tmaxChar--)
        {
            if((temp.charAt(tmaxChar) == "%") || (temp.charAt(tmaxChar) == " "))
            {
                if(temp.charAt(tmaxChar) == "%")
                {
                    if( (temp.charAt(tmaxChar+1) != "2") || (temp.charAt(tmaxChar+2) != "5") || (temp.charAt(tmaxChar+3) != "2") || (temp.charAt(tmaxChar+4) != "0"))
                    { tmaxChar--; }
                    else
                    { return temp.slice(0,tmaxChar); }
                }
                else
                { return temp.slice(0,tmaxChar); }
            }
            else
            { tmaxChar--; }
        }
        return temp.slice(0,maxChar - 1);
    }
    else
    {
        return temp;
    }
}
function chop(text, chars)
{
    if (text.length > chars)
    { return sliceString(text, chars) + "..."; }
    return text;
}
function mysqlTimeStampToDate(timestamp) {
    if( (timestamp == null) || (timestamp == "") )
    { return ""; }
    var strYear = timestamp.substring(0,4);
    var strMonth = timestamp.substring(5,7);
    var strDay = timestamp.substring(8,10);
    var strDate = new Date(strMonth + "/" + strDay + "/" + strYear);
    return (strDate.getMonth()+1) + "/" + strDate.getDate() + "/" + (strDate.getFullYear()+'').substring(2,4);
}
function getParsedElement(source, child)
{
    try
    {
        var childNode = source.getElementsByTagName(child);
        return childNode[0].firstChild.nodeValue;
    }
    catch (e)
    {
        return "";
    }
}        

function getPage()
{
  var sPath = window.location.pathname;
  //var sPage = sPath.substring(sPath.lastIndexOf('\\') + 1);
  var sPage = sPath.substring(sPath.lastIndexOf('/') + 1);
  return(sPage);
}
function newnumber(rand){
  return(Math.floor(Math.random()*rand));
}
function HtmlEncode(s)
{
  var el = document.createElement("div");
  el.innerText = el.textContent = s;
  s = el.innerHTML;
  delete el;
  return s;
}
function checkLength(elemID, maxLength)
{
    txtbox = document.getElementById(elemID);
        if(txtbox.value.length > maxLength)
        {
            txtbox.value = txtbox.value.substring(0, maxLength);
            //alert("You have reached the character limit for this field");
        }
}
		function numericOnly(evt) {
			var charCode = (evt.which) ? evt.which : evt.keyCode;
			if ((charCode > 31) && ((charCode < 48) || (charCode > 57)))
			{
				return false;
			}
			else
			{
				return true;
			}
		}

function getScrollTop()
{
    var scrolledY;
    if( self.pageYOffset )
    { scrolledY = self.pageYOffset; }
    else if( document.documentElement && document.documentElement.scrollTop ) 
    { scrolledY = document.documentElement.scrollTop; }
    else if( document.body )
    { scrolledY = document.body.scrollTop; } 
    return scrolledY;
}
function getScrollLeft()
{
    var scrolledX;
    if( self.pageXOffset ) 
    { scrolledX = self.pageXOffset; }
    else if( document.documentElement && document.documentElement.scrollTop ) 
    { scrolledX = document.documentElement.scrollLeft; }
    else if( document.body ) 
    { scrolledX = document.body.scrollLeft; } 
    return scrolledX;
}
function setInnerHTML(strID, strValue)
{ document.getElementById(strID).innerHTML = strValue; }
function getInnerHTML(strID)
{ return document.getElementById(strID).innerHTML; }

var xmlhttp = false;    
var XMLDoc;
getHTTPRequestObject();
function AJAXCall(strAJAXFuncName, FuncToCall, variables)
{
    xmlhttp.open("POST", "http://" + location.host + "/IWPWebService.asmx/" + strAJAXFuncName, true);
    xmlhttp.onreadystatechange = function () {runFunction(FuncToCall)};
    xmlhttp.setRequestHeader ("Content-Type", "application/x-www-form-urlencoded");
    xmlhttp.send(variables);
}
function logMessage(variables, priority) 
{
    if (priority > 5) 
    {
        checkWait(function() {
            //try{
            waiting = true;
            var logMesgTemp = variables;
            xmlhttp.open("POST", "http://" + location.host + "/IWPWebService.asmx/logMessage", true);
            xmlhttp.onreadystatechange = function() { runFunction(function() { waiting = false; }) };
            xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
            xmlhttp.send("msg=" + logMesgTemp);
            //alert(logMesgTemp);
            //}
            //catch(err) {}
        });
    }
}
function logMessage(variables)
{
    //logMessage(variables, 3);
}
//add item to a dropdown / list box
//takes box id, text, value
function AddItem(listBox, Text, Value) {
    var opt = document.createElement("option");

    document.getElementById(listBox).options.add(opt);
    opt.text = Text;
    opt.value = Value;
}
function hide(elem)
{ document.getElementById(elem).style.display = "none"; }
function show(elem)
{ document.getElementById(elem).style.display = "block"; }

function disableAll(div) {
    if (!div) { return; }
    div = typeof div === "string" ? document.getElementById(div) : div;
    var elms = div.getElementsByTagName("*");
    for (var i = 0, maxI = elms.length; i < maxI; ++i) {
        var elem = elms[i];
        switch (elem.type) {
            case "text":
            case "textarea":
            case "button":
            case "reset":
            case "submit":
            case "file":
            case "hidden":
            case "password":
            case "image":
            case "radio":
            case "checkbox":
            case "select-one":
            case "select-multiple":
            default:
                elem.disabled = true;
                break;
        }
    }
}
function enableAll(div) {
    if (!div) { return; }
    div = typeof div === "string" ? document.getElementById(div) : div;
    var elms = div.getElementsByTagName("*");
    for (var i = 0, maxI = elms.length; i < maxI; ++i) {
        var elem = elms[i];
        switch (elem.type) {
            case "text":
            case "textarea":
            case "button":
            case "reset":
            case "submit":
            case "file":
            case "hidden":
            case "password":
            case "image":
            case "radio":
            case "checkbox":
            case "select-one":
            case "select-multiple":
            default:
                elem.disabled = false;
                break;
        }
    }
}
function clear(elemID) {
    var elem = document.getElementById(elemID);
    switch (elem.type) {
        case "text":
        case "textarea":
        case "password":
            elem.value = "";
            break;
        case "radio":
        case "checkbox":
            elem.checked = false;
        case "select-one":
        case "select-multiple":
            var numberOfOptions = elem.options.length;
            for (i = 0; i < numberOfOptions; i++)
            { elem.remove(0); }
            break;
        case "div":
        case "span":
            elem.innerHTML = "";
            break;
    }
}
function GetLeft(ele) {
    if (ele.offsetParent)
        return ele.offsetLeft + GetLeft(ele.offsetParent);
    else
        return ele.offsetLeft;
}

function GetTop(ele) {
    if (ele.offsetParent)
        return (ele.offsetTop + GetTop(ele.offsetParent));
    else
        return (ele.offsetTop);
}
function getmouseleft(e) {
    if (!e) var e = window.event;
    var pos_x = 0;
    if (e.pageX || e.pageY) {
        pos_x = e.pageX;
    }
    else if (e.clientX || e.clientY) {
        pos_x = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
    }
    return pos_x - 10;
}
function getmousetop(e) {
    if (!e) var e = window.event;
    var pos_y = 0;
    if (!e) var e = window.event;
    if (e.pageY) {
        pos_y = e.pageY;
    }
    else if (e.clientY) {
        pos_y = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
    }
    return pos_y - 10;
}
