﻿
/***********************************************************
Author: Hexj
Add Time: 2007-10-13
Descript: public msg js

1.confirmMsg(msg, fCallback, obj) 
==this can show cancel and confirm button
==param 1: msg
==param 2: when after you click confirm, continue to execute fCallback
==param 3: can use obj while fCallback is null and now only be used by <a> or <input> tag. == when <a> then click confirm button, can do eval(this.href)
when <input> then eval __dopostback
for example: confirmMsg("Do you sure?", function(){alert(1);Gooo();})
confirmMsg("Do you sure?", null, this);
2.errorMsg(msg, fCallback, obj)
3.alertMsg(msg, fCallback, obj)
4.tipMsg(msg, fCallback, obj)

For example:
confirmMsg("Do you sure?", function(){alert(1);})
errorMsg("error");
alertMsg("alert");
tipMsg("tip");
*************************************************************/

var initDivMove = {
    obj : null,
    IsDown: false,
    parentDiv: null,
    init : function(divTitle, divAll)
    {
        divTitle.onmousedown = initDivMove.start;
        initDivMove.parentDiv = divAll;
    },
    start : function(e)
    {
        var o = initDivMove.obj = this;
        var parentDiv = o.parentElement;
        parentDiv.lastMouseX = event.clientX - initDivMove.toInt(parentDiv.style.left);
        parentDiv.lastMouseY = event.clientY - initDivMove.toInt(parentDiv.style.top);;
        initDivMove.createShadowDiv();
        document.body.onmousemove = initDivMove.drag;
        document.body.onmouseup = initDivMove.end;
        initDivMove.IsDown = true;
        window.event.returnValue = false;
		window.event.cancelBubble = true;
    },
    drag : function(e)
    {
        if(initDivMove.IsDown)
        {
            var o = initDivMove.obj = this;
            var nowleft = event.x - initDivMove.parentDiv.lastMouseX;
            var nowtop = event.y - initDivMove.parentDiv.lastMouseY;
            var bodyheight = document.body.clientHeight;
            if(nowleft < 0)
            {
                nowleft = 0;
            }
            if(nowtop < 0)
            {
                nowtop = 0;
            }
            if(nowtop + initDivMove.toInt(initDivMove.parentDiv.ShadowDiv.style.height) <= document.body.clientHeight)
            {
                initDivMove.parentDiv.ifr.style.left = initDivMove.parentDiv.ShadowDiv.style.left = nowleft + "px";
                initDivMove.parentDiv.ifr.style.top = initDivMove.parentDiv.ShadowDiv.style.top = nowtop + "px";
                window.event.returnValue = false;
		        window.event.cancelBubble = true;
		    }
		}
		else
		{
		    initDivMove.end();
		}
    },
    end : function()
    {
        document.body.onmousemove = document.body.onmouseup = null;
        initDivMove.IsDown = false;
        if(initDivMove.parentDiv.ShadowDiv != null)
        {                   
            initDivMove.parentDiv.style.left = initDivMove.parentDiv.ifr.style.left;
            initDivMove.parentDiv.style.top = initDivMove.parentDiv.ifr.style.top;
            initDivMove.parentDiv.ifr.style.display = "none";
            initDivMove.parentDiv.ShadowDiv.style.display = "none";
        }
    },//this code from yejq begin
    createShadowDiv : function()
    {
	    if(!initDivMove.parentDiv.ShadowDiv){
		    initDivMove.parentDiv.ShadowDiv = document.createElement("div");
		    initDivMove.parentDiv.ShadowDiv.style.cssText = initDivMove.parentDiv.style.cssText;
		    initDivMove.parentDiv.ShadowDiv.style.position = "absolute";
		    initDivMove.parentDiv.ShadowDiv.style.backgroundColor = "#75ACFF";
		    initDivMove.parentDiv.ShadowDiv.style.filter = "Alpha(opacity=30)";
		    initDivMove.parentDiv.ShadowDiv.style.border = "2px dashed #888";
		    initDivMove.parentDiv.ShadowDiv.style.zIndex = "901";
		    initDivMove.parentDiv.ShadowDiv.style.cursor = "move";
		    initDivMove.parentDiv.insertAdjacentElement("beforeBegin",initDivMove.parentDiv.ShadowDiv);
		    initDivMove.parentDiv.ifr = document.createElement("iframe");
		    initDivMove.parentDiv.ifr.style.cssText=initDivMove.parentDiv.ShadowDiv.style.cssText;
		    initDivMove.parentDiv.ifr.style.zIndex = '900';
		    initDivMove.parentDiv.ifr.style.filter = 'alpha(opacity=0)';
		    initDivMove.parentDiv.insertAdjacentElement("beforeBegin",initDivMove.parentDiv.ifr);
	    }
	    else{
		    initDivMove.parentDiv.ShadowDiv.style.display = "";		
		    initDivMove.parentDiv.ifr.style.display = "";
	    }
    },//end
    toInt : function(obj)
    {
        if(obj.indexOf("px") >= 0)
        {
            return parseInt(obj.substring(0, obj.length-2));
        } 
        else
        {
            return parseInt(obj);
        }
    }
}
 //full screen div begin
