

/* 
    super global wrapper functions not to be namespaced
*/

var $_CORD_DATA = null;

// id : tag id
function _$_(id){
    return document.getElementById(id);
}

// tn = tag name
function _$$_(tn){
    return document.getElementsByName(tn);
}

/*
    end super global
*/

var ATREUS = {}; // namespace        
ATREUS.del_url = "../functions/delete_favorite.aspx";
ATREUS.apt_url = "make_appointment.aspx";
//ATREUS.rte_url = "";

//=============================================================================
ATREUS.starter = function () {
    ATREUS.sfHover();
}


//=============================================================================
// Attach menus items to main top navigation bar
ATREUS.sfHover = function () {
	
	var sfEls = document.getElementById("navMain").getElementsByTagName("LI");

	for (var i=0; i<sfEls.length; i++) {
		
		sfEls[i].onmouseover=function() {
			
			this.className+=" sfhover";
			var theParent = this.parentNode.parentNode.getElementsByTagName("A");
			theParent[0].className = "newHover";
		}
		
		sfEls[i].onmouseout=function() {
			
			this.className=this.className.replace(new RegExp(" sfhover\\b"), " ");
			var theParent = this.parentNode.parentNode.getElementsByTagName("A")
			theParent[0].className = "";
		}
	}
}

//=============================================================================
ATREUS.OnSiteSearch = function(){
   var err = "txt_SearchString not found!";
   var obj = _$_("txt_SearchString");
   if(!obj) throw new Error(err);
   var redir_page = "search_results.aspx?q=" + obj.value;
   window.location = redir_page;
   return false;
}

//=============================================================================
ATREUS.FlipByerAgent = function(obj){
    var af = _$_("AgentFields");
    switch(obj.value){
        case "buyer":
            if(af) af.parentNode.style.display = "none";                
            break;
        case "agent":
            if(af) af.parentNode.style.display = "block"; 
            break;
        default:
            break;
    }
    return false;
}

//=============================================================================
ATREUS.TimedHomeRedirect = function(time){
    window.setTimeout(ATREUS.GoHome,time);
}

//=============================================================================
ATREUS.GoHome = function(){
    var url = "../index.aspx";
    window.location.assign(url); 
}
//=============================================================================
ATREUS.ButtonOnClick = function(obj){
    //debugger;
    var ids = "";
    var url = "";               // function url
    var tn = "CB_" + obj.id;    // tag name
    var cb_list = null;         // checkbox list
    
    // ---
    switch(obj.id){
        case "DLT":
            ids = ATREUS.DeleteOnClick(obj);
            if(ids == "") return;
            url = ATREUS.del_url + "?id=" + ids + "&.done=~/myAtreus.aspx";
            window.location = url;
            return;
        case "APT":
            cb_list = _$$_(tn);
            url = ATREUS.apt_url + "?id=" + ids;
            window.location = url;
            break;
        case "RTE_F":
          
            cb_list = _$$_(tn);
            var rts = ATREUS.BuildRoutesObject(cb_list);
            ATREUS.TBCallWrapper(rts);
            return;
        case "RTE_A":
            cb_list = _$$_(tn);
            var rts = ATREUS.BuildRoutesObject(cb_list);
            ATREUS.TBCallWrapper(rts);
            return;
        default:
            alert("ATREUS.ButtonOnClick:switch error");
    }
    // ---     
    if(!cb_list) throw new Error("cb_list:false");
    var len = (cb_list.length - 1);
    var cb = null;
     // ---
    for(var i = 0;i < cb_list.length;i++){  
        cb = cb_list[i];
        if(cb.tagName != "INPUT") continue;
        if(!cb.checked) continue;
        ids += cb.getAttribute("cid") + ",";
    }
   
    // ---
    ids = ids.substr(0,(ids.length - 1));
    if(ids == "") return;
    loc = url + ids +  "&.done=~/myAtreus.aspx";;
    window.location.assign("");
    window.location.replace(loc);
}

//=============================================================================
ATREUS.BuildRoutesObject = function(cb_list){
    var cb = null;
    var loc = null;
    var lbl = null;
    var cor = null;
    var rts = {};
    var key = "";
    // ---
    
    for(var i = 0;i < cb_list.length;i++){
        cb = cb_list[i];
        if(!cb.checked) continue;
        // ---
        loc = cb.getAttribute("loc");
        if(!loc) throw new Error("loc:false");
        // ---
        lbl = cb.getAttribute("lbl");

        if(!lbl) throw new Error("lbl:false");
        // ---
        cor = loc.split(":");
        key = "\"" + lbl + "\"";
        rts[i] = {};
        rts[i].lat = cor[0];
        rts[i].lng = cor[1];
        /*rts[key] = {};
        rts[key].lat = cor[0];
        rts[key].lng = cor[1];*/
    } // end: for
    
    return rts;                       
}

//=============================================================================
ATREUS.TBCallWrapper = function(obj){
    // alert("ATREUS.TBCallWrapper");
    // sample code
    //var flnk = _$_("FAKE_LINK");
    /*
    var buff = "";
    var loc = null;
    // ---
    for(p in obj){
        loc = obj[p];
        buff += p + " {" + loc.lat + ":" + loc.lng + "}\n";
    }
    */
    // ---
    //GMAPPER.displayThickBoxAndMap(flnk,obj);
    $_CORD_DATA = obj;
}

//=============================================================================
ATREUS.DeleteOnClick = function(obj){
    // get all of delete column
    var tn = "CB_DLT"; //tag name
    var cb_all = _$$_(tn); //cb = check box, _$$_(tn) = getElementsByTagName(tn)
    // id stock
    var dlt_list = new Array();
    // ---
    var cb = null;
    var tt = null;
    // main for loop
    for(var i = 0;i < cb_all.length;i++){
        cb = cb_all[i];
        ttype = cb.attributes.ttype.nodeValue;
        if(!ttype) throw new Error("ttype not found");
        switch(ttype){
            case "c":
                if(cb.checked){
                    dlt_list.push(cb);
                    //GetChildren(i,cb_all);
                }
                break;
            case "f":
                if(cb.checked) dlt_list.push(cb);    
                break;
            default:
                throw new Error("invalid switch value");
        } // end switch
    } // end: for loop
  
    // build return id string
    var ids = "";
    var tmp = "";
    var len = (dlt_list.length - 1);
    for(var x = 0;x <= len;x++){
        tmp = dlt_list[x];
        cid = tmp.attributes.cid.nodeValue;
        ids += (x < len) ? cid + "," : cid;
    }
    // ---
    // inner help function
    // ---
    function GetChildren(idx,list){ //this was throwing the delete bug, commented out the call to this above
        idx++;
        for(idx;idx < list.length;idx++){
            if(list[idx].ttype == "c") return;     
            dlt_list.push(list[idx]);
        }           
    }
    // ---
    return ids;
}


//=============================================================================
//window.onload = ATREUS.starter;
//window.onload = function(){window.onload;()} 

function WindowOnload(f) {
    var prev=window.onload;
    window.onload=function(){
    if(prev)prev(); f();
    }
} 
        
WindowOnload(ATREUS.starter); 
