﻿//GROUTREE ADMIN API - THESE CALLS LINK INTO THE GROUTREE CORE
//THIS JSCRIPT MUST BE LOADED AT THE END OF ALL AJAX CALLS TO ENSURE CONSTANT AVIALABILTY
//IDEALLY KEEP THESE FUNCTIONS REALLY LIGHT - THEY SHOULD CALL HEAVIER FUNCTIONS IN THE CORE
//THE REASON THESE ARE HERE IS TO ENSURE AVAILABILITY TO ALL THE AJAXED AREAS

var t;

function Login()
{
  Locked = false;
  TryLogin();
}

function Logout()
{
 DoIt("LOGOUT","","","","","","");
}

function TryLogin()
{ 
 $("#loginDlgHeader").empty();
 $("#loginDlgHeader").append("attempting login...");
 DoIt("LOGIN","","","","","","");
}


function QuickSearch()
{
 DoQuickSearch($("#navSearch")[0].value);
}

function PostDialog()
{
 
}

function Post()
{
 DoIt("","","");
}

function Tr(inPID)
{
TreeClick(inPID.replace("Lid_", ""));
}

function historyClick(inPID) {
//CollapseOpen();
Na(inPID);
}

function NavClick(inPID)
//when a node in the navigation is selected
{
 DoIt("TREE",inPID,"","","","","");
}

function Na(inPID)
{
 NavigationClick(inPID);
}
function actionGoToItem(inPID)
{
    //backwards compatability
    Go(inPID);
}
function Go(inPID)
//takes the admin to a new asset based on pointer id
{
 DoIt("GO",inPID,"","","","","");
}

function remoteRecycle(nodeID) {
  CntrlAction('57861a5015ba42789d54e8e33ca8b6d7', 'recycle', nodeID.substring(4), '');
}

var taggingUserControl;
var taggingTargetWrapper;
var taggingSearchStr;

function openTaggingDialog(inCntrlID, inUserControl, inTargetWrapper, inSearchStr) {
  taggingUserControl = inUserControl;
  taggingTargetWrapper =  inTargetWrapper;
  taggingSearchStr = inSearchStr;
  Cntrl(inCntrlID);
}

function tagAsset(inTag, action) {
  
   
  
   var Aspx = "/parts/ajaxTagging.aspx";
   var qs = "tagName=" + inTag + "&action=do" + action;
   
   if (action == 'add') {
      $(".tagName").val("");
   }
   
   $.post(Aspx, qs,function(d){
      if (d)
      {
        $(".taggedWith").html("");
        $(".taggedWith").html(d);
           qs = "&action=updateAvailable";  
           $.post(Aspx, qs,function(d){
            if (d)
            {
                $(".availableTags").html("");
                $(".availableTags").html(d);
            }
            else {
            }
           },"html");    
      }
      else {
      }
   },"html");     
}


function tagging(wrapper, action) {

        var Aspx = "/parts/ajaxTagging.aspx";
         
         switch (action) {
          case "filter":
          qs = "filter=" + $(wrapper + " .tagName").val() + "&action=" + action;
          
           $.post(Aspx, qs,function(d){
              if (d)
              {
                $(wrapper + " .availableTags").html("");
                $(wrapper + " .availableTags").html(d);
              }
              else {
              }
           },"html");     
           break;     
          case "filterByAsset":
          qs = "filter=" + $(".inTagName").val() + "&action=" + action;
          
           $.post(Aspx, qs,function(d){
              if (d)
              {
                $(wrapper + " .availableTags").html("");
                $(wrapper + " .availableTags").html(d);
              }
              else {
              }
           },"html");                    
           
           
          break;
          case "addTag":
          var valArray = $(wrapper + ' input.availabletags:checkbox').serializeArray();
          var selectedStr = "";
          jQuery.each(valArray, function(i, field){
             taggingAddTag(field.name);
          });   
          taggingAddTag("_" + $(wrapper + " .tagName").val() + "_");
          qs = "&selectedStr=" + $("#tempTags").val() + "&addTag=" + $(wrapper + " .tagName").val() + "&action=" + action;
           
           $.post(Aspx, qs,function(d){
              if (d)
              {
                $(wrapper + " .taggedWith").html("");
                $(wrapper + " .taggedWith").html(d);
              }
              else {
              }
           },"html");                 
          break;
          case "add":
          var valArray = $(wrapper + ' input.availabletags:checkbox').serializeArray();
          var selectedStr = "";
          jQuery.each(valArray, function(i, field){
              taggingAddTag(field.name);
          });   
           qs = "&selectedStr=" + $("#tempTags").val() + "&action=" + action + "&which=taggedWith";
           $.post(Aspx, qs,function(d){
              if (d)
              {
                $(wrapper + " .taggedWith").empty();
                $(wrapper + " .taggedWith").append(d);
              }
              else {
              }
           },"html");   
           qs = "&selectedStr=" + $("#tempTags").val() + "&action=" + action + "&which=availableTags";
           $.post(Aspx, qs,function(d){
              if (d)
              {
                $(wrapper + " .availableTags").empty();
                $(wrapper + " .availableTags").append(d);
              }
              else {
              }
           },"html");                                    
          break;
          case "remove":
          //$("#tempTags").val("");
          var valArray = $(wrapper + ' input.taggedWith:checkbox').serializeArray();
          var selectedStr = "";
          jQuery.each(valArray, function(i, field){
              taggingRemoveTag(field.name);
          });   
           qs = "&selectedStr=" + $("#tempTags").val() + "&action=" + action + "&which=taggedWith";
           $.post(Aspx, qs,function(d){
              if (d)
              {
                $(wrapper + " .taggedWith").empty();
                $(wrapper + " .taggedWith").append(d);
              }
              else {
              }
           },"html");    
           qs = "&selectedStr=" + $("#tempTags").val() + "&action=" + action + "&which=availableTags"; 
           $.post(Aspx, qs,function(d){
              if (d)
              {
                $(wrapper + " .availableTags").empty();
                $(wrapper + " .availableTags").append(d);
              }
              else {
              }
           },"html");                            
          break;
         }           
}

function taggingAddTag(tag) {
    if (!$("#tempTags").val().indexOf(tag) > -1) {
     $("#tempTags").val($("#tempTags").val() + "," + tag);
    }
}

function taggingRemoveTag(tag) {
     $("#tempTags").val($("#tempTags").val().replace(tag, ''));
}

