
for(var i=0;i < data.length;i++)
{
  var item = data[i];
  var tmp = listTPLs['main'];
  var walker = "";
  var itemTPL = "";
  for(var k=0;k < keys['main'].length;k++)
  {
    var keyItem = keys['main'][k];

    /*SPECIAL CASES*/
    if(keyItem.indexOf("_XX")!=-1)
    {
      var pattern = keyItem.replace(/_XX/g, "");
      var collectionStr = "";

      if(pattern=="link")
      {
        for(var c=1;item[pattern+"_"+c] && c <10;c++){
          itemTPL = listTPLs[pattern];
          if(!itemTPL){
            alert("Not Item template ["+pattern+"]!");
            break;
          }
          //Get Object
          var subObj = item[pattern+"_"+c];
          var linkText = subObj[0];
          var linkHref = subObj[1];

          /*Analyse URL*/
          var prefixIcon = "";
          var isExt = linkHref.indexOf("http")==0;
          if(isExt)
            prefixIcon = listTPLs['linkExt'];
          else
            prefixIcon = listTPLs['linkMore'];

          itemTPL = itemTPL.replace(/{target}/g, isExt ? "_blank":"_self");
          itemTPL = itemTPL.replace(/{href}/g, linkHref);
          itemTPL = itemTPL.replace(/{text}/g, linkText);

          collectionStr +=(c > 1 ? "<br />":"")+prefixIcon+itemTPL;
        }
      }
      /*Clean up ', as it will error on eval-method*/
      collectionStr = collectionStr.replace(/\'/g, "\\'");
      tmp = eval("tmp.replace(/{"+keyItem+"}/g, '"+collectionStr+"');");
      /*
      //Going thru lists
      for(var c=0;item[pattern+""+c] && c <10;c++)
      {
        //Get Object
        var subObj = item[pattern+""+c];

        subList += getReplaceFromArray(item, pattern+""+c, itemTPL );
      }*/
    }
    else if(keyItem == "icon")
    {
        itemTPL = listTPLs[keyItem];
        if(!itemTPL){
          alert("Not Item template ["+keyItem+"]!");
          break;
        }
        itemTPL = itemTPL.replace(/{source}/g, item['imgthumb']);
        itemTPL = itemTPL.replace(/\'/g, "\\\'");
        tmp = eval("tmp.replace(/{"+keyItem+"}/g, '"+itemTPL+"')");
    }
    else if(keyItem.indexOf("date_")==0)
    {
      var datObj = null;
      datObj= item[keyItem];
      var temp = "";
      if(!datObj)
        temp = "-";
      else if(datObj.getFullYear)
        temp = "<span title=\""+datObj.toLocaleString()+" UTC\">"+datObj.getFullYear()+"</span>";
        //temp = datObj.getDate()+"/"+(datObj.getMonth()+1)+"/"+datObj.getFullYear()+"";
      else
        temp = datObj;
      tmp = eval("tmp.replace(/{"+keyItem+"}/g, '"+temp+"')");
    }
    /*END SPECIAL CASES*/
    else{
      tmp = getReplaceFromArray(item, keyItem, tmp );
    }
  }
  document.write(tmp);
}


