import React, {useState } from 'react';

import Paper from '@material-ui/core/Paper';
import Card from '@material-ui/core/Card';
import CardActionArea from '@material-ui/core/CardActionArea';
import CardMedia from '@material-ui/core/CardMedia';
import CardContent from '@material-ui/core/CardContent';
import CardActions from '@material-ui/core/CardActions';
import Button from '@material-ui/core/Button';
import Divider from '@material-ui/core/Divider';
import Grid from '@material-ui/core/Grid';
import {BrowserView, MobileView} from "react-device-detect";

import ScheduleIcon from '@material-ui/icons/Schedule';
import Web from '@material-ui/icons/Web';
import AccountTree from '@material-ui/icons/AccountTree';
import InfoIcon from '@material-ui/icons/Info';
import ArrowForwardIcon from '@material-ui/icons/ArrowForward';
import CreateIcon from '@material-ui/icons/Create';

const bodyDivStyle = {
	margin: "auto",
}

const surfaceColor = "#27292D"
const boxStyle = {
	flex: "1",
	marginLeft: "10px",
	marginRight: "10px",
	height: "400px",
	//backgroundColor: "#e8eaf6",
	backgroundColor: surfaceColor,
	textAlign: "center",
	display: "flex", 
	flexDirection: "column",
}

const bodyTextStyle = {
	color: "#ffffff",	
}

const hrefStyle = {
	color: "inherit",
	textDecoration: "none",
}