function GoCulture(inCulturePID)
{
DoIt("SETCULTURE",inCulturePID,"","","","","");
}

function Modu(inPID)
//takes the admin to a new module based on pointer id
{
 //CollapseOpen();
 DoIt("GO",inPID,"","","","","");
}


function GoToVersion(inPID,inVID)
//takes the admin to a new asset based on pointer id and version id
{
 DoIt("GO",inPID,inVID,"","","","");
}

function Cntrl(inCtrlID)
//is for any control click where the control ID is passed to the back end
//typically used for tabs and actions - the back end will work out what has been clicked
//and execute the appropriate process

{
DoIt("CONT","","",inCtrlID,"","","");
}

function versionRowClick(Object) {
    var passID = $(Object).attr('id').replace('____','');
    myString = passID.split("_")
    var pointerID = myString[0];
    var versionID = myString[1];
    GoToVersion(pointerID,versionID);
}

function dialogSave(inCtrlID, inCtrlType, inPID) {
    if (DoIt("CONT","","",inCtrlID,"", '', '')) {
      CancelDialog('');
    }
}

function CntrlAction(inCtrlID, inCtrlType, forceAssetPointerID, forceAssetVersionID)
//is for any control clicked from within the action dropdown box
//extended to pass in the control type, if its save, run validation
{
  //CollapseOpen();
  
  switch(inCtrlType)
  {
      case "save":
      {
        if (doValidationCheck('.blockSave'))
        {
            
            if ($("#checker").length > 0) {
              $("#checker").text("false");
            }
        
            // is VALID save pass the action
            DoIt("CONT","","",inCtrlID,"", forceAssetPointerID, forceAssetVersionID);  
        }
        
        else
        {
            // is NOT VALID save.....
            //lAlerts('Al', 'validation.ascx');
            //eventTrigger("please complete al mandatory fields", "", "info_24.png");
            
             var validationStr = "";
             $(".blockSave").each(
                function(){
                  var validationID = $(this).parent().attr('id');
                  if (validationStr.length > 0) {
                    validationStr = validationStr + ",";
                  }
                  validationStr = validationStr + validationID;
                }
              );
            
            eventTrigger("#ajaxAlertsPerRequest", "validation.ascx", "there are validation errors", "info_24.png", validationStr);
        }
        
        break;
      }
      
      case "saveDraftTranslation":
      {
          DoIt("CONT","","",inCtrlID,"", forceAssetPointerID, forceAssetVersionID);  
      }
  
      case "updatePermissions":
      {
        savePermissions();
        break;
      }
      
      case "break":
      {
        breakInheritance();
        break;
      }
      
      case "exportUsers":
      {
        exportUsers(forceAssetPointerID);
      }
  
        // pass the action
      default:
      {
        DoIt("CONT","","",inCtrlID,"", forceAssetPointerID, forceAssetVersionID);
        break;
      }
  }
}

function exportUsers(pid)
{
    var aspx = "/parts/exportUsers.aspx?pid=" + pid;
    var newwin = window.open(aspx,'csvwin','','');
}

function breakInheritance()
{
    var Aspx = "/parts/ajaxPermissions.aspx";
    
    qs = "update=false&break=true&lnkid=" + $("#lnkid").val();
    
    $.post(Aspx, qs,function(d){
            if (d)
            {
              //empty blockAjaxID_Permissions
              document.getElementById("blockAjaxID_Permissions").innerHTML = '';
              //add the returned html to blockAjaxID_Permissions
              $("#blockAjaxID_Permissions").append(d);
            }
            else {
            }
         },"html");
}

function savePermissions() {

  lockDialog();

        var Aspx = "/parts/ajaxPermissions.aspx";

        var valArray = $('input.permissionswitch:checkbox').serializeArray();
        var permissionStr = "";
        jQuery.each(valArray, function(i, field){
          if (permissionStr.length > 0) {
            permissionStr = permissionStr + ",";
          }
            permissionStr = permissionStr + field.name;
        });
        //alert($("#lnkid").val());
        qs = "permissionStr=" + permissionStr + "&update=true&lnkid=" + $("#lnkid").val() + '&permView=' + $("input[name='permView']:checked").val() + '&cascade=' + $("input[name='cascade']:checked").val() + '&override=' + $("input[name='overide']:checked").val();
       
        $.post(Aspx, qs,function(d){
            if (d)
            {
              
              //empty blockAjaxID_Permissions
              document.getElementById("blockAjaxID_Permissions").innerHTML = '';
              //add the returned html to blockAjaxID_Permissions
              
              $("#blockAjaxID_Permissions").append(d);
              unLockDialog();
            }
            else {
              unLockDialog();
            }
         },"html");
}

function ajaxPermissionsType(permissionSubType) {
      AjaxLoad('#ajaxPermissionsSelector','/parts/ajaxPermissionsType.aspx?subType=' + permissionSubType,'','loading permissions','',false);
      AjaxLoad('#blockAjaxID_Permissions','/parts/ajaxPermissions.aspx?lnkid=' + permissionSubType + '&permView='+ $("input[name='permView']:checked").val(),'','reading permissions','',false);
}

function CntrlBranch(inCtrlID, inPointerID) {
  //PostIt("BACKGROUNDRELOAD","","", "", "", "Cntrl('" + inCtrlID + "')"); 
  //PostIt("BACKGROUNDRELOAD","","", "", "", ""); 
  Cntrl(inCtrlID);
}


function Custom(inCode,in1,in2)
{

}

function processDialog(inCurrentPageID, inDiagID, inAction) {
    
    lockDialog();
    
    switch (inAction) {
      case "tagSearch":
        var myArr = new Array();
        var myStringIn = new String();
        var myStringOut = new String();
        myStringIn = $("#tempTags").val();
        myArr = myStringIn.split(",");
        for(var i=0;i<myArr.length;i++)
        {    
          if (myArr[i].length > 0) {
            if (myStringOut.length > 0) {
              myStringOut = myStringOut + ",";
            }
            else {
              myStringOut = "tag:";
            }
            myStringOut = myStringOut + myArr[i].substring(1, myArr[i].length - 1);
          }
        }
        doGrid(taggingTargetWrapper, '', '', taggingUserControl , myStringOut, '', '');
        CancelDialog('');      
        unLockDialog();
        break;
      case "taggIt":
        doGridWithTagging(taggingTargetWrapper, '', '',taggingUserControl, taggingSearchStr, '', '',$("#tempTags").val());
        CancelDialog('');
        unLockDialog();
        break;
      default:
        var aspx = "/parts/_AJAXProcessDialog.aspx";
        var qs = $("#PostData").formSerialize(true);
        qs += "&cod=" + inAction;
        qs += "&pid=" + inCurrentPageID;
        qs += "&dialogid=" + inDiagID;

        $.post(aspx,qs,function(d)
        {
           if ($("#workAreaLeft .tree").length > 0) {
               MakeAjaxCalls(" # Tascx W A");
            }
            else {
              MakeAjaxCalls(" # Tr W A");
            }
            CancelDialog('');
            unLockDialog();
        },"html");
        break;
    }
}

