2216 lines
		
	
	
		
			No EOL
		
	
	
		
			77 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			2216 lines
		
	
	
		
			No EOL
		
	
	
		
			77 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| ChoosedButton = 0
 | |
| InSubMenu = false
 | |
| InSearchMenu = "people"
 | |
| OpenFromJail = false
 | |
| InPanelPos = false
 | |
| PressedLicence = [0,0]
 | |
| OpenedMDT = false
 | |
| MenuColors = ["",""]
 | |
| Involveds = [[],[],[]]
 | |
| AddInvolved = ""
 | |
| Job = undefined
 | |
| 
 | |
| if (localStorage.getItem("VehControlTop") != "null"){
 | |
|   let vc = document.getElementById("vehicle_control")
 | |
|   let vp = document.getElementById("plate_reader")
 | |
| 
 | |
|   vc.style.top = localStorage.getItem("VehControlTop")
 | |
|   vc.style.left = localStorage.getItem("VehControlLeft")
 | |
|   vp.style.top = localStorage.getItem("VehPlateTop")
 | |
|   vp.style.left = localStorage.getItem("VehPlateLeft")
 | |
| }
 | |
| 
 | |
| window.addEventListener('message', function(event) {
 | |
|     let data = event.data
 | |
|    
 | |
|     if (data.action === "OpenPoliceMenu"){
 | |
|       InteractionsTable = data.interactionstable
 | |
|       CreatePoliceMenu()
 | |
|       MenuColors = data.menucolors
 | |
|       RefreshColors()
 | |
|     }
 | |
|     else if (data.action === "OpenCloakRoom"){
 | |
|       Outfits = data.outfits
 | |
|       CreateDressMenu()
 | |
|       MenuColors = data.menucolors
 | |
|       RefreshColors()
 | |
|     }
 | |
|     else if (data.action === "OpenArmory"){
 | |
|       CreateArmoryMenu()
 | |
|       MenuColors = data.menucolors
 | |
|       RefreshColors()
 | |
|     }
 | |
|     else if (data.action === "OpenGarage"){
 | |
|       Vehicles = data.vehicles
 | |
|       CreateGarageMenu()
 | |
|       MenuColors = data.menucolors
 | |
|       RefreshColors()
 | |
|     }
 | |
|     else if (data.action === "OpenMDTMenu"){
 | |
|       OpenedMDT = true
 | |
|       Cameras = data.cameras
 | |
|       CamStatus = data.status
 | |
|       MoneyForm = data.moneyform
 | |
|       OpenFromJail = false
 | |
|       Job = data.job
 | |
|       Cops = data.cops
 | |
|       Street = data.street
 | |
|       PlayerName = data.name
 | |
|       MenuColors = data.menucolors
 | |
|       NoteRank = data.rank
 | |
|       Incidents = data.incidents
 | |
|       Licenses = data.licenses
 | |
|       LicenseRank = data.licenserank
 | |
|       CitizenCallRank = data.citizencallrank
 | |
|       AllNames = data.names
 | |
|       AllPlates = data.plates
 | |
|       JailStatus = data.jailstatus
 | |
|       RefreshColors()
 | |
|       document.getElementById("MDT").style.animation = "Show_panel 0.5s ease";
 | |
|       $(".MDT").css("display","block")
 | |
|       $("#jail_back_btn").css("display", "block")
 | |
|       $(".LSDP_logo_img").attr('src', "assets/"+Job.job+".png")
 | |
|       InsertHomeData()
 | |
|       RefreshTime()
 | |
|     }
 | |
|     else if(data.action === "RefreshMDTMenu"){
 | |
|       MDTTable = data.table
 | |
|       if (data.value == 'search'){
 | |
|         CreateSearchElements()
 | |
|       }
 | |
|       else if(data.value == 'incident'){
 | |
|         if (MDTTable.length > 0){
 | |
|           if (AddInvolved == 'add_vehicle'){
 | |
|             if (Involveds[0].includes(MDTTable[0].plate) == false){
 | |
|               Involveds[0].push(MDTTable[0].plate)
 | |
|             }
 | |
|           }
 | |
|           else if (AddInvolved == 'add_people'){
 | |
|             if (Involveds[1].includes(MDTTable[0].firstname+' '+MDTTable[0].lastname) == false){
 | |
|               Involveds[1].push(MDTTable[0].firstname+' '+MDTTable[0].lastname)
 | |
|             }
 | |
|           }
 | |
|         }
 | |
|         RefreshInvolveds()
 | |
|       }
 | |
|     }
 | |
|     else if(data.action === "MDTRefreshIncidents"){
 | |
|       Incidents = data.table
 | |
|       CreateIncidents()
 | |
|       CreateTypeahead(".typeahead", Incidents, 'title')
 | |
|       CreateTypeahead(".people_typeahead", AllNames, false)
 | |
|       CreateTypeahead(".vehicle_typeahead", AllPlates, false)
 | |
|     }
 | |
|     else if(data.action === "MDTRefreshNotes"){
 | |
|       Notes = data.table
 | |
|       CreateNotes(false)
 | |
|     }
 | |
|     else if (data.action === "OpenShopMenu"){
 | |
|       ShopItems = data.items
 | |
|       MoneyForm = data.moneyform
 | |
|       Card = data.card
 | |
|       CreateShop(Card)
 | |
|     }
 | |
|     else if (data.action === "EnableCam"){
 | |
|       CamLabel = data.label
 | |
|       Connected = data.connected
 | |
|       ShowCamMenu()
 | |
|     }
 | |
|     else if (data.action === "DisableCam"){
 | |
|       HideCamMenu()
 | |
|     }
 | |
|     else if (data.action === "MDTShowLicences"){
 | |
|       PlayerLicences = data.table
 | |
|       CreateLicences()
 | |
|     }
 | |
|     else if (data.action === "MDTShowFines"){
 | |
|       PlayerFines = data.table
 | |
|       CreateFines()
 | |
|     }
 | |
|     else if (data.action === "OpenSendToJailMenu"){
 | |
|       Player_target = data.target
 | |
|       MenuColors = data.menucolors
 | |
|       RefreshColors()
 | |
|       $("#jail_back_btn").css("display", "none")
 | |
|       $('#jail_reason_modal').modal('show')
 | |
|       OpenFromJail = true
 | |
|     }
 | |
|     else if (data.action === "SpeedNotify"){
 | |
|       PlayerSpeed = data.speed
 | |
|       SpeedLimit = data.limit
 | |
|       SpeedFine = data.amount
 | |
|       Metric = data.metric
 | |
|       MoneyForm = data.moneyform
 | |
|       SpeedNotify()
 | |
|     }
 | |
|     else if (data.action === "JailHud"){
 | |
|       JailMinute = data.jailminute
 | |
|       $(".jail_hud h3").html(`${JailMinute} minutes left`)
 | |
|       $(".jail_hud").css("display", "block")
 | |
|     }
 | |
|     else if (data.action === "HideJailHud"){
 | |
|       $(".jail_hud").css("display", "none")
 | |
|     }
 | |
|     else if (data.action === "PlateReaderStatus"){
 | |
|       if (data.enable == true){
 | |
|         document.getElementById("plate").classList.add("vehicle_btn_active")
 | |
|         $(".plate_reader").css("display", "block")
 | |
|       }
 | |
|       else{
 | |
|         document.getElementById("plate").classList.remove("vehicle_btn_active")
 | |
|         $(".plate_reader").css("display", "none")
 | |
|       }
 | |
|     }
 | |
|     else if (data.action === "VehiclePanel"){
 | |
|       $(".vehicle_menu").css("display", "block")
 | |
|       MenuColors = data.menucolors
 | |
|       RefreshColors()
 | |
|     }
 | |
|     else if (data.action === "HideVehiclePanel"){
 | |
|       $(".vehicle_menu").css("display", "none")
 | |
|     }
 | |
|     else if (data.action === "VehicleSystem"){
 | |
|       FrontVehicle = data.frontvehicle
 | |
|       RearVehicle = data.rearvehicle
 | |
|       Horn = data.horn
 | |
|       Siren = data.siren
 | |
|       Light = data.vehiclelight
 | |
| 
 | |
|       if (Horn == true){
 | |
|         document.getElementById("horn").classList.add("vehicle_btn_active")
 | |
|       }
 | |
|       else{
 | |
|         document.getElementById("horn").classList.remove("vehicle_btn_active")
 | |
|       }
 | |
| 
 | |
|       if (Siren == true){
 | |
|         document.getElementById("siren").classList.add("vehicle_btn_active")
 | |
|       }
 | |
|       else{
 | |
|         document.getElementById("siren").classList.remove("vehicle_btn_active")
 | |
|       }
 | |
| 
 | |
|       if (Light == true){
 | |
|         document.getElementById("light").classList.add("vehicle_btn_active")
 | |
|       }
 | |
|       else{
 | |
|         document.getElementById("light").classList.remove("vehicle_btn_active")
 | |
|       }
 | |
| 
 | |
|       if (FrontVehicle.plate != ""){
 | |
|         document.getElementById("front_speed").innerHTML = FrontVehicle.speed
 | |
|         document.getElementById("front_plate").innerHTML = FrontVehicle.plate
 | |
|         $(".plate_reader #top").css("background-color","rgb(59, 196, 28)")
 | |
|       }
 | |
|       else{
 | |
|         $(".plate_reader #top").css("background-color","rgb(196, 28, 28)")
 | |
|       }
 | |
|       if (RearVehicle.plate != ""){
 | |
|         document.getElementById("rear_speed").innerHTML = RearVehicle.speed
 | |
|         document.getElementById("rear_plate").innerHTML = RearVehicle.plate
 | |
|         $(".plate_reader #bottom").css("background-color","rgb(59, 196, 28)")
 | |
|       }
 | |
|       else{
 | |
|         $(".plate_reader #bottom").css("background-color","rgb(196, 28, 28)")
 | |
|       }
 | |
|     }
 | |
|     else if (data.action === "VehiclePanelEdit"){
 | |
|       InPanelPos = true
 | |
|       dragElement(document.getElementById("vehicle_control"))
 | |
|       dragElement(document.getElementById("plate_reader"))
 | |
|     }
 | |
|     else if(data.action === "CitizenCallMenu"){
 | |
|       document.getElementById("create_citizen_call").style.animation = "Appear_Menu 0.5s ease";
 | |
|       $("#create_citizen_call").css("display", "block")
 | |
|     }
 | |
|     else if(data.action === "MDTGetCitizenCalls"){
 | |
|       CitizenCalls = data.table
 | |
|       PlayerId = data.myid
 | |
|       CurrentTime = data.time
 | |
|       CreateCitizenCalls()
 | |
|     }
 | |
|     else if(data.action === "LiveryMenu"){
 | |
|       Livery = data.livery
 | |
|       document.getElementById("vehicle_livery").style.animation = "Appear_Menu 0.5s ease";
 | |
|       $(".vehicle_livery").css("display", "block")
 | |
|       $("#livery").html("Livery: "+Livery)
 | |
|     }
 | |
|     else if(data.action === "HideLiveryMenu"){
 | |
|       document.getElementById("vehicle_livery").style.animation = "Hide_panel 0.5s ease";
 | |
|       setTimeout(function(){
 | |
|         $(".vehicle_livery").css("display","none")
 | |
|       }, 400)
 | |
|     }
 | |
|     else if(data.action === "AreaLockMenu"){
 | |
|       MenuColors = data.menucolors
 | |
|       RefreshColors()
 | |
|       document.getElementById("area_lock").style.animation = "Appear_Menu 0.5s ease";
 | |
|       $("#area_lock").css("display", "block")
 | |
|     }
 | |
| 	else if(data.action === "RemoveObjects"){
 | |
| 		document.getElementById("delete_object").style.animation = "Appear_Menu 0.5s ease";
 | |
| 		$(".delete_object").css("display", "block")
 | |
| 	}
 | |
| 	else if(data.action === "HideRemoveObjects"){
 | |
| 		document.getElementById("delete_object").style.animation = "Hide_panel 0.5s ease";
 | |
| 		setTimeout(function(){
 | |
| 			$(".delete_object").css("display","none")
 | |
| 		}, 400)
 | |
| 	}
 | |
|     else if (data.action === "ControlReleased"){
 | |
|       Control = data.control
 | |
|       if(Control === "up" || Control === "down" ){
 | |
|         ChangeFocus(Control)
 | |
|       }
 | |
|       else if(Control === "enter"){
 | |
|         document.getElementById("circle_"+ChoosedButton).click()
 | |
|       }
 | |
|       else if(Control === "backspace"){
 | |
|         if(InSubMenu){
 | |
|           BackPoliceMenu()
 | |
|         }
 | |
|         else{
 | |
|           Close()
 | |
|         }
 | |
|       }
 | |
|     }
 | |
| })
 | |
