﻿var searchArray = null;
var currCate = null;
function GetCate(xml)
{
       var nodes = xml.getElementsByTagName("ReturnResult");
       var  m_resultContent = document.getElementById("resultContent");
       m_resultContent.innerHTML = "";
       
       if(nodes.length==0)
       {
             adCenterLabs.Gadgets.Gloable.ShowNodata(m_resultContent);
             var qloading1 = document.getElementById("qLoading");
             qloading1.style.visibility = "hidden" ;
         
            return;
       }
 
        var node = nodes[0];
        var term = node.getAttribute("term");
        var termResult = document.createElement("div");
        termResult.className = "gadget_resultTable_Popup";
        var dataGrid = Web.Bindings.attachElementBindingSync(
            termResult,
            adCenterLabs.Gadgets.DataGrid,
            this,
            {});
            
        dataGrid.BindingMultiData(node.childNodes[0],15,false,null);
        m_resultContent.appendChild(termResult);
        
       var tb = m_resultContent.getElementsByTagName("TABLE")[0];
        if(tb == null)return;

        /*Change the title*/
       for(var i =0;i<  tb.rows[0].cells.length;i++)
       {
            var cel = tb.rows[0].cells[i];
            if( cel.innerText == "Category")
            {
                cel.innerText = "Predicted Category";break;
            }
       }
        
    
      var qloading = document.getElementById("qLoading");
      qloading.style.visibility = "hidden" ;
      
      
      searchArray  = new Array();
      if(tb == null)return;
      for(var rowNum =0 ; rowNum<tb.rows.length;rowNum ++)
      {
            var curRow = tb.rows[rowNum];
            var  cellLen = curRow.cells.length;
            var txt = null ;
            for(var colNum = 0 ;colNum < cellLen;colNum++)
            {
                var currCell = curRow.cells[colNum];
                if(cellLen == 3 && rowNum>0 && colNum ==1) 
                {
                    txt = (currCell.childNodes[0].tagName)?
                             currCell.childNodes[0].innerHTML:currCell.innerHTML;
                  
                    searchArray.push(S$(txt));
                }
                 if(cellLen == 2 && rowNum>0 && colNum == 0)
                {
                    txt = currCell.innerHTML;
                    searchArray.push(S$(txt));
                }
            }
      }
      searchArray.push(S$(currCate));
     HightLightTree();   
     currCate = null;
}
     

function  HightLightTree()
{
    if(document.getElementById("treeLoaded").value == 1)   
    {
        var treeFrm =   window.frames[1].document;
          
        if(treeFrm == null) treeFrm = window.frames[1].contentDocument;
     
        var treeViewElement = treeFrm.getElementById("TreeView1");
           
        var elements = treeViewElement.getElementsByTagName("A");
        for(var i = 0;i<elements.length ;i++)
        {
              var currEle = elements[i];
              currEle.style.color = "";
              var eleText = currEle.innerHTML;
              for(var j=0;j<searchArray.length;j++)
              {
                if(S$(eleText) == searchArray[j])
                {
                    currEle.style.color = "red";
                    break;
                }
              }
        }
    }else
    {
        setTimeout(1000, HightLightTree);   
    }
}
     
function  S$(txt)
{
    if(txt!=null && txt!="")
    {return  txt.replace(/\s+/g,"");}
    else{return "";}
}           
function ShowResult(response)
{
    var xml = Web.Utility.getDocumentRoot(response);
    if(xml == null)
    {
        var parser = new DOMParser(); 
        xml = parser.parseFromString(response.responseText, "text/xml"); 
    }
    if(xml == null)
    {
        return;
    }
    try
    {
         GetCate(xml);
    }catch(e)
    {
        return;
    }
    BuildNavi(m_productName,m_productDescription,m_queyrType,m_typeText);
    
    document.title = stitle;
}
function ShowResultSubCategory(response)
{
    var xml = Web.Utility.getDocumentRoot(response);
    if(xml == null)
    {
        var parser = new DOMParser(); 
        xml = parser.parseFromString(response.responseText, "text/xml"); 
    }
    if(xml == null)
    {
        return;
    }
    GetCate(xml);
  
    BuildNavi(m_productName,m_productDescription,m_queyrType,m_typeText);
    
    document.title = stitle;
}

