var timeoutPeriod = 18.5;
var intervalCountdown;
var timeoutWarning;

function showWarning(){
    document.getElementById('divTimeOut').style.display = 'block';
    document.getElementById('divTimeOutI').style.display = 'block';
    intervalCountdown = setInterval(countDown,1000);
}

function countDown(){
    var divCountDown = document.getElementById('divCountDown');
    var intCount = parseInt(divCountDown.innerHTML) -1;

    if (intCount <= 10) {
        divCountDown.style.color = '#ff0000';
    }

    if (intCount >= 0) {
        divCountDown.innerHTML = intCount.toString();
    } else {
        window.location='index.asp';
    }
}

function refreshPage(){
    clearInterval(intervalCountdown);
    clearTimeout(timeoutWarning);

    timeoutWarning = setTimeout(showWarning,timeoutPeriod * 60000);

    var divCountDown = document.getElementById('divCountDown');
    divCountDown.style.color = '#000000';
    divCountDown.innerHTML = '60';

    var decRound = Math.round(Math.random()*1000);
    var imgRefresh = new Image(1,1);

    imgRefresh.src = 'images/spacer.gif?id=' + decRound.toString();
    document.getElementById('divTimeOut').style.display = 'none';
    document.getElementById('divTimeOutI').style.display = 'none';
    ajaxPost('converttime.asp','tf=f&tz=GMT+Standard+Time&tpl=showtime.htm&dummy='+decRound.toString(), 'divTimeOutX', 'html');
}

function setStyle(spanID, styleName) {
    var el = document.getElementById(spanID);
    if (el) {
        el.className=styleName;
    }
}

function setStyleItem(spanID, styleName, styleValue) {
    var el = document.getElementById(spanID);
    if (el) {
        eval('el.style.'+styleName+'=styleValue;');
    }
}

function setFocus(fldID) {
    var el = document.getElementById(fldID);
    if (el) {
        el.focus();
    }
}

function ckDefault(fld, defValue) {
    var elX=document.getElementById('DefX_'+fld.id);
    if (fld.value == defValue && !elX) {
        fld.value = '';
    }
}

var defaultFontSize='8px';
var defaultFontColor='#CC8888';
var normalFontSize='10px';
var normalFontColor='#333333';

function fldFocus(fld) {
    // removes a default value from a field (if present)
    ckDefault(fld, findDefault(fld));
    fld.style.fontsize='';
    fld.style.color='';
}

function findDefault(fld) {
    var el=document.getElementById('Def_'+fld.name);
    if (el) return el.value;
}

function fldBlur(fld) {
    // resets field to default value if nothing entered
    var defaultValue=findDefault(fld);

    fld.style.fontsize='';
    fld.style.color='';

    switch (fld.type) {
        case 'text':
            if (fld.value.length<1) {
                fld.value = defaultValue;
                fld.style.fontsize=defaultFontSize;
                fld.style.color=defaultFontColor;
            }
            break;

        case 'textarea':
            if (fld.value.length<1) {
                fld.value = defaultValue;
                fld.style.fontsize=defaultFontSize;
                fld.style.color=defaultFontColor;
            }
            break;

        case 'select-one':
            if (fld.value==defaultValue || fld.value.length<1) {
                fld.style.fontsize=defaultFontSize;
                fld.style.color=defaultFontColor;
            }
            break;

        default:
            // alert('Fld '+fld.name+'\nType='+fld.type+'\nValue='+fld.value);
    }

}

function initDefaults(formName) {
    // initializes default values for fields on page load
    var el;
    var nFlds=-1;
    var formObj = eval('document.'+formName);
    for (var i=0; i<formObj.length; i++) {
        el = document.getElementById('Def_'+formObj[i].name);
        if (el) {
            if (formObj[i].value.length == 0 || formObj[i].value==el.value) {
                formObj[i].value=el.value;
                formObj[i].style.fontsize=defaultFontSize;
                formObj[i].style.color=defaultFontColor;
            }
        }
    }
}

function clearDefaults() {
    // removes default values for fields on form submit
    var defaultText='';
    var defaultName='';
    var elX;
    var el;
    for (var i=0; i<document.editForm.length; i++) {
        if (document.editForm[i]) {
            fld = document.editForm[i];
            el=document.getElementById('Def_'+fld.name);
            elX=document.getElementById('DefX_'+fld.name);
            if (el) {
                if (fld.value==el.value && !elX) {
                    fld.value='';
                }
            }
        }
    }
}

function clearFormDefaults(formName) {
    // removes default values for fields on form submit
    var defaultText='';
    var defaultName='';
    var el;
    var frm = eval('document.'+formName);
    for (var i=0; i<frm.length; i++) {
        if (frm[i]) {
            fld = frm[i];
            el=document.getElementById('Def_'+fld.name);
            if (el) {
                if (fld.value==el.value) {
                    fld.value='';
                }
            }
        }
    }
}

