﻿String.prototype.endWith=function(oString){  
var   reg=new   RegExp(oString+"$");  
return   reg.test(this); 
}
function CreateUploadSwf(spanid, okfilename, SetmaxSize, fileinfo, swfUrl, progressbarCss, uploadBtnUrl, reuploadBtnUrl, extension, successCallback, failCallback, loadedCallback) {


    //LoadSwfUploadButton(img);
    //$.getJSON(WebSiteRoot + 'GetImageWidthAndHeight.aspx?rd=' + new Date().getTime(), { Image: uploadBtnUrl }, function(str) {
    //    var data = eval(str);
    SetUploadSwf(spanid, okfilename, SetmaxSize, fileinfo, swfUrl, 70, 30, progressbarCss, uploadBtnUrl, reuploadBtnUrl, extension, successCallback, failCallback, loadedCallback);


    //});
    
    //$("img[id='img" + spanid + "']").ready(function() {
        // 在這裡寫你的代碼...
        // alert(uploadBtnUrl);
   // });
//    alert(img.src);
//    img.onreadystatechange = function() {
//        if (img.readyState == "complete") {
//            alert(uploadBtnUrl);
//            SetUploadSwf(spanid, okfilename, SetmaxSize, fileinfo, swfUrl, img.width, img.height, progressbarCss, uploadBtnUrl, reuploadBtnUrl, extension);
//        }
//    }

    }

    function LoadSwfUploadButton(obj) {
        if (obj == null || obj.width == 0)
            setTimeout("LoadSwfUploadButton(" + obj + ")", 20);
        else
            return;
    }
    
function SetUploadSwf(spanid,okfilename,SetmaxSize,fileinfo,swfUrl,swfWidth,swfHeight,progressbarCss,uploadBtnUrl,reuploadBtnUrl,extension,successCallback,failCallback,loadedCallback) {
    var obj =document.getElementById(spanid);
    
    var SwfId = 'swf'+spanid;
    var ProgressBarId = 'Pro'+spanid;
    var HiddenId = 'Value'+spanid;
    if(reuploadBtnUrl!=undefined&&reuploadBtnUrl!='')
        swfUrl = swfUrl + '?ButtonImageUrl=' + uploadBtnUrl +'&okfilename='+okfilename+ '&fileinfo=' + encodeURI(fileinfo) + '&reuploadBtnUrl=' + reuploadBtnUrl + '&id=' + spanid + '&maxSize=' + SetmaxSize + '&extension=' + extension;
    else
        swfUrl = swfUrl + '?ButtonImageUrl=' + uploadBtnUrl +'&okfilename='+okfilename+ '&fileinfo=' +encodeURI(fileinfo)+ '&id=' + spanid + '&maxSize=' + SetmaxSize + '&extension=' + extension;
    if(successCallback!=undefined&&successCallback!=null)
    {
        swfUrl+='&success='+encodeURI(successCallback);
    }
    if(failCallback!=undefined&&failCallback!=null)
    {
        swfUrl+='&fail='+encodeURI(failCallback);
    }

    //obj.innerHTML='<input type="text" readOnly name="'+ProgressBarId+'" class="Progressbar" id="'+ProgressBarId+'" /><input type="hidden" name="'+spanid+'"  id="'+HiddenId+'" /><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="'+swfWidth+'" height="'+swfHeight+'" id="'+SwfId+'" class="noswap"><param name=movie value="'+swfUrl+'"><param name=quality value=high><param name="allowScriptAccess" value="always" /><embed src="'+swfUrl+'" quality=high width="'+swfWidth+'" height="'+swfHeight+'" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" name="'+SwfId+'" allowScriptAccess="always"></embed></object>';
    var str = '<input type="text" readOnly name="' + ProgressBarId + '" class="Progressbar" id="' + ProgressBarId + '" /><input type="hidden" name="' + spanid + '"  id="' + HiddenId + '" /><span style="padding-left:5px;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="' + swfWidth + '" height="' + swfHeight + '" id="' + SwfId + '" class="noswap"><param name=movie value="' + swfUrl + '"><param name=quality value=high><param name="allowScriptAccess" value="always" /><embed src="' + swfUrl + '" quality=high width="' + swfWidth + '" height="' + swfHeight + '" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" name="' + SwfId + '" allowScriptAccess="always"></embed><param name="wmode" value="transparent"></object></span>';

    LoadSpanInnter(spanid, SwfId, str, loadedCallback);

}

function LoadSpanInnter(spanid, SwfId, str, loadedCallback) {
    var obj = document.getElementById(spanid);
    obj.innerHTML = str;
    if (getSWF(SwfId) == null)
        setTimeout("LoadSpanInnter(" + spanid + "," + SwfId + "," + str + "," + loadedCallback + ")", 20);
    else {
        if (loadedCallback != undefined && loadedCallback != null && loadedCallback != 'null')
            eval(loadedCallback);
    };
}