function CancelDialog(inPID)
{
 Locked = false; //have to set this quickly to prevent a wait for request warning 
 DoIt("CANCEL",inPID,"","","","","");
 //cleanDialoge();
 //toggleDialoge(false);
 closeUIdialog('dialog');
}


function doMetaBlock(inWrapper, isDialogue, inPointerID, inUserControl) {
  var queryString;
  queryString = "/Parts/ajaxMetaBlock.aspx?"
  queryString = queryString + "&inW=" + inWrapper;
  queryString = queryString + "&inPid=" + inPointerID;
  queryString = queryString + "&inUC=" + inUserControl;
  queryString = queryString + "&isDialogue=" + isDialogue;
  AjaxLoad("#" + inWrapper,queryString,"","","",false);
}


function doBlock(inWrapper, inPointerID, inUserControl, isToolTip, ajaxID) {
  var queryString;
  queryString = "/Parts/ajaxBlock.aspx?"
  queryString = queryString + "&inW=" + inWrapper;
  queryString = queryString + "&inPid=" + inPointerID;
  queryString = queryString + "&inUC=" + inUserControl;
  queryString = queryString + "&inWTT=" + isToolTip;
  queryString = queryString + "&inAid=" + ajaxID;
  AjaxLoad("#" + inWrapper,queryString,"","","",false);
}

function isEnterKeyPress(e) {
	if (!e) var e = window.event
	// e refers to the event
	if (e.keyCode == 13) {
	  return true;
	}
	return false;
}


function doGridKeyUpEnter(inWrapper, inType, inpgNumber, inGridType, inSearchStr, inRootPointerID, inID, e) {

  //V important section dealing with enter keystroke for grids...
  
  var elem = $(inWrapper + " #searchStr");
  elem.focus();
  if (isEnterKeyPress(e))
  {
  
  Locked = true;
    if ($("#" + inWrapper + " .gridheader input").length > 0) {
      $("#" + inWrapper + " .gridheader input").attr("disabled", true); 
    }
    
    $("#" + inWrapper + " .gridScroll").remove();
    $("#" + inWrapper + " .gridFooter").remove();
    $("#" + inWrapper + " .grid").append('<img style="margin: 4px;" src="/assets/images/common/icons_status/ajax-loader.gif" />');
   
    var inSort = "navigationName";
    var queryString;
    queryString = "/Parts/ajaxGrid.aspx?"
    queryString = queryString + "inG=" + inType;
    queryString = queryString + "&inP=" + inpgNumber;
    queryString = queryString + "&inS=" + inSort;
    queryString = queryString + "&inW=" + inWrapper;
    queryString = queryString + "&inGT=" + inGridType;
    queryString = queryString + "&inID=" + inID;
    
    if (inSearchStr) {
      inSearchStr = inSearchStr.replace("##SINGLEQUOTE##", "'");
    }

    queryString = queryString + "&inSS=" + inSearchStr;
    queryString = queryString + "&inPid=" + inRootPointerID;
    
    AjaxLoad("#" + inWrapper,queryString,"/js/controls/controls.WorkArea.js","","",false);
  }
}

function doGridKeyUpAny(inWrapper, inType, inpgNumber, inGridType, inSearchStr, inRootPointerID, inID, e) {
  var elem = $(inWrapper + " #searchStr");
  elem.focus();
  var inSort = "navigationName";
  var queryString;
  queryString = "/Parts/ajaxGrid.aspx?"
  queryString = queryString + "inG=" + inType;
  queryString = queryString + "&inP=" + inpgNumber;
  queryString = queryString + "&inS=" + inSort;
  queryString = queryString + "&inW=" + inWrapper;
  queryString = queryString + "&inGT=" + inGridType;
  queryString = queryString + "&inID=" + inID;
      if (inSearchStr) {
      inSearchStr = inSearchStr.replace("##SINGLEQUOTE##", "'");
    }
  queryString = queryString + "&inSS=" + inSearchStr;
  queryString = queryString + "&inPid=" + inRootPointerID;
  clearTimeout(t);
  t=setTimeout(function(){refreshList(inWrapper,queryString)},500);
}

function doGrid(inWrapper, inType, inpgNumber, inGridType, inSearchStr, inRootPointerID, inID) {
  
  
  $("#dialog li.ajaxedAction").remove()
  $("#" + inWrapper + " .gridScroll").remove();
  $("#" + inWrapper + " .gridFooter").remove();
  $("#" + inWrapper + " .grid").append('<img style="margin: 4px;" src="/assets/images/common/icons_status/ajax-loader.gif" />');
  
  var elem = $(inWrapper + " #searchStr");
  elem.focus();
  var inSort = "navigationName";
  var queryString;
  queryString = "/Parts/ajaxGrid.aspx?"
  queryString = queryString + "inG=" + inType;
  queryString = queryString + "&inP=" + inpgNumber;
  queryString = queryString + "&inS=" + inSort;
  queryString = queryString + "&inW=" + inWrapper;
  queryString = queryString + "&inGT=" + inGridType;
  queryString = queryString + "&inID=" + inID;
    if (inSearchStr) {
      inSearchStr = inSearchStr.replace("##SINGLEQUOTE##", "'");
    }
  
  queryString = queryString + "&inSS=" + inSearchStr;
  queryString = queryString + "&inPid=" + inRootPointerID;
  AjaxLoad("#" + inWrapper,queryString,"/js/controls/controls.WorkArea.js","","",false);
}

