var oldquery = "";
var text_keyword = "";
var post_params = "";
var pre_index = 0;
var current_index = 0;
var exec_flag = true;
function createXmlHttpRequest() {
  var xmlhttp = false;
  if( window.XMLHttpRequest) { // other browser------XMLHTTPREQUEST
    xmlhttp = new XMLHttpRequest();
  } else if(window.ActiveXObject) { // IE----XMLHTTPREQUEST
    try {
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
  return xmlhttp;
}

function peekQuery() {
  var xmlhttp = 0;
  if (! xmlhttp){xmlhttp = createXmlHttpRequest();}

  if (! xmlhttp || xmlhttp.readyState == 1 || 
      xmlhttp.readyState == 2 || xmlhttp.readyState == 3){
    return; 
  }

  var result = document.getElementById("result_div");
  var query = "";
  if(text_keyword != ""){
    query = encodeURI(text_keyword);
  }
  if (query == "") {
    result.style.display = "none";
    pre_index = 0;
    current_index = 0;
  } else if (oldquery != query) {
　      xmlhttp.open("POST", "/webadmin/extension/classroom_search/auto_complete.jsp", true);
    xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");
    xmlhttp.onreadystatechange = function() {
      if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            result.innerHTML = xmlhttp.responseText;
            if(result.innerHTML != ""){
            result.style.display = "block";
            }else{
            result.style.display = "none";
            pre_index = 0;
            current_index = 0;
            }
             
	         
      }
   }
       xmlhttp.send(post_params);
  }
    oldquery = query;
}

function getFormParams(){
   var checkbox_subjects = "";
   var country_flag = "";
   var area_value = "";
   var radio_condition = "";
   var radio = "";
   var workflow = "";
   var admin_flag = "";
   
   //get checkbox value
   setvalue();
   if(document.form1.checkbox_subjects != null){
       checkbox_subjects = document.form1.checkbox_subjects.value;
   }
   
   //get country flag value
   if(document.form1.country_flag != null){
       country_flag = document.form1.country_flag.value;
   }

   //get area value
   if(document.form1.area_value != null){
       area_value = document.form1.area_value.value;
   }
   
   //get radio value
   if(document.form1.radio_condition != null){
       radio = document.form1.radio_condition;
       for(var i=0;i<radio.length;i++){ 
          if(radio[i].checked){
             radio_condition = radio[i].value;
          }else{
            continue;
          }
       }
   }

   //get keyword value
   if(document.form1.text_keyword != null){
       text_keyword = document.form1.text_keyword.value;
   }
   
   //get workflow value
   if(document.form1.workflow != null){
    workflow = document.form1.workflow.value;
   }
   
   //get admin flag value
   if(document.form1.admin_flag != null){
     admin_flag = document.form1.admin_flag.value;
   }
   
   post_params = "radio_condition="+radio_condition+"&checkbox_subjects="+checkbox_subjects+
                "&text_keyword="+text_keyword+"&country_flag="+country_flag+"&area_value="+
                area_value+"&workflow="+workflow+"&admin_flag="+admin_flag+"&ajax_request=ajax";
   
}



function doAutoComplete(evt){
    evt=evt?evt:(window.event?window.event:null);
    var currentKey = evt.charCode||evt.keyCode;    
    var text_value = "";
    if(currentKey == 38 || currentKey == 40){
      var result = document.getElementById("result_div");
      if(result!=null){
          if(result.childNodes!=null && result.childNodes.length>=1 && result.style.display=='block'){
            var dl = result.childNodes[0];
            var dd_length = dl.childNodes.length;
            if(dd_length >= 1){
              if(currentKey == 38){ //up
                  dl.childNodes[pre_index].style.background = "#99CCFF";
                  text_value = dl.childNodes[pre_index].innerHTML;
                  if(current_index!=pre_index){
                   dl.childNodes[current_index].style.background = "#FFFFFF";
                  }
                  if(pre_index - 1 < 0){
                    pre_index = 0;
                  }else{
                  current_index = pre_index;
                    pre_index = pre_index - 1;
                  }
                  

              }else if(currentKey == 40){ //down
                  dl.childNodes[current_index].style.background = "#99CCFF";
                  text_value = dl.childNodes[current_index].innerHTML;
                  if(current_index!=pre_index){
                   dl.childNodes[pre_index].style.background = "#FFFFFF";
                  }
                  if(current_index + 1 == dd_length){
                     current_index = dd_length-1;
                  }else{
                     pre_index = current_index;
                     current_index = current_index + 1;
                  }
              }
              
               var result = document.form1.text_keyword;
               result.value = htmlEncode(text_value); 
               exec_flag = false;
            }
          }
      }
    }else{
      getFormParams();
      if(text_keyword == ""){
           exec_flag = true;
      }
      if(exec_flag){
         peekQuery();
      }
    }
}


function setInputValue(Obj){
   var result = document.form1.text_keyword;
   result.value = htmlEncode(Obj.innerHTML);
   closeDiv();
}

function htmlEncode(value){
		value = value.replace(/\&amp;/g, "&");
		value = value.replace(/\&quot;/g, "\"");
		value = value.replace(/\&lt;/g,"<");
		value = value.replace(/\&gt;/g, ">");
		return value;
}
function closeDiv(){
   var result = document.getElementById("result_div");
   result.style.display = "none";
   pre_index = 0;
   current_index = 0;
   exec_flag = true;
}

function mouseOver(Obj){
removeBackColor(Obj);
   Obj.style.background = "#99CCFF";
   var dl = Obj.parentNode;
   var dds = dl.childNodes;
   var temp_index = 0;
   for(var i=0;i<dds.length;i++){
      if(Obj === dds[i]){
         temp_index = i;
      }
   }
   if(temp_index > 0){
     current_index = temp_index;
     pre_index = temp_index -1;
   }
}

function mouseOut(Obj){
   removeBackColor(Obj);
}

function removeBackColor(Obj){
   var dl = Obj.parentNode;
   var dds = dl.childNodes;
   for(var i=0;i<dds.length;i++){
      dds[i].style.background = "#FFFFFF";
   }
   pre_index = 0;
   current_index = 0;
}
