@@ -4,111 +4,138 @@ var ALMCSS = function() {
44
55 'use strict' ;
66
7+ var SCRIPT_NAME = 'almcss.js' ;
8+
9+ // AlmcssError
10+
711 var AlmcssError = function ( message ) {
812 this . name = 'AlmcssError' ;
913 this . message = message ;
1014 } ;
1115
1216 AlmcssError . prototype = Object . create ( Error . prototype ) ;
1317
14- return {
15- AlmcssError : AlmcssError
16- } ;
18+ // basePath
1719
18- } ( ) ;
20+ // http://stackoverflow.com/questions/2161159/get-script-path
21+ var getBasePath = function ( ) {
22+ var scripts = document . getElementsByTagName ( 'script' ) ,
23+ i , length ;
24+
25+ for ( i = 0 ; i < scripts . length ; i ++ ) {
26+ var src = scripts [ i ] . getAttribute ( 'src' ) ;
27+ length = src . length - SCRIPT_NAME . length ;
28+ var name = src . substr ( length ) ;
29+ if ( name === SCRIPT_NAME ) {
30+ return src . substr ( 0 , length ) ;
31+ }
32+ }
33+ } ;
1934
20- ALMCSS . module = function ( ) {
35+ var basePath = getBasePath ( ) ;
2136
22- 'use strict' ;
37+ var module = function ( ) {
2338
24- var loadedModules = [ ] ;
39+ var loadedModules = [ ] ;
2540
26- var isAlreadyLoaded = function ( file ) {
27- return loadedModules . indexOf ( file ) !== - 1 ;
28- } ;
41+ var isAlreadyLoaded = function ( file ) {
42+ return loadedModules . indexOf ( file ) !== - 1 ;
43+ } ;
2944
30- var load = function ( file , whenDone ) {
31- var script = document . getElementsByTagName ( 'script' ) [ 0 ] ;
32- var module = document . createElement ( 'script' ) ;
33- module . setAttribute ( 'type' , 'text/javascript' ) ;
34- module . onload = function ( ) {
35- loadedModules . push ( file ) ;
36- whenDone . call ( null ) ;
45+ var load = function ( file , whenDone ) {
46+ var script = document . getElementsByTagName ( 'script' ) [ 0 ] ;
47+ var module = document . createElement ( 'script' ) ;
48+ module . setAttribute ( 'type' , 'text/javascript' ) ;
49+ module . onload = function ( ) {
50+ loadedModules . push ( file ) ;
51+ whenDone . call ( null ) ;
52+ } ;
53+ module . setAttribute ( 'src' , file ) ;
54+ script . parentNode . insertBefore ( module , script ) ;
3755 } ;
38- module . setAttribute ( 'src' , file ) ;
39- script . parentNode . insertBefore ( module , script ) ;
40- } ;
4156
42- /*
43- // http://www.denys-klymenko.com/blog/loading-external-javascript-files-dynamically-and-synchronously/
44- var include = function(files, whenDone) {
57+ // http://www.denys-klymenko.com/blog/loading-external-javascript-files-dynamically-and-synchronously/
58+ var include = function ( files , whenDone ) {
4559
46- function whenLoaded() {
47- files.shift();
48- if (files.length === 0) {
49- whenDone.call(null);
50- } else {
51- include.apply(this, [files, whenDone]);
60+ var file = files [ 0 ] ;
61+ if ( isAlreadyLoaded ( file ) ) {
62+ return ;
5263 }
53- }
64+ var script = document . getElementsByTagName ( 'script' ) [ 0 ] ;
65+ var module = document . createElement ( 'script' ) ;
66+ module . setAttribute ( 'type' , 'text/javascript' ) ;
67+ module . onload = function ( ) {
68+ files . shift ( ) ;
69+ if ( files . length === 0 ) {
70+ whenDone . call ( null ) ;
71+ } else {
72+ include . apply ( this , [ files , whenDone ] ) ;
73+ }
74+ } ;
75+ module . setAttribute ( 'src' , basePath + file ) ;
76+ script . parentNode . insertBefore ( module , script ) ;
77+ loadedModules . push ( file ) ;
78+ } ;
5479
55- var file = files[0];
80+ return {
81+ include : include
82+ } ;
5683
57- if (!isAlreadyLoaded(file)) {
58- load(file, whenLoaded);
84+ } ( ) ; // module
85+
86+ var init = function ( ) {
87+ var LoggerLevel = ALMCSS . debug . LoggerLevel ,
88+ logger = ALMCSS . debug . getLogger ( 'ALMCSS3 Main Function' , LoggerLevel . all ) ,
89+ parser = ALMCSS . parser . Parser ,
90+ log = logger . log ,
91+ info = logger . info ,
92+ templates = ALMCSS . template . templates ,
93+ createTemplateElements = ALMCSS . template . dom . createTemplateElements ,
94+ i ;
95+
96+ info ( 'Starting the main function of ALMCSS3...' ) ;
97+ var cssCache = ALMCSS . stylesheet . loadStyleSheets ( ) ;
98+ parser . parse ( cssCache ) ;
99+ if ( templates . length ) {
100+ info ( templates . length + ' templates were found:\n' ) ;
101+ for ( i = 0 ; i < templates . length ; i ++ ) {
102+ info ( templates [ i ] + '\n' ) ;
103+ if ( i < templates . length - 1 ) {
104+ info ( '---------------------------\n' ) ;
105+ }
106+ }
107+ } else {
108+ info ( 'No templates were found' ) ;
59109 }
110+ createTemplateElements ( templates ) ;
60111 } ;
61- */
62112
63- var include = function ( files , whenDone ) {
113+ var loadModules = function ( ) {
64114
65- var file = files [ 0 ] ;
66- if ( isAlreadyLoaded ( file ) ) {
67- return ;
68- }
69- var script = document . getElementsByTagName ( 'script' ) [ 0 ] ;
70- var module = document . createElement ( 'script' ) ;
71- module . setAttribute ( 'type' , 'text/javascript' ) ;
72- module . onload = function ( ) {
73- files . shift ( ) ;
74- if ( files . length === 0 ) {
75- whenDone . call ( null ) ;
76- } else {
77- include . apply ( this , [ files , whenDone ] ) ;
78- }
79- } ;
80- module . setAttribute ( 'src' , file ) ;
81- script . parentNode . insertBefore ( module , script ) ;
82- loadedModules . push ( file ) ;
115+ var include = module . include ;
83116
117+ include ( [
118+ 'debug.js' ,
119+ 'stylesheet.js' ,
120+ 'css.js' ,
121+ 'parser.js' ,
122+ 'template.js' ,
123+ 'template_dom.js'
124+ ] , init ) ;
84125 } ;
85126
86-
87127 return {
88- include : include
128+ module : module ,
129+ AlmcssError : AlmcssError ,
130+ start : loadModules
89131 } ;
90132
91133} ( ) ;
92134
93- var init = function ( ) {
94-
95- ALMCSS . debug . init ( ) ;
96- var getLogger = ALMCSS . debug . getLogger ;
97-
98- var css = ALMCSS . stylesheet . loadStyleSheets ( ) ;
99- lexer . init ( css ) ;
100- var token ;
101- while ( ( token = lexer . nextToken ( ) ) !== Token . EOF ) {
102- log ( token . toString ( ) ) ;
103- }
104- log ( 'Fin de fichero' ) ;
105- } ;
106-
107135window . onload = function ( ) {
108- var include = ALMCSS . module . include ;
109- //include('js/almcss3/debug.js', init);
110- include ( [ 'js/almcss3/debug.js' , 'js/almcss3/stylesheet.js' , 'js/almcss3/lexer.js' ] , init ) ;
111- //include(['js/almcss3/debug.js'], init);
112136
137+ 'use strict' ;
138+
139+ ALMCSS . start ( ) ;
113140
114141} ;
0 commit comments