function doGridWithTagging(inWrapper, inType, inpgNumber, inGridType, inSearchStr, inRootPointerID, inID, inTagStr) {
 Locked = true;

    $("#" + inWrapper + " .gridScroll").remove();
    $("#" + inWrapper + " .gridFooter").remove();
    $("#" + inWrapper + " .grid").append('<img style="margin: 4px;" src="/assets/images/common/icons_status/ajax-loader.gif" />');

    if ($("#" + inWrapper + " .gridheader input").length > 0) {
      $("#" + inWrapper + " .gridheader input").attr("disabled", true); 
    }

  var elem = $(inWrapper + " #searchStr");
  elem.focus();
  var inSort = "navigationName";
  var queryString;
  queryString = "/Parts/ajaxGrid.aspx?"
  queryString = queryString + "inG=" + inType;
  queryString = queryString + "&inP=" + inpgNumber;
  queryString = queryString + "&inS=" + inSort;
  queryString = queryString + "&inW=" + inWrapper;
  queryString = queryString + "&inGT=" + inGridType;
  queryString = queryString + "&inID=" + inID;
  queryString = queryString + "&inTagStr=" + encodeURI(inTagStr);
      if (inSearchStr) {
      inSearchStr = inSearchStr.replace("##SINGLEQUOTE##", "'");
    }
  queryString = queryString + "&inSS=" + inSearchStr;
  queryString = queryString + "&inPid=" + inRootPointerID;
  //$("#" + inWrapper + " #taggingTD").empty();
  // $("#" + inWrapper + " #taggingTD").append("<img src=\"/assets/images/common/icons_status/ajax-loader.gif\" /> tagging assets, please wait...");
  AjaxLoad("#" + inWrapper,queryString,"","","",false);
  
}

function doGridXLS(inWrapper, inGridType, inSearchStr) {
  var inSort = "navigationName";
  var queryString;
  queryString = "/Parts/ajaxGrid.aspx?";
  queryString = queryString + "doXLS=true";
  queryString = queryString + "&inW=" + inWrapper;
  queryString = queryString + "&inGT=" + inGridType;
  if (inSearchStr) {
    inSearchStr = inSearchStr.replace("##SINGLEQUOTE##", "'");
  }
  queryString = queryString + "&inSS=" + inSearchStr;
  AjaxLoad("#" + inWrapper,queryString,"/js/controls/controls.WorkArea.js","","",false);
}

function refreshList(inWrapper,queryString)
{
    AjaxLoad("#" + inWrapper,queryString,"","","",false);
}

function SaveRenamePickerRow(inRowID, inPickerName) {

    lockDialog();

    var Aspx = "/parts/ajaxRenameAssetPickerRow.aspx";
    var val = $("#txtRename_" + inRowID).val();
    var qs = "id=" + inRowID + "&val=" + val + "&pickername=" + inPickerName;
    $.post(Aspx, qs, function(d) {
        if (d) {

            var retval = val;
            var retvaldisp = val;
            if (retval == "" || d == "REMOVED") {
                retval = val;
                retvaldisp = val;
            } else {
                retvaldisp = "<span style=\"text-decoration:line-through;\">" + d + "</span> " + val;
            }
            $("tr#" + inRowID + " td.assetname").html("<a href=\"Javascript:Go('" + inRowID.replace("ast_", "") + "')\">" + retvaldisp +"</a>");
            $("tr#" + inRowID + " td.assetrename").html("<a href=\"Javascript:RenamePickerRow('" + inRowID + "', '" + retval + "', '" + inPickerName + "')\">rename&nbsp;</a>");
            unLockDialog();
        } else {
            alert("Error saving renamed XREF");
            unLockDialog();
        }
    }, "html");
}

function RenamePickerRow(inRowID, inName, inPickerName) {
    $("tr#" + inRowID + " td.assetname").html("<input type=\"text\" id=\"txtRename_" + inRowID + "\" value=\"" + inName + "\" />");
    $("tr#" + inRowID + " td.assetrename").html("<a href=\"Javascript:SaveRenamePickerRow('" + inRowID + "', '" + inPickerName + "')\">save&nbsp;</a>");
}

function ReorderPicker(inRemoveID, inFormRowID) {
        var valueOveride = $("#temp").val();
        valueOveride = valueOveride.replace(inRemoveID, '');
        AjaxLoad("#ajaxAssetPicker","/parts/ajaxAssetPicker.aspx?isDialogue=true&valueOveride=" + valueOveride + "&formRowPointerID=" + inFormRowID,"","updating asset","","");
}

function SavePicker(pickerLookUpNode, returnValue, inDestination, inFormRowID) {
        AjaxLoad("#row_" + inFormRowID,"/parts/ajaxAssetPicker.aspx?valueOveride=" + $("#temp").val() + "&formRowPointerID=" + inFormRowID,"","updating asset","","");
        CancelDialog("");
}

function emptyAssetPicker(inFormRowID) {
  AjaxLoad("#row_" + inFormRowID,"/parts/ajaxAssetPicker.aspx?action=empty&formRowPointerID=" + inFormRowID,"","emptying asset picker","","");
}

function drawDestinationTree(inReasonID, inRootID) {
 treeCreate("#ajaxDestinationTree", "XREFtreeDestination", "Des_", inReasonID, "false", inRootID, "ajaxSourceTree", false, true, true, false, false,'', "false");
   // sets the isRecursive to on for navigational reasom type
  if (inReasonID == "DFC4EDBBDFBA4402923C2A0BCB57FE95") {
    $("#isRecursive").val("1");  
  }
  else 
  {
    $("#isRecursive").val("0");  
  }
}
  
  
  function drawSourceTree(inReasonID,inRootID) {
   if (inRootID != "") {
    inRootID = "____" + inRootID;
   }
   treeCreate("#ajaxSourceTree", "XREFtreeSource", "Sou_", inReasonID, "false", inRootID, "", false, true, false, false, false,'', "on");
  } 

function processTree(nodeMovedID, nodeMovedToID, prevNodeID, nextNodeID, reasonTypeID, isRecursive, type, treeType, moduleGroupPointerID)
{
      lockDialog();
      var Aspx = "/parts/_AjaxPostBack.aspx";
      var qs = "cod=processTree&treeType=" + treeType + "&type=" + type + "&nodeMovedID=" + nodeMovedID + "&nodeMovedToID=" + nodeMovedToID + "&prevNodeID=" + prevNodeID + "&nextNodeID=" + nextNodeID + "&reasonTypeID=" + reasonTypeID + "&isRecursive=" + isRecursive;

      $.post(Aspx, qs,function(d){
      if (d)
        {
          //Success
          switch (treeType) {
            case "XREFtreeDestination":
              lWaL("Tascx");
              drawSourceTree(reasonTypeID, moduleGroupPointerID);
              drawDestinationTree(reasonTypeID, '');
              break;
            case "XREFtreeSource":
              drawDestinationTree(reasonTypeID, '');  
              lWaL("Tascx");
              break;  
            case "contacts":
              lWaR("V");
              lWa("W");
              lWaL("Tr");
              break;
            default:
              drawSourceTree(reasonTypeID, moduleGroupPointerID);
              drawDestinationTree(reasonTypeID, '');         
              break;
          }
          unLockDialog();
        }
      else
        {
        }
       },"html");
}

