﻿var pageTimeout = 25; //default timeout before warning is displayed

function Me(){};
Me.type=-1;Me.os=-1;
var Nav=navigator.userAgent.toLowerCase();

var pWin=null;
var _ld;
var _debug=true;


function OpenExport(id)
{
    window.setTimeout('dExp(\'' + id + '\')',10);
    
    
    //document.location.href = url;
    //oWin(url, 900,700,'ExcelExport');
}
function dExp(id)
{
    var url = WebRoot+'excel.axd?id=' + id;

    var d = document.createElement('div');
    d.className='DlPop';
    d.align='center';
    document.body.appendChild(d);
    
    var dI = document.createElement('div');
    dI.className = 'BlueGrad';
    dI.innerHTML = 'Your export is complete.  Click the link below to download your excel file.<br /><br />';
    dI.innerHTML += '<a href="' + url + '" target="_blank" onclick="document.body.removeChild(this.parentElement.parentElement);return true;">Download File</a> <br />or<br /><a href="javascript://" onclick="document.body.removeChild(this.parentNode.parentNode);">Cancel</a>';
    d.appendChild(dI);
}

function CompassLink(link)
{
    oWin(WebRoot+'content/compass/compassLink.aspx?link=' + link, 600,600,'Compass');
}

function DataDict(ddKey)
{
    oWin(WebRoot+'DataDict.aspx?key=' + ddKey, 350,550,'DataDict');
}

function toggleOccBox(title, soc_code) {
   
    if( $("#occBox").attr("name")== soc_code)
    {  $("#occBox").attr("name", "");
       $("#occBox").hide();
    }
    else
    {
       showOccBox(title, soc_code);       
    }
}


function showOccBox(title, occ) {

   occStr = "'" + occ + "'";
    
   $("#occBox").html('<div id="occBoxIn"><h3>' +
   title + '</h3><ul>' +
   '<li><a href="javascript://" onclick="OccDetail(' + occStr + ');return false;">More Detail</a></li>' +
   '<li><a href="' + WebRoot + 'content/career/WillingAble.aspx?o=' + occ + ' ">Willing & Able</a></li>' +
   '<li><a href="' + WebRoot + 'content/career/AltInd.aspx?o=' + occ + ' ">Alt Industries</a></li>' +
   '<li><a href="' + WebRoot + 'content/educ/educGap.aspx?o=' + occ + ' ">Education Gaps</a></li>' +
   '</ul>');

    var pos = $("#div" + occ).offset();
    var width = $("#div" + occ).width();
    $("#occBox").css({ "left": (pos.left + width) + "px", "top": pos.top + "px" });
    $("#occBox").attr("name", occ);
    
   
   
    _svcOcc = Cea.WebApp.JobsEq.ws.Occupation;
    _svcOcc.set_defaultUserContext(this);
    
   _svcOcc.GapStats(occ, _statsLdDone );
   
}
function OccDetail( occ)
{
  oWin(WebRoot+'content/occ/OccDetail.aspx?o=' + occ, 900,700,"OccDetail");
}

function _statsLdDone(result,uc,m) {
    $("div#occBox #occBoxIn").append(result.StatsHtml);
    $("div#occBox #occBoxIn").append('<a href="javascript://" onclick="CloseOccBox();return false;">Close</a>');
    $("div#occBox #occBoxIn").append('<div class="reset"></div></div>');
    Nifty('div#occBox div#occBoxIn', 'big');
   
    $("#occBox").show(200);
}

function CloseOccBox() {

    $("#occBox").attr("name",  "");
    $("#occBox").hide(200);

}


function IndDetail(type,code)
{
    oWin(WebRoot+'industry_desc.aspx?t=' + type + '&c=' + code,750,500,"IndDetail");
}

function RegDetail(type,code)
{
    oWin(WebRoot+'region_map.aspx?t=' + type + '&c=' + code, 620,675,"RegDetail");
}

function EditUser(uid)
{
    oWin(WebRoot+'content/admin/editUser.aspx?uid=' + uid, 680,250,"EditUser");
}