| 
 | |
| document.onkeydown = function(data) {
 | |
|   if (event.key == 'Escape') {
 | |
|     Close()
 | |
|   }
 | |
| }
 | |
| 
 | |
| function Close(){
 | |
|   HideInteractionMenu()
 | |
|   HidePoliceMenu()
 | |
|   CloseShop()
 | |
|   CloseMDT()
 | |
|   CloseCitizenCall()
 | |
|   CloseAreaLock()
 | |
|   setTimeout(function(){
 | |
|     $('.modal').modal('hide')
 | |
|   },500)
 | |
|   if (InPanelPos == true){
 | |
|     let vc = document.getElementById("vehicle_control")
 | |
|     let vp = document.getElementById("plate_reader")
 | |
| 
 | |
|     localStorage.setItem("VehControlTop", vc.style.top)
 | |
|     localStorage.setItem("VehControlLeft", vc.style.left)
 | |
|     localStorage.setItem("VehPlateTop", vp.style.top)
 | |
|     localStorage.setItem("VehPlateLeft", vp.style.left)
 | |
|   }
 | |
|   InPanelPos = false
 | |
|   $.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"close"}))
 | |
| }
 | |
| 
 | |
| function RefreshColors(){
 | |
|   var r = document.querySelector(':root')
 | |
|   r.style.setProperty('--main_color', MenuColors[0])
 | |
|   r.style.setProperty('--main_color_darker', MenuColors[1])
 | |
| }
 | |
| 
 | |
| function RefreshTime(){
 | |
|   if (OpenedMDT){
 | |
|     setTimeout(function(){
 | |
|       RefreshTime()
 | |
|     },100)
 | |
|   }
 | |
|   
 | |
|   var date=new Date();  
 | |
|   var day=date.getDate();  
 | |
|   var month=date.getMonth()+1;  
 | |
|   var year=date.getFullYear();  
 | |
|   $("#home_date").html(day+"/"+month+"/"+year+"<br>"+date.toLocaleTimeString()); 
 | |
| }
 | |
| 
 | |
| function InsertHomeData(){
 | |
|   $("#available_cops").html(Cops)
 | |
|   $("#player_rang").html(Job.label)
 | |
|   $("#salary").html(Job.salary+MoneyForm)
 | |
|   $("#job_name").html(Job.name+" - Database")
 | |
|   $("#street").html(`<i class="fa-solid fa-location-dot"></i> `+Street[0]+",<br>"+Street[1])
 | |
|   $(".welcome_text .hand_written").html(PlayerName)
 | |
| }
 | |
| 
 | |
| function ChangeFocus(direction){
 | |
|   if(direction === "up"){
 | |
|     if(InSubMenu === false){
 | |
|       if(InteractionsTable.length >= ChoosedButton +2){
 | |
|         ChoosedButton++
 | |
|       }
 | |
|       else if(InteractionsTable.length === ChoosedButton +1){
 | |
|         ChoosedButton = 0
 | |
|       }
 | |
|     }
 | |
|     else{
 | |
|       if(InteractionsTable[SubNumber].table.length > ChoosedButton + 1){
 | |
|         ChoosedButton++
 | |
|       }
 | |
|       else if(InteractionsTable[SubNumber].table.length === ChoosedButton +1){
 | |
|         ChoosedButton = 0
 | |
|       }
 | |
|     }
 | |
|   }
 | |
|   else{
 | |
|     if(InSubMenu === false){
 | |
|       if(ChoosedButton === 0){
 | |
|         ChoosedButton = InteractionsTable.length -1
 | |
|       }
 | |
|       else{
 | |
|         ChoosedButton = ChoosedButton -1
 | |
|       }
 | |
|     }
 | |
|     else{
 | |
|       if(ChoosedButton === 0){
 | |
|         ChoosedButton = InteractionsTable[SubNumber].table.length -1
 | |
|       }
 | |
|       else{
 | |
|         ChoosedButton = ChoosedButton -1
 | |
|       }
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   if(InSubMenu){
 | |
|     for(let i=0; i<InteractionsTable[SubNumber].table.length; i++){
 | |
|       document.getElementById("circle_"+i).classList.remove("hovered_circle")
 | |
|     }
 | |
|     Circle_Label = InteractionsTable[SubNumber].table[ChoosedButton].label
 | |
|   }
 | |
|   else{
 | |
|     for(let i=0; i<InteractionsTable.length; i++){
 | |
|       document.getElementById("circle_"+i).classList.remove("hovered_circle")
 | |
|     }
 | |
|     Circle_Label = InteractionsTable[ChoosedButton].label
 | |
|   }
 | |
| 
 | |
|   document.getElementById("circle_"+ChoosedButton).classList.add("hovered_circle")
 | |
|   $(".circles_label").html(Circle_Label)
 | |
| 
 | |
|   if(InSubMenu){
 | |
| 	let idnumber = ChoosedButton
 | |
| 	for(let i=0; i<InteractionsTable[SubNumber].table.length; i++){
 | |
| 	  if (i == idnumber){
 | |
| 		  $.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"PoliceMenuSetObject", id:InteractionsTable[SubNumber].table[i].id}))
 | |
| 		break
 | |
| 	  }
 | |
| 	}
 | |
|   }
 | |
| }
 | |
| 
 | |
| function CreatePoliceMenu(){
 | |
|   InSubMenu = false
 | |
|   let Num_elements = InteractionsTable.length
 | |
|   let Angle = 144/(Num_elements-1)
 | |
|   let Rot = -108
 | |
| 
 | |
|   document.getElementById("police_menu").style.animation = "ShowPoliceMenu 1s ease";
 | |
| 
 | |
|   $(".police_menu").css("display","block")
 | |
| 
 | |
|   $(".circle_container").html("")
 | |
|   for(let i=0; i<Num_elements; i++){
 | |
|     if (InteractionsTable[i].table == undefined){
 | |
|       $(".circle_container").append(`
 | |
|       <button class="circle_element" id="circle_${i}" onclick="SendBackIntButton(id, false)">${InteractionsTable[i].icon}</button>
 | |
|       `)
 | |
|     }
 | |
|     else{
 | |
|       $(".circle_container").append(`
 | |
|       <button class="circle_element" id="circle_${i}" onclick="ChangePoliceButtons(id)">${InteractionsTable[i].icon}</button>
 | |
|       `)
 | |
|     }
 | |
|     
 | |
|     $(".police_menu #circle_"+i).css("transform", "rotate("+Rot+"deg) translate(150px) rotate("+Rot*(-1)+"deg)")
 | |
|     Rot = Rot - Angle
 | |
|   }
 | |
|   document.getElementById("circle_"+ChoosedButton).classList.add("hovered_circle")
 | |
|   $(".circles_label").html(InteractionsTable[0].label)
 | |
| }
 | |
| 
 | |
| function HidePoliceMenu(){
 | |
|   document.getElementById("police_menu").style.animation = "HidePoliceMenu 1s ease";
 | |
|   setTimeout(function(){
 | |
|     $(".police_menu").css("display","none")
 | |
|   },900)
 | |
| }
 | |
| 
 | |
| function ChangePoliceButtons(id){
 | |
|   InSubMenu = true
 | |
|   document.getElementById("police_menu").style.animation = "ChangePoliceMenu 0.8s ease";
 | |
| 
 | |
|   SubNumber = id.split('_').pop();
 | |
|   let Num_elements = InteractionsTable[SubNumber].table.length
 | |
|   let Angle = 144/(Num_elements-1)
 | |
|   let Rot = -108
 | |
| 
 | |
|   setTimeout(function(){
 | |
|     $(".circle_container").html("")
 | |
|     for(let i=0; i<Num_elements; i++){
 | |
|       $(".circle_container").append(`
 | |
|       <button class="circle_element" id="circle_${i}" onclick="SendBackIntButton(id, true)">${InteractionsTable[SubNumber].table[i].icon}</button>
 | |
|       `)
 | |
|       $(".police_menu #circle_"+i).css("transform", "rotate("+Rot+"deg) translate(150px) rotate("+Rot*(-1)+"deg)")
 | |
|       Rot = Rot - Angle
 | |
|     }
 | |
|     ChoosedButton = 0
 | |
|     document.getElementById("circle_"+ChoosedButton).classList.add("hovered_circle")
 | |
|     $(".circles_label").html(InteractionsTable[SubNumber].table[0].label)
 | |
|   },400)
 | |
| 
 | |
|   if (SubNumber == 2){
 | |
| 	$.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"PoliceMenuObject"}))
 | |
|   }
 | |
| }
 | |
| 
 | |
| function BackPoliceMenu(){
 | |
|   InSubMenu = false
 | |
|   let Num_elements = InteractionsTable.length
 | |
|   let Angle = 144/(Num_elements-1)
 | |
|   let Rot = -108
 | |
| 
 | |
|   document.getElementById("police_menu").style.animation = "BackPoliceMenu 0.8s ease";
 | |
| 
 | |
|   setTimeout(function(){
 | |
|     $(".circle_container").html("")
 | |
|     for(let i=0; i<Num_elements; i++){
 | |
|       if (InteractionsTable[i].table == undefined){
 | |
|         $(".circle_container").append(`
 | |
|         <button class="circle_element" id="circle_${i}" onclick="SendBackIntButton(id, false)">${InteractionsTable[i].icon}</button>
 | |
|         `)
 | |
|       }
 | |
|       else{
 | |
|         $(".circle_container").append(`
 | |
|         <button class="circle_element" id="circle_${i}" onclick="ChangePoliceButtons(id)">${InteractionsTable[i].icon}</button>
 | |
|         `)
 | |
|       }
 | |
|       $(".police_menu #circle_"+i).css("transform", "rotate("+Rot+"deg) translate(150px) rotate("+Rot*(-1)+"deg)")
 | |
|       Rot = Rot - Angle
 | |
|     }
 | |
|     ChoosedButton = 0
 | |
|     document.getElementById("circle_"+ChoosedButton).classList.add("hovered_circle")
 | |
|     $(".circles_label").html(InteractionsTable[0].label)
 | |
|   },400)
 | |
| }
 | |
| 
 | |
| function SendBackIntButton(id, value){
 | |
|   let idnumber = id.split('_').pop()
 | |
|   
 | |
|   if (value == true){
 | |
|     let number = +SubNumber + 1
 | |
|     for(let i=0; i<InteractionsTable[SubNumber].table.length; i++){
 | |
|       if (i == idnumber){
 | |
|         $.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"PoliceMenu", id:InteractionsTable[SubNumber].table[i].id, number}))
 | |
|         break
 | |
|       }
 | |
|     }
 | |
|   }
 | |
|   else{
 | |
|     for(let i=0; i<InteractionsTable.length; i++){
 | |
|       if (i == idnumber){
 | |
|         HidePoliceMenu()
 | |
|         $.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"PoliceMenu", id:InteractionsTable[i].id, idnumber}))
 | |
|         break
 | |
|       }
 | |
|     }
 | |
|   }
 | |
|   
 | |
| }
 | |
| 
 | |
| function CreateDressMenu(){
 | |
|   $(".interactions h2").html("Cloak room")
 | |
| 
 | |
|   $(".int_con_sec").html("")
 | |
|   for(let i=0; i<Outfits.length; i++){
 | |
|     $(".int_con_sec").append(`
 | |
|     <div class="col">
 | |
|         <div class="d-flex flex-column justify-content-center align-items-center">
 | |
|             <button class="long_btn mb-3" id="${Outfits[i].id}" onclick="SetDress(id)">${Outfits[i].label}</button>
 | |
|         </div>
 | |
|     </div>
 | |
|     `)
 | |
|     if (Outfits[i].label.length > 17){
 | |
|       $("#"+Outfits[i].id).css("font-size", "15px")
 | |
|     }
 | |
|   }
 | |
|   document.getElementById("interactions").style.animation = "ShowIneractionMenu 0.7s ease";
 | |
|   $(".interactions").css("display","block")
 | |
| }
 | |
| 
 | |
| function HideInteractionMenu(){
 | |
|   document.getElementById("interactions").style.animation = "HideInteractionMenu 0.7s ease";
 | |
|   setTimeout(function(){
 | |
|     $(".interactions").css("display","none")
 | |
|   },680)
 | |
| }
 | |
| 
 | |
| function SetDress(id){
 | |
|   $.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"SetDress", id}))
 | |
| }
 | |
| 
 | |
