package com.example.labwork.pages

import androidx.compose.foundation.Image
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.Tab
import androidx.compose.material.TabRow
import androidx.compose.material.TabRowDefaults
import androidx.compose.material.TabRowDefaults.tabIndicatorOffset
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.setValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment
import androidx.compose.ui.Alignment.Companion.CenterHorizontally
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.draw.shadow
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.example.labwork.R
import com.example.labwork.ui.theme.LightBluePolitech


@Composable
fun ListInfo() {
    var selectedTab by remember { mutableStateOf(0) }
    Box(modifier = Modifier.fillMaxSize()) {
        Column(
            modifier = Modifier
                .padding(16.dp)
                .align(Alignment.TopCenter)
        ) {
            Box(
                modifier = Modifier
                    .size(200.dp)
                    .align(CenterHorizontally)
                    .clip(shape = RoundedCornerShape(8.dp))
                    .shadow(16.dp, shape = RoundedCornerShape(8.dp))
            ) {
                Image(
                    painter = painterResource(id = R.drawable.logo_ulstu),
                    contentDescription = "Menu Image",
                    Modifier.fillMaxSize()
                )
            }
            Spacer(modifier = Modifier.height(16.dp))
            TabRow(
                selectedTabIndex = selectedTab,
                backgroundColor = LightBluePolitech,
                contentColor = Color.White,
                indicator = { tabPositions ->
                    TabRowDefaults.Indicator(
                        color = Color.White,
                        height = 4.dp,
                        modifier = Modifier
                            .tabIndicatorOffset(tabPositions[selectedTab])
                    )
                },
                modifier = Modifier.shadow(16.dp)
            ) {
                Tab(
                    selected = selectedTab == 0,
                    onClick = { selectedTab = 0 }
                ) {
                    Text(
                        text = "Университет",
                        modifier = Modifier.padding(8.dp),
                        textAlign = TextAlign.Center,
                    )
                }
                Tab(
                    selected = selectedTab == 1,
                    onClick = { selectedTab = 1 }
                ) {
                    Text(
                        text = "Библиотека",
                        modifier = Modifier.padding(8.dp),
                        textAlign = TextAlign.Center,
                    )
                }
                Tab(
                    selected = selectedTab == 2,
                    onClick = { selectedTab = 2 }
                ) {
                    Text(
                        text = "Контакты разработчиков",
                        modifier = Modifier
                            .padding(8.dp),
                        textAlign = TextAlign.Center,
                    )
                }
            }
            Spacer(modifier = Modifier.height(16.dp))
            when (selectedTab) {
                0 -> InfoUniver()
                1 -> InfoBiblio()
                2 -> InfoProgrammer()
            }
        }
    }
}

@Composable
fun InfoUniver() {
    LazyColumn(
        modifier = Modifier.fillMaxSize().padding(bottom = 65.dp),
        contentPadding = PaddingValues(16.dp)
    ) {
        item {
            Text(
                text = "Основные сведения",
                fontSize = 24.sp,
                fontWeight = FontWeight.Bold
            )
            Spacer(modifier = Modifier.height(16.dp))

            Text(
                "Полное наименование образовательной организации",
                fontSize = 16.sp,
                fontWeight = FontWeight.Bold
            )
            Text(
                text = "Федеральное государственное бюджетное образовательное учреждение высшего образования \"Ульяновский государственный технический университет\""
            )
            Spacer(modifier = Modifier.height(8.dp))

            Text(
                "Сокращенное (при наличии) наименование образовательной организации",
                fontSize = 16.sp,
                fontWeight = FontWeight.Bold
            )
            Text(text = "УлГТУ, Ульяновский государственный технический университет")
            Spacer(modifier = Modifier.height(8.dp))

            Text(
                "Дата создания образовательной организации",
                fontSize = 16.sp,
                fontWeight = FontWeight.Bold
            )
            Text(text = "18.09.1957")
            Spacer(modifier = Modifier.height(8.dp))

            Text(
                "Адрес местонахождения образовательной организации",
                fontSize = 16.sp,
                fontWeight = FontWeight.Bold
            )
            Text(text = "432027, Ульяновская область, г. Ульяновск, улица Северный Венец, дом 32")
            Spacer(modifier = Modifier.height(8.dp))

            Text(
                "Филиалы образовательной организации",
                fontSize = 16.sp,
                fontWeight = FontWeight.Bold
            )
            Text(text = "Имеются")
            Spacer(modifier = Modifier.height(8.dp))

            Text(
                "Представительства образовательной организации",
                fontSize = 16.sp,
                fontWeight = FontWeight.Bold
            )
            Text(text = "Имеются")
            Spacer(modifier = Modifier.height(8.dp))

            Text(
                "Режим, график работы",
                fontSize = 16.sp,
                fontWeight = FontWeight.Bold
            )
            Text(text = "Понедельник-четверг - 8.30 - 17.22")
            Text(text = "Пятница- 8.30 - 16.22")
            Text(text = "Перерыв 13.00 до 13.40")
            Spacer(modifier = Modifier.height(8.dp))

            Text(
                "Контактные телефоны",
                fontSize = 16.sp,
                fontWeight = FontWeight.Bold
            )
            Text(text = "8(8422)43-02-37")
            Spacer(modifier = Modifier.height(8.dp))

            Text(
                "Адреса электронной почты",
                fontSize = 16.sp,
                fontWeight = FontWeight.Bold
            )
            Text(text = "rector@ulstu.ru")
        }
    }
}