function oWin(url, w, h, name)
{
	var win=window.open(url, name, "status=yes,toolbar=no,location=no,menubar=no,scrollbars=yes,resizable=yes,width=" + w + ",height=" + h);
	win.focus();
}

var ctlParamBody;
var ctlArrow;

function _swVis() {
    ///<summary>toggle visiblity of the analytic parameters section</summary>
    if (!(ctlParamBody && ctlArrow)) return;

    var isVis = $(ctlParamBody).attr('IsVis');
    if (isVis=='true')
    {
        $(ctlParamBody).attr('IsVis', 'false');        
        ctlArrow.src = WebRoot+'images/arrow_down.gif';
    }
    else
    {
        $(ctlParamBody).attr('IsVis','true')        
        ctlArrow.src =  WebRoot +'images/arrow_up.gif';
    }

    $(ctlParamBody).toggle(200);
}


function qHide() {
    ///<summary>queue's the toggle vis method to run after 1 second</summary>
    window.setTimeout('_swVis();', 1000);
}

function ttNaics(el) {
    var d = $('#dNaicsChange');
    var ev = window.event;        
    d.css('left', ev.pageX);
    d.css('top', ev.pageY);
    d.show("slide", { direction: "left" }, 250);
}    

function ttNaicsHide(el) {
    $('#dNaicsChange').hide();    
}         

/* print a div element.  requires jquery */
function printEl(el)
{
   var iframe=document.createElement('IFRAME');
   var doc = null; 
   $(iframe).css({ 'position':'absolute', 'width': '0px', 'height': '0px', 'left': '-500px', 'top': '-500px'}); 
   document.body.appendChild(iframe); 
   doc=iframe.contentWindow.document; 
   doc.open();
   doc.clear();
   doc.write('<html><head>');
    var links=window.document.getElementsByTagName('link'); 
    for(var i=0;i<links.length;i++) 
        if(links[i].rel.toLowerCase()=='stylesheet') 
            doc.write('<link type="text/css" rel="stylesheet" href="'+links[i].href+'"></link>');                 
    doc.write('</head><body><div class="'+$('#'+el).attr("class")+'">'+$('#'+el).html()+'</div></body></html>');    
    doc.close();        
    
    setTimeout(function(){isReadyToPrint(iframe);},1000);
    //alert('Printing...');     
}
function isReadyToPrint(iframe)
{
    if (iframe.contentWindow.document.readyState != "complete")
        setTimeout(function(){isReadyToPrint(iframe);},500);
    else
    {
        iframe.contentWindow.focus(); 
        iframe.contentWindow.print();    
        setTimeout(function(){document.body.removeChild(iframe);iframe=null;},1000);
    }
}


//toggle regions
    
var cDispString="table-row";
var browser=navigator.appName;

function addRegion2(trrega, trreg, txtreg, trregoa, txtrego){

    if(browser=="Microsoft Internet Explorer")
        cDispString="block";
       
   
    $("#"+trrega).css("display","none");                 
    $("#"+trreg).css("display",cDispString);
  
    $("#"+txtreg).attr("value", cDispString);
    if( $("#"+txtrego).attr("value")=="none")
       $("#"+trregoa).css("display",cDispString);

}

function removeRegion2(trrega, trreg, txtreg, trregoa, txtrego){
   
   if(browser=="Microsoft Internet Explorer")
        cDispString="block";
  
   $("#"+trrega).css("display",cDispString);                 
    $("#"+trreg).css("display","none" );
    
  
   //document.getElementById(txtreg).setAttribute("value", "none");
   
   $("#"+txtreg).attr("value", "none");
   $("#"+trregoa).css("display","none" );      
}


function addRegion3(trrega, trreg, txtreg, trregoa, txtrego){
 
   if(browser=="Microsoft Internet Explorer")
        cDispString="block";
  
  
   $("#"+trrega).css("display","none");                 
   $("#"+trreg).css("display",cDispString);
  
 
   $("#"+txtreg).attr("value", cDispString);
 
 
}

