/*******************************************************************************************
*
* Optimal Systems Corporation (www.oscorp.com) All rights reserved.
*
*******************************************************************************************/

//----------------------------------------------------------------------------------------
/* 
*  Get browser name and assign proprietary levels of css compliance.
*  Level3 (best): IE5+; Level2: IE4 and Opera 5; Level1: Netscape 4 and IE3
*  Need to add check for NS6
*/
/*
	var BrowserName= "unk"
	var BrowserLevel= 1
	var UserAgent= navigator.userAgent.toLowerCase();
	var n= UserAgent.indexOf("; msie ")
	
	if (n > 0) {
		// IE and Opera
		BrowserVersion = parseFloat(UserAgent.substr(n + 7, 5))
		if (UserAgent.indexOf("opera") > 0){
			BrowserName = "op"
			if (BrowserVersion >= 5) BrowserLevel = 2
		}else{
			BrowserName = "ie"
			if (BrowserVersion >= 5){
				BrowserLevel = 3
			}else if (BrowserVersion >= 4){
				BrowserLevel = 2
			}
		}
	}
*/
//--------------------------------------------
function fnBaseURL(){
	var a = location.pathname.split("/")
	var sz = ""
	var n = ((a[0] == "")? 3: 2)
	for (var i=n; i < a.length; i++) sz += "../"
	return(sz)
}
//--------------------------------------------
function fnRelativeHome(){
	// Returns a relative path portion to the website home from where this module is included.
	var a = location.pathname.split("/")
	var sz = ""
	for (var i=3; i < a.length; i++) sz += "../"
	return(sz)
}
//--------------------------------------------
function fnLTrim(sz){
	return(sz.replace(/^ +/,""))
}
//--------------------------------------------
function fnRTrim(sz){
	return(sz.replace(/ +$/,""))
}
//--------------------------------------------
function fnTrim(sz){
	return(sz.replace(/ +/g," ").replace(/^ /,"").replace(/ $/,""))
}
//--------------------------------------------
function fnIsNull(sz, szRet){
	return((sz == null)? szRet: sz)
}
//-------------------------
function fnRight(sz, n){
	if ((sz == null)||(sz.length < n)){
		return("")
	}else{
		return(sz.substr(sz.length-n))
	}
}
//--------------------------------------------
function fnEscape(sz){
	var sz1= (sz == null)? "": sz
    return sz1.replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/'/g, "&quot;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
}
//--------------------------------------------
function fnUnescape(sz){
	var sz1= (sz == null)? "": sz
    return sz1.replace(/&amp;/g, "&").replace(/&quot;/g, "'").replace(/&quot;/g, "'").replace(/&lt;/g, "<").replace(/&gt;/g, ">");
}
//--------------------------------------------
function fnXmlHttpPost(sReq, sData){
	
	var oRet= new Object()
	oRet.error= ""
	oRet.returnValue= ""
	try{
		var xhttp= new ActiveXObject("MSXML2.XMLHTTP.4.0")
		xhttp.open("POST", sReq, false)
		xhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		xhttp.send(sData)
		
		var sz= xhttp.responseText
		xhttp= null
		if (sz.substr(0,2) == "%%"){
			oRet.error= sz.substr(2)
		}else{
			oRet.returnValue= sz
		}
	}catch(err){
		oRet.error= err.description
	}
	return(oRet)
}
//--------------------------------------------
function fnFormatDate(d, nFormat){
	if (d == "") d= new Date();
	var aDays= new Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
	var aMons= new Array('January','February','March','April','May','June','July','August','September','October','November','December');
	
	var sz= d.toLocaleDateString()
	
	switch (nFormat){
		case 1:
			var s= (d.getMonth() + 1).toString()
			sz= (s.length == 1)? ("0" + s): s
			s= d.getDate().toString()
			sz += "/" + ((s.length == 1)? ("0" + s): s) + "/" + d.getFullYear()
			break
		case 2:
			var s= d.getDate().toString()
			sz= ((s.length == 1)? ("0" + s): s) + '-' + aMons[d.getMonth()].substr(0,3).toUpperCase() + '-' + d.getFullYear();
			break
		case 3:
			var s= d.getDate().toString()
			sz= aDays[d.getDay()] + ' ' + ((s.length == 1)? ("0" + s): s) + '-' + aMons[d.getMonth()].substr(0,3).toUpperCase() + '-' + d.getFullYear();
			break
		case 30:
			var s= d.getDate().toString()
			sz= aDays[d.getDay()] + ' ' + ((s.length == 1)? ("0" + s): s) + '.' + aMons[d.getMonth()].substr(0,3).toUpperCase() + '.' + d.getFullYear();
			break
		}
	return(sz)
}
//----------------------------------------------------------------------------------------
function fnValidateDate(sdate, dateorder){

    function GetFullYear(year) {
        return (year + parseInt(val.century)) - ((year < val.cutoffyear) ? 0 : 100);
    }

	var yearLastExp= new RegExp("^\\s*(\\d{1,2})([-./])(\\d{1,2})\\2((\\d{4})|(\\d{2}))\\s*$");
	var m= sdate.match(yearLastExp);
	if (m == null) return("");
	
	if ((dateorder == null)||(dateorder == "mdy")) {
		day= m[3];
		month= m[1];
	}else{
		day= m[1];
		month= m[3];
	}
	year= (m[5].length == 4) ? m[5] : GetFullYear(parseInt(m[6], 10))
	month -= 1;
	var date= new Date(year, month, day);
	return (typeof(date) == "object" && year == date.getFullYear() && month == date.getMonth() && day == date.getDate()) ? date: "";
}
//------------------------------------------------------------------------------------------
function fnValidateTime(strTime){

	var res= ""
	var chk= false
	sz= strTime.toString()
	if (sz.indexOf(":") == -1) s += ":00"
	if (sz.indexOf(":") < 1){
		res = ""
	}else{
		var a= sz.split(":")
		chk= (isNaN(a[0]))||(a[0] < 0)||(a[0] > 12)
		chk= chk || (isNaN(a[1]))||(a[1] < 0)||(a[1] > 59)
		if (!chk) res= sz
	}
	return(res)
}
//------------------------------------------------------------------------------------------
function fnShowMap(qstr){
	var qstr = "http://www.mapquest.com/maps/map.adp?zoom=8" + qstr
	window.open(qstr)
}
//---------------------------------------------------------------------------------------
function showEventDetails(rid){
	/*
	if (BrowserName == "ie"){
		var n = document.body.offsetWidth - 80
	}else{
		var n = window.outerWidth - 80
	}
	*/
	var sFeatures = "left=0,top=0,width=" + (screen.availWidth * 0.75) + ",height=" + (screen.availHeight-32) + ",scrollbars=1,resizable=1"
	window.open("eventDet.asp?rid=" + rid, "Events", sFeatures, true)
}
//----------------------------------------------------------------------------------------
function zPreviewFile(filetype, fileURL){
	var sz = ""
	var sFeatures = "fullscreen=0,menubar=0,toolbar=0,top=0,left=0,width=200,height=300,resizable=1,scrollbars=1"
	if (filetype == "image"){
		var p = new Image()
		p.src = fileURL
		var imgsize = p.fileSize
		sz = "<html><head><title>Image Preview</title></head> "
			+ "<body onblur='javascript:self.focus()'><table align=center width=100% height=100% border=0><tr><td align=center>"
			+ "<table border=0 cellpadding=1 cellspacing=0><tr><td bgcolor=navy align=center valign=middle> "
			+ "<img src='" + p.src + "'></td></tr></table></td></tr><tr><td style='font:normal 8pt verdana,arial' align=center>Image size: " + imgsize.toString() + " Bytes</td></tr>"
			+ "<tr><td align=center valign=bottom><input type=button value=' Close ' onclick='javascript:self.close()' id=button1 name=button1></td></tr></table>"
			+ "</body></html>"
			var w = window.open("","Preview",sFeatures, true);
			w.document.write(sz)
			w.document.close()
	}else{
		window.open(fileURL,"Preview",sFeatures, true)
	}
}
//---------------------------------------------------------------------------------------

