window.document.onkeydown=  function(e){
        if(window.event.keyCode == 27){
         var dragdiv= document.getElementById('lcDragDropDiv');
            dragdiv.style.display= 'none';
            clicked= false;
            draganddrop= false;
        }
  }
  

    var addNew= false;
    var draganddrop= false;
    var prevSelectItem= null;
    var mousex= 0;
    var mousey= 0;
    var currentcatalog= null;
    var prevSelectedTreeNode= null;
    var enableDragDrop= false;
    var linkCatalogLoaded= false;
    var opendropdownwindow= false;
 
 function OnLinkCatalogLoad(){
  if(!linkCatalogLoaded){
	window.document.onselectstart= StopSelect;
	}
    if(!opendropdownwindow){
        lc_CloseWindow('siteMapTreeViewDiv');
        lc_CloseWindow('imageGaleryDiv');
    }	
    opendropdownwindow= false;
 }
 
 function OtherMouseMoveFunctions(e){
 getMouseXY(e);
 }
 
  function StopSelect(e){
  if (!e) e = window.event;
      if(draganddrop){
        e.returnValue= false;
        return false;
        }
    }
    
    function SelectTreeViewNode(index, url){
        var treeview= document.getElementById('treeview_');
        var tr= treeview.childNodes[index].childNodes[0].childNodes[0].childNodes[0];
        var level= tr.childNodes.length - 1;
        if(prevSelectedTreeNode != null){
         prevSelectedTreeNode.style.backgroundColor= "#FFFFFF";
         }
         tr.childNodes[level].style.backgroundColor= "#A8CEEE";
         prevSelectedTreeNode= tr.childNodes[level];
         var tbItemLink = document.getElementById('tbItemLink');
         tbItemLink.value= url;
         lc_CloseWindow('siteMapTreeViewDiv');
    }
    
    function imgGalery_mouseover(id){
     var currentImage= document.getElementById(id);
     currentImage.style.backgroundColor= "#A8CEEE";
    }
    
    function imgGalery_mouseout(id){
    var currentImage= document.getElementById(id);
     currentImage.style.backgroundColor= "#FFFFFF";
    }
    
    function imgGalery_SelectImage(id){
    var currentImage= document.getElementById(id);
    var imggalery_path= document.getElementById('imggalery_path');
    var tbItemImage= document.getElementById('tbItemImage');
    tbItemImage.value= currentImage.innerText;
    lc_CloseWindow('imageGaleryDiv');
    }
    
    function lc_OpenImageGaleryWindow(){
    lc_CloseWindow('siteMapTreeViewDiv');
    opendropdownwindow= true;
    var imageGaleryDiv= document.getElementById('imageGaleryDiv');
        if(imageGaleryDiv.style.display == 'block'){
            lc_CloseWindow('imageGaleryDiv');
        }else{
        var DivWinowLoading= document.getElementById('DivWinowLoading');
        var imgGaleryPath= document.getElementById('imgGaleryPath_' + currentcatalog);
        var DivModalWindow= document.getElementById("customModalDialogWindow_DivModalWindow");
         if(imageGaleryDiv.innerHTML == ''){
            DivWinowLoading.style.display= 'block';    
            AX.UI.CustomControls.LinksCatalog.WebServices.WSLinkCatalog.DrawImageGaleryWindow(mousex, mousey, imgGaleryPath.innerText, OpenImageGaleryWindowcallBack);
            }else{
            imageGaleryDiv.style.display= 'block';
            imageGaleryDiv.style.position= 'absolute';
            imageGaleryDiv.style.top= (parseInt(DivModalWindow.style.top.replace("px",''))  + 210).toString(10) +'px';
            imageGaleryDiv.style.left= (parseInt(DivModalWindow.style.left.replace("px",'')) + 355).toString(10) +'px';
            DivWinowLoading.style.display= 'none';
            
            }
       } 
    }
    
    function OpenImageGaleryWindowcallBack(result){
     var imageGaleryDiv= document.getElementById('imageGaleryDiv');
     var DivModalWindow= document.getElementById("customModalDialogWindow_DivModalWindow");
     imageGaleryDiv.innerHTML= result;
     imageGaleryDiv.style.display= 'block';
     imageGaleryDiv.style.position= 'absolute';
     imageGaleryDiv.style.top= (parseInt(DivModalWindow.style.top.replace("px",''))  + 210).toString(10) +'px';
            imageGaleryDiv.style.left= (parseInt(DivModalWindow.style.left.replace("px",'')) + 355).toString(10) +'px';
     var DivWinowLoading= document.getElementById('DivWinowLoading');
    DivWinowLoading.style.display= 'none';
    
    }
    
    function lc_CloseWindow(id){
     var currentwindow= document.getElementById(id);
        currentwindow.style.display= 'none';
        
    }
    
    function lc_CloseAllDropDawns(){
        lc_CloseWindow('imageGaleryDiv');
        lc_CloseWindow('siteMapTreeViewDiv');
    }
    
    function lc_onmouseout(index){
     if(draganddrop){
      if(prevSelectItem.id.replace('linkN_','') != index){
         var linksContainer= document.getElementById("linksContainer");
                linksContainer.childNodes[index].style.borderBottomColor= "#FFFFFF";
                linksContainer.childNodes[index].style.borderTopColor= "#FFFFFF";
            }
        }
    }
    
    function lc_onmouseover(index){
        if(draganddrop){
           var previtem=prevSelectItem.id.replace('linkN_','');
            var lcDragDropDiv= document.getElementById('lcDragDropDiv');
            var linksContainer= document.getElementById("linksContainer");
                if(previtem < index){
                    lcDragDropDiv.innerHTML= lcDragDropDiv.innerHTML.replace('before.gif','after.gif');
                    lcDragDropDiv.innerHTML= lcDragDropDiv.innerHTML.replace('prohibit.gif','after.gif');
                    linksContainer.childNodes[index].style.borderBottomWidth= '1px';
                    linksContainer.childNodes[index].style.borderBottomStyle= 'dotted'
                linksContainer.childNodes[index].style.borderBottomColor= "#FF981E"
                }else if(previtem > index){
                    lcDragDropDiv.innerHTML= lcDragDropDiv.innerHTML.replace('after.gif','before.gif');
                    lcDragDropDiv.innerHTML= lcDragDropDiv.innerHTML.replace('prohibit.gif','before.gif');
                    linksContainer.childNodes[index].style.borderTopWidth= '1px';
                    linksContainer.childNodes[index].style.borderTopStyle= 'dotted'
                    linksContainer.childNodes[index].style.borderTopColor= "#FF981E"
                }else {
                    lcDragDropDiv.innerHTML= lcDragDropDiv.innerHTML.replace('after.gif','prohibit.gif');
                    lcDragDropDiv.innerHTML= lcDragDropDiv.innerHTML.replace('before.gif','prohibit.gif');
                }
                if(previtem != index){
                
                
                
                    //linksContainer.childNodes[index].style.backgroundColor= "#FFD59F";
                 }   
         }
    }
 /*   
function getMouseXY(e){ 
  if (!e) e = window.event;
  if (e){ 
    if (e.pageX || e.pageY){
      mousex = e.pageX;
      mousey = e.pageY;
    }else if (e.clientX || e.clientY){
      mousex = e.clientX + document.body.scrollLeft;
      mousey = e.clientY + document.body.scrollTop;
    }
  }
  var divmousey= document.getElementById("divmousey");
  var divmousex= document.getElementById("divmousex");
  divmousex.innerHTML= mousex +'px' + " e.pageX " + e.pageX;
  divmousey.innerHTML= mousey +'px' + " e.pageY " + e.pageY;
}
*/
function getMouseXY(e) // works on IE6,FF,Moz,Opera7
{ 
  if (!e) e = window.event; // works on IE, but not NS (we rely on NS passing us the event)
 var algor= '';
  if (e)
  { 
    if (e.pageX || e.pageY)
    { // this doesn't work on IE6!! (works on FF,Moz,Opera7)
      mousex = e.pageX;
      mousey = e.pageY;
      algor = '[e.pageX]';
      if (e.clientX || e.clientY) algor += ' [e.clientX] '
    }
    else if (e.clientX || e.clientY)
    { // works on IE6,FF,Moz,Opera7
      mousex = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
      mousey = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
      algor = '[e.clientX]';
      if (e.pageX || e.pageY) algor += ' [e.pageX] '
    }
  }
 
}

