// templateスクリプト.
//

// Templateオブジェクト.
Template = function() {} ;

// ファイルからテンプレート実行結果を取得.
Template.getTemplate = function( name,params ) {
    var data = Template.readTemplateFile( name ) ;
    return Template.executionTemplate( data,params ) ;
} ;

// テンプレートファイルを取得.
Template.readTemplateFile = function( name ) {
    if( useString( name ) == false ) {
        return null ;
    }
    var dir = "./template" ;
    if( startsWith( name,"/" ) == false ) {
        name = "/" + name ;
    }
    if( Io.isFileExists( dir+name ) == false ) {
        return null ;
    }
    return Io.readFileByString( dir+name,"UTF8" ) ;
}

// 指定テンプレートを実行して処理結果を取得.
Template.executionTemplate = function( template,params ) {
    var bufName = "mailTemplateBuf" ;
    var header = "var "+bufName+" = new StrBuf();" ;
    var fooder = "mailTemplateBuf.toString();";
    var output = "mailTemplateBuf.append" ;
    var enterTo = "\\n" ;
    template = org.maachang.comet.httpd.engine.script.scripts.TemplateScriptAnalysis.analysis(
        enterTo,header,fooder,output,template ) ;
    if( isNull( params ) == false ) {
        putBindings( "template",params ) ;
    }
    template = _eval( template ) ;
    removeBindings( bufName ) ;
    if( isNull( params ) == false ) {
        removeBindings( "template" ) ;
    }
    return template ;
}