var wizardProcessing = false;

function moveContact() {
          var Aspx = "/parts/_AjaxPostBack.aspx";
          var qs = $("#PostData").formSerialize(true);
          qs = qs + "&cod=moveContact";
          $.post(Aspx, qs,function(d){
              if (d) {
                CancelDialog(d);
              } 
          })
}


function updateSubscriber() {
          var Aspx = "/parts/_AjaxPostBack.aspx";
          var qs = $("#PostData").formSerialize(true);
          qs = qs + "&cod=updateSubscriber";
          $.post(Aspx, qs,function(d){
              if (d)
              {
                   // Locked = false;
                    wizardProcessing = false;
                    CancelDialog();
                    MakeAjaxCalls(" # W ");
              }
            },"html");
}

function saveWizardUpdate(inAssetCreatedPointerID, inCurrentPageID, inDiagID, inAction, inFpid, inFvid) {
     
     lockDialog();
     
     if (!wizardProcessing) { 
      wizardProcessing = true;
        if (doValidationCheck('#aWindow .blockSave') || inAction == "closeanddelete") {
          var Aspx = "/parts/_AjaxPostBack.aspx";
          var qs = $("#PostData").formSerialize(true);
          qs = qs + "&cod=saveWizardUpdate&dpID=" + inDiagID + "&cPid=" + inCurrentPageID + "&inA=" + inAction + "&assetCreatedPointerID=" + inAssetCreatedPointerID;
          $.post(Aspx, qs,function(d){
              if (d)
              {
                MakeAjaxCalls(" # C ");
                CancelDialog(d);
                wizardProcessing = false;
                unLockDialog();
              }
              else {
                  CancelDialog();
                  wizardProcessing = false;
                  unLockDialog();
              }
           },"html");         
        }
      }
      
      unLockDialog();
}

function lockDialog() {
  $("#darkerSide").show();
  Locked = true;
}

function unLockDialog() {
  $("#darkerSide").hide();
  Locked = false;
}

function saveWizard(inAssetCreatedPointerID, inCurrentPageID, inDiagID, inAction, inFpid, inFvid) {
     
     lockDialog();
     
     if (!wizardProcessing) { 
      wizardProcessing = true;
      if (doValidationCheck('#aWindow .blockSave') || inAction == "closeanddelete") {
        if ((inAction == "saveandclose") || (inAction == "saveandadd") || (inAction == "saveandcontinue") || (inAction == "assignuser") || (inAction == "closeanddelete")) {
          var Aspx = "/parts/_AjaxPostBack.aspx";
          var qs = $("#PostData").formSerialize(true);
          qs = qs + "&cod=saveWizard&dpID=" + inDiagID + "&cPid=" + inCurrentPageID + "&inA=" + inAction + "&assetCreatedPointerID=" + inAssetCreatedPointerID;
          
           if ($("#dialog .anMCE").length > 0) {
              // at least one mce editor found
              $("#dialog .anMCE").each(
                function(){
                  // loop through each one, extracting its html and adding it to the qs
                  // as they will not be serialized as they have no name attr
                  var theID = $(this).attr('id');
                  var mceContent = tinyMCE.get(theID).getContent()
                  var encodedContent = encodeContent(mceContent);
                  qs += "&" + theID + "=" + encodedContent;
                  theID = "";
                  mceContent = "";
                  encodedContent = "";
                }
              );
              unbindMce("#dialog");
            } 
            
          $.post(Aspx, qs,function(d){
              if (d)
              {
                if (inAction == "saveandcontinue") {
                    AjaxPost('#dialog','/parts/ajaxDialogue.aspx?d=contact&cancelPointerNavigateTo=' + d + '&pointerParentID=' + d + '&dpID=' + inDiagID + '&cPid=' + inCurrentPageID + '&inA=' + inAction + '&assetCreatedPointerID=' + inAssetCreatedPointerID,'','','','')
                    MakeAjaxCalls(" # W ");
                   // Locked = false;
                    wizardProcessing = false;
                    unLockDialog();
                }
                else {
                    //Locked = false;
                    wizardProcessing = false;
                    unLockDialog();
                    if ($("#workAreaLeft .tree").length > 0) {
                      MakeAjaxCalls(" # Tascx W A V ");
                    }
                    else {
                      MakeAjaxCalls(" # Tr W A V ");
                    }
                    
                    CancelDialog();
                }
              }
              else {
               
                  AjaxLoad('#dialog','/parts/ajaxDialogue.aspx?d=contact&dpID=' + inDiagID + '&cPid=&inA=reset','/js/controls/controls.Dialogs.js','','','');
                 // Locked = false;
                  wizardProcessing = false;
                  unLockDialog();
              }
           },"html"); 
         }
         else {
         
               var qs = $("#PostData").formSerialize(true);
          
                if ($("#dialog .anMCE").length > 0) {
                  // at least one mce editor found
                  $("#dialog .anMCE").each(
                    function(){
                      // loop through each one, extracting its html and adding it to the qs
                      // as they will not be serialized as they have no name attr
                      var theID = $(this).attr('id');
                      var mceContent = tinyMCE.get(theID).getContent()
                      var encodedContent = encodeContent(mceContent);
                      qs += "&" + theID + "=" + encodedContent;
                      theID = "";
                      mceContent = "";
                      encodedContent = "";
                    }
                  );
                  unbindMce("#dialog");
                } 
           AjaxPost('#dialog','/parts/ajaxDialogue.aspx?d=contact&' + qs + '&dpID=' + inDiagID + '&cPid=' + inCurrentPageID + '&inA=' + inAction + '&fpid=' + inFpid + '&fvid=' + inFvid + '&assetCreatedPointerID=' + inAssetCreatedPointerID,'','','','')
           //Locked = false;
           wizardProcessing = false;
           unLockDialog();
         }
       }
       else {
        wizardProcessing = false;
        unLockDialog();
       }
       }
       else {
        wizardProcessing = false;
        unLockDialog();
       }
       
       
      }

      function postValidation(inValue, inRowID) {
         AjaxPost('#val_row_' + inRowID,'/parts/ajaxValidation.aspx?value=' + inValue + '&rowPointerID=' + inRowID,'','','','')
      }

      function doValidationCheck(inObject) {
          var isOveride = $("input.overideVal:checked").val();
          if (isOveride) {
            return true;
          }
          if ($(inObject).length > 0) {
          // alert("validation failed: errors: " + $('#aWindow .alerts').length);
          return false;
          }
          else {
          //alert("validation passed");
          return true;
          }
      }
      
