var ddzone='f_upload';
//var jqxhr;
var jqxhr=new Object();
var fids = [];
var upfiles = [];
var pcnt=0;
var sessid="np02vr0r8brrqjk069jifh94g0";
var dlurl="https://okurin.bitpark.co.jp/d.php?";
var upurl="fupload.php";
var fsize_limit="500MB";
var fupload_limit="10";
var fqueue_limit="10";
var responserr="ERR";
var responsok="OK";
jQuery.noConflict();
var j$ = jQuery;
var queuedCnt=0;
var completeCnt=0;
var successCnt=0;
var fileSizeTotal=0;
var progressSize2=0;
var fid ;
var formid;
var selfCancel;
var fuploadedCnt=0;
var maxfCnt=10;
var uploadable;
var timer = null;
var uperrurl = 'https://okurin.bitpark.co.jp/fuperr.html';
var fsize = function(n) {
if(n <= 1024) return (Math.round(n * 10) / 10) + "byte"
if(n <= 1024*1024) return (Math.round(n / 1024 * 10) / 10) + "KB"
if(n <= 1024*1024*1024) return (Math.round(n / 1024 / 1024 * 10) / 10) + "MB"
if(n <= 1024*1024*1024*1024) return (Math.round(n / 1024 / 1024 / 1024 * 10) / 10) + "GB"
};
function gaqTrackPV(page_name){
_gaq.push(['_trackPageview', page_name]);
}
function gaqTrackEvent(category, action, label){
_gaq.push(['_trackEvent', category, action, label]);
}
function uniteUrlDisplay(){
j$('#united_url').val("");
j$("a.united_url_link").attr('href',"");
var cnt = j$("tr:visible[class=uploadedFile]").length;
if(cnt > 1){
// j$.post(upurl,{"sessid" : sessid , action:'unit'},function(ret){
// if(ret){
// var url = dlurl + ret;
// j$('#united_url').val(url);
// j$("a.united_url_link").attr('href',url);
// }
// });
j$('#unite').show();
j$("#unite_btn").show();
j$('#united_url').hide();
j$("a.united_url_link").hide();
}else{
j$('#unite').hide();
j$("#unite_btn").hide();
}
}
function deleteButton(obj){
// j$("img.del_btn").css('cursor','pointer').on("click",function(){
var prefix = "fc-";
var fcd = obj.parent('td').parent('tr').attr('id').substring(prefix.length);
var fname = j$("#" + prefix + fcd).find("span.upfile_name").text().split(String.fromCharCode(8203)).join('');
if(confirm("アップロードファイル\n「" + fname + "」\nを削除しますか?")){
j$.post(upurl,{"sessid" : sessid , action:'del',code:fcd},function(ret){
if(ret==responsok){
j$('#' + prefix + fcd).hide('fast',function(){
obj.remove();
uniteUrlDisplay();
//ファイル一覧更新
fileTableReload();
//グラフ更新
graphReload();
});
}
});
}
// });
}
function atCon(){
j$.timer(300000, function (timer) {
j$.post(upurl,{"sessid" : sessid , action:'atcon'});
});
}
function douizumi(){
if(j$('.kiyaku_doui').attr('checked')){
j$(this).attr('checked', "checked");
j$("#step1").slideUp('fast');
j$("#f_upload").show();
j$("div.uploadedFile").show('fast');
j$("#upload_list").show('fast');
}else{
j$(this).attr('checked', "");
j$("#step1").slideDown();
j$("#f_upload").hide();
j$("div.uploadedFile").hide();
j$("#upload_list").hide();
}
j$('.kiyaku_doui').click(
function(){
if(j$(this).attr('checked')){
j$(this).attr('checked', "checked");
j$("#step1").slideUp('fast');
j$("#f_upload").show();
j$("div.uploadedFile").show('fast');
j$("#upload_list").show('fast');
}else{
j$(this).attr('checked', "");
j$("#step1").slideDown();
j$("#f_upload").hide();
j$("div.uploadedFile").hide();
j$("#upload_list").hide();
}
uniteUrlDisplay();
}
);
}
function getuf(){
j$.getJSON(upurl,{"sessid" : sessid ,'d': new Date().getTime() , action:'getuf'},function(json){
j$.each ( json, function ( row, obj ) {
if(obj){
fid = "fc-" + obj.c;
j$('#upfile_info').clone().removeAttr('id').attr('id', fid).attr('class', "uploadedFile").insertAfter('#upfile_info').show();
j$("#" + fid).find(".uploaded").show();
j$("#" + fid).find(".uploading").hide();
j$("#" + fid).find("span.upfile_name").html(obj.n);
j$("#" + fid).find("span.upfile_size").text(fsize(obj.s));
var url = dlurl + obj.u;
j$("#" + fid).find("input.url_txt_box").val(url);
j$("#" + fid).find("a.upfile_url_link").attr('href',url);
}
});
uniteUrlDisplay();
});
}
function graphReload(){
j$.post(upurl,{"sessid" : sessid , "action":'graph'},function(ret){
if(ret){
j$("#graph").html(ret);
j$("#available_size").text(fsize(j$("#limit_size").text()));
}
});
}
function fileTableReload(){
if(j$("tr:visible[class=uploadedFile]").length > 0){
j$("#nodata_msg").hide();
j$("#upfile_headder").show();
}else{
j$("#nodata_msg").show();
j$("#upfile_headder").hide();
}
}
j$(function () {
j$('#js_alert').hide();
j$('#step1').show();
douizumi();
atCon();
uploadable=true;
j$("#upfile_info").hide();
j$("#progressanime").hide();
j$("img.del_btn").css('cursor','pointer').on("click",function(){
deleteButton(j$(this));
});
uniteUrlDisplay();
fileTableReload();
graphReload();
j$("a.united_url_link").on("click",function(){
if (this.href.match("&t") != null){
rep = new RegExp("&t=(\d|\.)+");
this.href = this.href.replace(rep,"");
}
this.href += "&t=" + parseInt(Math.random()*100);
});
j$(".upfile_name").wb();
var fsize = function(n) {
if(n <= 1024) return (Math.round(n * 10) / 10) + "byte"
if(n <= 1024*1024) return (Math.round(n / 1024 * 10) / 10) + "KB"
if(n <= 1024*1024*1024) return (Math.round(n / 1024 / 1024 * 10) / 10) + "MB"
if(n <= 1024*1024*1024*1024) return (Math.round(n / 1024 / 1024 / 1024 * 10) / 10) + "GB"
};
var selfCancel = false;
var selectedFileSizeTotal=0;
var bytesLoaded = [];
var msg1=j$("#fupmsg").text();
var msg2="ただ今アップロード中です。しばらくお待ちください。";
j$('#select_btn').on('click', function() {
if(queuedCnt > 0){
alert(msg2);
return false;
}
j$('#file_select').click();
});
j$('#file_select').on('change', function() {
fileUplod(this.files);
});
window.addEventListener('dragover', function (event) {
event.preventDefault();
}, false);
// ドロップ時のイベント
document.getElementById(ddzone).addEventListener('drop', function (event) {
event.preventDefault();
var dt = event.dataTransfer;
return fileUplod(dt.files);
}, false);
function fileUplod(files){
if(queuedCnt > 0){
alert(msg2);
return false;
}
// console.log('files.length = ' + files.length);
if (files.length === 0) {
return false;
}
j$("#fupmsg").text(msg2);
// メッセージエリアのメッセージをクリア
result = j$('#result');
result.html('');
selectedFileSizeTotal=0;
bytesLoaded = [];
fids = [];
upfiles = [];
jqxhr=new Object();
max_size=j$("#limit_size").text();
for (var i = 0; i < files.length; i++) {
///ファイルサイズ合計取得
selectedFileSizeTotal += files[i].size;
if(files[i].size > max_size){
alert('アップロードできるのはファイルサイズは合計で' + fsize_limit+'までです。');
init_upload();
return false;
}
if(selectedFileSizeTotal > max_size){
alert('アップロードできるのはファイルサイズは合計で' + fsize_limit+'までです。');
init_upload();
return false;
}
if(files.length > fqueue_limit){
alert('同時にアップロードできるのは' + fqueue_limit+'個までです。');
init_upload();
return false;
}else{
if(files[i].size > 0){
fid = "ft-" + i + '-' + new Date().getTime() ;
fids.push(fid);
upfiles.push(files[i]);
fileSizeTotal=fileSizeTotal+files[i].size;
}
}
}
if(selectedFileSizeTotal===0){
init_upload();
return false;
}
queuedCnt=fids.length;
/// ドロップされたファイルを順次送信
for (i = 0; i < fids.length; i++) {
fid =fids[i];
jqxhr[fid] = upload(upfiles[i], fid, i);
}
return true;
}
// ファイルアップロード
function upload(file, fid, i) {
// データを送信する
var fd = new FormData();
if(j$("#limit_size").text() < file.size){
alert("【アップロードエラー】ファイルサイズが大きすぎます。\n" + "現在アップロード可能なサイズ:" + fsize(j$("#limit_size").text()) + "\n「" + file.name + "」(ファイルサイズ:" + fsize(file.size) + ")\n" );
uploadable=false;
}else{
uploadable=true;
}
selfCancel = false;
if(file_name_check(file.name)&&(uploadable)) {
j$("#progressanime").show();
j$("div").find(".uploading").hide;
// console.log(' $("#upfile_info").clone() id => ' + fid);
j$('#upfile_info').clone().removeAttr('id').attr('id', fid).attr('class', "uploadingFile").insertAfter('#upfile_info').show();
j$("#" + fid).find(".uploaded").hide();
j$("#" + fid).find(".uploading").show();
//////////j$("#" + fid).find("div.progressbar").reportprogress(0);
j$("#" + fid).find("div.progressbar").reportprogress(0, '0 / ' + fsize(file.size));
////j$("#" + fid).find("span.upfile_name").html(file.name);
j$("#" + fid).find("span.upfile_name").html(file.name.split('').join(String.fromCharCode(8203)));
j$("#" + fid).find("span.upfile_size").html(fsize(file.size));
//「規約に同意する」チェックボックス無効化
// j$('.kiyaku_doui').attr('disabled',true);
//「URLまとめる」ボタン無効化
// j$('#unite_btn').attr('disabled',true);
j$("#select_btn").attr('disabled',true);
j$("#" + fid).find(".cancel").css('cursor','pointer').on("click",function(){
selfCancel = true;
tgtid = j$(this).parent('div').parent('div').attr('id');
jqxhr[tgtid].abort();
j$("#" + tgtid).remove();
});
}
fd.append("fileup", file, file.name);
fd.append("action", 'confirm');
fd.append("sessid", sessid);
// ajaxを使用してアップロード
var retxhr=j$.ajax(upurl, {
xhr : function() {
XHR = j$.ajaxSettings.xhr();
if (XHR.upload) {
XHR.upload.addEventListener('load',function(e) {
completeCnt=completeCnt+1;
// console.log('i => ' + i);
// console.log('fid => ' + fid);
// console.log(file.name + ' => load');
// console.log("転送が完了しました。");
}, false);
XHR.upload.addEventListener('loadstart',function(e) {
//queuedCnt++;
// console.log('i => ' + i);
// console.log('fid => ' + fid);
// console.log(file.name + ' => loadstart');
// console.log(e.loaded,e.total);
}, false);
XHR.upload.addEventListener('loadend',function(e) {
// console.log(file.name + ' => loadend');
// console.log(e.loaded,e.total);
}, false);
XHR.upload.addEventListener('abort',function(e) {
queuedCnt--;
// console.log(file.name + ' => abort');
// console.log(e.loaded,e.total);
// console.log('queuedCnt = ' + queuedCnt + ' completeCnt = '+completeCnt + ' successCnt = '+successCnt );
alert('キャンセルされました。');
j$("#" + fid).remove();
if(queuedCnt==0){
init_upload();
}
}, false);
XHR.upload.addEventListener('error',function(e) {
queuedCnt--;
// console.log(file.name + ' => error');
// console.log(e.loaded,e.total);
// console.log('queuedCnt = ' + queuedCnt + ' completeCnt = '+completeCnt + ' successCnt = '+successCnt );
alert('エラーが発生しました。');
j$("#" + fid).remove();
if(queuedCnt==0){
init_upload();
}
}, false);
XHR.upload.addEventListener('progress',function(e) {
// console.log('i => ' + i);
// console.log('fid => ' + fid);
// console.log('e.loaded => ' + e.loaded);
// console.log('e.total => ' + e.total);
progressSize = parseInt(e.loaded / e.total * 10000) / 100;
// console.log('progressSize => ' + progressSize);
if(progressSize==100){
j$("#" + fid).hide();
}
j$("#" + fid).find("div.progressbar").reportprogress( progressSize, ' (' + fsize(e.loaded) + ' / ' + fsize(file.size) + ')');
j$("#" + fid).find("span.upfile_name").text(file.name);
var sum_loaded=0;
bytesLoaded[i] = e.loaded;
bytesLoaded.forEach(function(bytes) {
sum_loaded += bytes;
});
var total_progre = parseInt(sum_loaded / selectedFileSizeTotal * 10000) / 100;
// console.log('sum_loaded => ' + sum_loaded);
// console.log('selectedFileSizeTotal => ' + selectedFileSizeTotal);
// console.log('total_progre => ' + total_progre);
if(total_progre > 100){
total_progre=100;
}
pcnt++;
//console.log(' pcnt => ' + pcnt);
if(((pcnt % 1)==0)||((pcnt % 2)==0)||((pcnt % 3)==0)){
var moveto = parseInt((j$("#progressanime").width() - j$("#runokurin").width()) * total_progre / 100 );
j$("#progressanime").find("span.walk").css({"left": moveto + "px"});
if(j$("#runokurin").attr('src') == "/img/common/run_okurin_spring3.gif"){
j$("#runokurin").attr('src',"/img/common/run_okurin_spring1.gif");
}else if(j$("#runokurin").attr('src') == "/img/common/run_okurin_spring2.gif"){
j$("#runokurin").attr('src',"/img/common/run_okurin_spring3.gif");
}else if(j$("#runokurin").attr('src') == "/img/common/run_okurin_spring1.gif"){
j$("#runokurin").attr('src',"/img/common/run_okurin_spring2.gif");
}
//console.log(" j$('#runokurin').attr('src') => " + j$("#runokurin").attr('src'));
}
if(total_progre==100){
j$("#progressanime").fadeOut();
}
}, false);
}
return XHR;
},
type: "POST",
contentType: false,
processData: false,
data: fd,
//dataType: 'json',
error: function (data) {
if(queuedCnt == completeCnt){
init_upload();
}
},
success: function (data) {
var retval = data.split('||');
if (retval[0]!=responserr) {
// console.log(' success: fid => ' + fid);
// console.log(' retval => ' + retval);
gaqTrackEvent( 'fuploaddd' , 'uploadSuccess', 'fileName:'+file.name + ' fileSize:'+fsize(file.size));
/// j$("#" + fid).find("input.url_txt_box").val(retval[1]);
/// j$("#" + fid).find("a.upfile_url_link").attr('href',retval[1]);
/// j$("#" + fid).find(".uploaded").show();
/// j$("#" + fid).find(".uploading").hide();
/// j$("#" + fid).find("span.upfile_size").html(fsize(file.size));
/// j$("#" + fid).removeAttr('id').attr('id', "fc-" + retval[0]).attr('class', "uploadedFile");
fid = "fc-" + retval[0];
/// j$("#" + fid).remove();
//アップロード済みファイル一覧テーブルに1行追加
j$('#upfile_row').clone().removeAttr('id').attr('id', fid).insertAfter('#upfile_headder').show();
////j$("#" + fid).find("span.upfile_name").html(file.name);
j$("#" + fid).find("span.upfile_name").html(file.name.split('').join(String.fromCharCode(8203)));
j$("#" + fid).find("span.upfile_size").html(fsize(file.size));
j$("#" + fid).find("span.upfile_deldate").html(retval[2]);
j$("#" + fid).find("span.upfile_dlcnt").html(retval[3]);
j$("#" + fid).find("input.url_txt_box").val(retval[1]).attr("title",retval[1]);
j$("#" + fid).find("a.upfile_url_link").attr('href',retval[1]);
j$("#" + fid).find("img.icon").attr("src","../../img/common/" + retval[4])
j$("#" + fid).find("img.icon").attr("title",retval[5]);
j$("#" + fid).find("img.icon").attr("alt",retval[5]);
//ファイル一覧更新
fileTableReload();
//グラフ更新
//graphReload();
successCnt++;
// console.log('successCnt = '+successCnt );
j$("#" + fid).find("img.del_btn").css('cursor','pointer').on("click",function(){
deleteButton(j$(this));
});
} else{
j$("#" + fid).remove();
gaqTrackEvent( 'fuploaddd' , 'uploadSuccess-Err', 'fileName:'+file.name + ' fileSize:'+fsize(file.size));
alert('アップロード失敗\n「' + file.name + '」\n' + retval[1]);
}
selfCancel = false;
// console.log('queuedCnt = ' + queuedCnt + ' completeCnt = '+completeCnt + ' successCnt = '+successCnt );
if(successCnt == queuedCnt){
uniteUrlDisplay();
init_upload();
if(successCnt > 0){
// console.log('アップロードが完了しました。');
gaqTrackEvent( 'fuploaddd' , 'uploadComplete', 'successCnt:'+successCnt + ' totalSize:'+fsize(fileSizeTotal));
alert("アップロードが完了しました。");
}
j$('#dlUrl').showBalloon({
contents:"ファイルを送りたい相手に
このURLをコピーして
メールなどで送って下さい。" ,
position: "top" ,
tipSize: 15 ,
keep: 6000 ,
onDuration: "slow",
onAnimation: function(d) { this.slideDown(d); },
offDuration: "slow",
offAnimation: function(d) { this.slideUp(d); },
css: {
backgroundColor: "#ffffff",
minWidth: "26px",
fontSize: '130%',
fontWeight: 'bold',
lineHeight: '2',
color:"#ff0000" ,
opacity: "null",
border:"solid 2px #878787"
}
});
j$('#dlUrl').hideBalloon();
}
}
});
return retxhr;
}
j$("#unite_btn").css('cursor','pointer').click(function(){
var prefix = "fc-";
var fcds ="";
j$("tr:visible[class=uploadedFile]").each(function(){
if(fcds=="") {fcds=j$(this).attr("id").substring(prefix.length);}
else{fcds = fcds + "-" + j$(this).attr("id").substring(prefix.length);}
});
j$.post(upurl,{"sessid" : sessid , "action":'unit', "fcds":fcds},function(ret){
if(ret){
j$('#unite').show();
j$('#united_url').show();
j$("a.united_url_link").show();
var url = dlurl + ret;
j$('#united_url').val(url);
j$("a.united_url_link").attr('href',url);
}
});
});
function init_upload(){
j$("#progressanime").hide();
j$("#progressanime").find("span.walk").css({"left": "0px"});
//「規約に同意する」チェックボックス有効化
j$('.kiyaku_doui').attr('disabled',false);
//「URLまとめる」ボタン有効化
j$('#unite_btn').attr('disabled',false);
j$('#united_url').val("");
j$("a.united_url_link").attr('href',"");
j$("#fupmsg").text(msg1);
//グラフ更新
graphReload();
j$("#select_btn").attr('disabled',false);
pcnt=0;
queuedCnt=0;
completeCnt=0;
successCnt=0;
fileSizeTotal=0;
fids = [];
upfiles = [];
jqxhr=new Object();
}
});
//ブラウザ情報の取得
dom = document.getElementById; //W3C DOM をサポートする場合
opera = navigator.userAgent.indexOf("Opera")>-1; //Opera
ie4 = document.all && !dom && !opera; //Internet Explorer 4.x
ie5 = document.all && dom && !opera; //Internet Explorer 5.x 以上
ie = ie4 || ie5; //Internet Explorer 4.x 以上
netscape = navigator.appName.indexOf("Netscape",0)>-1; //Netscape
nn4 = document.layers && netscape; //Netscape 4.x
nn6 = dom && netscape; //Netscape 6.x 以上
safari = navigator.userAgent.indexOf("Safari")>-1; //Opera
var BROWSER;
if(opera){
BROWSER="opera";
}
if(nn6){
BROWSER="nn6";
}
if(safari){
BROWSER="safari";
}
if(nn4){
BROWSER="nn4";
}
if(ie4){
BROWSER="ie4";
}
if(ie5){
BROWSER="ie5";
}
if (navigator.platform.search(/win/i) != -1) {
var OS="Win";
}else if(navigator.platform.search(/mac/i) != -1) {
var OS="Mac";
}else{
var OS="Other";
}
function file_name_check(file_name){
var i=file_name.length - 1;
var r_file_name = file_name[i];
// if(((BROWSER=="nn6")||(BROWSER=="nn4"))&&(OS=="Mac")){
// alert("ファイル名に日本語を使用している場合、文字化けが発生し、アップロードできないことがございます。\nご注意下さい。");
// }
if (file_name.length > 100) {
alert("アップロードファイル:「" + file_name + "」\n------------------------------\nファイル名が長すぎます。\n申し訳有りませんがファイル名を変更して下さい。");
return false;
}
if (file_name.indexOf("%") != -1 || file_name.indexOf("#") != -1) {
//alert('r_file_name=' + r_file_name);
//alert('unescape(r_file_name)=' + unescape(r_file_name));
alert("アップロードファイル:「" + file_name + "」\n------------------------------\nファイル名に特殊文字「%」「#」は使用できません。\n申し訳有りませんがファイル名を変更して下さい。");
return false;
}
return true;
}
//単位付きのファイルサイズに変換。少数点以下3桁までで四捨五入して表示
function fsize_format(size){
var str,kazu,tani ;
if(size >= 1073741824){
//str = Math.floor(size / 1073741824) + "GB";
kazu = size / 1073741824;
tani = "GB";
}else if(size >= 1048576){
//str = Math.floor(size / 1048576) + "MB";
kazu = size / 1048576;
tani = "MB";
}else if(size >= 1024){
//str = Math.floor(size / 1024) + "KB";
kazu = size / 1024;
tani = "KB";
}else{
kazu = size;
tani = "Byte";
}
kazu = (kazu * 1000);
kazu = Math.round(kazu);
kazu = (kazu / 1000);
str = kazu + tani;
return str;
}