﻿//logowanie - Sys.Services.AuthenticationService;

var ssa = Sys.Services.AuthenticationService;
var callBackObject = new Object();
Sys.Application.add_load(AppLoad);
var BGnr;
var land;
var bNkw;
var car_id;
var tree_id;
var einsp_nr;
var find_art;

var userID;
var loginDataObject;
var inRefresh = false;
var logoutCandidate = false;
var logoutCandidateProgress = false;
var functionINCount = 0;
var intervalMs = 1800000;
var intervalId = setInterval("BeforeCall2();", intervalMs);    
var defaultPass = '';
var wrongUser = false;
var forbiddenChars = " %#&";

function BeforeCall(sender,events)
{
   
    clearInterval(intervalId);
    intervalId = setInterval("BeforeCall2();", intervalMs);  
    functionINCount++;
    
    if (logoutCandidate == true)
    {
         if (logoutCandidateProgress!=true)
         {    events.set_cancel(true);
              Sys.Net.WebRequestManager.remove_invokingRequest(BeforeCall);
              Sys.Net.WebRequestManager.remove_completedRequest(AfterCall); 
              logoutCandidateProgress = true;
              logoutHandler("","Timeout.aspx");
         }
         return false;
     }      
    
    if (ssa.get_isLoggedIn()==true) 
    if ((inRefresh != true)  && (logoutCandidate != true))
      {
           inRefresh = true;
            CentroDigitalNETVB.CDK.RefreshCookie(AfterRefresh);   
       }
}

function BeforeCall2()
{
if (ssa.get_isLoggedIn()==true)
{
      Sys.Net.WebRequestManager.remove_invokingRequest(BeforeCall); 
      CentroDigitalNETVB.CDK.CheckCookie(AfterCheckCookie);   
      Sys.Net.WebRequestManager.add_invokingRequest(BeforeCall);
 }
}





function AfterCall(sender,events)
{
   
 if (sender._webRequest._url.indexOf("RefreshCookie")<0 )
 if (logoutCandidate == true)
   {
     Sys.Net.WebRequestManager.remove_invokingRequest(BeforeCall);
     Sys.Net.WebRequestManager.remove_completedRequest(AfterCall); 
     logoutCandidateProgress = true;
     logoutHandler("","Timeout.aspx");
   }
   
   functionINCount--;
  
}

function AfterCheckCookie(e)
{
    
    if (e==false)
       {
         Sys.Net.WebRequestManager.remove_invokingRequest(BeforeCall);
         Sys.Net.WebRequestManager.remove_completedRequest(AfterCall); 
         logoutCandidateProgress = true;
         logoutHandler("","Timeout.aspx");
       }
}


function AfterRefresh(e)
{
    inRefresh = false;
    if (e==false)
        logoutCandidate = true;
}


var xc11 = "";
var xc12 = "";
var xc13 = false;
function FillUpAndLogin(user,pass)
{
    xc11 = user;
    xc12 = pass;
    //loginHandler();
    xc13 = true;
}



function getInternetExplorerVersion()
{
  var rv = -1; // Return value assumes failure.
  if (navigator.appName == 'Microsoft Internet Explorer')
  {
    var ua = navigator.userAgent;
    var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
    if (re.exec(ua) != null)
      rv = parseFloat( RegExp.$1 );
  }
  return rv;
}
function checkVersion()
{
  var versionOk = true;  
  var msg = "";
  var ver = getInternetExplorerVersion();
  if ( ver > -1 )
  {
   if ( ver >6.0 ) 
        msg = "OK";
    else
     {
        versionOk = false;
        $get('LoginPanel').style.display = 'block';
        $get('loginContent').innerHTML = "<font color = 'red'><h4>Das Katalogsystem erfordert den Internet Explorer Version 7.<BR>                Bitte führen Sie ein Update aus und starten Sie dann BG-Online erneut.</h4></font>";
     }
  }
  
  return versionOk ;
}

