﻿var request_win = null;
var StatePolicies = new Array();
var CompareAlertOptions = null;
function Request_Start() { request_win = MsgBox('Server Request', 'Processing your request, please wait...', MsgWindowIcons.Loading); }
function Request_End() { setTimeout('MsgBox_Close();', 500); }
function Request_Error() { MsgBox('We have encountered an error while processing this request.  Please try to send your request again.  If the problem continues, just give up.', 'Application Error', MsgWindowIcons.Error); }
function Request_Loader(divid) { var loaderDiv = el('LoadingDiv'); var div = el(divid); div.innerHTML = loaderDiv.innerHTML; }
function MsgBox_Close() { if (request_win) { request_win.close(true); } }
function MsgBox(t, m, i) {
    request_win = Dialogs.show(m, { 'Title': t, 'Icon': i, 'Modal': true, 'ShowTitlebar': false });
    return request_win;
}
function alt(m, obj) { return Dialogs.show(m, obj); }
function OkCancel(p) { p.window.close(); }
function ToggleELLValueLegend(e) {
    e = (e) ? e : window.event;
    if (e) {
        var divLegend = el('EllValueLegend');
        if (divLegend) {
            // show it and specify location
            divLegend.style.top =  parsePx(e.clientY);
            divLegend.style.left = parsePx((e.clientX-100));
            fadeEl(divLegend.id);            
            setTimeout('HideEllLegend();', 10000);
        }
    }
}
function HideEllLegend() {
    var divLegend = el('EllValueLegend');
    if (divLegend.style.display == 'none') { return; }
    fadeEl(divLegend.id);
}
function LoadStatePolicy_Init() {
    CancelCompare();
    Request_Start();
    return true;
}
function LoadStatePolicy_Callback(obj) {
    Request_End();
    // update the Div with Items
    if (obj.Controls) { if (obj.Controls.StatePolicy) { updateDiv('StatePolicyData', obj.Controls.StatePolicy.Text); } }
    if (obj.Controls) { if (obj.Controls.StatePolicyCompareTable) { updateDiv('StatePolicyData', obj.Controls.StatePolicyCompareTable.Text); } }
}
function GetStatePolicy_Callback(obj) {
    HideLoader(StatePolicyContainerDivID);
    if (obj.Controls)
        if (obj.Controls.StatePolicyList)
            updateDiv(StatePolicyContainerDivID, obj.Controls.StatePolicyList.Text);
}
function GetStatePolicy_Init(obj) {
    ShowLoader(StatePolicyContainerDivID, 'Loading State Policies');
    return true;
}
var StateComparerID = 'StatePolicyComparerDiv';
var StatePolicyContainerDivID = 'StatePolicySelector';
var ComparePolicyListLoaded = false;
function CompareStates() {
    var div = el(StateComparerID);
    showEl(div.id);
    centerEl(div, true);
    // call and get the List
    if (ComparePolicyListLoaded == false) { GetStatePolicyList(); }
    ComparePolicyListLoaded = true;
    return false;
}
function CancelCompare() {
    //hideEl(StateComparerID);
    //ModalDimmer.Hide();
    //return false;
}
function InitCompare() {
    CompareAlertOptions = { 'Modal': true, 'Buttons': MsgWindowButtons.Ok, 'Icon': MsgWindowIcons.Error, 'Title': 'State Policy Comparison', 'CallBackFunction': OkCancel };
}
function ShowCompare() {
    if (StatePolicies.length <= 0) {
        alt('You must select 1 or more State Policies to view the summary', CompareAlertOptions);
    } else {
        CancelCompare();
        CompareStatePolicy({ 'PolicyIDs': GetSelectStatePolicies() });        
    }
    return false;
}
function SelectStatePolicy(obj, chkbox) {
    if (chkbox.checked == false) {
        StatePolicies = StatePolicies.Remove(obj.PolicyID);
        return;
    }
    if (StatePolicies.length == 10) {
        alert('You can only select 10 State Policies to view a comparison.');
        return false;
    }
    if (StatePolicies.Contains(obj.PolicyID)) {
        StatePolicies = StatePolicies.Remove(obj.PolicyID);
    } else {
        StatePolicies.push(obj.PolicyID);
    }
}
function GetSelectStatePolicies() {
    var pids = '';
    for (var i = 0; i < StatePolicies.length; i++) {
        pids += StatePolicies[i];
        pids += (StatePolicies.length > (i+1)) ? ',' : '';
    }
    return pids;
}
var AccommodationStateViewerID = null;
function ViewStatePolicyByAccommodation(tid, acc_id) {
    AccommodationStateViewerID = tid;
    return ViewStatePolicies({ 'AccommodationID': acc_id });
}

