
if (typeof(km_scripts) == 'undefined') var km_scripts = new Object();

function inc(jsFile) {
if (km_scripts[jsFile] != null) return;
var scriptElt = document.createElement('script');
scriptElt.type = 'text/javascript';
scriptElt.src = jsFile;
document.getElementsByTagName('head')[0].appendChild(scriptElt);
km_scripts[jsFile] = jsFile; // or whatever value your prefer
}

inc('./overlibmws/overlibmws.js');
inc('./overlibmws/overlibmws_iframe.js');
inc('./overlibmws/overlibmws_exclusive.js');
inc('./overlibmws/overlibmws_draggable.js');
inc('./overlibmws/iframecontentmws.js');
inc('./overlibmws/overlibmws_filter.js');
inc('./overlibmws/overlibmws_shadow.js');
inc('./overlibmws/overlibmws_print.js');


function showShade(){

	document.getElementById('myStyle').style.display = 'block';
	
	resizeShade();

	//If tthis is an IE6 browser we need to hide select boxes.
	try {document.getElementById('ddlPage').style.visibility='hidden'} catch(e) {}
	try {document.getElementById('ddlOnPage').style.visibility='hidden'} catch(e) {}
	
}

function hideShade(){
	document.getElementById('myStyle').style.display = 'none'; 
	//If tthis is an IE6 browser we need to re-show select boxes.
	try {document.getElementById('ddlPage').style.visibility='visible'} catch(e) {}
	try {document.getElementById('ddlOnPage').style.visibility='visible'} catch(e) {}
}

function resizeShade(){
	var pageWidth = f_documentWidth();//f_clientWidth();
	var pageHeight = f_documentHeight();//f_clientHeight();
		
	document.getElementById('myStyle').style.height = pageHeight;
	document.getElementById('myStyle').style.width = pageWidth;
}

function closePopup(){
	hideShade();
	cClick();
}

function openPopup(lead){
	
	showShade();
	
	var header = '<table cellpadding=0 cellspacing=0 width=100% style="FONT-FAMILY: verdana; FONT-SIZE: 7pt; COLOR: #FFFFFF"><tr><td align=left>&nbsp;&nbsp;<b>Lead Detail</b></td><td align=right><font id="hdrClose" style="CURSOR: pointer;" onclick="closePopup();"><u>Close</u></font>&nbsp;&nbsp;</td></tr></table>'
	
	return overlib(lead, CAPTION, header, FGCOLOR, '#445E79', CGBACKGROUND, './images/LeadDetail_Header.gif', PRINT, PRINTTEXT, '', BORDER, 0, SHADOW, SHADOWOPACITY, 40, SHADOWCOLOR, '#FFFFFF', -NOFOLLOW, STICKY, EXCLUSIVE, DRAGCAP, DRAGGABLE, MIDX, 0, MIDY, 0, CLOSETEXT, '');
}

function openGenericPopup(html,headertext){
	
	showShade();
	
	var header = '<table cellpadding=0 cellspacing=0 width=100% style="FONT-FAMILY: verdana; FONT-SIZE: 7pt; COLOR: #FFFFFF"><tr><td align=left>&nbsp;&nbsp;<b>' + headertext + '</b></td><td align=right><font id="hdrClose" style="CURSOR: pointer;" onclick="closePopup();"><u>Close</u></font>&nbsp;&nbsp;</td></tr></table>'
	
	return overlib(html, CAPTION, header, FGCOLOR, '#445E79', CGBACKGROUND, './images/LeadDetail_Header.gif', PRINT, PRINTTEXT, '', BORDER, 0, SHADOW, SHADOWOPACITY, 40, SHADOWCOLOR, '#FFFFFF', -NOFOLLOW, STICKY, EXCLUSIVE, DRAGCAP, DRAGGABLE, MIDX, 0, MIDY, 0, CLOSETEXT, '');
}


function openInfo(lead){
	
	var header = '<table cellpadding=0 cellspacing=0 width=100% style="FONT-FAMILY: verdana; FONT-SIZE: 7pt; COLOR: #FFFFFF"><tr><td align=left>&nbsp;&nbsp;<b>Cities</b></td><td align=right><font id="hdrClose" style="CURSOR: pointer;" onclick="closePopup();"><u>Close</u></font>&nbsp;&nbsp;</td></tr></table>'
	
	return overlib(lead, CAPTION, header, FGCOLOR, '#445E79', CGBACKGROUND, './images/Half_Header.gif', PRINT, PRINTTEXT, '', BORDER, 0, SHADOW, SHADOWOPACITY, 40, SHADOWCOLOR, '#FFFFFF', -NOFOLLOW, STICKY, EXCLUSIVE, DRAGCAP, DRAGGABLE, CENTER, CLOSETEXT, '', WIDTH, 200);
}