@Composable
fun InfoBiblio() {
    LazyColumn(
        modifier = Modifier.fillMaxSize().padding(bottom = 65.dp),
        contentPadding = PaddingValues(16.dp)
    ) {
        item {
            Text(
                text = "Основные сведения",
                fontSize = 24.sp,
                fontWeight = FontWeight.Bold
            )
            Spacer(modifier = Modifier.height(16.dp))

            Text("Технический университет подобным сокровищем обладает!",modifier = Modifier.padding(bottom = 16.dp))

            Text(
                text = "Наша Научная библиотека соответствует всем современным требованиям технического вуза. Постоянно пополняющийся библиотечный фонд составляет более 1100 тыс. единиц хранения, формируется по специальностям (с учетом всех направлений учебного и научного процессов университета) изданиями, отвечающими требованиям программ высшей школы. В фонде имеются зарубежные издания, диссертации, авторефераты, документы на электронных носителях. Пользователям предоставляется доступ к электронным ресурсам удалённого доступа, входящим в состав электронно-библиотечной системы «ЭльбруС» УлГТУ."
                ,modifier = Modifier.padding(bottom = 16.dp)
            )

            Text(
                text = "К услугам читателей: зал каталогов, aвонементы научной и учебной литературы, общий читальный зал, отдел экономической и иностранной литературы. Выдача комплектов учебников первокурсникам, зал для аспирантов и преподавателей, зал периодических изданий, читальный зал машиностроительного факультета, читальный зал электронных ресурсов, отдел художественной литературы, научно-библиографический отдел, библиотека Института авиационных технологий и управления, Барышского колледжа — филиала УлГТУ."
                ,modifier = Modifier.padding(bottom = 16.dp)
            )

            Text(
                text = "Абонемент учебной литературы обеспечивает студентов и лицеистов учебниками и учебными пособиями в соответствии с учебными программами. Научные, научно-популярные и справочные издания для подготовки рефератов, докладов, курсовых и дипломных работ, а также издания по орган. Располагает богатым фондом справочных и информационных изданий. В отделе художественной литературы собраны книги на любой вкус: есть классическая русская и зарубежная, современная отечественная и иностранная литература; тематика книг - от фантастики, детективов, приключений и женских романов до серьезной, философской литературы. В отделе иностранной литературы хранятся учебные и научные издания на английском, немецком и французском языках. Читальный зал электронных ресурсов (медиатека) НБ УлГТУ располагает фондом CD, DVD по различным отраслям знаний. На территории Научной библиотеки размещены точки доступа в Интернет по технологии Wi-Fi. Право доступа в беспроводную локальной сети предоставляется всем желающим студентам и сотрудникам университета, имеющим учетную запись пользователя корпоративной сети университета."
                ,modifier = Modifier.padding(bottom = 16.dp)
            )

            Text(
                text = "События библиотечной жизни оперативно отражаются на нашем сайте (http://lib.ulstu.ru), сайт также обеспечивает круглосуточный доступ пользователей к каталогам и базам данных библиотеки."
                ,modifier = Modifier.padding(bottom = 16.dp)
            )

            Text(
                text = "Научная библиотека ведёт активную работу в помощь духовно-нравственному, патриотическому и эстетическому воспитанию своих читателей, используя различные формы и методы библиотечного обслуживания, такие как: книжные выставки, тематические обзоры, беседы, творческие встречи с интересными людьми, конкурсы и викторины."
                ,modifier = Modifier.padding(bottom = 16.dp)
            )

            Spacer(modifier = Modifier.height(16.dp))

            Text("Адреса электронной почты",
                fontSize = 16.sp,
                fontWeight = FontWeight.Bold)
            Text(text = "rector@ulstu.ru")
        }
    }
}

@Composable
fun InfoProgrammer() {
    LazyColumn(
        modifier = Modifier.fillMaxSize().padding(bottom = 65.dp),
        contentPadding = PaddingValues(16.dp)
    ) {
        item {
            Text(
                text = "Основные сведения",
                fontSize = 24.sp,
                fontWeight = FontWeight.Bold
            )

            Box(
                modifier = Modifier
                    .size(200.dp)
                    .clip(shape = RoundedCornerShape(8.dp))
            ) {
                Image(
                    painter = painterResource(id = R.drawable.kashinmaksim),
                    contentDescription = "Maxim",
                    contentScale = ContentScale.Crop,
                    modifier = Modifier.fillMaxSize()
                )
            }

            Spacer(modifier = Modifier.height(16.dp))

            Text("Подробная информация",
                fontSize = 16.sp,
                fontWeight = FontWeight.Bold)
            Text(
                text = "Кашин Максим Игоревич"
            )

            Text("Личная информация",
                fontSize = 16.sp,
                fontWeight = FontWeight.Bold)
            Text(
                text = "Родной город: Сыктывкар"
            )
            Text(
                text = "Языки: Русский"
            )
            Text(
                text = "День рождения: 23 декабря"
            )

            Text("Место работы",
                fontSize = 16.sp,
                fontWeight = FontWeight.Bold)
            Text(
                text = "ДЦТ ЛАОП"
            )

            Text("Образование",
                fontSize = 16.sp,
                fontWeight = FontWeight.Bold)
            Text(
                text = "Вуз: УлГТУ"
            )
            Text(
                text = "Факультет: Факультет информационных систем и технологий"
            )
            Text(
                text = "Специальность: Программная инженерия"
            )
            Text(
                text = "Школа: Школа № 7 Димитровград до 2021 г."
            )
        }
    }
}