﻿/// <reference path="../API/Agility.js" />

Agility.RegisterNamespace("BNN.AdModule");

(function(AdModule) {

    AdModule.Render = function(zone, path, interstitials, tile, height, width) {

        var ctvAd = new CtvAd();

        ctvAd.SetSite('ctv.bnn.ca');

        if (zone == "") {
            var pUri = parseUri(window.location);
            //console.dir(pUri);
            var directoryPath = pUri.directory.toLowerCase().split("/");
            //console.log(directoryPath);

            if (directoryPath[1] == "news") {
                //zone = "news";
                var sector = getSectorForZone('Sector');
                zone = "news/" + sector;

            }
            else if (directoryPath[1] == "blogs") {
                zone = "blog";
            }
            else if (directoryPath[1] == "shows" && directoryPath.length > 3) {
                zone = directoryPath[3].replace("-", "");
            }
            else if (pUri.directory.length > 0 && pUri.file.length > 0) {
                zone = pUri.file.toLowerCase().replace(".aspx", "").replace("-", "");
            }
            else {
                zone = "home";
            }
        }
        
        //console.log(zone);
        ctvAd.SetZone(zone);
        ctvAd.SetPath(path);
        ctvAd.DisplayInterstitials(interstitials);
        ctvAd.SetTile(tile);
        ctvAd.SetHeight(height);
        ctvAd.SetWidth(width);

        ctvAd.Render();
    };


     function getSectorForZone(variable) {
        var query = window.location.search.substring(1);
        var vars = query.split("&");
        for (var i = 0; i < vars.length; i++) {
            var pair = vars[i].split("=");
            if (pair[0] == variable || pair[0] == variable.toLowerCase()) {
                return unescape(pair[1].replace(/-/g,'').toLowerCase());
            }
        }
        if(window.location.search == '' && window.location.pathname != '/News/News-Listing.aspx')
        {
               var meta = $.map($('meta[name="keywords"]'), function(metaEl) { return metaEl.content.split(",")});
               var len=meta.length;
               var found = false;
                   for(var i=0; i<len; i++) {
                       if(meta[i] == "Energy & Resources") found = true;
                    }
                    if(found) return "energyandresources/index"
        }
        return "index"; 
    }

    function parseUri(str) {
        var o = parseUri.options,
		m = o.parser[o.strictMode ? "strict" : "loose"].exec(str),
		uri = {},
		i = 14;

        while (i--) uri[o.key[i]] = m[i] || "";

        uri[o.q.name] = {};
        uri[o.key[12]].replace(o.q.parser, function($0, $1, $2) {
            if ($1) uri[o.q.name][$1] = $2;
        });

        return uri;
    };

    parseUri.options = {
        strictMode: false,
        key: ["source", "protocol", "authority", "userInfo", "user", "password", "host", "port", "relative", "path", "directory", "file", "query", "anchor"],
        q: {
            name: "queryKey",
            parser: /(?:^|&)([^&=]*)=?([^&]*)/g
        },
        parser: {
            strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
            loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/
        }
    };

//    function find(arr) {
//        var result = [];

//        for (var i in arr) {
//            if (arr[i].match(/Energy/g)) {
//                result.push(arr[i]);
//            }
//        }

//        return result;
//    }

})(BNN.AdModule);