function setCheckbox(fldID, curVal) {
    var el = document.getElementById(fldID);
    if (curVal==el.value) {
        el.checked = true;
    } else {
        el.checked = false;
    }
}

function setSelect(fldID, defValue) {
    var el = document.getElementById(fldID);
    if (el) {
        el.value = defValue;
    }
}

function setImgSrc(fldID, imgSrc) {
    var el = document.getElementById(fldID);
    if (el) {
        el.src = imgSrc;
    }
}

function setRadio(el, defValue) {
    if (el) {
        for (var t=0; t<el.length; t++){
            if (el[t].value==defValue) {
                el[t].checked = true;
                return;
            }
        }
    }
}

function setVal(fldID, newVal) {
    var el = document.getElementById(fldID);
    if (el) {
        el.value=newVal;
        fldBlur(el);
    }
}
function setHTML(fldID, newVal) {
    var el = document.getElementById(fldID);
    if (el) { el.innerHTML=newVal; }
}

function makeVisible(fldID) {
    var el = document.getElementById(fldID);
    if (el) el.style.display='';
}

function makeHidden(fldID) {
    var el = document.getElementById(fldID);
    if (el) el.style.display='none';
}

function makeDisabled(fldID) {
    var el = document.getElementById(fldID);
    if (el) el.disabled=true;
}

function makeEnabled(fldID) {
    var el = document.getElementById(fldID);
    if (el) el.disabled=false;
}

function insertAtCursor(fldID, txtValue) {
    var el = document.getElementById(fldID);
    if (!el) return;

    if (document.selection) {
        // IE
        el.focus();
        sel = document.selection.createRange();
        sel.text = txtValue;
    } else if (el.selectionStart || el.selectionStart == '0') {
        // mozilla
        var startPos = el.selectionStart;
        var endPos = el.selectionEnd;
        el.value = el.value.substring(0, startPos)+txtValue+el.value.substring(endPos, el.value.length);
    } else {
        el.value += txtValue;
    }
}

function insertValue(fldID, pToken) {
    var el = document.getElementById(fldID);
    if (!el) return;
    fldFocus(el,findDefault(el));
    insertAtCursor(fldID, pToken);
}

function pauseScript(milliS) {
    var date = new Date();
    var curDate = null;

    do {
        curDate = new Date();
    } while(curDate-date < milliS);
}

function ttsetCookie(name, value, domain, secure, expires) {
  var curCookie = name + "=" + value +
      "; path=/" +
      ((domain) ? "; domain=" + domain : "") +
      "; " +
      ((expires) ? "expires=" + expires +";" : "") +
      secure;
  document.cookie = curCookie;
}

function ttdeleteCookie(name, path, domain) {
  if (ttgetCookie(name)) {
    document.cookie = name + "=" +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    "; expires=Thu, 01-Jan-70 00:00:01 GMT";
  }
}

function ttgetCookie(name) {
  var dc = document.cookie;
  var prefix = name + "=";
  var begin = dc.indexOf("; " + prefix);
  if (begin == -1) {
    begin = dc.indexOf(prefix);
    if (begin != 0) return null;
  } else
    begin += 2;
  var end = document.cookie.indexOf(";", begin);
  if (end == -1)
    end = dc.length;
  return unescape(dc.substring(begin + prefix.length, end));
}

function readParm(pName) {
   var pArray = new Array();
   var reqParm;

   // split the query string into param=val pieces
   var qSplit = location.search.substr(location.search.indexOf("?")+1);
   qSplit = qSplit.split("&");

   // split param and value into individual pieces
   for (var i=0; i<qSplit.length; i++) {
      tmp = qSplit[i].split("=");
      pArray[tmp[0]] = tmp[1];
   }

    // set a variable for doc writes...
   if (typeof pArray[pName] != "undefined") {
        reqParm = pArray[pName];
   } else {
        reqParm = '';
   }
   return reqParm;
}

