var gAsyncLoadWidth = 10;
var gAsyncLoadHeight = 10;
var gLoadImg = "";


/**
 * 非同期ダウンロード
 *
 */
function asyncDownload(url, formName, act, loadImg) {
	gLoadImg = loadImg;

    // 入力されていない場合
    if (!gLoadImg) {
        gLoadImg = "/images/loading.gif";
    }
    
    // actが設定されている場合
    if (act) {
		var p = document.getElementsByName('act');
		if (p.item(0)) {
			// パラメータを設定
			p.item(0).value = act;
		}
		else {
			// hidden等がない場合
			var elem = document.createElement( 'input' );
			elem.type = 'hidden';
			elem.name = act;
			elem.value = act;
		    frm.appendChild(elem);
		}
    }
    
    // 既に一度呼び出されている場合
    if ( !$("#hid_palette").length ) {
        $("body").append('<div id="hid_prosess_overlay"></div><div id="hid_prosess"><img src="' + gLoadImg + '" /></div>');
        $("#hid_prosess_overlay").bgiframe();
        $("#hid_prosess").bgiframe();
        
        // スタイルの設定
        var style = {
			         backgroundColor: "#000000",
                     position:"absolute", 
                     "z-index": 101,
                     left: 0,
                     top: 0,
                     filter:"alpha(opacity=20)"
                     }
        $("#hid_prosess_overlay").css(style);
        //$("#hid_prosess_overlay").click(function(event){closePalette();});
        var overlayDm = getOverlaySize();
        $("#hid_prosess_overlay").css({"height": overlayDm[0], "width": overlayDm[1]});

        var style = { backgroundColor: "#ffffff",
                     position:"absolute", 
                     "z-index": 102,
                     width:gAsyncLoadWidth, 
                     height:gAsyncLoadHeight};
        $("#hid_prosess").css(style);
	    $("#hid_prosess_overlay").show();
	    $("#hid_prosess").show();
	    setAsyncLoadPosition();
		$(window).resize(setAsyncLoadPosition);
		$(window).scroll(setAsyncLoadPosition);
    }

    $.ajax({
        type: "POST",
        url: url,
        data: $("form[name='" + formName + "']").serialize() + '&ajax=1',
        async: true,
        cache:false,
        // 成功
        success: function(data, dataType){
			// データを分解する
			var dataList =  data.split("|");
			var url = dataList[0];
			var linkName = dataList[1];
			
            if (urlcheck(url)) {
				//location.href = data;
				// ポップアップを出す
				openComDownloadCompPop(url, linkName);
            }
            else {
                alert(data);
			}
        },
        // 完了
        complete : function() {
            asyncDownloadEnd();
		}
    });
    return false;

}

/**
 * 非同期ダウンロード終了
 *
 */
function asyncDownloadEnd() {
	$("#hid_prosess").hide();
	$("#hid_prosess_overlay").hide();
	$("#hid_prosess").remove();
	$("#hid_prosess_overlay").remove();
    return false;
}

/**
 * 非同期ロードのポジションを取得する
 *
 */
function setAsyncLoadPosition() {
	var wWidth = gAsyncLoadWidth;
	var wHeight = gAsyncLoadHeight;
	
	var pagesize = getPageSize();
	var arrayPageScroll = getPageScrollTop();
	var style = {width: wWidth, left: (arrayPageScroll[0] + (pagesize[0] - wWidth)/2), top: (arrayPageScroll[1] + (pagesize[1]-wHeight)/2)};
	
	//var rect = getClietnRect(g_palette_event);
	//var style = {width: wWidth, height: wHeight, left: rect[0], top: rect[1]};
	
	$("#hid_prosess").css(style);
}


