var ImgChildStr = 'Files/nFa/Images/p_arrow.gif';
var ImgParentStr = 'Files/nFa/Images/p_arrow.gif';
var OpenImage = 'Files/nFa/Images/p_arrow.gif'
var ClassImgParentStr = 'ParentImage';
var ClassImgChildStr = 'ChildImage';

var img1 = new Image();
img1.src = OpenImage;


var OpenParent;

 function CategoryObj(id,parentid,name,des)
 {
   this.ID= id;
   this.ParentId = parentid;
   this.Name = name;
   this.Description = des;
 }
var CategoryList = new Array();
/*************************** Show Hide Tree Function *****************************/
function Get(name)
{
  var allc = document.cookie.split('; ');   
  for(var i =0; i < allc.length ; i++)
  {
   var name_value = allc[i].split('=');
    if(name_value[0] == name)
    {
      if(name_value[1] == 'null' || name_value[1] == 'undefined')return null;
      else return name_value[1];
    }
  }
  return null;  
}

function Set(name,value)
{
  var str = name +"="+value+" ;";
  
  document.cookie = str;
}

function Add(objid,IsParent)
{
  if(IsParent == true)
  {
    Set('MyTree_Parent',objid); 
  }
  var cstr = new String();
  var nstr = new String();
  cstr = Get('MyTree');
  if(cstr == null)nstr = objid;
   else nstr = cstr + ',' + objid;
  Set('MyTree',nstr); 
}

function Remove(objid,IsParent)
{
  var cstr;
  var nstr;
  if(IsParent == true)
  {
    Set('MyTree_Parent',null); 
  }

  cstr = Get('MyTree');
  if(cstr != null)
  {
    var MyList = cstr.split(',');
    var j = 0;
    for(; j < MyList.length;j++)
    {
      if(MyList[j] != objid)
      {       
        nstr = MyList[j];
        break;
      }   
    }

    for(; j < MyList.length;j++)
    {
      if(MyList[j] != objid)
      {       
        nstr = nstr + ',' + MyList[j];
      }   
    }
   Set('MyTree',nstr); 
  }
}


function Show(callerelement,id,objid)
{
 var e = document.getElementById(id);
 if(e.style.display == "none")
 {
   e.style.display = "";
   callerelement.src = OpenImage;
   Add(objid,false);
 }
 window.location = '?page=category&categoryparentid='+objid;
}

function ShowParent(callerelement,id,objid)
{
   if(objid != OpenParent)
   {
     if(OpenParent != null)
     {
      document.getElementById("Tree_" + OpenParent).style.display = 'none';
      document.getElementById("Img_" + OpenParent).src = ImgParentStr
      Remove(OpenParent,true);
     }
      document.getElementById(id).style.display = '';
      callerelement.src = OpenImage
      OpenParent = objid;
      Add(objid,true);
   }
   window.location = '?page=category&categoryparentid='+objid;   
}

function ShowHide(callerelement,id,objid)
{
 var e = document.getElementById(id);
 if(e.style.display == "none")
 {
   e.style.display = "";
   callerelement.src = OpenImage;
   Add(objid,false);   
 }
  else
  {
   callerelement.src = ImgParentStr;
    e.style.display = "none";
    Remove(objid,false);
  }
}

function ShowHideParent(callerelement,id,objid)
{
  if(objid == OpenParent)
  {
    document.getElementById(id).style.display = 'none';
    callerelement.src = ImgParentStr;
    Remove(OpenParent,true);
    OpenParent = null;
  }
  else
  {
    if(OpenParent != null)
    {
      document.getElementById("Tree_" + OpenParent).style.display = 'none';
      document.getElementById("Img_" + OpenParent).src = ImgParentStr
      Remove(OpenParent,true);
      OpenParent = null;
    }
    document.getElementById(id).style.display = '';
    callerelement.src = OpenImage;    
    Add(objid,true);
    OpenParent = objid;
  }
}

/*************************** End Show Hide Tree Function *****************************/
var showdiv = "<div id='ShowDescriptiondiv'></div>";
var ShowingDiv;

var IsIe;
IsIe = (window.navigator.appName.indexOf('Explorer') != -1);

function GetTop(e)
{
  var ret = 0;
  ret = parseInt(e.offsetTop) + 200;
   return ret+'px';
}

function GetLeft(e)
{
  var ret = 0;
  if(!IsIe)ret = parseInt(e.offsetWidth) + 80;
  else ret = parseInt(e.offsetWidth) + 260;
  return ret+'px';
}

