﻿document.getElementsByClassName = function(cl) {
    var retnode = [];
    var myclass = new RegExp('\\b' + cl + '\\b');
    var elem = this.getElementsByTagName('*');
    for (var i = 0; i < elem.length; i++) {
        var classes = elem[i].className;
        if (myclass.test(classes)) retnode.push(elem[i]);
    }
    return retnode;
};

function ajaxRequest() {
    var activexmodes = ["Msxml2.XMLHTTP", "Microsoft.XMLHTTP"] //activeX versions to check for in IE
    if (window.ActiveXObject) { //Test for support for ActiveXObject in IE first (as XMLHttpRequest in IE7 is broken)
        for (var i = 0; i < activexmodes.length; i++) {
            try {
                return new ActiveXObject(activexmodes[i])
            }
            catch (e) {
                //suppress error
            }
        }
    }
    else if (window.XMLHttpRequest) // if Mozilla, Safari etc
        return new XMLHttpRequest()
    else
        return false
}

function FillPeopleColleagueFields() {

    var classNameObjects = document.getElementsByClassName("profileCount");
    var myVar = '';

    for (var i = 0; i < classNameObjects.length; i++) {
        if (classNameObjects[i].innerHTML.indexOf("<") < 0) // remove links
            myVar += classNameObjects[i].innerHTML + ';';
    }

    // make request to page
    var mygetrequest = new ajaxRequest()

    mygetrequest.onreadystatechange = function() {
        if (mygetrequest.readyState == 4) {
            if (mygetrequest.status == 200) {
                var resultString = mygetrequest.responseText
                var people = eval(resultString)

                var profileCountSpans = document.getElementsByClassName("profileCount")
                var userContactSpans = document.getElementsByClassName("userContactLink")
                var addColleagueSpans = document.getElementsByClassName("addColleague")
                var removeColleagueSpans = document.getElementsByClassName("removeColleague")
                var socialDistanceSpans = document.getElementsByClassName("socialDistanceHolder")
                var blogSpans = document.getElementsByClassName("blogHolder")
                var viewPicturesSpans = document.getElementsByClassName("viewPicturesHolder");
                var viewDocumentsSpans = document.getElementsByClassName("viewDocumentsHolder");
                var userReputationSpans = document.getElementsByClassName("userReputationHolder");
                var preferredNameSpans = document.getElementsByClassName("preferredName");
                var titleSpans = document.getElementsByClassName("profileTitle");
                var separatorSpans = document.getElementsByClassName("profileDescriptionSeparator");
                var companySpans = document.getElementsByClassName("profileCompany");
                var locationSpans = document.getElementsByClassName("profileLocation");

                for (var i = 0; i < people.length; i++) {
                    var person = people[i]
                    var startLinkHTML = ''

                    for (var j = 0; j < profileCountSpans.length; j++) {
                        var span = profileCountSpans[j]
                        if (person.username == span.innerHTML) {
                            span.innerHTML = '<a href="/_layouts/community/profile/colleagues.aspx?accountname=' + span.innerHTML + '" />' + person.count + '</a>'
                            span.style.display = ''
                        }
                    }

                    for (var j = 0; j < userContactSpans.length; j++) {
                        var span = userContactSpans[j]
                        var pnSpan = preferredNameSpans[j]
                        if (person.username == span.innerHTML && person.cancontact) {
                            span.innerHTML = '<a href="javascript:void(0);" onclick="mtmShowDialog(\'message\', \'' + span.innerHTML + '\', \'' + pnSpan.innerHTML.replace("'", "&#146;") + '\')" />Contact</a>'
                            span.style.display = ''
                            startLinkHTML = '&nbsp;| '
                        }
                    }

                    for (var j = 0; j < addColleagueSpans.length; j++) {
                        var span = addColleagueSpans[j]
                        var pnSpan = preferredNameSpans[j]
                        if (person.isanonymous == '0') {
                            if (person.username == span.innerHTML && person.iscolleague == '0') {
                                span.innerHTML = startLinkHTML + '<a href="javascript:void(0);" onclick="mtmShowDialog(\'colleague\', \'' + span.innerHTML + '\', \'' + pnSpan.innerHTML.replace("'", "&#146;") + '\')" />Add Colleague</a>'
                                span.style.display = ''
                                startLinkHTML = '&nbsp;| '
                            }
                        }
                    }

                    for (var j = 0; j < removeColleagueSpans.length; j++) {
                        var span = removeColleagueSpans[j]
                        var pnSpan = preferredNameSpans[j]
                        var mess = mtmRemoveColleagueConfirmationText
                        if (person.username == span.innerHTML && person.iscolleague == '1') {
                            span.innerHTML = startLinkHTML + '<a href="/_layouts/SQTComm_EnhancedSearch/RemoveColleague.aspx?Source=/_layouts/community/profile/colleagues.aspx&ColleagueName=' + person.username + '" onclick="return confirm(\'' + mess + '\')" >Remove Colleague</a>'
                            span.style.display = ''
                            startLinkHTML = '&nbsp;| '
                        }
                    }


                    for (var j = 0; j < socialDistanceSpans.length; j++) {
                        var span = socialDistanceSpans[j]
                        if (person.username == span.innerHTML && person.distance > 0) {
                            span.innerHTML = '<div class="socialDistance-' + person.distance + '"></div>'
                            span.style.display = ''
                        }
                    }

                    for (var j = 0; j < blogSpans.length; j++) {
                        var span = blogSpans[j]
                        if (person.username == span.innerHTML && person.blogUrl != '') {
                            span.innerHTML = startLinkHTML + '<a href="' + person.blogUrl + '">View Blog</a>'
                            span.style.display = ''
                            startLinkHTML = '&nbsp;| '
                        }
                    }

                    for (var j = 0; j < viewPicturesSpans.length; j++) {
                        var span = viewPicturesSpans[j]
                        if (person.username == span.innerHTML && person.pictureCount > 0) {
                            span.innerHTML = startLinkHTML + '<a href="/_layouts/community/profile/pictures.aspx?accountname=' + person.username + '">View Pictures</a>'
                            span.style.display = ''
                            startLinkHTML = '&nbsp;| '
                        }
                    }

                    for (var j = 0; j < viewDocumentsSpans.length; j++) {
                        var span = viewDocumentsSpans[j]
                        if (person.username == span.innerHTML && person.documentCount > 0) {
                            span.innerHTML = startLinkHTML + '<a href="/_layouts/community/profile/documents.aspx?accountname=' + person.username + '">View Documents</a>'
                            span.style.display = ''
                        }
                    }

                    for (var j = 0; j < userReputationSpans.length; j++) {
                        var span = userReputationSpans[j]
                        if (person.username == span.innerHTML && person.reputationImage != '') {
                            span.innerHTML = '<div class="reputation"><img src="' + person.reputationImage + '" alt="' + person.reputationTitle + '" title="' + person.reputationTitle + '"/></div>'
                            span.style.display = ''
                        }
                    }

                    for (var j = 0; j < titleSpans.length; j++) {
                        var span = titleSpans[j]
                        if (person.username == span.innerHTML && person.userTitle != '') {
                            span.innerHTML = person.userTitle
                            span.style.display = ''
                        }
                    }

                    for (var j = 0; j < separatorSpans.length; j++) {
                        var span = separatorSpans[j]
                        if (person.username == span.innerHTML && person.userTitle != '' && person.company != '') {
                            span.innerHTML = '&nbsp;at&nbsp;'
                            span.style.display = ''
                        }
                    }

                    for (var j = 0; j < companySpans.length; j++) {
                        var span = companySpans[j]
                        if (person.username == span.innerHTML && person.company != '') {
                            span.innerHTML = person.company.replace("&", "&#38;")
                            span.style.display = ''
                        }
                    }

                    for (var j = 0; j < locationSpans.length; j++) {
                        var span = locationSpans[j]
                        if (person.username == span.innerHTML && person.location != '') {
                            span.innerHTML = person.location
                            span.style.display = ''
                        }
                    }
                }
            }
        }
    }

    mygetrequest.open("GET", "/_layouts/SQTComm_EnhancedSearch/PeopleAJAX.aspx?users=" + myVar, true)
    mygetrequest.send(null)

    // load values
}

FillPeopleColleagueFields();
