function createXmlHttpRequestObject() {
	var xmlHttp;
	try {
		xmlHttp = new XMLHttpRequest();
	}
	catch (e) {
		var XmlHttpVersions = ['MSXML2.XMLHTTP.6.0',
			'MSXML2.XMLHTTP.5.0',
			'MSXML2.XMLHTTP.4.0',
			'MSXML2.XMLHTTP.3.0',
			'MSXML2.XMLHTTP',
			'Microsoft.XMLHTTP'];

		for (var i = 0; i < XmlHttpVersions.length && !xmlHttp; i++) {
			try {
				xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
			}
			catch (e) {
			}
		}
	}
	return xmlHttp;
}

/**
 * @return {boolean}
 */
function AddBriefcase(saveTxt, system, hory, iddata, UID, list, from, addr, paramv, bNewWin, hideIcon) {
	var xmlHttp = createXmlHttpRequestObject();
	if (xmlHttp) {
		var span = "system-" + system + "-hory-" + hory + "-iddata-" + iddata + "-" + UID;
		var p = document.getElementById(span);
		p.innerHTML = "Nahrávám ...";

		xmlHttp.open("GET", "/share/ajax/briefcase_server.php?system=" + system + "&hory=" + hory + "&iddata=" + iddata + "&time=" + (new Date()).getTime(), true);
		xmlHttp.onreadystatechange = function () {
			ShowResponse(xmlHttp, saveTxt, span, hory, list, from, addr, paramv, bNewWin, hideIcon);
		};

		xmlHttp.send(null);

		return true;
	}
	return false;
}

function extractHostname(url) {
	var hostname;
	//find & remove protocol (http, ftp, etc.) and get hostname

	if (url.indexOf("//") > -1) {
		hostname = url.split('/')[2];
	}
	else {
		hostname = url.split('/')[0];
	}

	//find & remove port number
	hostname = hostname.split(':')[0];
	//find & remove "?"
	hostname = hostname.split('?')[0];

	return hostname;
}

// To address those who want the "root domain," use this function:
function extractRootDomain(url) {
	var domain = extractHostname(url),
		splitArr = domain.split('.'),
		arrLen = splitArr.length;

	//extracting the root domain here
	//if there is a subdomain
	if (arrLen > 2) {
		domain = splitArr[arrLen - 2] + '.' + splitArr[arrLen - 1];
		//check to see if it's using a Country Code Top Level Domain (ccTLD) (i.e. ".me.uk")
		if (splitArr[arrLen - 2].length === 2 && splitArr[arrLen - 1].length === 2) {
			//this is using a ccTLD
			domain = splitArr[arrLen - 3] + '.' + domain;
		}
	}
	return domain;
}

/**
 * Sestaví url, kde nahradí subdoménu za www, např. pro místa, jinak link směřuje na 404
 * @returns {string}
 */
function getBaseDomain()
{
	var domain = location.hostname;

	if (domain === 'localhost')
		return 'https://' + domain;

	return 'https://www.' + extractRootDomain(domain);
}

/**
 * @return {boolean}
 */
function ShowResponse(xmlHttp, saveTxt, span, hory, list, from, addr, paramv, bNewWin, hideIcon) {
	if (xmlHttp.readyState === 4) {
		if (xmlHttp.status === 200) {
			if (typeof(svr) === "undefined")
				svr = getBaseDomain();

			console.log(svr);

			var p = document.getElementById(span);
			var xmlResponse = xmlHttp.responseXML;
			var xmlRoot = xmlResponse.documentElement;
			var nodeAlert = xmlRoot.getElementsByTagName("alert");
			var txt = nodeAlert.item(0).firstChild.nodeValue;
			var target = "";

			if (bNewWin)
				target = "target=\"_blank\"";

			if(txt=="OK") {
				var icon = '<img src="https://www.ceskehory.cz/share/img/aktovka.svg" class="ico-cena" />',
					text = saveTxt + " ve <u>Vaší Aktovce</u>";

				p.href =  svr + addr + "/briefcase/?hory=" + hory + "&from=" + from + "&paramv=" + paramv + "&list=" + list;
				p.onclick = function(){};
				p.innerHTML = (hideIcon ? "" : icon) + text;
			}
			else
				p.innerHTML = txt;

			return true;
		}
	}
	return false;
}