function openIFramePopup(iframe, headerText, sWidth, sHeight){
	
	showShade();
	
	var header = '<table cellpadding=0 cellspacing=0 width=100% style="FONT-FAMILY: verdana; FONT-SIZE: 7pt; COLOR: #FFFFFF"><tr><td align=left>&nbsp;&nbsp;' + headerText + '</td><td align=right><font id="hdrClose" style="CURSOR: pointer;" onclick="closePopup();"><u>Close</u></font>&nbsp;&nbsp;</td></tr></table>'
	
	return overlib(iframe, CAPTION, header, FGCOLOR, '#445E79', CGBACKGROUND, './images/Half_Header.gif', PRINT, PRINTTEXT, '', BORDER, 0, SHADOW, SHADOWOPACITY, 40, SHADOWCOLOR, '#FFFFFF', -NOFOLLOW, STICKY, EXCLUSIVE, DRAGCAP, DRAGGABLE, CENTER, CLOSETEXT, '', WIDTH, sWidth, HEIGHT, sHeight);
}

function openIFramePopup_TOP(iframe, headerText, sWidth, sHeight){
	
	showShade();
	
	var header = '<table cellpadding=0 cellspacing=0 width=100% style="FONT-FAMILY: verdana; FONT-SIZE: 7pt; COLOR: #FFFFFF"><tr><td align=left>&nbsp;&nbsp;' + headerText + '</td><td align=right><font id="hdrClose" style="CURSOR: pointer;" onclick="closePopup();"><u>Close</u></font>&nbsp;&nbsp;</td></tr></table>'
	
	return overlib(iframe, CAPTION, header, FGCOLOR, '#445E79', CGBACKGROUND, './images/Half_Header.gif', PRINT, PRINTTEXT, '', BORDER, 0, SHADOW, SHADOWOPACITY, 40, SHADOWCOLOR, '#FFFFFF', -NOFOLLOW, STICKY, EXCLUSIVE, DRAGCAP, DRAGGABLE, CENTER, CLOSETEXT, '', WIDTH, sWidth, HEIGHT, sHeight, RELY, 10);
}

function openIFramePopup_BOTTOM_LEFT(iframe, headerText, sWidth, sHeight){
	
	showShade();
	
	var header = '<table cellpadding=0 cellspacing=0 width=100% style="FONT-FAMILY: verdana; FONT-SIZE: 7pt; COLOR: #FFFFFF"><tr><td align=left>&nbsp;&nbsp;' + headerText + '</td><td align=right><font id="hdrClose" style="CURSOR: pointer;" onclick="closePopup();"><u>Close</u></font>&nbsp;&nbsp;</td></tr></table>'
	
	return overlib(iframe, CAPTION, header, FGCOLOR, '#445E79', CGBACKGROUND, './images/Half_Header.gif', PRINT, PRINTTEXT, '', BORDER, 0, SHADOW, SHADOWOPACITY, 40, SHADOWCOLOR, '#FFFFFF', -NOFOLLOW, STICKY, EXCLUSIVE, DRAGCAP, DRAGGABLE, LEFT, CLOSETEXT, '', WIDTH, sWidth, HEIGHT, sHeight);
}

function pleaseWait(){
	
	showShade();
	
	var content = '<table cellpadding=0 cellspacing=0 width=251 height=141 bgcolor="#FFFFFF" style="BACKGROUND-IMAGE: url(./images/wait.gif);"><tr><td height=35></td></tr><tr><td valign=center align=right style="FONT-FAMILY: verdana; FONT-SIZE: 10pt; COLOR: #000000" width=140><b>Please Wait</b>&nbsp;</td><td align=left><img border=0 src="./images/loading.gif"></td></tr></table>'
	
	return overlib(content, CAPTION, '', FGCOLOR, '#D9D9D9', CGBACKGROUND, '', BORDER, 0, -NOFOLLOW, STICKY, EXCLUSIVE, DRAGCAP, DRAGGABLE, MIDX, 0, MIDY, 0, CLOSETEXT, '', HEIGHT, 141, WIDTH, 251);
	
}

function ShowHideAcctOptions()
{

	if (document.getElementById('rblAcctType_0').checked == true)
		{
		tblIncrementOptions.style.display= 'none';
		}
	if (document.getElementById('rblAcctType_1').checked == true)
		{
		tblIncrementOptions.style.display= 'Block';
		}
	
}