function AppLoad()
{
CentroDigitalNETVB.CDK.set_defaultFailedCallback(onErrorGlobal)
Sys.Net.WebRequestManager.add_invokingRequest(BeforeCall);
Sys.Net.WebRequestManager.add_completedRequest(AfterCall);

CentroDigitalNETVB.CDK.GetDefaultPass(GetDefaultPass_succ);
CentroDigitalNETVB.CDK.GetForbiddenCharacters(GetForbiddenCharacters_succ);
  
  if (ssa.get_isLoggedIn()) 
  {
      if (checkVersion()== true)
      ProcessLoggedOn();
  } 
  else 
  {
      CentroDigitalNETVB.CDK.ProcessLogin(ProcessLogin_suceeded)   
  }
}

function onErrorGlobal(e)
{
    window.status='There was error during ajax transmission.'
}

function GetForbiddenCharacters_succ(result)
{
    forbiddenChars = result;
}

function BeginRequest(sender, args) {
}

function EndRequestHandler(sender, args){  
    if ((args.get_error() != 'undefined') || (args.get_error() != null))   {    
    var errorMessage = args.get_error().message;
    args.set_errorHandled(true);  }
}



function ProcessLoggedOn() {
        Wait();
        bNkw = false;
        CentroDigitalNETVB.CDK.GetUserRedirection(GetUserRedirection_succ);
      }
      
function GetUserRedirection_succ(res)
{
    if (res.use)
        window.location = res.url;
    else
    CentroDigitalNETVB.CDK.BuildForm(bNkw,Build_suceeded);
}      
      
      
function GetDefaultPass_succ(result)
{
    defaultPass = result;
}    
    
    
    function GetLoginDataFromServer_succeeded(result)
    {
        loginDataObject = result;
        
        ContinueProcessLoggedOn();
    }

    function ContinueProcessLoggedOn()
    {
        CentroDigitalNETVB.CDK.GetTitle(GetTitle_succeed,GetTitle_error)
        userID = loginDataObject.userId;
        clearCartAfterLogin =  loginDataObject.clearCartAfterLogin;
        clearCartAfterCategoryChange = loginDataObject.clearCartAfterCategoryChange ;

       if (loginDataObject.clearCartAfterLogin == true)
                        CentroDigitalNETVB.cart.CartDelete(userID);        
        
        
        BGnr = loginDataObject.BGNr;
        land = loginDataObject.land;
        CentroDigitalNETVB.CDK.GetCarHist(userID,GetCarHist_succeed);
        
        if (ebmeddedKBA != "")
            loginDataObject.KBA_NR =  ebmeddedKBA
         
        if (loginDataObject.KBA_NR != null )
            if (loginDataObject.KBA_NR != '' )
                    CentroDigitalNETVB.CDK.GetCars(0, 0,land,BGnr,bNkw,GetCars_AND_FIND_suc);
               else GetCars(0, 0);
        else GetCars(0, 0);       
         
         if (loginDataObject.UseExternalCart == true)
            $get('cart_button').style.display = 'none';
         
            //wywołanie stworzenie obiektu i wywolanie zdarzenia 
            callBackObject.KBA_NR = loginDataObject.KBA_NR;
            callBackObject.userName = loginDataObject.userName;
            callBackObject.field1 =  loginDataObject.Par1;
            callBackObject.field2 =  loginDataObject.Par2;
            callBackObject.field3 =  loginDataObject.Par3; 
            callBackObject.field4 =  loginDataObject.Par4; 
            callBackObject.field5 =  loginDataObject.Par5; 

            if (loginDataObject.LogedInFunctionCallback)
            {  
                var parametr = "";
                parametr = loginDataObject.callerUrl.indexOf('?') > -1 ? '&' : '?';
                window.opener.location = loginDataObject.callerUrl + parametr+ "ApiLogedIn="+ Math.random();//+"#" + JSONstring.make(callBackObject)    ;   
            }

    if (ebmeddedScript == true)
    {
     $get('cart_button').style.display = 'none';
     $get('options_button').style.display = 'none';
     $get('logout_button').style.display = 'none';
    }
     NoWait();
    }


function GetCars_AND_FIND_suc(e)
{
    GetCars_suc(e);
    Wait();
    CentroDigitalNETVB.CDK.FindCars(loginDataObject.KBA_NR, '', '', '', land, BGnr,bNkw,FindCars_FindCarsSucc);
}

function ProcessLogin_suceeded(result) {
    $get('loginContent').innerHTML = result;
    $get('LoginPanel').style.display = '';
    $get('txtUsername').focus();
    
    if (checkVersion()== true)
    {
        if (xc13==true)
            {
                loginHandler();
            }
        
        if (wrongUser ==true)
              $get('flogin').innerHTML = 'Benutzer oder Passwort falsch';
    }
}