function removeRegion3(trrega, trreg, txtreg, trregoa, txtrego){
  
   if(browser=="Microsoft Internet Explorer")
        cDispString="block";

   if( $("#"+txtrego).attr("value")==cDispString)
        $("#"+trrega).css("display",cDispString);                 
   $("#"+trreg).css("display","none" );
  
  
   $("#"+txtreg).attr("value","none" );



}

function roundCorners() {

    $(function() {
        Nifty('div.RoundPanel', 'transparent');        
        Nifty('div.RoundPanelIn', 'top');

        Nifty('div.LbpNote', 'big');
        Nifty('div.LbpDashAnal', 'big');
        Nifty('div.LbpBody', 'big');
        Nifty('div.LbpHeader', 'big');
        Nifty('div.LbpDemandSec');
        //Nifty('div.RoundBottom', 'bottom');
        Nifty('div#DialogCont');
        Nifty('div.FormBox');
        Nifty('div.FormBoxIn');
        Nifty('div.Form h3');
        Nifty('div.cc_pub_content', 'top big');
        Nifty('div.Feature', 'top');
        Nifty('div.cc_toolbar', 'bottom big');
        Nifty('div#FeatureContent', 'bottom');
        Nifty('div.Form div.BigLink');
        Nifty('div.NoteBox', 'small');

        //ie only rounds
        if ($.browser.msie) {
            Nifty('div.OptCont', 'transparent bottom');
            //$('div.NoDataIn').css('behavior', 'url("' + WebRoot + 'scripts/ie-css3.htc")');
            $('div.NoDataIn').css('border', 'none');
            Nifty('div.NoDataIn', 'transparent');            
        }
    });
}

function doLoadCancel() {
    if (goTimer) clearTimeout(goTimer);
    
    if ($.browser.msie) {
        window.document.execCommand('Stop');
    }
    else {
        window.stop();
    }

    if (lastBtn) {
        lastBtn.removeAttr('disabled');
        lastBtn.val('Go');
    }
    
    $.unblockUI();
}

function doLoadTimeout() {
    doLoadCancel();

    $.blockUI({ css: { padding: '10px' }, message: "<p>We apologize; your query timed-out. Slow response can be do to a number of issues including a slow or lost internet connection or heavy server load.  Please close this mesasge and try your query again.</p><p><a class='nav_cancel' href='javascript://' onclick='$.unblockUI();return false'>Close</a></p>" });
}

var lastBtn = null;
var goTimer = null;
function blockLoading(btn) {
    if (goTimer) clearTimeout(goTimer);

    if (btn) {
        lastBtn = $('#' + btn);
    }
    
    $.blockUI.defaults.css = {};
    $.blockUI.defaults.overlayCSS = { backgroundColor: '#000', opacity: 0.5 };
    $.blockUI({ message: '<h1>Please wait while we<br />process your results...</h1><a class="nav_cancel" href="javscript://" onclick="doLoadCancel();return false;">(cancel)</a><br /><br />' });

    goTimer = window.setTimeout('doLoadTimeout()', pageTimeout * 1000);
    
    return true;
}

function setupTextHints(qry) {
    $(qry).each(function() {
        $(this).val($(this).attr('title'));
        $(this).addClass("hinted");
    });
    
    $(qry).focus(function() {
        if ($(this).val() == "" || $(this).val() == $(this).attr('title')) {
            $(this).val("").removeClass("hinted");
        }
    }).blur(function() {
        if ($(this).val() == "") {
            $(this).val($(this).attr('title')).addClass("hinted");
        }
    }).filter(function() {
        if ($(this).val() == "" || $(this).val() == $(this).attr('title')) {
            $(this).val($(this).attr('title')).addClass("hinted");
        }
    });
}

