<!--

	var ggPosX=0;
	var ggPosY=0;

 function getpoplist(stype,objname,srefobj, srefobj1)
    {
        var obj = document.getElementById(objname);
        var x ;
        if (!srefobj)
        x = "";
        else
        x = document.getElementById(srefobj).value;

        if (srefobj1)
        x += '-' + document.getElementById(srefobj1).value;

        window.showModalDialog('../poplist.aspx?type='+stype+'&parent='+x,obj,"dialogWidth=375px;dialogHeight=420px;status:no;scroll:no");
    }

	function PreCloseProcessing()
	{
		return;	
	}

	document.ondragstart=new Function("cancelEvent(event);return false;");

	function cancelEvent() 
	{
		window.event.returnValue = false;
	} 
	function show_calendar(input,format)
	{
		var leftPos , topPos ;
		var w = 480, h = 340;
		var popW = 208, popH = 200;

		if (document.all) {
		/* the following is only available after onLoad */
			w = document.body.clientWidth;
			h = document.body.clientHeight;
		}
		else if (document.layers) {
			w = window.innerWidth;
			h = window.innerHeight;
		}

		if (ggPosX==0 && ggPosY==0)
		{
			leftPos = (w-popW)/2 + window.screenLeft;
			topPos = (h-popH)/2 + window.screenTop ;
		}
		else
		{
			leftPos = ggPosX;
			topPos = ggPosY;
		}
		
		var obj=document.getElementById(input);
		var s=obj.value;
		if (s==null)
			s='';
		
		window.open('includes/Calendar.aspx?field=' + input + '&date=' + s + '&format=' + format , 'calendarPopup', 'width='+popW+',height='+popH+',resizable=false,top='+topPos+',left='+leftPos+',toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no');
	}

	function refreshchild(obj,child)
	{
		var xmlRequest = new ActiveXObject("Microsoft.XMLHTTP");
		xmlRequest.Open ('GET', 'newcallback.ashx?method=' + child + '&Vessel=' + obj.value , false);
			
		xmlRequest.Send();
		var result = xmlRequest.responseText;
		document.all('hid'+child).value=result;
		
		var childOrganizations = document.forms[0].elements['ddl'+child];
		if (!childOrganizations){
			return;
		}
		childOrganizations.length = 0;
		if (!result){
			return;
		}
	
		var rows = result.split('|'); 
		for (var i = 0; i < rows.length; ++i)
		{
			var values = rows[i].split('^');
			if (values[1] != null)
			{
				var option = document.createElement("OPTION");
				option.value = values[0];
				option.innerHTML = values[1];     
				childOrganizations.appendChild(option);
			}
		}
		if (child=='Voyage' && typeof(Page_ClientValidate) == 'function') Page_ClientValidate(); 
	}

	function refreshregionchild(obj)
	{
		var sName = obj.name;
		var iCtrl = parseInt(sName.substr(sName.length-1,1));
		iCtrl += 1;
		sName = sName.substring(0,sName.length-1) + iCtrl;
		
		var xmlRequest = new ActiveXObject("Microsoft.XMLHTTP");
		xmlRequest.Open ('GET', 'newcallback.ashx?method=Region&Vessel=' + obj.value , false);
			
		xmlRequest.Send();
		var result = xmlRequest.responseText;
		
		var childOrganizations = document.forms[0].elements[sName];
		if (!childOrganizations){
			return;
		}
		childOrganizations.style.width='100%';
		childOrganizations.length = 0;
		if (!result){
			return;
		}
	
		var rows = result.split('|'); 
		for (var i = 0; i < rows.length; ++i)
		{
			var values = rows[i].split('^');
			if (values[1] != null)
			{
				var option = document.createElement("OPTION");
				option.value = values[0];
				option.innerHTML = values[1];     
				childOrganizations.appendChild(option);
			}
		}
	}

	function refreshvesseldetails(obj)
	{
		var xmlRequest = new ActiveXObject("Microsoft.XMLHTTP");
		if (obj.id == 'ddlVessel')
			xmlRequest.Open ('GET', 'newcallback.ashx?method=VesselDetails&Vessel=' + obj.value , false);
		else
			return;
			
		xmlRequest.Send();
		var result = xmlRequest.responseText;
		
		var rows = result.split('^'); 

		document.all.txtGrossTons.value = rows[0];
		document.all.txtLength.value = rows[1];
		document.all.txtOperator.value = rows[2];
		
	}


	function refreshworksheetdetails(obj)
	{
		if (isNaN(obj.value))
		{
			document.all.txtArrivedDate.value = '';
			document.all.txtArriveTime.value = '';
			document.all.txtCommencedDate.value = '';
			document.all.txtCommencedTime.value = '';
			document.all.txtCompletedDate.value = '';
			document.all.txtCompletedTime.value = '';
			document.all.txtDepartedDate.value = '';
			document.all.txtDepartedTime.value = '';
			return;
		}
	
		var xmlRequest = new ActiveXObject("Microsoft.XMLHTTP");
		if (obj.id == 'ddlVoyage')
			xmlRequest.Open ('GET', 'newcallback.ashx?method=Worksheet&Voyage=' + obj.value + '&Berth=' + document.all.ddlBerth.value, false);
		else
			return;
			
		xmlRequest.Send();
		var result = xmlRequest.responseText;
		var rows = result.split('^'); 

		document.all.txtArrivedDate.value = rows[0];
		document.all.txtArriveTime.value = rows[1];
		document.all.txtCommencedDate.value = rows[2];
		document.all.txtCommencedTime.value = rows[3];
		document.all.txtCompletedDate.value = rows[4];
		document.all.txtCompletedTime.value = rows[5];
		document.all.txtDepartedDate.value = rows[6];
		document.all.txtDepartedTime.value = rows[7];
	}
	
	function formatCurrency(num,unpure) 
	{
		if (unpure) num = num.replace(/\,/g,"").replace(/^\$/g,"");
		num = !isNaN(num) ? Math.round(num * 100) / 100 : 0;
		if (num.toString().indexOf(".") == -1) num += ".";
		while (/\.\d{0,1}$/.test(num)) num += "0";
			num = num.toString().split(".");
		
		var objRegExp  = new RegExp('(-?\[0-9]+)([0-9]{3})');
		//while (objRegExp.test(num[0])) num[0] = num[0].replace(objRegExp,'$1,$2');
		
		return "$" + num.join(".");
	}
	function formatNumber(num) {

		num = !isNaN(num) ? Math.round(num * 100) / 100 : 0;
		if (num.toString().indexOf(".") == -1) num += ".";
		while (/\.\d{0,1}$/.test(num)) num += "0";
			num = num.toString().split(".");
		
		var objRegExp  = new RegExp('(-?\[0-9]+)([0-9]{3})');
		//while (objRegExp.test(num[0])) num[0] = num[0].replace(objRegExp,'$1,$2');
		
		return num.join(".");
	}
	function formatFloat(num) 
	{
		num = !isNaN(num) ? Math.round(num * 1000) / 1000 : 0;
		if (num.toString().indexOf(".") == -1) num += ".";
		while (/\.\d{0,2}$/.test(num)) num += "0";
		num = num.toString().split(".");
		
		
		var objRegExp  = new RegExp('(-?\[0-9]+)([0-9]{3})');
		
		
		//while (objRegExp.test(num[0])) 
		//{	
		//	num[0] = num[0].replace(objRegExp,'$1,$2');
		//}
		
		return num.join(".");
	}

	function choosefocus()
	{	
		var i = 0;

		for (i==0;i< document.all.length;i++)
		{
			if (document.all(i).name != "SiteMap") 
			{	if ((document.all(i).type == 'text' || document.all(i).type == 'password' || document.all(i).type == 'select-one') && !document.all(i).disabled ) //&& document.all(i).value == ""
				{
					document.all(i).focus();
					return 1;
					
				}
			}
		}

	}

	function ValidateWholeNumber(myfield,e)
	{
		var keycode;
		if (window.event) keycode = window.event.keyCode;
		else if (e) keycode = e.which;
		else return true;
		if (keycode == 13)	
		{
			
			return true;
		}
		else if (((keycode>47) && (keycode<58) ))  { return true; }
		else return false;
	}
	function ValidateNumeric(myfield,e)
	{
		var keycode;
		if (window.event) keycode = window.event.keyCode;
		else if (e) keycode = e.which;
		else return true;
		if (keycode == 13)	
		{
			
			return true;
		}
		else if (((keycode>47) && (keycode<58) ))  { return true; }
		else if (keycode==46)  { return true; }
		else return false;
	}
	function ValidateTime(myfield,e)
	{
		var keycode;
		var ret;
		if (window.event) keycode = window.event.keyCode;
		else if (e) keycode = e.which;
		else return true;
		
		if (keycode == 13)	
		{
			
			return true;
		}
		else if (((keycode>47) && (keycode<58) ))  { ret = true; }
		else if (keycode==58)  
		{	ret = (myfield.value.indexOf(":") == -1); 
			if (myfield.value.length < 2 )
			{
				myfield.value = '0' + myfield.value;
			}
		}
		else ret = false;
		
		if (ret) 
		{
			if (myfield.value.length == 2 && myfield.value.indexOf(":") == -1 && keycode!=58)
				myfield.value += ':';
		}
		return ret;
	}
	function ValidatePhoneNumber(myfield,e)
	{
		var keycode;
		if (window.event) keycode = window.event.keyCode;
		else if (e) keycode = e.which;
		else return true;
		if (keycode == 13 || keycode == 45) 	
		{
			
			return true;
		}
		else if (((keycode>47) && (keycode<58) ))  { return true; }
		else return false;
	}
	function ValidateZip(myfield,e)
	{
		var keycode;
		if (window.event) keycode = window.event.keyCode;
		else if (e) keycode = e.which;
		else return true;
		if (keycode == 13 || keycode == 45) 	
		{
			
			return true;
		}
		else if (((keycode>47) && (keycode<58) ))  { return true; }
		else if (keycode==45)  { return true; }
		else return false;
	}
	function ValidateUpper(myfield,e)
	{
		var keycode;
		if (window.event) keycode = window.event.keyCode;
		else if (e) keycode = e.which;
		else return true;
		if (keycode == 13)	
		{
			
			return true;
		}
		//else if (((keycode>47) && (keycode<58) ))  { return true; } //numbers
		//else if (((keycode>64) && (keycode<91) ))  { return true; } //uppercase
		else if (((keycode>96) && (keycode<123) ))  {window.event.keyCode-=32;return true; } //set lowercase to upper
		//else return false;
	}

	function ValidateUpperAlphaNumeric(myfield,e)
	{
	    
		var keycode;
		if (window.event) keycode = window.event.keyCode;
		else if (e) keycode = e.which;
		else return true;
		if (keycode == 13)	
		{
			
			return true;
		}
		else if (((keycode>47) && (keycode<58) ))  { return true; } //numbers
		else if (((keycode>64) && (keycode<91) ))  { return true; } //uppercase
		else if (((keycode>96) && (keycode<123) ))  {window.event.keyCode-=32;return true; } //set lowercase to upper
		else return false;
	}

	function ValidateUpperAlpha(myfield,e)
	{
		var keycode;
		if (window.event) keycode = window.event.keyCode;
		else if (e) keycode = e.which;
		else return true;
		if (keycode == 13)	
		{
			
			return true;
		}
		//else if (((keycode>47) && (keycode<58) ))  { return true; } //numbers
		//else if (((keycode>64) && (keycode<91) ))  { return true; } //uppercase
		else if (((keycode>96) && (keycode<123) ))  {window.event.keyCode-=32;return true; } //set lowercase to upper
		else return false;
	}
	function ValidateAlpha(myfield,e)
	{
		var keycode;
		if (window.event) keycode = window.event.keyCode;
		else if (e) keycode = e.which;
		else return true;
		if (keycode == 13)	
		{
			
			return true;
		}
		else if (((keycode>47) && (keycode<58) ))  { return false; } //numbers
		else if (((keycode>64) && (keycode<91) ))  { return true; } //uppercase
		else if (((keycode>96) && (keycode<123) )) { return true; } //lowercase
		else return false;
	}

	function ValidateDate(myfield,e)
	{
		var keycode;
		if (window.event) keycode = window.event.keyCode;
		else if (e) keycode = e.which;
		else return true;
		if (keycode == 13)	
		{
			
			return true;
		}
		else if (((keycode>46) && (keycode<58) ))  { return true; } //numbers and "/"
		else return false;
	}
	function ValidateDateTime(myfield,e)
	{
		var keycode;
		if (window.event) keycode = window.event.keyCode;
		else if (e) keycode = e.which;
		else return true;
		if (keycode == 13)	
		{
			return true;
		}
		else if (keycode==32)  { return true; } //numbers and "/" and ":"
		else if (((keycode>46) && (keycode<59) ))  { return true; } //numbers and "/" and ":"
		else return false;
	}


	function FormatTime(myfield)
	{
		var tm=myfield.value;
		
		if (tm.length==4 && tm.substr(2,1) == ':')
		{
			myfield.value = '0' + tm.substr(0,1) + ':' + tm.substr(1,1) + tm.substr(3,1);
		}
	}
	
	function DateDiff( start, end, interval, rounding ) {

    var iOut = 0;
    
    // Create 2 error messages, 1 for each argument. 
    var startMsg = "Check the Start DateTime and End DateTime\n"
        startMsg += "must be a valid date and time format.\n\n"
        startMsg += "Please try again." ;
		
    var intervalMsg = "Sorry the dateAdd function only accepts\n"
        intervalMsg += "d, h, m OR s intervals.\n\n"
        intervalMsg += "Please try again." ;

    var bufferA = Date.parse( start ) ;
    var bufferB = Date.parse( end ) ;
    	
    // check that the start parameter is a valid Date. 
    if ( isNaN (bufferA) || isNaN (bufferB) ) {
        alert( startMsg ) ;
        return null ;
    }
	
	if (bufferB < bufferA)
	{
        alert( 'The Start Time must be earlier than the End Time' ) ;
        return null ;
	}
	
    // check that an interval parameter was not numeric. 
    if ( interval.charAt == 'undefined' ) {
        // the user specified an incorrect interval, handle the error. 
        alert( intervalMsg ) ;
        return null ;
    }
    
    var number = bufferB-bufferA ;
    
    // what kind of add to do? 
    switch (interval.charAt(0))
    {
        case 'd': case 'D': 
            iOut = parseInt(number / 86400000) ;
            if(rounding) iOut += parseInt((number % 86400000)/43200001) ;
            break ;
        case 'h': case 'H':
            iOut = parseInt(number / 3600000 ) ;
            if(rounding) iOut += parseInt((number % 3600000)/1800001) ;
            break ;
        case 'm': case 'M':
            iOut = parseInt(number / 60000 ) ;
            if(rounding) iOut += parseInt((number % 60000)/30001) ;
            break ;
        case 's': case 'S':
            iOut = parseInt(number / 1000 ) ;
            if(rounding) iOut += parseInt((number % 1000)/501) ;
            break ;
        default:
        // If we get to here then the interval parameter
        // didn't meet the d,h,m,s criteria.  Handle
        // the error. 		
        alert(intervalMsg) ;
        return null ;
    }
    
    return iOut ;
}


