function SetupIMediaPaginator(oArgs, onChange){
  handlePagination = function (state) {
    iYUDm.setStyle("paginator-loading-"+oArgs.id, "visibility", "visible");
    iYUDm.setStyle("paginator-loading-top-"+oArgs.id, "visibility", "visible");
    oJson = $.ajax( {
		  type: "GET",
			dataType: 'json',
			url: oArgs.url+'/'+state.recordOffset+'/'+eval(oArgs.rows_per_page),
			async: false
    }).responseText;

    var result = Drupal.parseJson(oJson);
    if (!result.status || !result.data) return;
    var el = iYUDm.get("paginator-wrapper"+oArgs.id);
    if(el) { 
      el.innerHTML = result.data;
      imediaAjaxProcessReturn(result, result.data);    
    }    
    paginator.setState(state);
    if (onChange) {
      onChange(paginator, result.xArgs);
    }
    iYUDm.setStyle("paginator-loading-"+oArgs.id, "visibility", "hidden");
    iYUDm.setStyle("paginator-loading-top-"+oArgs.id, "visibility", "hidden");   
    
    //W.w.W.
    //When pagination occurs, we trigger the itunes event
    itunes_event();
  };
  var paginator_ids = ["paginator-control"+oArgs.id];
  if (oArgs.id_1) {
    paginator_ids.push("paginator-control"+oArgs.id_1);
  }
  var paginator = new iYW.Paginator( { 
      rowsPerPage : oArgs.rows_per_page, 
      initialPage: oArgs.initial_page,
      totalRecords : eval(oArgs.total_row_count), 
      containers : paginator_ids,
      template : oArgs.template, 
      previousPageLinkLabel : oArgs.previousPageLinkLabel,
      nextPageLinkLabel : oArgs.nextPageLinkLabel,
      pageReportTemplate : oArgs.pageReportTemplate
    }
  );
           
  paginator.subscribe('changeRequest', handlePagination);
  paginator.render();
}