// Should be different if logged in :|
const LandingPage = (props) => {
  	const { isLoaded} = props;

	const textColor = "#8899A6"
	const iconColor = "#1DA1F2"
	const iconSize = "8em"

	const GridLayout = (header, description, link, icon) => {
		return (
			<Paper style={boxStyle}>
				<a href={link} style={hrefStyle}>
					<div style={{flex: "1", color: "#FFFFFF"}}>
						<h2>{header}</h2>
					</div>	
					<Divider />
					<div style={{flex: "3", marginLeft: "10px", marginRight: "10px", marginTop: "10px", color: textColor}}>
						{description}
					</div>	
					<div style={{margin: "auto"}}>
						{icon}
					</div>
					<Divider style={{marginTop: "20px", marginBottom: "20px"}} />
					<div style={{flex: "1", color: "#f85a3e"}}>
						<div style={{}} >
							Learn more
						</div>
					</div>	
				</a>
			</Paper>
		)
	}

	const listitems = [
		GridLayout("Simple integrations", "Easily use others' or create your own integration", "/docs/features", <Web style={{fontSize: iconSize, marginTop: "20px", color: iconColor}} />),
		GridLayout("Workflows", "Access the power of automation within minutes, whether its on premise or in the cloud", "/docs/features", <AccountTree style={{fontSize: iconSize, marginTop: "20px", color: iconColor}} />),
		GridLayout("Realtime actions", "Beat the clock by leveraging our realtime triggers", "/docs/features", <ScheduleIcon style={{fontSize: iconSize, marginTop: "20px", color: iconColor}} />),
	]

	// The actual landing page 
	// <img style={{width: "400px"}} alt={"logo"} src={Default}/>
	//We start by understanding your unique environment to help identify the right thing to automate.
	const secondaryColor = "rgba(167,46,87,1)"
	const primaryColor = "rgba(25, 35, 94, 1)"

	const paperStyle = {
		flex: 1, 
		backgroundColor: "inherit",
		cursor: "pointer",
	}
	
	const secondaryItemList = [
		{
			primaryText: "No time to waste",
			secondaryText: "Bring all your applications into a single view, and make them all work together flawlessly!",
			image: "/images/time.jpg",
		}, {
			primaryText: "Get a better overview",
			secondaryText: "Don't know what's happening? We'll help you track and act on your most valuable KPI's!",
			image: "/images/overview.jpg",
		}, {
			primaryText: "Conquer your tasks",
			secondaryText: "Get access to powerful tools and pre-made workflows to help you crush your teams daily tasks!",
			image: "/images/burnout.jpg",
		},
	]
  	const [image, setImage] = useState(secondaryItemList[0].image);

	const landingpageDataBrowser = 
		<div>
			<div style={{backgroundImage: "url('/images/test.jpg')", backgroundSize: "80% 100%", backgroundRepeat: "no-repeat", minHeight: "100vh", maxHeight: 1024}}>
				<div style={{textAlign: "left", paddingTop: 135, maxWidth: 700, paddingLeft: "50%", color: secondaryColor, display: "flex", fontSize: 25}}>
					<div style={{flex: 1}}>
						<a href="/docs/about" style={hrefStyle}>
							<Grid container direction="row" alignItems="center">
							  <Grid item>
								<InfoIcon /> 
							  </Grid>
							  <Grid item style={{marginLeft: 5}}>
								About
							  </Grid>
							</Grid>
						</a>
					</div>
					<div style={{flex: 1}}>
						<a href="/contact" style={hrefStyle}>
							<Grid container direction="row" alignItems="center">
							  <Grid item>
								<CreateIcon /> 
							  </Grid>
							  <Grid item style={{marginLeft: 5}}>
								Get in touch	
							  </Grid>
							</Grid>
						</a>
					</div>
					<div style={{flex: 1}}>
						<a href="/login" style={hrefStyle}>
							<Button
								style={{borderRadius: 25, height: 50, minWidth: 200, backgroundColor: secondaryColor, color: "white"}} variant="contained">
								Try it out <ArrowForwardIcon />
							</Button>
						</a>
					</div>
				</div>
				<div style={bodyTextStyle, {textAlign: "left", paddingTop: "8%", paddingLeft: "28%", maxWidth: 430,}}>
					<div style={{fontSize: 25, color:"rgba(0,0,0,0.45)"}}>
						Shuffle
					</div>
					<div style={{fontSize: 50, color: "rgba(0,0,0,0.7)"}}>
						INFORMATION <div style={{color: secondaryColor}}>OVERLOAD</div>
					</div>
					<div style={{fontSize: 20, color: "rgba(0, 0, 0, 0.45)", marginTop: 20,}}>
						Everyone run into the same fundamental operational problems. Mailbox chaos, tickets getting out of hand and a constant feeling of being overwhelmed. The good news? <div style={{color: secondaryColor, marginTop: 10}}>Shuffle solves them.</div>
					</div>
					<a href="/docs/features" style={hrefStyle}>
						<Button
							style={{borderRadius: 25, height: 50, marginTop: 50, width: 200, backgroundColor: secondaryColor, color: "white"}}
							variant="contained"
						>Learn how</Button>
					</a>
				</div>
			</div>
			<div style={{minHeight: 1024, width: "100%", backgroundImage: "linear-gradient(to bottom right, #19235e, #19235e)",}}>
				<div style={{minHeight: 1000, paddingTop: 150, maxWidth: 1250, margin: "auto"}}>
					<div style={{color: "rgba(255,255,255,0.8", fontSize: 60, marginLeft: 25, }}>
						<b>Automation is just the beginning	</b>
					</div>
					<div style={{marginTop: 40, display: 'flex', flexDirection: "row"}}>
						<div style={{flex: 8, display: "flex", flexDirection: "column", fontSize: 40, }}>
							{secondaryItemList.map((data, index) => {
								const color = image === data.image ? "rgba(255,255,255,1)" : "rgba(255,255,255,0.4)"
								return (
									<div style={{borderRadius: 15, padding: 25, maxWidth: 600, height: 150, fontSize: 40, color: color, cursor: "pointer"}} onClick={() => setImage(data.image)}>
										{data.primaryText}
										<div style={{fontSize: 22, marginTop: 10, }}>
											{data.secondaryText}
										</div>
									</div>	
								)
							})}
						</div>
						<div style={{flex: 1}} />
						<div style={{flex: 10, height: "100%", width: "100%",}}>
							<img src={image} style={{borderRadius: 15, minHeight: "100%", minWidth: "100%", maxWidth: "100%", maxHeight: "100%"}}/>
						</div>
					</div>
				</div>
				<div style={{maxWidth: 1250, paddingTop: 100, paddingBottom: 100, margin: "auto", color: "rgba(255,255,255,0.8)"}}>
					<Divider style={{backgroundColor: "rgba(255,255,255,0.6)"}} />
					<div style={{marginTop: 100, fontSize: 40, display: "flex", marginLeft: 100, marginRight: 100}}>
						<div style={{flex: 3}}>
							Learn more about the benefits of Shuffle
						</div>
						<div style={{flex: 1}}>
							<a href="/docs/features" style={hrefStyle}>
								<Button
									fullWidth
									style={{borderRadius: 25, minHeight: 50, minWidth: 200, backgroundColor: secondaryColor, color: "white"}} variant="contained">
									See features	
								</Button>
							</a>
						</div>
					</div>
				</div>
			</div>
			<div style={{textAlign: "center", maxWidth: 1100, minHeight: 600, paddingTop: 100, margin: "auto", color: "rgba(0,0,0,1)"}}>
				<div style={{fontSize: 50}}>
					<b>Focus on the work that matters to you</b>
				</div>
				<div style={{fontSize: 20, color: "rgba(0,0,0,0.7)", maxWidth: "100%"}}>
					Menial tasks, scattered content, constant copy pasting, waste of talent - <b>there's a smarter way to work.</b>
				</div>
				<div style={{display: "flex", marginTop: 50}}>
					<Card onClick={() => {window.location.pathname = "/docs/features"}} style={{flex: 1, margin: 10, textAlign: "center"}}>
					    <CardActionArea>
							<CardMedia 
								title="TEST"
								image="/images/time.jpg"
							/>
							<CardContent>
								<h3>Premade playbooks</h3>
								<p>Get your automation done with minimal effort</p>
							</CardContent>
						</CardActionArea>
							<Button size="medium" color="green">
								Learn more
							</Button>
					</Card>
					<Card  onClick={() => {window.location.pathname = "/docs/features"}} style={{flex: 1, margin: 10, textAlign: "center"}}>
					    <CardActionArea>
							<CardMedia 
								title="TEST"
								image="/images/time.jpg"
							/>
							<CardContent>
								<h3>Open frameworks</h3>
								<p>Mitre Att&ck, OpenAPI and more!</p>
							</CardContent>
						</CardActionArea>
							<Button size="medium" color="green">
								Learn more
							</Button>
					</Card>
					<Card onClick={() => {window.location.pathname = "/docs/features"}} style={{flex: 1, margin: 10, textAlign: "center"}}>
					    <CardActionArea>
							<CardMedia 
								title="TEST"
								image="/images/time.jpg"
							/>
							<CardContent>
								<h3>Hundreds of integrations</h3>
								<p>Quickly integrate your software applications</p>
							</CardContent>
						</CardActionArea>
							<Button size="medium" color="green">
								Learn more
							</Button>
					</Card>
					<Card style={{flex: 1, margin: 10, textAlign: "center"}} onClick={() => {window.location.pathname = "/docs/features"}}>
					    <CardActionArea>
							<CardMedia 
								title="TEST"
								image="images/time.jpg"
							/>
							<CardContent>
								<h3>Automated compliance</h3>
								<p>Stuck with compliance needs you can't meet?</p>
							</CardContent>
						</CardActionArea>
							<Button size="medium" color="green">
								Learn more
							</Button>
					</Card>
				</div>
			</div>
		</div>

	const landingpageDataMobile = 
		<div style={{backgroundColor: "#1F2023", paddingTop: 30}}>
			<div style={{color: "white", textAlign: "center", marginLeft: "10px", marginRight: "10px"}}>
				<h1>Shuffle</h1>
				<h3>A general automation solution for Infosec and IT Professionals</h3>
				<a href="/contact" style={hrefStyle}>
					<Button
						style={{width: "220px", height: "60px", borderRadius: "0px"}}
						variant="contained"
						color="primary"
					>
					Contact	
					</Button>
				</a>
			</div>
			<div style={{display: "flex", flexDirection: "column", marginTop: "100px"}}>
				<div>
					{listitems[0]}
				</div>
				<div style={{marginTop: "20px"}}>
					{listitems[1]}
				</div>
				<div style={{marginTop: "20px", marginBottom: "30px"}}>
					{listitems[2]}
				</div>
				<div style={{marginTop: "20px", marginBottom: "30px", textAlign: "center"}}>
					<a href="/contact" style={hrefStyle}>
						<Button
							style={{width: "220px", height: "60px", borderRadius: "0px"}}
							variant="contained"
							color="primary"
						>
						Contact	
						</Button>
					</a>
				</div>
			</div>
		</div>


	// Reroute if the user is logged in
	// const landingSite = isLoggedIn ? <Workflows globalUrl={globalUrl}{...props} /> : <div style={bodyDivStyle}>{landingpageData}</div>
	const landingSite = <div style={bodyDivStyle}>{landingpageDataBrowser}</div>

	const loadedCheck = isLoaded ? 
		<div>
			<BrowserView>
				{landingSite}	
			</BrowserView>
			<MobileView>
				{landingpageDataMobile}
			</MobileView>
		</div>
		:
		<div>
		</div>

	return(
		<div>
			{loadedCheck}	
		</div>
	)
}
export default LandingPage;