var _tmrAnSearch = -1;
function hookAnSearch() {
    $('#tAnSearch').keydown(function(event) {
        if (!_avEvntHndlr(event)) {
            event.preventDefault();
            event.stopImmediatePropagation();
            event.stopPropagation();
            return true;
        }
        else {
            if (_tmrAnSearch > -1) {
                window.clearTimeout(_tmrAnSearch);
            }

            _tmrAnSearch = window.setTimeout(function() {
                displayAnResult();
                _tmrAnSearch = -1;
            }, 50);
        }
    });

    setupTextHints('#tAnSearch');
}

var _anResult;
var _anHasSel = false;

function anSearchNavigate(bUp) {
    if (!_anHasSel && bUp < 3) {
        $('#dAnSearch li:first').addClass('anSel');
        _anHasSel = true;
    } else {
        _anHasSel = true;   
        var cur = $('#dAnSearch li.anSel');
        if (bUp == 1) {
            var first = $('#dAnSearch li:first').attr('id');
            if (cur.attr('id') != first)
                cur.removeClass('anSel').prev().addClass('anSel');
        } else if (bUp == 2) {
            var last = $('#dAnSearch li:last').attr('id');
            if (cur.attr('id') != last)
                cur.removeClass('anSel').next().addClass('anSel');
        } else if (bUp == 3) {
            var first = $('#dAnSearch li:first');
            if (cur.attr('id') != first.attr('id')) {
                cur.removeClass('anSel');
                first.addClass('anSel');
            }
        } else if (bUp == 4) {
            var last = $('#dAnSearch li:last');
            if (cur.attr('id') != last.attr('id')) {
                cur.removeClass('anSel');
                last.addClass('anSel');
            }
        }

        cur = $('#dAnSearch ul li.anSel');
        var par = $('#dAnResult');

        var tt = cur.position().top;
        var tb = cur.position().top + cur.height() + 10;
        var st = par.scrollTop();
        var sb = par.scrollTop() + 330;
        
        //if (tb >= sb || tt <= st) {
            var offs = (par.height() - cur.height() - 10)*-1;
            $('#dAnSearch #dAnResult').scrollTo(cur,50,{offset:offs});
        //}
    }
}

function closeAnSearch() {
    $('#dAnSearch').slideUp();
    $(document).unbind('keydown', _avEvntHndlr).unbind('mousedown', _anClickHandler);    
}

function _avEvntHndlr(event) {
    var hndl = false;
    switch (event.keyCode) {
        case 13:
            //enter            
            if ($('#dAnSearch li.anSel').size() > 0) {
                blockLoading(null);
                document.location.href = $('#dAnSearch li.anSel a').attr('href');
            }
            hndl = true;
            break;
        case 27:
            //close            
            closeAnSearch();
            hndl = true;
            break;
        case 38:
            //up            
            anSearchNavigate(1);
            hndl = true;
            break;
        case 40:
            //down            
            anSearchNavigate(2);
            hndl = true;
            break;
        case 36: //home
            anSearchNavigate(3);
            hndl = true;
            break;
        case 35: //end
            anSearchNavigate(4);
            hndl = true;
            break;
    }

    if (hndl) {
        event.preventDefault();
        event.stopImmediatePropagation();
        event.stopPropagation();        
        return false;
    } else {
        return true;
    }
}

function _anClickHandler(ev) {
    closeAnSearch();
}

function doAnSearch() {
    var ldFlag  = 'hasLoaded';
    var dl = $('#dAnSearch');
    dl.slideDown();
    $(document).unbind('keydown',_avEvntHndlr).bind('keydown',_avEvntHndlr);    
    
    $('#tAnSearch').focus().select();
    
    if (!dl.attr(ldFlag)) {        
        Cea.WebApp.JobsEq.ws.Security.GetAnalyticList(function(res) {
            _anResult = res;
            dl.attr(ldFlag, 'true');
            displayAnResult();
        });
    }

    $(document).bind('mousedown', _anClickHandler);
}