function switchText(object, baseText, eventName)
{
	if (eventName == "blur")
	{
		if (object.value == "")
		{
			object.value = baseText;
		}
	}
	else
	{
		if (object.value == baseText)
		{
			object.value = "";
		}
	}
}

//BEGINING OF PAGE HEIGHT / WIDTH FUNCTIONS
function f_clientWidth() {
	return f_filterResults (
		window.innerWidth ? window.innerWidth : 0,
		document.documentElement ? document.documentElement.clientWidth : 0,
		document.body ? document.body.clientWidth : 0
	);
}
function f_clientHeight() {
	return f_filterResults (
		window.innerHeight ? window.innerHeight : 0,
		document.documentElement ? document.documentElement.clientHeight : 0,
		document.body ? document.body.clientHeight : 0
	);
}
function f_scrollLeft() {
	return f_filterResults (
		window.pageXOffset ? window.pageXOffset : 0,
		document.documentElement ? document.documentElement.scrollLeft : 0,
		document.body ? document.body.scrollLeft : 0
	);
}
function f_scrollTop() {
	return f_filterResults (
		window.pageYOffset ? window.pageYOffset : 0,
		document.documentElement ? document.documentElement.scrollTop : 0,
		document.body ? document.body.scrollTop : 0
	);
}
function f_filterResults(n_win, n_docel, n_body) {
	var n_result = n_win ? n_win : 0;
	if (n_docel && (!n_result || (n_result > n_docel)))
		n_result = n_docel;
	return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
}
function f_documentWidth() {
	if (document.body.scrollWidth) {
		return document.body.scrollWidth;
	}
	else {
		var w = document.documentElement.offsetWidth;
		if (window.scrollMaxX) {
			w += window.scrollMaxX;
		}
		return w;
	}
}
function f_documentHeight() {
	if (document.body.scrollHeight) {
		return document.body.scrollHeight;	
	}
	else {
		return document.documentElement.offsetHeight;
	}
}
//END OF PAGE HEIGHT / WIDTH FUNCTIONS

//START OF TABLE SORTING FUNCTIONS
function getSortedRowsByColumnFromTable(myTable,iColumnIndex){
	var t = myTable;
		
	//If the table doesn't have any areas then just return doing nothing.
	if (t.rows.length <= 1) return;

	sortfn = tr_sort_caseinsensitive;
	
	var newRows = new Array();
	for (k=0;k<t.tBodies.length;k++) {
		for (j=0;j<t.tBodies[k].rows.length;j++) { 
			newRows[j] = t.tBodies[k].rows[j];
		}
	}
	
	//Sort naturally first (ASC)
	SORT_COLUMN_INDEX = iColumnIndex; //Declared without the var makes it a global variable.
	newRows.sort(sortfn);
	
	return newRows;
}

function getSortedRowsByColumnFromTableBody_ALPHA(myTableBody,iColumnIndex){
	var t = myTableBody;
		
	//If the table doesn't have any areas then just return doing nothing.
	if (t.rows.length <= 1) return;

	sortfn = tr_sort_caseinsensitive;
	
	var newRows = new Array();
	for (j=0;j<t.rows.length;j++) { 
		newRows[j] = t.rows[j];
	}
	
	//Sort naturally first (ASC)
	SORT_COLUMN_INDEX = iColumnIndex; //Declared without the var makes it a global variable.
	newRows.sort(sortfn);
	
	return newRows;
}

function getSortedRowsByColumnFromTableBody_NUMERIC(myTableBody,iColumnIndex){
	var t = myTableBody;
		
	//If the table doesn't have any areas then just return doing nothing.
	if (t.rows.length <= 1) return;

	sortfn = tr_sort_numeric;
	
	var newRows = new Array();
	for (j=0;j<t.rows.length;j++) { 
		newRows[j] = t.rows[j];
	}
	
	//Sort naturally first (ASC)
	SORT_COLUMN_INDEX = iColumnIndex; //Declared without the var makes it a global variable.
	newRows.sort(sortfn);
	
	return newRows;
}

function getSortedRowsByColumnFromTableBody_DATE(myTableBody,iColumnIndex){
	var t = myTableBody;
		
	//If the table doesn't have any areas then just return doing nothing.
	if (t.rows.length <= 1) return;

	sortfn = tr_sort_date;
	
	var newRows = new Array();
	for (j=0;j<t.rows.length;j++) { 
		newRows[j] = t.rows[j];
	}
	
	//Sort naturally first (ASC)
	SORT_COLUMN_INDEX = iColumnIndex; //Declared without the var makes it a global variable.
	newRows.sort(sortfn);
	
	return newRows;
}
function tr_sort_caseinsensitive(rowA,rowB) {
	//Used to Sort the Values of a ROW, treated as Alpha's.
	//SORT_COLUMN_INDEX must be a globally declared and set variable this function can access.
	aa = td_getInnerText(rowA.cells[SORT_COLUMN_INDEX])
	bb = td_getInnerText(rowB.cells[SORT_COLUMN_INDEX])
	sortVal = sort_caseinsensitive(aa,bb);
	return sortVal;
}

