<!doctype html>
<html>
	<head>
		<title>Origin for https site with non-default port to itself</title>
		<style type="text/css">
div { height: 100px; width: 100px; background: orange; }
iframe { width: 500px; height: 120px; border: none; }
		</style>
		<script type="text/javascript" src="../resources/crossorigin.sub.js"></script>
		<script type="text/javascript">
window.onload = function () {
	var origin = 'https://'+httpsHostAlias+':'+httpsPortAlias;
	document.getElementsByTagName('div')[0].ondragstart = function (e) {
		e.dataTransfer.effectAllowed = 'copy';
		e.dataTransfer.setData('text','dummy text');
	};
	document.getElementsByTagName('span')[0].textContent = origin;
	var iframe = document.createElement('iframe');
	iframe.src = origin+location.pathname.replace(/[^\/]*$/,'HELPER-showorigin.html');
	document.body.insertBefore(iframe,document.getElementsByTagName('div')[0]);
};
		</script>
	</head>
	<body>

		<noscript><p>Enable JavaScript and reload</p></noscript>
		<p>Drag the orange square onto the blue square and release it. The blue square should be replaced with the text:<br>
		<span></span></p>
		<div draggable="true"></div>

	</body>
</html>