function GetTitle_succeed(e)
{
    document.title = e;
}

function GetTitle_error(e)
{}


function newkennwortkp(e)
{
if (window.event || e.which) //IE
    {
   // if (($get('Password1').value !='')&&($get('Password1').value == $get('Password2').value) && ($get('Password1').value!=defaultPass )&& ($get('Password2').value!=defaultPass))
    //{
        if (e.keyCode == 13)
        {   
            e.cancel = true;
            e.returnValue = false;
            savePassAndEnter();    
        }
    //}
  }
}

function ValidateData()
{
   var ret = true;
   if (containsErrorChars($get('Password1').value)) { $get('flogin').innerHTML = 'Das Passwort muss not contanin Zeichen like \"'+ forbiddenChars +'\" '; ret = false;}
   if ($get('Password1').value != $get('Password2').value) { $get('flogin').innerHTML = 'Das Kennwort stimmt nicht mit der Bestätigung überein.'; ret = false;}
   if ($get('Password1').value =='') { $get('flogin').innerHTML = 'Das Feld "Neues Kennwort" darf nicht leer sein.';ret = false;}
   if ($get('Password2').value =='') { $get('flogin').innerHTML = 'Das Feld "Kennwort wiederholen" darf nicht leer sein.';ret = false;}
   if ($get('Password1').value == defaultPass) { $get('flogin').innerHTML = 'Dieses Passwort ist nicht erlaubt.';ret = false;}
   if ($get('Password1').value.length < 3) { $get('flogin').innerHTML = 'Das Passwort muss mindestens 3 Zeichen lang sein.';ret = false;}
  
   
   return ret;            
}



function savePassAndEnter()
{
 if (ValidateData() == true)
 { $get('changePwdBtn').disabled = true;
    CentroDigitalNETVB.CDK.ChangeDefaultUserPass($get('txtUsername').value, $get('pwdPassword').value, $get('Password1').value ,ChangeDefaultUserPass_succ);
 }
}

function ChangeDefaultUserPass_succ(result) 
{
    if (result == true)
    {  
        $get('pwdPassword').value = password;
        var username = $get('txtUsername').value;
        var password = $get('Password1').value;
        loginHandler2(username,password);
    }
    else
    {
        $get('changePwdBtn').disabled = false;
    }
}

