$(document).ready(function() {
	mallgrodan = new Mallgrodan();

	$("#errorBoxCloseButton").click(function() {
	    $("#errorResultBox").hide("normal");
	});
});

String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ''); }

Mallgrodan = function() { }

Mallgrodan.prototype.showAjaxLoader = function() {
	$("body").css("cursor", "wait");
	if (!$("#ajaxLoadingImage").length) {
		var loader = "<div id='ajaxLoadingImage'><img src='public/images/ajax-loader.gif' /></div>";
		$("body").append(loader);
	}
	$("#ajaxLoadingImage").show();
}

Mallgrodan.prototype.hideAjaxLoader = function() {
	$("#ajaxLoadingImage").hide();
	$("body").css("cursor", "auto");
}

// E.g.: http://www.example.com/edit.php?id=170&action=pageProperties
Mallgrodan.prototype.getVarFromUrl = function(url, varName) {
	var i = url.indexOf("?");
	if ((i == -1) || (i + 1 >= url.length))
		return false;
	var varPart = url.substr(i + 1);
	var value = varPart.match("(^|&)" + varName + "=([^&]*)(&|$)");
	if (value == null)
		return false;
	return value[2];
}

// E.g.: http://www.example.com/edit.php?id=170&action=pageProperties
Mallgrodan.prototype.getVarsFromUrl = function(url) {
	var i = url.indexOf("?");
	if ((i == -1) || (i + 1 >= url.length))
		return false;
	var varPart = url.substr(i + 1);
	var parameters = varPart.split(/&/);
	var vars = {};
	for (var i in parameters) {
		if (parameters[i].indexOf("=") != -1) {
			var pair = parameters[i].split(/=/);
			vars[pair[0]] = pair[1];
		}
		else
			vars[parameters[i]] = "";
	}
	return vars;
}

Mallgrodan.prototype.changeVarInUrl = function(url, varName, varValue) {
	var i = url.indexOf("?");
	if ((i == -1) || (i + 1 >= url.length))
		return false;
	var pagePart = url.substr(0, i);
	var varPart = url.substr(i);
	var regExp = new RegExp("(^|&)" + varName + "=([^&]*)(&|$)");
	var newVarPart = varPart.replace(regExp, "$1" + varName + "=" + varValue + "$3");
	return pagePart + newVarPart;
}

Mallgrodan.prototype.animateChangeContent = function(selector, speed, html) {
	$(selector).fadeOut(speed, function() {
	        $(selector).html(html);
	        $(selector).fadeIn(speed);
	    });
}

Mallgrodan.prototype.clone = function(myObj) {
	if (typeof(myObj) != 'object') return myObj;
	if (myObj == null) return myObj;

	var myNewObj = new Object();

	for (var i in myObj)
		myNewObj[i] = this.clone(myObj[i]);

	return myNewObj;
}

Mallgrodan.prototype.blockPage = function(callback, elem) {
	$("body").append("<div id='mallgrodanBlockPageBox'></div>");
	$("#mallgrodanBlockPageBox").fadeTo(1000, 0.5);
	if (typeof elem != "undefined")
		elem.css("z-index", "100");
	if ((typeof callback != "undefined") && (callback))
		callback();
}

Mallgrodan.prototype.unblockPage = function(callback) {
	$("#mallgrodanBlockPageBox")
	    .fadeTo(1000, 0,
	            function() {
	            	$("#mallgrodanBlockPageBox").remove();
	            	if (typeof callback != "undefined")
	            		callback();
	            });
}

/*
Mallgrodan.prototype.isGradientSupported = function() {
	var elem = !!new Element('div').setStyle('background', 'linear-gradient(black, white)').getStyle('background') || !!new Element('div').setStyle('background', '-moz-linear-gradient(black, white)').getStyle('background') || !!new Element('div').setStyle('background', '-webkit-gradient(linear, 0% 0%, 0% 100%, from(black), to(white))').getStyle('background');
}
*/

