JSW Steel
  • Products
    • Carbon Steel Plate
    • DSAW Pipe
    • Hot Rolled Coil
  • Sustainability
  • About Us
    • JSW USA
    • Leadership
    • Baytown
    • Mingo Junction
  • Careers
  • Contact Us
Select Page

  • Follow
  • Follow
  • Follow
Privacy Policy
Terms and Conditions
Site by PREDICTif Solutions
© 2023 JSW Steel USA
Example bio
Test

Biography

Mr. Pipalia is a graduate of the University of Calcutta with a Bachelor of Commerce in Accounting. He also holds a Licentiate and Associate held by the Institute of Insurance Surveyors and Adjusters, Bombay. Prior to joining JSW Group, he worked in Singapore with a trading company from 1992 to 1998. He began his career with JSW in 1998 with Jindal United Steel Corp (part of the O.P. Jindal Group) in Baytown where he was the controller for both the plate and pipe mill (Saw Pipes USA, Inc.). He then joined JSW Steel USA as Controller and Head of Commercial Purchasing when the Baytown facility was acquired in 2007. Mr Pipalia now serves as the VP of Finance and Controller operations and is also responsible for Slab Procurement for the Baytown operations of our Baytown operations.

Kelly B.

Marketing

Biography

Kelly B. Bio…

Terms & Conditions

Terms & Conditions of Sales – Baytown

Terms & Conditions of Sales – Ohio

 
JSW Steel USA - Mingo Junction - History
JSW Steel USA Mingo Junction History
Jefferson Iron Works 1880 Management
Carnegie Steel at Mingo Junction 1911
1920's
1934
1958 Machine Shop Night Shift
1967 Caster Crew
previous arrow
next arrow
JSW Steel USA - Mingo Junction - History
JSW Steel USA Mingo Junction History
Jefferson Iron Works 1880 Management
Carnegie Steel at Mingo Junction 1911
1920's
1934
1958 Machine Shop Night Shift
1967 Caster Crew
previous arrow
next arrow
 
JSW Steel USA - Baytown - History
1967
US Steel Texas Works 1976
US Steel Texas
previous arrow
next arrow
JSW Steel USA - Baytown - History
1967
US Steel Texas Works 1976
US Steel Texas
previous arrow
next arrow

PROCESS FLOW OF DSAW PIPE

Joe

VP –  Analysis

Biography

Mr. Pipalia is a graduate of the University of Calcutta with a Bachelor of Commerce in Accounting. He also holds a Licentiate and Associate held by the Institute of Insurance Surveyors and Adjusters, Bombay. Prior to joining JSW Group, he worked in Singapore with a trading company from 1992 to 1998. He began his career with JSW in 1998 with Jindal United Steel Corp (part of the O.P. Jindal Group) in Baytown where he was the controller for both the plate and pipe mill (Saw Pipes USA, Inc.). He then joined JSW Steel USA as Controller and Head of Commercial Purchasing when the Baytown facility was acquired in 2007. Mr Pipalia now serves as the VP of Finance and Controller operations and is also responsible for Slab Procurement for the Baytown operations of our Baytown operations.

Mark Bush

Chief Executive Officer

Mr. Bush joined JSW Steel in August 2020.

Previous Work Experience

Mr. Bush comes to JSW Steel USA from SSAB where he was head of the southern business team with responsibility for the cut-to-length facility in Houston, Texas as well as being the General Manager of Mobile Operations. Mark had been with SSAB since 1999 and started in the steel industry in 1994 with Gallatin Steel.

Educational Background

Mr. Bush attended RETS Electronics Institute achieving A.S. Electrical Engineering Technology.

Sanjay Pipalia

VP – Finance & Controller Baytown

Biography