function fBuildSpreadsheet()
{

    document.write('<OBJECT id="SpreadSheet1" tabIndex="30" VIEWASTEXT border="1" classid="clsid:0002E551-0000-0000-C000-000000000046" >\n');
    document.write('<PARAM NAME="DataType" VALUE="XMLDATA">\n');
    document.write('<PARAM NAME="AllowPropertyToolbox" VALUE="0">\n');
    document.write('<PARAM NAME="AutoFit" VALUE="1">\n');
    document.write('<PARAM NAME="Calculation" VALUE="-4105">\n');
    document.write('<PARAM NAME="Caption" VALUE="Hub Assignment">\n');
    document.write('<PARAM NAME="DisplayColumnHeadings" VALUE="-1">\n');
    document.write('<PARAM NAME="DisplayGridlines" VALUE="-1">\n');
    document.write('<PARAM NAME="DisplayHorizontalScrollBar" VALUE="-1">\n');
    document.write('<PARAM NAME="DisplayOfficeLogo" VALUE="-1">\n');
    document.write('<PARAM NAME="DisplayPropertyToolbox" VALUE="0">\n');
    document.write('<PARAM NAME="DisplayRowHeadings" VALUE="-1">\n');
    document.write('<PARAM NAME="DisplayTitleBar" VALUE="0">\n');
    document.write('<PARAM NAME="DisplayToolbar" VALUE="0">\n');
    document.write('<PARAM NAME="DisplayVerticalScrollBar" VALUE="-1">\n');
    document.write('<PARAM NAME="DisplayWorkbookTabs" VALUE="0">\n');
    document.write('<PARAM NAME="EnableEvents" VALUE="-1">\n');
    document.write('<PARAM NAME="MaxHeight" VALUE="80%">\n');
    document.write('<PARAM NAME="MaxWidth" VALUE="100%">\n');
    document.write('<PARAM NAME="MoveAfterReturn" VALUE="-1">\n');
    document.write('<PARAM NAME="MoveAfterReturnDirection" VALUE="-4121">\n');
    document.write('<PARAM NAME="RightToLeft" VALUE="0">\n');
    document.write('<PARAM NAME="ScreenUpdating" VALUE="-1">\n');
    document.write('<PARAM NAME="EnableUndo" VALUE="-1">\n');
    document.write('</OBJECT>\n');
    
    windowonload();
}



-->