PRIVACY POLICY

Last updated March 14, 2024
This privacy notice for VSCP Law describes how and why we might collect, store, use, and/or process your information when you use our services, such as when you:

● Visit our website at https://vscplaw.com/, or any website of ours that links to this privacy notice
● Engage with us in other related ways, including any sales, marketing, or events

Questions or concerns? Reading this privacy policy notice will help you understand your privacy rights and choices. If you do not agree with our policies and practices, please do not use our Services. If you still have any questions or concerns, please contact us at info@vscplaw.com.

WHAT INFORMATION DO WE COLLECT?
Personal information you disclose to us
In Short: We collect personal information that you provide to us. We collect personal information that you voluntarily provide to us when you express an interest in obtaining information about us or our products and Services, when you participate in activities on the Services, or otherwise when you contact us.
Personal Information Provided by You. The personal informatio that we collect depends on the context of your interactions with us and the Services, the choices you make, and the products and features you use. The personal information we collect may include the following:

● Name
● Email address
● Phone number
● Mailing address
● Any other information you choose to provide
Sensitive Information. We do not process sensitive information.
Information automatically collected
In Short: Some information — such as your Internet Protocol (IP) address and/or browser and device characteristics — is collected automatically when you visit our Services.
We automatically collect certain information when you visit, use, or navigate the Services. This information does not reveal your specific identity (like your name or contact information) but may include:
● Your IP address
● Browser type
● Operating system
● Pages visited
● Time spent on each page
This information is primarily needed to maintain the security and operation of our Services, and for our internal analytics and reporting purposes.
Information Sharing
In Short: We may share information in specific situations described in this section and/or with the following third parties.
We may share your information with third parties only in the following circumstances:
● With your consent
● To comply with legal obligations
● To protect our rights or the rights of others
● In connection with a merger, acquisition, or sale of assets
Data Security
We take reasonable measures to protect the security of your information. However, please be aware that no method of transmission over the internet or electronic storage is completely secure, and we cannot guarantee absolute security.
Your Choices
You may choose not to provide certain personal information, but this may limit your ability to use certain features of our Website or engage with our services.
Third-Party Links
Our Website may contain links to third-party websites or services. We are not responsible for the privacy practices or content of these third parties. We encourage you to review the privacy policies of these third parties.
Changes to This Policy
We reserve the right to update or change this Privacy Policy at any time. Any changes will be effective immediately upon posting on this page.
Contact Us
If you have any questions or concerns about our Privacy Policy, please contact us at
info@vscplaw.com or call our Philadelphia office at 215.960.0000.

tag on yout theme's header.php Read the detailed step-by-step at https://humbertosilva.com/visual-composer-infinite-image-carousel/ */ // auxiliary code to create triggers for the add and remove class for later use (function($){ $.each(["addClass","removeClass"],function(i,methodname){ var oldmethod = $.fn[methodname]; $.fn[methodname] = function(){ oldmethod.apply( this, arguments ); this.trigger(methodname+"change"); return this; } }); })(jQuery); // main function for the infinite loop function vc_custominfiniteloop_init(vc_cil_element_id){ var vc_element = '#' + vc_cil_element_id; // because we're using this more than once let's create a variable for it window.maxItens = jQuery(vc_element).data('per-view'); // max visible items defined window.addedItens = 0; // auxiliary counter for added itens to the end // go to slides and duplicate them to the end to fill space jQuery(vc_element).find('.vc_carousel-slideline-inner').find('.vc_item').each(function(){ // we only need to duplicate the first visible images if (window.addedItens < window.maxItens) { if (window.addedItens == 0 ) { // the fisrt added slide will need a trigger so we know it ended and make it "restart" without animation jQuery(this).clone().addClass('vc_custominfiniteloop_restart').removeClass('vc_active').appendTo(jQuery(this).parent()); } else { jQuery(this).clone().removeClass('vc_active').appendTo(jQuery(this).parent()); } window.addedItens++; } }); // add the trigger so we know when to "restart" the animation without the user knowing about it jQuery('.vc_custominfiniteloop_restart').bind('addClasschange', null, function(){ // navigate to the carousel element , I know, its ugly ... var vc_carousel = jQuery(this).parent().parent().parent().parent(); // first we temporarily change the animation speed to zero jQuery(vc_carousel).data('vc.carousel').transition_speed = 0; // make the slider go to the first slide without animation and because the fist set of images shown // are the same that are being shown now the slider is now "restarted" without that being visible jQuery(vc_carousel).data('vc.carousel').to(0); // allow the carousel to go to the first image and restore the original speed setTimeout("vc_cil_restore_transition_speed('"+jQuery(vc_carousel).prop('id')+"')",100); }); } // restore original speed setting of vc_carousel function vc_cil_restore_transition_speed(element_id){ // after inspecting the original source code the value of 600 is defined there so we put back the original here jQuery('#' + element_id).data('vc.carousel').transition_speed = 500; } // init jQuery(document).ready(function(){ // find all vc_carousel with the defined class and turn them into infine loop jQuery('.vc_custominfiniteloop').find('div[data-ride="vc_carousel"]').each(function(){ // allow time for the slider to be built on the page // because the slider is "long" we can wait a bit before adding images and events needed var vc_cil_element = jQuery(this).prop("id"); setTimeout("vc_custominfiniteloop_init('"+vc_cil_element+"')",500); }); }); });