﻿/*
parseUri 1.2.1
(c) 2007 Steven Levithan <stevenlevithan.com>

http://blog.stevenlevithan.com/archives/parseuri

MIT License
*/

function parseUri(str)
{
    var o = parseUri.options,
		m = o.parser[o.strictMode ? "strict" : "loose"].exec(str),
		uri = {},
		i = 14;

    while (i--) uri[o.key[i]] = m[i] || "";

    uri[o.q.name] = {};
    uri[o.key[12]].replace(o.q.parser, function($0, $1, $2)
    {
        if ($1) uri[o.q.name][$1] = $2;
    });

    return uri;
};

parseUri.options = {
    strictMode: false,
    key: ["source", "protocol", "authority", "userInfo", "user", "password", "host", "port", "relative", "path", "directory", "file", "query", "anchor"],
    q: {
        name: "queryKey",
        parser: /(?:^|&)([^&=]*)=?([^&]*)/g
    },
    parser: {
        strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
        loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/
    }
};

///////////////////////////////////////////////////

function confirmAlert(message)
{
    if (!confirm(message))
        event.returnValue = false;
}

function redirectUrl(href, message)
{
    alert(message);
    window.location = href;
}

function iFrameAutoResize(iframe) 
{
    //var iframeHeight = (i).contentWindow.document.body.scrollHeight;
    //(i).height = iframeHeight + 20;

    var doc = null;
    if (iframe.contentDocument)
        doc = iframe.contentDocument;
    else if (iframe.contentWindow)
        doc = iframe.contentWindow.document;
    else if (iframe.document)
        doc = iframe.document;

    var tempHeight = doc.body.scrollHeight;
    iframe.height = tempHeight + 20;
}

function iframeReSize(iframeId)
{
    try
    {
        var iframe = document.all(iframeId);
        innerDoc = (iframe.contentDocument) ? iframe.contentDocument : iframe.contentWindow.document;
        objToResize = (iframe.style) ? iframe.style : iframe;
        objToResize.height = (innerDoc.body.scrollHeight + 20) + 'px';
        //objToResize.width = (innerDoc.body.scrollWidth + 20) + 'px';
        window.scrollTo(0, 0); //optional code to scroll the parent window back to top
        
//        var doc = null;
//        if (iframe.contentDocument)
//            doc = iframe.contentDocument;
//        else if (iframe.contentWindow)
//            doc = iframe.contentWindow.document;
//        else if (iframe.document)
//            doc = iframe.document;

//        var tempHeight = doc.body.scrollHeight;
//        iframe.height = tempHeight + 20;

//        //var oBody = doc.body;
//        //iframe.style.height = oBody.scrollHeight + (oBody.offsetHeight - oBody.clientHeight);
//        //oFrame.style.width = oBody.scrollWidth + (oBody.offsetWidth - oBody.clientWidth);
    }
    catch (e)
    {
        window.status = 'Error: ' + e.number + '; ' + e.description;
    }
}

//콜백 후 특정 컨트롤에 포커스를 위치합니다.
function updatePanelControlFocus(focusControlId)
{
    var obj = document.getElementById(focusControlId);

    if (obj != null)
    {
        obj.select();
        obj.focus();
    }
}

//콜랙 후 얼럿창은 띄운 후 포커스를 위치 합니다.
function updatePanelCallbackAlert(message, focusControlId)
{
    alert(message.replace(/<br\/>/g, '\r\n'));

    if (focusControlId != null)
    {
        var obj = document.getElementById(focusControlId);
        obj.select();
        obj.focus();
    }
}  


//첨부 파일 업로드
function slUploadFile()
{
    slUploadBusyShow();
    var slHost = document.getElementById(slUploadObjectId("SL"));
    slHost.Content.SLUploadContainer.Upload(getBoardGuid());
}

function mainContentsSave(result)
{
    //debugger;
    slUploadBusyHidden();
    uploadFileListBind(result);
    
    document.getElementById(slUploadObjectId("SB")).click();
}

function uploadFileListBind(result)
{
    var obj = document.getElementById(slUploadObjectId("FL"));
    obj.value = result;
}

//실버라이트 인라인 업로드 파일선택
function slUploadFileSelect(inLinePosition)
{
    //SL : 실버라이트 오브젝트
    //SLC : 실버라이트 오브젝트가 있는 컨테이너(div)
    //UB : 업로드 상태를 보여주는 영역 
    
    //var slHost = document.getElementById(slUplaodId);
    var slHost = document.getElementById(slUploadObjectId("SL"));

    slHost.Content.SLUploadContainer.SelectFile(true, inLinePosition, getBoardGuid());

    //slUploadBusyShow(slUplaodId, uploadBusyId);
}

//서버로 업로 중 표시
function slUploadBusyShow() 
{
    //var divBusy = document.getElementById(slContainerId);
    var divSlc = document.getElementById(slUploadObjectId("SLC"));
    var divSlcRect = divSlc.getBoundingClientRect();

    //var loding = document.getElementById(uploadBusyId);
    var loding = document.getElementById(slUploadObjectId("UB"));
    loding.style.top = divSlcRect.top;
    loding.style.left = divSlcRect.left;
    loding.style.width = divSlcRect.right - divSlcRect.left;
    loding.style.height = divSlcRect.bottom - divSlcRect.top + 1;
    loding.style.display = "block";
}

function slUploadBusyHidden()
{
    //var loding = document.getElementById(uploadBusyId);
    var loding = document.getElementById(slUploadObjectId("UB"));
    loding.style.display = "none";
}


function boardContentsBind(contentObjId, iframeId)
{
    var body = document.getElementById(contentObjId).value;
    var iframe = document.getElementById(iframeId);
//    iframe = document.createElement("iframe");
//    iframe.id = "bodyFrame";
//    iframe.name = "bodyFrame";
//    iframe.style.width = "100%";
//    iframe.frameBorder = "0";

//    if (window.addEventListener)
//        window.addEventListener("load", resizeCaller, false)
//    else if (window.attachEvent)
//        window.attachEvent("onload", resizeCaller)
//    else
//        window.onload = resizeCaller

//    var canvas = document.getElementById("postBody");
//    canvas.appendChild(iframe);
//    iframe.style.display = "none";

    var doc = null;
    if (iframe.contentDocument)
        doc = iframe.contentDocument;
    else if (iframe.contentWindow)
        doc = iframe.contentWindow.document;
    else if (iframe.document)
        doc = iframe.document;

    doc.open();
    doc.write("<style type='text/css'>");
    doc.write("body {font-size:11px;font-family:'맑은 고딕','Malgun Gothic',돋움,dotum,arial,sans-serif,Tahoma;}");
    doc.write("</style>");
    doc.write(body);
    doc.close();

    setTimeout(function() { iframeReSize(iframeId); }, 100);
//    var tempHeight = doc.body.scrollHeight;
//    iframe.height = tempHeight + 20;

//    alert(iframe.height);
}
