/*
 * Website Grader Client Side Library
 *
 * Updates badge sample page with text based on user supplied input.
 *
 * @ehebert
 */
 
var badgeSourceMachine = {
    badgeTemplate: '<a href="[websitegrader-base-url]site/[badge-site-url]">' + "\n" +
                            "\t" + '<img src="[badge-base-url]/site/[badge-site-url]" alt="The Website Grade for [badge-site-url]!">' + "\n" +
                            '</a>',
    tokenNames: [
        'badge-site-url', 
        'websitegrader-base-url', 
        'badge-base-url'
        ],
     getRenderedTemplate: function() {
         renderedSource = this.badgeTemplate;
         this.tokenNames.forEach(function(item) {
             var replacePattern = '\\[' + item.replace('/\-/g', '\\\-') + '\\]';
             renderedSource = renderedSource.replace(new RegExp(replacePattern, 'g'), $('#' + item).val());
         });
         return renderedSource
     },
     updateBadgeSource: function() {
         $('#badge-copy-paste-src').val(this.getRenderedTemplate());
     }
 }
 
 $(document).ready(function() {
    /*
     * Initialize Badge Text
     */
     badgeSourceMachine.updateBadgeSource();

     $('#badge-site-url').bind('keyup change blur', function() {
         badgeSourceMachine.updateBadgeSource();
     });
});