function HideDescription()
{
  ShowingDiv.style.visibility = 'hidden';
}

function ShowDescription(e,str)
{
   if(str == '')
         return;
    
    ShowingDiv.style.right = GetLeft(e);
    ShowingDiv.style.top = GetTop(e);
    ShowingDiv.innerHTML = str;
    ShowingDiv.style.visibility = 'visible';
}

/*************************** Tree Function *****************************/
function HaveChilds(ParentId)
{
  for(var i=0 ; i < CategoryList.length ; i++)
  {
        if(CategoryList[i].ParentId == ParentId)return true;
  }
  return false;
}

function MakeChilds(ParentId)
{
  var MyObj;
  var str = "";
  for(var index=0 ; index< CategoryList.length ; index++)
  {
    MyObj = CategoryList[index];
     if(MyObj.ParentId == ParentId)
     {
       if(HaveChilds(MyObj.ID) == false)
       {
           str += "<div class=\"TreeChild\">" + "<img class=\""+ClassImgChildStr+"\" src=\""+ImgChildStr+"\" align=absmiddle /><a href=\"?page=product&categoryid="+MyObj.ID+"\"><span onmouseout=\"HideDescription();\" onmouseover=\"ShowDescription(this,'" + MyObj.Description + "');\">"+MyObj.Name + "</span></a></div>";
       }
       else
       {
         str += "<div class=\"TreeParent\">"+"<img id=\"Img_"+MyObj.ID+"\" class=\""+ClassImgParentStr+"\" src=\""+ImgParentStr+"\" align=absmiddle onclick=\"ShowHide(this,'Tree_"+MyObj.ID+"',"+MyObj.ID+");\" /><a href=\"javascript:Show(this,'Tree_"+MyObj.ID+"',"+MyObj.ID+");\"><span onmouseout=\"HideDescription();\" onmouseover=\"ShowDescription(this,'" + MyObj.Description + "');\">"+MyObj.Name+"</span></a></div>";
         str +="<div class=\"TreeParent\" id=\"Tree_"+MyObj.ID+"\" style=\"display:none\">";
         str += MakeChilds(MyObj.ID);
         str += "</div>";
       }
     }     
  }  
  return str;
 }
 
 function MakeTree()
 {
   var MyObj;
   var str = '';
  for(var IndexParent = 0;IndexParent < CategoryList.length  ; IndexParent++)
  {
     MyObj = CategoryList[IndexParent];
     if(MyObj.ParentId == 0)
     {
         if(HaveChilds(MyObj.ID) == false)
         {
           str += "<div class=\"TreeParent\" >" + "<img class=\""+ClassImgChildStr+"\" src=\""+ImgChildStr+"\" align=absmiddle /><a href=\"?page=product&categoryid="+MyObj.ID+"\"><span onmouseout=\"HideDescription();\" onmouseover=\"ShowDescription(this,'" + MyObj.Description + "');\">"+MyObj.Name + "</span></a></div>";
         }
         else
         {
           str += "<div class=\"TreeParent\">"+"<img id=\"Img_"+MyObj.ID+"\" class=\""+ClassImgParentStr+"\" src=\""+ImgParentStr+"\" align=absmiddle onclick=\"ShowHideParent(this,'Tree_"+MyObj.ID+"',"+MyObj.ID+");\" /><a href=\"javascript:ShowParent(this,'Tree_"+MyObj.ID+"',"+MyObj.ID+");\"><span onmouseout=\"HideDescription();\" onmouseover=\"ShowDescription(this,'" + MyObj.Description + "');\">"+MyObj.Name+"</span></a></div>";
           str +="<div class=\"TreeParent\" id=\"Tree_"+MyObj.ID+"\" style=\"display:none\">";
           str += MakeChilds(MyObj.ID);
           str += "</div>";
         }
     }
  }
  return str;
 }
/*************************** End Tree Function *****************************/

function WriteTree(ParentId)
{
 var mystr;
 //OpenParent = Get('MyTree_Parent')
 mystr = MakeTree(ParentId);
 document.write(mystr);
 /*
 var List = Get('MyTree');
 if(List != null)
 {
   var L = List.split(',');
   for(var t = 0 ; t < L.length ; t++)
   {
     document.all["Tree_" + L[t]].style.display = '';
     document.all["Img_" + L[t]].src = OpenImage;
   }
 }
 */
 document.write(showdiv);
 ShowingDiv = document.getElementById('ShowDescriptiondiv');
}
/***************************************************************************/