function InserNewLink(){
 if(!addNew){
    var linksContainer= document.getElementById("linksContainer");
    var newLink= document.createElement("DIV");
    var i= linksContainer.childNodes.length;
    newLink.id="linkN_" + i;
    newLink.style.height= '20px';
    newLink.innerHTML= "&nbsp; &nbsp; <span title=\"new link\">[new link]</span>";
    var tbItemTitle= document.getElementById("tbItemTitle");
    tbItemTitle.value= "new link";
    var tbItemTooltip= document.getElementById("tbItemTooltip");
    tbItemTooltip.value= '';
    var tbItemLink= document.getElementById("tbItemLink");
    tbItemLink.value= 'http://';
    var tbItemImage= document.getElementById("tbItemImage");
    tbItemImage.value= '';
    var selectItemTarget= document.getElementById("selectItemTarget");
    selectItemTarget.selectedIndex= 0;
    linksContainer.appendChild(newLink);
    lc_SelectLinkDiv(i);
    addNew= true;
  }  
}

function DeleteCurrentLink(){
if(prevSelectItem != null)
 if(confirm('Are you sure you want to remove this item'))
   if(!addNew){
   var DivWinowLoading= document.getElementById('DivWinowLoading');
                DivWinowLoading.style.display= 'block';
            
     AX.UI.CustomControls.LinksCatalog.WebServices.WSLinkCatalog.Delete(currentcatalog, prevSelectItem.id.replace("linkN_",""), DeletelinkCallBack);
    }else{
    var linksContainer= document.getElementById("linksContainer");
    var i= linksContainer.childNodes.length - 1;
    linksContainer.removeChild(linksContainer.childNodes[i]);
    addNew= false;
    prevSelectItem= null;
    ClearPropertyForm();
    }
}