function sort_caseinsensitive(a,b) {
	//Returns 0 if they are equal.
	//Returns 1 if a is greater than b
	//Returns -1 if a is less than b
	aa = a.toLowerCase();
	bb = b.toLowerCase();
	if (aa==bb) {
		return 0;
	}
	if (aa<bb) {
		return -1;
	}
	return 1;
}

function tr_sort_numeric(rowA,rowB) {
	//Used to Sort the Values of a ROW, treated as Numbers.
	//SORT_COLUMN_INDEX must be a globally declared and set variable this function can access.
	var aa = td_getInnerText(rowA.cells[SORT_COLUMN_INDEX]);
	aa = clean_num(aa);
	var bb = td_getInnerText(rowB.cells[SORT_COLUMN_INDEX]);
	bb = clean_num(bb);
	sortVal = sort_numeric(aa,bb);
	return sortVal;
}

function sort_numeric(a,b) {
	//Returns 0 if they are equal.
	//Returns positive int if a is greater than b
	//Returns negative int if a is less than b
	var a = parseFloat(a);
	var b = parseFloat(b);
	a = (isNaN(a) ? 0 : a);
	b = (isNaN(b) ? 0 : b);
	return a - b;
}

function tr_sort_date(rowA,rowB) {
	//Used to Sort the Values of a ROW, treated as Dates.
	//SORT_COLUMN_INDEX must be a globally declared and set variable this function can access.
	dt1 = makeDateSortable(td_getInnerText(rowA.cells[SORT_COLUMN_INDEX]));
	dt2 = makeDateSortable(td_getInnerText(rowB.cells[SORT_COLUMN_INDEX]));
	
	if (dt1==dt2) {
		return 0;
	}
	if (dt1<dt2) { 
		return -1;
	}
	return 1;
}

function makeDateSortable(date) {	
	// y2k notes: two digit years less than 50 are treated as 20XX, greater than 50 are treated as 19XX
	dt = "00000000";
	if (date.length == 11) {
		mtstr = date.substr(3,3);
		mtstr = mtstr.toLowerCase();
		switch(mtstr) {
			case "jan": var mt = "01"; break;
			case "feb": var mt = "02"; break;
			case "mar": var mt = "03"; break;
			case "apr": var mt = "04"; break;
			case "may": var mt = "05"; break;
			case "jun": var mt = "06"; break;
			case "jul": var mt = "07"; break;
			case "aug": var mt = "08"; break;
			case "sep": var mt = "09"; break;
			case "oct": var mt = "10"; break;
			case "nov": var mt = "11"; break;
			case "dec": var mt = "12"; break;
			// default: var mt = "00";
		}
		dt = date.substr(7,4)+mt+date.substr(0,2);
		return dt;
	} else if (date.length == 10) {
		if (europeandate == false) {
			dt = date.substr(6,4)+date.substr(0,2)+date.substr(3,2);
			return dt;
		} else {
			dt = date.substr(6,4)+date.substr(3,2)+date.substr(0,2);
			return dt;
		}
	} else if (date.length == 8) {
		yr = date.substr(6,2);
		if (parseInt(yr) < 50) { 
			yr = '20'+yr; 
		} else { 
			yr = '19'+yr; 
		}
		if (europeandate == true) {
			dt = yr+date.substr(3,2)+date.substr(0,2);
			return dt;
		} else {
			dt = yr+date.substr(0,2)+date.substr(3,2);
			return dt;
		}
	}
	return dt;
}

function clean_num(str) {
	str = str.replace(new RegExp(/[^-?0-9.]/g),"");
	return str;
}

function td_getInnerText(el) {
	//Used to get the TEXT values inside a TD tag.
	if (typeof el == "string") return el;
	if (typeof el == "undefined") { return el };
	if (el.innerText) return el.innerText;	//Not needed but it is faster
	var str = "";
	
	var cs = el.childNodes;
	var l = cs.length;
	for (var i = 0; i < l; i++) {
		switch (cs[i].nodeType) {
			case 1: //ELEMENT_NODE
				str += ts_getInnerText(cs[i]);
				break;
			case 3:	//TEXT_NODE
				str += cs[i].nodeValue;
				break;
		}
	}
	return str;
}
//END OF TABLE SORTING FUNCTION
