﻿Sys.Application.add_load(ApplicationLoadHandler);

//window.onload = function() {AdjustHeight();}

   
var prgBarElem = 'progBar';
var WAOverElem = 'formOverlay'
var lastPostBackElement = null;

var i18n = (function i18n() {           
        var ltrChars            = 'A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02B8\u0300-\u0590\u0800-\u1FFF'+'\u2C00-\uFB1C\uFDFE-\uFE6F\uFEFD-\uFFFF',
            rtlChars            = '\u0591-\u07FF\uFB1D-\uFDFD\uFE70-\uFEFC',
            ltrDirCheckRe       = new RegExp('^[^'+rtlChars+']*['+ltrChars+']'),
            rtlDirCheckRe       = new RegExp('^[^'+ltrChars+']*['+rtlChars+']');

        // Inbuilt addEvent function
        function addEvent(obj, type, fn, tmp) {
                tmp || (tmp = true);
                if( obj.attachEvent ) {
                        obj["e"+type+fn] = fn;
                        obj[type+fn] = function(){obj["e"+type+fn]( window.event );};
                        obj.attachEvent( "on"+type, obj[type+fn] );
                } else {
                        obj.addEventListener( type, fn, true );
                };
        };
        
        function addElemEvents(elemId) {
            var elem = document.getElementById(elemId);
            if(elem){
            if (elem.tagName == 'INPUT') {
                addEvent(elem, "keydown", check);
                addEvent(elem, "keyup",   check);
            }
            checkDirection(elem);
            }
        };
        
        function check(e) {
                checkDirection(this);
        };
        
        function checkDirection(elem) {
                var text = (elem.tagName == 'INPUT') ? elem.value : elem.innerText;
                elem.dir = isRtlText(text) ? 'rtl' : (isLtrText(text) ? 'ltr' : '');
                elem.style.textAlign = (elem.dir=='ltr') ? 'left' : (elem.dir=='rtl') ? 'right' : '';  
        };
        
        function isRtlText(text) {
                return rtlDirCheckRe.test(text);
        };
        
        function isLtrText(text) {
                return ltrDirCheckRe.test(text);
        };
        
        return {
                addElements: function(elems) {
                        if(!elems.length) elems = [elems];
                        for(var i = 0, elem; elem = elems[i]; i++) {                                  
                                addElemEvents(elem);                                  
                        };
                }
        };
})();


function ApplicationLoadHandler(sender, args)
{
    
    if (!Sys.WebForms.PageRequestManager.getInstance().get_isInAsyncPostBack())
    {
      $get(WAOverElem).style.visibility='hidden';
      $get(prgBarElem).style.visibility='hidden';
      $get('pnlwa').disabled='';
    
//      $get(WAOverElem).style.top = $get('pnlwa').offsetTop + 'px';
//      $get(WAOverElem).style.left = $get('pnlwa').offsetLeft + 'px';
          
      Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(InitializeRequest);
      Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(beginRequest);
      Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
      Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(pageLoaded);      
    }
    
    //AdjustHeight();
}

function InitializeRequest(sender, args)
{ 
    var prm = Sys.WebForms.PageRequestManager.getInstance();
    if (prm.get_isInAsyncPostBack()) 
    {
        if (lastPostBackElement === args.get_postBackElement().id)
            args.set_cancel(true);
        else
        {
            $get(WAOverElem).style.visibility='hidden';
            $get(prgBarElem).style.visibility='hidden';
            $get('pnlwa').disabled='';
            prm.abortPostBack();
            lastPostBackElement = args.get_postBackElement().id;
        }
    }
    else
        lastPostBackElement = args.get_postBackElement().id;
}



function getAbsoluteTop(el)
{
    var t = el.offsetTop;
    
    if (el.offsetParent!=null)
    {
        t = t + getAbsoluteTop(el.offsetParent);
    }
    
    return t;
}

function getAbsoluteLeft(el)
{
    var l = el.offsetLeft;
    
    if (el.offsetParent!=null)
    {
        l = l + getAbsoluteLeft(el.offsetParent);
    }
    
    return l;
}

function beginRequest(sender, args) 
{
    var wa = $get('pnlwa');
    var waOL = $get(WAOverElem);
    
    //waOL.style.height = wa.offsetHeight + 'px';
    
      
    $get(prgBarElem).style.visibility='visible';
    waOL.style.visibility='visible';
    wa.disabled='disabled';
    
}

function EndRequestHandler(sender, args)
{
 
   if (args.get_error() != undefined)
   {
       $get(WAOverElem).style.visibility='hidden';
       $get(prgBarElem).style.visibility='hidden';
       $get('pnlwa').disabled='';
       var errorMessage;
       if (args.get_response().get_timedOut()) 
       {
            errorMessage = 'Délai d\'attente expiré. ';
       }
       else
       {
            if (args.get_error().name == 'Sys.WebForms.PageRequestManagerParserErrorException')
            {
                window.location.reload();    
            }
            else
            {
               if (args.get_response().get_statusCode() == '200')
               {
                   errorMessage = args.get_error().message;
               }
               else
               {
                   // Error occurred somewhere other than the server page.
                   errorMessage = 'Une erreur non spécifiée s\'est produite. ';
               }
             } 
             
       }
       
       args.set_errorHandled(true);
       
       
      if(errorMessage) 
        ShowDialogBox('dbErr','<br/><br/><p class="error" style="text-align:center;">'+errorMessage+'</p><br/><br/>');

   }
  
}



function pageLoaded(sender, args)
{
    $get(WAOverElem).style.visibility='hidden';
    $get(prgBarElem).style.visibility='hidden';
    $get('pnlwa').disabled='';
    lastPostBackElement = null;
    
}



 function  printEdt(el, cssName)  
{   
      var printIframe = document.createElement("IFRAME");   
      document.body.appendChild(printIframe);   
      var printDocument = printIframe.contentWindow.document;   
      printDocument.designMode = "on";   
      printDocument.open();   
      var currentLocation = document.location.href;   
      currentLocation = currentLocation.substring(0, currentLocation.lastIndexOf("/") + 1);   
      
      //var editor = document.getElementById(editorID);
      printDocument.write( "<html><head></head><body>" + el.innerHTML+  "</body></html>");   
      printDocument.close();   

      try   
      {   
        if (document.all)   
        {   
           var oLink = printDocument.createElement("link");   
           oLink.setAttribute("href", currentLocation + cssName, 0);   
           oLink.setAttribute("type", "text/css");   
           oLink.setAttribute("rel", "stylesheet", 0);   
           printDocument.getElementsByTagName("head")[0].appendChild(oLink);   
           printDocument.execCommand("Print");   
        }   
        else   
        {   
           printDocument.body.innerHTML = "<link rel='stylesheet' type='text/css' href='" + currentLocation + cssName + "'></link>" + printDocument.body.innerHTML;
           printIframe.contentWindow. print();   
        }   
      }   
      catch(ex)   
      {   

      }   
      document.body.removeChild(printIframe);
      return false;  
}

function Submit(id, e) 
{
    var isEnter = window.event == null ? e.keyCode == 13 : window.event.keyCode == 13;
    if(isEnter)
    {
        document.getElementById(id).click();
        return false;
    }   
    else
        return true;
}