function loginkp(e)
{
    if (window.event || e.which) //IE
    {
        if(e.keyCode == 13)
        {
            loginHandler();
            e.cancel = true;
            e.returnValue = false;
        }
    }
}

       function loginHandler() {
                $get('btnLogIn').disabled = true;
                var username = $get('txtUsername').value;
                var password = $get('pwdPassword').value;
                if (xc13==true)
                {
                  $get('txtUsername').value = xc11;
                  $get('pwdPassword').value = xc12;
                  username = xc11;
                  password = xc12;
                }
                CentroDigitalNETVB.CDK.GetCheck(username,password,GetCheck_succ);
                xc11 = "";
                xc12 = "";
            }
           
       function GetCheck_succ(result)
       {
//        Public changePass As Boolean = False
//        Public expired As Boolean = False
//        Public message As String = ""
        
            if (result.expired)
            {
               $get('flogin').innerHTML = result.message;
               $get('txtUsername').value = '';
               $get('pwdPassword').value = '';
               $get('btnLogIn').disabled = true;
               $get('txtUsername').disabled = true;
               $get('pwdPassword').disabled = true;
            }
            else if (result.changePass)
            {
               $get('content').style.width = '470px';
               $get('kennwort').style.display = 'none';
               $get('newkennwort').style.display = '';
               $get('newkennwortwid').style.display = '';
               $get('btnLogIn').style.display = 'none';
               $get('changePwdBtn').style.display = 'inline';
               $get('newkennwort').focus();
               $get('flogin').innerHTML = 'Bitte neues Passwort eingeben.';
            } 
            else
            {
               var username = $get('txtUsername').value;
               var password = $get('pwdPassword').value;
               loginHandler2(username,password);
            } 
        }
           
       function loginHandler2(user , pass) {
                var username = user;
                var password = pass;
                var customInfo = null;
                
                var redirectUrl = null;
                if (xc13==true)
                    redirectUrl = "Default.aspx";
                var isPersistent = false;
                // Log them in.
                ssa.login(username,
                          password,
                          isPersistent,
                          customInfo,
                          redirectUrl,
                          onLoginComplete,
                          onError);
            }
           
           
      function logoutHandler(why,where) {
                 Sys.Net.WebRequestManager.remove_invokingRequest(BeforeCall);
                 Sys.Net.WebRequestManager.remove_completedRequest(AfterCall); 
               
                var redirectUrl = "Default.aspx";
               
               
                if (where!=null)
                    redirectUrl=where;
                    
                if (why!=null)
                    redirectUrl+=why;
               
               
                var userContext = null;
                
                ssa.logout(redirectUrl,
                           onLogoutComplete,
                           onError,
                           userContext);
            }
            
      function onLoginComplete(result, context, methodName) {
      
            if (result != false)
                {                    
                        $get('loginContent').innerHTML = "";
                        $get('LoginPanel').style.display = 'none';
                        ProcessLoggedOn();
                }
                else
                {
                    $get('flogin').innerHTML = 'Benutzer oder Passwort falsch';
                    $get('btnLogIn').disabled = false;
                }
            }
           
       
            
     
                 
       function GetCarHist_succeed(result){
                    var elements  = result.split('-||-');
                    var element =  $get("hisCar");
                    if (element)
                    {
                    element.innerHTML = "";
                    
                        var text = "bitte wählen Sie aus...";
                        var emptyoption = new Option(text,"");
                        var emptyoption3 = new Option("","");                            
                        
                        
                        try
                        {
                            element.add(emptyoption,null); // standards compliant
                            if (result!="") element.add(emptyoption3,null); // standards compliant
                        }
                         catch(ex)
                        {
                            
                            element.add(emptyoption,0);// IE only
                           if (result!="") element.add(emptyoption3,1);// IE only
                        }

                        var element2 =  $get("dokum");
                        var emptyoption2 = new Option(text,"");            
                        
                        if (element2.options.length==3)
                        try
                        {
                            element2.add(emptyoption2,element2.options[0]); // standards compliant
                        }
                         catch(ex)
                        {
                            element2.add(emptyoption2,0); // IE only
                        }

                    if (result!="")         
                    for(var i=0 ;i<elements.length ; i++)
                    {
                        var posAr = elements[i].split('-|-');
                        var option = new Option();
                        option.value = posAr[0] + "|"+ posAr[1];
                        option.text = posAr[2] ;
                        
                        try
                        {
                            element.add(option,null); // standards compliant
                        }
                         catch(ex)
                        {
                             element.add(option);// IE only
                        }

                        
                    } 
                   
                   element.selectedIndex = 0;
                   element2.selectedIndex = 0;
                   // $get("hisCar").innerHTML = result;
                              
               }
           }
                      
            function onLogoutComplete(result, context, methodName) {
                //App_Load wyswietli panel logowania
            }
           
            function onError(error, context, methodName) {
                //alert(error.get_message());
            }

///###LOGOWANIE#################################################################


function IniFind()
{
 if (find_art!=null)
 {
  SetHTML("nf",find_art);
  $get('faNr').value = "";
  $get('faNa').value = "";
  
 }
 else
 {
  Wait();
  CentroDigitalNETVB.CDK.BuildFind(bNkw,BuFi_suc);
 }
}



function Build_suceeded(e)
{

 if (loginData)   
    CentroDigitalNETVB.CDK.GetUserData(loginData,GetLoginDataFromServer_succeeded)
 else
    CentroDigitalNETVB.CDK.GetUserData('',GetLoginDataFromServer_succeeded)
 
 SetHTML("m",e.m);
 SetHTML("t",e.tb);
 SetHTML("n",e.nv);
 SetHTML("nm",e.nm);
 SetHTML("nf",e.nf);
 SetHTML("nr",e.nr);
}

function BuFi_suc(e)
{
 find_art=e.nf;
 SetHTML("nf",find_art);
 $get('faNr').value = "";
 $get('faNa').value = "";
 FocusId('faNr');
 NoWait();
}

function Clear()
{
 SetHTML("content","");
}

