﻿/*!
* SIIT Card JavaScript Library v2.0.0
*
*
* Copyright (c) 2004-2010 nova Terra Studios Inc.
*
* Date: 2010-02-21 
* Revision: 14
*/

//var strServer = "localhost:64254";
var strServer = "www.321forkeeps.com";

var ab = new function() {

    this.pageLoadedab = 0;
    this.tblGrid = null;
    this.strlrg = ""; // qtype
    this.strsmll = "";
    this.strwfilter = "";
    this.strctlwhichpage = "";
    this.strpagemaxpagenum = "";
    this.strartistid = "";
    this.strcardmemberguid = "";
    this.idnumsel = "";
    this.idgalleryid = "";
    this.isallgall = "";
    this.ididx = "";
    this.idtidx = "";
    this.ididxp = "";
    this.ididxn = "";
    this.smaxtotalpages = "";
    this.smaxrowsgrid = "";
    this.strmynews = "";


    //---------------------------------------------------------------------------------------
    this.loadedab = function(i, l, s, wp, mp, ai, wt, cmg, cidx, cidxp, cidxn, mip, ctidx, smxrg, ns, f) {

        try {

            if (document.getElementById(i) != null) {
                this.tblGrid = i;
                this.strlrg = l;
                this.strsmll = s;
                this.strwfilter = wt;
                this.strctlwhichpage = wp;
                this.strpagemaxpagenum = mp;
                this.strartistid = ai;
                this.strcardmemberguid = cmg;
                this.ididx = cidx;
                this.idtidx = ctidx;
                this.ididxp = cidxp;
                this.ididxn = cidxn;
                this.idnumsel = ns;
                this.smaxtotalpages = mip;
                this.smaxrowsgrid = smxrg;

                // this.f();
                this.popgridview();

            }
            else if (!this.pageLoadedab) {
                setTimeout('this.loadedab(\'' + i + '\',\'' + l + '\',\'' + s + '\',\'' +
            wp + '\',\'' + mp + '\',\'' + ai + '\',\'' + wt + '\',\'' + cmg + '\',\'' + cidx + '\',\'' + cidxp + '\',\'' + cidxn + '\',\'' + mip + '\',\'' + smxrg + '\',\'' + ns + '\',\'' + f + ')', 100);

            }


        } catch (e) { }

        return;
    } //end loadedab

    //============================================================================
    this.HandleClickFilterDrop = function(obj) {
        try {


            //var strTableIdToCloneTo = this.tblGrid;
            //strTableIdToCloneTo = strTableIdToCloneTo.replace("_dlGridView", "_idMyLists");

            //this.HandleListNameClone(strTableIdToCloneTo);

            this.HandleListNameClone("idMyLists");

        }
        catch (err) { }

        return;
    } //end HandleClickFilterDrop

    //============================================================================
    this.HandleListNameClone = function(strTableIdToCloneTo) {
        try {

            // Cleanup first
            //-------------------------
            var objCloneTo = document.getElementById(strTableIdToCloneTo);
            var tblBody = objCloneTo.firstChild;

            var rows = objCloneTo.rows;
            while (rows.length)
                objCloneTo.deleteRow(rows.length - 1);


            // Get my list
            //--------------
            this.OnLookupABInitCustomMenuMyLists(strTableIdToCloneTo, this.strcardmemberguid);


        }
        catch (err) { }

        return;
    } //end HandleListNameClone


    //============================================================================
    this.OnLookupABInitCustomMenuMyLists = function(x, z) {
        try {

            try {
                var tmp = x + ">" + z;

                $.ajax({ url: "http://" + strServer + "/JSONP-EndPoint.asmx/OnLookupABInitCustomMenuMyListsGuid",
                    data: { x: JSON.stringify(tmp) },
                    dataType: "jsonp",
                    success: function(json) { ab.HandleSuccessOnLookupABInitCustomMenuMyLists(json); },

                    error: function() {
                        alert("Hit error fn!");
                    }
                })

            }
            catch (err) {
                alert("Error encountered in OnLookupABInitCustomMenuMyLists:" + err.description)
            }


        }
        catch (err) { }

        return;
    } //end OnLookupABInitCustomMenuMyLists


    //=============================================================================
    this.HandleSuccessOnLookupABInitCustomMenuMyLists = function(json) {


        var objAFirstOne = null;

        try {

            result = json.d;

            if (result == "") {

            }
            else {


                var arrFirstSplit = result.split("~&&&&&&&&&&~");

                var strTableIdToCloneTo = arrFirstSplit[0];
                var strmylistnames = arrFirstSplit[1];


                // Recreate rows
                //-------------------------
                var objOrigLists = document.getElementById(strTableIdToCloneTo);
                var arrListnames = strmylistnames.split(',');
                var strListCount = arrListnames.length;

                var nNumRecords = new Number(strListCount);
                var nOutput = 0;

                for (var z = 0; z < nNumRecords; z++) {
                    try {

                        var strZListName = arrListnames[z];

                        if (strZListName != "") {

                            // if in my returning list
                            nOutput = nOutput + 1;
                            this.HandleListNameAppendTo(strTableIdToCloneTo, strZListName, "off");
                        }


                    } catch (err) { }

                } //end foreach

                if (nOutput == 0) {
                    this.HandleListNameAppendTo(strTableIdToCloneTo, "- No Lists -", "off");
                }

            } //end if


        }
        catch (err) {
            alert("Error encountered in HandleSuccessOnLookupABInitCustomMenuMyLists:" + err.description)
        }

        strWhichMessage = "";

        return;
    } //end HandleSuccessOnLookupABInitCustomMenuMyLists

    //============================================================================
    this.HandleListNameAppendTo = function(strTableTo, strNewListName, strOnOff) {
        try {


            var objCloneTo = document.getElementById(strTableTo);

            var tmpRow = this.AppendRow(objCloneTo.children[0]);

            var tmpCell = this.AppendCell(tmpRow);
            tmpCell.innerHTML = strNewListName;

            tmpCell.className = strOnOff;
            tmpCell.align = "left";
            tmpCell.vAlign = "middle";

            if (strNewListName != "- No Lists -")
{
            tmpCell.onclick = function() { ab.HandleClickABManageMenuCustomRow(this, strTableTo); };
}


        }
        catch (err) { }

        return;
    } //end HandleListNameAppendTo

    //============================================================================
    this.HandleClickResetListName = function() {

        try {

            var strRoot = this.tblGrid;
            strRoot = strRoot.replace("_dlGridView", "");

            var objTDRHS = document.getElementById(strRoot + "_idListNameDisplay");
            objTDRHS.style.display = "none";


        }
        catch (err) { }

        return;

    } //end HandleClickResetListName

    //============================================================================
    this.HandleClickResetQuery = function() {

        try {

            this.HandleClickResetListName();
            this.strwfilter = "*";

            // Handle: reoutput contacts
            var strWhichPage = "1";
            var strMaxNumIndexPage = "5";
            this.HandleReIndex();
            this.OnLookupShowABContacts(strWhichPage, strMaxNumIndexPage, this.strcardmemberguid, this.strwfilter);

        }
        catch (err) { }

        return;

    } //end HandleClickResetQuery

    //============================================================================
    this.HandleClickABManageMenuCustomRow = function(objclicked, strRootClientID) {

        try {
            var objCell = objclicked;
            var strListName = objCell.innerHTML;

            var strRootClientID = this.tblGrid;
            var strRootClientID2 = strRootClientID.replace("_dlGridView", "");

            //var strRootClientID2 = strRootClientID.replace("_idMyLists", "");


            var objTDRHS = document.getElementById(strRootClientID2 + "_idListNameDisplay");
            objTDRHS.style.display = "inline";

            var objTDRHSIn = document.getElementById(strRootClientID2 + "_idWhichListName");
            objTDRHSIn.innerHTML = "You are viewing contacts from " + strListName;

            this.strwfilter = "*custom&&" + strListName;

            var strWhichPage = "1";
            var strMaxNumIndexPage = "5";
            this.HandleReIndex();
            this.OnLookupShowABContacts(strWhichPage, strMaxNumIndexPage, this.strcardmemberguid, this.strwfilter);


        }
        catch (err) { }

        return;
    } //end HandleClickABManageMenuCustomRow



    //============================================================================
    this.AppendCell = function(srcRow) {
        if (srcRow != null) {
            return srcRow.insertCell(-1);

        }
        else {
            alert("Error while creating table. Cause: Container row is null!");
        }
    }
    //============================================================================
    this.AppendRow = function(srcTbodies) {
        if (srcTbodies != null) {

            return srcTbodies.insertRow(-1);
        }
        else {
            alert("Error while creating table. Cause: Container Table is null!");
        }
    }
    //============================================================================
    this.popgridview = function() {

        this.pageLoadedab = 1;

        var kCtl = this.ididx + "_ctl";
        this.HandlePageClickContact(this.ididx, document.getElementById(kCtl + "00" + "_idPagingLink").id);

        var objTitle = document.getElementById("idTitle");

        if (this.strlrg == "ic") {
            objTitle.innerHTML = "Contacts Not Yet SendItInTime Members";
        }
        else {
            objTitle.innerHTML = "SendItInTime Contact List";
        }

        return;
    } //end popgridview


    //============================================================================
    this.ShowABContacts = function() {

        try {

            var objWhichPage = document.getElementById(this.strctlwhichpage);  // request
            var strWhichPage = objWhichPage.value;
            if (strWhichPage == "") {
                strWhichPage = "1";
            }

            // Handle: check if there is text there
            var strvalue = this.strwfilter;
            if (objtxbox != null) {
                var strvalue = objtxbox.value;
                if ((strvalue != "") && (strvalue != "Start Typing a Name")) {
                    strvalue = "find|$$|" + strvalue;
                }

            }

            var kCtl = this.ididx + "_ctl";
            var objCellAnchor4 = document.getElementById(kCtl + "04" + "_idPagingLink");


            this.OnLookupShowABContacts(strWhichPage, objCellAnchor4.firstChild.data, this.strcardmemberguid, strvalue);



        }
        catch (err) {

            //alert("Error encountered in ShowABContacts:" + err.description)

        }
        return;
    } //end ShowABContacts




    //============================================================================
    this.OnLookupShowABContacts = function(x, y, mgid, wf) {

        try {
            var tmp = x + ">" + y + ">" + mgid + ">" + wf + ">" + this.smaxrowsgrid + ">" + this.strlrg;

            $.ajax({ url: "http://" + strServer + "/JSONP-EndPoint.asmx/OnLookupShowABContacts",
                data: { x: JSON.stringify(tmp) },
                dataType: "jsonp",
                success: function(json) { ab.HandleSuccessOnLookupShowABContacts(json); },

                error: function() {
                    alert("Hit error fn!");
                }
            })

        }
        catch (err) {
            alert("Error encountered in OnLookupShowABContacts:" + err.description)
        }

        return;

    } //end OnLookupShowABContacts


    //=============================================================================
    this.HandleSuccessOnLookupShowABContacts = function(json) {


        var objAFirstOne = null;

        try {

            var result = json.d;

            var objTblGrid = document.getElementById(this.tblGrid);  // GRID TABLE OBJECT

            //var objImgLrg = document.getElementById(this.strlrg);    // Img Large
            var objImgSmll = document.getElementById(this.strsmll);  // Img Small


            if (result == "") {

                // TODO: Handle: IF NO DATA
                //objTblGrid.style.display = "none";

                //HandleShowMessage("4");


            }
            else {


                objTblGrid.style.display = "inline";  // child



                var arrFirstSplit = result.split("~&&&&&&&&&&~");

                this.smaxtotalpages = arrFirstSplit[0];

                var objGridMess = document.getElementById("idGridMess")
                if (objGridMess != null) {
                    if (this.smaxtotalpages == "0") {
                        objGridMess.style.display = "inline";
                        objTblGrid.style.display = "none";  // child
                    }
                    else {
                        objGridMess.style.display = "none";
                    }
                } //end if

                var arRecords = arrFirstSplit[1].split("~&&&&&~");

                var nNumRecords = arRecords.length - 1;
                var nMaxCells = new Number(this.smaxrowsgrid); // hardcoded because objCells.length wasnt working in firefox

                try {
                    objCells = objTblGrid.cells;
                    nMaxCells = objCells.length

                } catch (err) { }

                for (var z = 0; z < nMaxCells; z++) {

                    try {
                        //document.getElementById(idnumsel).innerHTML = arrFirstSplit[0];

                        this.HandleSuccessABCell(arRecords, z,
                            "", objImgSmll.value, nNumRecords);

                        var objidtidx = document.getElementById(this.idtidx);

                        if (nNumRecords == 0) {
                            objidtidx.style.display = "none";
                        }
                        else {
                            objidtidx.style.display = "inline";
                        }




                    } catch (err) { }

                } //end foreach

                var kCtl = this.ididx + "_ctl";
                var strLastIndexValue = document.getElementById(kCtl + "04" + "_idPagingLink").firstChild.data;
                this.HandleIndexCheckForHiddenCells(this.smaxtotalpages, new Number(strLastIndexValue), 5);

            } //end if result coming back



        }
        catch (err) {
            alert("Error encountered in HandleSuccessOnLookupShowABContacts:" + err.description)
        }

        strWhichMessage = "";

        return;
    } //end HandleSuccessOnLookupShowABContacts


    //============================================================
    this.HandleIndexCheckForHiddenCells = function(smaxtotalpages, nendindex, nMaxCells) {
        // Handle: check for hiddencells

        var nmp = new Number(smaxtotalpages);
        var kCtl = this.ididx + "_ctl";

        //if (nendindex > nmp) {
        for (var z = 0; z < nMaxCells; z++) {

            try {

                var kZ = z;
                if (z < 10) {
                    kZ = "0" + z;
                }

                var nCurNum = new Number(document.getElementById(kCtl + kZ + "_idPagingLink").firstChild.data);
                if (nCurNum > nmp) {

                    document.getElementById(kCtl + kZ + "_idPagingLink").style.display = "none";
                }
                else {
                    document.getElementById(kCtl + kZ + "_idPagingLink").style.display = "inline";
                }



            }
            catch (err) { }
        } //end for



        //} //end if check should be hidden numbers



        // check: hide next
        var objBN = document.getElementById(this.ididxn);

        if (nendindex >= nmp) {

            objBN.style.display = "none";

        }
        else {
            objBN.style.display = "inline";
        }

        return;
    } //end HandleIndexCheckForHiddenCell



    //=============================================================================
    this.HandleSuccessABCell = function(arRecords, z,
    strImgLrgValue, strImgSmallValue,
    nNumRecords) {


        //-----------------------------------------------
        // Handle: if we have data, show/hide cell
        //-----------------------------------------------
        var kCtl = this.tblGrid + "_ctl";
        var kZ = z;
        if (z < 10) {
            kZ = "0" + z;
        }


        if (z < nNumRecords) {

            try {

                var arRecordValues = arRecords[z].split("~&&~");

                var strOnClass = "PIThumb";
                if (this.smaxrowsgrid != "9") {
                    if (this.strmynews == "1") {
                        strOnClass = "PIThumbNews";
                    }
                    else {
                        strOnClass = "PIThumbEdit";
                    }
                }
                document.getElementById(kCtl + kZ + "_idCellHolder").className = strOnClass;



                //---------------------------------------
                // Handle: Set thumb and large image
                //---------------------------------------
                document.getElementById(kCtl + kZ + "_idThumbAct").src = strImgSmallValue.replace("xxxxx", arRecordValues[2]);

                var strName = arRecordValues[4];
                var strEA = arRecordValues[3];
                if (strName == strEA) {

                    strName = "";

                }

                document.getElementById(kCtl + kZ + "_idName").innerHTML = strName;


                var strAdd = arRecordValues[3];

                document.getElementById(kCtl + kZ + "_idEA").title = strAdd;


                if ((this.smaxrowsgrid != "9") && (this.strmynews != "1")) {
                    var objRemName1 = document.getElementById(kCtl + kZ + "_idPopupContactName1");
                    objRemName1.innerHTML = strAdd;

                    var objRemName2 = document.getElementById(kCtl + kZ + "_idPopupContactName2");
                    objRemName2.innerHTML = strAdd;


                    var objRemMCID = document.getElementById(kCtl + kZ + "_idmcid");
                    objRemMCID.innerHTML = arRecordValues[5];


                    //var objEditName = document.getElementById(kCtl + kZ + "_idEditName");

                    /* if (objEditName != null) {

                        objEditName.onkeydown = function(event) {

                            var holder;
                    if (window.event) {
                    holder = window.event.keyCode;
                    }
                    //FF uses this 
                    else {
                    holder = event.which;

                            }
                    s
                    return keyz(holder, objRemMCID.innerHTML, this);
                    }
                    }*/

                }
                else {
                    if (arRecordValues[3].length > 10) {
                        strAdd = arRecordValues[3].substring(0, 8) + "...";
                    }
                } //end if


                document.getElementById(kCtl + kZ + "_idEA").innerHTML = strAdd;

                if (arRecordValues[3] == "") {
                    document.getElementById(kCtl + kZ + "_idEA").style.display = "none";
                }
                else {
                    document.getElementById(kCtl + kZ + "_idEA").style.display = "inline";

                }

                if (strName == "") {
                    document.getElementById(kCtl + kZ + "_idName").style.display = "none";
                }
                else {
                    document.getElementById(kCtl + kZ + "_idName").style.display = "inline";

                }

                document.getElementById(kCtl + kZ + "_idmcid").innerHTML = arRecordValues[5];


            } catch (err) { }

        }
        else {

            var strOnClass = "PIThumbNone";
            if (this.smaxrowsgrid != "9") {
                if (this.strmynews == "1") {
                    strOnClass = "PIThumbNoneNews";
                }
                else {
                    strOnClass = "PIThumbNoneEdit";
                }

            }

            document.getElementById(kCtl + kZ + "_idCellHolder").className = "PIThumbNone";

        } //end if



        return;
    } //end HandleSuccessABCell



    //============================================================================
    this.HandlePageClickNext = function() {

        try {
            var kCtl = this.ididx + "_ctl";


            var objWhichPage = document.getElementById(this.strctlwhichpage);
            var strCurrentPageNumber = objWhichPage.value;

            var bIsSame = this.IsIdxEqual((new Number(strCurrentPageNumber) + 1), "00");
            if (bIsSame == true) {
                this.HandlePageClickContact(this.ididx, document.getElementById(kCtl + "00" + "_idPagingLink").id);
                return;
            }

            bIsSame = this.IsIdxEqual((new Number(strCurrentPageNumber) + 1), "01");
            if (bIsSame == true) {
                this.HandlePageClickContact(this.ididx, document.getElementById(kCtl + "01" + "_idPagingLink").id);
                return;
            }

            bIsSame = this.IsIdxEqual((new Number(strCurrentPageNumber) + 1), "02");
            if (bIsSame == true) {
                this.HandlePageClickContact(this.ididx, document.getElementById(kCtl + "02" + "_idPagingLink").id);
                return;
            }

            bIsSame = this.IsIdxEqual((new Number(strCurrentPageNumber) + 1), "03");
            if (bIsSame == true) {
                this.HandlePageClickContact(this.ididx, document.getElementById(kCtl + "03" + "_idPagingLink").id);
                return;
            }

            bIsSame = this.IsIdxEqual((new Number(strCurrentPageNumber) + 1), "04");
            if (bIsSame == true) {
                this.HandlePageClickContact(this.ididx, document.getElementById(kCtl + "04" + "_idPagingLink").id);
                return;
            }
            else {

                this.HandlePageClickContact(this.ididx, document.getElementById(kCtl + "04" + "_idPagingLink").id);
                this.HandlePageClickContact(this.ididx, document.getElementById(kCtl + "01" + "_idPagingLink").id);
            }


        } catch (err) { }

    } //end HandlePageClickNext




    //============================================================================
    this.IsIdxEqual = function(nPageNumber, strThisCtrl) {
        var bIsSame = false;

        try {
            var kCtl = this.ididx + "_ctl";
            var strLastIndexPageNumber = document.getElementById(kCtl + strThisCtrl + "_idPagingLink").firstChild.data;

            if (new String(nPageNumber) == strLastIndexPageNumber) {
                bIsSame = true;
            }

        } catch (err) { }

        return bIsSame;
    } //end IsIdxEqual

    //============================================================================
    this.HandlePageClickPrevious = function() {

        try {
            var kCtl = this.ididx + "_ctl";


            var objWhichPage = document.getElementById(this.strctlwhichpage);
            var strCurrentPageNumber = objWhichPage.value;

            var bIsSame = this.IsIdxEqual((new Number(strCurrentPageNumber) - 1), "00");
            if (bIsSame == true) {
                this.HandlePageClickContact(this.ididx, document.getElementById(kCtl + "00" + "_idPagingLink").id);
                return;
            }

            bIsSame = this.IsIdxEqual((new Number(strCurrentPageNumber) - 1), "01");
            if (bIsSame == true) {
                this.HandlePageClickContact(this.ididx, document.getElementById(kCtl + "01" + "_idPagingLink").id);
                return;
            }

            bIsSame = this.IsIdxEqual((new Number(strCurrentPageNumber) - 1), "02");
            if (bIsSame == true) {
                this.HandlePageClickContact(this.ididx, document.getElementById(kCtl + "02" + "_idPagingLink").id);
                return;
            }

            bIsSame = this.IsIdxEqual((new Number(strCurrentPageNumber) - 1), "03");
            if (bIsSame == true) {
                this.HandlePageClickContact(this.ididx, document.getElementById(kCtl + "03" + "_idPagingLink").id);
                return;
            }

            bIsSame = this.IsIdxEqual((new Number(strCurrentPageNumber) - 1), "04");
            if (bIsSame == true) {
                this.HandlePageClickContact(this.ididx, document.getElementById(kCtl + "04" + "_idPagingLink").id);
                return;
            }
            else {

                this.HandlePageClickContact(this.ididx, document.getElementById(kCtl + "00" + "_idPagingLink").id);
                this.HandlePageClickContact(this.ididx, document.getElementById(kCtl + "03" + "_idPagingLink").id);

            }


        } catch (err) { }


    } //end HandlePageClickPrevious


    this.objtxbox = null;
    //============================================================================
    this.HandleKeypressAB = function(strCtrlId) {


        try {

            this.objtxbox = document.getElementById(strCtrlId);  // table

            var strvalue = this.objtxbox.value;

            this.HandleClickResetListName();

            if (strvalue != "") {
                //this.strwfilter = strvalue;
                strvalue = "find|$$|" + strvalue;
                this.strwfilter = "find|$$|" + strvalue;

            }
            else {
                this.strwfilter = "*";
            }

            // Handle: reoutput contacts
            var strWhichPage = "1";
            var strMaxNumIndexPage = "5";
            this.HandleReIndex();
            this.OnLookupShowABContacts(strWhichPage, strMaxNumIndexPage, this.strcardmemberguid, strvalue);

        }
        catch (err) { }

        return;
    } //end HandleKeypressAB


    //============================================================================
    this.HandleReIndex = function() {
        try {
            var kCtl = this.ididx + "_ctl";

            document.getElementById(kCtl + "00" + "_idPagingLink").firstChild.data = "1";
            document.getElementById(kCtl + "01" + "_idPagingLink").firstChild.data = "2";
            document.getElementById(kCtl + "02" + "_idPagingLink").firstChild.data = "3";
            document.getElementById(kCtl + "03" + "_idPagingLink").firstChild.data = "4";
            document.getElementById(kCtl + "04" + "_idPagingLink").firstChild.data = "5";

            var objBP = document.getElementById(this.ididxp);
            objBP.style.display = "none";

            var objBN = document.getElementById(this.ididxn);
            objBN.style.display = "none";

            document.getElementById(this.strctlwhichpage).value = "1";


            document.getElementById(kCtl + "00" + "_idPagingLink").className = "IXButABOn";
            document.getElementById(kCtl + "01" + "_idPagingLink").className = "IXButABOff";
            document.getElementById(kCtl + "02" + "_idPagingLink").className = "IXButABOff";
            document.getElementById(kCtl + "03" + "_idPagingLink").className = "IXButABOff";
            document.getElementById(kCtl + "04" + "_idPagingLink").className = "IXButABOff";


        }
        catch (err) { }
        return;
    } //end HandleReIndex



    //============================================================================
    this.HandlePageClickContact = function(strTableId, strCtrlId) {


        try {
            var objCellClicked = document.getElementById(strCtrlId);  // table

            var objTblIdx = document.getElementById(strTableId);  // table

            var strCellClickValue = objCellClicked.firstChild.data;

            var kCtl = this.ididx + "_ctl";


            var strstartindex = document.getElementById(kCtl + "00" + "_idPagingLink").firstChild.data;
            var strendindex = document.getElementById(kCtl + "04" + "_idPagingLink").firstChild.data;

            var nstartindex = new Number(strstartindex);
            var nendindex = new Number(strendindex);


            // handle: check to reindex from next
            var bReIndx = false;

            if (strCellClickValue == strendindex) {
                nstartindex = new Number(strCellClickValue);
                nendindex = nstartindex + 5 - 1;
                bReIndx = true;
            }

            // handle: check to reindex from next
            if (bReIndx == false) {
                if ((strCellClickValue == strstartindex) && (strstartindex != "1")) {
                    if (nstartindex < 5) {
                    }
                    else if (strCellClickValue == nstartindex) {
                        nendindex = new Number(strCellClickValue);
                        nstartindex = nendindex - 4;
                        bReIndx = true;
                    }
                }
            }


            // handle: check to reindex
            var nMaxCells = 5; // hardcoded because objCells.length wasnt working in firefox
            var nCurrIndex = nstartindex;
            if (bReIndx == true) {
                for (var z = 0; z < nMaxCells; z++) {

                    try {
                        var kCtl = this.ididx + "_ctl";
                        var kZ = z;
                        if (z < 10) {
                            kZ = "0" + z;
                        }

                        document.getElementById(kCtl + kZ + "_idPagingLink").firstChild.data = nCurrIndex;
                        nCurrIndex = nCurrIndex + 1;

                    }
                    catch (err) { }
                } //end for
            } //end reindex


            this.HandleIndexCheckForHiddenCells(this.smaxtotalpages, nendindex, nMaxCells);





            for (var z = 0; z < nMaxCells; z++) {

                try {
                    var kCtl = this.ididx + "_ctl";
                    var kZ = z;
                    if (z < 10) {
                        kZ = "0" + z;
                    }


                    var objCellAnchor = document.getElementById(kCtl + kZ + "_idPagingLink");

                    if (document.getElementById(kCtl + kZ + "_idPagingLink").firstChild.data != "0") {
                        //document.getElementById(kCtl + kZ + "_idPagingLink").style.display = "inline";
                    }


                    // Init each cell
                    //---------------------------------------------
                    objCellAnchor.className = "IXButABOff";


                    // If curr cell is page wanted - set special
                    //objCellClicked.firstChild.data
                    //---------------------------------------------
                    if (objCellAnchor.firstChild.data == strCellClickValue) {
                        objCellAnchor.className = "IXButABOn";

                        var objWhichPage = document.getElementById(this.strctlwhichpage);
                        objWhichPage.value = objCellAnchor.innerHTML;

                        // Handle call to lookup data
                        //---------------------------------------------
                        // ensure - hiddenfieldis set
                        this.ShowABContacts();

                    } //end if


                    // check: hide prev
                    var objBP = document.getElementById(this.ididxp);
                    var objCellAnchor = document.getElementById(kCtl + "00" + "_idPagingLink");
                    if (objCellAnchor.innerHTML == "1") {
                        objBP.style.display = "none";
                    }
                    else {
                        objBP.style.display = "inline";
                    }


                }
                catch (err) { }
            } //end for

        }
        catch (err) { }

        return;
    } //end HandlePageClickContact

    //============================================================================
    this.AddAddressTO = function(strParentTO, stridemail, stridname) {

        try {

            var objname = document.getElementById(stridname);
            var strname = "";
            if (objname.firstChild != null) {
                strname = objname.firstChild.data;
            }

            var objemail = document.getElementById(stridemail);
            var stremail = objemail.title;

            var objTBSearch = document.getElementById(strParentTO);
            var strtbox = objTBSearch.value;

            if (strtbox != 'find an email address') {

                /* not sure why doing this
                if (str.indexOf('<') > 0) {
                str = str.replace('<', '\"<');
                str = '\"' + str;
                }
                */

            }
            else {
                strtbox = '';

            }

            var inAt = strtbox.search(stremail);

            if (inAt == -1) {
                var strTO = stremail;
                if ((strname != "") && (stremail != "")) {

                    strTO = '"' + strname + '" <' + stremail + '>';
                }

                if (strtbox == '') {
                    objTBSearch.value = strTO;
                }
                else {
                    var strTmp = strtbox + "; " + strTO;
                    objTBSearch.value = strTmp;

                }


            } //end if



        }
        catch (err) {

            alert("Error encountered in AddAddressTO:" + err.description)

        }
        return;

    } //end AddAddressTO

}                 //end ab singleton









