﻿var pleaseWaitTimer; 
var pingTimer;

function addEvent(obj, evType, fn) {
    if (obj.addEventListener) {
        obj.addEventListener(evType, fn, false);
        return true;
    } else if (obj.attachEvent) {
        var r = obj.attachEvent("on" + evType, fn);
        return r;
    } else {
        return false;
    }
}

function clearlistbox(lb) {
    for (var i = lb.options.length - 1; i >= 0; i--) {
        lb.options[i].checked = false;
    }
    lb.selectedIndex = -1;
}
 

function getScrollOffsetHeight() {
    if (self.pageYOffset) {
        return self.pageYOffset;
    } else if (document.documentElement && document.documentElement.scrollTop) {
        return document.documentElement.scrollTop;
    } else if (document.body) {
        return document.body.scrollTop;
    }
}

function getScrollOffsetWidth() {
    if (self.pageYOffset) {
        return self.pageXOffset;
    } else if (document.documentElement && document.documentElement.scrollTop) {
        return document.documentElement.scrollLeft;
    } else if (document.body) {
        return document.body.scrollLeft;
    }
}

function getViewportHeight() {
    if (window.innerHeight != window.undefined) return window.innerHeight;
    if (document.compatMode == 'CSS1Compat') return document.documentElement.clientHeight;
    if (document.body) return document.body.clientHeight;
    return window.undefined;
}

function getViewportWidth() {
    //alert(document.documentElement.clientWidth);
    if (window.innerWidth != window.undefined) return window.innerWidth;
    if (document.compatMode == 'CSS1Compat') return document.documentElement.clientWidth;
    if (document.body) return document.body.clientWidth;
    return window.undefined;
}

function setPingServer(timeout) {
	var url = unescape(document.location).toLowerCase(); 
	if (url.indexOf('leadlist.aspx') >= 0) {
		pingTimer = setInterval('callServer(\'/Common/CheckForNewLeads.aspx\');', timeout);
	} else {
		pingTimer = setInterval('callServer(\'/Common/PingServer.aspx\');', timeout);
	}
}

function setPingServers(timeout) {
	pingTimer = setInterval('callServer(\'/Common/PingServer.aspx\'); callServer(\'/Common/PingServer.asp\');', timeout);
}

function numbersOnly(myfield, e, dec) {
	var key;
	var keychar;

	if (window.event)
	   key = window.event.keyCode;
	else if (e)
	   key = e.which;
	else
	   return true;
	   
	keychar = String.fromCharCode(key);

	// control keys
	if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27) )
	   return true;
	// numbers
	else if ((("0123456789").indexOf(keychar) > -1))
	   return true;
	// decimal point jump
	else if (dec && (keychar == ".")) {
	   myfield.form.elements[dec].focus();
	   return false;
	} else
	   return false;
}


function allowOnlyNumeric() { 
    return ((event.keyCode >= 48) && (event.keyCode <= 57)) || (event.keyCode = 13); 
}

function allowOnlyDate(e) {
	try {
		var keycode = e.keyCode ? e.keyCode : e.which;
		var ctrl = e.ctrlKey ? e.ctrlKey : ((e.modifiers == 2) ? (e.modifiers == 2) : false);
		if (! ctrl) {
			switch(keycode) {
				case 36: case 35: case 37: case 39: case 46: case 8: case 48: case 49: case 50: case 51: case 52: case 53: case 54: case 55: case 56: case 57: case 189: case 191: case 9:  case 17:
				case 96: case 97: case 98: case 99: case 100: case 101: case 102: case 103: case 104: case 105: case 111:
					return true;
					break;
				default:
					e.cancelBubble = true;
					e.returnValue = false;
					return false;
					break;
			}
		}
	} catch(e) { }
}

function formatDate(myDate) 
{ 
   var today = new Date(); 
   if (myDate.value.length > 0) 
   { 
      today.setTime(Date.parse(myDate.value)); 
      if (isNaN(today)) 
      { 
         //myDate.value = ""; 
         myDate.value = '';
         alert("Date must be formatted \"mm/dd/yyyy\""); 
         myDate.focus(); 
      } 
   } 
}

function killClocks() {
	clearTimeout(pleaseWaitTimer);
	clearInterval(pingTimer);
}
	
window.onunload=killClocks;

function popUpHelp(pageUrl) {
	window.open("/Common/Help/Help.aspx?page=" + pageUrl, "_blank", "height=600,width=800,scrollbars=no,resizable=no,toolbars=no,status=no,menubar=no,location=no")
}

function confirmDelete(message) {
	if (confirm(message)) {
		 return true 
	} else { 
		return false
	}	
}

