﻿var reg = new Register();

function Register(){

    var SSO = "";
    var goFirst = "";
    var goSecond = "";
    //var goThird  = "";
    var backSecond  = "";
    //var backThird  = "";
    var imgLogin = "";
    var divLeft = "";
    var divCenter = "";
    var divRight = "";
    var inpPele = "";
    var inpPrivName ="";
    var inpPass ="";
    var inpRePass = "";
    var inpEmail = "";
    var inpID = "";
    var inpNumber = "";
    var divErrorCheck2 = "";
    var inpCode = "";
    var inpCreditCard ="";
    var inpClientNumber = "";
    var divLink0 = "";
    var divLink1 = "";
    var myObject="";
    
    this.init = function (pele, privName, pass, rePass, email, divError){
        goFirst = document.getElementById('goFirst');
        goSecond = document.getElementById('goSecond');
        //goThird  = document.getElementById('goThird');
        backSecond  = document.getElementById('backSecond');
        //backThird  = document.getElementById('backThird');
        imgLogin = document.getElementById('imgLogin');
        divLeft = document.getElementById("left");
        divCenter = document.getElementById("center");
        divRight = document.getElementById("right");
        inpPele = document.getElementById(pele);
        inpPrivName = document.getElementById(privName);
        inpPass = document.getElementById(pass);
        inpRePass = document.getElementById(rePass);
        inpEmail = document.getElementById(email);
        divErrorCheck2 = document.getElementById(divError);
    }
    this.initClient = function(id, cc, clNumber,divError,code){
        inpID = document.getElementById(id);
        //inpNumber = document.getElementById(number);
        goSecond = document.getElementById('goSecond');
        divCenter = document.getElementById("center");
        divRight = document.getElementById("right");
        divErrorCheck2 = document.getElementById(divError);
        inpCode = document.getElementById(code);
        inpCreditCard = document.getElementById(cc);
        inpClientNumber = document.getElementById(clNumber);
        divLink0 = document.getElementById("divLink0");
        divLink1 = document.getElementById("divLink1");
    }
    this.isPhoneNumber = function(s){
		var rePhoneNumber = new RegExp(/^[0][5][0-9]{8}$/);
		if (!rePhoneNumber.test(s)) {
			return false;
		}return true;
	} 
	this.isEmail =	function(s){
		var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
		if (!filter.test(s)){
		    return false;
		 }return true;
	}
	this.showError = function(id, error){
		var divError = document.getElementById(id);
		divError.style.display = "block";
        divError.innerHTML = error;
	}
    this.showStepOne = function(){
        inpPele.disabled = false;
		goFirst.disabled = false;
		goFirst.style.cursor = 'hand';
		divLeft.className="notopaq";
    }
    this.closeStepOne = function(){
        inpPele.disabled = true;
		goFirst.disabled = true;
		goFirst.style.cursor = 'default';
		divLeft.className="opaq";
    }
    this.showStepTwo = function(){
        inpPrivName.disabled = false;
        inpPass.disabled = false;
        inpRePass.disabled = false;
		inpEmail.disabled = false;
		goSecond.disabled = false;
		backSecond.disabled = false;
		goSecond.style.cursor = 'hand';
		backSecond.style.cursor = 'hand';
		divCenter.className="notopaq";
    }
    this.closeStepTwo = function(){
        inpPrivName.disabled = true;
        inpPass.disabled = true;
        inpRePass.disabled = true;
		inpEmail.disabled = true;
		goSecond.disabled = true;
		backSecond.disabled = true;
		goSecond.style.cursor = 'default';
		backSecond.style.cursor = 'default';
		divCenter.className="opaq";
    }
    this.showStepThree = function(){
		//goThird.disabled = false;
		//goThird.style.cursor = 'hand';
		//backThird.disabled = false;
		//backThird.style.cursor = 'hand';
		divRight.className="notopaq";
		imgLogin.style.cursor ='hand';
		imgLogin.disabled = false;
    }
    this.closeStepThree = function(){
        //goThird.disabled = true;
		//goThird.style.cursor = 'default';
		//backThird.disabled = true;
		//backThird.style.cursor = 'default';
		divRight.className="opaq";
    }
    this.switchPanels = function(){
        divCenter.className="notopaq";
        inpID.disabled = false;
        inpCreditCard.disabled = false;
        inpClientNumber.disabled = false;
        inpCode.disabled = false;
        goSecond.disabled = false;
        goSecond.style.cursor = 'hand';
        divRight.className="opaq";
        divLink0.disabled = true;
        divLink1.disabled = true;
        divLink0.style.cursor = 'default';
        divLink1.style.cursor = 'default';
    }
  
    this.goTo = function(num){
		var divError = document.getElementById('divError1');
		divError.style.display = "none";
        switch(num){
			case 1:
				if(!this.isPhoneNumber(inpPele.value))
				{
					 this.showError('divError1', 'מספר פלאפון שהוזן אינו תקין');
					 break;
				}else{
					this.showError('divError1', '');
					this.closeStepOne(); 
					SubmitStep1(inpPele.value);
				}break;
				case 2:
				    this.closeStepOne();
				    this.showStepTwo();
				    break;	
				case 3:
				    this.closeStepTwo();
				    this.showStepThree();
				    break;
			}
    }
    this.goBack = function(num){
        switch(num){
            case 1:
                this.closeStepTwo();
                this.showStepOne();
            break;
            case 2:
                this.closeStepThree();
                this.showStepTwo();
            break;
        }
    }
    this.step2 = function(arg, context){
         myObject = "SSO = {"+ arg+"}";
         eval(myObject); 
        switch(SSO.param){
             case "ACTIVE":
                reg.showError('divError1', 'המנוי כבר קיים במערכת');
                reg.goBack(1);
                break;
             case "TENTATIVE":
                reg.showError('divError1', 'המנוי רשום באתר אך טרם בוצעה שיחת אקטיבציה. להשלמת הרישום אנא חייג ל-  050-5050555');
                reg.goBack(1);
                break;
            case "NOUSER":
                  reg.showError('divError1', 'המנוי לא קיים במערכת');
                reg.goBack(1);
                break;
             case "USERNOTSET":
                reg.goTo(2);
                break;
             case "ANOTHER":
               reg.goTo(2);
                break;
             case "PENDING":
                reg.goTo(2);
                /*reg.showError('divError1', 'התחלת תהליך הרשמה שלא הושלם, אנא חייג למספר 0505050554');
                reg.goBack(1);*/
                break;
             case "LOCKED":
                reg.showError('divError1', 'לא היתה לנו אפשרות לרשום את המנוי. אנא צור קשר עם שירות הלקוחות, 166*.');
                reg.goBack(1);
                break;
             case "NULL":
                reg.goTo(2);
                break;
             default:
                reg.showError('divError1', 'לקוח יקר, לא היתה אפשרות לבצע את הפעולה. אנא פנה ל- 166*');
                reg.goBack(1);
                break;
        
        }
    }
    this.checkStep2 = function(){
        inpPrivName.disabled = false;
		inpPass.disabled = false;
		inpRePass.disabled = false;
		inpEmail.disabled = false;
		divErrorCheck2.innerHTML = "";
	    if(inpPrivName.value.length < 1){
	        divErrorCheck2.innerHTML = "יש להזין שם משתמש אישי";
	        return false;
	    }else if(inpPass.value.length < 1){
	        divErrorCheck2.innerHTML = "יש להזין סיסימא";
	        return false;
	    }else if(inpPass.value.length < 6){
	        divErrorCheck2.innerHTML = "יש להזין סיסימא בת 6 תווים";
	        return false;
	    }
	    else if(inpRePass.value.length < 1){
	        divErrorCheck2.innerHTML = "שדות הסיסמה שהזנת אינם תואמים";
	        return false;
	    }else if(inpRePass.value.length < 6){
	        divErrorCheck2.innerHTML = "יש להזין אימות סיסימא בת 6 תווים";
	        return false;
	    }
	    else if(inpPass.value != inpRePass.value){
	        divErrorCheck2.innerHTML = "אין התאמה בין סיסמהות";
	       return false;
	    }else if(inpEmail.value.length <1){
	         divErrorCheck2.innerHTML = "יש להזין אי-מייל";
	        return false; 
	    }else if(!this.isEmail(inpEmail.value)){
	        divErrorCheck2.innerHTML = "יש להזין אי-מייל תקין";
	       return false;
	    }else{
	        SubmitStep2(inpPrivName.value, inpPass.value, inpEmail.value);
	    }
    }
    this.step3 =  function (arg, context){
        myObject = "SSO = {"+ arg+"}";
        eval(myObject);
		switch(SSO.param){
		    case "":
		        reg.goTo(3);
		        break;
	      case "Subs_bus_cant_registered_as_user":
	        divErrorCheck2.innerHTML = "אינך רשאי להירשם כמשתמש";
	        break;    
		    default:
		        divErrorCheck2.innerHTML = 'לא היתה לנו אפשרות לרשום את המנוי. אנא צור קשר עם שירות הלקוחות, 166*.';
		        break;
		}
	}

	 //inpCreditCard.disabled = false;
        //inpClientNumber.disabled = false;
	this.checkClient = function(){
	    divErrorCheck2.innerHTML = "";
		if(inpID.value.length<1){
	         divErrorCheck2.innerHTML = "יש להזין ת.ז.תקין";
	    }
	    else if(inpCreditCard.value.length >0){
	        if(inpCreditCard.value.length != 4){
	            divErrorCheck2.innerHTML = "יש להזין 4 ספרות אחרונות של כרטיס אשראי";
	        }  
	        else if(isCodeStatus == 0)
	        {
	            if(inpCode.value.length <4)
	            {
	               divErrorCheck2.innerHTML = "יש להזין קוד מחמיר"; 
	            }
	            else
	            {
	                SubmitClientStep1(inpID.value,inpCreditCard.value, inpClientNumber.value, inpCode.value);
	            }
	        }
	        else
	        {
	            SubmitClientStep1(inpID.value,inpCreditCard.value, inpClientNumber.value,"");
	        }
	    }
	    else if(inpClientNumber.value <1){
	        divErrorCheck2.innerHTML = "יש להזין מספר לקוח המורכב מספרות בלבד";
	    }
	    else if(isCodeStatus == 0)
	    {
	        if(inpCode.value.length <4)
	        {
	           divErrorCheck2.innerHTML = "יש להזין קוד מחמיר"; 
	        }
	        else
	        {
	            SubmitClientStep1(inpID.value,inpCreditCard.value, inpClientNumber.value, inpCode.value);
	        }
	    }
	    else
	    {
	         SubmitClientStep1(inpID.value,inpCreditCard.value, inpClientNumber.value,"");
	    }
	}
	this.setClientPref = function(obj,p){
	    if(p == 0){
	        obj.disabled = false;
	        inpClientNumber.disabled = true;
	    }else{
	      obj.disabled = true;
	      inpClientNumber.disabled = false;  
	    }
	}
	this.step2Client = function(arg, context){
	    myObject = "SSO = {"+ arg+"}";
        eval(myObject);
		switch(arg){
		   case "NULL":
		    divCenter.className="opaq";
            inpID.disabled = true;
            inpCreditCard.disabled = true;
            inpClientNumber.disabled = true;
            inpCode.disabled = true;
            goSecond.disabled = true;
            goSecond.style.cursor = 'default';
            divRight.className="notopaq";
            divLink0.disabled = false;
            divLink1.disabled = false;
            divLink0.style.cursor = 'hand';
            divLink1.style.cursor = 'hand';
		   break;
		   default:
		        switch(SSO.error){
		            case "invalidParameterValue":
				        divErrorCheck2.innerHTML = "אחד הפראמטרים שהוזן אינו תקין";
				    break;
				    case "badCustomerOwnerId":
				        divErrorCheck2.innerHTML = "מספר ת''ז/ח.פ. אינו תקין";
				    break;
				    case "badPaymentCode":
				        divErrorCheck2.innerHTML = "אמצעי תשלום אינו תקין";
				    break;
				    case "badAccPassword":
				        divErrorCheck2.innerHTML = "קוד מחמיר אינו תקין";
				    break;
				    case "NO":
		                divCenter.className="opaq";
                        inpID.disabled = true;
                        inpCreditCard.disabled = true;
                        inpClientNumber.disabled = true;
                        inpCode.disabled = true;
                        goSecond.disabled = true;
                        goSecond.style.cursor = 'default';
                        divRight.className="notopaq";
                        divLink0.disabled = false;
                        divLink1.disabled = false;
                        divLink0.style.cursor = 'hand';
                        divLink1.style.cursor = 'hand';
				    break;
				    default:
					   divErrorCheck2.innerHTML = 'לקוח יקר, לא היתה אפשרות לבצע את הפעולה. אנא פנה ל- 166*';
				    break;
		        }
		        //divErrorCheck2.innerHTML = SSO.param;
		    break; 
		}
	}
	this.setDefault = function(arg, context){
	    myObject = "SSO = {"+ arg+"}";
        eval(myObject);
        if(SSO.error != null && SSO.error.length>1){
            switch(SSO.error){
				case "invalidParameterValue":
				    divErrorCheck2.innerHTML = "אחד מהפראמטרים שהוזן אינו תקין";
				break;
				default:
					 divErrorCheck2.innerHTML = 'לקוח יקר, לא היתה אפשרות לבצע את הפעולה. אנא פנה ל- 166*';
				break;
			}
            reg.switchPanels();
        }else{
            window.location.href = SSO.param;
        }
		
	}
	this.setGeneral = function(arg, context){
	    myObject = "SSO = {"+ arg+"}";
        eval(myObject);
		if(SSO.error != null && SSO.error.length>1){
			switch(SSO.error){
				case "invalidParameterValue":
					divErrorCheck2.innerHTML = "אחד מהפראמטרים שהוזן אינו תקין";
				break;
				default:
					divErrorCheck2.innerHTML = 'לקוח יקר, לא היתה אפשרות לבצע את הפעולה. אנא פנה ל- 166*';
				break;
			}
            reg.switchPanels();
        }else{
            window.location.href = SSO.param;
        }
	}
	 this.CheckKeys = function(e){
	    var numVals = "1234567890";
	    var counter;
	    //var e = window.event;
	    if ((e.keyCode == 46)||
			    (e.keyCode == 12)||
			    (e.keyCode >= 34 && e.keyCode <= 40)||
			    (e.keyCode >= 16 && e.keyCode <= 18)){
		    return true;
	    }
	    if (e.keyCode != 8 && e.keyCode != 13){
		    if (e.keyCode == 9){
			    return true;
		    }
	    for (var counter = 0; counter < numVals.length; counter++){
				    if (e.keyCode == numVals.charCodeAt(counter) || e.keyCode == numVals.charCodeAt(counter)+48)
					    return true;
	    }			    
	    return false;
	    }
	    return true;
    }
	this.isValidID = function(idnum) {
	    try{
		    if (idnum.length <1 || isNaN(idnum) || parseInt(idnum) == 0){
			return false;
		}while(idnum.length<9){idnum="0"+idnum;}
		    var idnum1				= idnum.substr(0,1)*1;
		    var idnum2				= idnum.substr(1,1)*2;
		    var idnum3				= idnum.substr(2,1)*1;
		    var idnum4				= idnum.substr(3,1)*2;
		    var idnum5				= idnum.substr(4,1)*1;
		    var idnum6				= idnum.substr(5,1)*2;
		    var idnum7				= idnum.substr(6,1)*1;
		    var idnum8				= idnum.substr(7,1)*2;
		    var idnum9				= idnum.substr(8,1)*1;

		    if (idnum1>9) idnum1	= (idnum1%10) + 1;
		    if (idnum2>9) idnum2	= (idnum2%10) + 1;
		    if (idnum3>9) idnum3	= (idnum3%10) + 1;
		    if (idnum4>9) idnum4	= (idnum4%10) + 1;
		    if (idnum5>9) idnum5	= (idnum5%10) + 1;
		    if (idnum6>9) idnum6	= (idnum6%10) + 1;
		    if (idnum7>9) idnum7	= (idnum7%10) + 1;
		    if (idnum8>9) idnum8	= (idnum8%10) + 1;
		    if (idnum9>9) idnum9	= (idnum9%10) + 1;

		    var sumval				= idnum1+idnum2+idnum3+idnum4+idnum5+idnum6+idnum7+idnum8+idnum9;
		    sumval					= sumval%10;
		    if(sumval>0)			return false;
		    else					return true;
	}catch(e){
		return false;	
	}
	
    }
   
}




