String.prototype.trim = function() {
   return this.ltrim().rtrim();
}
String.prototype.ltrim = function() {
   return this.replace(/^\s+/,'');
}
String.prototype.rtrim = function() {
   return this.replace(/\s+$/,'');
}

var webAppPath = '';

function ClientCallback(result, context)
{
    //alert('Primary role has been successfully saved!');
}

// the ID of DIV element 
// which wraps the MainBodyContainer in Main.Master.aspx
var pleaseWaitMainContainerID = 'MainBodyContainerDiv';

function addEvent(obj, evType, fn){
 if (obj.addEventListener){
    obj.addEventListener(evType, fn, false);
    return true;
        } 
    if (obj.attachEvent){
    var r = obj.attachEvent("on"+evType, fn);
    return r;
        }             
    return false;    
}

function ClientCallbackError(result, context)
{
    if ((pleaseWaitMainContainerID != null) && (pleaseWait != null))
    {
        pleaseWait.HideProgress(pleaseWaitMainContainerID);
    }

    alert(result);
}

function IsBasicSearchCriteriaValid()
{
      var re = new RegExp("^([a-zA-Z\\?\\\\/\\(\\)<>\\[\\]!.,:;\\{\\}‘“£\\$%\\^&\\*_\\-+=@#`~\\s]+)$");
      valueToCheck = document.getElementById("ctl00_ecpLeftMenu_LeftMenuItemsRepeater_ctl00_LeftMenuItem_ctl00_txtInputBox").value
                      
      if (valueToCheck.trim().length == 0)
      {
         msgControl.SetWarning('EnterNonEmptyBasicSearchCriteria', MessageUrlTypeEnum.MESSAGE_KEY);
         return false;        
      }
            
      if (valueToCheck.match(re))
      {
            return true;
      }
      else
      {
            alert('Please use only letters a-Z, digits 0-9, characters . , ! ? : ; \ / | ( ) < > [ ] { } ‘ " £ $ % ^ & * _ - + = @ # ` ~  and space.')
            return false;
      }      
}

function AfterSimpleLookupClose(radWindow)
{
    if(radWindow != null && radWindow.Argument)
    {
        if (typeof(radWindow.Argument.LookupIds) != 'undefined' 
                &&  typeof(radWindow.Argument.LookupNames) != 'undefined')
        {
                  
            try
            {          
                hdnSelectedIds = windowManager.GetElementByIdFromParentWindow(radWindow, radWindow.Argument.SelectedIds);
                txtSelectedNames = windowManager.GetElementByIdFromParentWindow(radWindow, radWindow.Argument.SelectedNames);
            }
            catch(e)
            {
                  hdnSelectedIds = $get(radWindow.Argument.SelectedIds);
                  txtSelectedNames = $get(radWindow.Argument.SelectedNames);
            }            
            
            hdnSelectedIds.value = radWindow.Argument.LookupIds.replace(/;;;/g, ';');
            txtSelectedNames.value = radWindow.Argument.LookupNames.replace(/;;;/g, ';')
        }
    } 
}  

function SelectSimpleLookup (url, hdnSelectedIds, txtSelectedNames)
 {
     url += $get(hdnSelectedIds).value;           
     
     var arguments = new Object();     
     arguments.SelectedIds = hdnSelectedIds;
     arguments.SelectedNames = txtSelectedNames;

     windowManager.OpenRadWindow(url, 'SimpleLookup', arguments);   
 } 
 
 function SelectTreeLookup (url, hdnSelectedIds, txtSelectedNames)
 {
     url += $get(hdnSelectedIds).value;           
     
     var arguments = new Object();     
     arguments.SelectedIds = hdnSelectedIds;
     arguments.SelectedNames = txtSelectedNames;
     
     windowManager.OpenRadWindow(url, 'TreeLookup', arguments);
 }

 function SelectTreeLookupEx(url, hdnSelectedIds, txtSelectedNames) {

     var arguments = new Object();
     arguments.SelectedIds = hdnSelectedIds;
     arguments.SelectedNames = txtSelectedNames;

     windowManager.OpenRadWindow(url, 'TreeLookup', arguments);
 }

 function OpenSimpleLookup(url, hdnSelectedIds, txtSelectedNames)
 {
     url += $get(hdnSelectedIds).value;
     
     var arguments = new Object();     
     arguments.SelectedIds = hdnSelectedIds;
     arguments.SelectedNames = txtSelectedNames;

     oWnd = windowManager.CreateWindow(450, 400, arguments);
     oWnd.OnClientClose="AfterSimpleLookupClose";
     oWnd.SetUrl(url);
 }
 
 function OpenMenuPopup(url)
 {
     //url += $get(hdnSelectedIds).value;           
     
     var arguments = new Object();     
     //arguments.SelectedIds = hdnSelectedIds;
     //arguments.SelectedNames = txtSelectedNames;

     var wnd = windowManager.CreateWindow(370, 350, 400);
     wnd.Center();
     wnd.SetUrl(url);
 } 
 
function SaveState(hiddenField, ctrl, args)
{                       
     var controls = ctrl.split(';');          
     if (controls != null && controls.length > 0)
     {   
         var hdn = document.getElementById (hiddenField);
         if (hdn != null)
         {
             hdn.value = '';
             for(var i = 0; i < controls.length; i++)     
             {
                 var ctrl = $get(controls[i]);
                 if (ctrl != null && ctrl.scrollTop!=null && ctrl.scrollLeft != null)
                 {
                     if (ctrl.scrollTop!=0 || ctrl.scrollLeft!=0)    
                     {     
                        hdn.value += ctrl.id + ',' + ctrl.scrollTop + ',' + ctrl.scrollLeft + ':';                      
                     }                 
                 }
             }
         }
     }
     if (typeof(args) !='undefined' || args != null)
     {                 
         var hdn = document.getElementById (hiddenField);
         if (hdn != null)
         {
            args._request.set_userContext(hdn.value); 
         }
     }
}

