/* - jquery.pyproxy.js - */
// http://whoisthom.nl/portal_javascripts/jquery.pyproxy.js?original=1
var pyproxy_debug_mode=false;(function($){debug=function(msg){if(pyproxy_debug_mode){console.log(msg)}}
$.pyproxy_call=function(url,data,callback){var form_id='';form_to_dict=function(){inputs=$(form_id+' :input');dict={};for(i=0;i<inputs.length;i++){input=inputs[i];add=false;name=String(input.name);if(input.type=='radio'){if(input.checked){add=true}} else if(input.type=='checkbox'){if(input.checked){if(!(name in dict)){dict[name]=[]}
dict[name][dict[name].length]=$(input).val()}}
else{add=true}
if(add){dict[name]=$(input).val()}}
return dict};
function arg_to_string(arg){if(typeof(arg)=='string'){res='\''+arg+'\''} else if(typeof(arg)=='number'){res=arg} else{res='{';for(key in arg){res+='\''+key+'\': '+arg_to_string(arg[key])+', '}
res=res.slice(0,-2)+'}'}
return res}
function process_data(data){debug('Processing data ...');for(i=0;i<data.length;i++){command=data[i];ex='$(\''+command.selector+'\').'+command.call+'(';for(j=0;j<command.args.length;j++){arg=command.args[j];ex+=arg_to_string(arg);if(j+1<command.args.length){ex+=', '}}
ex+=')';debug(ex);eval(ex)}
if(typeof(callback)=='function'){callback(data)}};if(typeof(data)=='undefined'){data={}}
else if(typeof(data)=='string'){form_id=data;data=form_to_dict(this)}
return $.ajax({type:'POST',url:url,data:data,success:process_data,dataType:"json"})};$.fn.pyproxy=function(event,url,data,callback){make_call=function(e){e.preventDefault();$.pyproxy_call(url,data,callback)}
debug('Binded event \''+event+'\' on \''+this.selector+'\' to call \''+url+'\'')
return this.live(event,make_call)}})(jQuery);