function BuildNavi(productName,productDescription,qtype, categoryName)
{
    var navdiv = document.getElementById("NavContent");
    navdiv.innerHTML = "";

    if(qtype !="-1")
    {
        var spn = document.createElement("span");
        var  link = document.createElement("a");
        link.href = "#"; link.innerText = "First-Level Categories";
        link.onclick = function()
        {
            PrductSubmitQuery(productName,productDescription,"-1",categoryName);
        }  
        spn.appendChild(link);
        navdiv.appendChild(spn);
        
        spn = document.createElement("span");
        spn.innerText = " >> "+ categoryName;
        navdiv.appendChild(spn);
        //strHTML += "<span> >> @categoryName</span>";
        navdiv.style.display = "block";
        
    }else
    {
      navdiv.style.display = "none";
        return;
    }

}

function Clear_ErrorInfo()
{
    if( document.getElementById( "resultContent" ) != null)
    {
        document.getElementById( "resultContent" ).style.display = "none";
    }
    if( document.getElementById( "NavContent" ) != null)
    {
        document.getElementById( "NavContent" ).style.display = "none";
    }
}

var queryParam = {};
var m_productName = null;
var m_productDescription = null;
var m_queyrType = null;
var m_typeText = null;

function PrductSubmitQuery(productName,productDescription,queyrType,typeText)
{
    searchArray = new Array();
    HightLightTree();

    m_productName = "";
    m_productDescription= "";
    m_queyrType= "";
    m_typeText= "";
    
    m_productName = productName ;
    m_productDescription = productDescription;
    m_queyrType = queyrType;
    m_typeText = typeText;
    var qloading = document.getElementById("qLoading");
    qloading.style.visibility = "visible" ;
   
    queryParam =  
    {
        "queryType" : queyrType,
        "product"   : productName , 
        "description" : productDescription
    };
    setTimeout(TimeDelayQuery,0);
}
function TimeDelayQuery()
{
    var func = (queryParam["queyrType"] == "-1")? ShowResult:ShowResultSubCategory;
    adCenterLabs.Gadgets.RequestManager.Request("DatasourceLR.aspx", func, queryParam);
}


  

function Query(qtype)
{
    //hidden the rirtual result area
    document.getElementById("Result").style.display = 'block'; 
    document.getElementById("virtual_result").style.display = "none"; 
    document.getElementById("resultContent").style.display = "block"; 
    document.getElementById("virtual_result").innerHTML = "";

    var m_currentKeyword = document.getElementById("MyMaster_DemoPageContent_keywordTextBox").value;
    var m_description = "";
  
    // document.getElementById("pDescriptTion").value;
    PrductSubmitQuery(m_currentKeyword,m_description,"-1","");
    
}

function QuerySub(qtype,keywordTextBox,pDes)
{
    currCate = pDes;
    PrductSubmitQuery(keywordTextBox,pDes,qtype,"sub");
}

    
function EnterTextBox(e)
{
   if(!e)
	{
	  e = window.event;
	}
	
	if(e.keyCode == 13) 
	{
      e.returnValue = false;
    } 
	else
	{
      e.cancelBubble = true; 
    }   
        
    if(e.keyCode == 13) 
    {   
         Query('0');
    } 
   
}   


   function CheckDescription(obj)
     {
        if(obj.value.length>200)
        {
             obj.value = obj.value.substr(0,200);
        }
     }
     var str = "";
      function CheckDescriptionClipboard(obj)
      {
          var val = obj.value;
          var len = val.length;
          if(len> 200)
          { 
             alert("Description takes only 200 charactar!");
             str = val.slice(0,200);
            
             setTimeout(setText,500);
          }
      }
      function setText()
      {
        var eles = document.getElementsByTagName("TEXTAREA");
        eles[0].value = str;
      }
      function ShowCategory()
      {
        var allcatecontainer = document.getElementById("AllCategory");
        ele = document.getElementById("seecate"); 
       
        if(allcatecontainer.style.display == "none")
        {
            allcatecontainer.style.display = "";
            ele.innerHTML =  "Hide Category";
             
            
        }else
        {
            allcatecontainer.style.display = "none";
            ele.innerHTML =  "See a list of all the categories ";
        }
     
      }


// document.body.onload = function()
// {    
//    var treeContainer  = document.getElementById("AllCategory");
//          
//    var nodes = treeContainer.getElementsByTagName("A");
//         
//     for(var  i=0 ;i <nodes.length ;i ++)
//     {
//         nodes[i].href="";
//     }
//       
// }    

