/* - ++resource++jquery.pyproxy.min.js - */
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);