| function CreateArmoryMenu(){
 | |
|   $(".interactions h2").html("Storage")
 | |
| 
 | |
|   $(".int_con_sec").html("")
 | |
|   $(".int_con_sec").html(`
 | |
| 		<div class="col">
 | |
| 			<div class="d-flex flex-column justify-content-center align-items-center">
 | |
| 			<button class="long_btn mb-3" onclick="Armory()">Armory</button>
 | |
| 			</div>
 | |
| 		</div>
 | |
| 		<div class="col">
 | |
| 			<div class="d-flex flex-column justify-content-center align-items-center">
 | |
| 			<button class="long_btn mb-3" onclick="Buy()">Shop</button>
 | |
| 			</div>
 | |
| 		</div>
 | |
| 	`)
 | |
| 
 | |
|   document.getElementById("interactions").style.animation = "ShowIneractionMenu 0.7s ease";
 | |
|   $(".interactions").css("display","block")
 | |
| }
 | |
| 
 | |
| function Armory(){
 | |
|   Close()
 | |
|   $.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"Armory"}))
 | |
| }
 | |
| 
 | |
| function Buy(){
 | |
|   HideInteractionMenu()
 | |
|   $.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"Buy"}))
 | |
| }
 | |
| 
 | |
| function CreateGarageMenu(){
 | |
|   $(".interactions h2").html("Garage")
 | |
| 
 | |
|   $(".int_con_sec").html("")
 | |
|   for(let i=0; i<Vehicles.length; i++){
 | |
|     $(".int_con_sec").append(`
 | |
|     <div class="col">
 | |
|         <div class="d-flex flex-column justify-content-center align-items-center">
 | |
|             <button class="long_btn mb-3" id="${Vehicles[i].model}-${Vehicles[i].livery}" onclick="SpawnVehicle(id)">${Vehicles[i].label}</button>
 | |
|         </div>
 | |
|     </div>
 | |
|     `)
 | |
|     if (Vehicles[i].label.length > 17){
 | |
|       $("#"+Vehicles[i].model+"-"+Vehicles[i].livery).css("font-size", "15px")
 | |
|     }
 | |
|   }
 | |
|   document.getElementById("interactions").style.animation = "ShowIneractionMenu 0.7s ease";
 | |
|   $(".interactions").css("display","block")
 | |
| }
 | |
| 
 | |
| function SpawnVehicle(id){
 | |
|   model = id.split('-')[0]
 | |
|   livery = id.split('-')[1]
 | |
|   Close()
 | |
|   $.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"SpawnVehicle", model, livery}))
 | |
| }
 | |
| 
 | |
| function RefreshSearchBTN(){
 | |
|   if (InSearchMenu == "people"){
 | |
|     let first_name = document.getElementById("in_first_name").value
 | |
|     let last_name = document.getElementById("in_last_name").value
 | |
| 
 | |
|     if (first_name.length > 0 || last_name.length > 0 ){
 | |
|       document.getElementById("search_btn").disabled = false
 | |
|     }
 | |
|     else{
 | |
|       document.getElementById("search_btn").disabled = true
 | |
|     }
 | |
|   }
 | |
|   else{
 | |
|     let plate = document.getElementById("in_plate").value
 | |
| 
 | |
|     if (plate.length > 0){
 | |
|       document.getElementById("search_btn").disabled = false
 | |
|     }
 | |
|     else{
 | |
|       document.getElementById("search_btn").disabled = true
 | |
|     }
 | |
| 
 | |
|   }
 | |
| }
 | |
| 
 | |
| function ChangeSearch(id){
 | |
|   $(".table_container").html(`
 | |
|     <div class="text-white text-center">
 | |
|       <h2>No results found</h2>
 | |
|     </div>
 | |
|   `)
 | |
|   if (id === "people"){
 | |
|     InSearchMenu = "people"
 | |
|     $("#title_text").html("Person details")
 | |
|     $(".search_in_container").html(`
 | |
|     <div class="row">
 | |
|       <div class="col">
 | |
|         <div class="input-group input-group-lg">
 | |
|           <input type="text" id="in_first_name" class="form-control" placeholder="First name" oninput="RefreshSearchBTN()">
 | |
|         </div>
 | |
|       </div>
 | |
|       <div class="col">
 | |
|         <div class="input-group input-group-lg">
 | |
|           <input type="text" id="in_last_name" class="form-control" placeholder="Last name" oninput="RefreshSearchBTN()">
 | |
|         </div>
 | |
|       </div>
 | |
|     </div>
 | |
|     `)
 | |
|     $("#fcell").html("First name")
 | |
|     $("#scell").html("Last name")
 | |
|     $("#tcell").html("Sex")
 | |
|     document.getElementById("search_btn").disabled = true
 | |
|   }
 | |
|   else{
 | |
|     InSearchMenu = "vehicle"
 | |
|     $("#title_text").html("Vehicle details")
 | |
|     $(".search_in_container").html(`
 | |
|     <div class="input-group input-group-lg float-end">
 | |
|       <input type="text" id="in_plate" class="form-control" placeholder="Plate" oninput="RefreshSearchBTN()">
 | |
|     </div>
 | |
|     `)
 | |
|     $("#fcell").html("Plate")
 | |
|     $("#scell").html("Model")
 | |
|     $("#tcell").html("Type")
 | |
|     document.getElementById("search_btn").disabled = true
 | |
|   }
 | |
| }
 | |
| 
 | |
| function RefreshDetailsModal(id){
 | |
|   MDTTableNum = id
 | |
|   if (InSearchMenu == "people"){
 | |
|     if (JailStatus === false){
 | |
|         $("#details_modal .datas_container").html(`
 | |
|         <div class="row mt-2">
 | |
|           <div class="col">
 | |
|         <div class="img_container">
 | |
|               
 | |
|         </div>
 | |
|         <div class="text-center mt-3">
 | |
|           <h4><b>Name:</b> ${MDTTable[id].firstname} ${MDTTable[id].lastname}</h4>
 | |
|           <h4><b>Sex:</b> ${MDTTable[id].sex}</h4>
 | |
|           <h4><b>Birth:</b> ${MDTTable[id].dateofbirth}</h4>
 | |
|         </div>
 | |
|           </div>
 | |
|           <div class="col">
 | |
|               <h3><b>Licences</b></h3>
 | |
|               <div class="licences_container mb-3">
 | |
|   
 | |
|               </div>
 | |
|               <h3><b>Actions</b></h3>
 | |
|               <button class="details_btn px-3 m-2" id="jail" data-bs-dismiss="modal" data-bs-toggle="modal" data-bs-target="#jail_reason_modal" disabled>Jail</button>
 | |
|               <button class="details_btn px-3 m-2" onclick="SendUnjail()" data-bs-dismiss="modal" disabled>Unjail</button>
 | |
|               <button class="details_btn px-3 m-2" id="fine" data-bs-dismiss="modal" data-bs-toggle="modal" data-bs-target="#fine_modal">Give fine</button>
 | |
|               <br>
 | |
|               <button class="details_btn px-3 m-2" id="show_fines" onclick="SendFines()" data-bs-dismiss="modal" data-bs-toggle="modal" data-bs-target="#player_fines_modal">Show fines</button>
 | |
|               <button class="details_btn px-3 m-2" id="show_incidents" onclick="GetIncidents('${MDTTable[id].firstname} ${MDTTable[id].lastname}', true)" data-bs-dismiss="modal" data-bs-toggle="modal" data-bs-target="#player_incidents_modal">Incidents</button>
 | |
|           </div>
 | |
|       </div>
 | |
|       `) 
 | |
|     }
 | |
|     else if (MDTTable[id].jail_time > 0){
 | |
|         $("#details_modal .datas_container").html(`
 | |
|         <div class="row mt-2">
 | |
|           <div class="col">
 | |
|         <div class="img_container">
 | |
|               
 | |
|         </div>
 | |
|         <div class="text-center mt-3">
 | |
|           <h4><b>Name:</b> ${MDTTable[id].firstname} ${MDTTable[id].lastname}</h4>
 | |
|           <h4><b>Sex:</b> ${MDTTable[id].sex}</h4>
 | |
|           <h4><b>Birth:</b> ${MDTTable[id].dateofbirth}</h4>
 | |
|         </div>
 | |
|           </div>
 | |
|           <div class="col">
 | |
|               <h3><b>Licences</b></h3>
 | |
|               <div class="licences_container mb-3">
 | |
|   
 | |
|               </div>
 | |
|               <h3><b>Actions</b></h3>
 | |
|               <button class="details_btn px-3 m-2" id="jail" data-bs-dismiss="modal" data-bs-toggle="modal" data-bs-target="#jail_reason_modal" disabled>Jail</button>
 | |
|               <button class="details_btn px-3 m-2" onclick="SendUnjail()" data-bs-dismiss="modal">Unjail</button>
 | |
|               <button class="details_btn px-3 m-2" id="fine" data-bs-dismiss="modal" data-bs-toggle="modal" data-bs-target="#fine_modal">Give fine</button>
 | |
|               <br>
 | |
|               <button class="details_btn px-3 m-2" id="show_fines" onclick="SendFines()" data-bs-dismiss="modal" data-bs-toggle="modal" data-bs-target="#player_fines_modal">Show fines</button>
 | |
|               <button class="details_btn px-3 m-2" id="show_incidents" onclick="GetIncidents('${MDTTable[id].firstname} ${MDTTable[id].lastname}', true)" data-bs-dismiss="modal" data-bs-toggle="modal" data-bs-target="#player_incidents_modal">Incidents</button>
 | |
|           </div>
 | |
|       </div>
 | |
|       `) 
 | |
|     }
 | |
|     else{
 | |
|         $("#details_modal .datas_container").html(`
 | |
|         <div class="row mt-2">
 | |
|           <div class="col">
 | |
|         <div class="img_container">
 | |
|             
 | |
|         </div>
 | |
|               <div class="text-center mt-3">
 | |
|                   <h4><b>Name:</b> ${MDTTable[id].firstname} ${MDTTable[id].lastname}</h4>
 | |
|                   <h4><b>Sex:</b> ${MDTTable[id].sex}</h4>
 | |
|                   <h4><b>Birth:</b> ${MDTTable[id].dateofbirth}</h4>
 | |
|               </div>
 | |
|           </div>
 | |
|           <div class="col">
 | |
|               <h3><b>Licences</b></h3>
 | |
|               <div class="licences_container mb-3">
 | |
|   
 | |
|               </div>
 | |
|               <h3><b>Actions</b></h3>
 | |
|               <button class="details_btn px-3 m-2" id="jail" data-bs-dismiss="modal" data-bs-toggle="modal" data-bs-target="#jail_reason_modal">Jail</button>
 | |
|               <button class="details_btn px-3 m-2" onclick="SendUnjail()" disabled>Unjail</button>
 | |
|               <button class="details_btn px-3 m-2" id="fine" data-bs-dismiss="modal" data-bs-toggle="modal" data-bs-target="#fine_modal">Give fine</button>
 | |
|               <br>
 | |
|               <button class="details_btn px-3 m-2" id="show_fines" onclick="SendFines()" data-bs-dismiss="modal" data-bs-toggle="modal" data-bs-target="#player_fines_modal">Show fines</button>
 | |
|               <button class="details_btn px-3 m-2" id="show_incidents" onclick="GetIncidents('${MDTTable[id].firstname} ${MDTTable[id].lastname}', true)" data-bs-dismiss="modal" data-bs-toggle="modal" data-bs-target="#player_incidents_modal">Incidents</button>
 | |
|             </div>
 | |
|       </div>
 | |
|       `)
 | |
|     }
 | |
|     CreateNotes(true)
 | |
|     
 | |
|     let TargetIdentifier = MDTTable[MDTTableNum].identifier
 | |
|     $.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"MDTUserAction", type:"getlicences", TargetIdentifier}))
 | |
|   }
 | |
|   else{
 | |
|       $("#details_modal .datas_container").html(`
 | |
|       <div class="row">
 | |
|         <div class="col">
 | |
|             <div class="text-center mt-3">
 | |
|                 <h4><b>Plate:</b> ${MDTTable[id].plate}</h4>
 | |
|                 <h4><b>Model:</b> ${MDTTable[id].model}</h4>
 | |
|                 <h4><b>Type:</b> ${MDTTable[id].class}</h4>
 | |
|                 <h4><b>Owner:</b> ${MDTTable[id].owner}</h4>
 | |
|             </div>
 | |
|             <button class="details_btn mx-auto d-block px-3" id="show_incidents" onclick="GetIncidents('${MDTTable[id].plate}', false)" data-bs-dismiss="modal" data-bs-toggle="modal" data-bs-target="#player_incidents_modal">Incidents</button>
 | |
|         </div>
 | |
|         <div class="col img_container">
 | |
|           
 | |
|         </div>
 | |
|       </div>
 | |
|       `)
 | |
|     CreateNotes(true)
 | |
|   }
 | |
|   CreateIMG()
 | |
| }
 | |
| 
 | |
