function toggleLayer( whichLayer )
{
    var elem, vis;
    elem = getLayer(whichLayer);
    if ( elem != null )
    {
        vis = elem.style;
        // if the style.display value is blank we try to figure it out here
        if( vis.display == '' && elem.offsetWidth != undefined && elem.offsetHeight != undefined )
        {
            vis.display = ( elem.offsetWidth !=0 && elem.offsetHeight != 0 ) ? 'block' : 'none';
        }
        vis.display = ( vis.display == '' || vis.display == 'block' ) ? 'none' : 'block';
    }
}
var iDimLevel = 10;
var oInterval = 0;

function showLoading()
{
    var oOverlayDiv = document.getElementById('overlaydiv');
    iDimLevel = 10;
    setOpacity(oOverlayDiv, iDimLevel);
}

function hideLoading()
{
    iDimLevel = 10;
    oInterval = window.setInterval(dimLoading, 250);
}

function debugpanes(sOn, sNumPanes)
{
    for ( var i = 0; i < sNumPanes; i++)
    {
        var oDiv = getLayer('debugpane' + i);
        var oLink = document.getElementById('debugpanelink' + i);
        if ( sOn == i )
        {
            oDiv.style.display = 'block';
            oLink.className = 'selected';
        }
        else
        {
            oDiv.style.display = 'none';
            oLink.className = 'notselected';
        }
    }
}

function dimLoading()
{
    iDimLevel = iDimLevel - 1;
    var oOverlayDiv = document.getElementById('overlaydiv');
    setOpacity(oOverlayDiv, iDimLevel);
    if ( iDimLevel == 0 )
    {
        clearInterval(oInterval);
    }
}

function setOpacity(oObj, value)
{
    oObj.style.opacity = value/10;
    oObj.style.filter = 'alpha(opacity=' + value*10 + ')';
}


function showCancel()
{
    document.getElementById('canceldiv').style.display='block';
}

function showLocation(selectid)
{
    var selectElem = document.getElementById(selectid);
    var selectVal = selectElem.value;
    var locationDivs = new Array("lcnregions","lcnregionslist","lcncities","lcntowns","lcnpostcodes","lcnstates");
    for ( var indx in locationDivs )
    {
        var hideDiv = locationDivs[indx];
        var elem = getLayer(hideDiv);
        if ( elem != null )
        {
            elem.style.display = 'none';
        }
    }
    if ( selectVal == 'Region(s)' )
    {
        toggleLayer('lcnregions');
        toggleLayer('lcnregionslist');
        toggleLayer('lcnpostcodes');
    }
    if ( selectVal == 'City/Cities)' )
    {
        toggleLayer('lcncities');
        toggleLayer('lcnpostcodes');
    }
    if ( selectVal == 'Town(s)' )
    {
        toggleLayer('lcntowns');
        toggleLayer('lcnpostcodes');
    }
    if ( selectVal == 'Statewide' )
    {
        toggleLayer('lcnstates');
    }
}

function getLayer(whichLayer)
{
    if( document.getElementById )
    {
        // this is the way the standards work
        return document.getElementById(whichLayer);
    }
    else if( document.all )
    {
        // this is the way old msie versions work
        return document.all[whichLayer];
    }
    else if( document.layers )
    {
        // this is the way nn4 works
        return document.layers[whichLayer];
    }
    return false;
}

function nw(url, name, height, width)
{
    height = ( height === undefined ) ? '600' : height;
    width = ( width === undefined ) ? '800' : width;
    window.open(url,(name ? name : '_blank'),'height=' + height + ',width=' + width + ',scrollbars=yes,resizable=yes');
}

function checkhide(sCheckBox, sDiv)
{
    var oCheckBox = getLayer(sCheckBox);
    var oDiv = getLayer(sDiv);
    if ( oCheckBox.checked == false )
    {
        oDiv.style.display = 'block';
    }
    else
    {
        oDiv.style.display = 'none';
    }
}