Mr. Pipalia is a graduate of the University of Calcutta with a Bachelor of Commerce in Accounting. He also holds a Licentiate and Associate held by the Institute of Insurance Surveyors and Adjusters, Bombay. Prior to joining JSW Group, he worked in Singapore with a trading company from 1992 to 1998. He began his career with JSW in 1998 with Jindal United Steel Corp (part of the O.P. Jindal Group) in Baytown where he was the controller for both the plate and pipe mill (Saw Pipes USA, Inc.). He then joined JSW Steel USA as Controller and Head of Commercial Purchasing when the Baytown facility was acquired in 2007. Mr Pipalia now serves as the VP of Finance and Controller operations and is also responsible for Slab Procurement for the Baytown operations of our Baytown operations.

Mark Bush

Chief Executive Officer

Biography

Mr. Bush holds an Associate of Science in Electrical Engineering from RETS Electronics Institute. He joined JSW Steel USA as Chief Executive Officer in July of 2020. Mr. Bush began his career in the steel industry in 1994 as a Caster Operations Manager with Gallatin Steel Company in Kentucky. Through his tenure, he has held key positions at SSAB such as General Manager of Mobile Operations and head of the Southern Business Team with P&L responsibility for Mobile, AL, and Houston, TX facilities.

Greg Manfredi

Chief Operating Officer Steel

Biography

Mr. Manfredi holds a Bachelor of Science in Mechanical Engineering from the University of Louisville. In addition, he holds an Executive Master of Business Administration from LeTourneau University and a Certification of Project Management from Xavier University. He joined JSW Steel USA in 2020, serving as the Chief Operating Officer of Steel of US operations. Mr. Manfredi began his career in management at TMK IPSCO in 2007. From there, he held several key positions at SSAB in Alabama, including NAD Superintendent of Primary Operations, Superintendent of Primary Operations, Manager of Maintenance of the Heat Treat Facility at the SSAB Mobile Facility, and Assistant General Manager and Manager of NAD CPDS.

Samir Kalra

Chief Financial Officer

Biography

Mr. Kalra has a Master of Business Administration from the Indian Institute of Management, Calcutta. In addition, he is a Chartered Accountant from the Institute of Chartered Accountants of India. He joined JSW Steel USA as Chief Financial Officer in September of 2019. Mr. Kalra comes to JSW Steel USA from GFG Alliance, New York where he served as CFO (US). Prior to that, Mr. Kalra was CFO, United States Steel Corporation – Tubular Products in Houston, and CFO, United States Steel Corporation – Europe in Slovakia. He worked at Essar Steel in New York from 2012 to 2016 and at ArcelorMittal from 2004 to 2012 in several roles of increasing responsibility in Poland, the UK, and Luxembourg including his last role with ArcelorMittal as CFO of ArcelorMittal International S.A. in Luxembourg.

Karen Renz

General Counsel

Biography

Ms. Renz has a Bachelor of Science in Business Administration, Finance from East Carolina University. In Addition, Ms. Renz has a JD, Law from the University of Miami School of Law. She joined JSW Steel USA as General Counsel in February 2019. Ms. Renz comes to JSW Steel USA from Graydon Head & Ritchey LLP, where her practice concentrated in the areas of corporate law with an emphasis on mergers and acquisitions.

Cory Raimondi

Chief Commercial Officer

Biography

Mr. Raimondi attended Marian University of Indianapolis earning a Bachelor of Science and a Master of Business Administration in Business Commerce from Valparaiso University. Mr. Raimondi began his career in steel in 2008 as a Chief Inspector, supervising Quality Assurance Plate Mill inspection activities, and has since held several key responsibilities in roles at ArcelorMittal, and Trinity Industries. He joined JSW Steel USA in July 2017. Since joining, he has held roles in Technical Sales and Marketing, Vice President of Sales and Marketing, and now Chief Commercial Officer. Mr. Raimondi oversees the Commercial aspects of Pipe, Plate, and Hot Rolled Coil.

Debasish Bhowmick

Chief Operating Officer – Pipe

Biography

Mr. Bhowmick attended Birla Institute of Technology where he achieved his LME Mechanical Engineering and LME-Sandwich, Mechanical Engineering. He joined JSW Steel USA in April 2020 as Chief Operating Officer of Pipe. Mr. Bhowmick was previously Vice President of Pipe Manufacturing at Welspun Tubular LLC. He began his career in the steel industry in 1987. He is a member of the American Society of Mechanical Engineers and the American Society for Nondestructive Testing.