function getSWF(movieName) {
    if (movieName == null) return "";
    if (navigator.appName.indexOf("Microsoft") != -1) {
        return document.getElementById(movieName);
        //return window[movieName];
    }
    else {
        
        if (document[movieName].length != undefined) {
            return document[movieName][1];
        }
        return document[movieName];
    }
}

function callback(m, v, currid,SetmaxSize,fileinfo,okfilename,successCallback,failCallback) {
    //alert(m);
//    alert(v);
//    alert(currid);
//    alert(SetmaxSize);
//    alert(fileinfo);
//    alert(okfilename);
//    alert(successCallback);
//    alert(failCallback);
    
    var fileId = "Pro" +currid;
    var valueId = "Value" +currid;
    var swfId = 'swf'+currid;
    switch (m) {
        case 'select':

            var upload = getSWF(swfId);
            maxsize = upload.getSize();
            $("#"+fileId).addClass("Progressbar");
            setTimeout(StartUpload(currid, SetmaxSize, fileinfo, okfilename), 100);
            break;

        case 'progress':
            var upload = getSWF(swfId);
            cursize = v;
            var ofile = document.getElementById(fileId);
            
            ofile.value ="上傳中:" + parseInt(cursize / maxsize * 100) + '%';
            ofile.style.backgroundPosition = parseInt((cursize / maxsize) * 150) + "px 0px";
            break;
        case 'onHTTPError':
            alert('檔案上傳失敗');
            if(failCallback!=undefined &&failCallback!=null&&failCallback!='null')
                eval(failCallback);
            break;
        case 'ioError':
            document.getElementById(fileId).value = "";
            document.getElementById(fileId).style.backgroundImage = "";
            document.getElementById(fileId).style.backgroundRepeat = "";
            document.getElementById(fileId).style.backgroundColor = "";
            //alert('檔案上傳失敗,與伺服器連接失敗!');
            if(failCallback!=undefined && failCallback!=null && failCallback!='null')eval(failCallback);
            break;
        case 'complete':
            //document.getElementById('Img'+currid).src="upload/Small/"+eval('filename'+currid)+'?rnd=' + Math.random();

            var ofile = document.getElementById(fileId);

            var upload = getSWF(swfId);
            ofile.value = "上傳成功!";
            //alert(okfilename);
            document.getElementById(valueId).value = okfilename ;
           
            if (successCallback != undefined && successCallback != null && successCallback != 'null')
                eval(successCallback);

            break;
        case "securityError":
            alert('安全性問題');
            if(failCallback!=undefined &&failCallback!=null&&failCallback!='null')
                eval(failCallback);
            break;
        default:
            //alert(m);
            break;

    }
}
function StartUpload(id, setMaxsize, fileinfo, okfilename) {
    
    var SizeSet = 0;
   
    if(setMaxsize.endWith('G'))
    {
        SizeSet = setMaxsize.substring(0,setMaxsize.length-1);
        SizeSet = SizeSet*1024*1024*1024;
    }else if(setMaxsize.endWith('M'))
    {
        SizeSet = setMaxsize.substring(0,setMaxsize.length-1);
        SizeSet = SizeSet*1024*1024;
    }else if(setMaxsize.endWith('K'))
    {
        SizeSet = setMaxsize.substring(0,setMaxsize.length-1);
        SizeSet = SizeSet*1024;
    }else 
    {
        SizeSet = setMaxsize.substring(0,setMaxsize.length-1);
    }
    //var Msize = maxsize / 1024 / 5024;
    //alert(fileinfo);
    if (maxsize > SizeSet) {
        alert('不能上傳大於'+setMaxsize+'的檔案');
        var fileId = "Pro" +currid;
        //var fileId = "file" + id.substring(0, id.length - 3);
        document.getElementById(fileId).value = "";
        document.getElementById(fileId).style.backgroundImage = "";
        document.getElementById(fileId).style.backgroundRepeat = "";
        document.getElementById(fileId).style.backgroundColor = "";
    }
    else {
         var swfId = "swf" +id;

        
        var upload = getSWF(swfId);
        //alert(okfilename);

        var ext = getExt(upload.getFileName());
        // alert(upload.getFileName());
       
        var path = '/upLoadFile.aspx?fileName=' + okfilename + '&fileinfo=' + decodeURIComponent(fileinfo) + "&ext=." + ext;
        
        upload.upload(path);
    }
}


function getExt(filename) {
    var dot_pos = filename.lastIndexOf(".");
    if (dot_pos == -1)
        return "";
    return filename.substr(dot_pos + 1).toLowerCase();
}