function flipImage(elemId) {
	var elem = document.getElementById(elemId);
	if (elem.src.indexOf('/common/images/minimize.gif') >= 0) { 
		elem.src = '/common/images/maximize.gif'; 
		elem.alt = 'Expand Section';
		return false;
	} else { 
		elem.src = '/common/images/minimize.gif';
		elem.alt = 'Collapse Section';
		return true;
	}
}

function flipImageSearch(elemId) {
    var elem = document.getElementById(elemId);
    if (elem.src.indexOf('/common/images/minimize.gif') >= 0) {
        elem.src = '/common/images/maximize.gif';
        elem.alt = 'Expand Search';
        return false;
    } else {
        elem.src = '/common/images/minimize.gif';
        elem.alt = 'Collapse Search';
        return true;
    }
}


function focusFirstTextbox(frmElName) { 
	var boxes = document.getElementById(frmElName).getElementsByTagName( 'input' ); 
	var el, i = 0
	while (el = boxes[i++]) {
		if (el.type == 'text') {
			putFocus(el.id);
			break;
		}
	}
} 

//checks all check boxes on a form
function checkUncheckAll(oCheckbox) { 
	var boxes = document.Form1.getElementsByTagName( 'input' ); 
	var el, i = 0, bWhich = oCheckbox.checked; 
	while (el = boxes[i++]) {
		if (el.type == 'checkbox') el.checked = bWhich; 
	}
}

function checkUncheckAllLike(oCheckbox, NameLike) {
	var boxes; 
	if (document.getElementById('Form1')) {
		boxes = document.getElementById('Form1').getElementsByTagName('input');  
	} else {
		boxes = document.getElementById('aspnetForm').getElementsByTagName('input');  
	}
     var el, i = 0, bWhich = oCheckbox.checked;  
     while (el = boxes[i++]) { 
          if (el.type == 'checkbox' && el.id.indexOf(NameLike) == 0) el.checked = bWhich;  
     } 
}  

//puts the focus on the specified element
function putFocus(elementId) {
	//IE bug, doesn't work without timeout
	setTimeout('try { document.getElementById(\'' + elementId + '\').focus(); document.getElementById(\'' + elementId + '\').select(); } catch (e) {  }',20); 
}

//on one-textbox forms, actually presses the button instead of just submitting the form when enter is pressed
function pressButtonOnEnter(event, buttonName) {
	try {
		if (event.keyCode == 13) {
			event.cancelBubble = true;
			event.returnValue = false;
			document.getElementById(buttonName).click()
		}
	} catch (e) {
		//do nothing but catch the error
	}
}

function executeOnEnter(event, script) {
	try {
		if (event.keyCode == 13) {
			eval(script);
			event.cancelBubble = true;
			event.returnValue = false;
		}
	} catch (e) {
		//do nothing but catch the error
	}
}

function callServer(remoteScript) {
	try {
		var head = document.getElementsByTagName('head').item(0);
		var old  = document.getElementById('lastLoadedCmds');
		if (old) head.removeChild(old);
		script = document.createElement('script');
		script.src = remoteScript;
		script.type = 'text/javascript';
		script.defer = true;
		script.id = 'lastLoadedCmds';
		void(head.appendChild(script));
		return true;
	} catch (e) {
		//suppress
	}
	return true;
}

function showHide(elementId) {
	try {
		var elem = document.getElementById(elementId);
		if (elem.style.display == 'inline')
			elem.style.display = 'none';
		else
			elem.style.display = 'inline';
	} catch (e) {
		//suppress
	}
}

function setGrayScale(elementId) {
	try {
		var elem = document.getElementById(elementId);
		elem.className = 'grayscale';
	} catch (e) {
		//suppress
	}
}

function hideAll(tagName) {
	var tags = document.getElementsByTagName(tagName);
	for (var i = 0; i < tags.length; i++) {
	   tags[i].style.visibility = 'hidden';
	}
}

function showAll(tagName) {
	var tags = document.getElementsByTagName(tagName);
	for (var i = 0; i < tags.length; i++) {
	   tags[i].style.visibility = 'visible';
	}
}

function centerBB(bb){

   var objLeft = (document.body.clientWidth - this.IFrame.offsetWidth) / 2;
   var objTop = (document.body.clientHeight - this.IFrame.offsetHeight) / 2;
   objLeft = objLeft + document.body.scrollLeft;
   objTop = objTop + document.body.scrollTop;
   
   // Position object
   this.IFrame.style.position = "absolute";
   this.IFrame.style.top = objTop;
   this.IFrame.style.left = objLeft;
}

function Left(str, n) {
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}
function Right(str, n) {
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}

