function gms_isValidObject(obj)
{
	if (obj != null && obj != undefined)
		return true;
	return false;
}

function gms_loadPlayerIframeSizes(obj)
{
	var i;
	var arrURLParams = obj.params_clean.split("&");
	obj.width = -1;
	obj.height = -1;

	if (gms_isValidObject(arrURLParams) == false)
		return false;

	for (i = 0; i < arrURLParams.length; i++)
	{
		var sParam = arrURLParams[i].split("=");
		if (gms_isValidObject(sParam) == true && gms_isValidObject(sParam[0]) == true && gms_isValidObject(sParam[1]) == true)
		{
			if (sParam[0].toLowerCase() == 'width')
				obj.width = parseInt(sParam[1]);
			else if (sParam[0].toLowerCase() == 'height')
				obj.height = parseInt(sParam[1]);
		}
	}

	if (obj.width < 0 || obj.width > 2048 || obj.height < 0 || obj.height > 2048)
		return false;

	return true;
}

function gms_loadPlayerIframe(obj)
{
	/* allow only alpha-numeric and -_.+!*'()&= */
	obj.params_clean = obj.params.replace(/[^A-Za-z0-9\-\_\.\+\!\*\'\(\)\&\=\%]/g, "");
	if (gms_isValidObject(obj.params_clean) == false)
		return false;

	/* get parent node */
	obj.parent_div = obj.div.parentNode;
	if (gms_isValidObject(obj.parent_div) == false)
		return false;

	/* load width & height from div style */
	if (gms_loadPlayerIframeSizes(obj) == false)
		return false;

	/* insert iframe - we are setting the iframe to override all dom objects under the parent div!! */
	obj.iframe_url = "demoplayer/iframe.html";

	/* All popular browsers support at least 2048 bytes long urls - IE does not allow more, let's make sure it is not longer!
	 * This means in production the params can't be longer than 2000 bytes (the base64 block). */
	if (obj.params_clean.length <= 0 || obj.params_clean.length + obj.iframe_url.length > 2045)
		return false;

	obj.iframe_str = '<iframe src="' + obj.iframe_url + '?' + obj.params_clean + '" style="width:' + obj.width + 'px; height:' + obj.height
					 + 'px; margin:0; padding:0;" frameborder="0" scrolling="no"></iframe>';
	obj.parent_div.innerHTML = obj.iframe_str;
	return true;
}

function gms_loadPlayerIframes()
{
	var elements;
	var obj;
	var width = -1;
	var height = -1;
	var iframe_url;
	var i;

	elements = document.getElementsByTagName('div');
	
	/* check if we have the correct ammount of elements */
	if (gms_isValidObject(elements) == false || elements.length < 1)
		return false;

	for (i = 0; i < elements.length; i++)
	{
		var tmp;
		var obj;

		if (gms_isValidObject(elements[i]) == false)
			continue;

		tmp = elements[i].id;
		if(gms_isValidObject(tmp) == false)
			continue;

	 	if (tmp.toLowerCase().indexOf('goodmailsystems-params') != 0)
			continue;

		/* found a goodmailsystems params div - load params */
		obj = new Object();
		if (gms_isValidObject(obj) == false)
			return false; /* if memeory allocation fails, no reason to continue to next element */

		obj.div = elements[i];

		if (gms_isValidObject(elements[i].childNodes) == false)
			continue;

		if (gms_isValidObject(elements[i].childNodes[0]) == false)
			continue;

		obj.params = elements[i].childNodes[0].nodeValue;
		if (gms_isValidObject(obj.params) == false)
			continue;

		gms_loadPlayerIframe(obj);
	}

	return true;
}

gms_loadPlayerIframes();