function ajaxPost(strURL, strParms, targetId, targetType) {
    var xmlHttpReq = false;
    var response = '';
    // Mozilla/Safari
    if (window.XMLHttpRequest) {
        xmlHttpReq = new XMLHttpRequest();
    }
    // IE
    else if (window.ActiveXObject) {
        xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlHttpReq.open('POST', strURL, true);
    xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlHttpReq.onreadystatechange = function() {
        if (xmlHttpReq.readyState == 4) {
            response = xmlHttpReq.responseText;
            response=checkScript(response);
            switch (targetType) {
                case 'html':
                    setHTML(targetId, response);
                    break;
                case 'val':
                    setVal(targetId, response);
                    break;
                case 'fn':
                    eval(targetId+'(response);');
                    break;
                case 'var':
                    eval(targetId+'="'+response+'";');
                    break;
                default:
                    return response;
            }
        }
    }
 		var cacheCtrl = new Date();

		strParms+='&nochache='+cacheCtrl.toString();
    xmlHttpReq.send(strParms);
}

function checkScript(sRtn) {
    var nS = sRtn.indexOf('<script');
    var nE = sRtn.indexOf('</script');
    if (nS>=0 && nE>=0) {
        var sScript=sRtn.substring(nS+8,nE);
        sRtn=sRtn.substring(0,nS)+sRtn.substring(nE+9);
        var el=document.getElementById('testblock');
        // if (el) el.innerHTML=sScript;
        eval(sScript);
    }
    return sRtn;
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function nop() {}

function displayInWindow(url, width, height, winID) {
    var Win = window.open(url,winID,'width=' + width + ',height=' + height + ',resizable=1,scrollbars=yes,menubar=no,status=no' );
}

function displayWindow(url, width, height) {
    var decRound = Math.round(Math.random()*1000);
		var winID = 'win' + decRound.toString();
    displayInWindow(url, width, height, winID);
}

function showMeterStat(oBar, sMet) {
    var el=document.getElementById('meterDiv0');
    el.style.display='none';
    el=document.getElementById('meterDiv'+sMet);
    el.style.display='';
    oBar.style.border='1px solid black';
}

function hideMeterStat(oBar, sMet) {
    var el=document.getElementById('meterDiv'+sMet);
    el.style.display='none';
    el=document.getElementById('meterDiv0');
    el.style.display='';
    oBar.style.border='';
}


// ----------------------------------------------------------------
var monthArray=new Array("January","February","March","April","May","June","July","August","September","October","November","December")
var trackedDate = new Date();
var trackedDateStyle='long';

function padLength(what){
    var output=(what.toString().length==1)? "0"+what : what
    return output
}

function displayTimeInSpan(targetSpanId){
    var spanPtr = document.getElementById(targetSpanId);
    var timeString = '';
    var AmPm = '';
    trackedDate = new Date(spanPtr.innerHTML);

    trackedDate.setSeconds(trackedDate.getSeconds()+1)
    switch (trackedDateStyle) {
        case 'long':
          var dateString=monthArray[trackedDate.getMonth()]+" "+padLength(trackedDate.getDate())+", "+trackedDate.getFullYear();
          if (trackedDate.getHours()==0) {
            timeString='12:';
            AmPm = ' AM';
          }
          if (trackedDate.getHours()>0 && trackedDate.getHours()<13) {
            timeString=trackedDate.getHours()+':';
            if (trackedDate.getHours()==12) {
              AmPm = ' PM';
            } else {
              AmPm = ' AM';
            }
          }
          if (trackedDate.getHours()>12) {
            timeString=trackedDate.getHours()-12 +':';
            AmPm = ' PM';
          }
          break;
        case 'med':
          var dateString=(trackedDate.getMonth()+1)+"/"+(trackedDate.getDate())+"/"+trackedDate.getFullYear();
          if (trackedDate.getHours()==0) {
            timeString='12:';
            AmPm = ' AM';
          }
          if (trackedDate.getHours()>0 && trackedDate.getHours()<13) {
            timeString=trackedDate.getHours()+':';
            if (trackedDate.getHours()==12) {
              AmPm = ' PM';
            } else {
              AmPm = ' AM';
            }
          }
          if (trackedDate.getHours()>12) {
            timeString=trackedDate.getHours()-12 +':';
            AmPm = ' PM';
          }
          break;
        default:
          var dateString=padLength(trackedDate.getMonth()+1)+"/"+padLength(trackedDate.getDate())+"/"+trackedDate.getFullYear();
          timeString=padLength(trackedDate.getHours())+":";
    }
    timeString+=padLength(trackedDate.getMinutes())+":"+padLength(trackedDate.getSeconds())+AmPm;
    document.getElementById(targetSpanId).innerHTML=dateString+" "+timeString
}
// to update time continuously, include the following in
// calling script:
//      window.onload=function(){
//           setInterval("displayTimeInSpan('TimeDispSpan')", 1000)
//      }
// where TimeDispSpan is span/div where time should be placed.
// 1000 is milliseconds between updates
//
// To control starting time, set trackedDate to a server time/date
// string value in the following format:
//    trackedDate= new Date('December 15, 2009 16:20:28');
//
// Default display format is long date, mil time as shown above.
// Short date can be selected by setting following value:
//    trackedDateStyle='short';
// This will cause the following format:  12/15/2009 16:20:28

function echeck(str) {
    var at="@"
    var dot="."
    var lat=str.indexOf(at)
    var lstr=str.length
    var ldot=str.indexOf(dot)
    if (str.indexOf(at)==-1){
       return false
    }

    if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
       return false
    }

    if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
        return false
    }

    if (str.indexOf(at,(lat+1))!=-1){
       return false
    }

    if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
       return false
    }

    if (str.indexOf(dot,(lat+2))==-1){
       return false
    }

    if (str.indexOf(" ")!=-1){
       return false
    }

    return true
}


