var is_check = [];
function initSearchPanel(){
    var obj_sp = document.getElementById("searchPanel");
    if(obj_sp && typeof(obj_sp) === "object"){
        var all_td = obj_sp.getElementsByTagName("TD");
        if(all_td && all_td.length > 0){
            for(var i=0; i<all_td.length; i++){
                if(all_td[i].className === "browse_field"){
                    var get_a = all_td[i].getElementsByTagName("A");
                    var get_table = all_td[i].getElementsByTagName("TABLE");
                    if(get_a && get_a.length > 0){
                        get_a[0].onmouseover = function(){
                            panel_shower.mouseOver(this);
                            clearTimeout(panel_shower.closeTimer);                            
                        }
                        get_a[0].onmouseout = function(){
                            panel_shower.mouseOut();
                            //delete panel_shower;
                        }                        
                    }
                    if(get_table && get_table.length > 0){
                        get_table[0].style.display = "none";
                    }
                }
            }
        }
        var get_checkboxs = obj_sp.getElementsByTagName("INPUT");
        if(get_checkboxs && get_checkboxs.length > 0){
            for(var i=0; i<get_checkboxs.length; i++){
                if(get_checkboxs[i].type.toLowerCase() === "checkbox"){
                    if(is_check && typeof(is_check) === "object"){
                        if(get_checkboxs[i].value){
                            if(!is_check.hasOwnProperty(get_checkboxs[i].name.replace("[]",""))){
                                is_check[get_checkboxs[i].name.replace("[]","")] = [];    
                            }  
                            is_check[get_checkboxs[i].name.replace("[]","")][parseInt(get_checkboxs[i].value)] = [];
                            is_check[get_checkboxs[i].name.replace("[]","")][parseInt(get_checkboxs[i].value)]["chk"] = 0;
                            is_check[get_checkboxs[i].name.replace("[]","")][parseInt(get_checkboxs[i].value)]["txt"] = get_checkboxs[i].nextSibling.nodeValue;
                            is_check[get_checkboxs[i].name.replace("[]","")][parseInt(get_checkboxs[i].value)]["par"] = get_checkboxs[i].name.replace("[]","");
                            is_check[get_checkboxs[i].name.replace("[]","")][parseInt(get_checkboxs[i].value)]["val"] = parseInt(get_checkboxs[i].value);                            
                        }
                    }                    
                }
            }
        }
        obj_sp.style.display = "block";
    }
}

    function trimAllString(sInString){
        sInString = sInString.replace(/ /g,'');
        return sInString.replace(/(^\s+)|(\s+$)/g, '');
    }
    function trimString(sInString){
        return sInString.replace(/(^\s+)|(\s+$)/g, '');
    }