function saveUseCase(inCurrentPageID, inDiagID, inAction) {
    var aspx = "/parts/_AjaxPostBack.aspx";
    var qs = $("#PostData").formSerialize(true);
    qs += "&cod=saveUseCase";
    qs += "&cpid=" + cpid;

    $.post(aspx,qs,function(d)
    {
        if (d)
        {
            CancelDialog(d);
        }
        else
        {
            //fail
        }
    },"html");
}

function doRestore(inParentID) {

  lockDialog();

    if (!wizardProcessing) { 
    wizardProcessing = true;  
      var Aspx = "/parts/_AjaxPostBack.aspx";
      var qs = "cod=restore";
      $.post(Aspx, qs, function(d) {
          if (d) {
              wizardProcessing = false;
              unLockDialog();
              CancelDialog(d);
          }
          else {
            wizardProcessing = false;
            unLockDialog();
              //Fail
          }
      }, "html");
    }
}

function doRecycleEmpty(inParentID) {
lockDialog();
    if (!wizardProcessing) { 
    wizardProcessing = true;   
      var Aspx = "/parts/_AjaxPostBack.aspx";
      var qs = "cod=recycle_empty";
      $.post(Aspx, qs, function(d) {
          if (d) {
              wizardProcessing = false;
              unLockDialog();
              CancelDialog(d);
          }
          else {
              wizardProcessing = false;
              unLockDialog();
              //Fail
          }
      }, "html");
    }
}

function doPushSubscribers(inParentID) {
    var Aspx = "/parts/_AjaxPostBack.aspx";
    var qs = $("#PostData").formSerialize(true);
    qs = qs + "&cod=pushSubscribers";
    Locked = true;
    wizardProcessing = true;
    $(".actions").hide();
    $('.invalue input').attr('disabled', 'disabled');
    $.post(Aspx, qs, function(d) {
        if (d.indexOf("FAIL") > -1) {
            alert(d);
            Locked = false;
            wizardProcessing = false;
            $(".actions").show();
            $('.invalue input').attr('disabled', '');
            CancelDialog(d);
        } else {
            Locked = false;
            wizardProcessing = false;
            $(".actions").show();
            $('.invalue input').attr('disabled', '');
            CancelDialog(d);
        }
    }, "html");
}

function doRecycle(inParentID, ind) {

    lockDialog();

    if (!wizardProcessing) { 
    wizardProcessing = true;
    var valArray = $('input.toRecycle:checkbox').serializeArray();
    var recyChildren = false;
    
    if ($('input.recyChildren:checked').length > 0) {
        recyChildren = true;
    }

      var pointerStr = "";
      jQuery.each(valArray, function(i, field){
        if (pointerStr.length > 0) {
          pointerStr = pointerStr + ",";
        }
        pointerStr = pointerStr + field.value;
      });

      if (pointerStr.length > 0) {
        var Aspx = "/parts/_AjaxPostBack.aspx";
        var qs = "cod=recycle&pointerStr=" + pointerStr;
        if (recyChildren) {
            qs = qs + "&recyChildren=1";
        } else {
            qs = qs + "&recyChildren=0";
        }
        $.post(Aspx, qs, function(d) {
            if (d) {
                wizardProcessing = false;
                unLockDialog();
                if (ind != "") {
                    MakeAjaxCalls(ind, "", "");
                }
                if (recyChildren) {
                    CancelDialog(pointerStr);
                } else {
                    CancelDialog(inParentID);                
                }

            }
            else {
                wizardProcessing = false;
                unLockDialog();
                CancelDialog();
            }
        }, "html");
      }
      else {
      wizardProcessing = false;
        CancelDialog('');
        unLockDialog();
      }
     }

 }
 
// function doCreateLetter(inParentID) {
//           var addressID = $("input.aRadio:checked").val();
//           var Aspx = "/parts/_AjaxPostBack.aspx";
//           var qs = $("#PostData").formSerialize(true);
//           qs += "&cod=crmLetter&ParentID=" + inParentID + "&crmAddress=" + addressID;
//           $.post(Aspx, qs, function(d) {
//               if (d) {
//                   //call to open new window, passing in pointerid of new asset
//                   window.open("/parts/crm_Letter.aspx?letterid=" + d, "letter", "");
//                   
//               }
//           }, "html");
//           
//           CancelDialog(inParentID);
// }
// 


 function doCreateLetter(inParentID) {
           var addressID = $("input.aRadio:checked").val();
           var Aspx = "/parts/_AjaxPostBack.aspx";
           var qs = $("#PostData").formSerialize(true);
           qs += "&cod=crmLetter&ParentID=" + inParentID + "&crmAddress=" + addressID;
           
           var LetterID = '';
           
          $.ajax({
            url: Aspx + "?" + qs,
            async: false,
            cache: false,
            dataType: "html",
            success: function(html)
            {
              LetterID = html 
              return true
            }
          });
          
          window.open("/parts/crm_Letter.aspx?LetterID=" + LetterID, "letter", "");
                   
          CancelDialog(inParentID);
 }

 
 function doCreateEmail(inParentID, inSubject) {

           var addressID = $("input.aRadio:checked").val();
           var Aspx = "/parts/_AjaxPostBack.aspx";
           var qs = $("#PostData").formSerialize(true);
           qs += "&cod=crmEmail&ParentID=" + inParentID + "&crmAddress=" + addressID;
           
            $.ajax({
               type: "POST",
               url: "/parts/_AjaxPostBack.aspx",
               data: qs,
               dataType: "json",
               success: function(d){
                   var href = "mailto:" + d.address + "?" 
                   if (d.subject) {
                    href = href + "subject=" + d.subject;
                   }     
                   if (d.body) { 
                    if (d.subject) {
                      href = href + "&";
                    }
                    href = href + "body=" + d.body;
                   }
                   var wndMail = window.open(href, "_blank", "scrollbars=yes,resizable=yes,width=10,height=10");
                   if(wndMail)
                   {    
                   wndMail.close();   
                   }
                   
               }

             });
          CancelDialog(inParentID);
 }

