﻿var imageWD = 0;
var imageHD = 0;
var Dir = "";
var vTop = 0;
var vLeft = 0;
var widgetX = 0;
var widgetY = 0;
var displayW = 0;
var displayH = 0;

jQuery.preloadImages = function() {
for(var i = 0; i<arguments.length; i++) { jQuery("<img>").attr("src", arguments[i]); }}
function chgimg(vimg, vwidth, vheight, vWidgetID) {
	$.preloadImages(vimg);
    var objPreview = $("#PreviewObj" + vWidgetID);
    objPreview.fadeOut("normal",
    function() {
        objPreview.attr("src", vimg).attr("width", vwidth).attr("height", vheight).ready(function() {
            objPreview.fadeIn("normal");
        }); });	
}
function GetWidgetPosition(vWidgetID) {
    var offset = $("#WidgetDiv" + vWidgetID).offset();
    widgetX = offset.left + 0;
    widgetY = offset.top + 0;	
}
function ShowLoading(vURL, vAlign, vWidgetID, widgetW, widgetH) {
	if(Dir != vAlign)
	{
		try{ removePreview(vWidgetID, vURL); Dir = vAlign; }
		catch (err){}
	}	
	if (document.getElementById("PreviewDiv" + vWidgetID).style.display == "none" || document.getElementById("PreviewDiv" + vWidgetID).childNodes.length < 1) {	
		FindPosition(vAlign, vWidgetID, widgetW, widgetH);
		$("#PreviewDiv" + vWidgetID).width(displayW + "px");
		$("#PreviewDiv" + vWidgetID).height(displayH + "px");
		if (document.getElementById("PreviewBox" + vWidgetID) == null) {
			vObj = document.createElement("div");
			vObj.setAttribute("id", "PreviewBox" + vWidgetID);
			var objpreviewdiv = document.getElementById("PreviewDiv" + vWidgetID);
			var container = objpreviewdiv.parentNode;
			container.appendChild(vObj);
			var strCloseImgFile = vURL.substring(0, vURL.lastIndexOf("/")) + "/bt_colse.png";
			var strCloseImgFile_o = vURL.substring(0, vURL.lastIndexOf("/")) + "/bt_colse_o.png";
			//圖無半透明
			document.getElementById("PreviewBox" + vWidgetID).innerHTML = "<img src=\"" + strCloseImgFile +
			"\" onclick=\"removePreview('" + vWidgetID +
			"');\" onmouseover=\"MM_swapImage('img" + vWidgetID + "','','" + strCloseImgFile_o + "',1)\" onmouseout=\"MM_swapImgRestore()\" " +
			"style=\"position:absolute;top:" + vTop +
			"px;left:" + (vLeft + Number(displayW) - 25) +
			"px;display:inline;z-Index:9999999;\" name=\"img" + vWidgetID + "\">";
			//半透明框 div
			document.getElementById("PreviewBox" + vWidgetID).innerHTML += "<div id=\"boxButtom\" style=\"filter:alpha(opacity=50);-moz-opacity:0.5;opacity: 0.5;background: #000;width:" + displayW + "px;height:" + displayH + "px;position:absolute;top:" + vTop + "px;left:" + vLeft + "px;display:inline;z-Index:9999997;\"></div>";
		}
	}
	if (document.getElementById("LoadingObj" + vWidgetID) == null) {
		vObj = document.createElement("img");
		vObj.setAttribute("border", 0);
		vObj.setAttribute("id", "LoadingObj" + vWidgetID);
		vObj.setAttribute("src", vURL);
		vObj.style.position = "absolute";
		vObj.style.top = "49%";
		vObj.style.left = "46%";
		document.getElementById("PreviewDiv" + vWidgetID).appendChild(vObj);
	}
}
function removeLoading(vWidgetID) {
    var LoadingTableObj = document.getElementById("LoadingObj" + vWidgetID);
    var container = LoadingTableObj.parentNode;
    container.removeChild(LoadingTableObj);
}
function removePreview(vWidgetID, vURL) {
    $("#PreviewObj" + vWidgetID).stop();
    //移box
	$("#PreviewBox" + vWidgetID).html("");
    var PreviewBoxObj = document.getElementById("PreviewBox" + vWidgetID);
    var container = PreviewBoxObj.parentNode;
    container.removeChild(PreviewBoxObj);
    //移div
	$("#PreviewDiv" + vWidgetID).html("");	
	//設大小0避免擋住其它
	$("#PreviewDiv" + vWidgetID).width("0px");
	$("#PreviewDiv" + vWidgetID).height("0px");
}
function ShowIframe(vURL, vAlign, vWidgetID, widgetW, widgetH, imageW, imageH, vFlashvars) {
	FindPosition(vAlign, vWidgetID, widgetW, widgetH);
    var vExt = vURL.substr(vURL.lastIndexOf(".")).toLowerCase();
    if (vExt.indexOf("?") != -1) {
        vExt = vExt.substr(0, vExt.indexOf("?"));
    }
    var vFindExt = ".jpg,.gif,.png".indexOf(vExt);
    var vFindExtEx = ".swf,.flv,.mp4".indexOf(vExt);
	
    if (vFindExt != -1) {
        ImageResize(imageW, imageH, displayW, displayH);
    }
    else {
        imageWD = displayW;
        imageHD = displayH;
    }
    removeLoading(vWidgetID);
    if (vFindExt != -1) {
        if (document.getElementById("PreviewObj" + vWidgetID) == null) {            
			$("#PreviewDiv" + vWidgetID).html("");
			document.getElementById("PreviewDiv" + vWidgetID).innerHTML = "<table id=\"PreviewTable\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" height=\"100%\"><tr valign=\"middle\"><td align=\"center\">" +
          "<img border=\"0\" id=\"PreviewObj" + vWidgetID + "\" src=\"" + vURL + "\" width=\"" + parseInt(imageWD) + "\" height=\"" + parseInt(imageHD) + "\"></td></tr></table>";					  
        }
        else {
            chgimg(vURL, parseInt(imageWD), parseInt(imageHD), vWidgetID);
        }
    }
    else if (vFindExtEx != -1) {
		$("#PreviewDiv" + vWidgetID).html("");
        var vObj = null;
        vObj = document.createElement("embed");
        vObj.setAttribute("type", "application/x-shockwave-flash");
        vObj.setAttribute("pluginspage", "http://www.macromedia.com/go/getflashplayer");
        vObj.setAttribute("wmode", "transparent");
        vObj.setAttribute("allowscriptaccess", "always");
        vObj.setAttribute("id", "PreviewObj" + vWidgetID);
        vObj.setAttribute("src", vURL);
		vObj.setAttribute("FlashVars", vFlashvars);
        vObj.setAttribute("width", imageWD);
        vObj.setAttribute("height", imageHD);
        document.getElementById("PreviewDiv" + vWidgetID).appendChild(vObj);		
    }
    else {
		$("#PreviewDiv" + vWidgetID).html("");
        var vObj = null;
        vObj = document.createElement("iframe");
        vObj.setAttribute("frameborder", "0", 0);
        vObj.setAttribute("id", "PreviewObj" + vWidgetID);
        vObj.setAttribute("src", vURL);
        vObj.setAttribute("width", imageWD);
        vObj.setAttribute("height", imageHD);
        document.getElementById("PreviewDiv" + vWidgetID).appendChild(vObj);
    }
}
function ImageResize(imageW, imageH, FitWidth, FitHeight) {
    if (imageW > 0 && imageH > 0) {
        if (imageW / imageH >= FitWidth / FitHeight) {
            if (imageW > FitWidth) {
                imageWD = FitWidth;
                imageHD = (imageH * FitWidth) / imageW;
            } else {
                imageWD = imageW;
                imageHD = imageH;
            }
        } else {
            if (imageH > FitHeight) {
                imageHD = FitHeight;
                imageWD = (imageW * FitHeight) / imageH;
            } else {
                imageWD = imageW;
                imageHD = imageH;
            }
        }
    }
    imageWD -= 20;
    imageHD -= 20;
}
function FindPosition(vAlign, vWidgetID, widgetW, widgetH) {
	vLeft = 0;
	vTop = 0;
	$("#WidgetDiv" + vWidgetID).width(widgetW + "px");
    $("#WidgetDiv" + vWidgetID).height(widgetH + "px");
	
    displayW = widgetW;
    displayH = widgetH;
    if (vAlign == "U" || vAlign == "D") {
        displayH = displayW * 0.75;
    }
    else {
        displayW = displayH * 1.35;
    }
	//若不是Drag要用原本方式計算widget的offset
	var bIsNotDrag = (($("#WidgetDiv" + vWidgetID + "  #PreviewDiv" + vWidgetID)[0]) == undefined || ($("#WidgetDiv" + vWidgetID + "  #PreviewDiv" + vWidgetID)[0]) == null );
	if(bIsNotDrag) {	
		GetWidgetPosition(vWidgetID);	
		if (vAlign == "U") {
			vLeft = parseInt(widgetX) + (parseInt(widgetW) - parseInt(displayW)) / 2;
			vTop = parseInt(widgetY) - parseInt(displayH);
		}
		else if (vAlign == "D") {		
			vLeft = parseInt(widgetX) + (parseInt(widgetW) - parseInt(displayW)) / 2;
			vTop = parseInt(widgetY) + parseInt(widgetH);
		}
		else if (vAlign == "L") {
			if (parseInt(widgetX) <= 0 && parseInt(widgetY) <= 0) {
				widgetX = document.getElementById("WidgetDiv" + vWidgetID).offsetLeft;
				widgetY = document.getElementById("WidgetDiv" + vWidgetID).offsetTop;
			}
			vLeft = parseInt(widgetX) - parseInt(displayW);
			vTop = parseInt(widgetY) + (parseInt(widgetH) - parseInt(displayH)) / 2;

		}
		else if (vAlign == "R") {
			vLeft = parseInt(widgetX) + parseInt(widgetW);
			vTop = parseInt(widgetY) + (parseInt(widgetH) - parseInt(displayH)) / 2;
		}
	}
	else {
		if (vAlign == "U") {
			vLeft = 0;
			vTop = - parseInt(displayH);
		}
		else if (vAlign == "D") {					
			vLeft = 0;
			vTop = parseInt(widgetH);
		}
		else if (vAlign == "L") {
			vLeft = - parseInt(displayW);			
			vTop = 0;
		}
		else if (vAlign == "R") {
			vLeft = parseInt(widgetW);			
			vTop = 0;
		}
	}	
		document.getElementById("PreviewDiv" + vWidgetID).style.position = "absolute";
		document.getElementById("PreviewDiv" + vWidgetID).style.zIndex = "9999998";
		document.getElementById("PreviewDiv" + vWidgetID).style.top = vTop + "px";
		document.getElementById("PreviewDiv" + vWidgetID).style.left = vLeft + "px";
		document.getElementById("PreviewDiv" + vWidgetID).style.display = "inline";
}
function MM_preloadImages() { //v3.0
    var d = document; if (d.images) {
        if (!d.MM_p) d.MM_p = new Array();
        var i, j = d.MM_p.length, a = MM_preloadImages.arguments; for (i = 0; i < a.length; i++)
            if (a[i].indexOf("#") != 0) { d.MM_p[j] = new Image; d.MM_p[j++].src = a[i]; }
    }
}
function MM_swapImgRestore() { //v3.0
    var i, x, a = document.MM_sr; for (i = 0; a && i < a.length && (x = a[i]) && x.oSrc; i++) x.src = x.oSrc;
}
function MM_findObj(n, d) { //v4.01
    var p, i, x; if (!d) d = document; if ((p = n.indexOf("?")) > 0 && parent.frames.length) {
        d = parent.frames[n.substring(p + 1)].document; n = n.substring(0, p);
    }
    if (!(x = d[n]) && d.all) x = d.all[n]; for (i = 0; !x && i < d.forms.length; i++) x = d.forms[i][n];
    for (i = 0; !x && d.layers && i < d.layers.length; i++) x = MM_findObj(n, d.layers[i].document);
    if (!x && d.getElementById) x = d.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
    var i, j = 0, x, a = MM_swapImage.arguments; document.MM_sr = new Array; for (i = 0; i < (a.length - 2); i += 3)
        if ((x = MM_findObj(a[i])) != null) { document.MM_sr[j++] = x; if (!x.oSrc) x.oSrc = x.src; x.src = a[i + 2]; }
}