function NKWPKWChange()
{
 var obj;
 var obj1;
 var src;
 var ch;
 var i;
 bNkw = !bNkw;
 if (bNkw)
 {
  ch="PKW";
  SetHTML("kbaid","ID");
 }
 else
 {
  ch="NKW";
  SetHTML("kbaid","KBA Nr");
 }
 obj = document.getElementById("icoPN");
 if ( obj != null )
 {
  src = obj.getAttribute("src");
  obj1 = document.getElementById("navPNkw");
  if (obj1 != null) obj1.setAttribute("src",src);
  i = src.indexOf("KW.ico");
  if(i>0)
  {
   src=src.substring(0,i-1)+ch+src.substring(i+2,src.length);
   obj.setAttribute("src",src);
  }
 }
 SetHTML("txtPNkw",ch);
}

function PkwNkw()
{
 NKWPKWChange()
 GetCars(0, 0);
 if (loginDataObject.clearCartAfterCategoryChange == true)
    CentroDigitalNETVB.cart.CartDelete(userID,RefreshCart);
    
}

var fax;
function GetDoument(selectedIndex)
{
    if (selectedIndex == 2)
    {
        $get("dokum").selectedIndex = 0;
        
        var paramObject = new Object();
        paramObject.userID = userID;
        paramObject.car_id = car_id;
        paramObject.art_id = (art_id==null)?"":art_id;
        paramObject.BGnr = BGnr;
        paramObject.land = land;
        paramObject.bNkw = bNkw;
        
        LoadContainer(paramObject);
        //fax = window.showModalDialog('ErrorForm.aspx' ,paramObject,'dialogWidth:700px;dialogHeight:650px;resizable:no;');
        //if (window.focus) {fax.focus()}  
    }
    if (selectedIndex == 3)
    {
        window.open('http://www.centrodigital.de/catalog/garantie/Gewährleistungsantrag.htm','Gewährleistungsantrag');
        $get("dokum").selectedIndex = 0;
     }   
}



function MarkId(id)
{
 var val;
 if (id != null) 
 {
  var obj;
  obj = document.getElementById(id);
  if ( obj != null )
  {
   val=obj.className;
   if (val == 'cp') 
   {
    obj.className='cpm';
   }
   else if (val == 'ca') 
   {
    obj.className='cam';
   }
  }
  else
  {
   //alert('No: '+id);
  }
 }
 return val;
}

function MarkScrollId(id)
{
 var val;
 if (id != null) 
 {
  var obj;
  obj = document.getElementById(id);
  if ( obj != null )
  {
   obj.scrollIntoView(true);
   val=obj.className;
   if (val == 'cp') 
   {
    obj.className='cpm';
   }
   else if (val == 'ca') 
   {
    obj.className='cam';
   }
  }
  else
  {
   //alert('No: '+id);
  }
 }
 return val;
}

function ScrollId(id)
{
 if (id != null) 
 {
  var obj;
  obj = document.getElementById(id);
  if ( obj != null )
  {
   obj.scrollIntoView(true);
  }
  else
  {
   //alert('No id:'+id);
  }
 }
}

function RetId(id,val)
{
 var obj;
 if ((id != null)&&(val!=null))
 {
  obj = document.getElementById(id);
  if (obj != null)
  {
   obj.className=val;
  }
  else
  {
   //alert('No id: '+id);
  }
 }
 else
 {
  //alert('id='+id+' val='+val);
 }
}

function FocusId(id)
{
 var obj;
 if (id != null) 
 {
  obj = document.getElementById(id);
  if ( obj != null ) 
  {
   obj.focus();
  }
  else
  {
   //alert('No:'+id);
  }
 }
}

function GetHTML(id)
{
 var obj;
 if (id != null) 
 {
  obj = document.getElementById(id);
  if ( obj != null ) return obj.innerHTML;
 }
 return null;
}

function SetHTML(id,val)
{
 var obj;
 if ((id != null)&&(val!=null)) 
 {
  obj = document.getElementById(id);
  if ( obj != null ) obj.innerHTML = val;
 }
}

function submitForm()
{
if (arguments)
for (var i = 0; i < arguments.length; i += 2) {
		if (typeof(arguments[i + 1]) != 'undefined') {
			this.items[arguments[i]] = arguments[i + 1];
			this.length++;
		}
	}
}