Beth Krivosh

Vice President of Business Services

Biography

Mrs. Krivosh has a Bachelor of Science in Accounting and Business Administration from PennWest Edinboro University. Mrs. Krivosh joined JSW Steel in October 2019. Prior to joining JSW Steel USA, she served as Director of Corporate Procurement with NLMK USA (formerly Duferco Farrell) in Farrell, Pennsylvania for 28 years where she held a variety of managerial positions, and developed a broad-based knowledge of Procurement, Accounting, and Logistics.

David Light

Vice President of Plate Operations

Biography

Mr. Light attended Haslam College of Business at the University of Tennessee and Wentworth Institute of Technology. He joined JSW Steel USA in September of 2021 as Vice President of Plate Operations, overseeing the production of Plate Operations in our Baytown, Texas location. Mr. Light began his career in the steel industry as a Coil Trimmer at Co-Steel Raritan in Perth Amboy, New Jersey. He has continued his leadership development working within Birmingham Steel, Charter Steel, Evraz, USA and Evraz Canada. He has held key positions in senior leadership from Plant Manager, Director of Operations, Vice President of Operations Canada, and Vice President of Operations in Colorado.

Rick Middaugh
Vice President of Information Technology

Biography

Mr. Middaugh holds a Bachelor of Science in Management of Information Systems from the University of San Francisco. He joined JSW Steel USA in February of 2021 as Vice President of Information Technology. Mr. Middaugh has over 20 years of enterprise experience utilizing established and emerging technology to create innovative solutions for complex challenges. His portfolio of experience includes Director of Trading Systems at Dynegy and VP of IT at Ion Geophysical.

Mike Panzeri

Vice President of Operations, Mingo Junction

Biography

Mr. Panzeri has a Bachelor of Science in Materials Engineering from the Rensselaer Polytechnic Institute and a Master of Business Administration from the University of Maryland. He joined JSW Steel USA in February 2020 as Vice President of Operations at Mingo Junction, Ohio location. Mr. Panzeri comes to JSW Steel USA from TMK IPSCO where he served as General Manager of Operations since 2011.

Albert Labasse

Vice President of Pipe Sales

Biography

Mr. Labasse has a Bachelor of Arts and a Master of Business Administration from Millsaps College. He joined JSW Steel USA in July of 2021 as Vice President of Pipe Sales. He has a reputation for building solid customer relationships and executing strong sales strategies. Mr. Labasse began his career in steel in 1996. He has expertise in global enterprise roles, including Director of Business Development at Pe Ben USA, and Project Sales Manager at Berg Pipe.

John Hill

Vice President of Human Resources

Biography

Mr. Hill has a Bachelor of Science in Industrial and Organizational Psychology from Michigan State University and holds a Master of Labor and Industrial Relations in Human Resources from Michigan State University. Mr. Hill brings over 25 years of global HR experience from companies such as BP America, Enerflex, and Eaton Corporation. He joined JSW Steel USA in January of 2021 as Vice President of Human Resources where he is responsible for implementing organization structure, strategy, and processes. Mr. Hill is on the Advisory Committees of both San Jacinto College and MIAT College of Technology.

Matt Caprarese

Vice President of Engineering and HSE

Biography

Mr. Caprarese has a Bachelor of Science in Civil Engineering from Point Park University, a Bachelor of Science in Environmental Science from Bethany College, and a Master of Business Administration from Franciscan University of Steubenville and is a registered professional engineer, including licensure in Ohio and Texas. He began his career in the steel industry in 2000, which has since included serving in leadership roles at ArcelorMittal USA and United States Steel Corporation. Mr. Caprarese was the first salaried employee hired in 2018 at Mingo Junction under JSW ownership to help restart steelmaking operations at the site after being idle for nearly 10 years and has since helped to build the HSE, Engineering, and Sustainability teams and programs at both Baytown and Mingo Junction.

