<?xml version="1.0" encoding="UTF-8"?>

<Module>
<ModulePrefs 
  title="jobber - joburi in IT" 
  title_url="http://www.jobber.ro" 
  description="Afiseaza ultimele anunturi postate pe jobber.ro, grupate pe categorii."
  author="Emil Sirbu"
  author_email="emil@topweb.ro"
  thumbnail="jobber-logo.png"
  height="220"
  scrolling="true">
<Require feature="tabs" />
<Require feature="setprefs" />
<Require feature="dynamic-height" />

</ModulePrefs>
<UserPref name="numar_zile" display_name="Afiseaza anunturi din ultimele N zile (max. 30):" default_value="7" />
<UserPref name="numar_anunturi" display_name="Nr. anunturi afisate (max. 50):"  default_value="10" />    
<Content type="html"><![CDATA[
<script type="text/javascript">

/*
 * A one-line code snippet that will turn a string into proper case form (where each letter after a space is capitalized).
 * http://www.codeproject.com/jscript/propercase.asp
 * Author: Tor2k, http://www.codeproject.com/script/Articles/list_articles.asp?userid=537463
 */
String.prototype.toProperCase = function()
{
  return this.toLowerCase().replace(/^(.)|\s(.)/g, 
      function($1) { return $1.toUpperCase(); });
}
  
// Preferinte utilizatori
var prefs = new _IG_Prefs(__MODULE_ID__);
var numar_anunturi = prefs.getInt("numar_anunturi");
var numar_zile = prefs.getInt("numar_zile");


if (numar_anunturi > 50 || numar_anunturi<1) {
    alert("Numarul de anunturi ales este invalid, puteti seta un nr. cuprins intre 1 si 50");
    numar_anunturi = 10;
}
if (numar_zile > 30 || numar_zile<1) {
    alert("Numarul de zile ales este invalid, puteti seta un nr. cuprins intre 1 si 7");
    numar_zile = 7;
}


// Initializare tab-uri, setat tab-ul "Toate" ca tab implicit
var tabs = new _IG_Tabs(__MODULE_ID__, "Toate");

function init() {
  
  
  var myTabs = document.getElementsByTagName('div');

  
  for(var i=0;i<myTabs.length;i++) {
    if(myTabs[i].className && myTabs[i].className=="tab") {
      var tabId = myTabs[i].id;
      var tabTitle = tabId.toProperCase();

      tabs.addTab(tabTitle, {
        contentContainer:myTabs[i],
        callback:callback,
        tooltip:tabTitle+" pe jobber"
      });  
    }
  }
}



// Callback - furnizare continut pentru tab-ul selectat
function callback(tabId) {
  var selectedTab = tabs.getSelectedTab();
  var category = tabId=="toate"?0:tabId;
  var url = 'http://www.jobber.ro/api/api.php?action=getJobs&type=0&category='+category+'&count='+numar_anunturi+'&random=0&days_behind='+numar_zile+'&response=xml';
  _IG_FetchXmlContent(url, function (response) {
  if (response == null || typeof(response) != "object" || response.firstChild == null) {
    _gel(tabId).innerHTML = "<i>Invalid data for "+url+"</i>";
    return;
  }
  var items = response.getElementsByTagName("job");
  var html = '';
  for(var i=0;i<items.length;i++) {
      var title = "";
      var link = "";
      var nodeList = items.item(i).childNodes;
      for (var j=0;j<nodeList.length;j++) {
          var node = nodeList.item(j);
          if (node.nodeName == "title") {
            title = node.firstChild.nodeValue;
          } else if (node.nodeName == "url") {
            link = node.firstChild.nodeValue;
          } 
      }
      if(title && link) {
        html += '<li style="margin-bottom: 5px;"><a href="'+link+'" target="_top">'+title+'</a></li>'+"\n";
      }
    }
    if(html) {
      _gel(tabId).innerHTML = '<ul style="font-size: 12px; list-style-type: none; margin: 10px 0 0 0; padding: 0">\n' + html + '</ul>\n';
    } else {
      _gel(tabId).innerHTML = '<div style="font-size: 12px; margin-top: 10px; ">Nici un anunt in categoria ' + tabId.toProperCase() + '</div>';
    }

});
}


// Call init function to initialize and display tabs.
_IG_RegisterOnloadHandler(init);
</script>
 <div id="toate" class="tab"></div>
 <div id="programatori" class="tab"></div>
 <div id="designeri" class="tab"></div>
 <div id="administratori" class="tab"></div>
 <div id="manageri" class="tab"></div>
 <div id="testeri" class="tab"></div>
 <div id="editori" class="tab"></div>
]]></Content>
</Module>