function createCulture()
{

  if (!wizardProcessing) { 
     wizardProcessing = true;
       var Aspx = "/parts/_AjaxPostBack.aspx";
       var qs = $("#PostData").formSerialize(true);
       qs += "&cod=createCulture";
        $.ajax({
           type: "POST",
           url: "/parts/_AjaxPostBack.aspx",
           data: qs,
           dataType: "html",
           success: function(d){
               CancelDialog(d);
               wizardProcessing = false;
           }
         });
        wizardProcessing = false;
   }
}

//function CultureMoveTo(inData)
//{
//    var pointer , version;
//    if(inData.toString().indexOf("-",0) > -1)
//    {
//        var dataSplit = inData.toString().split("-");
//        pointer = dataSplit[0];
//        //version = dataSplit[1];
//        //GoToVersion(pointer,version);
//        return pointer;
//    } else {
//     return "";
//    }
//}
function applyTranslationRequests() {

lockDialog();

  if (!wizardProcessing) { 
     wizardProcessing = true;
       var Aspx = "/parts/_AjaxPostBack.aspx";
       var qs = $("#PostData").formSerialize(true);
       qs += "&cod=translationRequest";
        $.ajax({
           type: "POST",
           url: "/parts/_AjaxPostBack.aspx",
           data: qs,
           dataType: "html",
           success: function(d){
               CancelDialog(d);
               wizardProcessing = false;
               unLockDialog();
           }
         });        
   }
}

function doDelete(inParentID, inFpid, inFvid) {

      if (!wizardProcessing) { 
      wizardProcessing = true;
      var valArray = $('input.toDelete:checkbox').serializeArray();
      var pointerStr = "";
      jQuery.each(valArray, function(i, field){
        if (pointerStr.length > 0) {
          pointerStr = pointerStr + ",";
        }
        pointerStr = pointerStr + field.value;
      });
     
      if (pointerStr.length > 0) {
        var Aspx = "/parts/_AjaxPostBack.aspx";
        var qs = "cod=del&pointerStr=" + pointerStr + "&ParentID=" + inParentID + '&fpid=' + inFpid + '&fvid=' + inFvid;
        $.post(Aspx, qs,function(d){
            if (d)
            {
              wizardProcessing = false;
              CancelDialog(inParentID);
            }
            else {
            //Fail
            wizardProcessing = false;
            }
         },"html");
      }
      else {
        wizardProcessing = false;
        CancelDialog('');
      }
      }
  }

  function doAttachRemove() {
      var Aspx = "/parts/_AjaxPostBack.aspx";
      var qs = "cod=remAttachment"
      $.post(Aspx, qs, function(d) {
          if (d) {
              AjaxLoadBasic('#ajaxUpload', "/parts/ajaxFile.aspx");
          }
      }, "html");
  }

function doCRMfav(inAction) {
  AjaxLoad("#blockAjaxID_ContactFavs","/parts/ajaxContactFavs.aspx?action=" + inAction,"","","",false);
}


function doCRMfav(inAction) {
   var Aspx = "/parts/_AjaxPostBack.aspx";
      var qs = "cod=addToFavs&action=" + inAction;
      $.post(Aspx, qs,function(d){
          if (d)
          {
              AjaxLoad("#blockAjaxID_ContactFavs","/parts/ajaxContactFavs.aspx","","","",false);
              AjaxLoad("#crmContactFav","/parts/ajaxContactFavsButton.aspx","","","",false);
          }
          else {
          //Fail
          }
       },"html");
}

function copyElement() {
    if (!wizardProcessing) { 
    wizardProcessing = true;
    var Aspx = "/parts/_AjaxPostBack.aspx";
        var qs = "cod=copyElement&cpyPID=" + $("#hdnPID").val();
        
        $.post(Aspx,qs,function(d){
            if(d)
            {
                if(d.toString().substr(0,6) != "[NULL]"){
                    wizardProcessing = false;
                    CancelDialog(d);
                } else {
                wizardProcessing = false;
                AjaxLoad('#copyElementCheck','/parts/ajaxCopyElement.aspx?isDialogue=true&error=' & d.toString().substr(6,d.toString().length),'','selecting element','','');
                }
                //alert(d);
            } else {
              wizardProcessing = false;
            }
        },"html");
        
        }
}

  function scheduleJob(inScheduleType) {
      if (!wizardProcessing) { 
      wizardProcessing = true;
      var Aspx = "/parts/_AjaxPostBack.aspx";
          var qs = "cod=scheduleJob&scheduleType=" + inScheduleType + "&addresses=" + $("#addresses").text() + "&mobiles=" + $("#mobiles").text() + "&msDate=" + $("#msDate").val();
          $.post(Aspx,qs,function(d){
              if(d)
              {
                CancelDialog(d);
                wizardProcessing = false;
              } else {
                wizardProcessing = false;
              }
          },"html");
        }
  } 

function copyAsset(saveType) {
    if (!wizardProcessing) { 
      wizardProcessing = true;
      var Aspx = "/parts/_AjaxPostBack.aspx";
          var qs = "cod=copyAsset&cpyPID=" + $("#hdnPID").val();
          qs += "&chkCpyChild=" + isCheckedById("chkCpyChild");
          qs += "&selSaveType=" + saveType;
          
          
          $.post(Aspx,qs,function(d){
              if(d)
              {
                  if(d.toString().substr(0,6) != "[NULL]"){
                      wizardProcessing = false;
                      CancelDialog(d);
                  } else {
                  wizardProcessing = false;
                  AjaxLoad('#copyAssetCheck','/parts/ajaxCopyAsset.aspx?isDialogue=true&error=' & d.toString().substr(6,d.toString().length),'','selecting element','','');
                  }
                  //alert(d);
              } else {
                wizardProcessing = false;
              }
          },"html");
        }

    }

function isCheckedById(id) 
{ 
    var checked = $("input[@id="+id+"]:checked").length; 
    if (checked == 0) 
    { 
        return "0"; 
    } 
    else 
    { 
        return "1"; 
    } 
} 
function unlockActionBar()
{
    $("#actionLock").hide();
}


