if (typeof(window["acms"]) == "undefined") var acms = {};

/***********************/
	acms.debug = false;
/***********************/

$(document).ready(function(){
	acms.utils = {
	
			
		getQueryParam : function(name,stringToSearchIn) {
			
			if (!stringToSearchIn) stringToSearchIn = window.location.href;
			
			name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
			var regexS = "[\\?&]"+name+"=([^&#]*)";
			var regex = new RegExp( regexS );
			var results = regex.exec( stringToSearchIn );
			if( results == null )
				return "";
			else
				return decodeURIComponent(results[1].replace(/\+/g, " "));
		},
		
		toJSON : function(obj) {
			return $.toJSON(obj);
		},
		
		
		log : function(text) {
			if ( acms.debug )
				console.log(text);
		},
		
		cookie : {
			set : function(name,value,days) {
					if (days) {
						var date = new Date();
						date.setTime(date.getTime()+(days*86400000));
						var expires = "; expires="+date.toGMTString();
					} else var expires = "";
					document.cookie = name+"="+value+expires+"; path=/";
			},
			get : function(name) {
					var nameEQ = name + "=";
					var ca = document.cookie.split(';');
					for(var i=0;i < ca.length;i++) {
						var c = ca[i];
						while (c.charAt(0)==' ') c = c.substring(1,c.length);
						if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
					}
					return null;
			}
		},
		
		_preloadImagesCache : [],
		preloadImages : function(images, callback){
			
	        //convert to array if needed so rest of script works
	        if (!(images instanceof Array)) {
	            images = [images];
	        }
	        
	        var imagesLength = images.length;
	        var loadedCounter = 0;
	        
	        acms.utils.log("acms.utils.preloadImages() ["+imagesLength+" images]");
	        
	        for (var i = imagesLength; i--;) {
				var cacheImage = document.createElement('img');
				//set the onload method before the src is called otherwise will fail to be called in IE
	            cacheImage.onload = function(){
	            	acms.utils.log("acms.utils.preloadImages() ["+(loadedCounter+1)+"/"+imagesLength+" loaded]");
	                loadedCounter++;
	                if (loadedCounter >= imagesLength) {
	                    if ($.isFunction(callback)) {
	                        callback();
	                    }
	                }
	            };
	            cacheImage.src = images[i];
	            acms.utils._preloadImagesCache.push(cacheImage);
	        }
	    }
		
		
	
		
		
	};
});
