noun_type_lorem = new CmdUtils.NounType( "Type",["chars", "words", "phrases", "paragraphs", "texts"] );

var loremIpsum = 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Fusce rutrum nibh vitae nunc tincidunt porttitor. Maecenas non turpis. Mauris bibendum orci ac dui. Sed turpis augue, pellentesque at, ultricies ut, vulputate ac, augue. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Pellentesque congue. Donec ultrices aliquet mi. Nam hendrerit viverra risus. Etiam posuere pede in orci. Aliquam diam purus, interdum et, ultricies vel, feugiat ac, nibh. Sed lacus metus, hendrerit nec, tempor eu, pulvinar quis, sem.|Aliquam vel sapien suscipit mauris placerat scelerisque. Vivamus fringilla. Nullam sit amet lectus. Sed elementum dui in est. Aliquam erat volutpat. Proin non neque. Aliquam erat volutpat. Ut sed augue eu nisl hendrerit congue. Sed quis nulla. Quisque ultricies pede iaculis nulla. Mauris sem risus, luctus a, iaculis sit amet, mollis eu, ligula. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Vivamus eu elit. Ut lectus felis, auctor non, accumsan eget, feugiat vitae, elit. Quisque nec pede. In non mi et risus fermentum ultricies. Donec vestibulum sodales turpis. Mauris tincidunt, felis quis convallis posuere, purus pede commodo arcu, at consequat est justo non justo. In hac habitasse platea dictumst. Duis sapien quam, eleifend sit amet, venenatis eu, posuere pellentesque, velit. Duis molestie est ut ligula.|Sed egestas neque nec tellus. Donec mollis tellus id pede. Vivamus nec lectus eget dolor lobortis fermentum. Vestibulum varius sapien a nisi. Praesent et sem porta urna accumsan pulvinar. Sed mi. Aliquam mauris. Suspendisse tempus tortor at neque. Nunc sed mauris. Nulla consectetuer. Cras posuere elit in quam.|In laoreet enim in lacus. Curabitur luctus lectus sed est. Suspendisse laoreet, leo vel aliquam hendrerit, ante dui tempor quam, sed aliquet leo purus viverra urna. Maecenas volutpat quam vitae sem. Pellentesque rutrum condimentum elit. Vivamus sit amet turpis ac nulla sollicitudin mollis. Sed quam dui, ultricies vel, elementum non, tristique nec, diam. Nulla vitae nulla eu arcu ultricies laoreet. Suspendisse tristique rhoncus quam. In tellus. Integer tempus dictum lorem. Phasellus sollicitudin. Nam at ipsum. Proin blandit dui at turpis. Sed placerat felis ac ligula.|Sed vehicula, purus id posuere feugiat, massa eros blandit libero, sed cursus lacus orci sit amet velit. Duis quis nibh ut enim dignissim sodales. Suspendisse lacus arcu, tincidunt tempus, scelerisque non, sodales eu, odio. Phasellus at orci vel tellus porttitor vehicula. Sed posuere. Nam suscipit mauris nec nisl. Cras elementum arcu consectetuer pede ornare porttitor. Praesent non arcu. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Morbi ut odio. Aliquam consequat, ligula id dapibus volutpat, erat tortor euismod nunc, sed consectetuer nibh ipsum quis tellus. Etiam quam. Mauris semper. Curabitur sed lacus et sapien luctus vulputate. Nullam venenatis bibendum lacus. Aliquam consectetuer nunc nec tellus.|Phasellus luctus dui non odio. Sed interdum, quam rutrum convallis aliquam, turpis tellus vulputate dui, non tincidunt lacus mi sodales urna. Vestibulum urna. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed libero tellus, ultricies et, venenatis ut, mattis quis, nunc. Maecenas et libero. Pellentesque non nulla. Nam in ipsum ut felis dignissim porta. In hac habitasse platea dictumst. Integer vitae eros ut ipsum imperdiet bibendum. Donec pharetra, mi vitae facilisis pellentesque, diam orci pharetra lacus, vel lobortis diam nunc at lacus. Etiam vehicula. Ut molestie vehicula metus. Nunc vulputate.|Maecenas interdum, nunc non consectetuer ornare, nibh enim rutrum urna, sit amet interdum diam orci eu justo. Sed cursus egestas tortor. Nulla euismod. Praesent feugiat, orci imperdiet faucibus luctus, sapien est faucibus urna, et vestibulum lectus nunc ac quam. Vivamus commodo ligula. Sed et magna id quam aliquet tincidunt. Suspendisse tempor libero porttitor mauris. Sed accumsan aliquet magna. Curabitur lacinia mauris. Pellentesque nec purus et dui interdum posuere.|Suspendisse neque magna, interdum elementum, viverra pulvinar, blandit vel, elit. Vestibulum orci. Sed tempor pellentesque enim. In hendrerit, tellus ut auctor adipiscing, est leo tincidunt ipsum, sit amet luctus neque mauris vitae pede. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Curabitur nunc. Sed augue nisi, placerat at, pulvinar accumsan, commodo ut, urna. Pellentesque vitae leo quis sapien pulvinar malesuada. Proin tincidunt, felis in dapibus blandit, lacus urna vestibulum lacus, ut consequat eros diam ac nisi. Proin dapibus lectus sit amet elit sagittis rutrum. Nullam a nibh. Morbi odio dolor, vestibulum non, fermentum eget, posuere in, nisi. Nam pulvinar, nunc vitae congue facilisis, augue nunc commodo eros, nec cursus orci dolor sed orci. Etiam ligula augue, sagittis sit amet, porta vel, sollicitudin eu, ante. Proin egestas rhoncus enim. Integer velit mauris, porta in, blandit quis, viverra a, erat. Lorem ipsum dolor sit amet, consectetuer adipiscing elit.|Donec sem felis, viverra ac, gravida quis, tempor in, velit. Integer sem. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vestibulum eget sapien. Pellentesque consequat, ante ut gravida venenatis, sem nisi egestas erat, at faucibus sem eros et ligula. Phasellus enim ligula, semper in, vehicula nec, blandit vitae, quam. Vestibulum rhoncus. Ut eget risus. Sed vitae mauris. Mauris porta. Sed lectus. Nulla porttitor magna ac massa. Donec ut sapien non lacus tempor porta. Proin ac dolor. Duis semper. Aenean nec justo. Ut at erat eu tellus accumsan bibendum.|Fusce pharetra lacus. Nunc mattis arcu in justo. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec at metus eget justo blandit hendrerit. In hac habitasse platea dictumst. Nullam tincidunt porta nibh. Sed eget nisi. Curabitur vitae enim. Morbi bibendum quam dignissim nisi. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Quisque iaculis lacinia tortor. Mauris ut ligula.';