function DeletelinkCallBack(result){
    var linksContainer= document.getElementById("linksContainer");
    var DivWinowLoading= document.getElementById('DivWinowLoading');
                DivWinowLoading.style.display= 'none';
        linksContainer.innerHTML= result;
        addNew= false;
        prevSelectItem= null;
   ClearPropertyForm();
}

function ClearPropertyForm(){
    var tbItemTitle= document.getElementById("tbItemTitle");
        tbItemTitle.value= '';
    var tbItemTooltip= document.getElementById("tbItemTooltip");
        tbItemTooltip.value= '';
    var tbItemLink= document.getElementById("tbItemLink");
        tbItemLink.value= '';
    var tbItemImage= document.getElementById("tbItemImage");
        tbItemImage.value= '';
    var selectItemTarget= document.getElementById("selectItemTarget");
        selectItemTarget.selectedIndex= 0;
}

function lc_OpenSiteMapTreeView(){
lc_CloseWindow('imageGaleryDiv');
 opendropdownwindow= true;   
var siteMapTreeViewDiv= document.getElementById("siteMapTreeViewDiv");
    if(siteMapTreeViewDiv.style.display == 'block'){
    lc_CloseWindow('siteMapTreeViewDiv');
    }else{
        var DivWinowLoading= document.getElementById('DivWinowLoading');
            var DivModalWindow= document.getElementById("customModalDialogWindow_DivModalWindow");
            if(siteMapTreeViewDiv.innerHTML== ''){
                DivWinowLoading.style.display= 'block';
                AX.UI.CustomControls.LinksCatalog.WebServices.WSLinkCatalog.DrawSiteMapWindow(mousex, mousey, OpenSiteMapTreeViewCallBack);
                
            }else{
            siteMapTreeViewDiv.style.display= 'block';
            siteMapTreeViewDiv.style.position= 'absolute';
            siteMapTreeViewDiv.style.top= (parseInt(DivModalWindow.style.top.replace("px",'')) + 179).toString(10) + 'px';
            siteMapTreeViewDiv.style.left= (parseInt(DivModalWindow.style.left.replace("px",'')) + 355).toString(10) + 'px';
            DivWinowLoading.style.display= 'none';
           // opendropdownwindow= true;
            }
      }      
}