| function CreateIMG(){
 | |
| 	if (MDTTable[MDTTableNum].photo != null && MDTTable[MDTTableNum].photo.length > 0){
 | |
| 		$(".img_container").html(`
 | |
| 		<img class="veh_img mx-auto d-block mt-3" src="${MDTTable[MDTTableNum].photo}"></img>
 | |
| 		<button class="edit_img mx-auto d-block" data-bs-dismiss="modal" data-bs-toggle="modal" data-bs-target="#add_img_modal"><i class="fa-solid fa-pen"></i></button>
 | |
| 	  	`)
 | |
| 	}
 | |
| 	else{
 | |
| 		$(".img_container").html(`
 | |
| 		<button class="veh_add_img mx-auto d-block mt-3" data-bs-dismiss="modal" data-bs-toggle="modal" data-bs-target="#add_img_modal" ><i class="fa-solid fa-plus"></i></button>
 | |
| 	  	`)
 | |
| 	}
 | |
| }
 | |
| 
 | |
| function AddIMG(){
 | |
|   let Plate = MDTTable[MDTTableNum].plate
 | |
|   let Url = document.getElementById("in_add_img").value
 | |
| 
 | |
|   $(".img_container").html(`
 | |
|     <img class="veh_img mx-auto d-block mt-3" src="${Url}"></img>
 | |
|     <button class="edit_img mx-auto d-block" data-bs-dismiss="modal" data-bs-toggle="modal" data-bs-target="#add_img_modal"><i class="fa-solid fa-pen"></i></button>
 | |
|   `)
 | |
| 
 | |
|   if (InSearchMenu == "people"){
 | |
|     let TargetIdentifier = MDTTable[MDTTableNum].identifier
 | |
|     $.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"MDTUserAction", type:"edit_photo", TargetIdentifier, Url}))
 | |
|   }
 | |
|   else{
 | |
|     $.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"MDTVehicleAction", type:"edit_photo", Plate, Url}))
 | |
|   }
 | |
|   
 | |
|   document.getElementById("in_add_img").value = ""
 | |
|   
 | |
|   setTimeout(function(){
 | |
|     DoSearch()
 | |
|   }, 1000)
 | |
| }
 | |
| 
 | |
| function CreateSearchElements(){
 | |
|   $(".table_container").html("")
 | |
|   if (MDTTable.length > 0){
 | |
|     if (InSearchMenu == "people"){
 | |
|       for(let i=0; i<MDTTable.length; i++){
 | |
|         $(".table_container").append(`
 | |
|           <div class="table_element">
 | |
| 		  <div class="background_effect"></div>
 | |
|               <table class="table table-borderless">
 | |
|                   <tbody>
 | |
|                       <tr>
 | |
|                           <th class="cell align-middle">${MDTTable[i].firstname}</th>
 | |
|                           <th class="cell align-middle">${MDTTable[i].lastname}</th>
 | |
|                           <th class="cell align-middle">${MDTTable[i].sex}</th>
 | |
|                           <th class="cell align-middle"><button class="details_btn px-2" id="${i}" data-bs-toggle="modal" data-bs-target="#details_modal" onclick="RefreshDetailsModal(id)">More details</button></th>
 | |
|                       </tr>
 | |
|                   </tbody>
 | |
|               </table>
 | |
|           </div>
 | |
|         `)
 | |
|       }
 | |
|     }
 | |
|     else{
 | |
|       for(let i=0; i<MDTTable.length; i++){
 | |
|         $(".table_container").append(`
 | |
|           <div class="table_element">
 | |
|               <table class="table table-borderless">
 | |
|                   <tbody>
 | |
|                       <tr>
 | |
|                           <th class="cell align-middle">${MDTTable[i].plate}</th>
 | |
|                           <th class="cell align-middle">${MDTTable[i].model}</th>
 | |
|                           <th class="cell align-middle">${MDTTable[i].class}</th>
 | |
|                           <th class="cell align-middle"><button class="details_btn px-2" id="${i}" data-bs-toggle="modal" data-bs-target="#details_modal" onclick="RefreshDetailsModal(id)">More details</button></th>
 | |
|                       </tr>
 | |
|                   </tbody>
 | |
|               </table>
 | |
|           </div>
 | |
|         `)
 | |
|       }
 | |
|     }
 | |
|   }
 | |
|   else{
 | |
|     $(".table_container").append(`
 | |
|     <div class="text-white text-center">
 | |
|       <h2>No results found</h2>
 | |
|     </div>
 | |
|     `)
 | |
|   }
 | |
| }
 | |
| 
 | |
| function CreateLicences(){
 | |
|     $(".licences_container").html("")
 | |
| 
 | |
|     if (PlayerLicences == "false"){
 | |
|       $(".licences_container").html(`
 | |
|       <div class="text-white text-center mt-3">
 | |
|         <h4>The player in not online</h4>
 | |
|       </div>
 | |
|       `)
 | |
|     }
 | |
|     else if(PlayerLicences == "none"){
 | |
|       $(".licences_container").html(`
 | |
|       <div class="text-white text-center mt-3">
 | |
|         <h4>No licences found</h4>
 | |
|       </div>
 | |
|       `)
 | |
|     }
 | |
|     else{
 | |
|       if (PlayerLicences.length != 0){
 | |
|         for(let i=0; i<PlayerLicences.length; i++){
 | |
|           $(".licences_container").append(`
 | |
|           <div class="licence_element px-2">${PlayerLicences[i].label}<button class="licence_btn" id="licence_${i}" onclick="RemoveLicence(id)"><i class="fa-solid fa-x"></i></button></div>
 | |
|           `)
 | |
|         }
 | |
|       }
 | |
|       else{
 | |
|         $(".licences_container").html(`
 | |
|         <div class="text-white text-center mt-3">
 | |
|           <h4>No licences found</h4>
 | |
|         </div>
 | |
|         `)
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     if (Licenses.length != 0){
 | |
|       for(let i=0; i<Licenses.length; i++){
 | |
|         let have = false
 | |
|         for(let _i=0; _i<PlayerLicences.length; _i++){
 | |
|           if (PlayerLicences[_i].type == Licenses[i][0]){
 | |
|             have = true
 | |
|           }
 | |
|         }
 | |
|         if (have == false && Job.rank >= LicenseRank){
 | |
|           $(".licences_container").append(`
 | |
|           <div class="licence_element add px-2">${Licenses[i][1]}<button class="licence_btn" id="addlicence_${i}" onclick="AddLicence(id,'${Licenses[i][0]}', '${Licenses[i][1]}')"><i class="fa-solid fa-plus"></i></button></div>
 | |
|           `)
 | |
|         }
 | |
|       }
 | |
|     }
 | |
|     
 | |
|     PressedLicence[0] = 0
 | |
|     PressedLicence[1] = 0
 | |
| }
 | |
| 
 | |
| function AddLicence(id, license, label){
 | |
|   let TargetIdentifier = MDTTable[MDTTableNum].identifier
 | |
|   let LicenceType = license
 | |
| 
 | |
|   for(let i=0; i<PlayerLicences.length; i++){
 | |
|     $("#addlicence_"+i).css("color", "white")
 | |
|   }
 | |
| 
 | |
|   if (PressedLicence[0] == 0){
 | |
|     $("#"+id).css("color", "green")
 | |
|     PressedLicence[0] = 1
 | |
|     PressedLicence[1] = id
 | |
|   }
 | |
|   else if (PressedLicence[0] == 1 && PressedLicence[1] == id){
 | |
|     $.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"MDTUserAction", type:"addlicence", TargetIdentifier, LicenceType}))
 | |
|     if (PlayerLicences == "false" || PlayerLicences == "none"){
 | |
|       PlayerLicences = []
 | |
|     }
 | |
|     PlayerLicences.push({'label' : label, 'type' : license})
 | |
|     CreateLicences()
 | |
|   }
 | |
|   else if (PressedLicence[0] == 1){
 | |
|     $("#"+id).css("color", "green")
 | |
|     PressedLicence[1] = id
 | |
|   }
 | |
| }
 | |
| 
 | |
| function RemoveLicence(id){
 | |
|   let TargetIdentifier = MDTTable[MDTTableNum].identifier
 | |
|   let num = id.split('_')[1]
 | |
|   let LicenceType = PlayerLicences[num].type
 | |
| 
 | |
|   for(let i=0; i<PlayerLicences.length; i++){
 | |
|     $("#licence_"+i).css("color", "white")
 | |
|   }
 | |
| 
 | |
|   if (PressedLicence[0] == 0){
 | |
|     $("#"+id).css("color", "red")
 | |
|     PressedLicence[0] = 1
 | |
|     PressedLicence[1] = id
 | |
|   }
 | |
|   else if (PressedLicence[0] == 1 && PressedLicence[1] == id){
 | |
|     $.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"MDTUserAction", type:"removelicence", TargetIdentifier, LicenceType}))
 | |
|     delete PlayerLicences.splice(num, 1)
 | |
|     CreateLicences()
 | |
|   }
 | |
|   else if (PressedLicence[0] == 1){
 | |
|     $("#"+id).css("color", "red")
 | |
|     PressedLicence[1] = id
 | |
|   }
 | |
| }
 | |
| 
 | |
| function DoSearch(){
 | |
|   if (InSearchMenu == "people"){
 | |
|     value1 = document.getElementById("in_first_name").value
 | |
|     value2 = document.getElementById("in_last_name").value
 | |
| 
 | |
|     if (value1.length > 0 && value2.length === 0){
 | |
|       SearchType = "firstname"
 | |
|     }
 | |
|     else if(value1.length === 0 && value2.length > 0){
 | |
|       SearchType = "lastname"
 | |
|     }
 | |
|     else if(value1.length > 0 && value2.length > 0){
 | |
|       SearchType = "fullname"
 | |
|     }
 | |
| 
 | |
|     $.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"MDTGetData", type:SearchType, value1, value2, value3:'search'}))
 | |
|   }
 | |
|   else{
 | |
|     SearchType = "plate"
 | |
|     value1 = document.getElementById("in_plate").value
 | |
|     $.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"MDTGetData", type:SearchType, value1, value3:'search'}))
 | |
|   }
 | |
| }
 | |
| 
 | |
| function CreateShop(value){
 | |
|   $(".shop").css("display", "block")
 | |
|   setTimeout(function(){
 | |
|     $(".shop").css("scale", "1")
 | |
|   }, 50)
 | |
| 
 | |
|   if (value == true){
 | |
|     $(".slider_btn").css("display", "block")
 | |
|     $("#shop_back").css("display", "block")
 | |
|   }
 | |
|   else{
 | |
|     $(".slider_btn").css("display", "none")
 | |
|     $("#shop_back").css("display", "none")
 | |
|   }
 | |
| 
 | |
|   $(".shop_elements_container").html("")
 | |
|   for(let i=0; i<ShopItems.length; i++){
 | |
|     $(".shop_elements_container").append(`
 | |
|     <div class="col">
 | |
|         <div class="d-flex flex-column justify-content-center align-items-center">
 | |
|             <div class="shop_element">
 | |
|                 <div class="price">${ShopItems[i].price+MoneyForm}</div>
 | |
|                 <img class="mx-auto d-block" src="assets/${ShopItems[i].item}.png"></img>
 | |
|                 <h4>${ShopItems[i].label}</h4>
 | |
|                 <div class="mx-auto d-block">
 | |
|                     <div class="input-group input-group-lg num">
 | |
|                         <input class="form-control" id="${ShopItems[i].item}" type="text" autofocus="autofocus" value="0" oninput="setlenght(id)" onkeypress="return isNumber(event)">
 | |
|                     </div>
 | |
|                 </div>
 | |
|             </div>
 | |
|         </div>
 | |
|     </div>
 | |
|     `)
 | |
|   }
 | |
| }
 | |
| 
 | |
| function CloseShop(){
 | |
|   $(".shop").css("scale", "0")
 | |
|   setTimeout(function(){
 | |
|     $(".shop").css("display", "none")
 | |
|   }, 600)
 | |
| }
 | |
| 
 | |
| function changemoney(){
 | |
|   let AllMoney = 0
 | |
|   for (let i = 0; i < ShopItems.length; i++) {
 | |
|     AllMoney += ShopItems[i].price * document.getElementById(ShopItems[i].item).value
 | |
|   }
 | |
|   $('.checkout_container h3').html('TOTAL: '+AllMoney+'<money>'+MoneyForm+'</money>')
 | |
| }
 | |
| 
 | |
| function BuyInShop(){
 | |
|   BuyItems = []
 | |
|   for (let i = 0; i < ShopItems.length; i++) {
 | |
|     if (document.getElementById(ShopItems[i].item).value > 0){
 | |
|       BuyItems.push([ShopItems[i].item, document.getElementById(ShopItems[i].item).value, ShopItems[i].price, ShopItems[i].label])
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   if (BuyItems.length > 0){
 | |
|     let Element = document.getElementById("slider_shop")
 | |
|     let Left = Element.offsetLeft
 | |
|     if (Left == 0){
 | |
|       $.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"BuyInShop", BuyItems, paytype:"money"}))
 | |
|     }
 | |
|     else{
 | |
|       $.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"BuyInShop", BuyItems, paytype:"bank"}))
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   setTimeout(function(){
 | |
|     for (let i = 0; i < ShopItems.length; i++) {
 | |
|       document.getElementById(ShopItems[i].item).value = 0
 | |
|     }
 | |
|     changemoney()
 | |
|   }, 200)
 | |
