function getScrollY() {
  var scrOfY = 0;
  if( window.pageYOffset && typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
  } else if( document.body && document.body.scrollTop ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
  } else if( document.documentElement && document.documentElement.scrollTop ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
  }
  return scrOfY;
}
var isReload=false;
var initialized=false;
Shader = {
initialize: function (parameters) {
        A=document.getElementById(parameters.layer1);
        B=document.getElementById(parameters.layer2);
        C=document.getElementById(parameters.layer3);
        loginErrId = parameters.errID;
        form=parameters.formToSubmit;
        linkToFollow=parameters.linkToFollow;
        initParams = parameters;
        initialized=true;
    },
showLayer: function(id){
        switch (id){
        case initParams.layer1:
        {A.style.visibility="visible";A.style.display="block";A.style.height=A.parentNode.clientHeight;
        break;}
        case initParams.layer2:
        {B.style.visibility="visible";B.style.display="block";B.style.left=window.screen.width/2-120;B.style.top=getScrollY();
        break;}
        case initParams.layer3:
        {C.style.visibility="visible";C.style.display="block";C.style.left=window.screen.width/2-120;C.style.top=getScrollY();
        break;}
        default : hideLayers();
        }    
},
showLayers: function ()
    {
        if(A){A.style.visibility="visible";
            A.style.height=A.parentNode.clientHeight;
            A.style.display="block"}
        if(B){B.style.visibility="visible";
            B.style.display="block";
            B.style.left=window.screen.width/2-120;
            B.style.top=verRefElement.offsetTop-300;}
        if(C){C.style.visibility="visible";
            C.style.display="block";
            C.style.left=window.screen.width/2-120;
            C.style.top=verRefElement.offsetTop-300;}
        return false;
    },
hideLayer: function(id){
        switch (id){
        case initParams.layer1:
        {A.style.visibility="hidden";A.style.display="none";}
        break;
        case initParams.layer2:
        {B.style.visibility="hidden";B.style.display="none";}
        break;
        case initParams.layer3:
        {C.style.visibility="hidden";C.style.display="none";}
        break;
        default : hideLayers();
        }    
},
hideLayers: function() {
        if(A){
            A.style.visibility="hidden";
            A.style.display="none";}
        if(B){
            B.style.visibility="hidden";
            B.style.display="none";
         }
        if(C){
            C.style.visibility="hidden";
            C.style.display="none";
         }
        if($(loginErrId)){hideElement(loginErrId);$(loginErrId).innerHTML=''}
        $('u_n').value='';
        $('p_w').value='';
        $('r_m').checked=false;
        if(isReload)
            window.location.reload();
    },
trackScrolling: function () {
      if(!initialized){return;}
      if(B&&B.style.display=='block'){B.style.top=getScrollY();}
      if(C&&C.style.display=='block'){C.style.top=getScrollY();}
    },
setLink: function(lnk){
      linkToFollow = lnk;  
    },
check: function (response)
    {
        if( response=='')
            return;
        var jsonObj = JSON.parse( response );
        if( jsonObj.responsestate )
        {
            if (initParams.layer1) Shader.hideLayer(initParams.layer1);
            if (initParams.layer2) Shader.hideLayer(initParams.layer2);
            if (initParams.layer3) Shader.hideLayer(initParams.layer3);            
            if(isReload){doEventDispatch(initParams.trigger,true);return;}
            if(form && form!=''){submitForm(form);}
            if(linkToFollow && linkToFollow!='')
            {
                var lnk = document.getElementById(linkToFollow);
                window.location=lnk.href;
            }
        }
        else
        {
            var msg = jsonObj.message;
            if($(loginErrId)){
            $(loginErrId).innerHTML=msg;
            showElement(loginErrId);}
        }
    },
validate: function() {
          if(!$(loginErrId))
              return;
          hideElement(loginErrId);
          if($('u_n').value=='')
          {
              $(loginErrId).innerHTML='missing username';
              showElement(loginErrId);
              return true;
          }
          if($('p_w').value=='')
          {
              $(loginErrId).innerHTML='missing password';
              showElement(loginErrId);
              return true;
          }
          return false;
          }
}
window.onscroll=function(){
    Shader.trackScrolling();
}