Jack Morrow

Vice President of Sales & Marketing – Coil

Biography

Mr. Morrow has a Bachelor of Science in Business Administration, Marketing and Management, from West Virginia University. He also is actively obtaining a variety of knowledge by attending industry and business seminars. He began his career in the steel industry in 1986 at Wheeling-Pittsburgh Steel. His leadership experience includes positions at Oxbow Steel International, and most recently Algoma Inc. He joined JSW Steel USA in August of 2022 where he serves as the Vice President of Sales & Marketing – Coil at our Mingo Junction, OH location.

Jonathan Shank

Director of Operations, Steelmaking

Biography

Mr. Shank has a Bachelor and Master of Science in Material Science Engineering, and an Executive Master of Business Administration from the University of Pittsburgh. He also obtained a Lean Six Sigma Black Belt Certification from Kent State University. Mr. Shank began his career in the steel industry in 1998 in a co-op program with AK Steel. He joined JSW Steel USA as the Director of Operations, Steelmaking in 2019 from his leadership role at Ellwood Quality Steel where he served as Manager of Remelt and Shipping.

Tejas Bhujle

VP – Financial Planning and Analysis

Biography

Mr. Bhujle has a Bachelor of Science in Accounting from Narsee Monjee College of Commerce and Economics, a Master of Science in Accounting from Brihan Maharashtra College of Commerce, and a Master of Business Administration from Virginia Polytechnic Institute and State University. He joined JSW Steel USA in 2007 as the Manager of Finance and Accounting. Mr. Bhujle is responsible for overseeing the annual budgeting and planning processes while ensuring the progression of the finance department.

Rahul Singh

VP – Finance & Controller Ohio

Biography

Mr. Singh has a Bachelor of Science in Commerce from the University of Mumbai. He is also a Certified Public Accountant in the state of Texas. Mr. Singh joined JSW Steel USA in March of 2019 as VP of Finance and Controller in Mingo Junction, Ohio. He previously held leadership positions at Halliburton Offshore Services and Tetra Technologies.

Mingo Junction History Timeline

Jefferson Iron Works established

Labelle Iron Works purchased Jefferson Iron Works

Mingo Iron and Steel Works Company was established

Mingo Iron and Steel Works AKA Mingo Iron works merged with Junction Iron and Steel

Junction Iron and Steel Company changed the company name to Laughlin Junction Iron and Steel Company

Laughlin Steel sold to Aetna Standard Iron and Steel

National Steel Company bought out Aetna Standard Iron and Steel

Carnegie-Illinois Steel Company purchased National Steel (Subsidiary of United States Steel)

Carnegie Steel Plant in Mingo began operations

Wheeling Steel-Steubenville Works held World’s Record for Speed and Size for Hot Rolled Sheet Steel

Carnegie Illinois Steel Corporation – Mingo Works was bought out by Wheeling Steel Corporation – Renamed Steubenville South Plant

Wheeling Steel bought Carnegie Steel, and it was known as the Steubenville South or South Works

Wheeling Steel merged with Pittsburgh Steel to become Wheeling Pittsburgh Steel Corporation

The mill sold one-fourth of all steel in the US

Purchased by JSW Steel Ltd