var msg = '';

function loremFunction(qtde, tipo){
	
	msg = ''

    var contChar = 0;

    if(tipo == 'chars'){
        for(i=0;i<qtde;i++){
         msg += loremIpsum[i];
        }
        while(msg.indexOf('|')!=-1){
           msg = msg.replace('|',' ');
        }
    }

    
    if(tipo == 'words'){
        for(i=0;i<qtde;i++){
            while(loremIpsum[contChar]!=' '){
                msg += loremIpsum[contChar];
                contChar++;
                if(contChar>=loremIpsum.length) contChar = 0;
            }
            contChar++;
            if(contChar>=loremIpsum.length) contChar = 0;
            if(i+1<qtde)msg += ' ';
        }
        while(msg.indexOf('|')!=-1){
           msg = msg.replace('|',' ');
        }
    }

    
    if(tipo == 'phrases'){
        for(i=0;i<qtde;i++){
            while(loremIpsum[contChar]!='.'){
                msg += loremIpsum[contChar];
                contChar++;
                if(contChar>=loremIpsum.length) contChar = 0;
            }
            contChar++;
            if(contChar>=loremIpsum.length) contChar = 0;
           if(i+1<qtde) msg += '.';
        }
        while(msg.indexOf('|')!=-1){
           msg = msg.replace('|',' ');
        }
    }
    
    if(tipo == 'paragraphs'){
        if(qtde>10){
            while(qtde>10){
                msg += loremIpsum;
                while(msg.indexOf('|')!=-1){
                   msg = msg.replace('|','<br/><br/>');
                }
                qtde = qtde - 10;
            }
        }
        for(i=0;i<qtde;i++){
            while(loremIpsum[contChar]!='|'){
                msg += loremIpsum[contChar];
                contChar++;
                if(contChar>=loremIpsum.length) contChar = 0;
            }
            contChar++;
            if(contChar>=loremIpsum.length) contChar = 0;
            if(i+1<qtde) msg += '<br/><br/>';
        }
    }

    
    if(tipo == 'texts'){
        for(i=0;i<qtde;i++){
        msg += loremIpsum;
        }
        while(msg.indexOf('|')!=-1){
           msg = msg.replace('|','<br/><br/>');
        }
    }
}

CmdUtils.CreateCommand({
    name: "lorem",
    description: "Lorem Ipsum Generator",
    homepage: "http://www.tidbits.com.br/",
    author: { name: "Danilo Augusto", email: "contato@daniloaugusto.com.br"},
    takes: {quantity: noun_arb_text},
    modifiers: {of: noun_type_lorem},
    preview: function( pblock, quantity, mods ) {
        var subs = {quantity: quantity.text, of: mods.of.text};   
        var tipo = mods.of.text;
        pblock.style.maxHeight = '400px';
        pblock.style.overflow = 'auto';
        if(quantity.text!='' && tipo!=''){
            var qtde = parseInt(quantity.text);
            loremFunction(qtde,tipo);
            pblock.innerHTML = msg;
        }
    },
    execute: function( pblock, quantity, mods ) {
        CmdUtils.setSelection(msg);
    }
});


