﻿
var formMaxAmount = 0;
var formMinAmount = 0;

var currentFormAmount = 0;
var currentFormId = -1 ;

var gamesTemp = null;
var gamesNumber = 0 ;

var timer = null;


function formsStatus()
{
     currentFormAmount = 0 ;
     gamesTemp = new Array();
     
     service_forms.formsStatus(success,failure,"formsStatus");

}



function userLogined()
{

    
   service_membership.userLogined(success,failure,"userLogined");

}

function logout()
{

   $get('usernameText').value = '';
   $get('passwordText').value = '';
   
   $get('userpanel').style.display = "none";
   $get('loginloader').style.display = "block";
   
   service_membership.logout(success,failure,"logout");

}


function login(username,password)
{

     
     var upExist = true;
     
     $get('usernameAlarm').innerHTML = "" ;
     $get('passwordAlarm').innerHTML = "" ;
     $get('loginAlarm').innerHTML = "" ;
     
     if( username == '' )
     {
         $get('usernameAlarm').innerHTML = "*" ;
         upExist = false;   
     }
     
     if( password == '' )
     {
         $get('passwordAlarm').innerHTML = "*" ;
         upExist = false; 
     }
     
     if( upExist)
     {
            
            
            $get('loginform').style.display = "none";
            $get('loginloader').style.display = "block";
            service_membership.login(username,password,success,failure,"login");
     
     }

}



