/// <reference path="jquery/jquery.131.js" />

var sBUIContainer = "<div id='bui' />";

// ------------------------------------------------------------------------------------
function getBUILayout(iWidth) {
    var buiLayout = {
        backgroundColor: 'black',
        border: '2px black solid',
        top: ($(window).height() - iWidth) / 2 + 'px',
        left: ($(window).width() - iWidth) / 2 + 'px',
        width: iWidth + 'px',
        cursor: 'default',
        textAlign: 'center'
    };
    return buiLayout;
}
// ------------------------------------------------------------------------------------
function msgMembersOnly() {
    alertEx(getResString('Javascript_Message_4'));
}
// ------------------------------------------------------------------------------------
function msgAdminsOnly() {
    alertEx(getResString('Javascript_Message_5'));
}
// ------------------------------------------------------------------------------------
function msg(sResString) {
    alertEx(getResString(sResString));
}
// ------------------------------------------------------------------------------------
function alertEx(sMessage) {
    
    if (sMessage) {
        sMessage = sMessage.replace(/\n/g,"<br />");        
        $.blockUI({ message: $(sBUIContainer), css: getBUILayout(300) });
        $("#bui").setTemplateURL("/js/templates/alert.htm", null, { filter_data: false });
        $("#bui").processTemplate({ 'msg': sMessage, 'title': getResString('Common_Alert_Exclamation') });
        $("#bui_Ok").click($.unblockUI);  
    }
}
// ------------------------------------------------------------------------------------
function showContent(sContent) {

    if (sContent) {
        $.blockUI({ message: $(sBUIContainer), css: getBUILayout(700) });
        $("#bui").setTemplateURL("/js/templates/content.htm", null, { filter_data: false });
        $("#bui").processTemplate({ 'content': sContent });
        $("#bui_Ok").click($.unblockUI);
//        $(window).keydown(
//            function(e) {
//                var key = e.keyCode || e.which;
//                if (key == 27) //escape key ascii code
//                    $.unblockUI();
//            }
//		);
    }
}
// ------------------------------------------------------------------------------------
function confirmEx(oConfirm) {
    
    if (oConfirm.Message) {
        oConfirm.Message = oConfirm.Message.replace(/\n/g,'<br />');

        $.blockUI({ message: $(sBUIContainer), css: getBUILayout(300) });
        $("#bui").setTemplateURL("/js/templates/confirm.htm", null, { filter_data: false });
        $("#bui").processTemplate({
            'msg': oConfirm.Message,
            'title': getResString('Common_Alert_Question'),
            'ok': getResString('Common_Command_Yes'),
            'cancel': getResString('Common_Command_No')
        });        
        $("#bui_Ok").click(function() { oConfirm.OK_Function(); });
        $("#bui_Cancel").click($.unblockUI);        
    }
}
// ------------------------------------------------------------------------------------
function getResString(sResourceID) {

    var sURL = '/service/resourcestring.aspx';
    
    var sValue = $.ajax({
        url: sURL,
        data: 'id=' + sResourceID,
        async: false
    }).responseText;

    if (sValue) { return sValue; }
}
// ------------------------------------------------------------------------------------
function checkAndSetExtension(sValue) {

    var extension = new Array();
    extension[0] = ".gif";
    extension[1] = ".ico";

    var thisext = sValue.substr(sValue.lastIndexOf('.'));
    for(var i = 0; i < extension.length; i++) {
	    if(thisext == extension[i]) { 
	        $('#lblGroupImageExtension').html(thisext);
	        return true; 
	    }
	}
    alertEx(getResString('Group_Picture_ValError_WrongExtension'));
    return false;
}
// ------------------------------------------------------------------------------------
function selectGroupEditIcon(sSelect, bShowError) {

    var sNoIcon = getResString('Group_Picture_Entry_NoIcon');
    var sUpload = getResString('Group_Picture_Entry_Upload');
    var sLoadFav = getResString('Group_Picture_Entry_LoadFav');
    var sNoWeb = getResString('Group_Picture_LoadFav_NoWeb');

    var oSelect = document.getElementById(sSelect);
    var sImg = oSelect.options[oSelect.options.selectedIndex].value;    
    $('#imgSelected').attr('src', sImg);

    //alle möglichen Controls zurücksetzen
    $('#imgFavIcon').hide();
    $('#imgFavIcon').attr('src', 'images/dummy.gif');
    $('#ctl00_cphContent_hidFavIconFile').val('');
    $('#lblFavIconInfo').hide();
    $('#lblFavIconInfo').html('');

    if (bShowError == false) {
        $('#ctl00_cphContent_lblError').hide();
    }
    
    switch (oSelect.options[oSelect.options.selectedIndex].text) {
        case sNoIcon:
            showArea('EditImageArea_Load', 'hide');
            $('#ctl00_cphContent_hidGroupImageAction').val('NOICON');
            break;
            
        case sUpload:
            showArea('EditImageArea_Load','show');
            showArea('EditImageArea_Upload','show');
            showArea('EditImageArea_LoadFav','hide');
            showArea('EditImageArea_NewFile','show');
            $('#ctl00_cphContent_hidGroupImageAction').val('UPLOAD');
            $('#lblGroupImageExtension').html('');
            break;

        case sLoadFav:
            showArea('EditImageArea_Load', 'show');
            showArea('EditImageArea_Upload', 'hide');
            showArea('EditImageArea_LoadFav', 'show');

            if ($('#txtGroupWebsite').length == 0) {
                var sWeb = $('#ctl00_cphContent_txtGroupWebsite').val();
            } else {
                var sWeb = $('#txtGroupWebsite').val();
            }

            if (sWeb) {
                //sWeb += '/favicon.ico'
                $('#ctl00_cphContent_txtFavIconURL').val(sWeb);
                $('#EditImageArea_LoadFav_Web').show();
                $('#EditImageArea_LoadFav_NoWeb').hide();
                showArea('EditImageArea_NewFile', 'show');
            } else {
                $('#lblFavIconURL').html(sNoWeb);
                $('#EditImageArea_LoadFav_Web').hide();
                $('#EditImageArea_LoadFav_NoWeb').show();
                showArea('EditImageArea_NewFile', 'hide');
            }
            $('#lblGroupImageExtension').html('');
            $('#ctl00_cphContent_hidGroupImageAction').val('LOADFAV');
            break; 

        default:
            showArea('EditImageArea_Load','hide');
            $('#ctl00_cphContent_hidGroupImageAction').val('ICON');
            break;
    }
}
// ------------------------------------------------------------------------------------
function loadFavIcon () {

    var sLoadError = getResString('Group_Picture_LoadFav_Error');
    var sCommandTextLoad = getResString('Common_Command_Load');
    var sCommandTextWait = getResString('Common_Command_Wait');
    
    $('#lblFavIconInfo').html('');
    $('#lblFavIconInfo').hide();
    $('#imgFavIcon').show();
    $('#imgFavIcon').attr('src','images/ajaxload_arrows16.gif');

    $('#cmdLoadFavIcon').attr("value", sCommandTextWait);
    $('#cmdLoadFavIcon').attr("disabled", "true");

    var sSite = $('#ctl00_cphContent_txtFavIconURL').val();
    var sResolveURL = '/service/resolvefavicon.aspx';
    
    var sValue = $.ajax({
        url: sResolveURL,
        data: 'site=' + sSite + '&format=json',
        async: false
    }).responseText;

    if (sValue) { 
        var oJSON = eval('(' + sValue + ')');
        var iFound = parseInt(oJSON.FavIcon.Url.length);
        
        $('#lblFavIconInfo').show();
        
        if (iFound != 0) {
            $('#imgFavIcon').attr('src', oJSON.FavIcon.Url);
            $('#ctl00_cphContent_hidFavIconFile').val(oJSON.FavIcon.File);            
        } else {
            $('#imgFavIcon').hide();
            $('#ctl00_cphContent_hidFavIconFile').val('');
            $('#lblFavIconInfo').show();
            $('#lblFavIconInfo').html(sLoadError);
        }
    }
    $('#cmdLoadFavIcon').attr("value", sCommandTextLoad);
    $('#cmdLoadFavIcon').removeAttr('disabled');
}
// ------------------------------------------------------------------------------------
function openWhoisInfo(sHost) {

    var sUrl = "../service/whoisinfo.ashx?host=" + sHost;
    
    document.body.style.cursor = "wait";
    $.get(sUrl, function(data) {
        if (data.length != 0) {
            var jData = eval('(' + data + ')');
            if (jData.error.length != 0) {
                msgMembersOnly();
            } else {
                $.blockUI({ message: $(sBUIContainer), css: getBUILayout(600) });
                $("#bui").setTemplateURL("js/templates/whoisinfo.htm", null, { filter_data: false });
                $("#bui").processTemplate(jData);
                $('#bui_Ok').click($.unblockUI);
            }
        } else {
            msg('Javascript_Message_19');
        }
        document.body.style.cursor = "default";
    });
}
// ------------------------------------------------------------------------------------
function getIPInfo(sUAID, iRowsCount, iPage, iFirst, bKeepState) {

    var iMaxRows = 20;
    
    //URL zusammenstellen
    var sURL = "../service/ipinfo.aspx?ua=" + String(sUAID) + '&s=' + String(iMaxRows) + '&p=' + String(iPage) + '&f=' + String(iFirst);

    //JSON-Code vom Server holen
    $.getJSON(sURL, function(json) {
        if (json != undefined) {
        
            //Daten an Template hängen
            $("#ShowIPWrapper" + sUAID).setTemplateURL("js/templates/ipinfo.htm");
            $("#ShowIPWrapper" + sUAID).processTemplate(json);

            // Pager erstellen
            $("#ShowIPPager" + sUAID).empty();
            if (iRowsCount > iMaxRows) {
                if (iPage == 1) {
                    $("#ShowIPPager" + sUAID).append("<a href=\"javascript: getIPInfo(" + sUAID + "," + iRowsCount + "," + String(parseInt(iPage) + 1) + "," + iFirst + ", true);\">" + getResString('Common_NextEntries') + "</a>");
                } else {
                    $("#ShowIPPager" + sUAID).append("<a href=\"javascript: getIPInfo(" + sUAID + "," + iRowsCount + "," + String(parseInt(iPage) - 1) + "," + iFirst + ", true);\">" + getResString('Common_PreviousEntries') + "</a>");
                    if (iPage * iMaxRows <= iRowsCount) {
                        $("#ShowIPPager" + sUAID).append("<span class=\"delim\"> | </span>");
                        $("#ShowIPPager" + sUAID).append("<a href=\"javascript: getIPInfo(" + sUAID + "," + iRowsCount + "," + String(parseInt(iPage) + 1) + "," + iFirst + ", true);\">" + getResString('Common_NextEntries') + "</a>");
                    }
                }
                $("#ShowIPPager" + sUAID).show();
            }
        }
    });
    if (bKeepState == false) { setTimeout("doShowIP(" + sUAID + ")", 200); }    
}
// ------------------------------------------------------------------------------------
function getIPInfo_OLD(sUAID, iRowsCount, iPage, iFirst, bKeepState) {
    
    //*** Daten per JSON an DIV anfügen
    
    var iMaxRows = 20;

    //URL zusammenstellen
    var sURL = "../service/ipinfo.aspx?ua=" + String(sUAID) + '&s=' + String(iMaxRows) + '&p=' + String(iPage) + '&f=' + String(iFirst);

    //Header erstellen
    $("#ShowIPWrapper" + sUAID).empty();
    $("#ShowIPWrapper" + sUAID).append("<div class=\"data_row_head2\"><div class=\"ip\">IP-Adresse</div><div>Host-Name</div></div>");
        
    //JSON-Code vom Server holen
    $.getJSON(sURL, function(json){

        if (json != undefined) {
            $.each(json.rows, function(i,item) {
                $("#ShowIPWrapper" + sUAID).append("<div class=\"data_row\"><div class=\"ip\">" + item.IPAddress + "</div><div>" + item.HostName + "</div></div>");
            });
            
            // Pager erstellen...
        }
    });    
    if (bKeepState == false) { setTimeout("doShowIP(" + sUAID + ")", 200); }
}
// ------------------------------------------------------------------------------------
function addUAEditGroupOptions(sUAID, sGroupID) {

    if (sUAID.length == 0) {
        var sGroupBox = "cboUAGroupAll";
    } else {
        var sGroupBox = "cboUAGroup" + sUAID;
    }
    var sIDList = $("#txtGroupIDList").val();
    var aIDList = sIDList.split("|");
    var sNameList = $("#txtGroupNameList").val();
    var aNameList = sNameList.split("|");
    
    $("#" + sGroupBox).addOption(0, getResString('Common_Unknown'), false);
    for(var i = 0; i < aIDList.length; i++) {
        $("#" + sGroupBox).addOption(aIDList[i], aNameList[i], false);
    }
    $("#" + sGroupBox).selectOptions(sGroupID.toString());
}
// ------------------------------------------------------------------------------------
function selectAllUARows() {

    if ($("#chkAll:checked").val() != null ) {
        $("input.check_uaitem").each( function() { $(this).attr("checked","checked"); } );
    } else {
        $("input.check_uaitem").each( function() { $(this).removeAttr("checked"); } );
    }
    showCheckedUARows();
}
// ------------------------------------------------------------------------------------
function showCheckedUARows() {
    var n = $("input.check_uaitem:checked").length;
    updateCheckedUARows();
    if (n == 0) {
        $("#ShowUACommandsAll").hide();
        $("#chkAll").removeAttr("checked");
    } else {
        addUAEditGroupOptions('',0);
        $("#ShowUACommandsAll").show();
        $("#chkAll").attr("checked","checked");
    }
}
// ------------------------------------------------------------------------------------
function updateCheckedUARows() {
    var n = $("input.check_uaitem:checked").length;
    if (n == 0) {
        $("#UARowHeaderCaption").text('');
        $("#ShowUACommandsAll").hide();
        $("#chkAll").removeAttr("checked");
    } else {
        $("#UARowHeaderCaption").text(n + " " + (n == 1 ? getResString('Common_UA') : getResString('Common_UAs')) + " " + getResString('Common_Selected'));
    }
    return n;
}
// ------------------------------------------------------------------------------------
function getControlHtml(sControl) {
    $.ajax({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: 'service/ScriptService.asmx/GetControlHtml',
        data: "{'controlLocation':'~/" + sControl + ".ascx'}",
        success:
            function(sHtml) {
                showContent(eval(sHtml));
            },
        error:
            function(XMLHttpRequest, textStatus, errorThrown) {
               alert("Error Occured!");
            }
    });
}
// ------------------------------------------------------------------------------------
function evaluateSubmit(sButtonID, e) {
    var key;
    if (window.event) {
        key = window.event.keyCode; //IE
    } else {
        key = e.which; //normal Browsers
    }
    
    if (key == 13) { //ENTER
        var btn = document.getElementById(sButtonID);
        if (btn != null) { 
            btn.click();
            event.keyCode = 0
        }
    }
}
// ------------------------------------------------------------------------------------