// EDITOR CALLS

  var tempSelection;
  
  function setSelection()
  {
    if ($("#Center_pinEditor").length > 0) {
      tempSelection = document.frames['Center_pinEditor'].document.frames['editContainer'].document.frames['pinEdit'].document.selection.createRange();
      return false;
    }
    
    if ($("#Center_compare_pinEditor").length > 0) {
       tempSelection = document.frames['Center_compare_pinEditor'].document.frames['editContainer'].document.frames['pinEdit'].document.selection.createRange();
       return false;
    }
  }

  function setASPTextBoxClass() {
     document.frames['Center_pinEditor'].document.frames['editContainer'].document.frames['pinEdit'].document.getElementById('__VIEWSTATE').className = 'forcehide';  
     document.frames['Center_pinEditor'].document.frames['editContainer'].document.frames['pinEdit'].document.getElementById('__EVENTVALIDATION').className = 'forcehide';                 
  }
  
 

  
   function setASPTextBoxClassMCE() {
     document.frames['txt_Content_ifr'].document.getElementById('__VIEWSTATE').className = 'forcehide';  
     document.frames['txt_Content_ifr'].document.getElementById('__EVENTVALIDATION').className = 'forcehide';                 
  }


  function readSelection()
  {
    tempSelection.select();
  }   

  function editorLinkInIt()
  {
      setSelection();
      objElement = tempSelection;
      var temp = objElement.href;
      alert(temp);
      //document.getElementById("txtID").value = win.__editRelativeGetId(objElement);
      //document.getElementById("txtUrl").value = win.__editRelativeGetUrl(objElement);
      //document.getElementById("txtText").value = objElement.innerHTML;
      //document.getElementById("txtTarget").value = objElement.target;
      //document.getElementById("txtTitle").value  = objElement.title;
    }

  function doInsertLink(id) {
      readSelection();
      Center_pinEditor.editInsertHtml("<span style='font-weight:bold'>This html content has been inserted.</span>");
      CancelDialog('');
      
//        var lnkUrl = document.getElementById("hidLnk").value;
//        var lnkTitle = document.getElementById("txtLnkTitle").value;
//        window.pinEditor.editCreateLink(lnkUrl, "", lnkTitle, "", "", "");        
    }
    
    
    
  var paramsPush;
  var dialogArgumentsPush;
  var filePush;
  var editorURLpush;
  var selectedObject;
  
  function setParam(inparams) {
      paramsPush = inparams;
      dialogArgumentsPush = inparams;
  }
  
  function setSelectedObject(inObject) {
      selectedObject = inObject;
  }
  
  function setEditorURL(inURL) {
      editorURLpush = inURL;
  }

  function setFile(file) {
      filePush = file;
  }
  
  function process(fileType) {

  readSelection();

  var outputStr;
  var filePath;
  var altText;
  var width;
  var height;
  
  var align = "";
  var marginleft = "";
  var marginright = "";
  var margintop = "";
  var marginbottom = "";

  filePath = $("#path").val();
  altText = $("#alt").val();
  width = $("#width").val();
  height = $("#height").val();
  
  align = $("#img_align").val()
  marginleft = $("#marginleft").val();
  marginright = $("#marginright").val();
  margintop = $("#margintop").val();
  marginbottom = $("#marginbottom").val();
  
  var styleStr = "";
  
  if (marginleft != "") {
    styleStr = "MARGIN-LEFT: " + marginleft + "px; "
  }
  
  if (marginright != "") {
     styleStr = styleStr + "MARGIN-RIGHT: " + marginright + "px; "
  }
  
  if (margintop != "") {
     styleStr = styleStr + "MARGIN-TOP: " + margintop + "px; "
  }
  
  if (marginbottom != "") {
     styleStr = styleStr + "MARGIN-BOTTOM: " + marginbottom + "px; "
  }
  
  if (styleStr != "") {
    styleStr = " style=\"" + styleStr + "\"";
  }
  
  var alignStr = "";
  
  if (align != "") {
     alignStr = " align=\"" + align + "\"";
  }
    
    switch(fileType) {
      case "IMAGE":
        outputStr = "<img" + styleStr + " src=\"" + filePath + "\" alt=\"" + altText + "\" width=\"" + width + "\" height=\"" + height + "\"" + alignStr + " />";
      break;
    }  
  
    var isEditor;
  
    if ($("#Center_pinEditor").length > 0) {
      isEditor = Center_pinEditor;
    }
    
    if ($("#Center_compare_pinEditor").length > 0) {
      isEditor = Center_compare_pinEditor;
    }
  
    if (selectedObject) { 
      //object selected, replace it
      //var findImageObject = $(selectedObject).find("IMG")[0];
      //  if (findImageObject) {
      //  $(findImageObject).replaceWith(outputStr); 
      // }
      // else {
      //  Center_pinEditor.editInsertHtml(outputStr);
      // }
        if (selectedObject.tagName == "IMG") {
          $(selectedObject).replaceWith(outputStr); 
        }
        else {
          isEditor.editInsertHtml(outputStr);
        }
      }
    else {
      //no object selected, just drop the image in
       isEditor.editInsertHtml(outputStr);
      }
      
  CancelDialog('');
}
 
 
function checkAllCultures(thisClass) {
  if (thisClass.indexOf("selectall",0) > -1) {
    $(".cultureSelect[type='checkbox']").attr('checked', true);
    $(".chktoggler").removeClass('selectall');
    $("#checkalltext").text('uncheck all');
  }
  else {
   $(".cultureSelect[type='checkbox']").attr('checked', false);
   $(".chktoggler").addClass('selectall');
   $("#checkalltext").text('check all');
  }
} 

function addNewTerm()
{
    var Aspx = "/parts/_AjaxPostBack.aspx";
       var qs = $("#PostData").formSerialize(true);
       qs += "&cod=addglossterm";
        $.ajax({
           type: "POST",
           url: "/parts/_AjaxPostBack.aspx",
           data: qs,
           dataType: "html",
           success: function(d){
               CancelDialog(d);
           }
         });
}


var count = 0;

function setScroll(scrollPos) {
    var i=0;
    var keepRunning = true;
    while (keepRunning)
      {
        try {
          document.frames[i].document.frames['editContainer'].document.frames['pinEdit'].document.body.scrollTop = scrollPos;
          i++;
          }
        catch(err){
          keepRunning = false;
        }
      }
}

function scrollPush(which) {
  setScroll(document.frames[which].document.frames['editContainer'].document.frames['pinEdit'].document.body.scrollTop);
}

 