JSW Steel USA Ohio has a vertically integrated model where scrap is used as a feedstock in the Electric Arc Furnace (EAF) and modified in the Ladle Metallurgy Furnace (LMF) to customer’s specifications to produce steel slabs

  1. 16 Jan
  2. 28 Feb
  3. 20 Mar
  4. 20 May
  5. 09 Jul
  6. 30 Aug
  7. 15 Sep
  8. 01 Nov
  9. 10 Dec
  10. 29 Jan
  11. 3 Mar

  • Prev
  • Next

  1. Horizontal Timeline

    January 16th, 2014

    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Illum praesentium officia, fugit recusandae ipsa, quia velit nulla adipisci? Consequuntur aspernatur at, eaque hic repellendus sit dicta consequatur quae, ut harum ipsam molestias maxime non nisi reiciendis eligendi! Doloremque quia pariatur harum ea amet quibusdam quisquam, quae, temporibus dolores porro doloribus.

  2. Event title here

    February 28th, 2014

    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Illum praesentium officia, fugit recusandae ipsa, quia velit nulla adipisci? Consequuntur aspernatur at, eaque hic repellendus sit dicta consequatur quae, ut harum ipsam molestias maxime non nisi reiciendis eligendi! Doloremque quia pariatur harum ea amet quibusdam quisquam, quae, temporibus dolores porro doloribus.

  3. Event title here

    March 20th, 2014

    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Illum praesentium officia, fugit recusandae ipsa, quia velit nulla adipisci? Consequuntur aspernatur at, eaque hic repellendus sit dicta consequatur quae, ut harum ipsam molestias maxime non nisi reiciendis eligendi! Doloremque quia pariatur harum ea amet quibusdam quisquam, quae, temporibus dolores porro doloribus.

  4. Event title here

    May 20th, 2014

    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Illum praesentium officia, fugit recusandae ipsa, quia velit nulla adipisci? Consequuntur aspernatur at, eaque hic repellendus sit dicta consequatur quae, ut harum ipsam molestias maxime non nisi reiciendis eligendi! Doloremque quia pariatur harum ea amet quibusdam quisquam, quae, temporibus dolores porro doloribus.

  5. Event title here

    July 9th, 2014

    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Illum praesentium officia, fugit recusandae ipsa, quia velit nulla adipisci? Consequuntur aspernatur at, eaque hic repellendus sit dicta consequatur quae, ut harum ipsam molestias maxime non nisi reiciendis eligendi! Doloremque quia pariatur harum ea amet quibusdam quisquam, quae, temporibus dolores porro doloribus.

  6. Event title here

    August 30th, 2014

    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Illum praesentium officia, fugit recusandae ipsa, quia velit nulla adipisci? Consequuntur aspernatur at, eaque hic repellendus sit dicta consequatur quae, ut harum ipsam molestias maxime non nisi reiciendis eligendi! Doloremque quia pariatur harum ea amet quibusdam quisquam, quae, temporibus dolores porro doloribus.

  7. Event title here

    September 15th, 2014

    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Illum praesentium officia, fugit recusandae ipsa, quia velit nulla adipisci? Consequuntur aspernatur at, eaque hic repellendus sit dicta consequatur quae, ut harum ipsam molestias maxime non nisi reiciendis eligendi! Doloremque quia pariatur harum ea amet quibusdam quisquam, quae, temporibus dolores porro doloribus.

  8. Event title here

    November 1st, 2014

    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Illum praesentium officia, fugit recusandae ipsa, quia velit nulla adipisci? Consequuntur aspernatur at, eaque hic repellendus sit dicta consequatur quae, ut harum ipsam molestias maxime non nisi reiciendis eligendi! Doloremque quia pariatur harum ea amet quibusdam quisquam, quae, temporibus dolores porro doloribus.

  9. Event title here

    December 10th, 2014

    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Illum praesentium officia, fugit recusandae ipsa, quia velit nulla adipisci? Consequuntur aspernatur at, eaque hic repellendus sit dicta consequatur quae, ut harum ipsam molestias maxime non nisi reiciendis eligendi! Doloremque quia pariatur harum ea amet quibusdam quisquam, quae, temporibus dolores porro doloribus.

  10. Event title here

    January 19th, 2015

    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Illum praesentium officia, fugit recusandae ipsa, quia velit nulla adipisci? Consequuntur aspernatur at, eaque hic repellendus sit dicta consequatur quae, ut harum ipsam molestias maxime non nisi reiciendis eligendi! Doloremque quia pariatur harum ea amet quibusdam quisquam, quae, temporibus dolores porro doloribus.

  11. Event title here

    March 3rd, 2015

    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Illum praesentium officia, fugit recusandae ipsa, quia velit nulla adipisci? Consequuntur aspernatur at, eaque hic repellendus sit dicta consequatur quae, ut harum ipsam molestias maxime non nisi reiciendis eligendi! Doloremque quia pariatur harum ea amet quibusdam quisquam, quae, temporibus dolores porro doloribus.