function searchPanelShower(){
    
    this.closeTimer = 0;
    this.someTimer = 0;
    
    this.getElementPosition = function(elem){
        var w = elem.offsetWidth;
        var h = elem.offsetHeight;
        var l = 0;
        var t = 0;
        while (elem){
            l += elem.offsetLeft;
            t += elem.offsetTop;
            elem = elem.offsetParent;
        }
        return {"left":l, "top":t, "width": w, "height":h};
    }
    
    this.screenSize = function(){
        var w = (window.innerWidth ? window.innerWidth : (document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.offsetWidth));
        var h = (window.innerHeight ? window.innerHeight : (document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.offsetHeight));
        var scrollTop = document.body.scrollTop ? document.body.scrollTop : document.documentElement.scrollTop;
        var scrollLeft = document.body.scrollLeft ? document.body.scrollLeft : document.documentElement.scrollLeft; 
        return {"width":w, "height":h, "scrollTop":scrollTop, "scrollLeft":scrollLeft};
    }    
    
    this.checkedUnregister = function(obj){
        if(obj && typeof(obj) === "object"){
            var is_hid = obj.getElementsByTagName("INPUT");
            if(is_hid && is_hid.length > 0 && typeof(is_hid[0]) === "object" && is_hid[0].type === "hidden" && is_hid[0].name && is_hid[0].name.length > 0 && is_hid[0].value && is_hid[0].value.length > 0){
                if(is_check && typeof(is_check) === "object"){
                    if(is_check.hasOwnProperty(is_hid[0].name) && is_check[is_hid[0].name].hasOwnProperty([parseInt(is_hid[0].value)])  ){
                        is_check[is_hid[0].name][parseInt(is_hid[0].value)]["chk"] = 0;                       
                        this.checkedRegister();       
                    }
                }
            }
        }
    }    

    
    
    this.collectRegistered = function(){
        var parent_obj = this;
        var ret_str = "";
        var tmp_str = [];
        for(var i in is_check){
            tmp_str[i] = [];
            if(i.length > 0){
                for(var j in is_check[i]){
                    if(is_check[i][j]["chk"] === 1){
                        tmp_str[i].push(is_check[i][j]["val"]);      
                    }
                }
            }
            if(tmp_str[i].length > 0){
                ret_str += i + "-";
                for(var k=0; k<tmp_str[i].length; k++){
                    ret_str += tmp_str[i][k] + ((k<tmp_str[i].length-1)?",":";");
                }
            }    
        }
        var get_reg = document.getElementById("region");   
        if(get_reg && typeof get_reg === "object"){
            if(get_reg.selectedIndex !== 0){
                ret_str += "&region=" + get_reg.options[get_reg.selectedIndex].value;
            }else{ret_str += "&region=-1";}
        } 
        var w_name = document.getElementById("win_name");
        if(w_name && typeof w_name === "object"){
            ret_str += "&win_name=" + trimString(w_name.value);
        }      
        this.someTimer = setTimeout(function(){parent_obj.sinh_ajax(ret_str)}, 500);
    }
    
    this.checkedRegister = function(){
        this.resultTableHover(1);
        var parent_obj = this;        
        var sel_area = document.getElementById("selected_checkboxs");
        if(sel_area && typeof(sel_area) === "object"){
            while(sel_area.firstChild){
                sel_area.removeChild(sel_area.firstChild);
            }
            for(var i in is_check){
                if(i.length > 0){
                    for(var j in is_check[i]){
                        if(is_check[i][j]["chk"] === 1){
                            var new_el = document.createElement("A");
                            new_el.href = "#";
                            new_el.onclick = function(){
                                parent_obj.checkedUnregister(this);
                                return false;
                            }
                            new_el.className = "new_sel_el";
                            new_el.innerHTML = is_check[i][j]["txt"] + "<input type='hidden' value='" + is_check[i][j]["val"] + "' name='" + is_check[i][j]["par"] + "'/>"; 
                            sel_area.appendChild(new_el);
                        }
                    }
                }    
            }
            var new_el = document.createElement("DIV");
            new_el.className = "clear_style";
            new_el.innerHTML = "&nbsp;"; 
            sel_area.appendChild(new_el);            
        }
        this.collectRegistered();
    }
    
    
    this.mouseOver = function(obj){
        var parent_obj = this;
        clearTimeout(parent_obj.closeTimer);
        if(obj && typeof(obj) === "object"){            
            if(document.getElementById("popup_content_window") && typeof(document.getElementById("popup_content_window")) === "object"){
                document.body.removeChild(document.getElementById("popup_content_window"));
            }
            var pos = this.getElementPosition(obj);
            if(pos && typeof(pos) === "object"){
                var new_win = document.createElement("DIV");
                    new_win.onmouseover = function(){
                        clearTimeout(parent_obj.closeTimer);
                    }
                    new_win.onmouseout = function(){
                        parent_obj.mouseOut();
                    }                 
                var inn_html = obj.parentNode.parentNode.getElementsByTagName("TABLE");
                var content = "";
                if(inn_html &&  inn_html.length > 0){
                    content = "<table width='100%'>" + inn_html[0].innerHTML + "</table>";
                }
                new_win.id = "popup_content_window";
                new_win.style.left = pos.left + 30 + "px";
                new_win.style.top = pos.top + 6 + "px";                
                new_win.innerHTML = '<div class="sh_top"></div><div class="sh_center" style="width: 100%;">' + content +'</div><div class="sh_bottom"></div>';
                new_win.style.visibility = "hidden";
                document.body.appendChild(new_win);
                var get_win = this.screenSize();
                var set_top = pos.top + 6;
                var corr_div = document.getElementById("correct_div");
                if(pos.top + 6 + new_win.offsetHeight > get_win.height + get_win.scrollTop){
                    set_top = get_win.height - new_win.offsetHeight - 6 + get_win.scrollTop;
                }else{
                    if(corr_div && pos.top + 6 + new_win.offsetHeight > corr_div.offsetHeight){
                        set_top = corr_div.offsetHeight -  new_win.offsetHeight - 6;
                    }
                }               
                new_win.style.top = set_top + "px";
                
                var get_chkbs = new_win.getElementsByTagName("INPUT"); 
                if(get_chkbs && get_chkbs.length > 0){
                    for(var i=0; i<get_chkbs.length; i++){
                        if(get_chkbs[i].type === "checkbox" && is_check.hasOwnProperty([get_chkbs[i].name.replace("[]","")]) && is_check[get_chkbs[i].name.replace("[]","")].hasOwnProperty([parseInt(get_chkbs[i].value)])  ){
                          
                            if(parseInt(is_check[get_chkbs[i].name.replace("[]","")][parseInt(get_chkbs[i].value)]["chk"]) === 0){
                                get_chkbs[i].checked = false;    
                            }else{get_chkbs[i].checked = true;}
                        }
                        get_chkbs[i].onclick = function(){
                            if(this.type === "checkbox" && is_check.hasOwnProperty([this.name.replace("[]","")]) && is_check[this.name.replace("[]","")].hasOwnProperty([parseInt(this.value)])){
                                if(this.checked){
                                    is_check[this.name.replace("[]","")][parseInt(this.value)]["chk"] = 1;   
                                }else{is_check[this.name.replace("[]","")][parseInt(this.value)]["chk"] = 0;}
                                parent_obj.checkedRegister();
                            }                            
                        }
                    }
                }
                
                new_win.style.visibility = "visible";
            }
                
        }
        
    }
    
    
    this.mouseOut = function(){
        var parent_obj = this;
        clearTimeout(parent_obj.closeTimer);
        parent_obj.closeTimer = setTimeout(function(){
            if(document.getElementById("popup_content_window") && typeof(document.getElementById("popup_content_window")) === "object"){
                document.body.removeChild(document.getElementById("popup_content_window"));
            }       
        }, 500)
        
    } 
    this.getXmlHttp = function(){
        var xmlhttp;
        try{
            xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
        }catch(e){
            try {
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }catch(E){
                xmlhttp = false;
            }
        }
        if(!xmlhttp && typeof XMLHttpRequest!='undefined'){
            xmlhttp = new XMLHttpRequest();
        }
        return xmlhttp;
    }
    
    
    this.asinh_ajax = function(req){
        var parent_obj = this;  
        var xmlhttp = this.getXmlHttp();
        var req_str = '/sn/search_all.php?action=filtertable&search_req=' + req;
        xmlhttp.open('GET', req_str, true);
        xmlhttp.onreadystatechange = function(){
            if(xmlhttp.readyState == 4){
                if(xmlhttp.status == 200){
                    return_content = xmlhttp.responseText;
                    if(return_content.length>0){
                        var ret_2_obj = [];
                        eval("ret_2_obj = " + return_content + ";");
                        parent_obj.initResultArea(ret_2_obj);
                    
                    }                      
                }
            }
        }
        xmlhttp.send(null);
    }



    
    this.sinh_ajax = function(req){
        var parent_obj = this;  
        var xmlhttp = this.getXmlHttp();
        var req_str = '/sn/search_all.php?action=filtertable&search_req=' + req;
        xmlhttp.open('POST', req_str, false);
        xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 
        xmlhttp.send(req); 
        if(xmlhttp.status == 200){
            return_content = xmlhttp.responseText; 
            if(return_content.length>0){
                    var ret_2_obj = [];
                    eval("ret_2_obj = " + return_content + ";");
                    this.initResultArea(ret_2_obj);
                                       
            } 
         }	
    } 
    
    this.resultTableHover = function(act){
        var area_div = document.getElementById("all_search_area");
        var res_hover = document.getElementById("res_hov_win");
        if((act === 0 || act === 1) && res_hover && typeof res_hover === "object"){
            area_div.removeChild(res_hover);
        }
        if(act === 1 && area_div && typeof area_div === "object"){
            var new_win = document.createElement("DIV");
            new_win.id = "res_hov_win";
            new_win.style.width = area_div.offsetWidth + "px";
            new_win.style.height = area_div.offsetHeight + "px";
            area_div.appendChild(new_win);
            var new_act = document.createElement("DIV");
            new_win.appendChild(new_act);
            new_act.style.left =  Math.ceil((new_win.offsetWidth - new_act.offsetWidth) / 2) + "px";
            new_act.style.top =  Math.ceil((new_win.offsetHeight - new_act.offsetHeight) / 2) + "px";         
        }
    }
    
    this.initResultArea = function(ret_obj){
        this.resultTableHover(0);                
        var area_div = document.getElementById("all_search_area");  
        var table_scroll = document.getElementById("table_scroller"); 
        if(area_div && typeof area_div === "object"){
            area_div.style.height = area_div.parentNode.parentNode.offsetHeight + "px";
            area_div.style.display = "block";
        }
        if(table_scroll && typeof table_scroll === "object"){
            while(table_scroll.firstChild){table_scroll.removeChild(table_scroll.firstChild);}
        }
        var di_res = document.getElementById("resultsField");
        if(di_res && typeof di_res === "object"){
            if(ret_obj){di_res.innerHTML = ret_obj.length;}else{di_res.innerHTML = "0";}
        }
        if(table_scroll && typeof table_scroll === "object" && ret_obj && ret_obj.length > 0){
            table_scroll.style.height = area_div.offsetHeight - area_div.getElementsByTagName("TABLE")[0].offsetHeight + "px";
            var new_table = document.createElement("TABLE");
            new_table.style.tableLayout = "fixed";
            new_table.cellPadding = "0";
            new_table.cellSpacing = "1";
            new_table.width = "472";
            new_table.align = "left";
            
            table_scroll.appendChild(new_table);
            var new_tbody = document.createElement("TBODY");
            new_table.appendChild(new_tbody);          
            for(var i in ret_obj){
                var new_tr = document.createElement("TR");
                new_tr.style.backgroundColor = "#eeeeee";
                new_tbody.appendChild(new_tr);
                var new_td = document.createElement("TD");
                new_td.style.width = "148px";             
                new_td.style.textAlign = "center";
                new_td.innerHTML = "<a target='_self' href='/sn/profile.php?user=" + trimAllString(ret_obj[i]["un"]) + "' style='text-align: center;'>" + ((ret_obj[i]["wsn"].length > 17)? ret_obj[i]["wsn"].substr(0,17) + "..." : ret_obj[i]["wsn"]) + "</a>";
                new_tr.appendChild(new_td);
                
                var new_td = document.createElement("TD");
                new_td.style.width = "150px";              
                new_td.align = "center";
                new_td.innerHTML = "<div style='text-align: center;white-space: normal;ppadding: 2px;'>" + ((ret_obj[i]["pv"].length > 150)? ret_obj[i]["pv"].substr(0,150) + "..." : ret_obj[i]["pv"]) + "</div>";
                new_tr.appendChild(new_td);
                
                var new_td = document.createElement("TD");
                new_td.style.width = "85px";                            
                new_td.align = "center";
                new_td.innerHTML = "<div style='text-align: center;white-space: normal;ppadding: 2px;'>" + ret_obj[i]["wp"] + "</div>";
                new_tr.appendChild(new_td);  
				
				 
				            
                var new_td = document.createElement("TD");              
                new_td.style.width = "50px";
                new_td.align = "center";
                new_td.innerHTML = "<div style='text-align: center;white-space: normal;ppadding: 2px;'>" + ret_obj[i]["tf"] + "</div>";
                new_tr.appendChild(new_td); 
                
                var new_td = document.createElement("TD");
                new_td.style.width = "70px";
                            
                new_td.align = "center";
                new_td.innerHTML = "<div style='text-align: center;white-space: normal;ppadding: 2px;'>" + ret_obj[i]["r"] + "</div>";
                new_tr.appendChild(new_td);
				    
				var new_td = document.createElement("TD");              
                new_td.style.width = "40px";
                new_td.align = "center";
                new_td.innerHTML = "<div style='text-align: center;white-space: normal;ppadding: 2px;'>" + ret_obj[i]["v"] + "</div>";
                new_tr.appendChild(new_td);                            
                                                
            }
            table_scroll.scrollTop = 0;
        }
        
    }
    
    this.createTable = function(){         
        
        
        
        
    }  
        
}



window.onload = function(){
    initSearchPanel();
    panel_shower = new searchPanelShower();
    //panel_shower.initResultArea(); 
    //panel_shower.collectRegistered();      
}

