/**

Author			: Fabio Bonacina
Version			: 1.0.04
Created			: 16/08/2008
Last Modified	: 05/10/2009
Description		: initialization of the environment
Modifications	: 
	- personalization for customer
	- fixed error on reload (moved initialization call after vars declaration)
	- changed Versions{}
ToDo			: 
**/

var Versions={
	 initialization: "1.0.04"
	,login: "1.0.05"
	,utilities: "1.1.22"
	,workingarea: "1.0.06"
	,extensions: "1.1.11"
	,jquery: "1.3.2"
}

var Configuration={
	 messaging: false
	,debug: false
	,login: true
	,title: "DECOM BG - Gestionale"
	,itemsPerPage: 12
	,activityMessage: ""
	,welcomeMessage: "Benvenuto nel gestionale di <strong>decombg.it</strong> !<br /><br />"+
					 "A sinistra trovi il pannello dei comandi da utilizzare per aggiungere, modificare e rimuovere i dati oltre alle aree a cui sei abilitato.<br /><br /><br />"+
					 "Grazie mille per l'impegno e buon lavoro!<br />"+
					 "<span>Simone Cavadini (admin)</span>"
	,ajaxErrors: function(data,status,err){return null}
	,_ajaxErrors: function(data,status,err){return null}
	,ajaxBeforeSend: function(xhr){
		if(this.messageID!=null)this.oldMID=this.messageID;
		this.messageID=$.activityAddMessage(Configuration.activityMessage);
	}
	,ajaxComplete: function(xhr,status){		
		$.activityRemoveMessage(this.messageID);
		if(this.oldMID!=null){
			this.messageID=this.oldMID;
			this.oldMID=null;
		}
	}
	,languages: {}
}
var log={};

$(document).ready(function(){
	Initialize();
});

function Initialize(){
	// setting up AJAX environment
	$.ajaxSetup({
		 cache:false
		,error:function(request,status,err){/*ajax_errors(request,status,err)*/Configuration.ajaxErrors(request,status,err);}
		,beforeSend:function(xhr){Configuration.ajaxBeforeSend(xhr);}
		,complete:function(xhr,status){Configuration.ajaxComplete(xhr,status);}
	});
	if(Configuration.messaging){$("#messages").show()}else{$("#messages").hide()}
	if(Configuration.login){$("#login_container").show().center()}else{$("#login_container").hide()}
	Configuration.ajaxErrors=ajax_errors;
	$(document).attr("title",Configuration.title);
	if(Configuration.debug){
		Configuration.activityMessage="Caricamento utility di debug in corso..";
		$.ajax({
			 async: false
			,url: "dbg/blackbird.js"
			,type: "get"
			,dataType: "text"
			,success: function(data,status){
					debugCode_Loaded(data);
				}
		});
		window.onerror=function(message,url,line){
			log.error("line: "+line+"<br />document: "+url+"<br />"+message);
		}
	}else{
		log.error=function(){};
		log.warn=function(){};
		log.debug=function(){};
		log.info=function(){};
		log.clear=function(){};
		window.onerror=function(message,url,line){
			alert("An unhandled error occurred:\n"+message+"\ndocument: "+ url+"\n line: "+line);
		}
	}
}

// default function used to display AJAX error messages
function ajax_errors(request,status,err){
	alert(
	"status code: " + request.status +"\n" +
	"status text: " + request.statusText +"\n" +
	"response text: " + request.responseText
	);
}

function user_getClass(type)
{
	alert("user_getClass() da implementare !!");return "user_normal"
}

function debugCode_Loaded(data){
	$("<script>"+data+"</script>").appendTo(document.body);
}

function active_languages_load(){
	// Loading active languages
	Configuration.activityMessage="Caricamento lingue attive in corso..";
	$.ajax({
		 async: false
		,url: "provider.aspx"
		,type: "get"
		,dataType: "xml"
		,data: {
			 res: "language"
			,session: User.session
			,f: ""
			,q: "selectactive"
			,t: "xml"
		}
		,success: function(data,status){
				active_languages_loaded(data);
			}
	});
}
function active_languages_loaded(data){
	/*alert(data);return true;*/
	var errors=response_errors(data);
	var extraXML=response_extraxml(data);
	if(errors==null){
		var $data=$(extraXML).find("item");
		for(var i=0;i<$data.length;i++){
			Configuration.languages[$($data[i]).find("id:first").text()]=$($data[i]).find("description:first").text();
		}
	}else{
		alert(errors.description+"\n"+errors.level);
	}
}
