int UrlIsAbsolute(dword in)
{
	if(!strncmp(in,"http:",5)) return true;
	if(!strncmp(in,"https:",6)) return true;
	if(!strncmp(in,"mailto:",7)) return true;
	if(!strncmp(in,"ftp:",4)) return true;
	if(!strncmp(in,"WebView:",8)) return true;
	if(!strncmp(in,"/sys/",5)) return true;
	if(!strncmp(in,"/hd/",4)) return true;
	if(!strncmp(in,"/fd/",4)) return true;
	if(!strncmp(in,"/rd/",4)) return true;
	if(!strncmp(in,"/tmp/",5)) return true;
	if(!strncmp(in,"/cd/",4)) return true;
	if(!strncmp(in,"/bd/",4)) return true;
	if(!strncmp(in,"/usbhd/",7)) return true;
	if(!strncmp(in,"/kolibrios/",11)) return true;
	return false;
}

void GetAbsoluteURL(dword in_URL)
{
	int i;
	dword orig_URL = in_URL;
	char newurl[sizeof(URL)];

	while (i=strstr(in_URL, "&"))
	{
		strcpy(i+1, i+5);
	}

	if (UrlIsAbsolute(in_URL)) return;
	
	IF (!strcmpn(in_URL,"./", 2)) in_URL+=2;
	if (!http_transfer) 
	{
		strcpy(#newurl, history.current());
	}
	else
	{
		strcpy(#newurl, history.items.get(history.active-2)); 
	}

	if (ESBYTE[in_URL] == '/') //remove everything after site domain name
	{
		i = strchr(#newurl+8, '/');
		if (i) ESBYTE[i]=0;
		in_URL+=1;
	}
		
	_CUT_ST_LEVEL_MARK:
		
	if (newurl[strrchr(#newurl, '/')-2]<>'/')
	{
		newurl[strrchr(#newurl, '/')] = 0x00;
	}
	
	IF (!strncmp(in_URL,"../",3))
	{
		in_URL+=3;
		newurl[strrchr(#newurl, '/')-1] = 0x00;
		goto _CUT_ST_LEVEL_MARK;
	}
	
	if (newurl[strlen(#newurl)-1]<>'/') strcat(#newurl, "/"); 
	
	strcat(#newurl, in_URL);
	strcpy(orig_URL, #newurl);
}