function onmyinput(o)
{
 if(o.value.length>=o.getAttribute("maxlength"))
 {
  if(o.value.length>o.getAttribute("maxlength"))
   o.value = o.value.substring(0,o.getAttribute("maxlength"));
  return false;
 }
 return true;
}
function mygetclipdata()
{
 if(!document.all)
 {
  netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
  var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
  var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
  trans.addDataFlavor('text/unicode');
  var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
  clip.getData(trans,clip.kGlobalClipboard);
  var str=new Object();
  var strLength=new Object();
  trans.getTransferData("text/unicode",str,strLength);  
  if (str)
  str=str.value.QueryInterface(Components.interfaces.nsISupportsString);
  var pastetext;
  if (str)
  pastetext=str.data.substring(0,strLength.value / 2); 
  return pastetext;
 }
 else
 {
  return window.clipboardData.getData("Text");
 }
}
function mysetclipdata(o)
{
 if(!document.all)
 {
  netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
  var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
  var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
  trans.addDataFlavor("text/unicode");
  var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
  str.data=o;
  trans.setTransferData("text/unicode",str,o.length*2);
  var clipid=Components.interfaces.nsIClipboard;
  clip.setData(trans,null,clipid.kGlobalClipboard);
 }
 else
 {
  window.clipboardData.setData("Text",o);
 }
}
function onmypaste(o)
{
 var nMaxLen=o.getAttribute? parseInt(o.getAttribute("maxlength")):"";
 if(!document.all)
 {
  alert("Never exec!");
 }
 else
 {

  if(document.selection.createRange().text.length>0)
  { 
   var ovalueandclipboarddata = o.value +window.clipboardData.getData("Text");
   if(o.getAttribute && ovalueandclipboarddata.length-document.selection.createRange().text.length>nMaxLen)
   {
    if(window.clipboardData.getData("Text").substring(0,document.selection.createRange().text.length+nMaxLen-o.value.length)!="")
     window.clipboardData.setData("Text",window.clipboardData.getData("Text").substring(0,document.selection.createRange().text.length+nMaxLen-o.value.length));
    else
     return false;
   }
  }
  else
  {
   var ovalueandclipboarddata = o.value +window.clipboardData.getData("Text");
   if(o.getAttribute && ovalueandclipboarddata.length>nMaxLen)
   {
    if(ovalueandclipboarddata.substring(0,nMaxLen-o.value.length)!="")
     window.clipboardData.setData("Text",ovalueandclipboarddata.substring(0,nMaxLen-o.value.length));
    else
     return false;
   }
  }
  return true;
 }
}
function onmykeypress(o)
{
 if(!document.all)
 {
  var nMaxLen=o.getAttribute? parseInt(o.getAttribute("maxlength")):"";

  if(onmykeypress.caller.arguments[0].ctrlKey == true)
  {
   if(onmykeypress.caller.arguments[0].which==118)
   {

    if(o.selectionStart<o.selectionEnd)
    {
     var ovalueandclipboarddata = o.value + mygetclipdata();
     if(o.getAttribute && (ovalueandclipboarddata.length-o.selectionEnd + o.selectionStart>nMaxLen))
     {
      if(mygetclipdata().substring(0,o.selectionEnd - o.selectionStart+nMaxLen-o.value.length)!="")
       mysetclipdata(mygetclipdata().substring(0,o.selectionEnd - o.selectionStart+nMaxLen-o.value.length));
      else
       return false;
     }
    }
    else
    {
     var ovalueandclipboarddata = o.value +mygetclipdata();
     if(o.getAttribute && ovalueandclipboarddata.length>nMaxLen)
     {
      if(ovalueandclipboarddata.substring(0,nMaxLen-o.value.length)!="")
       mysetclipdata(ovalueandclipboarddata.substring(0,nMaxLen-o.value.length));
      else
       return false;
     }
    }
    return true;

   } 
  }


  if(onmykeypress.caller.arguments[0].which==0 || onmykeypress.caller.arguments[0].which==8)
   return true;
  if(o.value.length>=o.getAttribute("maxlength"))
  {
   if(o.selectionStart<o.selectionEnd)
    return true;
   if(o.value.length>o.getAttribute("maxlength"))
    o.value = o.value.substring(0,o.getAttribute("maxlength"));
   return false;
  }
  else
   return true;
  
 }
 else
 {
  if(document.selection.createRange().text.length>0)
   return true;
  if(o.value.length>=o.getAttribute("maxlength"))
   return false;
  else
   return true;
 }
}

    function renderTree()
    {
          document.getElementById("loadtree").style.display = "none";
          var obj =  document.getElementById("seecate");
          obj.style.cursor = "pointer";
          obj.style.color = "Blue";
          obj.attachEvent("onclick",ShowCategory);         
   } 