function success(result,functionName)
{


   switch(functionName)
   {
   
        
        
        case"getCheckFormById":
        {
        
           buildCheckPanel(result);
           
           if(result.expired)
           {
                buildCheckReport(result.money,result.sessionsNumber,result.id,result.photokolName,result.hasWinner,result.winnerNumber,result.winnersAmount);
           
           }
           else
           {
               $get('formReportContainer').innerHTML = "";
           
           }
         
          
           break;
        }
        
        case"getNumericFormById":
        {
        
           buildNumericPanel(result);
           
           if(result.expired)
           {
                buildNumericReport(result.money,result.sessionsNumber,result.id,result.photokolName,result.hasWinner,result.winnerNumber,result.winnersAmount);
           
           }
           else
           {
               $get('formReportContainer').innerHTML = "";
           
           }
         
          
           break;
        }
        
        case"getLastCheckForms":
        {
        
             var sb = new Sys.StringBuilder();
             
             sb.append('<select id="selectCheckForm" style="font-family:Tahoma; font-size:9pt; width:150px;  background-color:#FFCC00;" onchange="getCheckFormInfo(this.options[this.selectedIndex].value);" > <option value="-1"> انتخاب فرم ضربدری </option>');
             
                 for( var i = 0 ; i < result.length ; i++)
                 {
                 
                      sb.append(' <option value="' + result[i++] + '">' + result[i] + ' </option>');
                 
                 }
            
            sb.append('</select>');
            
            $get('checkFormsSelectContainer').innerHTML = sb.toString();
            
            break;
        }
        
        case"getLastNumericForms":
        {
        
             var lastFormId = "";
             
             var sb = new Sys.StringBuilder();
             
             sb.append('<select id="selectNumericForm" style="font-family:Tahoma; font-size:9pt; width:150px;  background-color:#FFCC00;" onchange="getNumericFormInfo(this.options[this.selectedIndex].value);" > <option value="-1"> انتخاب فرم عددی  </option>');
             
                 for( var i = 0 ; i < result.length ; i++)
                 {
                      if( i == 0 )
                      {
                          lastFormId = result[i];
                      }
                      
                      sb.append(' <option value="' + result[i++] + '">' + result[i] + ' </option>');
                 
                 }
            
            sb.append('</select>');
            
            $get('numericFormsSelectContainer').innerHTML = sb.toString();
            
            $get('currentFormForShow').value = lastFormId;
            
            //getNumericFormInfo(lastFormId);
            
            break;
        }
        
        case"getForm":
        {
        
            
            formMaxAmount = result.maxAmount ;
            formMinAmount = result.minAmount;
            
            currentFormId = result.id ;
            
            gamesNumber = result.games.length ;
            
            if( result.type == "checkForm")
            {
            
                buildCheckForm(result);
                
                buildCheckPanel(result);
                
                if( result.expired)
                {
                      buildCheckReport(result.money,result.sessionsNumber,result.id,result.photokolName,result.hasWinner,result.winnerNumber,result.winnersAmount);
                }
                else
                {
                   $get('formReportContainer').innerHTML = "";
           
                }
                
               
            }
            else
            {
            
                setFirstPageToNumericForm();
            
            }
            
           
            break;
        
        }
        
        case"formsStatus":
        {
        
           if( result[0] == 1) // form exist
           {
           
                 service_forms.getLastCheckForms(success,failure,"getLastCheckForms");
                 service_forms.getLastNumericForms(success,failure,"getLastNumericForms");
                
                if( result[1] == 0 )  // form type : check
                {
                    
                    
                  
                    window.clearInterval(timer);
                    
                    timer = window.setInterval(refreshCheckForm,30000);
                    service_forms.getForm("checkForm",success,failure,"getForm");              
                
                }
                else   // form type : numeric
                {
                    
                    getNumericFormInfo($get('currentFormForShow').value);
                    window.clearInterval(timer);
                    
                    timer = window.setInterval(refreshNumericForm,30000);
                    setFirstPageToNumericForm();
                    
                }
               
           }
        
           break;
        }
        
        case"login":
        {
        
           var user = result;
           
           if( user.userOk  )
           {
           
               $get('loginloader').style.display = "none";
               $get('userpanel').style.display = "block";
               
               $get('usernameContainer').innerHTML = user.username;
               $get('lastLoginContainer').innerHTML = user.lastLogin;
               $get('userMoneyContainer').innerHTML = user.money;
               $get('loginTitle').innerHTML = "اطلاعات کاربری";
               $get('userSettingsContainer').style.display = "block";
           
           }
           else
           {
               
               $get('usernameText').value = '';
               $get('passwordText').value = '';
               
               $get('loginloader').style.display = "none";
               
               $get('loginform').style.display = "block";
              
               $get('loginAlarm').innerHTML = user.status;
               
           }
        
           break;
        }
        
        case"logout":
        {
           $get('loginTitle').innerHTML = "ورود";
           $get('loginloader').style.display = "none";
           $get('loginform').style.display = "block";
           $get('userSettingsContainer').style.display = "none";
           
           break;
        }
        
        case"registerCheckForm":
        {
        
           $get('formAmountAlarm').innerHTML = "";
           
           if(result == -1 )
           {
           
               alert('ابتدا نام کاربری و کلمه عبور خود را وارد کنید');
           
           }
           else
           {
           
             if( result == -2 )
             {
             
                 
                  $get('formAmountAlarm').innerHTML = 'موجودی شما کمتر از مبلغ فرم است.' +  '<br /> '  + 'برای افزایش اعتبار کلیک کنید: <a href="payment.aspx" target="_blank" style="color:black; text-decoration:underline;"> افزایش اعتبار </a>'  ;
             }
             else
             {
             
                     var m = $get('userMoneyContainer').innerHTML ;
                     
                     m = parseInt(m) - currentFormAmount ;
                     
                     $get('userMoneyContainer').innerHTML =  m.toString() ;
                     
                     var sb = new Sys.StringBuilder();
             
                     sb.append('<table style="width:300px; font-size:9pt;"> <tr>   <td dir="rtl" align="right" style="color:#FFCC00;" > فرم شما با موفقیت ثبت شد. </td>    </tr> <tr> <td align="right"> <table> <tr> <td dir="rtl" align="right" style="color:#FFCC00;"> ' + result + ' </td> <td dir="rtl" align="left" style="color:#FFCC00;"> شماره سریال فرم شما: </td> </tr> </table>  </td>  </tr> <tr>  <td >  <a href="javascript:void(0);" onclick="formsStatus();"> [بازگشت] </a> </td> </tr>    </table>');
             
                     $get('formContainer').innerHTML = sb.toString();
                     
                     
             
             }
             
           
           
           }
           
           break;
        }
        
        default: 
        {
        
            break;
        
        }
   
   
   
   }


}



function failure(error,functionName)
{


    alert('error');

}


