All Downloads are FREE. Search and download functionalities are using the official Maven repository.

main.resources.js.helpers.js Maven / Gradle / Ivy

There is a newer version: 0.96-beta4
Show newest version

/*******************************************************************************
 * Copyright (c) 2011-2014 Fernando Petrola
 * 
 * This file is part of Dragome SDK.
 * 
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the GNU Public License v3.0
 * which accompanies this distribution, and is available at
 * http://www.gnu.org/licenses/gpl.html
 ******************************************************************************/

EventDispatcher = {};
_ed = EventDispatcher;
var __next_objid = 1;

function objectId(obj)
{
	if (obj == null)
		return null;
	if (obj.__obj_id == null)
		obj.__obj_id = __next_objid++;
	return obj.__obj_id;
}

function decode_base64(s)
{
	var b = l = 0, r = '', s = s.split(''), i, m = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');
	for (i in s)
	{
		b = (b << 6) + m.indexOf(s[i]);
		l += 6;
		while (l >= 8)
			r += String.fromCharCode((b >>> (l -= 8)) & 0xff);
	}
	return r;
}

function getOuterHTML(anElement)
{
	var parent = anElement.parentNode;
	var hasParent = parent != null;
	if (!hasParent)
	{
		parent = document.createElement("div");
		parent.appendChild(anElement);
	}

	var temp = document.createElement(anElement.tagName);
	parent.replaceChild(temp, anElement);

	var div = document.createElement('div');
	div.appendChild(anElement);
	result = div.innerHTML;

	parent.replaceChild(anElement, temp);

	if (!hasParent)
		parent.removeChild(anElement);

	return result;
}

function stopEvent(pE)
{
	if (!pE)
		if (window.event)
			pE = window.event;
		else
			return;
	if (pE.cancelBubble != null)
		pE.cancelBubble = true;
	if (pE.stopPropagation)
		pE.stopPropagation();
	if (pE.preventDefault)
		pE.preventDefault();
	if (window.event)
		pE.returnValue = false;
	if (pE.cancel != null)
		pE.cancel = true;
}

function rgb2html(red, green, blue)
{
	var decColor = red + 256 * green + 65536 * blue;
	return decColor.toString(16);
}

function getQuerystring(key, default_)
{
	if (default_ == null)
		default_ = "";
	key = key.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
	var regex = new RegExp("[\\?&]" + key + "=([^&#]*)");
	var qs = regex.exec(window.location.href);
	if (qs == null)
		return unescape(default_);
	else
		return unescape(qs[1]);
};

function executeLocalstorageQuery(tx, aQuery, parameters, callback)
{
	// alert("executing: "+aQuery+" - "+ parameters);
	tx.executeSql(aQuery, parameters, callback);
}

window.performance = window.performance || {};
performance.now = (function()
{
	return performance.now || performance.mozNow || performance.msNow || performance.oNow || performance.webkitNow || function()
	{
		return new Date().getTime();
	};
})();

function jQueryHttpRequest(isAsync, url, parameters, asyncCallback, crossDomain, isGet)
{
	if (crossDomain != "true")
	{
		isAsync = isAsync && isAsync != "false";

		var ajaxParameters = {
			async : isAsync,
			contentType : 'application/x-www-form-urlencoded',
			dataType : 'text',
			success : null,
			error : null
		};

		if (isAsync)
		{
			ajaxParameters.success = function(data)
			{
				if (data != "null")
					asyncCallback.$onSuccess___java_lang_Object$void(data);
			};

			ajaxParameters.error = function()
			{
				asyncCallback.$onError$void();
			};
		}

		$.ajaxSetup(ajaxParameters);

		var result = isGet ? $.get(url, parameters) : $.post(url, parameters);
		return result.responseText;
	} 
	else
	{
		fileParameter = parameters.file ? "file=" + parameters.file + "&" : "";
		var a = $.getJSON(url + '?' + fileParameter + 'callback=?', function(data)
		{
			var tranformedData = eval(parameters.transformer);
			asyncCallback.$onSuccess___java_lang_Object$void(tranformedData);
		});
	}
}

function socketCreator(aUrl, successCallback, errorCallback)
{
	window.onSocketMessage = successCallback;
};

function getTemplatePart(content, id)
{
	var mainElement = document.createElement('div');
	mainElement.setAttribute("style", "display:none;");
	document.body.appendChild(mainElement);

	var uniqueId = new Date().valueOf();

	var data = content.replace('
', '
'); mainElement.innerHTML = data; var foundElement = getDocumentElementByAttributeValue(document, "data-template", id); if (!foundElement) foundElement = document.getElementById("body" + uniqueId); foundElement.removeAttribute("data-template"); var subElement = document.createElement('div'); subElement.appendChild(foundElement); mainElement.parentElement.removeChild(mainElement); return subElement.innerHTML; } function getURL(url) { return $.ajax({ type: "GET", url: url, cache: false, async: false }).responseText; } function refreshPageSetup() { lastCompilationTime = parseInt(getURL("compiler-service")); if (getQuerystring("refresh") == "true") setInterval(function() { var compilationTime = parseInt(getURL("compiler-service")); if (compilationTime > lastCompilationTime) { lastCompilationTime = compilationTime; window.location.reload(); } }, 500); } if (getQuerystring("refresh") == "true") refreshPageSetup(); // if (getQuerystring("debug") != "true") // document.getElementById("console").style.display="none"; function getElementByDebugId(attrib) { return document.querySelectorAll('[data-debug-id="' + attrib + '"]')[0]; } function getElementByAttributeValue(attribName, value) { return getDocumentElementByAttributeValue(document, attribName, value); } function getDocumentElementByAttributeValue(aDocument, attribName, value) { return aDocument.querySelectorAll('[' + attribName + '="' + value + '"]')[0]; } function checkStyleSheet(url) { var found = false; for ( var i = 0; i < document.styleSheets.length; i++) { if (document.styleSheets[i].href == url) { found = true; break; } } if (!found) { $('head').append($('')); } } checkStyleSheet("dragome/dragome.css"); function setupCheckCast() { if (getQuerystring("check-cast-disabled") == "true") dragomeJs.checkCast= function (obj){return obj}; }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy