try{console;}catch(e){var console;}
(function($){window.config = config = {}; // namespace
/*
	TABLE OF CONTENTS
	
	1. misc
	2. Enumérateurs
	3. TBRStatus
	4. PStatus
	5. path
	6. qtip
	7. dsgn
*/

/*
	1. misc
______________________________________________________________________________________*/

	// [START] dev
	(function(){
	
		var // true false
		dev 		= false,
		debug 		= dev && false,
		debugFup 	= dev && false,
		moshi 		= dev && false,
		blackbird 	= dev && false
		;
		
		config.dev = dev;
		config.debugFup = debugFup;
		config.moshi = moshi;
		config.debug = function(bool){
			var c = arguments.callee;
			if(bool !== undefined){c.debug = bool;	return c;}
			return config.dev && c.debug;
		}(debug);
		config.blackbird = blackbird;
	
	})();
	// [END] dev
	
	// lang
	config.lang = $.cookie('lang') || 'fr';

/*
	2. Enumérateurs
______________________________________________________________________________________*/

	config.error = function(id){
		return config.error.storage[id];
	};
	
	config.error.storage = {
		'0': 'number attendu pour le paramètre "val"',
		'1': 'le paramètre "ns" ne respecte pas le motif enum[.const[|const]]'
	};

	config.EStatus = {
	
		//ETATS DES CONTENUS EDITORIAUX
		NONE: 		0, //pas de status (ne doit pas arriver)
		DRAFT: 		1, //en attente
		PUBLISHED: 	2, //publié sur site
		DELETED: 	3, //dans la corbeille
		
		// WEBSERVICE
		WS_SUCCESS: 		60,
		WS_FAILURE_DATA: 	61, 
		WS_FAILURE_SQL: 	62, 
		WS_FAILURE_LOGOFF: 	63, 
		WS_FAILURE_INI: 	64, 
		WS_FAILURE_SELECT: 	69, 
		
		// UPLOAD
		UPLOAD_SUCCESS: 		65, 
		UPLOAD_FAILURE: 		66, 
		UPLOAD_SIZE_FAILURE: 	67, 
		UPLOAD_FORMAT_FAILURE: 	68
	
	};

	config.EContentSiteType = {
	
		// CONTENUS EDITORIAUX
		NONE: 		0, //aucun (ne doit pas exister en base)
		ARTICLE: 	1, //article, plusieurs paragraphes
		NEWS: 		2, //news, brève : un seul paragraphe
		PAGE: 		3, //page libre	
		
		// CONTENUS DES MODULES
		FREE_BLOCK_PARTNERS: 	20, //bloc libre page partenaires
		FREE_BLOCK_REFERENCES: 	21, //bloc libre page références
		FREE_BLOCK_CONTACT: 	22, //bloc libre page contact
		FREE_BLOCK_COMPANY: 	23, //bloc libre page société
		FREE_BLOCK_HOMEPAGE: 	24, //bloc libre page d'accueil
		FREE_BLOCK_OFFERS: 		25, //bloc libre des promotions
		FREE_BLOCK_GALLERY: 	27, //bloc libre de la galerie
		FREE_BLOCK_ESTIMATE: 	28, // bloc libre page devis
		
		// CONTENUS GENERAUX
		FOOTER_CONTENT: 	26, //contenu du footer
		HTML_TAG_GOOGLE: 	30  //tag google analytics 
	
	};
	
	config.EWebPageType = {
		
		// TYPE DE PAGE WEB
		WEBPAGE_HEADING: 	10, //rubrique
		WEBPAGE_PAGE: 		11, //page
		
		// TYPE DE CONTENU
		CONTENT_EMPTY: 	0, //rien
		CONTENT_PACK: 	1, //pack
		CONTENT_PAGE: 	2  //page
		
	};

/*
	3. TBRStatus
______________________________________________________________________________________*/

	config.TBRStatus = {
		CLOSED: 	0,
		PANE1: 		1,
		PANE2: 		2,
		DEFAULT: 	2
	};

/*
	4. PStatus
______________________________________________________________________________________*/
	
	config.PStatus = {
	'1': { // draft
		flag: 'flag_orange.png',
		'class': 'PStatus-draft'
	}, 
	'2': { // published
		flag: 'flag_green.png', 
		'class': 'PStatus-published'
	},
	'3': { // deleted
		flag: 'bin_empty.png',
		'class': 'PStatus-deleted'
	}};

/*
	5. path
		5.1. base urls, utils
		5.2. base url
		5.3. media base url
______________________________________________________________________________________*/

	config.path = {};
	(function(p){ // p = config.path
	
		/*
			5.1. base urls, utils
		____________________________________________*/
	
		p.baseurl = '';
		p.mediaBaseurl = 'http://media.netnpack.net';
		
		// config.path.concat('http://netnpack', 'fr', 'societe', 'partenaires')
		// return 'http://netnpack/fr/societe/partenaires'
		p.concat = function(){
			var tmp = [];
			for(var i=0, l=arguments.length; i<l; i++){
			tmp.push(arguments[i]);}
			return tmp.join('/')
		};
	
		/*
			5.2. base url
				- utils
				- helpers route 'admin1'
				- helpers route 'admin2'
		____________________________________________*/
		
		// utils
		
		/* 
		 * r = 'my-route'
		 * o = {
		 *     module:     'my-module', 
		 *     controller: 'my-controller', 
		 *     action:     'my-action'
		 * }
		 */
		p.route = function(r, o){
			if(!o.language){o.language = config.lang;}
			return p.baseurl + '/' + p.route.storage[r]
			// EX: ':language/' -> p1='language', p2='/' -> o[p1]='fr'
			.replace(/:(\w*)?(\/)?/g, function(s, p1, p2){return o[p1] ? (o[p1]+(p2 || '')) : ''})
			.replace(/^\/+|\/+$/g, ''); // trim slashes
		};
		
		p.route.storage = {
			admin1: ':language/admin/:controller/:action',
			admin2: 'admin-forms/:module/:language/:action'
		};
		
		p.proxy = function(path, contentType){
			return p.concat(p.baseurl, config.lang, 'proxy') +
			'?path=' 		+ encodeURIComponent(path) +
			'&contentType=' + (contentType || 'text/plain')
		};
		
		// helpers route 'admin1'
		
		p.arbo = function(action){
			return p.route('admin1', {
				controller: 'arborescence', 
				action: 	action
			});
		};
		
		p.fup = {
			upload: 	p.route('admin1', {controller: 'upload-iframe'}),
			move: 		p.route('admin1', {controller: 'upload-ws', action: 'move'}),
			'delete': 	p.route('admin1', {controller: 'upload-ws', action: 'delete'})
		};
		
		// helpers route 'admin2'
		
		p.form = function(module, action){
			return p.route('admin2', {module: module, action: action});
		};
	
		/*
			5.3. media base url
		____________________________________________*/
		
		p.jquery 	= p.mediaBaseurl + '/common/js/jquery';
		p.nnp		= p.mediaBaseurl + '/common/js/nnp';
		p.misc		= p.mediaBaseurl + '/common/js/misc';
		
		// winbox template
		p.winboxTmpl = function(tmpl){return this.proxy(
			p.concat(
			p.nnp, 'Winbox/adapter', tmpl + '.html'
			), 'text/html'
		)};
		
		// toolbar template
		p.toolbarTmpl = function(tmpl){return this.proxy(
			p.concat(
			p.nnp, 'Toolbar/adapter', tmpl, 'asset', tmpl + '.html'
			), 'text/html'
		)};
		
		// editable template
		p.editableTmpl = function(tmpl){return this.proxy(
			p.concat(
			p.nnp, 'Editable/adapter', tmpl, 'asset', tmpl + '.html'
			), 'text/html'
		)};
		
	})(config.path);

/*
	6. qtip
______________________________________________________________________________________*/

	config.qtip = {
		ajaxForm: {
			target: 'topRight',
			show: 'mouseover',
			hide: 'mouseout',
			position: {
				corner: {target: 'rightTop', tooltip: 'bottomLeft'},
				adjust: {screen: true}
			},
			style: {
				background: '#CFDDFF',
				color: '#6786CF',
				fontSize: '11px',
				border: {width: 1, radius: 3, color: '#7493CF'},
				tip: {corner: 'bottomLeft', size: {x: 8, y: 10}}
			}
		},
		freepages: {
			target: 'topRight',
			show: 'mouseover',
			hide: 'mouseout',
			position: {
				corner: {target: 'rightMiddle', tooltip: 'bottomLeft'},
				adjust: {screen: true}
			},
			style: {
				color: '#666',
				fontSize: '11px',
				border: {width: 1, radius: 3},
				tip: {corner: 'bottomLeft', size: {x: 8, y: 10}}
			}
		},
		statusTip: {
			'fr': {
				description: 'Le statut d\351termine si vos donn\351es sont visibles par l\'internaute ou non.',
				infos : 'Il existe deux types de statuts :<br />- \'En attente\' qui enregistre vos donn\351es mais ne les affiche pas sur le site.<br />- \'Publi\351\' qui enregistre et affiche vos donn\351es sur le site.',
				warning : 'Si vos donn\351es n\'apparaissent pas sur le site, commen\347ez par v\351rifier leur statut.'
			}
		}
	};	
/*
	7. dsgn
______________________________________________________________________________________*/

	config.dsgnTheme = {
	offers: {
		'1': {
			layout: {
				val: [1, 2],
				pictAlign: ['L', 'R'],
				pictSize:  ['S', 'XL']
			},
			color: [1, 2],
			pictStyleByColor: {
				'1': [1, 2, 3],
				'2': [1, 2, 3]
			}
		 },
		 '2': {
			layout: {
				val: [1],
				pictAlign: ['L', 'R'],
				pictSize:  ['S', 'XL']
			},
			color: [1],
			pictStyleByColor: {
				'1': [1, 2, 3]
			}
		 }
	},
	partners: {
		'1': {
			layout: {
				val: [1],
				pictAlign: ['L', 'R'],
				pictSize:  ['S']
			},
			color: [1, 2],
			pictStyleByColor: {
				'1': [1, 2, 3],
				'2': [1, 2, 3]
			}
		 },
		 '2': {
			layout: {
				val: [1],
				pictAlign: ['L', 'R'],
				pictSize:  ['S']
			},
			color: [1],
			pictStyleByColor: {
				'1': [1, 2, 3]
			}
		 }
	},
	references: {
		'1': {
			layout: {
				val: [1],
				pictAlign: ['L', 'R'],
				pictSize:  ['S']
			},
			color: [1, 2],
			pictStyleByColor: {
				'1': [1, 2, 3],
				'2': [1, 2, 3]
			}
		 },
		 '2': {
			layout: {
				val: [1],
				pictAlign: ['L', 'R'],
				pictSize:  ['S']
			},
			color: [1],
			pictStyleByColor: {
				'1': [1, 2, 3]
			}
		 }
	},
	company: {
		'1': {

			layout: {
				val: [1],
				pictAlign: ['L', 'R'],
				pictSize:  ['S']
			},
			color: [1, 2]
		 }/*,
		 '2': {
			layout: {
				val: [1],
				pictAlign: ['L', 'R'],
				pictSize:  ['S']
			},
			color: [1]
		 }*/
	},
	contact: {
		'1': {
			layout: {
				val: [1],
				pictAlign: ['L', 'R'],
				pictSize:  ['S']
			},
			color: [1, 2]
		 }/*,
		 '2': {
			layout: {
				val: [1],
				pictAlign: ['L', 'R'],
				pictSize:  ['S']
			},
			color: [1]
		 }*/
	},
	news: {
		'1': {
			color: [1, 2],
			pictStyleByColor: {
				'1': [1, 2, 3],
				'2': [1, 2, 3]
			}
		 }
	},
	gallery: {
		'1': {
			layout: {
				val: [1],
				pictAlign: ['L', 'C', 'R']/*,
				pictSize:  ['S']*/
			},
			color: [1, 2]
		 },
		 '2': {
			layout: {
				val: [1],
				pictAlign: ['L', 'C', 'R']/*,
				pictSize:  ['S']*/
			},
			color: [1]
		 }
	}}
		
})(jQuery);
