package main

import (
	"encoding/base64"
	"strings"
)

var openstatKeys []string

func init() {
	openstatKeys = []string{
		"OpenstatService",
		"OpenstatCampaign",
		"OpenstatAd",
		"OpenstatSource",
	}
}

func openstat(hit map[string]string, URL *UrlParams) {
	for _, k := range openstatKeys {
		hit[k] = ""
	}

	openstat, ok := URL.QueryMap["_openstat"]
	if !ok {
		openstat = URL.FragmentMap["_openstat"]
	}

	if openstat == "" {
		return
	}

	if strings.LastIndex(openstat, ";") == -1 {
		b, err := base64.StdEncoding.DecodeString(openstat)
		if err != nil {
			return
		}
		openstat = string(b)
	}

	params := strings.Split(openstat, ";")

	if len(params) != 4 {
		return
	}
	for k, v := range params {
		hit[openstatKeys[k]] = v
	}
}
