/// <reference name="MicrosoftAjax.debug.js" />
/// <reference name="MicrosoftAjaxTimer.debug.js" />
/// <reference name="MicrosoftAjaxWebForms.debug.js" />
/// <reference path="../ExtenderBase/BaseScripts.js" />
/// <reference path="../Common/Common.js" />
/// <reference path="../Compat/Timer/Timer.js" />
/// <reference path="../Animation/Animations.js" />
/// <reference path="../Animation/AnimationBehavior.js" />
/// <reference path="../PopupExtender/PopupBehavior.js" />

// PopuControl
var Popup_LastControl = null;

function Popup_PreShow(popupctrl) {
    return Popup_PreShowWithUrl(popupctrl, null);
}

function Popup_PreShowWithUrl(popupctrl, url) {

    if (popupctrl.SubmitEvent == null)
        popupctrl.SubmitEvent = false;

    if (!popupctrl.SubmitEvent) {
        if (url == null) {
            if (popupctrl.ContentUrlEx != null)
                popupctrl.backupUrl = popupctrl.ContentUrlEx;
            else if (popupctrl.backupUrl == null) {
                popupctrl.backupUrl = popupctrl.GetContentUrl();
            }
        } else {
            popupctrl.backupUrl = url;
        }

        Popup_LastControl = popupctrl;

        // zabraneni 2x requestu
        if (popupctrl.GetContentUrl() == '')
            popupctrl.SetContentUrl(popupctrl.backupUrl);

        return false;
    }
    else {
        Popup_LastControl = null;
        popupctrl.SubmitEvent = false;
        return true;
    }
}
function Popup_CloseUp(popupctrl) {
    popupctrl.SetContentUrl('');
}
function Popup_Submit() {
    Popup_LastControl.SubmitEvent = true;
    Popup_LastControl.Hide();
    var bt = Popup_LastControl.GetPopupElement();
    bt.click();
}
function Popup_Cancel() {
    Popup_LastControl.SubmitEvent = false;
    Popup_LastControl.Hide();
}


function Popup_ResizeFromClient(w, h) {
    var wh = Popup_LastControl.GetHeight();
    var ww = Popup_LastControl.GetWidth();
    var fr = Popup_LastControl.GetWindowContentIFrame();

    var td = fr.parentNode;

    var tdBounds = Sys.UI.DomElement.getBounds(td);

    var offseth = tdBounds.height - h;
    var offsetw = tdBounds.width - w;

    Popup_LastControl.SetSize(ww - offsetw, wh - offseth);
    //SetCurrentSize(td, w, h);
    //SetCurrentSize(tb, tbBounds.width - offsetw, tbBounds.height - offseth);

    Popup_LastControl.UpdatePosition();
}
function SetCurrentSize(n, w, h) {
    n.style.height = h;
    n.style.width = w;
}

function Popup_Resize() {
    //alert('resize');
    setTimeout(function() {
        Popup_ResizeCore2();
    }, 1);
}



function Popup_ResizeCore3() {
    var w = Popup_LastControl.GetWidth();
    Popup_LastControl.SetSize(w, 1);
    Popup_LastControl.UpdatePosition();

    setTimeout(function() {
        Popup_ResizeCore2();
    }, 20);

}


function Popup_ResizeCore2() {

    var frame = Popup_LastControl.GetWindowContentIFrame();

    Popup_LastControl.GetHeight();

    var mainDiv = frame.contentWindow.document.getElementById('mainDiv');
    alert(mainDiv);
    var areaViewBounds = Sys.UI.DomElement.getBounds(mainDiv);

    alert(areaViewBounds.x);
    alert(areaViewBounds.y);

    var h = frame.contentWindow.document.body.scrollHeight;
    var w = Popup_LastControl.GetWidth();

    alert(h);
    alert(w);

    if (__swiIE)
        Popup_LastControl.SetSize(w, h + 31);
    else if (__swiOpera)
        Popup_LastControl.SetSize(w, h + 2);
    else if (__swiFirefox || __swiMozilla)
        Popup_LastControl.SetSize(w, h);
    else
        Popup_LastControl.SetSize(w, h);
    Popup_LastControl.UpdatePosition();

}



var lastIFrameDiv;

var ModalWnd_Caption = '';
var ModalWnd_Width = 800;
// ClientID controls
var ModalWnd_ButtonShow;        // Hidden show button
var ModalWnd_ButtonPostBack;    // Regular button
var ModalWnd_ButtonPostBackDef; // Hidden button in SwiModalWindow
var ModalWnd_ButtonCancel;      // Cancel Button
var ModalWnd_Command;           // Hidden edit
var ModalWnd_Params;            // Hidden edit
// Iframe
var ModalWnd_IFrame;
var ModalWnd_Div;

// Bool test
var ModalWnd_CheckEvent = false; //is PostBack or first click

function ModalWindow_Setup(width, caption, hiddenShow, hiddenCmd, hiddenPar, defButton, cancelButton, baseDiv, iframe) {
    ModalWnd_Caption = caption;
    ModalWnd_Width = width;
    ModalWnd_ButtonPostBackDef = defButton;
    ModalWnd_Command = hiddenCmd;
    ModalWnd_Params = hiddenPar;
    ModalWnd_ButtonShow = hiddenShow;
    ModalWnd_ButtonCancel = cancelButton;

    ModalWnd_IFrame = iframe;
    ModalWnd_Div = baseDiv;

}
function ModalWindow_Show(cmdArgument, AspxPage, params, specWidth, btPostBack, caption) {
    if (ModalWnd_CheckEvent) {
        ModalWnd_CheckEvent = false;
        return false;
    }

    ModalWnd_ButtonPostBack = btPostBack;
    $get(ModalWnd_Command).value = cmdArgument;
    $get(ModalWnd_Params).value = params;


    ModalWindow_ClearIFrame();

    var w = ModalWnd_Width;
    if (specWidth > 0) w = specWidth;
    $get('IFRAMEWIDTH').style.width = w + 'px';

    var html = $get(ModalWnd_IFrame).value;
    html = html.replace('{page}', AspxPage);
    $get(ModalWnd_Div).innerHTML = html;

    $get(ModalWnd_ButtonShow).click();
    var cap = ModalWnd_Caption;

    if (caption.toString().length > 0)
        cap = caption;

    $get('MWNDCAPTION').innerHTML = cap;

    return true;
}

function ModalWindow_ClearIFrame() {
    var iframe = $get(ModalWnd_Div);
    if (iframe != null)
        iframe.innerHTML = '';
}

/********************************************/
/*  Close and clic event                     */
function ModalWindow_Submit() {
    var bt = $get(ModalWnd_ButtonPostBack);
    if (bt != null) {
        // pouziva se pouze pro SwiModalButton
        ModalWnd_CheckEvent = true;
    }
    if (bt == null)
        bt = $get(ModalWnd_ButtonPostBackDef);

    if (bt == null) {
        alert('Submit button is null!');
        return;
    }

    ModalWindow_ClearIFrame();
    ModalWindow_Cancel();

    bt.click();
}

function ModalWindow_Cancel() {
    ModalWindow_ClearIFrame();
    var bt = $get(ModalWnd_ButtonCancel);
    if (bt != null)
        bt.click();
}



/********************************************/
function IframeSize() {
    setTimeout(function() {
        var frame = $get('ifrm');

        var h = frame.contentWindow.document.body.scrollHeight;
        frame.style.height = h;
    }, 1);
}   