function LoadState(hiddenField, ctrl, args) 
{                  
    if (typeof(args) !='undefined' || args != null)
    {        
        var response = args._response.get_webRequest()._userContext;
        
        if (response !=null)
        {
            array = response.split(':'); 
            if (array != null && array.length > 0)
            {
                RestoreScroll(array);
            }
        }
        else
        {
            var hdn = document.getElementById(hiddenField);
            if (hdn != null)
            {
                array = new Array();
                array = hdn.value.split(':');
            
                if (array != null && array.length > 0)
                {
                    RestoreScroll(array);            
                }
            }
        }
    }
    else
    {
        array = document.getElementById(hiddenField).value.split(':');
        
        if (array != null && array.length > 0)
        {
            RestoreScroll(array);            
        }
    }       
}

function RestoreScroll(array)
{
    for (var i = 0; i<array.length; i++)
    {
        var data = array[i];
        var splittedValues = data.split(',');
        
        var ctrl = $get(splittedValues[0]);
        
        if (ctrl != null) 
        {
            ctrl.scrollTop  = splittedValues[1];
            ctrl.scrollLeft = splittedValues[2]; 
        }
    }
}
    
function CloseActivePrivatePopup(string)
{
    var radWindow = windowManager.GetRadWindow();
        
    if (radWindow != null)
    {   
        if (radWindow.Argument == null)
        {
            radWindow.Argument = new Object();
        }
        
        radWindow.Argument.String = string;
            
        windowManager.CloseActive();        
    }
}

function OpenPopup(radWndName, url)
{
    windowManager.OpenRadWindow(url, radWndName, null);
}

function ClosePopup(radWndName)
{
    windowManager.GetWindowByName(radWndName).Close();
}

function IsAnyCheckBoxChecked(element)
{
    if (element.checked)
    {
        return true;
    }
    
    var isAnyListSelected = false;    
    var checkBoxIDs = getElementsByAttribute ('input', 'type', 'checkbox')
    
    for (var i = 0; i < checkBoxIDs.length; i++)
    {
        var checkBox = checkBoxIDs[i];
        
        if (checkBox.checked)
        {
            isAnyListSelected = true;
            break;
        }
    }   
    
    return isAnyListSelected;
}
           
function SearchCustomerPopupClose(wnd)
{         
    if (wnd.Argument != null && wnd.Argument.IsOkPressed)
    {           
        if ($get(wnd.Argument.SelectedIds) == null )
        {                
            windowManager.GetElementByIdFromParentWindow(wnd, wnd.Argument.SelectedIds).value = wnd.Argument.customerId;
            windowManager.GetElementByIdFromParentWindow(wnd, wnd.Argument.SelectedNames).value = wnd.Argument.customerName;
              
                        
            if (wnd.GetWindowManager().GetWindowByName(wnd.Argument.ParentWindow).IframeDocument.parentWindow)
            {
                wnd.GetWindowManager().GetWindowByName(wnd.Argument.ParentWindow).IframeDocument.parentWindow.UserManagement.GetCustomerDefaults(wnd.Argument.customerId);
            } 
            else
            {
                wnd.GetWindowManager().GetWindowByName(wnd.Argument.ParentWindow).IframeDocument.defaultView.UserManagement.GetCustomerDefaults(wnd.Argument.customerId);
            }              
                      
        }
        else
        {   
             $get(wnd.Argument.SelectedIds).value = wnd.Argument.customerId;
             $get(wnd.Argument.SelectedNames).value = wnd.Argument.customerName; 
             if (typeof UserManagement == 'object') 
             {
                UserManagement.GetCustomerDefaults(wnd.Argument.customerId);
             }
             
        }
    }
}  

function ManageLanguages(url)
{
    var wnd = windowManager.CreateWindow(350, 350, null);
    wnd.Center();
    wnd.SetUrl(url);
}

function DenyPasteAction(event) {
    event = event || window.event; // gets the event in ie or ns
    kCode = event.keyCode;   // gets the keycode in ie or ns

    if (event.ctrlKey) {
        return false;  // make it so the browser ignores key combo
    }
}

function DisableButton(btn) {
    if (typeof (btn) != undefined) {
        btn.disabled = true;
    }
}

function CheckMinSelectedItems(tdMediaTypesId, validationId, minArticleTypesSelected, msgKey) {
    
    var currentTypesCount = 0;
    var allCheckBox = null;
    
    var tdMediaTypes = $get(tdMediaTypesId);

    if (tdMediaTypes == null) {
        return;
    }
    
    if (document.all)
    {
        arr = tdMediaTypes.all.tags("INPUT");
    }
    else { arr = tdMediaTypes.getElementsByTagName("INPUT"); }
    
    for(var i = 0; i < arr.length; i ++)
    {   
        if(!allCheckBox)
        {
            allCheckBox  = arr[i];
        }
        else
        {
            if(arr[i].checked)
            {
                currentTypesCount++;
            }
        }
    }    
               
    if (currentTypesCount < minArticleTypesSelected)
    {
        return msgKey+'__inline__' + validationId;  
    }
            
    return null;
}

function ArticleExportToHardDisk_OnInfoDialogClose(sender, args)
{
    sender.BrowserWindow.windowManager.CloseActive();
}

var ecpPostBackElement = null;
function EcpBeginRequest(sender, args)
{
    ecpPostBackElement = args.get_postBackElement();
    pleaseWait.ShowProgress('divPleaseWait', null);
}

if (typeof(Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();
