/**
 * Made by mkcomponent.sh
*/

import { Component, OnInit, ApplicationRef } from '@angular/core'
import { HttpClient } from '@angular/common/http'
import { DomSanitizer } from '@angular/platform-browser'
import { HelperService } from '@k-services/svc.helper'
import { cookiebot_Id } from '@k-settings/store-helper'

@Component({
    moduleId: module.id+ '',
    selector: 'videoConsentPrivacyPage',
	templateUrl: 'tpl.privacy-page.pug',

    styleUrls: ['sty.privacy-page.scss']
})

export class PrivacyPageComponent implements OnInit {

    // Variables ----
    content: any

    constructor(
        private _sanitizer: DomSanitizer,
        private _http: HttpClient,
        private _helper: HelperService,
        private aRef: ApplicationRef
    ) { }

    // Lifecycle hooks ----


    ngOnInit() {
        this.mapContent()
    }


    // Functions ----
    /**
     * Maps content, finds urls and declares them so we can access them easily
     */
    mapContent() {

        let server = this._helper.server
        let regex = server.match('https:\/\/|http:\/\/')
        server = server.replace(regex[0], '')
        server = server.substring(0, server.length - 1);

        this._http.get('https://consent.cookiebot.com/'+ cookiebot_Id +'/cdreport.js?domain='+ server +'&whitelabel=false', {responseType: 'text'}).toPromise().then((response: any) => {
            
            let data = response.replace("CookieDeclaration.InjectCookieDeclaration('", '').replace("');", '').split('</style>')
            let iteratable = []


            if(!!data[1] && data[1].includes('<a')) {

                for(let d of data[1].split('<a')) {

                    if(d.includes('href')) {
                        let str = d.match('href="(.*?)"')

                        let target = ['']
                        if(d.includes('target='))
                            target = d.match('target="(.*?)"')

                        let rel = ['']
                        if(d.includes('rel='))
                            rel =  d.match('rel="(.*?)"')

                        let noopener = ['']
                        if(d.includes('noopener='))
                            noopener = d.match('noopener="(.*?)"')

                        let title = ['']
                        if(d.includes('title='))
                            title = d.match('title="(.*?)"')

                        let linkTitle = d.match('>(.*?)<\/a>')[1]
                        let result = d.substring(
                            str[0].length +
                            target[0].length +
                            rel[0].length +
                            title[0].length +
                            noopener[0].length + 2 +
                            linkTitle.length + 4
                        )

                        iteratable.push({inner: result.replace('/a>', ''), hasLink: true, link: {url: str[1], title: linkTitle}})

                    } else {
                        iteratable.push({inner: d, hasLink: false})
                    }
                
                }

            }
            this.content = iteratable
        })
    }

    /**
     * Trusts the URL
     * 
     * @param str 
     */
    trusted(str) {
        return this._sanitizer.bypassSecurityTrustUrl(str)
    }
}

