if (!EV) var EV = {};
EV.GatedContent = function(){
            
    $('a.ev-gated-subscription').each(function(){
        var anchor = $(this);
        var sID = parseID(this.className,'sid_');
        EV.TooltipHandler(anchor,sID);
    });
    
    $('a.ev-subscription').each(function(){
        var anchor = $(this);
        var sID = parseID(this.className,'sid_');
        EV.TooltipHandler(anchor,sID);
    });
    
    if(EV_BYPASS != 1){
        $('a.ev-gated').click(function(e){
            e.preventDefault();
            EV.LoginModal(this,'gated',true);
        });
    }
}
EV.LoginModal = function(anchor,type,triggerDownload){
    var _anc = $(anchor);
    var _href = (type=='login') ? location.href : _anc.attr('href');
    var _hrefLower = _href.toLowerCase();
    var subData = ( typeof EV_SDATA[_hrefLower] !== 'undefined' && EV_SDATA[_hrefLower] !== false ) ? EV_SDATA[_hrefLower] : { };
    var contentName = subData.pretty_file_name;
    var modalObject = $('#modal-subscribe');
    var modalLoading = $('#modal-subscribe-loading',modalObject);
    var modalLogin = $('#modal-login-form',modalObject);
    var modalSuccess = $('#modal-subscribe-success',modalObject);
    
    $('h4.simplemodal-title',modalObject).text(contentName);
    if($.trim($('div.col2',modalLogin).html())){
        $('div.col2',modalLogin).css('display','inline-block');
    } else {
        modalLogin.css('width','250px');
    }
    
    var triggerRefresh = false;
    
    modalLogin.hide();
    modalSuccess.hide();
    
    if( EV_STYPE=='user' ) {
    
        if( _hrefLower.substr(0,18)=='javascript:docload' ){ 
            var params = docLoadParams(_hrefLower); 
            docLoad(params[0],params[1]); 
        } else if ( type == 'redirect' ) {
            window.location = _href ;
        } else {
            window.open( _href ); 
        } 
    
    } else {
    
        $('#login-span',modalLogin).css('display','inline-block');
        $('#login-sub-span',modalLogin).css('display','none');
        
        switch(type){
            case 'gated':
                $('.login-title',modalLogin).text('To access this content, please log in:');            
            break;
            case 'gated-export':
                $('h4.simplemodal-title',modalObject).text('Export');
                $('.login-title',modalLogin).text('To export this content, please log in:');            
            break;
            default:
                $('h4.simplemodal-title',modalObject).text('Sign In');
                var cmsLoginTitle = $('#cms-login-title',modalLogin).text();
                $('.login-title',modalLogin).text(cmsLoginTitle);         
            break;
        }        
        if( typeof window.Enthink.Utils.GetCookie == 'function' ){
            var cookie = Enthink.Utils.GetCookie('ev-sub-modal-login');
            if( cookie != null && cookie != '' ){
                $('#email',modalLogin).val(cookie);
                $('#remember',modalLogin).attr('checked','checked');
            }
        }
        
        modalLoading.hide();
        modalLogin.css('display','inline-block');
        $('#email',modalLogin).focus();
        if( type != 'redirect' ) triggerRefresh = true;
    
        var heightBoost = ( type=='gated' ) ? 20 : 0;
        if($.browser.msie && $.browser.version.substr(0,1)<8) heightBoost = 20;
        
        var modalMinHeight = ( modalObject.height() >= 230 ) ? (modalObject.height()+heightBoost) : 230;
                
        var modalOptions = {
            overlayClose: true, 
            opacity: 30, 
            closeClass: 'close', 
            minWidth: ( modalObject.width() >= 450 ) ? modalObject.width() : 450, 
            minHeight: modalMinHeight,
            onClose: function(){ 
                    $.modal.close(); 
                    if( triggerDownload && EV_STYPE=='user' ) { 
                        if( _hrefLower.substr(0,18)=='javascript:docload' ){ 
                            var params = docLoadParams(_hrefLower); 
                            docLoad(params[0],params[1]); 
                        } else {
                            window.open( _href ); 
                        } 
                    } 
                    if( triggerRefresh && EV_STYPE=='user' ) { window.location.reload(); } 
                }
        }
        
        $('span.error',modalLogin).hide();
        
        modalObject.modal(modalOptions);
        
        modalLoading.css('padding-top','' + ( (modalObject.height()-60)/2 ) + 'px');
        
        var loginButton = $('#login, #login-sub',modalLogin);
        
        var allowEnter = false;
        
        loginButton.focus(function(){
            allowEnter = true;
        });
        
        loginButton.click(function(e){
        
            e.preventDefault();
            $('span.error',modalLogin).hide();
            loginButton.hide();
            var emailField = $('#email',modalLogin);
            var pwordField = $('#password',modalLogin);
            //var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
            var hasError = false;
            var buttonType = $(this).attr('id');
            
            if( emailField.val() == '' ){
                emailField.next('span.error').text('Please enter your email address').css('display','block');
                hasError = true;
            }
            /*else if( !emailReg.test(emailField.val()) ) {
                emailField.next('span.error').text('Please enter a valid email address').css('display','block');
                hasError = true;
            }*/
            if( pwordField.val() == '' ){
                pwordField.next('span.error').text('Please enter your password').css('display','block');
                hasError = true;
            }
            
            if(hasError){
            
                loginButton.css('display','inline-block');
                $('div',modalLogin).css('overflow','visible');
                
            } else {
            
                modalLogin.hide();
                modalLoading.show();
                
                if( typeof window.Enthink.Utils.SetCookie == 'function' ){ 
                    if ( $('#remember',modalLogin).is(':checked') ){
                        Enthink.Utils.SetCookie('ev-sub-modal-login',emailField.val());
                    } else {
                        if( typeof window.Enthink.Utils.GetCookie == 'function' ){
                            var cookie = Enthink.Utils.GetCookie('ev-sub-modal-login');
                            if( cookie != null && cookie != '' ){
                                Enthink.Utils.SetCookie('ev-sub-modal-login','');
                            }
                        }
                    }
                }
                
                // Server-side login request        
                $.ajax({
                    type: 'POST',
                    data: {'a':'login', 'u':emailField.val(), 'p':pwordField.val() },
                    url: EV_API,
                    dataType: 'XML',
                    complete: function(data){
                        var returnXML = $($.parseXML(data.responseText));
                        var resultCode = returnXML.find('result').text();
                        if(resultCode=='0') { 
                            EV_STYPE = 'user'; 
                            EV_UDATA = $.parseJSON(returnXML.find('udata').text());
                            EV_USDATA = $.parseJSON(returnXML.find('sdata').text());
                        }
                        var subscribeID = false;
                        var contentName = false;
                        EV.LoginResult(anchor,type,resultCode,subscribeID,buttonType,triggerDownload,loginButton,contentName);
                        
                    }
                });
                
            }
            
        });
    }
}
EV.SubscriptionModal = function(type,anchor,triggerDownload) {
   
    var _href = $(anchor).attr('href');
    var _hrefLower = _href.toLowerCase();
    
    var subData = ( typeof EV_SDATA[_hrefLower] !== 'undefined' && EV_SDATA[_hrefLower] !== false ) ? EV_SDATA[_hrefLower] : { };
    var subscribeID = parseID(anchor.attr('class'),'sid_');
    var contentName = subData.pretty_file_name;
    var modalObject = $('#modal-subscribe');
    var modalLoading = $('#modal-subscribe-loading',modalObject);
    var modalLogin = $('#modal-login-form',modalObject);
    var modalSuccess = $('#modal-subscribe-success',modalObject);
    
    $('h4.simplemodal-title',modalObject).text(contentName);
    if($.trim($('div.col2',modalLogin).html())){
        $('div.col2',modalLogin).css('display','inline-block');
    } else {
        modalLogin.css('width','250px');
    }
    var triggerRefresh = false;
    
    modalLogin.hide();
    modalSuccess.hide();
    
    if( EV_STYPE!='user' ) {
    
        switch(type){
            case 'gated':
                $('#login-span',modalLogin).css('display','inline-block');
                $('#login-sub-span',modalLogin).css('display','inline-block');
                $('.login-title',modalLogin).text('To access this content, please log in:');
            break;
            default: //ungated
                $('#login-span',modalLogin).hide();
                $('#login-sub-span',modalLogin).css('display','inline-block');
                $('.login-title',modalLogin).text('To subscribe, log in:');
            break;
        }
        
        if( typeof window.Enthink.Utils.GetCookie == 'function' ){
            var cookie = Enthink.Utils.GetCookie('ev-sub-modal-login');
            if( cookie != null && cookie != '' ){
                $('#email',modalLogin).val(cookie);
                $('#remember',modalLogin).attr('checked','checked');
            }
        }
        
        modalLoading.hide();
        modalLogin.css('display','inline-block');
        $('#email',modalLogin).focus();
        triggerRefresh = true;
        
    } else {    
    
        var ulSuccess = $('ul.success',modalSuccess);
        
            var accessBlocked = false;
            /*var accessControlArray = checkAccessControl(anchor.attr('class'));
            for(var i = 0;i<accessControlArray.length;i++){
                if ( EV_UDATA['rde-attributes'].access[accessControlArray[i]] == '1' ) accessBlocked = false;
            }*/
        
        if( accessBlocked || EV_UDATA['rde-attributes'].profile.RepId == '' || EV_UDATA['rde-attributes'].profile.SalesContactId == '' ) {
            $('h5.success-title',modalSuccess).text("We're sorry, we're unable to subscribe you to this content.");
            $('li',ulSuccess).remove();
            $('<li>').css('background-image','none').css('padding-left','0').text('Please contact Eaton Vance to update your user details.').appendTo(ulSuccess);
            ulSuccess.css('display','inline-block');
            modalLoading.hide();
            modalSuccess.show();
            triggerDownload = false;
            
        } else if( EV_USDATA.itemcodes[subscribeID] ) {
            $('h5.success-title',modalSuccess).text('You are already subscribed to:');
            $('li',ulSuccess).remove();
            $('<li>').text(contentName).appendTo(ulSuccess);
            ulSuccess.css('display','inline-block');
            modalLoading.hide();
            modalSuccess.show();
            
        } else {
            
            $.ajax({
                type: 'POST',
                data: {'a':'newsub','i[]':subscribeID},
                url: EV_API,
                dataType: 'XML',
                complete: function(data){
                    var returnXML = $($.parseXML(data.responseText));
                    var result = returnXML.find('result').text();
                    if(result=='0'){
                        EV_USDATA.itemcodes[subscribeID]=true;
                        ulSuccess.css('display','inline-block');
                        $('li',ulSuccess).remove();
                        $('h5.success-title',modalSuccess).text('You are now subscribed to:');
                        $('<li>').text(contentName).appendTo(ulSuccess);
                    } else {
                        $('h5.success-title',modalSuccess).text("We're sorry, there has been an error with your request. ("+result+")");
                        $('ul.success',modalSuccess).hide();
                    }
                    if(triggerDownload) $('.download-message',modalSuccess).show();
                    modalLoading.hide();
                    modalSuccess.show();
                }
            });
        }
    }
    var heightBoost = ( type=='gated' ) ? 20 : 0;
    if($.browser.msie && $.browser.version.substr(0,1)<8) heightBoost = 20;
    
    var modalMinHeight = ( modalObject.height() >= 230 ) ? (modalObject.height()+heightBoost) : 230;   
         
    var modalOptions = {
        overlayClose: true, 
        opacity: 30, 
        closeClass: 'close', 
        minWidth: ( modalObject.width() >= 450 ) ? modalObject.width() : 450, 
        minHeight: modalMinHeight,
        onClose: function(){ 
                $.modal.close(); 
                if( triggerDownload && EV_STYPE=='user' ) { 
                    if( _hrefLower.substr(0,18)=='javascript:docload' ){ 
                        var params = docLoadParams(_hrefLower); 
                        docLoad(params[0],params[1]); 
                    } else { 
                        window.open( _href ); 
                    } 
                } 
                if( triggerRefresh && EV_STYPE=='user' ) { window.location.reload(); } 
            }
    }
    
    $('span.error',modalLogin).hide();
    
    modalObject.modal(modalOptions);
    
    modalLoading.css('padding-top','' + ( (modalObject.height()-60)/2 ) + 'px');
    
    var loginButton = $('#login, #login-sub',modalLogin);
    
    if(type=='gated'){
        var allowEnter = false;
        loginButton.focus(function(){
            allowEnter = true;
        });
        modalLogin.bind('keydown',function(e){
            if(e.which==13 && !allowEnter){ e.preventDefault(); }
        });
    }    
    loginButton.click(function(e){
    
        e.preventDefault();
        $('span.error',modalLogin).hide();
        loginButton.hide();
        var emailField = $('#email',modalLogin);
        var pwordField = $('#password',modalLogin);
        //var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
        var hasError = false;
        var buttonType = $(this).attr('id');
        
        if( emailField.val() == '' ){
            emailField.next('span.error').text('Please enter your email address').css('display','block');
            hasError = true;
        }
        /*else if( !emailReg.test(emailField.val()) ) {
            emailField.next('span.error').text('Please enter a valid email address').css('display','block');
            hasError = true;
        }*/
        if( pwordField.val() == '' ){
            pwordField.next('span.error').text('Please enter your password').css('display','block');
            hasError = true;
        }
        
        if(hasError){
        
            loginButton.css('display','inline-block');
            $('div',modalLogin).css('overflow','visible');
            
        } else {
        
            modalLogin.hide();
            modalLoading.show();
            
            if( typeof window.Enthink.Utils.SetCookie == 'function' ){ 
                if ( $('#remember',modalLogin).is(':checked') ){
                    Enthink.Utils.SetCookie('ev-sub-modal-login',emailField.val());
                } else {
                    if( typeof window.Enthink.Utils.GetCookie == 'function' ){
                        var cookie = Enthink.Utils.GetCookie('ev-sub-modal-login');
                        if( cookie != null && cookie != '' ){
                            Enthink.Utils.SetCookie('ev-sub-modal-login','');
                        }
                    }
                }
            }
            
            // Server-side login request        
            $.ajax({
                type: 'POST',
                data: {'a':'login', 'u':emailField.val(), 'p':pwordField.val() },
                url: EV_API,
                dataType: 'XML',
                complete: function(data){
                    var returnXML = $($.parseXML(data.responseText));
                    var resultCode = returnXML.find('result').text();
                    if(resultCode=='0') { 
                        EV_STYPE = 'user'; 
                        EV_UDATA = $.parseJSON(returnXML.find('udata').text());
                        EV_USDATA = $.parseJSON(returnXML.find('sdata').text());
                    }
                    
                    EV.LoginResult(anchor,type,resultCode,subscribeID,buttonType,triggerDownload,loginButton,contentName);
                    
                }
            });
            
        }
        
    });
    
};
EV.LoginResult = function(anchor,type,resultCode,subscribeID,buttonType,triggerDownload,loginButton,contentName){
    
    var modalObject = $('#modal-subscribe');
    var modalLogin = $('#modal-login-form',modalObject);
    var modalLoading = $('#modal-subscribe-loading',modalObject);
    var modalSuccess = $('#modal-subscribe-success',modalObject);
    var emailField = $('#email',modalLogin);
    var pwordField = $('#password',modalLogin);
    if(resultCode=='0'){
        var ulSuccess = $('ul.success',modalSuccess);
        var firstName = EV_UDATA['rde-attributes'].profile.FirstName;
        
        if(triggerDownload) $('.download-message',modalSuccess).show();
        
        if(buttonType=='login'){
            
            if(!triggerDownload && subscribeID==''){
                if(type=='redirect'){
                    window.location = $(anchor).attr('href');
                } else {
                    window.location.reload(true);
                }
            } else {
                $('ul.success',modalSuccess).hide();
                $('h5.success-title',modalSuccess).text('Welcome back ' + firstName + '!');
                $('a.manage',modalSuccess).hide();
                modalLoading.hide();
                modalSuccess.show();
            }   
         
        } else if(buttonType='login-sub'){
        
            var accessBlocked = false;
            /*var accessControlArray = checkAccessControl(anchor.attr('class'));
            for(var i = 0;i<accessControlArray.length;i++){
                if ( EV_UDATA['rde-attributes'].access[accessControlArray[i]] == '1' ) accessBlocked = false;
            }*/
        
            if( accessBlocked || EV_UDATA['rde-attributes'].profile.RepId == '' || EV_UDATA['rde-attributes'].profile.SalesContactId == '' ) {
                $('h5.success-title',modalSuccess).text("We're sorry, we're unable to subscribe you to this content.");
                $('li',ulSuccess).remove();
                $('<li>').css('background-image','none').css('padding-left','0').text('Please contact Eaton Vance to update your user details.').appendTo(ulSuccess);
                ulSuccess.css('display','inline-block');
                modalLoading.hide();
                modalSuccess.show();
                triggerDownload = false;
        
            } else if( EV_USDATA.itemcodes[subscribeID] ) {
            
                $('h5.success-title',modalSuccess).text('Welcome back ' + firstName + '! You are already subscribed to:');
                var ulSuccess = $('ul.success',modalSuccess);
                $('li',ulSuccess).remove();
                $('<li>').text(contentName).appendTo(ulSuccess);
                ulSuccess.css('display','inline-block');
                modalLoading.hide();
                modalSuccess.show();
                
            } else {
            
                if(EV_STYPE == 'user'){
                
                    $.ajax({
                        type: 'POST',
                        data: {'a':'newsub','i[]':subscribeID},
                        url: EV_API,
                        dataType: 'XML',
                        complete: function(data){
                            var returnXML = $($.parseXML(data.responseText));
                            var result = returnXML.find('result').text();
                            if(result=='0'){
                                EV_USDATA.itemcodes[subscribeID]=true;
                                ulSuccess.css('display','inline-block');
                                $('li',ulSuccess).remove();
                                $('h5.success-title',modalSuccess).text('Welcome back ' + firstName + '! You are now subscribed to:');
                                $('<li>').text(contentName).appendTo(ulSuccess);
                            } else {
                                $('h5.success-title',modalSuccess).text("We're sorry, there has been an error with your subscription request. ("+result+")");
                                $('ul.success',modalSuccess).hide();
                            }
                            modalLoading.hide();
                            modalSuccess.show();
                        }
                    });
                }
            }
        }
        
    } else {
        switch (resultCode){
            case '-6511':
                emailField.next('span.error').text('Email address not registered').css('display','block');
            break;
            case '6995':
                pwordField.next('span.error').text('Password incorrect').css('display','block');
            break;
            case '-11':
                location.reload(true);
            break;
            default:
                $('#failure',modalLogin).text("We're sorry, there has been an error. (" + resultCode + ")").css('display','block');
            break;
        }
        
        loginButton.css('display','inline-block');
        modalLoading.hide();
        modalLogin.css('display','inline-block');
    }
};
EV.DownloadTooltip = function(anchor,clonedTooltip,subscribeID){
    var fadeSpeed = ($.support.opacity) ? 'normal' : 0;
    var _href = $(anchor).attr('href');
    var _hrefLower = _href.toLowerCase();
    // Tooltip Content
    var subData = ( typeof EV_SDATA[_hrefLower] !== 'undefined' && EV_SDATA[_hrefLower] !== false ) ? EV_SDATA[_hrefLower] : { };
    var contentName = subData.pretty_file_name;
    $('h4.simplemodal-title',clonedTooltip).text(contentName);
    $('a',clonedTooltip).not('.manage').attr('href',anchor.attr('href'));
    if( EV_STYPE=='user' && EV_USDATA.itemcodes[subscribeID] ) {
        $('.ds_button',clonedTooltip).hide();
        $('.s_already span',clonedTooltip).text(contentName);
        $('.s_already',clonedTooltip).css('display','inline-block');
    } else {
        $('.ds_button',clonedTooltip).show();
        $('.s_already',clonedTooltip).hide();
    }
    
    // Tooltip Display
    $('.ev-tooltip-download',clonedTooltip).show();
    $('.ev-tooltip-body',clonedTooltip).show();
    
    clonedTooltip.stop(true, true).fadeIn(fadeSpeed);
    // Tooltip Position
    clonedTooltip.position({
        my: 'left',
        at: 'right',
        of: anchor,
        offset: '25 0',
        collision: 'flip fit'
    });
    $('.ev-tooltip-arw-left',clonedTooltip).position({
        my: 'left',
        at: 'right',
        of: anchor,
        collision: 'flip fit'
    });
    $('.ev-tooltip-arw-border-left',clonedTooltip).position({
        my: 'left',
        at: 'right',
        of: anchor,
        collision: 'flip fit'
    });
    if (anchor.offset().left > clonedTooltip.offset().left) {
        $('div.ev-tooltip-arw-left',clonedTooltip).attr('class','ev-tooltip-arw-right');
        $('div.ev-tooltip-arw-border-left',clonedTooltip).attr('class','ev-tooltip-arw-border-right');
    } else {
        $('div.ev-tooltip-arw-right',clonedTooltip).attr('class','ev-tooltip-arw-left');
        $('div.ev-tooltip-arw-border-right',clonedTooltip).attr('class','ev-tooltip-arw-border-left');
    }
};
EV.TooltipHandler = function(anchor,subscribeID) {
    var anchor = $(anchor);
    var clonedTooltip;
    var fadeSpeed = ($.support.opacity) ? 'normal' : 0;
    var type = ( anchor.hasClass('ev-gated-subscription') ) ? 'gated' : 'ungated';
    
    anchor.mouseenter(function () {
        
        type = ( anchor.hasClass('ev-gated-subscription') ) ? 'gated' : 'ungated';
        //if( (type=='gated' && EV_STYPE=='user') || type=='ungated'){
            
            // Create Tooltip Clone
            if( $('.ev-tooltip',anchor).length < 1 ) $('#ev-ds-tooltip-template').clone(false).removeAttr('id').appendTo(anchor);
            
            clonedTooltip = $('.ev-tooltip',anchor);
            EV.DownloadTooltip(anchor,clonedTooltip,subscribeID);
        //}
        
    }); // end: mouseenter
    
    anchor.mouseleave(function () {
        clonedTooltip.fadeOut(fadeSpeed);
    });
    
    anchor.click(function (e) {
        e.preventDefault();
    });
    
    $('span',anchor).click(function(e){
        var _href = anchor.attr('href');
        var _hrefLower = _href.toLowerCase();
        if( EV_STYPE!='user' && type=='gated' && EV_BYPASS!=1 ){
            var triggerDownload = ( anchor.attr('href')=='#' ) ? false : true;
            EV.SubscriptionModal(type,anchor,triggerDownload);
        } else {
            if( _hrefLower.substr(0,18)=='javascript:docload' ){ 
                var params = docLoadParams(_hrefLower); 
                docLoad(params[0],params[1]); 
            } else {
                window.open(_href);
            }
        }
    });
    
    $('.ev-tooltip',anchor).live('click',function(e){
        e.preventDefault();
    });
    
    $('li.d_button a',anchor).live('click',function(e){
        e.preventDefault();
        var _href = $(this).attr('href');
        var _hrefLower = _href.toLowerCase();
        if( EV_STYPE!='user' && type=='gated' && EV_BYPASS!=1 ){
            var triggerDownload = ( anchor.attr('href')=='#' ) ? false : true;
            EV.SubscriptionModal(type,anchor,triggerDownload);
        } else {
            if( _hrefLower.substr(0,18)=='javascript:docload' ){ 
                var params = docLoadParams(_hrefLower); 
                docLoad(params[0],params[1]); 
            } else {
                window.open(_href);
            }
        }
    });
    
    $('li.ds_button a',anchor).live('click',function(e){
        e.preventDefault();
        var triggerDownload = true;
        type = ( anchor.hasClass('ev-gated-subscription') ) ? 'gated' : 'ungated';
        EV.SubscriptionModal(type,anchor,triggerDownload);
    });  
    
    $('li.s_already a.manage',anchor).live('click',function(e){
        e.preventDefault;
        window.open($(this).attr('href'));
    });
    
};
EV.ProfileMaintenance = function(form){ 
    $('label',form).each(function(){
        var _this = $(this);
        var sID = parseID(_this.attr('for'),'sid_');
        for(var key in EV_SDATA){
            if(EV_SDATA[key].printcode==sID){
                _this.text(EV_SDATA[key].pretty_file_name);
            }
        }
    });
    $('input[type=checkbox]',form).live('click',function(){
                
        var _this = $(this);
        var _parent = $(this).closest('dd');
        var subscribeID = parseID(_this.attr('id'),'sid_');
        
        var messageSpan = $('span',_parent);
        if(!messageSpan.length) { 
            var newSpan = $('<span>').appendTo(_parent);
            messageSpan = newSpan;
        }
        messageSpan.hide();
        
        var loaderImage = $('img',_parent);
        if(!loaderImage.length) { 
            var newImage = $('<img>').attr('src','/images/interface/ajax-loader-arrows.gif').appendTo(_parent);
            loaderImage = newImage;
        }
        loaderImage.fadeIn();
        
        if(_this.is(':checked')){
        
            $.ajax({
                type: 'POST',
                data: {'a':'newsub','i[]':subscribeID},
                url: EV_API,
                dataType: 'XML',
                complete: function(data){
                    var returnXML = $($.parseXML(data.responseText));
                    var result = returnXML.find('result').text();
                    if(result=='0'){
                        EV_USDATA.itemcodes[subscribeID]=true;
                        loaderImage.fadeOut(
                            function(){
                                messageSpan.removeClass('unsub').addClass('sub').text("Re-subscribed!").fadeIn();
                            }
                        );
                    } else {
                        loaderImage.fadeOut(
                            function(){
                                messageSpan.removeClass('sub').addClass('unsub').text("We're sorry there has been an error.").fadeIn();
                            }
                        );
                    }
                }
            });
            
        } else {
        
            $.ajax({
                type: 'POST',
                data: {'a':'unsub','i[]':subscribeID},
                url: EV_API,
                dataType: 'XML',
                complete: function(data){
                    var returnXML = $($.parseXML(data.responseText));
                    var result = returnXML.find('result').text();
                    loaderImage.fadeOut();
                    if(result=='0'){ 
                        EV_USDATA.itemcodes[subscribeID]=false;
                        loaderImage.fadeOut(
                            function(){
                                messageSpan.removeClass('sub').addClass('unsub').text("Unsubscribed.").fadeIn();
                            }
                        );
                    } else {
                        loaderImage.fadeOut(
                            function(){
                                messageSpan.removeClass('sub').addClass('unsub').text("We're sorry there has been an error.").fadeIn();
                            }
                        );
                    }
                } // end complete
            });
        } // end unsub
    });
};