| }
 | |
| 
 | |
| function ChangeSliderbtn(id){
 | |
|   if (id == "shop_slider"){
 | |
|     let Element = document.getElementById("slider_shop")
 | |
|     let Left = Element.offsetLeft
 | |
|     if (Left == 0){
 | |
|       Element.style.left = "50%"
 | |
|     }
 | |
|     else{
 | |
|       Element.style.left = "0%"
 | |
|     }
 | |
|   }
 | |
|   else if (id == "MDT_slider"){
 | |
|     let Element = document.getElementById("slider_MDT")
 | |
|     let Left = Element.offsetLeft
 | |
|     if (Left == 0){
 | |
|       Element.style.left = "50%"
 | |
|       ChangeSearch("vehicles")
 | |
|     }
 | |
|     else{
 | |
|       Element.style.left = "0%"
 | |
|       ChangeSearch("people")
 | |
|     }
 | |
|   }
 | |
| }
 | |
| 
 | |
| function isNumber(evt) {
 | |
|   evt = (evt) ? evt : window.event
 | |
|   var charCode = (evt.which) ? evt.which : evt.keyCode
 | |
|   if (charCode > 31 && (charCode < 48 || charCode > 57)) {
 | |
|       return false
 | |
|   }
 | |
|   return true
 | |
| }
 | |
| 
 | |
| function setlenght(id) {
 | |
|   if (document.getElementById(id).value.length === 2 && document.getElementById(id).value[0] == 0){
 | |
|     document.getElementById(id).value = document.getElementById(id).value.substring(1)
 | |
|   }
 | |
|   if (document.getElementById(id).value.length === 4){
 | |
|     document.getElementById(id).value = document.getElementById(id).value.substring(1)
 | |
|   }
 | |
|   if (document.getElementById(id).value.length === 0){
 | |
|     document.getElementById(id).value = 0
 | |
|   }
 | |
|   changemoney()
 | |
|   return true
 | |
| }
 | |
| 
 | |
| function SwitchPage(id){
 | |
|   $("#camera").css("border", "none")
 | |
|   $("#search").css("border", "none")
 | |
|   $("#sos_alert").css("border", "none")
 | |
|   $("#home").css("border", "none")
 | |
|   $("#incidents").css("border", "none")
 | |
|   $("#"+id).css("border-bottom", "solid 3px var(--main_color)")
 | |
| 
 | |
|   if (id == "home"){
 | |
|     MoveBackLogo()
 | |
|     $(".page_data_container").html(`
 | |
|     <div class="home_label mt-3">
 | |
|         <div class="row">
 | |
|             <div class="col ms-3 mt-1" id="job_name"></div>
 | |
|             <div class="col-2 mt-1" id="home_date">date 213 23</div>
 | |
|             <div class="col me-3 mt-1 text-end" id="street"></div>
 | |
|         </div>
 | |
|     </div>
 | |
| 
 | |
|     <div class="row mt-3 mx-2">
 | |
|         <div class="col">
 | |
|             <div class="home_stat_con mx-auto d-block">
 | |
|                 <div class="label">Cops</div>
 | |
|                 <div class="main" id="available_cops">0</div>
 | |
|             </div>
 | |
|         </div>
 | |
|         <div class="col">
 | |
|             <div class="home_stat_con mx-auto d-block">
 | |
|                 <div class="label">Rank</div>
 | |
|                 <div class="main small" id="player_rang"></div>
 | |
|             </div>
 | |
|         </div>
 | |
|         <div class="col">
 | |
|             <div class="home_stat_con mx-auto d-block">
 | |
|                 <div class="label">Salary</div>
 | |
|                 <div class="main" id="salary">100$</div>
 | |
|             </div>
 | |
|         </div>
 | |
|     </div>
 | |
| 
 | |
|     <div class="welcome_text mt-3">Welcome,<br> <span class="hand_written">Name</span></div>
 | |
|       
 | |
|     `)
 | |
|     InsertHomeData()
 | |
|   }
 | |
|   else if (id == "search"){
 | |
|     MoveLogo()
 | |
|     $(".page_data_container").html(`
 | |
|         <div class="slider_btn" id="MDT_slider" onclick="ChangeSliderbtn(id)">
 | |
|             <div class="slider" id="slider_MDT"></div>
 | |
|                 <div class="row button_container">
 | |
|                     <div class="col"><i class="fa-solid fa-users"></i></div>
 | |
|                     <div class="col"><i class="fa-solid fa-car"></i></div>
 | |
|                 </div>
 | |
|         </div>
 | |
|         <div class="row row-cols-1">
 | |
|         <div class="col">
 | |
|               <div class="d-flex align-items-center justify-content-end" style="padding-top: 10px; padding-bottom: 20px;">
 | |
|                   <div class="search_in_container">
 | |
|                     <div class="row">
 | |
|                       <div class="col">
 | |
|                         <div class="input-group input-group-lg">
 | |
|                           <input type="text" id="in_first_name" class="form-control" placeholder="First name" oninput="RefreshSearchBTN()">
 | |
|                         </div>
 | |
|                       </div>
 | |
|                       <div class="col">
 | |
|                         <div class="input-group input-group-lg">
 | |
|                           <input type="text" id="in_last_name" class="form-control" placeholder="Last name" oninput="RefreshSearchBTN()">
 | |
|                         </div>
 | |
|                       </div>
 | |
|                     </div>
 | |
|                   </div>
 | |
|                   <button class="search_btn mx-3 float-end" id="search_btn" disabled onclick="DoSearch()">Search</button>
 | |
|               </div>
 | |
|         </div>
 | |
|         <div class="col">
 | |
|             <div class="table_header">
 | |
|                 <table class="table table-borderless">
 | |
|                     <tbody>
 | |
|                         <tr>
 | |
|                             <th class="cell align-middle" id="fcell">First name</th>
 | |
|                             <th class="cell align-middle" id="scell">Last name</th>
 | |
|                             <th class="cell align-middle" id="tcell">Sex</th>
 | |
|                             <th class="cell align-middle">Action</th>
 | |
|                         </tr>
 | |
|                     </tbody>
 | |
|                 </table>
 | |
|             </div>
 | |
|             <div class="table_container">
 | |
|               <div class="text-white text-center">
 | |
|                 <h2>No results found</h2>
 | |
|               </div>
 | |
|             </div>
 | |
|         </div>
 | |
|     </div>
 | |
|     `)
 | |
|   }
 | |
|   else if (id == "camera"){
 | |
|     MoveLogo()
 | |
|     $(".page_data_container").html(`
 | |
|       <div class="cam_shadow">
 | |
|       </div>
 | |
|       <div class="row mx-3 mt-3 cam_container">
 | |
|       </div>
 | |
|     `)
 | |
|     CreateCameraElements()
 | |
|   }
 | |
|   else if (id == "sos_alert"){
 | |
|     MoveLogo()
 | |
|     $.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"MDTCitizenCall", type:"getcalls"}))
 | |
|     $(".page_data_container").html(`
 | |
|       <div class="cam_shadow">
 | |
|       </div>
 | |
|       <div class="alert_container_out mt-3">
 | |
|         <div class="alert_container row row-cols-2 p-4">
 | |
|                           
 | |
|         </div>
 | |
|       </div>
 | |
|     `)
 | |
|   }
 | |
|   else if (id == "incidents"){
 | |
|     MoveLogo()
 | |
|     $.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"MDTIncident"}))
 | |
|     $(".page_data_container").html(`
 | |
|       <div class="title my-2">INCIDENTS</div>
 | |
| 
 | |
|       <div class="small_con">
 | |
|           <div class="big_label mt-2">INCIDENTS</div>
 | |
|           <div class="input-group input-group-lg mt-2" style="width: 310px;">
 | |
|               <input type="text" id="search_incidents" class="form-control text-center fw-normal rounded typeahead"  data-provide="typeahead" placeholder="Search" onkeyup="SearchIncidents(id)">
 | |
|           </div>
 | |
|           <div class="incidents_con mt-3">
 | |
| 
 | |
|           </div>
 | |
|       </div>
 | |
| 
 | |
|       <div class="big_con">
 | |
|           <div class="light"></div>
 | |
|           <div class="big_label mt-2" id="incident_main_label">CREATE</div>
 | |
| 
 | |
|           <div class="row mx-2 mt-3">
 | |
|               <div class="col">
 | |
|                   <div class="small_label">TITLE</div>
 | |
|                   <div class="input-group input-group-lg mt-2" style="width: 238px;">
 | |
|                       <input type="text" id="incident_title" class="form-control text-center" placeholder="Title" oninput="RefreshAddToInvolvedBTN(id)">
 | |
|                   </div>
 | |
| 
 | |
|                   <div class="small_label mt-4">VEHICLE INVOLVED</div>
 | |
|                   <div class="row m-0 p-0">
 | |
|                       <div class="col m-0 p-0">
 | |
|                           <div class="input-group input-group-lg mt-2" style="width: 197px;">
 | |
|                               <input type="text" id="add_involved_vehicle" class="form-control text-center fw-normal typeahead rounded vehicle_typeahead" data-provide="vehicle_typeahead" placeholder="Search" oninput="RefreshAddToInvolvedBTN(id)">
 | |
|                           </div>
 | |
|                       </div>
 | |
|                       <div class="col m-0 p-0">
 | |
|                           <button class="add_btn mt-2" id="add_vehicle" disabled onclick="AddToInvolved(id)"><i class="fa-solid fa-plus"></i></button>
 | |
|                       </div>
 | |
|                   </div>
 | |
|                   <div class="involved_con empty mt-2" id="involvedcon_0">
 | |
|                       
 | |
|                   </div>
 | |
|               </div>
 | |
|               <div class="col">
 | |
|                   <div class="small_label">PEOPLE INVOLVED</div>
 | |
|                   <div class="row m-0 p-0">
 | |
|                       <div class="col m-0 p-0">
 | |
|                           <div class="input-group input-group-lg mt-2" style="width: 197px;">
 | |
|                               <input type="text" id="add_involved_people" class="form-control text-center fw-normal rounded typeahead people_typeahead" data-provide="people_typeahead" placeholder="Search" oninput="RefreshAddToInvolvedBTN(id)">
 | |
|                           </div>
 | |
|                       </div>
 | |
|                       <div class="col m-0 p-0">
 | |
|                           <button class="add_btn mt-2" id="add_people" disabled onclick="AddToInvolved(id)"><i class="fa-solid fa-plus"></i></button>
 | |
|                       </div>
 | |
|                   </div>
 | |
|                   <div class="involved_con mt-2 empty" id="involvedcon_1">
 | |
| 
 | |
|                   </div>
 | |
| 
 | |
|                   <div class="small_label mt-4">SOCIETY INVOLVED</div>
 | |
|                   <div class="row m-0 p-0">
 | |
|                       <div class="col m-0 p-0">
 | |
|                           <div class="input-group input-group-lg mt-2" style="width: 197px;">
 | |
|                               <input type="text" id="add_involved_society" class="form-control text-center fw-normal rounded" placeholder="Search" oninput="RefreshAddToInvolvedBTN(id)">
 | |
|                           </div>
 | |
|                       </div>
 | |
|                       <div class="col m-0 p-0">
 | |
|                           <button class="add_btn mt-2" id="add_society" disabled onclick="AddToInvolved(id)"><i class="fa-solid fa-plus"></i></button>
 | |
|                       </div>
 | |
|                   </div>
 | |
|                   <div class="involved_con empty mt-2" id="involvedcon_2">
 | |
|                       
 | |
|                   </div>
 | |
|               </div>
 | |
|           </div>
 | |
| 
 | |
|           <div class="wide_label">CONTENT</div>
 | |
|           <div class="input-group description">
 | |
|               <textarea class="form-control" id="incident_content" placeholder=""></textarea>
 | |
|           </div>
 | |
|           <div class="row bottom_btn_con">
 | |
|               <div class="col p-0">
 | |
|                   <button class="create_incident px-3" id="create_incident" disabled onclick="CreateIncident()">CREATE</button>
 | |
|               </div>
 | |
|           </div>
 | |
|       </div>
 | |
|     `)
 | |
|     Involveds = [[],[],[]]
 | |
|     RefreshInvolveds()
 | |
|     $(".MDT .big_con .light").css("background-color", "#94969e")
 | |
|   }
 | |
| }
 | |
| 
 | |