jQuery(document).ready(function($){ var timelines = $('.cd-horizontal-timeline'), eventsMinDistance = 60; (timelines.length > 0) && initTimeline(timelines); function initTimeline(timelines) { timelines.each(function(){ var timeline = $(this), timelineComponents = {}; //cache timeline components timelineComponents['timelineWrapper'] = timeline.find('.events-wrapper'); timelineComponents['eventsWrapper'] = timelineComponents['timelineWrapper'].children('.events'); timelineComponents['fillingLine'] = timelineComponents['eventsWrapper'].children('.filling-line'); timelineComponents['timelineEvents'] = timelineComponents['eventsWrapper'].find('a'); timelineComponents['timelineDates'] = parseDate(timelineComponents['timelineEvents']); timelineComponents['eventsMinLapse'] = minLapse(timelineComponents['timelineDates']); timelineComponents['timelineNavigation'] = timeline.find('.cd-timeline-navigation'); timelineComponents['eventsContent'] = timeline.children('.events-content'); //assign a left postion to the single events along the timeline setDatePosition(timelineComponents, eventsMinDistance); //assign a width to the timeline var timelineTotWidth = setTimelineWidth(timelineComponents, eventsMinDistance); //the timeline has been initialize - show it timeline.addClass('loaded'); //detect click on the next arrow timelineComponents['timelineNavigation'].on('click', '.next', function(event){ event.preventDefault(); updateSlide(timelineComponents, timelineTotWidth, 'next'); }); //detect click on the prev arrow timelineComponents['timelineNavigation'].on('click', '.prev', function(event){ event.preventDefault(); updateSlide(timelineComponents, timelineTotWidth, 'prev'); }); //detect click on the a single event - show new event content timelineComponents['eventsWrapper'].on('click', 'a', function(event){ event.preventDefault(); timelineComponents['timelineEvents'].removeClass('selected'); $(this).addClass('selected'); updateOlderEvents($(this)); updateFilling($(this), timelineComponents['fillingLine'], timelineTotWidth); updateVisibleContent($(this), timelineComponents['eventsContent']); }); //on swipe, show next/prev event content timelineComponents['eventsContent'].on('swipeleft', function(){ var mq = checkMQ(); ( mq == 'mobile' ) && showNewContent(timelineComponents, timelineTotWidth, 'next'); }); timelineComponents['eventsContent'].on('swiperight', function(){ var mq = checkMQ(); ( mq == 'mobile' ) && showNewContent(timelineComponents, timelineTotWidth, 'prev'); }); //keyboard navigation $(document).keyup(function(event){ if(event.which=='37' && elementInViewport(timeline.get(0)) ) { showNewContent(timelineComponents, timelineTotWidth, 'prev'); } else if( event.which=='39' && elementInViewport(timeline.get(0))) { showNewContent(timelineComponents, timelineTotWidth, 'next'); } }); }); } function updateSlide(timelineComponents, timelineTotWidth, string) { //retrieve translateX value of timelineComponents['eventsWrapper'] var translateValue = getTranslateValue(timelineComponents['eventsWrapper']), wrapperWidth = Number(timelineComponents['timelineWrapper'].css('width').replace('px', '')); //translate the timeline to the left('next')/right('prev') (string == 'next') ? translateTimeline(timelineComponents, translateValue - wrapperWidth + eventsMinDistance, wrapperWidth - timelineTotWidth) : translateTimeline(timelineComponents, translateValue + wrapperWidth - eventsMinDistance); } function showNewContent(timelineComponents, timelineTotWidth, string) { //go from one event to the next/previous one var visibleContent = timelineComponents['eventsContent'].find('.selected'), newContent = ( string == 'next' ) ? visibleContent.next() : visibleContent.prev(); if ( newContent.length > 0 ) { //if there's a next/prev event - show it var selectedDate = timelineComponents['eventsWrapper'].find('.selected'), newEvent = ( string == 'next' ) ? selectedDate.parent('li').next('li').children('a') : selectedDate.parent('li').prev('li').children('a'); updateFilling(newEvent, timelineComponents['fillingLine'], timelineTotWidth); updateVisibleContent(newEvent, timelineComponents['eventsContent']); newEvent.addClass('selected'); selectedDate.removeClass('selected'); updateOlderEvents(newEvent); updateTimelinePosition(string, newEvent, timelineComponents, timelineTotWidth); } } function updateTimelinePosition(string, event, timelineComponents, timelineTotWidth) { //translate timeline to the left/right according to the position of the selected event var eventStyle = window.getComputedStyle(event.get(0), null), eventLeft = Number(eventStyle.getPropertyValue("left").replace('px', '')), timelineWidth = Number(timelineComponents['timelineWrapper'].css('width').replace('px', '')), timelineTotWidth = Number(timelineComponents['eventsWrapper'].css('width').replace('px', '')); var timelineTranslate = getTranslateValue(timelineComponents['eventsWrapper']); if( (string == 'next' && eventLeft > timelineWidth - timelineTranslate) || (string == 'prev' && eventLeft < - timelineTranslate) ) { translateTimeline(timelineComponents, - eventLeft + timelineWidth/2, timelineWidth - timelineTotWidth); } } function translateTimeline(timelineComponents, value, totWidth) { var eventsWrapper = timelineComponents['eventsWrapper'].get(0); value = (value > 0) ? 0 : value; //only negative translate value value = ( !(typeof totWidth === 'undefined') && value < totWidth ) ? totWidth : value; //do not translate more than timeline width setTransformValue(eventsWrapper, 'translateX', value+'px'); //update navigation arrows visibility (value == 0 ) ? timelineComponents['timelineNavigation'].find('.prev').addClass('inactive') : timelineComponents['timelineNavigation'].find('.prev').removeClass('inactive'); (value == totWidth ) ? timelineComponents['timelineNavigation'].find('.next').addClass('inactive') : timelineComponents['timelineNavigation'].find('.next').removeClass('inactive'); } function updateFilling(selectedEvent, filling, totWidth) { //change .filling-line length according to the selected event var eventStyle = window.getComputedStyle(selectedEvent.get(0), null), eventLeft = eventStyle.getPropertyValue("left"), eventWidth = eventStyle.getPropertyValue("width"); eventLeft = Number(eventLeft.replace('px', '')) + Number(eventWidth.replace('px', ''))/2; var scaleValue = eventLeft/totWidth; setTransformValue(filling.get(0), 'scaleX', scaleValue); } function setDatePosition(timelineComponents, min) { for (i = 0; i < timelineComponents['timelineDates'].length; i++) { var distance = daydiff(timelineComponents['timelineDates'][0], timelineComponents['timelineDates'][i]), distanceNorm = Math.round(distance/timelineComponents['eventsMinLapse']) + 2; timelineComponents['timelineEvents'].eq(i).css('left', distanceNorm*min+'px'); } } function setTimelineWidth(timelineComponents, width) { var timeSpan = daydiff(timelineComponents['timelineDates'][0], timelineComponents['timelineDates'][timelineComponents['timelineDates'].length-1]), timeSpanNorm = timeSpan/timelineComponents['eventsMinLapse'], timeSpanNorm = Math.round(timeSpanNorm) + 4, totalWidth = timeSpanNorm*width; timelineComponents['eventsWrapper'].css('width', totalWidth+'px'); updateFilling(timelineComponents['timelineEvents'].eq(0), timelineComponents['fillingLine'], totalWidth); return totalWidth; } function updateVisibleContent(event, eventsContent) { var eventDate = event.data('date'), visibleContent = eventsContent.find('.selected'), selectedContent = eventsContent.find('[data-date="'+ eventDate +'"]'), selectedContentHeight = selectedContent.height(); if (selectedContent.index() > visibleContent.index()) { var classEnetering = 'selected enter-right', classLeaving = 'leave-left'; } else { var classEnetering = 'selected enter-left', classLeaving = 'leave-right'; } selectedContent.attr('class', classEnetering); visibleContent.attr('class', classLeaving).one('webkitAnimationEnd oanimationend msAnimationEnd animationend', function(){ visibleContent.removeClass('leave-right leave-left'); selectedContent.removeClass('enter-left enter-right'); }); eventsContent.css('height', selectedContentHeight+'px'); } function updateOlderEvents(event) { event.parent('li').prevAll('li').children('a').addClass('older-event').end().end().nextAll('li').children('a').removeClass('older-event'); } function getTranslateValue(timeline) { var timelineStyle = window.getComputedStyle(timeline.get(0), null), timelineTranslate = timelineStyle.getPropertyValue("-webkit-transform") || timelineStyle.getPropertyValue("-moz-transform") || timelineStyle.getPropertyValue("-ms-transform") || timelineStyle.getPropertyValue("-o-transform") || timelineStyle.getPropertyValue("transform"); if( timelineTranslate.indexOf('(') >=0 ) { var timelineTranslate = timelineTranslate.split('(')[1]; timelineTranslate = timelineTranslate.split(')')[0]; timelineTranslate = timelineTranslate.split(','); var translateValue = timelineTranslate[4]; } else { var translateValue = 0; } return Number(translateValue); } function setTransformValue(element, property, value) { element.style["-webkit-transform"] = property+"("+value+")"; element.style["-moz-transform"] = property+"("+value+")"; element.style["-ms-transform"] = property+"("+value+")"; element.style["-o-transform"] = property+"("+value+")"; element.style["transform"] = property+"("+value+")"; } //based on https://stackoverflow.com/questions/542938/how-do-i-get-the-number-of-days-between-two-dates-in-javascript function parseDate(events) { var dateArrays = []; events.each(function(){ var dateComp = $(this).data('date').split('/'), newDate = new Date(dateComp[2], dateComp[1]-1, dateComp[0]); dateArrays.push(newDate); }); return dateArrays; } function parseDate2(events) { var dateArrays = []; events.each(function(){ var singleDate = $(this), dateComp = singleDate.data('date').split('T'); if( dateComp.length > 1 ) { //both DD/MM/YEAR and time are provided var dayComp = dateComp[0].split('/'), timeComp = dateComp[1].split(':'); } else if( dateComp[0].indexOf(':') >=0 ) { //only time is provide var dayComp = ["2000", "0", "0"], timeComp = dateComp[0].split(':'); } else { //only DD/MM/YEAR var dayComp = dateComp[0].split('/'), timeComp = ["0", "0"]; } var newDate = new Date(dayComp[2], dayComp[1]-1, dayComp[0], timeComp[0], timeComp[1]); dateArrays.push(newDate); }); return dateArrays; } function daydiff(first, second) { return Math.round((second-first)); } function minLapse(dates) { //determine the minimum distance among events var dateDistances = []; for (i = 1; i < dates.length; i++) { var distance = daydiff(dates[i-1], dates[i]); dateDistances.push(distance); } return Math.min.apply(null, dateDistances); } /* How to tell if a DOM element is visible in the current viewport? https://stackoverflow.com/questions/123999/how-to-tell-if-a-dom-element-is-visible-in-the-current-viewport */ function elementInViewport(el) { var top = el.offsetTop; var left = el.offsetLeft; var width = el.offsetWidth; var height = el.offsetHeight; while(el.offsetParent) { el = el.offsetParent; top += el.offsetTop; left += el.offsetLeft; } return ( top < (window.pageYOffset + window.innerHeight) && left < (window.pageXOffset + window.innerWidth) && (top + height) > window.pageYOffset && (left + width) > window.pageXOffset ); } function checkMQ() { //check if mobile or desktop device return window.getComputedStyle(document.querySelector('.cd-horizontal-timeline'), '::before').getPropertyValue('content').replace(/'/g, "").replace(/"/g, ""); } });