appUtils = {};

appUtils.log = function(s){
	if (isset(appGlobals.MASTER_DEBUG) && appGlobals.MASTER_DEBUG) {
		try{
			console.log(s);
		} catch(e){}
	}
};

appUtils.preloadImageCache	= [];

appUtils.preloadImages	= function (data) {
    var num	= data.length;
    for (var i = num; i--;) {
    	if ($.inArray(data[i], appUtils.preloadImageCache)<0) {
			var cacheImage = document.createElement('img');
			cacheImage.src = data[i];
			appUtils.preloadImageCache.push(cacheImage);
    	}
    }
};

appUtils.loadHTMLAndJSON = function($container, url, params, callBack){
	$.ajax({url : url, data : params, dataType : 'json', type: 'post', success : function(data){
		
		$container.html(data.html);
		
		if(callBack){
			callBack(data.vars);
		}
		
	}});
};

appUtils.loadJSON = function(url, params, callBack){
	$.ajax({url : url, data : params, dataType : 'json', type: 'post', success : function(data){
		if(callBack){
			callBack(data);
		}
	}});
};


appUtils.trimLeadZeros = function(s) {
    return s.replace(/^0+/, "");
};

appUtils.padDigits = function(n, totalDigits) {
	n = n.toString(); 
	var pd = ''; 
	if (totalDigits > n.length) { 
		for (i=0; i < (totalDigits-n.length); i++) {
			pd += '0';
		}
	}
	return pd + n.toString(); 
};

appUtils.checkEmail = function(s){
	if(s.length == 0)
		return true;
	if(s.indexOf('@') != s.lastIndexOf('@'))
		return false;
	var regex = /[A-Za-z0-9_-]+([.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([.]{1}[A-Za-z0-9-]+)+/;
	return regex.test(s);
};

appUtils.counterRandId = 0;

appUtils.fetchRandId = function () {
	return "JS" + appGlobals.TIME_NOW + "_" + appUtils.counterRandId++;
};

appUtils.findByAttr = function($items, attName, attValue){
	var ret = null;
	$items.each(function(i, elt){
		var $elt = $(elt);
		//appUtils.log($elt.attr('rel') + '=' +  url);
		if($elt.attr(attName) == attValue){
			ret = $elt;
		}
	});
	return ret;
};

appUtils.reFade = function (targetEl) {
	appUtils.log("ReFade element "+targetEl);
	try {
		$(targetEl).fadeOut(0);
		$(targetEl).fadeIn(700);
	} catch (e) {}
};

appUtils.parseDateString	= function (dateString) {
	/*	
		if (Date.parse(dateString) !== "NaN") {
			var retDate	= new Date();
			retDate.setTime(Date.parse(dateString));
		} else {
			var retDate	= $.datepicker.parseDate('yy-mm-dd', dateString);
		}
	*/
	var retDate	= $.datepicker.parseDate("yy-mm-dd", dateString);
	
	return retDate.getDate() + " " + appGlobals.LANG_MONTH_NAMES[retDate.getMonth()] + ", " + retDate.getFullYear();
}

appUtils.extractNameID	= function (nameID) {
	if (nameID) {
		var separator	= (arguments[1])	?	arguments[1]	:	"_";
		var arr	= nameID.split(separator);
		return (arr.length)	?	arr[arr.length-1]	:	false;
	} else {
		return false;
	}
}

appUtils.stripTags		= function (inputString) {

	//appUtils.log(inputString);
	
	/*
	var tmp = document.createElement("DIV");
	tmp.innerHTML = inputString;
	return tmp.textContent||tmp.innerText;
	*/

	if(arguments.length < 3) {
		inputString=inputString.replace(/<\/?(?!\!)[^>]*>/gi, '');
		inputString=inputString.replace(/\*/gi, '');
	} else {
		var allowed = arguments[1];
		var specified = eval("["+arguments[2]+"]");
		if(allowed){
			var regex='</?(?!(' + specified.join('|') + '))\b[^>]*>';
			inputString=inputString.replace(new RegExp(regex, 'gi'), '');
		} else{
			var regex='</?(' + specified.join('|') + ')\b[^>]*>';
			inputString=inputString.replace(new RegExp(regex, 'gi'), '');
		}
	}
	var clean_string = inputString;
	
	//appUtils.log(clean_string);
	
	return clean_string;
	
}

appUtils.extractTagID	= function (nameID) {
	var separator	= (arguments[1])	?	arguments[1]	:	"_";
	var arr	= nameID.split(separator);
	return (arr.length)	?	arr[arr.length-1]	:	false;
}

function isset (variable) {
	if ( typeof variable !=="undefined") {
		return true;
	} else {
		return false;
	}
}

function isdom (id) {
	return ($("#"+id).length>0)	?	true	:	false;
}

function boolval (par) {
	return (isset(par) && parseInt(par))	?	true	:	false;
}