EV.ShareEmail = function($submitButton) {
    var $form = $($submitButton.closest('form'));
    var $modal = $($submitButton.closest('.modal-share'));
    
    var internalDomains = EV_SHARE_RESTRICTED;
    $('.share_error',$form).text('');
    
    var msg_sender_name = $('.msg_sender_name', $form).val();
    var msg_sender_email = $('.msg_sender_email', $form).val();
    var msg_recipient_email = $('.msg_recipient_email', $form).val();
    var msg_page_title = $('.msg_page_title', $form).val();
    var msg_page_url = $('input.msg_page_url', $form).val();
    
    if (!msg_sender_name) {
        window.alert("Your name cannot be blank.  Please enter it and try again.");
        return;
    }
    if (!msg_sender_email) {
        window.alert("The 'From Email Address' field cannot be blank.  Please enter it and try again.");
        return;
    } 
    
    var emailRegex = /^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,3})$/;
    if( !emailRegex.test(msg_sender_email) ){
        window.alert('Invalid "From Email Address".');
        return;
    }
    var msg_sender_email_parts = msg_sender_email.split('@');
    if ( $.inArray(msg_sender_email_parts[1], internalDomains) > -1 ){
        if( $('.share_error',$form).length ) {
            $('.share_error',$form).text("Email sharing cannot be used by Eaton Vance employees or subsidiaries.  Instead, please use your PC's email program and copy the Message section above.");
        } else {
            window.alert("Email sharing cannot be used by Eaton Vance employees or subsidiaries.  Instead, please use your PC's email program.");
        }
        return;
    }
    if (!msg_recipient_email) {
        window.alert("The 'To Email Address' field cannot be blank.  Please enter it and try again.");
        return;
    }
    var recipients = msg_recipient_email.split(',');
    for( var recipient in recipients){
        var email = $.trim(recipients[recipient]);
        if( !emailRegex.test(email) ){
            window.alert('Invalid "To Email Address".');
            return;
        }
    }
    
    $('.share-submit',$form).text('Sending...').attr('disabled', 'disabled');   
 
    $.ajax({
        type: 'POST',
        data: {'a':'share','msg_sender_name':msg_sender_name,'msg_sender_email':msg_sender_email,'msg_recipient_email':msg_recipient_email,'msg_page_url':msg_page_url,'msg_page_title':msg_page_title},
        url: EV_API,
        dataType: 'XML',
        complete: function(data, status) {
            $('.share-submit',$form).text('Share Page').removeAttr('disabled');
            var returnXML = $($.parseXML(data.responseText));
            var result = returnXML.find('result').text();
            if (result=='0') {
                window.alert("Your message has been sent.");
                $('.close', $modal).click();
            } else {
                var errorMessage = ( result=='-10' ) ? returnXML.find('details').text() : "We encountered an error trying to share this page.";
                window.alert(errorMessage);            
            }
        }
    });
};
$(function(){ $('.share-submit').click(
    function(event){ 
        event.preventDefault();
        event.stopPropagation(); 
        EV.ShareEmail($(this));
    }); 
});
function checkAccessControl(classString){
    var outputArray = new Array();
    if ( typeof (classString) == "string" ) {
        var classArray = classString.split(" ");
        for (i=0; i<classArray.length; i++) {
            if (classArray[i].substr(0, 4) == 'sac_'){
                outputArray.push(classArray[i].substring(4));
            }
        }
    }
    return outputArray;
}
function docLoadParams(input){
    var tmp1 = input.split('(');
    var tmp2 = tmp1[1].split(',');
    tmp2[0] = tmp2[0].substr(1,(tmp2[0].length-2));
    tmp2[1] = tmp2[1].substr(1,(tmp2[1].length-3));
    return tmp2;
}