function ViewStatePolicies_Callback(obj) {
    Request_End();
    if (obj.Controls) { if (obj.Controls.StatePolicyList) { updateDiv(AccommodationStateViewerID, obj.Controls.StatePolicyList.Text); } }
}
function ViewStatePolicies_Init(obj) {
    Request_Start();
    return true;
}
function ViewAccommodationsForTagItem( tag ) {
    // update headers and description
    GetAccommodationsByTag({ 'TagID': tag.TagID });
    // abort normal activity
    return false;
}
function ViewAccommodationsForTag( node ) {
    if (node) {
        // unselect everything
        node.TreeView.UnSelectAllNodes();
        // update selection
        node.Selected = true;
        node.Expand();
        // update headers and description
        GetAccommodationsByTag({ 'TagID': node.Value });        
    }
    return false;
}
function AccommodationsByTag_Callback(obj) {
    if (obj.Controls) { if (obj.Controls.AccommodationsByTag) { updateDiv('AccommodationsByTag', obj.Controls.AccommodationsByTag.Text); } }
}
function AccommodationsByTag_Init(obj) { Request_Loader('AccommodationsByTag'); return true; }

var AccommodationDetailWindowDivID = 'AccommodationDetailWindow';
var AccommodationDetailDivID = 'AccommodationDetailDiv';

function ViewAccommodation( AccommodiationID ) {
    var div = el(AccommodationDetailWindowDivID);
    div.style.zIndex = 100;
    // show loader
    Request_Loader(AccommodationDetailDivID);
    // show window
    showEl(div.id);
    centerEl(div, true);
    // Load the detail of the Accommodation
    AccommodationDetail({'AccommodationID':AccommodiationID});
    return false;
}
function AccommodationDetail_Callback(obj) {
    if (obj.Controls) { if (obj.Controls.AccommodationDetail) { updateDiv(AccommodationDetailDivID, obj.Controls.AccommodationDetail.Text); } }
}

var Citations = {
    LoadAcc_Init: function(e) {
    var div = el('AccommodationDetailWindow');
        div.style.zIndex = 101;
        // show window
        showEl(div.id);
        centerEl(div, true);
        // show loader
        e.LoaderDivId = 'AccommodationListDiv';
        return true;
    }
    , LoadAcc_Callback: function(e) {

    }
    , CloseWindow: function() {
        hideEl('AccommodationDetailWindow');
        ModalDimmer.Hide();
        return false;
    }

}


function CloseAccommodationDetail() {
    hideEl(AccommodationDetailWindowDivID);
    ModalDimmer.Hide();
    return false;
}
function ExpandCollapse(img, divid) {
    img.src = (img.src.indexOf('collapse') == -1) ? AppImages.collapse : AppImages.expand;
    toggleEl(divid);
    return false;
}
function Search_Init(obj) {
    Request_Loader('SearchResultsBox');
    return true;
}
function Search_Callback(obj) {
    if (obj.Controls)
        if (obj.Controls.SearchResults) { updateDiv('SearchResultsBox', obj.Controls.SearchResults.Text); }
}  
function ViewSearchResult( url ) {
    var w = openWin(url, 'Result', 'width=1024,height=720,left=100,top=100,screenX=75,screenY=50,resizable=1,toolbars=0,scrollbars=1,menubar=0');
    return (w == null); // if null, go to the link
}
function Export(format, ctrl) {
   location.replace('export.aspx?format='+ encodeURIComponent(format) + '&ctrl='+ ctrl);
}

function LoadState_init() {
    Request_Loader('stateinfo');
    return true;
}

function LoadState(page) {
    LoadStatePage({ 'Page': page });
}

function LoadState_callback(obj) {
    // updateDiv('stateinfo', obj.StateInfo);
    if (obj.Controls) {
        if (obj.Controls.StateInfo) { updateDiv('stateinfo', obj.Controls.StateInfo.Text);ScrollWin(400); }
    }
}
function ScrollWin(valor) {
    var scrOfX = 0, scrOfY = 0;
    if (typeof (window.pageYOffset) == 'number') {
        //Netscape compliant
        scrOfY = window.pageYOffset;
        scrOfX = window.pageXOffset;
    } else if (document.body && (document.body.scrollLeft || document.body.scrollTop)) {
        //DOM compliant
        scrOfY = document.body.scrollTop;
        scrOfX = document.body.scrollLeft;
    } else if (document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)) {
        //IE6 standards compliant mode
        scrOfY = document.documentElement.scrollTop;
        scrOfX = document.documentElement.scrollLeft;
    }
    Scrolling = scrOfY;
    while (Scrolling < valor) {
        this.scroll(1, Scrolling)
        Scrolling++;
    }
}

function ScrollWinUp(valor) {
    var scrOfX = 0, scrOfY = 0;
    if (typeof (window.pageYOffset) == 'number') {
        //Netscape compliant
        scrOfY = window.pageYOffset;
        scrOfX = window.pageXOffset;
    } else if (document.body && (document.body.scrollLeft || document.body.scrollTop)) {
        //DOM compliant
        scrOfY = document.body.scrollTop;
        scrOfX = document.body.scrollLeft;
    } else if (document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)) {
        //IE6 standards compliant mode
        scrOfY = document.documentElement.scrollTop;
        scrOfX = document.documentElement.scrollLeft;
    }
    Scrolling = scrOfY;
    while (Scrolling > valor) {
        this.scroll(1, Scrolling)
        Scrolling--;
    }
}
