﻿function processPage() {
    processAllLinks();
    processActiveStates();
}


// Yes, this is a terrible way of checking for external URLs.
// Blame lots of last minute changes and increases in the number of exceptions, new ways to do navigation...

function processAllLinks() {
    var linkHref;
    var domain;
    var currentUrl = window.location.toString();
    
    $("a").each(function(i) {
        linkHref = $(this).attr("href");
        domain = getDomain(linkHref);
        //console.log("Link HREF: " + linkHref + " | Domain: " + domain);
        if((domain != "localhost" && domain != "ccb" && domain != "ccb.com.asp1-11.websitetestlink" && domain != "coloradocap.web704.discountasp" && domain != "coloradocapitalbankib" && domain != "coloradocapitalbank" && domain != "coloradocapital.web-cashplus" && domain != "" && domain != "Home" && domain != "Private" && domain != "javascript" && domain != "web1.zixmail" && domain != "portal.datacenterinc" && domain != "cmdemo" && domain!= "mailto" && domain!= "maps.google" && domain != "Private-Wealth" && domain != "About-Us") && currentUrl.match("External") != "External") {
            linkHref = "/External.aspx?external=" + linkHref;
            $(this).attr("href", linkHref);
            $(this).attr("target", "_blank");
        }
    });
}

function processActiveStates() {
    var activePages = Array(Array("About-Us.aspx", "nav_about"), Array("Business-Banking", "nav_business"), Array("Personal-Banking", "nav_personal"), Array("Residential-Mortgage", "nav_residential"), Array("Treasury-Management", "nav_treasury"), Array("Private-Wealth", "nav_private"), Array("Nonprofit", "nav_nonprofit"), Array("Contact-Us", "topnav_contact"), Array("Locations-ATMs", "topnav_locations"), Array("Stay-Connected", "topnav_connected"), Array("Resource-Center", "topnav_resource"));
    var currentUrl = window.location.toString();
    
    for(var i = 0; i < activePages.length; i++) {
        if((currentUrl.match(activePages[i][0] + ".aspx") == activePages[i][0] + ".aspx") || currentUrl.match("/" + activePages[i][0] + "/") == "/" + activePages[i][0] + "/") {
            document.getElementById(activePages[i][1]).className = "active";
        }
    }
    
    $("a").each(function(i) {
        var linkHref = $(this).attr("href");
        linkHref = linkHref.toLowerCase();
        currentUrl = currentUrl.toLowerCase();
        //console.log("Link HREF: " + linkHref + " | Current URL: " + currentUrl);
        if(currentUrl.match(linkHref) == linkHref) {
            $(this).attr("style", "color:#820024;");
            //console.log("TRUE!");
        }
    });
}

function newProcessActiveStates() {

}

function getDomain(url) {
    if(url != null) {
        // IF THERE, REMOVE WHITE SPACE FROM BOTH ENDS
        url = url.replace(new RegExp(/^\s+/),""); // START
        url = url.replace(new RegExp(/\s+$/),""); // END
         
        // IF FOUND, CONVERT BACK SLASHES TO FORWARD SLASHES
        url = url.replace(new RegExp(/\\/g),"/");
         
        // IF THERE, REMOVES 'http://', 'https://' or 'ftp://' FROM THE START
        url = url.replace(new RegExp(/^http\:\/\/|^https\:\/\/|^ftp\:\/\//i),"");
         
        // IF THERE, REMOVES 'www.' FROM THE START OF THE STRING
        url = url.replace(new RegExp(/^www\./i),"");
         
        // REMOVE COMPLETE STRING FROM FIRST FORWARD SLASH ON
        url = url.replace(new RegExp(/\/(.*)/),"");
         
        //REMOVES ANYTHING AFTER #
        url = url.replace(new RegExp(/\#(.*)/),"");
        
        //Removes anything after : (For Javascript)
        url = url.replace(new RegExp(/:(.*)/),"");
         
        // REMOVES '.??.??' OR '.???.??' FROM END - e.g. '.CO.UK', '.COM.AU'
        if (url.match(new RegExp(/\.[a-z]{2,3}\.[a-z]{2}$/i))) {
              url = url.replace(new RegExp(/\.[a-z]{2,3}\.[a-z]{2}$/i),"");
         
        // REMOVES '.??' or '.???' or '.????' FROM END - e.g. '.US', '.COM', '.INFO'
        } else if (url.match(new RegExp(/\.[a-z]{2,4}$/i))) {
              url = url.replace(new RegExp(/\.[a-z]{2,4}$/i),"");
        }
         
        return(url);
    } else {
        return "";
    }
}