| function MoveLogo(){
 | |
|   $(".LSDP_logo_img").css({
 | |
|     "height": "80px",
 | |
|     "left": "15.2px",
 | |
|   })
 | |
| }
 | |
| 
 | |
| function MoveBackLogo(){
 | |
|   $(".LSDP_logo_img").css({
 | |
|     "height": "200px",
 | |
|     "left": "870px",
 | |
|   })
 | |
| }
 | |
| 
 | |
| function CreateCameraElements(){
 | |
|   $(".cam_container").html("")
 | |
|   for (let i = 0; i < Cameras.length; i++) {
 | |
|     if (CamStatus[i] == true){
 | |
|       $(".cam_container").append(`
 | |
|       <div class="col">
 | |
|           <div class="camera_element mx-auto d-block">
 | |
|           <div class="background_effect"></div>
 | |
|               <img class="mx-auto d-block" src="${Cameras[i].img}"></img>
 | |
|               <h4>${Cameras[i].label}</h4>
 | |
|               <button class="details_btn px-3 mt-3 mx-auto d-block" id="cam_${i}" onclick="SendCameraBack(id)">Show live</button>
 | |
|           </div>
 | |
|       </div>
 | |
|     `)
 | |
|     }
 | |
|     else{
 | |
|       $(".cam_container").append(`
 | |
|       <div class="col">
 | |
|           <div class="camera_element mx-auto d-block">
 | |
|           <div class="background_effect"></div>
 | |
|               <img class="mx-auto d-block" src="${Cameras[i].img}"></img>
 | |
|               <h4>${Cameras[i].label}</h4>
 | |
|               <button class="details_btn px-3 mt-3 mx-auto d-block" disabled id="cam_${i}" onclick="SendCameraBack(id)">Show live</button>
 | |
|           </div>
 | |
|       </div>
 | |
|     `)
 | |
|     }
 | |
|     
 | |
|   }
 | |
| }
 | |
| 
 | |
| function SendCameraBack(id){
 | |
|   Close()
 | |
|   cameraid = +id.split('_').pop() + +1
 | |
|   $.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"ActivateCamera", cameraid}))
 | |
| }
 | |
| 
 | |
| function CloseMDT(){
 | |
|   OpenedMDT = false
 | |
|   document.getElementById("MDT").style.animation = "Hide_panel 0.5s ease";
 | |
|   setTimeout(function(){
 | |
|     $(".MDT").css("display","none")
 | |
|   }, 400)
 | |
| }
 | |
| 
 | |
| function CloseCitizenCall(){
 | |
|   document.getElementById("create_citizen_call").style.animation = "Hide_panel 0.5s ease";
 | |
|   setTimeout(function(){
 | |
|     $("#create_citizen_call").css("display","none")
 | |
|   }, 400)
 | |
| }
 | |
| 
 | |
| function CloseAreaLock(){
 | |
|   document.getElementById("area_lock").style.animation = "Hide_panel 0.5s ease";
 | |
|   setTimeout(function(){
 | |
|     $("#area_lock").css("display","none")
 | |
|   }, 400)
 | |
| }
 | |
| 
 | |
| function ShowCamMenu(){
 | |
|   $(".cam_label").html(CamLabel)
 | |
|   $(".cam_menu").css("display", "block")
 | |
| }
 | |
| 
 | |
| function HideCamMenu(){
 | |
|   $(".cam_menu").css("display", "none")
 | |
| }
 | |
| 
 | |
| function RefreshJailBTN(){
 | |
|   let time = document.getElementById("in_jail_time").value
 | |
|   let reason = document.getElementById("in_jail_reason").value
 | |
| 
 | |
|   if (time.length > 0 && reason.length > 0){
 | |
|     document.getElementById("jail_btn").disabled = false
 | |
|   }
 | |
|   else{
 | |
|     document.getElementById("jail_btn").disabled = true
 | |
|   }
 | |
| }
 | |
| 
 | |
| function SendJail(){
 | |
|   let time = document.getElementById("in_jail_time").value
 | |
|   let reason = document.getElementById("in_jail_reason").value
 | |
| 
 | |
|   if (OpenFromJail == false){
 | |
|     let TargetIdentifier = MDTTable[MDTTableNum].identifier
 | |
|     $.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"MDTUserAction", type:"jail_mdt", TargetIdentifier, time, reason}))
 | |
|     SwitchPage("search")
 | |
|   }
 | |
|   else{
 | |
|     $.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"MDTUserAction", type:"jail_marker", TargetIdentifier:Player_target, time, reason}))
 | |
|   }
 | |
|   
 | |
|   document.getElementById("in_jail_time").value = ""
 | |
|   document.getElementById("in_jail_reason").value = ""
 | |
| }
 | |
| 
 | |
| function SendUnjail(){
 | |
|   let TargetIdentifier = MDTTable[MDTTableNum].identifier
 | |
|   $.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"MDTUserAction", type:"unjail", TargetIdentifier}))
 | |
|   SwitchPage("search")
 | |
| }
 | |
| 
 | |
| 
 | |
| // Get players incidents
 | |
| 
 | |
| function GetIncidents(Name, value){
 | |
|   $(".incidents_container").html("")
 | |
|   if (Incidents.length > 0){
 | |
|     let helptable = []
 | |
|     for (let i = 0; i < Incidents.length; i++) {
 | |
|       let LocalInvolveds = JSON.parse(Incidents[i].involveds)
 | |
|       if (value){
 | |
|         for (let _i = 0; _i < LocalInvolveds[1].length; _i++) {
 | |
|           if (LocalInvolveds[1][_i] == Name){
 | |
|             helptable.push(i)
 | |
|           }
 | |
|         }
 | |
|       }
 | |
|       else{
 | |
|         for (let _i = 0; _i < LocalInvolveds[0].length; _i++) {
 | |
|           if (LocalInvolveds[0][_i] == Name){
 | |
|             helptable.push(i)
 | |
|           }
 | |
|         }
 | |
|       }
 | |
|     }
 | |
|     
 | |
|     if (helptable.length > 0){
 | |
|       for (let i = 0; i < helptable.length; i++) {
 | |
|         $(".incidents_container").append(`
 | |
|           <div class="incident_element" onclick="OpenIncident(${helptable[i]})">
 | |
|               <div class="background_effect"></div>
 | |
|               <div class="label">${Incidents[helptable[i]].title}</div>
 | |
|               <div class="date">${Incidents[helptable[i]].date}</div>                           
 | |
|           </div>
 | |
|         `)
 | |
|       }
 | |
|     }
 | |
|     else{
 | |
|       $(".incidents_container").html(`
 | |
|       <h3 class="text-center">No incidents have found</h3>
 | |
|       `)
 | |
|     }
 | |
|       
 | |
|   }
 | |
|   else{
 | |
|     $(".incidents_container").html(`
 | |
|     <h3 class="text-center">No incidents have found</h3>
 | |
|     `)
 | |
|   }
 | |
| }
 | |
| 
 | |
| function CreateTypeahead(Class, Table, data){
 | |
|   let TypeAheadList = []
 | |
| 
 | |
|   for(let i = 0; i < Table.length; i++){
 | |
|     if (data == false){
 | |
|       TypeAheadList.push(Table[i].toString())
 | |
|     }
 | |
|     else{
 | |
|       TypeAheadList.push(Table[i][data].toString())
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   var $input = $(Class);
 | |
| 
 | |
|   $input.typeahead('destroy');
 | |
| 
 | |
|   $input.typeahead({
 | |
|     autocomplete: true,
 | |
|     source: TypeAheadList,
 | |
|   });
 | |
| 
 | |
|   $input.change(function() {
 | |
|       var current = $input.typeahead("getActive");
 | |
|       matches = [];
 | |
| 
 | |
|       if (current) {
 | |
|         if (current.name == $input.val()) {
 | |
|             matches.push(current.name);
 | |
|         }
 | |
|       }
 | |
|   });
 | |
| }
 | |
| 
 | |
| // Incident menu
 | |
| 
 | |
| function RefreshAddToInvolvedBTN(id){
 | |
|   if (id == "incident_title"){
 | |
|     if (document.getElementById(id).value.length > 0){
 | |
|       document.getElementById('create_incident').disabled = false
 | |
|     }
 | |
|     else{
 | |
|       document.getElementById('create_incident').disabled = true 
 | |
|     }
 | |
|   }
 | |
|   else if (id == "add_involved_vehicle"){
 | |
|     if (document.getElementById(id).value.length > 0){
 | |
|       document.getElementById('add_vehicle').disabled = false
 | |
|     }
 | |
|     else{
 | |
|       document.getElementById('add_vehicle').disabled = true
 | |
|     }
 | |
|   }
 | |
|   else if (id == "add_involved_people"){
 | |
|     if (document.getElementById(id).value.length > 0){
 | |
|       document.getElementById('add_people').disabled = false
 | |
|     }
 | |
|     else{
 | |
|       document.getElementById('add_people').disabled = true
 | |
|     }
 | |
|   }
 | |
|   else if (id == "add_involved_society"){
 | |
|     if (document.getElementById(id).value.length > 0){
 | |
|       document.getElementById('add_society').disabled = false
 | |
|     }
 | |
|     else{
 | |
|       document.getElementById('add_society').disabled = true
 | |
|     }
 | |
|   }
 | |
| }
 | |
| 
 | |
| function CreateIncidents(){
 | |
|   $(".incidents_con").html("")
 | |
|   if (Incidents.length > 0){
 | |
|     for (let i = Incidents.length-1; i > -1; i=i-1) {
 | |
|       $(".incidents_con").append(`
 | |
|         <button class="incident_elm" id='incident_${Incidents[i].id}' onclick='LoadIncident(${i})'>
 | |
|             <div class="incident_label">${Incidents[i].title} #${Incidents[i].id}</div>
 | |
|             <div class="name">${Incidents[i].creator}</div>
 | |
|             <div class="date">${Incidents[i].date}</div>
 | |
|         </button>
 | |
|       `)
 | |
|     }
 | |
|   }
 | |
|   else{
 | |
|     $(".incidents_con").html(`
 | |
|     <h3 class="text-center">No incidents have found</h3>
 | |
|     `)
 | |
|   }
 | |
| }
 | |
| 
 | |
| function SearchIncidents(id){
 | |
|   $(".incidents_con").html("")
 | |
|   let filter = document.getElementById(id).value.toUpperCase()
 | |
|   for (let i = 0; i < Incidents.length; i++) {
 | |
|     if (Incidents[i].title.toUpperCase().indexOf(filter) > -1){
 | |
|       $(".incidents_con").append(`
 | |
|         <button class="incident_elm" id='incident_${Incidents[i].id}' onclick='LoadIncident(${i})'>
 | |
|             <div class="incident_label">${Incidents[i].title} #${Incidents[i].id}</div>
 | |
|             <div class="name">${Incidents[i].creator}</div>
 | |
|             <div class="date">${Incidents[i].date}</div>
 | |
|         </button>
 | |
|       `)
 | |
|     }
 | |
|   }
 | |
| }
 | |
| 
 | |
| function OpenIncident(Num){
 | |
|   SwitchPage('incidents')
 | |
|   $('.modal').modal('hide')
 | |
|   setTimeout(function(){
 | |
|     LoadIncident(Num)
 | |
|   }, 500)
 | |
| }
 | |
| 
 | |
| function LoadIncident(Num){
 | |
|   for (let i = 0; i < Incidents.length; i++) {
 | |
|     if (document.getElementById('incident_'+Incidents[i].id) != undefined){
 | |
|       document.getElementById('incident_'+Incidents[i].id).classList.remove("choosed")
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   document.getElementById('incident_'+Incidents[Num].id).classList.add("choosed")
 | |
| 
 | |
|   $(".MDT .big_con .light").css("background-color", "var(--main_color)")
 | |
| 
 | |
|   Involveds = JSON.parse(Incidents[Num].involveds)
 | |
|   RefreshInvolveds()
 | |
| 
 | |
|   $("#incident_main_label").html("EDIT")
 | |
|   document.getElementById("incident_main_label").classList.add("edit")
 | |
|   document.getElementById("incident_title").value = Incidents[Num].title
 | |
|   document.getElementById("incident_content").value = Incidents[Num].content
 | |
| 
 | |
|   $(".bottom_btn_con").html(`
 | |
|       <div class="col p-0">
 | |
|           <button class="delete_incident px-3" onclick="DeleteIncident(${Incidents[Num].id})">DELETE</button>
 | |
|       </div>
 | |
|       <div class="col p-0">
 | |
|           <button class="create_incident px-3" onclick="SaveIncident(${Incidents[Num].id})">SAVE</button>
 | |
|       </div>
 | |
|   `)
 | |
| }
 | |
| 
 | |
| function AddToInvolved(id){
 | |
|   AddInvolved = id
 | |
|   if (id == 'add_vehicle'){
 | |
|     let value1 = document.getElementById('add_involved_vehicle').value
 | |
|     document.getElementById('add_involved_vehicle').value = ''
 | |
|     $.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"MDTGetData", type:'plate', value1, value3:'incident'}))
 | |
|   }
 | |
|   else if (id == 'add_people'){
 | |
|     let input = document.getElementById('add_involved_people').value
 | |
|     if (input.indexOf(' ') >= 0){
 | |
|       let value1 = input.split(' ')[0]
 | |
|       let value2 = input.split(' ')[1]
 | |
|       $.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"MDTGetData", type:'fullname', value1, value2, value3:'incident'}))
 | |
|     }
 | |