function displayAnResult() {
    var ul = $('#dAnSearch ul');    
    var q = $('input#tAnSearch').val().toLowerCase();
    if (q == 'type here to search for analytics') q = '';
    _anHasSel = false;
    ul.empty();    
    for (var idx in _anResult) {
        var r = _anResult[idx];
        if (q.length == 0 || r.Name.toLowerCase().indexOf(q) > -1 || r.Description.toLowerCase().indexOf(q) > -1) {
            var path = r.ContentPath.replace('~', WebRoot + '.');
            ul.append('<li id="liAn_' + idx + '"><h3><a href="' +path + '" onclick="blockLoading(null)">' + r.Name + '</a></h3><p>' + r.Description + '</p></li>');
        }
    }
}

function setupModelLinks(modelDD) {
    $(modelDD).change(function () {
        var mid = $(this).val();
        if (mid && mid > 0) {
            $('#modelLinks').fadeIn();
            $('#modelLinks #lnkEditEvent').attr('href', WebRoot + 'content/setup/EventModel.aspx?id=' + mid + '&from=' + document.location.pathname);
        } else {
            $('#modelLinks').fadeOut();
        }
    });

    $('#modelLinks #lnkEventDetail').click(function () {
        var mid = $(modelDD).val();
        modelDetail(mid);        
    });
    /*$('#modelLinks #lnkEditEvent').click(function () {
        var mid = $(modelDD).val();
        document.location.href = WebRoot + 'content/setup/EventModel.aspx?id=' + mid + '&from=' + document.location.pathname;
    });    */
}

var modelDlgBody=null;
function modelDetail(modelId) {
    if (!modelDlgBody) {
        modelDlgBody = $('<div id="modelDlg"><div id="modelDlgIn"></div></div>');
        modelDlgBody.appendTo($('body'));
        modelDlgBody.dialog({
            bgiframe: false,
            autoOpen: false,
            width: 650,            
            minWidth: 650,
            minHeight: 250,
            height: 400,
            position: 'center',
            modal: true,
            show: 'drop',
            dialogClass: 'ModelDlg',
            title: 'Model Details',
            buttons: { Close: function() { $(this).dialog('close'); } }
        });
    }

    $.ajax({
        url: WebRoot + 'content/setup/ModelDetailPopup.aspx?id=' + modelId,
        cache: false,
        success: function (html) {
            $("div#modelDlgIn").html(html);
        }
    });

    $(modelDlgBody).dialog('open');      
}

var isCtl = false;
Sys.Application.add_load(function () {
    hookAnSearch();

    $('#topAnSearch a').click(function () { doAnSearch(); });
    $('#topAnSearch').show();
    $('#dAnSearch').mousedown(function (ev) {
        ev.preventDefault();
        ev.stopImmediatePropagation();
        ev.stopPropagation();
    });

    $(document).keydown(function (event) {
        //if (event.which == 17) isCtl = true;
        if (event.which == 83 && event.ctrlKey) {
            doAnSearch();
            return false;
        }
    });

    //event model param control
    setupModelLinks('#ddModel');
    $('#ddModel').change();


    $.ax = function (rUrl, rData, onSuccess) {
        $.ajax({
            type: 'GET',
            url: rUrl,
            data: rData,
            contentType: 'application/json; charset=utf-8',
            dataType: 'json',
            success: onSuccess
        });
    };

    $.axP = function (rUrl, rData, onSuccess) {
        $.ajax({
            type: 'POST',
            url: rUrl,
            data: rData,
            contentType: 'application/json; charset=utf-8',
            dataType: 'json',
            success: onSuccess
        });
    };

    $('span.GvSortInd').remove();
    $('th.GridSortAsc').append('<span class="GvSortInd">' + ($.browser.msie ? '&nbsp<font face="webdings">6</font>' : '&nbsp;&#x25BE;') + '</span>');
    $('th.GridSortDesc').append('<span class="GvSortInd">' + ($.browser.msie ? '&nbsp<font face="webdings">5</font>' : '&nbsp;&#x25B4;') + '</span>');
});

var svcUrl = {
    Industry: WebRoot + 'ws/Industry.asmx/',
    Region: WebRoot + 'ws/Region.asmx/',
    Occupation: WebRoot + 'ws/Occupation.asmx/'
};

if (typeof (Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();
