tstFunction = function(message) {
    alert("Main Window " + message);
}

     function Hash() {
         this.length = 0;
         this.items = new Array();
         for (var i = 0; i < arguments.length; i += 2) {
             if (typeof (arguments[i + 1]) != 'undefined') {
                 this.items[arguments[i]] = arguments[i + 1];
                 this.length++;
             }
         }

         this.removeItem = function(in_key) {
             var tmp_previous;
             if (typeof (this.items[in_key]) != 'undefined') {
                 this.length--;
                 var tmp_previous = this.items[in_key];
                 delete this.items[in_key];
             }

             return tmp_previous;
         }

         this.getItem = function(in_key) {
             return this.items[in_key];
         }

         this.setItem = function(in_key, in_value) {
             var tmp_previous;
             if (typeof (in_value) != 'undefined') {
                 if (typeof (this.items[in_key]) == 'undefined') {
                     this.length++;
                 }
                 else {
                     tmp_previous = this.items[in_key];
                 }

                 this.items[in_key] = in_value;
             }

             return tmp_previous;
         }

         this.hasItem = function(in_key) {
             return typeof (this.items[in_key]) != 'undefined';
         }

         this.clear = function() {
             for (var i in this.items) {
                 delete this.items[i];
             }

             this.length = 0;
         }
     }


     var tgt = "inrCtrCnt"
     var imgNames = new Array();
     var mHsh = new Hash();
     var imgPrev = ""
     var mnuPrev = ""
     function pfxSfx(imgSrc) {
         var imgPfxs = imgSrc.split("_");
         var imgPfx = imgPfxs[0];
         var lenPfx = imgPfx.length;
         var imgSfx = imgSrc.substring(lenPfx);
         var _imgSel = _imgLoc + imgPfx + "_Sel" + imgSfx;
         return _imgSel;
     }
     function rtnCtr(imgDiv) {
         return imgDiv.replace("bti", "btc");
     }
     function clkItm(name, mnuId, mnuTgt, imgSrc, menuCall) {
         this.mnuId = mnuId;
         this.mnuTgt = mnuTgt;
         var b = name.substring(1);
         this.imgDiv = "bti" + b;

         this.name = name;
         this.imgSrc = imgSrc;
         var tgt = this.mnuTgt;  //  tgtIn;
         var is = pfxSfx(imgSrc);
         this.imgSel = is;
         var ic = "btc" + b;    // rtnCtr(this.imgDiv);
         this.itemContainer = ic;   // rtnCtr(this.imgDiv);

         /* 
         example of function / method                                 
         this.talk = function() {
         alert(this.name + " say meeow!")
         }
         */
     }

     var clkItmcall = ""

     var tgt = ""

  

     

	    
	    function onLd() {
	        window.moveTo(0, 0);
	        window.resizeTo(screen.width,screen.height);
	    }	    
  
    function svrSend(value) {
        // 
        // Instead of a form value being written the server is being called 
        CallSvr(value, "");
        // the call to the server will reply
    }

    function svrRec(rValue) {
        var s = rValue.substring(0, 1)
        document.getElementById("displayArea").style.display = "none";
        document.getElementById("inrCtrCnt").style.display = "block";

        
        if (s == "&") {
            // break at next ?(1)
            rValue = rValue.substring(2);
            document.getElementById(tgt).innerHTML = rValue;
            svrSend("?");
        } else if (s == "$") {
        rValue = rValue.substring(1);
        document.getElementById(tgt).innerHTML = rValue;
        // evaluate content it is a map
        // just call the map code!
        loadMap();
         //
        } else if (s == "?") {
            rValue = rValue.substring(1);
            var rVals = rValue.split("#?#");
            document.getElementById(tgt).innerHTML = rVals[0];
            tgt = "navPnl";
            document.getElementById(tgt).innerHTML = rVals[1];
            //
        } else if (s == "c") {
        // shopping cart the variables are not used 
            rValue = rValue.substring(1);
            document.getElementById("displayArea").style.display = "block";
            document.getElementById("inrCtrCnt").style.display = "none";
            // document.getElementById("shopCt").src = "";
            // document.getElementById("shopCt").src = "shoppingCart.aspx";
            document.getElementById("displayArea").innerHTML = rValue;
            // document.getElementById("shopCt").height = "520px";
            // document.getElementById(shopCt).width = arg5;

            //

        }else if (s == "#") {
                rValue = rValue.substring(1);
                // 
                window.location.href= "login.aspx" ;
        } else if (s == "%") {
                // send to child
                rValue = rValue.substring(1);

            } else {
                if (s != "%") {
                    document.getElementById(tgt).innerHTML = rValue;
                }
            }       
          
        }
    function clk(name, menuId, mnuTgt, imgSrc) {
        //
        // Instead of a form value being written the server is being called
        var cItm = new clkItm(name, menuId, mnuTgt, imgSrc);

        var m = cItm.mnuId;
        var ct = mHsh.length;
        var exists = mHsh.hasItem(m);
        var oMnu;
        if (exists != false) {
            var oldItm = mHsh.getItem(cItm.mnuId);
            resetImg(oldItm);
        } else {
            mHsh.setItem(cItm.mnuId, cItm);
        }
        var i = cItm.imgSel;
        var d = cItm.imgDiv;
        document.getElementById(d).src = i;


        mHsh.setItem(menuId, cItm);
        tgt = mnuTgt;
        closePu(tgt);        
        // svrSend(cItm.name + ":" + cItm.mnuTgt,"")
        // the server does not require the tgt item it is already embedded
        svrSend(cItm.name, "");

    }

    function clkOpt(name, menuId, mnuTgt, imgSrc) {
        //
        // if the school name is set! just open the container which holds the List!
        // or load the list and let it display school content!
        //
        // Instead of a form value being written the server is being called
        // this site only has a fixed number of items but all other sites will be dynamic!
        // reload the page!
        // call the click event from the listItems page
        // tgtSend('Abbey Lane,')
        //
        var cItm = new clkItm(name, menuId, mnuTgt, imgSrc);
        // 
        var m = cItm.mnuId;
        var ct = mHsh.length;
        var exists = mHsh.hasItem(m);
        var oMnu;
        if (exists != false) {
            var oldItm = mHsh.getItem(cItm.mnuId);
            resetImg(oldItm);
        } else {
            mHsh.setItem(cItm.mnuId, cItm);
        }
        var i = cItm.imgSel;
        var d = cItm.imgDiv;
        document.getElementById(d).src = i;


        mHsh.setItem(menuId, cItm);
        tgt = mnuTgt;
        closePu(tgt);
        // svrSend(cItm.name + ":" + cItm.mnuTgt,"")
        // the server does not require the tgt item it is already embedded
        svrSend(cItm.name, "");

    }

    function clk2(name, menuId, mnuTgt, imgSrc) {
        //
        closePu(tgt);
        // svrSend(cItm.name + ":" + cItm.mnuTgt,"")
        // the server does not require the tgt item it is already embedded
        svrSend("!" + name, "");

    }
    function delCt() {
        //
        svrSend("*", "");
    }
    function clkSsn(name, menuId, mnuTgt, imgSrc,luVal) {
        //
        // click ssn contains 1 extra field, this will allow a lookup from table
        var cItm = new clkItm(name, menuId, mnuTgt, imgSrc);

        var m = cItm.mnuId;
        var ct = mHsh.length;
        var exists = mHsh.hasItem(m);
        var oMnu;
        if (exists != false) {
            var oldItm = mHsh.getItem(cItm.mnuId);
            resetImg(oldItm);
        } else {
            mHsh.setItem(cItm.mnuId, cItm);
        }
        var i = cItm.imgSel;
        var d = cItm.imgDiv;
        document.getElementById(d).src = i;


        mHsh.setItem(menuId, cItm);
        tgt = mnuTgt;
        closePu(tgt);
        // svrSend(cItm.name + ":" + cItm.mnuTgt,"")
        // the server does not require the tgt item it is already embedded
        svrSend("!sn|" + cItm.name + "|" + luVal, "");

    }    
    function clkPc(name, menuId, mnuTgt, imgSrc) {
        //
        // Instead of a form value being written the server is being called
        var cItm = new clkItm(name, menuId, mnuTgt, imgSrc);

        var m = cItm.mnuId;
        var ct = mHsh.length;
        var exists = mHsh.hasItem(m);
        var oMnu;
        if (exists != false) {
            var oldItm = mHsh.getItem(cItm.mnuId);
            resetImg(oldItm);
        } else {
            mHsh.setItem(cItm.mnuId, cItm);
        }
        var i = cItm.imgSel;
        var d = cItm.imgDiv;
        document.getElementById(d).src = i;


        mHsh.setItem(menuId, cItm);
        tgt = mnuTgt;
        closePu(tgt);
        // svrSend(cItm.name + ":" + cItm.mnuTgt,"")
        // the server does not require the tgt item it is already embedded
        svrSend("!pc|" + cItm.name, "");

    }
  
        
    function showLi(tgtIn, action, val) {
        tgt = tgtIn;
        // closePu(tgt);
        if (action == "lg") {
            // var _obj = mHsh.getItem(menuId);
            // var _imgId = cItm.imgId;
            //  var imgIds = cItm.split("|");
            //  var imgId = imgIds[0];
            var usr = document.getElementById("usr").value;
            var pwd = document.getElementById("pw").value;
            val = "!lg|" + usr + "|" + pwd;

        } else if (action == "sc") {
        // get the option text and value
        // try
        // try
            val = "!sc|" + action + "|" + val;

        } else {
            val = "!ev|" + action + "|" + val;
        }


        var tmp = "val";
        svrSend(val);
    }
    function showSc(tgtIn, action, val) {
        tgt = tgtIn;

        if (action == "sc") {
            // get selected options
            //
            // val = "!sc|" + usr + "|" + pwd;
            var sel = document.getElementById("selOpt1");
            var val = sel.options[sel.selectedIndex].value;
            var val2 = sel.options[sel.selectedIndex].text;
            var msg = ""
            if (val != "INVALID|Select Size From Drop Down") {
                document.getElementById(tgt).style.left = "360px";
                document.getElementById(tgt).style.width = "550px";
                msg = "";
                document.getElementById("scItmMsg").innerHTML = msg;
                val = "!sc|" + action + "||" + val;
                var tmp = "val";
                svrSend(val);
            } else{
                msg = "<span class= 'liHighlight'>PLEASE SELECT A SIZE FROM THE LIST ABOVE.</span>";
                document.getElementById("scItmMsg").innerHTML = msg;
            }

        } else if (action == "scCt") {
            puOpn = "Y";
            //  document.getElementById("displayArea").style.display = "block";
            //  document.getElementById("inrCtrCnt").style.display = "none";
        
            val = "!scCt|" + action + "|" + val;
            svrSend(val);
        } else if (action == "scPp") {
            puOpn = "Y";
           //  document.getElementById("displayArea").style.display = "block";
           //  document.getElementById("inrCtrCnt").style.display = "none";

            val = "!scCt|" + action + "|" + val;
            svrSend(val);
        } else {
            // error
        }
    }
    var puOpn = "N"
    function showPu(tgtIn, action, val) {
        if (puOpn != "Y") {
            puOpn = "Y";
            tgt = tgtIn;
            document.getElementById("displayArea").style.display = "block";
            document.getElementById("inrCtrCnt").style.display = "none";
            val = "!pu|" + action + "|" + val;
            svrSend(val);
        }

        }
        function closePu(tgtIn) {
            if (puOpn == "Y") {
                puOpn = "N";
                tgt = tgtIn;
                // document.getElementById("displayArea").innerHTML = "";
                document.getElementById("displayArea").style.display = "none";
                document.getElementById("inrCtrCnt").style.display = "block";
            }


        }
        var doc;
        function optSetVis(name, row) {
            var n1 = name + "_Opt_" + row;
            var n2 = name + "_Sel_" + row;
            var e1 = name + "_SelEdit_" + row;
            var e2 = name + "_OptEdit_" + row;
            var e3 = name + "_SelOpt_" + row;
            doc = document.getElementById(e3);
            document.getElementById(n1).style.display = "block";
            document.getElementById(n2).style.display = "none";
            // document.getElementById(e1).style.display = "block";
            // document.getElementById(e2).style.display = "none";
        }
        function updVals(name, row, method) {
            // responsible for sending the data the server requires
            var e1 = name + "_SelOpt_" + row;
            // var newVal = document.getElementById(e1).value;
            var w = doc.selectedIndex; // document.getElementById(e1).selectedIndex;
            var selected_text = doc.options[w].text; // document.getElementById(e1).options[w].text;
            var newVal = doc.options[w].value;
            var valOut = "!" + method + "|" + row + "|" + newVal + "|" + selected_text + "|" + tgt;
            svrSend(valOut);
            newVal = newVal
            // do something!
        }

  