|     else{
 | |
|       let value1 = input
 | |
|       $.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"MDTGetData", type:'firstname', value1, value3:'incident'}))
 | |
|     }
 | |
|     document.getElementById('add_involved_people').value = ''
 | |
|   }
 | |
|   else if (id == 'add_society'){
 | |
|     let value1 = document.getElementById('add_involved_society').value
 | |
|     document.getElementById('add_involved_society').value = ''
 | |
|     Involveds[2].push(value1)
 | |
|     RefreshInvolveds()
 | |
|   }
 | |
|   document.getElementById(id).disabled = true
 | |
| }
 | |
| 
 | |
| function RefreshInvolveds(){
 | |
|   for (let i = 0; i < 3; i++) {
 | |
|     $('#involvedcon_'+i).html('')
 | |
|     if (Involveds[i].length > 0){
 | |
|       for (let _i = 0; _i < Involveds[i].length; _i++) {
 | |
|         $('#involvedcon_'+i).append(`
 | |
|           <div class="involved_elm ps-1" >
 | |
|               <div class="name">${Involveds[i][_i]}</div>
 | |
|               <button class="remove_btn p-0" onclick='RemoveInvolved(${i}, ${_i})'><i class="fa-solid fa-trash"></i></button>
 | |
|           </div>
 | |
|         `)
 | |
|         if (Involveds[i].length > 1 && i == 1){
 | |
|           $('#involvedcon_'+i).css(
 | |
|             "margin-bottom", "-20px"
 | |
|           )
 | |
|         }
 | |
|         else{
 | |
|           $('#involvedcon_'+i).css(
 | |
|             "margin-bottom", "0px"
 | |
|           )
 | |
|         }
 | |
|       }
 | |
|       document.getElementById('involvedcon_'+i).classList.remove("empty")
 | |
|     }
 | |
|     else{
 | |
|       $('#involvedcon_'+i).css(
 | |
|         "margin-bottom", "0px"
 | |
|       )
 | |
|       document.getElementById('involvedcon_'+i).classList.add("empty")
 | |
|     }
 | |
|   }
 | |
| }
 | |
| 
 | |
| function RemoveInvolved(first, second){
 | |
|   Involveds[first].splice(second, 1)
 | |
|   RefreshInvolveds()
 | |
| }
 | |
| 
 | |
| function CreateIncident(){
 | |
|   let title = document.getElementById("incident_title").value
 | |
|   let content = document.getElementById("incident_content").value
 | |
|   console.log(Involveds)
 | |
|   $.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"MDTIncidentAction", type:"create", title, involveds:Involveds, content}))
 | |
|   SwitchPage('incidents')
 | |
| }
 | |
| 
 | |
| function DeleteIncident(id){
 | |
|   $.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"MDTIncidentAction", type:"delete", id}))
 | |
|   SwitchPage('incidents')
 | |
| }
 | |
| 
 | |
| function SaveIncident(id){
 | |
|   let title = document.getElementById("incident_title").value
 | |
|   let content = document.getElementById("incident_content").value
 | |
|   $.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"MDTIncidentAction", type:"save", title, involveds:Involveds, content, id}))
 | |
|   SwitchPage('incidents')
 | |
| }
 | |
| 
 | |
| function RefreshFineBTN(){
 | |
|   let name = document.getElementById("in_fine_name").value
 | |
|   let amount = document.getElementById("in_fine_amount").value
 | |
| 
 | |
|   if (name.length > 0 && amount.length > 0){
 | |
|     document.getElementById("fine_btn").disabled = false
 | |
|   }
 | |
|   else{
 | |
|     document.getElementById("fine_btn").disabled = true
 | |
|   }
 | |
| }
 | |
| 
 | |
| function SendFine(){
 | |
|   let name = document.getElementById("in_fine_name").value
 | |
|   let amount = document.getElementById("in_fine_amount").value
 | |
|   let TargetIdentifier = MDTTable[MDTTableNum].identifier
 | |
|   let targetname = MDTTable[MDTTableNum].firstname+" "+MDTTable[MDTTableNum].lastname
 | |
| 
 | |
|   $.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"MDTUserAction", type:"givefine", TargetIdentifier, name, amount, targetname}))
 | |
|   
 | |
|   document.getElementById("in_fine_name").value = ""
 | |
|   document.getElementById("in_fine_amount").value = ""
 | |
| }
 | |
| 
 | |
| function CreateFines(){
 | |
|   $(".fines_container").html("")
 | |
|   if (PlayerFines.length > 0){
 | |
|     let Fines_all = 0
 | |
|     let Fines_count = PlayerFines.length
 | |
|     for (let i = 0; i < PlayerFines.length; i++) {
 | |
|       $(".fines_container").append(`
 | |
|         <div class="fine_element">
 | |
|         <div class="background_effect"></div>
 | |
|             <div class="row">
 | |
|                 <div class="col-6 d-flex align-items-center justify-content-center">
 | |
|                     <h3 class="my-1">${PlayerFines[i].label}</h3>
 | |
|                 </div>
 | |
|                 <div class="col d-flex align-items-center justify-content-center">
 | |
|                     <h3 class="my-1">${PlayerFines[i].amount+MoneyForm}</h3>
 | |
|                 </div>
 | |
|             </div>
 | |
|         </div>
 | |
|       `)
 | |
|       Fines_all = +Fines_all + +PlayerFines[i].amount
 | |
|     }
 | |
| 
 | |
|     $("#fines_all").html("All: "+Fines_all+MoneyForm)
 | |
|     $("#fines_count").html("Count: "+Fines_count)
 | |
|   }
 | |
|   else{
 | |
|     $(".fines_container").html(`
 | |
|     <h3 class="text-center">No fines found</h3>
 | |
|     `)
 | |
| 
 | |
|     $("#fines_all").html("All: -")
 | |
|     $("#fines_count").html("Count: -")
 | |
|   }
 | |
|   
 | |
| }
 | |
| 
 | |
| function SendFines(){
 | |
|   let TargetIdentifier = MDTTable[MDTTableNum].identifier
 | |
|   $.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"MDTUserAction", type:"showfines", TargetIdentifier}))
 | |
| }
 | |
| 
 | |
| function SpeedNotify(){
 | |
|   document.getElementById("speeding_notify").style.animation = "Show_panel 0.5s ease";
 | |
|   $(".speeding_notify").css("display", "block")
 | |
|   $(".speeding_notify .main_text").html(`You went with <span class="your_speed">${PlayerSpeed+Metric}</span> at a <span class="speed_limit">${SpeedLimit+Metric}</span> speed limit`)
 | |
|   $(".speeding_notify .fine").html(SpeedFine+MoneyForm)
 | |
|   setTimeout(function(){
 | |
|     document.getElementById("speeding_notify").style.animation = "Hide_panel 0.5s ease";
 | |
|     setTimeout(function(){
 | |
|       $(".speeding_notify").css("display", "none")
 | |
|     },400)
 | |
|   },5000)
 | |
| }
 | |
| 
 | |
| function dragElement(elmnt) {
 | |
|   var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
 | |
| 
 | |
|   elmnt.onmousedown = dragMouseDown;
 | |
| 
 | |
|   function dragMouseDown(e) {
 | |
|     e = e || window.event;
 | |
|     e.preventDefault();
 | |
| 
 | |
|     pos3 = e.clientX;
 | |
|     pos4 = e.clientY;
 | |
|     document.onmouseup = closeDragElement;
 | |
|     document.onmousemove = elementDrag;
 | |
|   }
 | |
| 
 | |
|   function elementDrag(e) {
 | |
|     e = e || window.event;
 | |
|     e.preventDefault();
 | |
| 
 | |
|     pos1 = pos3 - e.clientX;
 | |
|     pos2 = pos4 - e.clientY;
 | |
|     pos3 = e.clientX;
 | |
|     pos4 = e.clientY;
 | |
| 
 | |
|     elmnt.style.opacity = "0.8"
 | |
| 
 | |
|     elmnt.style.top = (elmnt.offsetTop - pos2) + "px";
 | |
|     elmnt.style.left = (elmnt.offsetLeft - pos1) + "px";
 | |
|   }
 | |
| 
 | |
|   function closeDragElement() {
 | |
|     elmnt.style.opacity = "1"
 | |
|     document.onmouseup = null;
 | |
|     document.onmousemove = null;
 | |
|   }
 | |
| }
 | |
| 
 | |
| function CreateNotes(value){
 | |
|   $(".notes_container").html("")
 | |
|   if (value == true){
 | |
|     if (MDTTable[MDTTableNum].notes != undefined){
 | |
|       for(let i=MDTTable[MDTTableNum].notes.length -1 ; i>-1; i = i-1){
 | |
|         if (Job.rank >= NoteRank){
 | |
|           $(".notes_container").append(`
 | |
|             <div class="note_element">
 | |
|             <div class="background_effect"></div>
 | |
|             <button class="delete_note" onclick="DeleteNotes(${i})">Delete</button>
 | |
|                 <div class="row">
 | |
|                     <div class="col-4">
 | |
|                         <h4 class="m-2">${MDTTable[MDTTableNum].notes[i].name}</h4>
 | |
|                         <h5 class="m-2 fs-6">${MDTTable[MDTTableNum].notes[i].date}</h5>
 | |
|                     </div>
 | |
|                     <div class="col">
 | |
|                         <div class="main_text w-75">${MDTTable[MDTTableNum].notes[i].text}</div>
 | |
|                     </div>
 | |
|                 </div>
 | |
|             </div>
 | |
|           `)
 | |
|         }
 | |
|         else{
 | |
|           $(".notes_container").append(`
 | |
|             <div class="note_element">
 | |
|             <div class="background_effect"></div>
 | |
|                 <div class="row ">
 | |
|                     <div class="col-4">
 | |
|                         <h4 class="m-2">${MDTTable[MDTTableNum].notes[i].name}</h4>
 | |
|                         <h5 class="m-2 fs-6">${MDTTable[MDTTableNum].notes[i].date}</h5>
 | |
|                     </div>
 | |
|                     <div class="col">
 | |
|                         <div class="main_text">${MDTTable[MDTTableNum].notes[i].text}</div>
 | |
|                     </div>
 | |
|                 </div>
 | |
|             </div>
 | |
|           `)
 | |
|         }
 | |
|       }
 | |
|     }
 | |
|   }
 | |
|   else{
 | |
|     if (Notes != undefined){
 | |
|       for(let i=Notes.length -1 ; i>-1; i = i-1){
 | |
|         if (Job.rank >= NoteRank){
 | |
|           $(".notes_container").append(`
 | |
|           <div class="note_element">
 | |
|           <div class="background_effect"></div>
 | |
|           <button class="delete_note" onclick="DeleteNotes(${i})">Delete</button>
 | |
|               <div class="row">
 | |
|                   <div class="col-4">
 | |
|                       <h4 class="m-2">${Notes[i].name}</h4>
 | |
|                       <h5 class="m-2 fs-6">${Notes[i].date}</h5>
 | |
|                   </div>
 | |
|                   <div class="col">
 | |
|                       <div class="main_text w-75">${Notes[i].text}</div>
 | |
|                   </div>
 | |
|               </div>
 | |
|           </div>
 | |
|           `)
 | |
|         }
 | |
|         else{
 | |
|           $(".notes_container").append(`
 | |
|           <div class="note_element">
 | |
|           <div class="background_effect"></div>
 | |
|               <div class="row">
 | |
|                   <div class="col-4">
 | |
|                       <h4 class="m-2">${Notes[i].name}</h4>
 | |
|                       <h5 class="m-2 fs-6">${Notes[i].date}</h5>
 | |
|                   </div>
 | |
|                   <div class="col">
 | |
|                       <div class="main_text">${Notes[i].text}</div>
 | |
|                   </div>
 | |
|               </div>
 | |
|           </div>
 | |
|           `)
 | |
|         } 
 | |
|       }
 | |
|     }
 | |
|   }
 | |
| }
 | |
| 
 | |
| function DeleteNotes(Number){
 | |
|   let TargetIdentifier = MDTTable[MDTTableNum].identifier
 | |
|   if (InSearchMenu == "people"){
 | |
|     $.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"MDTUserAction", type:"deletenote", TargetIdentifier, NoteNum:Number+1}))
 | |
