
(function($){$.fn=$.fn||{};$.fn.jcupload={debug:false,instances:[],build:function(user_config){this.files=[];this.queue={size:0,count:0};this.to_console=function(msg){$.fn.to_console(this.config.instance_name+" : "+msg);};this.append_to=function(elem){$(elem).append(this.flash_html);};this.recalculate=function(){this.queue.size=0;this.queue.count=0;for(var f in this.files){this.queue.size+=this.files[f].size;this.queue.count++;}};this.get_file_params=function(file_index){for(var f in this.files){if(this.files[f].index==file_index){return this.files[f];}}
return false;};this.add_file=function(params){var fi=this.files.length;this.files[fi]={name:params.file_name,type:params.file_type,size:params.file_size,index:params.file_index,uploading:false,uploaded:false};this.recalculate();if(typeof(this.config.callback.file_added)=="function"){try{this.config.callback.file_added(this,this.files[fi].index);}catch(e){this.to_console(e);}};this.to_console("[add_file] file "+this.files[fi].index+" added");};this.upload_start=function(file_index){for(var f in this.files){if(this.files[f].index==file_index){this.files[f].uploading=true;if(typeof(this.config.callback.upload_start)=="function"){try{this.config.callback.upload_start(this,this.files[f].index);}catch(e){this.to_console(e);}}
this.to_console("upload_start("+this.files[f].index+")");return true;}}
return true;};this.upload_progress=function(params){for(var f in this.files){if(this.files[f].index==params.file_index){if(typeof(this.config.callback.upload_progress)=="function"){try{this.config.callback.upload_progress(this,this.files[f].index,params.file_sended,params.file_size);}catch(e){this.to_console(e);}}
this.to_console("upload_progress("+this.files[f].index+")= "+params.file_sended);return true;}}
return true;};this.upload_end=function(file_index){for(var f in this.files){if(this.files[f].index==file_index){this.files[f].uploading=false;this.files[f].uploaded=true;if(typeof(this.config.callback.upload_end)=="function"){try{this.config.callback.upload_end(this,this.files[f].index);}catch(e){this.to_console(e);}}
this.to_console("upload_end("+this.files[f].index+")");return true;}}
return true;};this.queue_upload_end=function(){if(typeof(this.config.callback.queue_upload_end)=="function"){try{this.config.callback.queue_upload_end(this);}catch(e){this.to_console(e);}}
return true;};this.error_file_size=function(params){if(typeof(this.config.callback.error_file_size)=="function"){try{this.config.callback.error_file_size(this,params.file_name,params.file_type,params.file_size);}catch(e){this.to_console(e);}}
return true;};this.error_queue_size=function(params){if(typeof(this.config.callback.error_queue_size)=="function"){try{this.config.callback.error_queue_size(this,params.file_name,params.file_type,params.file_size);}catch(e){this.to_console(e);}}
return true;};this.error_queue_count=function(params){if(typeof(this.config.callback.error_queue_count)=="function"){try{this.config.callback.error_queue_count(this,params.file_name,params.file_type,params.file_size);}catch(e){this.to_console(e);}}
return true;};var ii=$.fn.jcupload.instances.length;this.config={instance_index:ii,instance_name:"jcupload_"+ii,flash_file:'jcupload.swf',flash_vars:new Array(),flash_width:100,flash_height:22,flash_background:'jcu_button.png',flash_background_offset_x:0,flash_background_offset_y:0,url:'upload.php',max_file_size:0,max_queue_count:0,max_queue_size:0,extensions:["All files (*)|*"],multi_file:1,callback:{init:function(uo,jcu_version,flash_verison){uo.to_console("[callback] init("+jcu_version+", "+flash_verison+")");},pre_dialog:function(uo){uo.to_console("[callback] pre_dialog()");},file_added:function(uo,file_index){uo.to_console("[callback] file_added("+file_index+")");},upload_start:function(uo,file_index){uo.to_console("[callback] upload_start("+file_index+")");},upload_progress:function(uo,file_index,file_sended,file_size){uo.to_console("[callback] upload_progress("+file_index+", "+file_sended+", "+file_size+")");},upload_end:function(uo,file_index){uo.to_console("[callback] upload_end("+file_index+")");},queue_upload_end:function(uo){uo.to_console("[callback] queue_upload_end()");},error_file_size:function(uo,file_name,file_type,file_size){uo.to_console("[callback] error_file_size("+file_name+","+file_type+","+file_size+")");},error_queue_count:function(uo,file_name,file_type,file_size){uo.to_console("[callback] error_queue_count("+file_name+","+file_type+","+file_size+")");},error_queue_size:function(uo,file_name,file_type,file_size){uo.to_console("[callback] error_queue_size("+file_name+","+file_type+","+file_size+")");}}};this.config=$.extend(this.config,user_config);this.config.flash_vars["instance_name"]=this.config.instance_name;this.config.flash_vars["flash_width"]=this.config.flash_width;this.config.flash_vars["flash_height"]=this.config.flash_height;this.config.flash_vars["flash_background"]=this.config.flash_background;this.config.flash_vars["flash_background_offset_x"]=this.config.flash_background_offset_x;this.config.flash_vars["flash_background_offset_y"]=this.config.flash_background_offset_y;this.config.flash_vars["max_file_size"]=this.config.max_file_size;this.config.flash_vars["max_queue_count"]=this.config.max_queue_count;this.config.flash_vars["max_queue_size"]=this.config.max_queue_size;this.config.flash_vars["upload_url"]=this.config.url;this.config.flash_vars["browse_multi_file"]=this.config.multi_file;this.config.flash_vars["flash_browse_extensions"]=this.config.extensions.join("||");var flash_vars_pairs=new Array();for(var k in this.config.flash_vars){flash_vars_pairs[flash_vars_pairs.length]=encodeURIComponent(k)+"="+encodeURIComponent(this.config.flash_vars[k]);}
var flash_vars=flash_vars_pairs.join("&");this.flash_html="";if($.browser.msie){this.flash_html+='<object name="'+this.config.instance_name+'" id="'+this.config.instance_name+'" type="application/x-shockwave-flash" width="'+this.config.flash_width+'" height="'+this.config.flash_height+'">';this.flash_html+='<param name="movie" value="'+this.config.flash_file+'" />';this.flash_html+='<param name="wmode" value="transparent" />';this.flash_html+='<param name="menu" value="false" />';this.flash_html+='<param name="FlashVars" value="'+flash_vars+'" />';this.flash_html+='</object>';}else{this.flash_html+='<embed';this.flash_html+=' type="application/x-shockwave-flash"';this.flash_html+=' id="'+this.config.instance_name+'"';this.flash_html+=' name="'+this.config.instance_name+'"';this.flash_html+=' width="'+this.config.flash_width+'"';this.flash_html+=' height="'+this.config.flash_height+'"';this.flash_html+=' src="'+this.config.flash_file+'"';this.flash_html+=' wmode="transparent"';this.flash_html+=' menu="false"';this.flash_html+=' swliveconnect="true"';this.flash_html+=' FlashVars="'+flash_vars+'" />';}
$.fn.jcupload.instances[this.config.instance_index]=this;return this;}};$.fn.to_console=function(msg){if($.fn.jcupload.debug===true){if(typeof(console)!="undefined"){console.log(msg);}
else{var d=$(document.createElement("div")).appendTo("body");d.html(msg);}}};$.jcupload=function(user_config){return new $.fn.jcupload.build(user_config);};$.jcupload_get_instance=function(instance_name){for(var k in $.fn.jcupload.instances){if($.fn.jcupload.instances[k].config.instance_name===instance_name){return $.fn.jcupload.instances[k];}}
return false;};$.jcupload_flash_call=function(instance_name,action,params){if(typeof(instance_name)=="undefined"){$.fn.to_console("[flash_call] undefined instance_name");return false;}
if(typeof(action)=="undefined"){$.fn.to_console("[flash_call] undefined action");return false;}
var instance=$.jcupload_get_instance(instance_name);if(instance===false){$.fn.to_console("[flash_call] invalid instance_name '"+instance_name+"'");return false;}
$.fn.to_console("[flash_call] "+instance_name+": "+action);switch(action){case"init":{if(typeof(instance.config.callback.init)=="function"){try{instance.config.callback.init(instance,params.jcu_version,params.flash_version);}catch(e){this.to_console(e);}};return true;}
case"pre_dialog":{if(typeof(instance.config.callback.pre_dialog)=="function"){try{instance.config.callback.pre_dialog(instance);}catch(e){instance.to_console(e);}};return true;}
case"add_file":{return instance.add_file(params);}
case"upload_start":{return instance.upload_start(params);}
case"upload_progress":{return instance.upload_progress(params);}
case"upload_end":{return instance.upload_end(params);}
case"queue_upload_end":{return instance.queue_upload_end();}
case"error_file_size":{return instance.error_file_size(params);}
case"error_queue_size":{return instance.error_queue_size(params);}
case"error_queue_count":{return instance.error_queue_count(params);}
case"to_console":{$.fn.to_console(params);return true;}
default:{$.fn.to_console("[flash_call] invalid action "+action);return false;}}};})($);


