var jobberbadge = function() {

     /* configuration */

    var config = {

         countDefault: 5,

         badgeID: 'jobberbadge',

         outputID: 'jobberbadgelist',

         stylesmatch: /skin-(\w+)/,

         amountmatch: /amount-(\d+)/,

         styles: {
                  'blue': 'jobber/skin-badge-blue.css',

                  'green': 'jobber/skin-badge-green.css',

                  'black': 'jobber/skin-badge-black.css',

                  'orange': 'jobber/skin-badge-orange.css'
                 }      

        };

     /* private methods */

     var badge;   

       function init() {
 
           badge = document.getElementById(config.badgeID);

           head = document.getElementsByTagName('head')[0];

             if(badge) {

                var link = badge.getElementsByTagName('a')[0];

                   if(link) {

                          classdata = badge.className;

                      var amount = config.amountmatch.exec(classdata);

                          amount = amount ? amount[1] : config.countDefault;
 
                      var skin = config.stylesmatch.exec(classdata);

                      var url = 'http://www.jobber.ro/api/api.php?action=getJobs&type=0&category=0&count=' + amount + '&random=1&days_behind=15&response=js';

                          if(skin && skin[1]) {

                               addSkin(skin[1]);
                          }                         
                         

                      addData(url);

                    }; //end if

             }; //end if

       };     


       function addData(url) {

            var script = document.createElement('script');

                script.setAttribute('type','text/javascript');

                script.setAttribute('src',url);

                document.getElementsByTagName('head')[0].appendChild(script);

            var script2 = document.createElement('script');

                script2.setAttribute('type','text/javascript');

                //calledJobs = 'jobberbadge.show(jobs)';  
                
                //script2.appendChild(document.createTextNode(calledJobs));

                script2.setAttribute('src','jobber/func.js'); 

                document.getElementsByTagName('head')[0].appendChild(script2);



       };


       function show(result) { 

             var output = document.createElement('ul');

                 output.id = config.outputID;  

                 for(var i=0;i<result.length;i++) {

                       var entry = document.createElement('li');

                       var entrylink = document.createElement('a');

                       var url = 'http://www.jobber.ro/job/' + result[i].id + '/' + result[i].url_title; 

                           entrylink.setAttribute('href',url);

                           entrylink.setAttribute('title',result[i].company);

                           entrylink.appendChild(document.createTextNode(result[i].title + ' (' + result[i].location + ')'));

                           entry.appendChild(entrylink);

                           output.appendChild(entry);                           
                 }

                 badge.appendChild(output); 
 
       }; 


       function addSkin(skin){

              var style = document.createElement('link');

                  style.setAttribute('rel','stylesheet');
 
                  style.setAttribute('type','text/css');

                  style.setAttribute('href',config.styles[skin]); 

                  document.getElementsByTagName('head')[0].insertBefore(style,head.firstChild);

       }; 
 
      
     /* public methods */

    return  {

       show: show,

       init: init

    };

}();



jobberbadge.init();