|   }
 | |
|   else{
 | |
|     let Plate = MDTTable[MDTTableNum].plate
 | |
|     $.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"MDTVehicleAction", type:"deletenote", Plate, NoteNum:Number+1}))
 | |
|   }
 | |
| }
 | |
| 
 | |
| function RefreshNoteBTN(){
 | |
|     let in_note = document.getElementById("in_note").value
 | |
| 
 | |
|     if (in_note.length > 0){
 | |
|         document.getElementById("note_btn").disabled = false
 | |
|     }
 | |
|     else{
 | |
|         document.getElementById("note_btn").disabled = true
 | |
|     }
 | |
| }
 | |
| 
 | |
| function CreateNote(){
 | |
|   let TargetIdentifier = MDTTable[MDTTableNum].identifier
 | |
|   let Text = document.getElementById("in_note").value
 | |
| 
 | |
|   if (InSearchMenu == "people"){
 | |
|     $.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"MDTUserAction", type:"createnote", TargetIdentifier, Text}))
 | |
|   }
 | |
|   else{
 | |
|     let Plate = MDTTable[MDTTableNum].plate
 | |
|     $.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"MDTVehicleAction", type:"createnote", Plate, Text}))
 | |
|   }
 | |
|   
 | |
| 
 | |
|   document.getElementById("in_note").value = ""
 | |
|   document.getElementById("note_btn").disabled = true
 | |
| }
 | |
| 
 | |
| function RefreshCreateCallBTN(){
 | |
|   let in_citizen_call_reason = document.getElementById("in_citizen_call_reason").value
 | |
| 
 | |
|   if (in_citizen_call_reason.length > 0){
 | |
|       document.getElementById("create_call_btn").disabled = false
 | |
|   }
 | |
|   else{
 | |
|       document.getElementById("create_call_btn").disabled = true
 | |
|   }
 | |
| }
 | |
| 
 | |
| function CreateCall(){
 | |
|   let text = document.getElementById("in_citizen_call_reason").value
 | |
|   let time = Math.round(Date.now() / (1000 * 60))
 | |
|   $.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"MDTCitizenCall", type:"create", text, time}))
 | |
|   Close()
 | |
|   document.getElementById("in_citizen_call_reason").value = ""
 | |
| }
 | |
| 
 | |
| function AcceptCall(){
 | |
|   $(".call_actions_container").html(`
 | |
|   <div class="input-group mt-3 call_reason_con">
 | |
|       <textarea class="form-control mx-4" id="in_call_reason" oninput="RefreshCloseCallBTN()" placeholder="Reason to close..."></textarea>
 | |
|   </div>
 | |
| 	<button class="submenu_btn my-3 px-3 mx-auto d-block" id="close_call" data-bs-dismiss="modal" onclick="CloseCall()" disabled>Close</button>
 | |
|   `)
 | |
| 
 | |
|   let tableid = +CallNumber + +1
 | |
|   $.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"MDTCitizenCall", type:"accept", tableid}))
 | |
| 
 | |
|   setTimeout(function(){
 | |
|     $(".involved_container").html("")
 | |
|     for (let i = 0; i < CitizenCalls[CallNumber].cops.length; i++) {
 | |
|       $(".involved_container").append(`
 | |
|       <div class="involved_element">
 | |
|           ${CitizenCalls[CallNumber].cops[i].name}
 | |
|       </div>
 | |
|       `)
 | |
|       if (i +1 < CitizenCalls[CallNumber].cops.length){
 | |
|         $(".involved_container").append(`
 | |
|         <hr>
 | |
|         `)
 | |
|       }
 | |
|     }
 | |
|   },700)
 | |
|   
 | |
| }
 | |
| 
 | |
| function RefreshCallModul(id){
 | |
|   CallNumber = id.split('_')[1]
 | |
|   let Accepted = false
 | |
| 
 | |
|   $(".involved_container").html("")
 | |
|   for (let i = 0; i < CitizenCalls[CallNumber].cops.length; i++) {
 | |
|     if (CitizenCalls[CallNumber].cops[i].id == PlayerId){
 | |
|       Accepted = true
 | |
|     }
 | |
|     $(".involved_container").append(`
 | |
|     <div class="involved_element">
 | |
|         ${CitizenCalls[CallNumber].cops[i].name}
 | |
|     </div>
 | |
|     `)
 | |
|     if (i +1 < CitizenCalls[CallNumber].cops.length){
 | |
|       $(".involved_container").append(`
 | |
|       <hr>
 | |
|       `)
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   if (CitizenCalls[CallNumber].closed == false){
 | |
|     if (Accepted == true){
 | |
|       $(".call_actions_container").html(`
 | |
|       <div class="input-group mt-3 call_reason_con">
 | |
|           <textarea class="form-control mx-4" id="in_call_reason" oninput="RefreshCloseCallBTN()" placeholder="Reason to close"></textarea>
 | |
|       </div>
 | |
|     	<button class="submenu_btn px-3 my-3 mx-auto d-block" id="close_call" data-bs-dismiss="modal" onclick="CloseCall()" disabled>Close</button>
 | |
|       `)
 | |
|     }
 | |
|   }
 | |
|   else{
 | |
|     $(".call_actions_container").html(`
 | |
| 		<h3 class="text-white text-center mt-3">Reason to close</h3>
 | |
| 		<div class="input-group call_reason_con">
 | |
| 			<textarea class="form-control mx-4" id="in_call_reason" disabled>${CitizenCalls[CallNumber].reason}</textarea>
 | |
| 		</div>
 | |
|     `)
 | |
|   }
 | |
| 
 | |
| }
 | |
| 
 | |
| function SendPinOnMap(){
 | |
|   Close()
 | |
|   let tableid = +CallNumber + +1
 | |
|   let coords = CitizenCalls[CallNumber].coords
 | |
|   $.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"MDTCitizenCall", type:"blip", coords, tableid}))
 | |
| }
 | |
| 
 | |
| function CreateCitizenCalls(){
 | |
|   $(".alert_container_out").html(`
 | |
|   <div class="alert_container row row-cols-2 p-4"></div>
 | |
|   `)
 | |
|   if (CitizenCalls.length > 0){
 | |
|     for (let i = CitizenCalls.length-1; i > -1; i = i-1) {
 | |
|       if (CitizenCalls[i].cops.length > 0){
 | |
|         $(".alert_container").append(`
 | |
|             <div class="col">
 | |
|               <div class="alert_element mx-auto d-block" id="alert_element_${i}">
 | |
|               <div class="background_effect"></div>
 | |
|                   <div class="row">
 | |
|                       <div class="col"><h2>Citizen call</h2></div>
 | |
|                       <div class="col"><div class="police_on"><i class="fa-solid fa-user-group"></i> ${CitizenCalls[i].cops.length}</div></div>
 | |
|                   </div>
 | |
|                   <div class="main_text">${CitizenCalls[i].text}</div>
 | |
|                   <div class="row">
 | |
|                       <div class="col">
 | |
|                           <button class="details_btn float-start px-3 ms-3 me-0 mt-2" id="call_${i}" onclick="RefreshCallModul(id)" data-bs-toggle="modal" data-bs-target="#call_modal">More</button>
 | |
|                           <button class="details_btn red float-start px-3 ms-2 me-0 mt-2" id="call_${i}_delete" onclick="DeleteCall('${i}')"><i class="fa-solid fa-trash"></i></button>
 | |
|                       </div>
 | |
|                       <div class="col">
 | |
|                           <div class="time">${CurrentTime-CitizenCalls[i].time} minutes ago</div>
 | |
|                           <div class="street">${CitizenCalls[i].street}</div>
 | |
|                       </div>
 | |
|                   </div>
 | |
|               </div>
 | |
|           </div>
 | |
|         `)
 | |
|       }
 | |
|       else{
 | |
|         $(".alert_container").append(`
 | |
|             <div class="col">
 | |
|               <div class="alert_element mx-auto d-block" id="alert_element_${i}">
 | |
|               <div class="background_effect"></div>
 | |
|                   <div class="row">
 | |
|                       <div class="col"><h2>Citizen call</h2></div>
 | |
|                       <div class="col"><div class="police_on"><i class="fa-solid fa-user-group"></i> ${CitizenCalls[i].cops.length}</div></div>
 | |
|                   </div>
 | |
|                   <div class="main_text">${CitizenCalls[i].text}</div>
 | |
|                   <div class="row">
 | |
|                       <div class="col">
 | |
|                           <button class="details_btn float-start px-3 ms-3 me-0 mt-2" id="call_${i}" onclick="RefreshCallModul(id), AcceptCall()" data-bs-toggle="modal" data-bs-target="#call_modal">Accept</button>
 | |
|                           <button class="details_btn red float-start px-3 ms-2 me-0 mt-2" id="call_${i}_delete" onclick="DeleteCall('${i}')"><i class="fa-solid fa-trash"></i></button>
 | |
|                       </div>
 | |
|                       <div class="col">
 | |
|                           <div class="time">${CurrentTime-CitizenCalls[i].time} minutes ago</div>
 | |
|                           <div class="street">${CitizenCalls[i].street}</div>
 | |
|                       </div>
 | |
|                   </div>
 | |
|               </div>
 | |
|           </div>
 | |
|         `)
 | |
|       }
 | |
| 
 | |
|       if (Job != undefined){
 | |
|         if (Job.rank >= CitizenCallRank){
 | |
|           for (let i = CitizenCalls.length-1; i > -1; i = i-1) {
 | |
|             $("#call_"+i+"_delete").css("display", "block")
 | |
|           }
 | |
|         }
 | |
|       }
 | |
|       
 | |
|       if (CitizenCalls[i].closed){
 | |
|         document.getElementById("alert_element_"+i).style.animation = "DoneAlert 2s ease infinite, Appear_Menu 0.7s ease";
 | |
|       }
 | |
|       else if (CitizenCalls[i].cops.length > 0){
 | |
|         document.getElementById("alert_element_"+i).style.animation = "ProgressAlert 2s ease infinite, Appear_Menu 0.7s ease";
 | |
|       }
 | |
|     }
 | |
|   }
 | |
|   else{
 | |
|     $(".alert_container_out").html(`
 | |
|     <div class="col not_found_con py-1"><h1 class="text-center">There isn't any call</h1></div>
 | |
|     `)
 | |
|   }
 | |
| }
 | |
| 
 | |
| function DeleteCall(id){
 | |
|   let tableid = +id +1
 | |
|   $.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"MDTCitizenCall", type:"delete", tableid}))
 | |
| }
 | |
| 
 | |
| function RefreshCloseCallBTN(){
 | |
|   let reason = document.getElementById("in_call_reason").value
 | |
| 
 | |
|   if (reason.length > 0){
 | |
|     document.getElementById("close_call").disabled = false
 | |
|   }
 | |
|   else{
 | |
|     document.getElementById("close_call").disabled = true
 | |
|   }
 | |
| }
 | |
| 
 | |
| function CloseCall(){
 | |
|   let tableid = +CallNumber + +1
 | |
|   let text = document.getElementById("in_call_reason").value
 | |
|   $.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"MDTCitizenCall", type:"close", tableid, text}))
 | |
|   
 | |
|   document.getElementById("in_call_reason").value = ""
 | |
| }
 | |
| 
 | |
| function SyncDataRange(id){
 | |
|   $("#range_number").html(document.getElementById(id).value+"m") 
 | |
| }
 | |
| 
 | |
| function SyncDataMin(id){
 | |
|   $("#range_min_number").html(document.getElementById(id).value+"min") 
 | |
| }
 | |
| 
 | |
| function RefreshCreateLockBTN(){
 | |
|   if (document.getElementById("area_lock_label").value.length > 0){
 | |
|     document.getElementById("create_lock_btn").disabled = false
 | |
|   }
 | |
|   else{
 | |
|     document.getElementById("create_lock_btn").disabled = true
 | |
|   }
 | |
| }
 | |
| 
 | |
| function ChangeBlipBTN(id){
 | |
|   $('.blip_btn').removeClass("active_btn")
 | |
|   document.getElementById(id).classList.add("active_btn")
 | |
| }
 | |
| 
 | |
| function CreateLock(){
 | |
|   let label = document.getElementById("area_lock_label").value
 | |
|   let time = document.getElementById("min_area_lock").value
 | |
|   let range = document.getElementById("range_area_lock").value
 | |
|   let sprite = document.getElementsByClassName('active_btn')[0].id
 | |
|   $.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"AreaLock", label, time, range, sprite}))
 | |
|   document.getElementById("range_area_lock").value = "20"
 | |
|   document.getElementById("min_area_lock").value = "1"
 | |
|   Close()
 | |
|   $("#range_min_number").html("1min") 
 | |
|   $("#range_number").html("20m") 
 | |
| } | 
