
/* - productionsmarkerwidget.js - */
// http://www.adeus.org/portal_javascripts/productionsmarkerwidget.js?original=1
var template_production_in_listing='<tr> <td><label id="productionsmarkerwidget-production-label-#id#" for="productionsmarkerwidget-production-#id#">#title#</label></td><td><input type="button" value="Ajouter" id="productionsmarkerwidget-production-#id#"  onclick="productionsmarkerwidget_addProduction(\'#id#\')"/></td></tr>';var template_pagination='<label><a onclick="productionsmarkerwidget_changePage(\'#pagination#\')">#pagination#</a><label>';var template_pagination_selected='<label>#pagination#<label>'
var template_production_selected_hidden='<input id="productionsmarkerwidget-production-selected-hidden-#id#" type="hidden" name="#fieldname#:list" value="#id#"/>';var template_production_selected_label='<tr id="productionsmarkerwidget-production-selected-tr-#id#"><td><label>#title#</label></td><td><input type="button" value="Supprimer"  onclick="productionsmarkerwidget_deleteProduction(\'#id#\')"/></td></tr>';var current_page=0;var productions_number=0;
function productionsmarkerwidget_all(){current_page=0;jQuery('#productionsmarkerwidget-search-'+getFieldName()).attr('value','');productionsmarkerwidget_getProductions(productionsmarkerwidget_filter_callback)}
function productionsmarkerwidget_filter(){current_page=0
productionsmarkerwidget_getProductions(productionsmarkerwidget_filter_callback)}
function productionsmarkerwidget_addProduction(production_id){if(current_page>0&&(productions_number-1)%6==0){current_page--}
var production_title=jQuery('#productionsmarkerwidget-production-label-'+production_id).html();productionsmarkerwidget_add_production(production_id,production_title);productionsmarkerwidget_getProductions(productionsmarkerwidget_add_production_callback)}
function productionsmarkerwidget_deleteProduction(production_id){productionsmarkerwidget_remove_production(production_id);productionsmarkerwidget_getProductions(productionsmarkerwidget_add_production_callback)}
function productionsmarkerwidget_changePage(page_number){current_page=page_number;productionsmarkerwidget_getProductions(productionsmarkerwidget_changePage_callback)}
function productionsmarkerwidget_getProductions(callback){request=jQuery.ajax({url:"productionsmarkerwidget-search",data:getParams(),success:callback})}
function productionsmarkerwidget_filter_callback(data){json=jQuery.parseJSON(data)
productionsmarkerwidget_create_production_list(json['productions']);productionsmarkerwidget_create_pagination(json['length'])}
function productionsmarkerwidget_changePage_callback(data){json=jQuery.parseJSON(data)
productionsmarkerwidget_create_production_list(json['productions']);productionsmarkerwidget_create_pagination(json['length'])}
function productionsmarkerwidget_add_production_callback(data){json=jQuery.parseJSON(data)
productionsmarkerwidget_create_production_list(json['productions']);productionsmarkerwidget_create_pagination(json['length'])}
function productionsmarkerwidget_create_production_list(productions){productions_html=""
for(i=0;i<productions.length;i++){var reg_id=new RegExp("(#id#)","g");var reg_title=new RegExp("(#title#)","g");prod_template=template_production_in_listing.replace(reg_id,productions[i].id);prod_template=prod_template.replace(reg_title,productions[i].title);productions_html+=prod_template}
jQuery('#productionsmarkerwidget-productionlist-content-table-'+getFieldName()).html(productions_html)}
function productionsmarkerwidget_create_pagination(length){productions_number=length;pagination_html="";if(length<6){pagination_length=1}else{pagination_length=parseInt(length/6)
if(length%6>0){pagination_length++}}
for(i=0;i<pagination_length;i++){var reg_id=new RegExp("(#pagination#)","g");if(i==current_page){pagination_template=template_pagination_selected.replace(reg_id,i)}else{pagination_template=template_pagination.replace(reg_id,i)}
pagination_html+=pagination_template}
jQuery('#productionsmarkerwidget-productionlist-pagination-'+getFieldName()).html(pagination_html)}
function productionsmarkerwidget_add_production(id,title){var reg_title=new RegExp("(#title#)","g");var reg_fieldname=new RegExp("(#fieldname#)","g");var reg_id=new RegExp("(#id#)","g");production_selected_hidden_html=template_production_selected_hidden.replace(reg_fieldname,getFieldName()).replace(reg_id,id);production_selected_label_html=template_production_selected_label.replace(reg_title,title).replace(reg_id,id);jQuery('#productionsmarkerwidget-productionlist-selected-content-table-'+getFieldName()).append(production_selected_label_html);jQuery('#productionsmarkerwidget-productionlist-selected-hidden-'+getFieldName()).append(production_selected_hidden_html)}
function productionsmarkerwidget_remove_production(id){jQuery('#productionsmarkerwidget-production-selected-tr-'+id).remove();jQuery('#productionsmarkerwidget-production-selected-hidden-'+id).remove()}
function getSelectedProductions(){var selected_production=[]
var elements=$("#productionsmarkerwidget-productionlist-selected-hidden-"+getFieldName()).children();for(var i=0;i<elements.length;i++){selected_production.push(jQuery(elements[i]).attr('value'))}
return selected_production}
function transformArrayToParam(array){var param='';for(i=0;i<array.length;i++){param+=array[i];if(i!=array.length-1){param+=','}}
return param}
function getFieldName(){return jQuery('#productionsmarkerwidget-fieldname').attr('value')}
function getParams(){var keyword=jQuery('#productionsmarkerwidget-search-'+getFieldName()).val();var params={};if(keyword!=''){params['searchabletext']=keyword}
params['selected_prod']=transformArrayToParam(getSelectedProductions())
params['page']=current_page;return params}