function checkshow(sCheckBox, sDiv)
{
    var oCheckBox = getLayer(sCheckBox);
    var oDiv = getLayer(sDiv);
    if ( oCheckBox.checked == true )
    {
        oDiv.style.display = 'block';
    }
    else
    {
        oDiv.style.display = 'none';
    }
}

function checkswitch(sCheckBox, sDiv1, sDiv2)
{
    var oCheckBox = getLayer(sCheckBox);
    var oDiv1 = getLayer(sDiv1);
    var oDiv2 = getLayer(sDiv2);
    if ( oCheckBox.checked == true )
    {
        oDiv2.style.display = 'none';
        oDiv1.style.display = 'block';
    }
    else
    {
        oDiv1.style.display = 'none';
        oDiv2.style.display = 'block';
    }
}

function panes(sOn, sNumPanes)
{
    for ( var i = 0; i < sNumPanes; i++)
    {
        var oDiv = getLayer('panediv' + i);
        var oLink = document.getElementById('panelink' + i);
        if ( sOn == i )
        {
            oDiv.style.display = 'block';
            oLink.className = 'selected';
        }
        else
        {
            oDiv.style.display = 'none';
            oLink.className = 'notselected';
        }
    }
}

function panesIfChecked(sOn, sNumPanes, sCheckBox, sForm)
{
    var oCheckBox = document.getElementById(sCheckBox);
    if ( oCheckBox.checked )
    {
        if ( sOn == sNumPanes )
        {
            var oForm = document.getElementById(sForm);
            oForm.submit();
            return true;
        }
        return panes(sOn, sNumPanes);
    }
    return false;
}

function toggleByLink(sDiv)
{
    var oDiv = document.getElementById(sDiv);
    var oLink = document.getElementById(sDiv + 'link');
    if ( oLink.innerHTML == '[+]' )
    {
        oDiv.style.display = '';
        oLink.innerHTML = '[-]'
    }
    else
    {
        oDiv.style.display = 'none';
        oLink.innerHTML = '[+]'
    }
}

function doSecondDate()
{
    var oHideDiv = document.getElementById('seconddatediv');
    var oSelect = document.getElementById('dateoperators');
    if ( oSelect.value != 'between' )
    {
        oHideDiv.style.display = 'none';
    }
    else
    {
        oHideDiv.style.display = '';
    }
}

function textCounter(sFieldName,iMax)
{
    var oTextArea = document.getElementById(sFieldName);
    var oCntDiv = document.getElementById(sFieldName + 'Cnt');
    if ( oTextArea.value.length > iMax ) // if too long...trim it!
    {
        oTextArea.value = oTextArea.value.substring(0, iMax);
    }
    else
    {
        oCntDiv.innerHTML = (iMax - oTextArea.value.length) + " characters left";
    }
}

function fillPostalAddress(theField)
{
    if(theField.checked)
    {
        setElementValue('OrganisationPostalStreet', getElementValue('OrganisationStreet'));
        setElementValue('OrganisationPostalSuburb', getElementValue('OrganisationSuburb'));
        setElementValue('OrganisationPostalPostcode', getElementValue('OrganisationPostcode'));

        var selectIdx = document.getElementById('OrganisationStateId').selectedIndex;
        document.getElementById('OrganisationPostalStateId').selectedIndex = selectIdx;
    }
    else
    {
        setElementValue('OrganisationPostalStreet', '');
        setElementValue('OrganisationPostalSuburb', '');
        setElementValue('OrganisationPostalPostcode', '');
        document.getElementById('OrganisationPostalStateId').selectedIndex = 0;
    }
}

function getElementValue(theField)
{
    var val = document.getElementById(theField).value;

    return val;
}

function setElementValue(theField, value)
{
   document.getElementById(theField).value = value;
}

function doInsurer(sElem)
{
    var oInsurerElem = document.getElementById('VesselInsurerId');
    var oInsurerOtherDivElem = document.getElementById('InsurerOtherDiv');
    if ( oInsurerElem.value == '0' )
    {
        oInsurerOtherDivElem.style.display = '';
    }
    else
    {
        oInsurerOtherDivElem.style.display = 'none';
    }
}