//VARIABLES USED BY LATER MENU FUNCTIONS
var isDOM = (document.getElementById ? true : false); 
var isIE4 = ((document.all && !isDOM) ? true : false);
var isNS4 = (document.layers ? true : false);

//THIS JAVASCRIPT ROUTINE ALLOWS AN ASP.NET PAGE TO POST TO ANOTHER PAGE (YEAH, I KNOW, BIG DEAL!)
//FOR .NET CONTROLS, ADD A LINE LIKE THE FOLLOWING TO THE PAGE'S
//PAGE_LOAD HANDLER:
//SubmitButton.Attributes.Add ("onclick", setFormAction("postPage.aspx")

function setFormAction(postPage)
{
	var f = document.forms[0];
	if(f){
		if(f.__VIEWSTATE){
			f.action = postPage
			f.__VIEWSTATE.name = "NOVIEWSTATE"
			//CAN RENAME TO ANYTHING OTHER THAN '__VIEWSTATE'
		}
	}
}

// --------------------------------------------------------------------------------------------- //

function elm(strElementID){
	return document.getElementById(strElementID);
}

// --------------------------------------------------------------------------------------------- //

function isValidEmailAddress(strEmailAddress){
	if(strEmailAddress == null){
		return false;
	}
	if(strEmailAddress.length < 5){
		return false;
	}
	if(strEmailAddress.indexOf('@') == -1){
		return false;
	}
	
	return true;
}

// --------------------------------------------------------------------------------------------- //

function getPopWindowSizeAndLocation(iWidth,iHeight){
	onerror = function(){return true;}
	
	var sw = 1024;
	var sh = 768;
	var topPos = 10;
	var leftPos = 10;
	
	if(screen){
		if(screen.width){
			sw = screen.width;
			sh = screen.height;
		}
	}
	
	if(window.top){
		topPos = (sh/3) - (iHeight/2);
		leftPos = (sw/2) - (iWidth/2);
	}
	
	return (' width=' + iWidth + ', height=' + iHeight + ', top=' + topPos + ', left=' + leftPos + ', ');
}

// --------------------------------------------------------------------------------------------- //

var onePopWindow = null;
function PopWindow(url, width, height) {
    if(onePopWindow != null){
		if(onePopWindow.closed == false){
			onePopWindow.close();
		}
		onePopWindow = null;
    }

    onePopWindow = window.open(url, 'onePopWindow', getPopWindowSizeAndLocation(width,height) + 'help=No,resizable=Yes,status=No,scrollbars=No,');
    onePopWindow.focus();
}

// ------------------------------------------------------------------------//

// Returns time in HH:MM AP
function FormatTime(timeValue){
	var h;
	var m;
	var amPmString = '';
	
	if(timeValue.indexOf(":") == -1){
		h = timeValue.replace(/[apm]/gi,'') - 0;
		m = 0;
		amPmString = timeValue.toLowerCase();
	} else {
		var aDT = timeValue.split(':');
		h = aDT[0] - 0;
		m = aDT[1].replace(/[apm]/gi,'') - 0;
		amPmString = aDT[1].toLowerCase();
	}
	
	if(h+'' == 'NaN' || m+'' == 'NaN'){
		window.status = 'Invalid Time Value';
		return '';
	}
	
	if(amPmString.indexOf('m') > -1){
		if(amPmString.indexOf('a') > -1){
			if(h == 12){
				h = 0;
			}
		} else {
			if(h < 12){
				h = h + 12;
			}
		}
	}

	if(h > 23 || h < 0){
		window.status = 'Invalid Time Value';
		return '';
	}
	if(m < 0 || m > 59){
		window.status = 'Invalid Time Value';
		return '';	
	}
	
	var suffix = 'AM';
	if(h == 0){
		h = 12;
	} else {
		if(h >= 12){
			suffix = 'PM';
			if(h > 12){
				h = h - 12;
			}
		}
	}
	
	return (h < 10 ? '0' : '') + h + ':' + (m < 10 ? '0' : '') + m + ' ' + suffix;
}

// ------------------------------------------------------------------------//

// Returns date in DD/MM/YYYY
function FormatDate(dateValue){
	var dlm = '/';
	
	if(dateValue == null){
		window.status = 'Invalid Date Value (1)';
		return '';
	}
	
	dateValue = dateValue.toLowerCase();
	
	dateValue = dateValue.replace('january','1');
	dateValue = dateValue.replace('february','2');
	dateValue = dateValue.replace('march','3');
	dateValue = dateValue.replace('april','4');
	dateValue = dateValue.replace('may','5');
	dateValue = dateValue.replace('june','6');
	dateValue = dateValue.replace('july','7');
	dateValue = dateValue.replace('august','8');
	dateValue = dateValue.replace('september','9');
	dateValue = dateValue.replace('october','10');
	dateValue = dateValue.replace('november','11');
	dateValue = dateValue.replace('december','12');
	
	
	dateValue = dateValue.replace('jan','1');
	dateValue = dateValue.replace('feb','2');
	dateValue = dateValue.replace('mar','3');
	dateValue = dateValue.replace('apr','4');
	dateValue = dateValue.replace('may','5');
	dateValue = dateValue.replace('jun','6');
	dateValue = dateValue.replace('jul','7');
	dateValue = dateValue.replace('aug','8');
	dateValue = dateValue.replace('sep','9');
	dateValue = dateValue.replace('oct','10');
	dateValue = dateValue.replace('nov','11');
	dateValue = dateValue.replace('dec','12');
	
	dateValue = dateValue.replace(/[ -,.\'\\]/gi,dlm);
	while(dateValue.indexOf(dlm+dlm) > -1){
		dateValue = dateValue.replace(dlm+dlm, dlm);
	}

	if(dateValue.indexOf(dlm) < dateValue.lastIndexOf(dlm) && dateValue.indexOf(dlm) > -1){
		var aD = dateValue.split(dlm);
		var mm = aD[0] - 0;
		var dd = aD[1] - 0;
		var yy = aD[2] - 0;
		
		if(mm+'' == 'NaN' || dd+'' == 'NaN' || yy+'' == 'NaN'){
			window.status = 'Invalid Date Value (2)';
			return '';
		}
		
		if(yy < 100){
			yy = 2000 + yy;
		}
		
		if(mm < 1 || mm > 12 || dd < 1 || dd > 31 || yy < 1900 || yy > 9999){
			window.status = 'Invalid Date Value (3)';
			return '';
		}
		
		return (mm < 10 ? '0' : '')
			+ mm
			+ dlm
			+ (dd < 10 ? '0' : '')
			+ dd
			+ dlm
			+ yy;
	}
	
	window.status = 'Invalid Date Value (4)';
	return '';
}

// ------------------------------------------------------------------------ //
function setSelectionByValue(selectName, val)
{
	var sel = document.getElementById(selectName);
	var reTest = new RegExp(val,"i");
	
	if(sel == null)
	{
		return;
	}
	
	for (i=sel.length - 1; i >= 0 ; --i)
	{
		if (reTest.test(sel.options[i].value)) // case insenstive search
		{
			sel.options[i].selected = true; // To work with multi selects
			sel.selectedIndex = i;
		}
	}
}
