/************************************************* MISC ********************************************/
// loads a dynamic script file
// param url: the url of the script: src='/scripts' + url
function whizz_loadScript(url, type)
{
	// create new string variable
	var sUrl = new String(url);

	// test value
	if (null == sUrl || 0 == sUrl.length)
	{
		return false;
	}

	// create script src
	var scriptSrc = '/scripts' + sUrl;

	// get head tags
	var headTags = document.getElementsByTagName('head');
	if (null == headTags || 0 == headTags.length)
	{
		return false;
	}

	// get first head tag
	var headTag = headTags[0];

	// create new script element
	var tempScript = document.createElement('script');
	tempScript.src = scriptSrc;

	var loaded = false;

	// get script tags
	var scripts = headTag.getElementsByTagName('script');
	if (null != scripts)
	{
		for (var i = 0; i < scripts.length; ++i)
		{
			if (tempScript.src == scripts[i].src)
			{
				loaded = true;
				break;
			}
		}
	}

	// load script
	if (false == loaded)
	{
		// create script tag string
		var sScript = new String();
		sScript += "<script type=\"" + (null == type ? 'text/javascript' : type) + "\" src=\"";
		sScript += scriptSrc;
		sScript += "\"></script>";

		// write the script
		document.write(sScript);
	}

	// done
	return true;
}

function whizz_addHost(path)
{
	if (document.location.pathname.toLowerCase().indexOf('whizz4') > 0)
	{
		return location.host + '/whizz4' + path;
	}

	return location.host + path;
}

function whizz_getQueryStringParameterValue(name)
{
	name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
	var regexS = "[\\?&]" + name + "=([^&#]*)";
	var regex = new RegExp(regexS);
	var results = regex.exec(window.location.href);
	if (results == null)
		return '';
	else
		return results[1];
}

function whizz_getElementObj(frm, elemId)
{
	if (null != frm && null != elemId && elemId.length > 0)
	{
		return frm.elements[elemId];
	}

	return null;
}

function whizz_clearChildren(node)
{
	if (whizz_isNullOrEmpty(node))
	{
		return;
	}

	while (node.hasChildNodes())
	{
		node.removeChild(node.firstChild);
	}
}

function whizz_showMessage(msg)
{
	alert(msg);
}

function whizz_isNullOrEmpty(obj)
{
	if (obj == null || typeof (obj) == 'undefined')
	{
		return true;
	}

	// switch type
	switch (typeof (obj))
	{
		case 'string':
			{
				if (obj == '')
				{
					return true;
				}
				break;
			}
		default:
			{
				break;
			}
	}

	// ok
	return false;
}

function whizz_addQueryStringValue(url, queryString) {
	// create new
	var urlNew = url;

	// test values
	if (whizz_isNullOrEmpty(urlNew) || whizz_isNullOrEmpty(queryString)) {
		return urlNew;
	}

	// add query
	if (!whizz_isNullOrEmpty(queryString)) {
		// add querystring separator
		if (-1 != urlNew.indexOf('?')) {
			urlNew += '&';
		}
		else {
			urlNew += '?';
		}

		// append
		urlNew += queryString;
	}

	// ok
	return urlNew;
}

function whizz_windowOpen(url, name, features, replace, cached) {
	// new url
	var urlNew = url;

	// test if cached
	if (!cached) {
		// create new query
		var currentDateTime = new Date();
		var ticks = currentDateTime.getTime();

		// no cache QS
		var qs = 'nocache=' + ticks.toString(10);

		// compute newUrl
		urlNew = whizz_addQueryStringValue(urlNew, qs);
	}

	// new name
	var newName = name;
	if (!whizz_isNullOrEmpty(newName)) {
		newName = newName.replace(' ', '');
	}
	else {
		newName = '';
	}

	// new features
	var newFeatures = features;
	if (whizz_isNullOrEmpty(newFeatures)) {
		newFeatures = '';
	}

	// open
	window.open(urlNew, newName, newFeatures, replace);
}

function whizz_webservices_utilities_url()
{
	return location.protocol.toLowerCase() + '//' + whizz_addHost('/WS/utilities.asmx');
}

function whizz_insertTerritoryNameIntoURL(territoryName, relativeUrl)
{
	var newRelativeURL = '/' + territoryName;
	if (!whizz_isNullOrEmpty(relativeUrl))
	{
		if ('/' != relativeUrl.substring(0, 1))
		{
			newRelativeURL += '/';
		}
		newRelativeURL += relativeUrl;
	}
	else
	{
		newRelativeURL += '/';
	}

	// ok
	return newRelativeURL;
}

// load page
function whizz_loadPage(url)
{
	window.location.href = url;
}
/************************************************ END MISC *****************************************/
