// =====================================
// Module: GTC Web Site
// Description: Javascript 'common' functions open windows etc.
// $Archive: /WembleySite/Web/includes/js/common_fnc.js $
// $Author: Mamtas $
// $Date: 2/06/09 17:09 $
// $Revision: 6 $
// =====================================
// $NoKeywords: $
// =====================================

function centeredWindow
    // return (partial) features string for a centered window of a given size
    (
        lngWidth,
            // window width
        lngHeight
            // window height
    )
{
    var lngLeftOffset = Math.round(((window.screen.availWidth - 15) - lngWidth)/2);
        // offset from left edge to start of window

    var lngTopOffset = Math.round(((window.screen.availHeight - 30) - lngHeight)/2);
        // offset from top edge to start of window

    if (lngLeftOffset<0) lngLeftOffset = 0;
    if (lngTopOffset<0) lngTopOffset = 0;

    return 'left=' + lngLeftOffset.toString() +
           ',top='  + lngTopOffset.toString() +
           ',width=' + lngWidth.toString() +
           ',height=' + lngHeight.toString();
}

function tallWindow
    // return (partial) features string for a maximized height window
    (
        lngWidth
            // window width
    )
{
    var lngLeftOffset = Math.round(((window.screen.availWidth - 15) - lngWidth)/2);
        // offset from left edge to start of window

    if (lngLeftOffset<0) lngLeftOffset = 0;

    return 'top=0' +
           ',left=' + lngLeftOffset.toString() +
           ',width=' + lngWidth.toString() +
           ',height=' + (window.screen.availHeight-30).toString();
}
function bottomRightWindow
    // return (partial) features string for a bottom right window of a given size
    (
        lngWidth,
            // window width
        lngHeight
            // window height
    )
{
    var lngLeftOffset = Math.round(((window.screen.availWidth - 15) - lngWidth));
        // offset from left edge to start of window

    var lngTopOffset = Math.round(((window.screen.availHeight - 30) - lngHeight));
        // offset from top edge to start of window

    if (lngLeftOffset<0) lngLeftOffset = 0;
    if (lngTopOffset<0) lngTopOffset = 0;

    return 'left=' + lngLeftOffset.toString() +
           ',top='  + lngTopOffset.toString() +
           ',width=' + lngWidth.toString() +
           ',height=' + lngHeight.toString();
}

function maxWindow()
    // return (partial) features string for a maximized window
{
    return 'top=0,left=0,width=' + (window.screen.availWidth-15).toString() +
           ',height=' + (window.screen.availHeight-30).toString();
}

function maxWindowPlusMenu()
    // return (partial) features string for a maximized window
{
    return 'menubar,toolbar,top=0,left=0,width=' + (window.screen.availWidth-15).toString() +
           ',height=' + (window.screen.availHeight-100).toString();
}

function medWindow()
    // return (partial) features string for a medium-sized centered window
{
    return centeredWindow(Math.round(window.screen.availWidth*2/3),Math.round(window.screen.availHeight*2/3));
}

// enlarge map window
function openWindowMap(url) {
 	popupWin = window.open(url, 'Map', 'resizable=yes,scrollbars=yes,' + maxWindowPlusMenu());
}

// Email window
function openWindowEmail(url) {
 	popupWin = window.open(url, 'Email', 'resizable=yes,scrollbars=yes,' + centeredWindow(500,510));
}

// Unit Type Edit window
function openWindowUnitTypeEdit(url) {
 	popupWin = window.open(url, 'UnitTypeEdit', 'resizable=yes,scrollbars=yes,' + centeredWindow(500,250));
}

// Unit Edit window
function openWindowUnitEdit(url) {
 	popupWin = window.open(url, 'UnitEdit', 'resizable=yes,scrollbars=yes,' + centeredWindow(800,710));
}

// Print window
function openPrintWindow(url) {
 	popupWin = window.print(url);
}


function openWindowUnitMap(url) {
 	popupWin = window.open(url, 'UnitEdit', 'resizable=yes,scrollbars=yes,' + centeredWindow(999,850));
}



function openWindowPrint(url) {
 	return window.open(url, 'subwindowprint', 'resizable=yes,scrollbars=yes,menubar,toolbar' + centeredWindow(800,710));
}


function openWindowEdit(url) {
 	popupWin = window.open(url, 'Edit', 'resizable=yes,scrollbars=yes,' + centeredWindow(650,480));
}


function isEmail(strEmail)
// returns true if the supplied string is likely to be an email address
{
    strEmail = trim(strEmail);
    alert('strEmail');
    if ( "" == strEmail )
    {
        return false;
    }
    else
    {
        var lngAtPos = strEmail.indexOf('@');
        var lngDotPos = strEmail.lastIndexOf('.');

        if ((-1 == lngAtPos) || (-1 == lngDotPos) || (lngAtPos<1) || (lngDotPos>=(strEmail.length-1)) || (lngDotPos<=lngAtPos))
        {
            return false;
        }
        else
        {
            return (-1==strEmail.toLowerCase().search(/[^0123456789abcdefghijklmnopqrstuvwxyz@\._-]/));
        }
    } 
}