function createAllDiv()
{
    if(document.getElementById("divAll"))
    {
        return;
    }
    var divAll = document.createElement("div");
    divAll.style.display = "";
    divAll.style.backgroundColor = "white";
    divAll.style.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity=25,style=3,finishOpacity=50)";
    divAll.style.opacity = "0.6";
    divAll.style.zIndex = "1";
    divAll.style.position="absolute";
    divAll.style.width = document.body.scrollWidth;
    divAll.style.height = document.body.scrollHeight;
    divAll.style.top = "0px";
    divAll.style.left = "0px";
    //divAll.style.display = "none";
    divAll.id = "divAll";
    document.body.bgcolor = "transparent";
    var frame = document.createElement("<iframe></iframe>");
    frame.style.width = divAll.style.width;
    frame.style.height =  divAll.style.height;
    frame.style.position = "absolute";
    frame.style.top = frame.style.left = "0px";
    frame.style.zIndex = "0";
    frame.style.filter = "Alpha(opacity=2)";
    frame.id = "frame1";
    document.body.appendChild(frame);
    document.body.appendChild(divAll);
}
//end

//create condition div begin
/*
msg: 
titletext:
buttonType:
imageType:
fCallback:
obj:can use obj while fCallback is null and now only be used by <a> tag. == when click confirm button, can do eval(this.href)
*/
function createShowDiv(msg, titletext, buttonType, imageType, fCallback, obj)
{
    //var divImp = $("divImportCondition");
    var divShow = document.createElement("div");
    divShow.style.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity=,style=0,finishOpacity=100)";
    divShow.style.zIndex = "898";
    window.status = divShow.style.top + "left:" + document.body.scrollLeft;
    divShow.style.position = "absolute";
    divShow.style.backgroundColor = "#ffffff";
    divShow.style.width = "250px";
    divShow.style.height = "150px";
    divShow.style.border = "#e6eeff thin outset";
    divShow.id = "divShow";
    divShow.style.top = document.body.clientHeight/2 - 100 + document.body.scrollTop;
    divShow.style.left = document.body.clientWidth/2 + document.body.scrollLeft - 125;
    //divTitle  begin 
    var divTitle = document.createElement("div");
    divTitle.style.backgroundImage = "url(/wsp/Images/title.gif)";
    divTitle.style.width = "250px";
    divTitle.style.cursor = "move";
    divTitle.style.color = "#0054A8";
    divTitle.style.fontSize = "12px";
    divTitle.style.fontWeight = "bold";
    divTitle.style.borderBottom = "#ACB2BE 1 solid";
    var divTitleText = document.createElement("div");
    divTitleText.innerHTML = "&nbsp;&nbsp;<font color='#0054A8'>" + titletext + "</font>";
    divTitleText.style.styleFloat = "left";
    divTitle.appendChild(divTitleText)
    var divClose = document.createElement("div");
    //divClose.innerHTML = "<img src='/wsp/Images/icon_close.gif'>";
    divClose.style.cursor = "hand";
    divClose.onclick = cancelevent;
    divClose.style.styleFloat = "right";
    divClose.style.height = "20px";
    divTitle.appendChild(divClose);
    divShow.appendChild(divTitle);
    //end
    //divContent  begin
    divContent = document.createElement("div");
    var contentHtml = "<div style='float:left;width:32px;height:100px;padding-top:30px;padding-buttom:30px;padding-left:15px'><img src='"+ imageType+ "'></div>";
    divContent.innerHTML = contentHtml + "<div style='height:100px;overflow:auto'><table height='100%'><tr><td valign=middle>" + msg + "</td></tr></table></div>";
    //divContent.innerText = msg;
    divContent.style.width = "250px";
    divContent.style.height = "100px";
    divContent.style.wordBreak = "break-all";
    divContent.style.color = "black";
    divContent.style.fontSize = "12px";
    divShow.appendChild(divContent);
    //end
    //divBtn begin
    var divBtn = document.createElement("div");
    divBtn.style.paddingTop = "0px";
    divBtn.style.width = "250px";
    divBtn.style.backgroundColor = "#DAE7F6";
    divBtn.style.height = "30px";
    divBtn.style.borderTop = "#ACB2BE 1 solid";
    var btnHTML = "";
    var btnStyle = "style='background-image: url(/wsp/Images/title.gif);background-color:#FFFFFF;font-size: 12px;color: #003366;border: 1px #999 solid;width : 60px;height:22px;CURSOR: hand;'"
    btnHTML = "<table height='30px' width='250px'><tr><td valign='middle' align='center' width='50%'><input type='button' id='btn_show_confirm' "+btnStyle+" />";
    if(buttonType != ButtonType.Alert)
    {
        btnHTML += "&nbsp;<input type='button' id='btn_show_cancel' "+btnStyle+"/>";
    }
    btnHTML += "</td></tr></table>";
    divBtn.innerHTML = btnHTML;
    //alert(divBtn.innerHTML);
    divShow.appendChild(divBtn);
    
    //end
    document.body.appendChild(divShow);
    initDivMove.init(divTitle, divShow);
    
    var btnConfirm = document.getElementById('btn_show_confirm');
    btnConfirm.value = BUTTON_CONFIRM_TEXT;
    btnConfirm.focus();
    btnConfirm.onclick = function()
    {
        cancelevent();
        if(fCallback)
        {
            fCallback();
        }
        else if(obj)
        {
            if(obj.tagName == "A")
            {    
                eval(obj.href);
            }
            else if(obj.tagName == "INPUT" && obj.type == "submit")
            {
                __doPostBack(obj.name, "");
            }
        }
    };
    if(buttonType != ButtonType.Alert)
    {
        var btnCancel = document.getElementById('btn_show_cancel');
        btnCancel.value = BUTTON_CANCLE_TEXT;
        btnCancel.onclick = cancelevent;
        btnCancel.style.backgroundColor = "#F2F2ED";
    }
}
//end
//confirm button begin
function confirmevent()
{
    cancelevent();
    event.returnvalue = true;
}
//end
//cancel button begin
function cancelevent()
{
    if(document.getElementById("divAll"))
    {
        document.body.removeChild(document.getElementById("divAll"));
    }
    if(document.getElementById("divShow"))
    {
        document.body.removeChild(document.getElementById("divShow"));
    } 
    if(document.getElementById("frame1"))
    {
        document.body.removeChild(document.getElementById("frame1"));
    }
    return false;
}
//end

//alert begin

function alertMsg(msg, fCallback, obj)
{

    createAllDiv();
    createShowDiv(msg, Tip_Text, ButtonType.Alert, ImageType.Alert, fCallback, obj);
    return false;
}

function confirmMsg(msg, fCallback, obj)
{
    createAllDiv();
    createShowDiv(msg, Tip_Text, ButtonType.Confirm, ImageType.Question, fCallback, obj);
    return false;
}
function errorMsg(msg, fCallback, obj)
{
    createAllDiv();
    createShowDiv(msg, Error_Text, ButtonType.Alert, ImageType.Error, fCallback, obj);
    return false;
}
function tipMsg(msg, fCallback, obj)
{
    createAllDiv();
    createShowDiv(msg, Tip_Text, ButtonType.Alert, ImageType.Tip, fCallback, obj);
    return false;
}
var ButtonType = {
Alert : "Alert",
Confirm : "Confirm",
Advanced : "Advanced"
}

var ImageType = {
Error : "/wsp/Images/error.gif",
Question: "/wsp/Images/quest.gif",
Tip : "/wspImages/info.gif",
Alert : "/wsp/Images/alert.gif"
}