function OpenSiteMapTreeViewCallBack(result){
var siteMapTreeViewDiv= document.getElementById("siteMapTreeViewDiv");
var DivModalWindow= document.getElementById("customModalDialogWindow_DivModalWindow");
    siteMapTreeViewDiv.innerHTML= result;
    siteMapTreeViewDiv.style.display= 'block';
    siteMapTreeViewDiv.style.position= 'absolute';
    siteMapTreeViewDiv.style.top= (parseInt(DivModalWindow.style.top.replace("px",'')) + 179).toString(10) + 'px';
    siteMapTreeViewDiv.style.left= (parseInt(DivModalWindow.style.left.replace("px",'')) + 355).toString(10) + 'px';
    var DivWinowLoading= document.getElementById('DivWinowLoading');
    DivWinowLoading.style.display= 'none';
    //opendropdownwindow= true;
} 

  function wpLinkCatalog_OpenEditor(catalogName){
    currentcatalog= catalogName;
    var openEditorWindowImage= document.getElementById("openEditorWindowImage_" + currentcatalog);
    if(openEditorWindowImage != null){
        openEditorWindowImage.src= openEditorWindowImage.src.replace('DocViewerEdit.gif','loader.gif');
    }else{
        var openEditorWindowImageRect =document.getElementById("openEditorWindowImageRect_" + currentcatalog);
        openEditorWindowImageRect.src= openEditorWindowImageRect.src.replace('rect.gif','loader.gif');
    }
    AX.UI.CustomControls.LinksCatalog.WebServices.WSLinkCatalog.GetEditorWindow(GetEditorWindowCallBack);
    AX.UI.CustomControls.LinksCatalog.WebServices.WSLinkCatalog.LoadLinks(currentcatalog, loadLinksCallBack);
    AX.UI.CustomControls.LinksCatalog.WebServices.WSLinkCatalog.GetCatalogProperties(currentcatalog, GetCatalogPropertiescallBack);
   }
   
   function GetEditorWindowCallBack(result){
   var DivModalWindow= document.getElementById("customModalDialogWindow_DivModalWindow");
   DivModalWindow.style.position= 'absolute';
   DivModalWindow.style.top= '200px'
   DivModalWindow.style.left= '200px'
   DivModalWindow.innerHTML= result;
   }
   
   function loadLinksCallBack(result){
    var modalDWContentDivModalWindow= document.getElementById("modalDWContentDivModalWindow");
    var linkCatalog= document.getElementById("linkCatalog");
        modalDWContentDivModalWindow.innerHTML= linkCatalog.innerHTML;
        var linksContainer= document.getElementById("linksContainer");
    for (var i= linksContainer.childNodes.length - 1; i >= 0; i--){
        linksContainer.removeChild(linksContainer.childNodes[i]);
        }
        linksContainer.innerHTML= result;
        var openEditorWindowImage= document.getElementById("openEditorWindowImage_" + currentcatalog);
        if(openEditorWindowImage != null){
            openEditorWindowImage.src= openEditorWindowImage.src.replace('loader.gif', 'DocViewerEdit.gif');
        }else{
            var openEditorWindowImageRect =document.getElementById("openEditorWindowImageRect_" + currentcatalog);
                openEditorWindowImageRect.src= openEditorWindowImageRect.src.replace('loader.gif','rect.gif');
        }
        lc_OpenModalWindow();  
   }
  
  function GetCatalogPropertiescallBack(result){
   var proprties= result.split(";");
   var selectLayoutMode= document.getElementById("selectLayoutMode");
   var selectLinkCatalogRows=  document.getElementById("selectLinkCatalogRows");
   var selectCellSpacing= document.getElementById("selectCellSpacing");
   var selectCellPadding= document.getElementById("selectCellPadding");
   if(proprties[0] == 'True'){
    selectLayoutMode.selectedIndex= 1;
   }else {
    selectLayoutMode.selectedIndex= 0;
    }
    selectLinkCatalogRows.selectedIndex= proprties[1] - 1;
    selectCellSpacing.selectedIndex=  proprties[2];
    selectCellPadding.selectedIndex=  proprties[3];
  }
  
  function lc_SelectLinkDiv(index){
    var linksContainer= document.getElementById("linksContainer");
        if(prevSelectItem != null){
            prevSelectItem.style.backgroundColor= "#FFFFFF";
        }
        linksContainer.childNodes[index].style.backgroundColor= "#FF981E"
        prevSelectItem= linksContainer.childNodes[index];
        
  }
  
  function lc_ShowLinkProperty(index){
    if(!addNew){
        lc_SelectLinkDiv(index)
        if(currentcatalog != null){
        var DivWinowLoading= document.getElementById('DivWinowLoading');
                DivWinowLoading.style.display= 'block';
               AX.UI.CustomControls.LinksCatalog.WebServices.WSLinkCatalog.GetLinkProperties(currentcatalog, index, GetLinkPropertiesCallBack);
            }
     }       
  }
  
  function GetLinkPropertiesCallBack(result){
    var properties= result.split(";");
    var tbItemTitle= document.getElementById("tbItemTitle");
    tbItemTitle.value= properties[0];
    var tbItemTooltip= document.getElementById("tbItemTooltip");
    tbItemTooltip.value= properties[1];
    var tbItemLink= document.getElementById("tbItemLink");
    tbItemLink.value= properties[2];
    var tbItemImage= document.getElementById("tbItemImage");
    tbItemImage.value= properties[3];
    var selectItemTarget= document.getElementById("selectItemTarget");
    selectItemTarget.selectedIndex= properties[4];
    var DivWinowLoading= document.getElementById('DivWinowLoading');
                DivWinowLoading.style.display= 'none';
            
    
  }
  
  function SaveLinkProperties(){
    var tbItemTitle= document.getElementById("tbItemTitle");
    var tbItemTooltip= document.getElementById("tbItemTooltip");
    var tbItemLink= document.getElementById("tbItemLink");
    var tbItemImage= document.getElementById("tbItemImage");
    var selectItemTarget= document.getElementById("selectItemTarget");
    var imggalery_path= document.getElementById('imggalery_path');
    var imgGaleryPath= document.getElementById('imgGaleryPath_' + currentcatalog);
    var imagepath= imgGaleryPath.innerText;
    if(imggalery_path != null){
    imagepath= imggalery_path.innerText;
    }
    if(tbItemImage.value == ''){
    imagepath= '';
    }
    if(tbItemLink.value == ''){
        alert('Hyperlink could not be empty');
    }else{
         if(tbItemLink.value == 'http://'){
         alert('Hyperlink is not in right format');
         }else{
            if(currentcatalog != null && prevSelectItem != null){
            var DivWinowLoading= document.getElementById('DivWinowLoading');
                        DivWinowLoading.style.display= 'block';
                    
                  AX.UI.CustomControls.LinksCatalog.WebServices.WSLinkCatalog.SaveLinkProperties(currentcatalog, prevSelectItem.id.replace("linkN_",""), tbItemTitle.value, tbItemTooltip.value, tbItemLink.value, imagepath + tbItemImage.value, selectItemTarget.selectedIndex, SaveLinkPropertiesCallBack, OnError);
                }else{
               
                }
          }  
    }    
  }
  function OnError(result){
    alert("Error: " + result.get_message());
}

  function SaveLinkPropertiesCallBack(result){
  if(prevSelectItem != null)
        prevSelectItem.outerHTML=  result;
   lc_SelectLinkDiv(prevSelectItem.id.replace("linkN_",""));
   addNew= false;
   var DivWinowLoading= document.getElementById('DivWinowLoading');
                DivWinowLoading.style.display= 'none';
  }
  
  function SaveCatalogProprieties(){
   var selectLayoutMode= document.getElementById("selectLayoutMode");
   var selectLinkCatalogRows=  document.getElementById("selectLinkCatalogRows");
   var selectCellSpacing= document.getElementById("selectCellSpacing");
   var selectCellPadding= document.getElementById("selectCellPadding");
   var VAlign = false; 
   var Rows= 1;
   var cellspacing = 1;
   var cellspadding= 1;
   if(selectLayoutMode.options[selectLayoutMode.selectedIndex].value == 2){
        VAlign= true;
    }
   Rows= selectLinkCatalogRows.options[selectLinkCatalogRows.selectedIndex].value;
   cellspacing= selectCellSpacing.options[selectCellSpacing.selectedIndex].value;
   cellspadding= selectCellPadding.options[selectCellPadding.selectedIndex].value;
    AX.UI.CustomControls.LinksCatalog.WebServices.WSLinkCatalog.SaveCatalogProperties(currentcatalog, VAlign, Rows, cellspacing, cellspadding, SaveLinkCatalogPropertyCallBack);
  }  
  
  function SaveLinkCatalogPropertyCallBack(result){
    CloseCustomModalWindow('DivModalWindow');
  }
  
  var clicked= false;
  
  function lc_InitObjectMove(id, index){
   if(!addNew){
       draganddrop= true;
       var dragdiv= document.getElementById(id);
       var lcDragDropDivContent= document.getElementById('lcDragDropDivContent');
       var linksContainer= document.getElementById("linksContainer");
            lcDragDropDivContent.innerHTML= linksContainer.childNodes[index].innerText;
            lc_ShowLinkProperty(index);
           clicked= true; 
           
            //MoveLink();
     }   
  }
  
  function MoveLink(){
  if(prevSelectItem != null){
  var dragdiv= document.getElementById('lcDragDropDiv');
    if(clicked){
       dragdiv.style.display = 'block'
       }
    getMouseXY(window.event);
    RedrawDiv('lcDragDropDiv');
    }
  }
  
  function RedrawDiv(id){
    var dragdiv= document.getElementById(id);
       dragdiv.style.left = (mousex + 10).toString(10) + 'px';
        dragdiv.style.top  = (mousey).toString(10) + 'px';
    
    
  }
  
  function lc_StopObjectMove(id, index){
  if(!addNew){
    draganddrop= false;
       var dragdiv= document.getElementById(id);
            dragdiv.style.display= 'none';
            clicked= false;
         var linksContainer= document.getElementById("linksContainer");
         
         if(prevSelectItem.id.replace('linkN_','') != index){
            var DivWinowLoading= document.getElementById('DivWinowLoading');
                DivWinowLoading.style.display= 'block';
            AX.UI.CustomControls.LinksCatalog.WebServices.WSLinkCatalog.MoveItems(currentcatalog, prevSelectItem.id.replace('linkN_',''), index, MoveLinksCallBack);     
            prevSelectItem= linksContainer.childNodes[index];
         }
     }
  }
  
  function MoveLinksCallBack(result){
  var linksContainer= document.getElementById("linksContainer");
  linksContainer.innerHTML= result; 
  var DivWinowLoading= document.getElementById('DivWinowLoading');
    DivWinowLoading.style.display= 'none';
  lc_ShowLinkProperty(prevSelectItem.id.replace('linkN_',''));
  var siteMapTreeViewDiv= document.getElementById("siteMapTreeViewDiv");
  if(siteMapTreeViewDiv.style.display != 'none'){
  
  }
  }
   
   function windowSubItemsInitMove(windowID){
   
    var DivModalWindow= document.getElementById('customModalDialogWindow_' + windowID);
         lc_CloseWindow('imageGaleryDiv');
         lc_CloseWindow('siteMapTreeViewDiv');
    } 
       
       
 function windowStopMove(){
    canMove= false;
    dragObject= null;
 }   
  
  function CloseCustomModalWindow(windowID){
        lc_CloseWindow('siteMapTreeViewDiv');
        lc_CloseWindow('imageGaleryDiv');
    var DivModalWindow= document.getElementById('customModalDialogWindow_' + windowID);
        DivModalWindow.style.display= "none";
    var LC_ShowEditButton= document.getElementById("LC_ShowEditButton_" + currentcatalog);
    var LC_EnableEdit= document.getElementById('LC_EnableEdit_' + currentcatalog);
        AX.UI.CustomControls.LinksCatalog.WebServices.WSLinkCatalog.GetLinkCatalogInnerHTML(currentcatalog, LC_EnableEdit.innerText, LC_ShowEditButton.innerText, RedrawCatalogCallback);
        addNew= false;
    }

  function RedrawCatalogCallback(result){
    var currentCatalogDiv= document.getElementById("linkcalalog_" + currentcatalog);
    currentCatalogDiv.innerHTML= result;
    currentcatalog= null;
    }    
    
function lc_OpenModalWindow(){
    var DivModalWindow= document.getElementById("customModalDialogWindow_DivModalWindow");
     DivModalWindow.style.display= "block";
     DivModalWindow.style.position= 'absolute';
}

  
  