(function($){$.fn=$.fn||{};$.jcuploadUI_config={flash_file:"/jcupload.swf",flash_width:120,flash_height:38,flash_background:"/i/jcu_button.png",flash_background_offset_x:0,flash_background_offset_y:0,box_height:60,file_icon_ready:'/i/jcu_file_ready.gif',file_icon_uploading:'/i/jcu_file_uploading.gif',file_icon_finished:'/i/jcu_file_finished.gif',hide_file_after_finish:true,hide_file_after_finish_timeout:100,error_timeout:3000,max_file_size:8*1024*1024,max_queue_count:5,max_queue_size:0,extensions:["Allow only (*.jpg)|*.jpg;"],multi_file:1,callback:{init:false,pre_dialog:false,file_added:false,upload_start:false,upload_progress:false,upload_end:false,queue_upload_end:false,error_file_size:false,error_queue_count:false,error_queue_size:false}}})($);


(function($){$.fn=$.fn||{};$.jcu_size={one_kb:1024,one_mb:1024*1024};$.jcu_pretty_size=function(size){if(size>$.jcu_size.one_mb){return(Math.round((size/$.jcu_size.one_mb)*10)/10)+" MB";}
else if(size>$.jcu_size.one_kb){return(Math.round((size/$.jcu_size.one_kb)*10)/10)+" KB";}
return size+" b";};$.fn.jcuploadUI={instances:[],build:function(user_config){this.to_console=function(msg){$.fn.to_console(this.jcupload.config.instance_name+" [UI] : "+msg);};this.append_to=function(elem){this.container=$(document.createElement("div")).addClass("jcu_container").appendTo(elem);var jcu_tbar=$(document.createElement("div")).addClass("jcu_toolbar").appendTo(this.container);var jcu_tbar_left=$(document.createElement("div")).addClass("jcu_toolbar_left").css({"width":this.jcupload.config.flash_width+"px"}).appendTo(jcu_tbar);this.status_bar=$(document.createElement("div")).addClass("jcu_toolbar_right").html("&nbsp;").appendTo(jcu_tbar);$(document.createElement("div")).addClass("jcu_toolbar_clear").appendTo(jcu_tbar);this.file_container=$(document.createElement("div")).addClass("jcu_file_container").css({"height":this.config.box_height+"px"}).html("&nbsp;").appendTo(this.container);this.jcupload.append_to(jcu_tbar_left);this.error_container=$(document.createElement("div")).addClass("jcu_error_container").appendTo(this.container);};this.init=function(uo,jcu_version,flash_version){uo.to_console("[UIcallback] init("+jcu_version+", "+flash_version+")");var ui=$.fn.jcuploadUI.instances[uo.config.instance_index];if(typeof(ui.callback.init)=="function"){try{ui.callback.init(uo,jcu_version,flash_version);}catch(e){ui.to_console(e);}}};this.add_error=function(ui,msg){if(ui.errors_on_list==0){ui.error_container.fadeIn('fast');}
var error_msg=$(document.createElement("div")).addClass("jcu_error").html(msg).appendTo(this.error_container);error_msg.fadeIn('fast',function(){setTimeout(function(){error_msg.fadeOut('fast',function(){ui.errors_on_list++;if(ui.errors_on_list==0){ui.error_container.fadeOut('fast');}});},ui.config.error_timeout);});ui.errors_on_list++;};this.pre_dialog=function(uo){uo.to_console("[UIcallback] pre_dialog()");var ui=$.fn.jcuploadUI.instances[uo.config.instance_index];if(typeof(ui.callback.pre_dialog)=="function"){try{ui.callback.pre_dialog(uo);}catch(e){ui.to_console(e);}}};this.file_added=function(uo,file_index){uo.to_console("[UIcallback] file_added("+file_index+")");var ui=$.fn.jcuploadUI.instances[uo.config.instance_index];if(ui.files.length==0){ui.file_container.empty();ui.file_table=$(document.createElement("table")).attr({cellSpacing:0,cellPadding:0,border:0,width:'100%'}).addClass('jcu_file_table').appendTo(ui.file_container);}
var fp=uo.get_file_params(file_index);ui.files[file_index]={};if(ui.files_on_list>0){ui.files[file_index].delimeter=$(ui.file_table[0].insertRow(0));$(document.createElement("td")).addClass("jcu_file_delimeter").attr({colSpan:3}).html("&nbsp;").appendTo(ui.files[file_index].delimeter);}
ui.files[file_index].file_row=$(ui.file_table[0].insertRow(0));ui.files[file_index].cell_icon=$(document.createElement("td")).addClass("jcu_file_cell_icon").appendTo(ui.files[file_index].file_row);ui.files[file_index].icon=$(document.createElement("img")).attr({src:ui.config.file_icon_ready}).appendTo(ui.files[file_index].cell_icon);ui.files[file_index].cell_name=$(document.createElement("td")).addClass("jcu_file_cell_name").html(fp.name+" ("+$.jcu_pretty_size(fp.size)+")").appendTo(ui.files[file_index].file_row);ui.files[file_index].cell_status=$(document.createElement("td")).addClass("jcu_file_cell_status").appendTo(ui.files[file_index].file_row);ui.files[file_index].progress_back=$(document.createElement("div")).addClass("jcu_file_progress_back").appendTo(ui.files[file_index].cell_status);ui.files[file_index].progress=$(document.createElement("div")).addClass("jcu_file_progress").appendTo(ui.files[file_index].progress_back);ui.files_on_list++;if(typeof(ui.callback.file_added)=="function"){try{ui.callback.file_added(uo,file_index);}catch(e){ui.to_console(e);}}};this.upload_start=function(uo,file_index){uo.to_console("[UIcallback] upload_start("+file_index+")");var ui=$.fn.jcuploadUI.instances[uo.config.instance_index];ui.files[file_index].icon.attr({src:ui.config.file_icon_uploading});ui.files[file_index].progress.css({width:'0%'});ui.files[file_index].progress_back.fadeIn('fast');if(typeof(ui.callback.upload_start)=="function"){try{ui.callback.upload_start(uo,file_index);}catch(e){ui.to_console(e);}}};this.upload_progress=function(uo,file_index,file_sended,file_size){uo.to_console("[UIcallback] upload_progress("+file_index+", "+file_sended+", "+file_size+")");var ui=$.fn.jcuploadUI.instances[uo.config.instance_index];var proc=Math.round((file_sended*100)/file_size);ui.files[file_index].progress.css({width:proc+'%'});var fp=uo.get_file_params(file_index);ui.status_bar.html(fp.name+" ("+proc+"%)");if(typeof(ui.callback.upload_progress)=="function"){try{ui.callback.upload_progress(uo,file_index,file_sended,file_size);}catch(e){ui.to_console(e);}}};this.upload_end=function(uo,file_index){uo.to_console("[UIcallback] upload_end("+file_index+")");var ui=$.fn.jcuploadUI.instances[uo.config.instance_index];ui.files[file_index].icon.attr({src:ui.config.file_icon_finished});ui.files[file_index].progress.css({width:'100%'});ui.files[file_index].progress_back.fadeOut('fast');if(ui.config.hide_file_after_finish){setTimeout(function(){ui.files[file_index].file_row.fadeOut('fast',function(){ui.files_on_list--;});if(ui.files[file_index].delimeter){ui.files[file_index].delimeter.fadeOut('fast');}},ui.config.hide_file_after_finish_timeout);}
ui.status_bar.html("&nbsp;");if(typeof(ui.callback.upload_end)=="function"){try{ui.callback.upload_end(uo,file_index);}catch(e){ui.to_console(e);}}};this.queue_upload_end=function(uo){uo.to_console("[UIcallback] queue_upload_end()");var ui=$.fn.jcuploadUI.instances[uo.config.instance_index];if(typeof(ui.callback.queue_upload_end)=="function"){try{ui.callback.queue_upload_end(uo);}catch(e){ui.to_console(e);}}};this.error_file_size=function(uo,file_name,file_type,file_size){uo.to_console("[UIcallback] error_file_size("+file_name+","+file_type+","+file_size+")");var ui=$.fn.jcuploadUI.instances[uo.config.instance_index];ui.add_error(ui,"Файла &quot;"+file_name+"&quot; е прекалено голям!");if(typeof(ui.callback.error_file_size)=="function"){try{ui.callback.error_file_size(uo,file_name,file_type,file_size);}catch(e){ui.to_console(e);}}};this.error_queue_count=function(uo,file_name,file_type,file_size){uo.to_console("[UIcallback] error_queue_count()");var ui=$.fn.jcuploadUI.instances[uo.config.instance_index];ui.add_error(ui,"Максималният брой снимки е 5!");if(typeof(ui.callback.error_queue_count)=="function"){try{ui.callback.error_queue_count(uo,file_name,file_type,file_size);}catch(e){ui.to_console(e);}}};this.error_queue_size=function(uo,file_name,file_type,file_size){uo.to_console("[UIcallback] error_queue_size()");var ui=$.fn.jcuploadUI.instances[uo.config.instance_index];ui.add_error(ui,"Файла &quot;"+file_name+"&quot; надхвърля максимално допуснимият размер!");if(typeof(ui.callback.error_queue_size)=="function"){try{ui.callback.error_queue_size(uo,file_name,file_type,file_size);}catch(e){ui.to_console(e);}}};this.container;this.status_bar;this.file_container;this.file_table;this.files=[];this.files_on_list=0;this.error_container;this.errors_on_list=0;this.callback={};this.config={box_height:270,file_icon_ready:'/i/jcu_file_ready.gif',file_icon_uploading:'/i/jcu_file_uploading.gif',file_icon_finished:'/i/jcu_file_finished.gif',hide_file_after_finish:false,hide_file_after_finish_timeout:2000,error_timeout:3000,callback:{init:this.init,pre_dialog:this.pre_dialog,file_added:this.file_added,upload_start:this.upload_start,upload_progress:this.upload_progress,upload_end:this.upload_end,queue_upload_end:this.queue_upload_end,error_file_size:this.error_file_size,error_queue_count:this.error_queue_count,error_queue_size:this.error_queue_size}};if(typeof(user_config)=="object"){user_config=$.extend($.jcuploadUI_config,user_config);}
else if(typeof($.jcuploadUI_config)=="object"){user_config=$.jcuploadUI_config;}
if(typeof(user_config)=="object"){if(typeof(user_config.callback)=="object"){this.callback=$.extend(this.callback,user_config.callback);delete user_config.callback;}}
this.config=$.extend(this.config,user_config);this.jcupload=$.jcupload(this.config);$.fn.jcuploadUI.instances[this.jcupload.config.instance_index]=this;return this;}};$.jcuploadUI=function(user_config){return new $.fn.jcuploadUI.build(user_config);};})($);