Wiking.widgets.MyAccount={}

function MyAccount(){
    Wiking.widgets.BlackScreen.draw();
    Wiking.getMap().addControl(this);
    MyAccount.instance = this;
}
MyAccount.prototype = new GControl(); 
MyAccount.prototype.selectable = function(){return true;}
MyAccount.prototype.printable = function(){return true;}
MyAccount.prototype.initialize = function(map){
    var mapsize = map.getSize();
    var width = mapsize.width - 530;
    var height = mapsize.height - 90;
    var html = '<div id="closeMyAcc" style="cursor:pointer;position:absolute;left:'+(width-17)+'px;top:-9px;width:27px;height:27px;background: url(\'wimg/x.png\')"></div>'+
               '<div>'+
                 '<div style="float:left;width:8px;height:39px;background:url(\'wimg/eclefttop.png\')"></div>'+
                   '<div style="float:left;background:url(\'wimg/ectop.png\');height:39px;width:'+(width-16)+'px">'+
                      '<p style="font-size:14px;font-weight:bold;margin-top:12px;margin-left:5px;">Moje konto</p>'+
                   '</div>'+
                 '<div style="float:left;width:8px;height:39px;background:url(\'wimg/ecrighttop.png\')"></div>'+

                 '<div style="clear:left;float:left;width:8px;background:url(\'wimg/cleft.png\');height:'+(height-47)+'px"></div>'+
                 '<div style="float:left;overflow:auto;background:#fff;height:'+(height-47)+'px;width:'+(width-16)+'px">'+
                    //TREŚĆ
                       '<div id="accnav" class="tabbar">'+
                         ' <a href="#"><div>Urządzenia</div></a>'+
                         ' <a href="#"><div>Udostępnianie</div></a>'+
                         ' <a href="#"><div>Dane Konta</div></a>'+
                         ' <a href="#"><div>Płatności</div></a>'+
                         ' <a href="#"><div>Faktury</div></a>'+
						 ' <a href="#" style="display:none;"><div>Roaming</div></a>'+
					   '</div>'+
                       '<div style="padding:0 10px 10px 10px">'+

					   '<div class="navObj">'+
                           '<p style="font-size:14px;color:#555"><strong>Urządzenia</strong></p>'+
                           
                           '<p style="font-size:12px;padding:10px 4px;background:#EEEEFF;border:1px solid #DDDDFF">Jeśli chcą Państwo otrzymać fakturę VAT za wykupiony abonament, prosimy skontaktować się z BOK pod numerem infolinii:<br> 0 801 00 97 77 lub wejść na stronę <a href="http://kontakt.geo2.pl/">http://kontakt.geo2.pl/</a> w kategorię */Płatnośći GEO2.pl/* i złożyć odpowiednie zgłoszenie. </p>'+
                           
                           '<table cellpadding="0" cellspacing="0" style="width:100%;text-align:center;" id="accMyDevices"></table>'+
                           '<p style="padding-top:10px;border-top:1px solid #ccc;font-size:14px;color:#555"><strong>Dodaj urządzenie</strong></p>'+
                               '<p><strong>Podaj numer urządzenia (IMEI):</strong><br />'+
                                  '<input type="text" id="regImei" style="padding:2px;width:200px;border: 1px solid #ccc;margin:6px;" /><br />'+
                                  'Numer IMEI jest numerem identyfikacyjnym urządzenia. Znajdziesz go na karcie rejestracyjnej dostarczonej z urządzeniem.'+
                                  'Upewnij się, że podany numer jest prawidłowy i zawiera 15 cyfr.'+
                               '</p>'+
                               '<p><strong>Podaj kod aktywacyjny:</strong><br />'+
                                  '<input type="text" id="regCode" style="padding:2px;width:200px;border: 1px solid #ccc;margin:6px;margin-bottom:0" /></p>'+
                               '<p><img src="/wimg/dodaj_urzadzenie.png" style="cursor:pointer;" id="regDevice" /></p>'+
                       '</div>'+

					   '<div class="navObj" style="display:none;">'+
                          '<p style="font-size:14px;color:#555"><strong>Udostępnij urządzenie</strong></p>'+
                          '<p>Udostępnianie urządzenia pozwala na podgląd wybranego obiektu przez więcej niż jedną osobę/konto w tym samym czasie. W tym celu osoba chcąca otrzymać taki przywilej musi posiadać przynajmniej darmowe konto w serwisie Geo2.pl.</p>'+
                          '<p><strong>Aby udostępnić urządzenie wybierz je z listy aktywnych urządzeń:</strong></p>'+
                          '<p>ID urządzenia: '+
                          '<select id="subscriptionSelect" style="padding:2px;border:1px solid #ccc;">'+
                          '</select>'+
                          '</p>'+
                          '<p><strong>Następnie wprowadź login użytkownika posiadającego konto w systemie GEO2.pl:</strong></p>'+
                          '<p>ID konta: <input id="subscrAcc" style="padding:2px;border:1px solid #ccc;" type="text" /> <input type="image" id="grantSubscr" style="margin-left:11px;vertical-align:-9px;" src="/wimg/button_share.png" /></p>'+
                          '<p style="border-top:1px solid #ccc;padding-top:7px;font-size:14px;color:#555"><strong>Udostępnione urządzenia</strong></p>'+
                          '<table cellpadding="0" cellspacing="0" style="width:100%;text-align:center;" id="grantedSubscr">'+
                               '<tr style="height:35px;">'+
                                    '<td style="width:10px;background:url(\'wimg/ltable.png\');"></td>'+
                                    '<td style="background:url(\'wimg/whitetablebg.png\')">Nazwa</td>'+
                                    '<td style="width:1px;background:url(\'wimg/jointable.png\')"></td>'+
                                    '<td style="background:url(\'wimg/darktablebg.png\')">IMEI</td>'+
                                    '<td style="width:1px;background:url(\'wimg/jointable.png\')"></td>'+
                                    '<td style="background:url(\'wimg/whitetablebg.png\')">Nazwa użytkownika</td>'+
                                    '<td style="width:1px;background:url(\'wimg/jointable.png\')"></td>'+
                                    '<td style="background:url(\'wimg/darktablebg.png\')">Od</td>'+
                                    '<td style="width:1px;background:url(\'wimg/jointable.png\')"></td>'+
                                    '<td style="background:url(\'wimg/whitetablebg.png\')">Opcje</td>'+
                                    '<td style="width:10px;background:url(\'wimg/rtable.png\')"></td>'+
                                '</tr>'+
                          '</table>'+
                          '<p style="border-top:1px solid #ccc;padding-top:7px;font-size:14px;color:#555"><strong>Obserwowane urządzenia</strong></p>'+
                          '<table cellpadding="0" cellspacing="0" style="width:100%;text-align:center;" id="ownedSubscr">'+
                               '<tr style="height:35px;">'+
                                    '<td style="width:10px;background:url(\'wimg/ltable.png\');"></td>'+
                                    '<td style="background:url(\'wimg/whitetablebg.png\')">Nazwa</td>'+
                                    '<td style="width:1px;background:url(\'wimg/jointable.png\')"></td>'+
                                    '<td style="background:url(\'wimg/darktablebg.png\')">IMEI</td>'+
                                    '<td style="width:1px;background:url(\'wimg/jointable.png\')"></td>'+
                                    '<td style="background:url(\'wimg/whitetablebg.png\')">Nazwa użytkownika</td>'+
                                    '<td style="width:1px;background:url(\'wimg/jointable.png\')"></td>'+
                                    '<td style="background:url(\'wimg/darktablebg.png\')">Od</td>'+
                                    '<td style="width:1px;background:url(\'wimg/jointable.png\')"></td>'+
                                    '<td style="background:url(\'wimg/whitetablebg.png\')">Opcje</td>'+
                                    '<td style="width:10px;background:url(\'wimg/rtable.png\')"></td>'+
                                '</tr>'+
                          '</table>'+
                       '</div>'+

					   '<div class="navObj" style="display:none;">'+
                           '<p style="font-size:14px;color:#555"><strong>Dane konta</strong></p>'+
                           '<iframe style="width:100%;border:0;height:100%;" src="http://www.geo2.pl/konto/index.php/personalData"></iframe>'+
                       '</div>'+

					   '<div class="navObj" style="display:none;">'+
                           '<p style="font-size:14px;color:#555"><strong>Płatności</strong></p>'+
                           '<iframe style="width:100%;border:0;height:100%;" src="http://www.geo2.pl/konto/index.php/pay/subscription"></iframe>'+
                       '</div>'+

					   '<div class="navObj" style="display:none;">'+
                           '<p style="font-size:14px;color:#555"><strong>Płatności</strong></p>'+
                           '<iframe style="width:100%;border:0;height:100%;" src="http://www.geo2.pl/konto/index.php/invoice"></iframe>'+
                       '</div>'+

                       '<div class="navObj" style="display:none;">'+
                           '<p style="font-size:14px;color:#555"><strong>Roaming</strong></p>'+
                           '<iframe style="width:100%;border:0;height:100%;" src=" http://www.geo2.pl/konto/index.php/pay/roaming"></iframe>'+
                       '</div>'+

                   '</div>'+
                 '</div>'+
                 '<div style="float:left;width:8px;background:url(\'wimg/cright.png\');height:'+(height-47)+'px"></div>'+            
                 '<div style="float:left;clear:left;font-size:1px;width:8px;height:8px;background:url(\'wimg/cleftbottom.png\')"></div>'+
                 '<div style="float:left;font-size:1px;background:url(\'wimg/cbottom.png\');height:8px;width:'+(width-16)+'px"></div>'+
                 '<div style="float:left;font-size:1px;width:8px;height:8px;background:url(\'wimg/crightbottom.png\')"></div>'+
               '</div>';
    var div = document.createElement('div');
    div.innerHTML=html;
    div.style.zIndex="300";
    map.getContainer().appendChild(div);
    
    var self = this; //clousure
    GEvent.addDomListener(document.getElementById('closeMyAcc'),'click',function(){
        Wiking.widgets.BlackScreen.clear();
        map.removeControl(self);
        delete MyAccount.instance;
    });
    GEvent.addDomListener(document.getElementById('regDevice'),'click',function(){
        self.doReg();
    });
    
    this.navpos = 0;
    this.bindNav();
    this.goNav(0);
    this.bindSubsrc();
    this.drawGrantedSubscr();
    this.drawOwnedSubscr();
    this.drawMyDevices();
    this.drawSubscr();
	//this.drawGroups();
    
    return div;
};
MyAccount.prototype.getDefaultPosition = function(){
    return new GControlPosition(G_ANCHOR_TOP_LEFT,new GSize(130,60));
};
MyAccount.prototype.drawMyDevices = function(){
    var state, settings, devname;
    var devices = '<tr style="height:35px;">'+
                    '<td style="width:10px;background:url(\'wimg/ltable.png\');"></td>'+
                    '<td style="background:url(\'wimg/whitetablebg.png\')">Nazwa</td>'+
                    '<td style="width:1px;background:url(\'wimg/jointable.png\')"></td>'+
                    '<td style="background:url(\'wimg/darktablebg.png\')">IMEI</td>'+
                    '<td style="width:1px;background:url(\'wimg/jointable.png\')"></td>'+
                    '<td style="background:url(\'wimg/whitetablebg.png\')">Stan</td>'+
                    '<td style="width:1px;background:url(\'wimg/jointable.png\')"></td>'+
                    '<td style="background:url(\'wimg/darktablebg.png\')">Ustawienia</td>'+
                    '<td style="width:10px;background:url(\'wimg/rtable.png\')"></td>'+
                  '</tr>';
    var tmpdev = Wiking.getObjects();
    
    for (var i=0,l=tmpdev.length;i<l;i++){
        if (tmpdev[i].getRights()!="ownership") continue;
        if (tmpdev[i].isActive()){
            if(tmpdev[i].getPaymentCode()){
                state = '<strong style="color:red;">Nieopłacony</strong>';
            }else{
                state = '<strong style="color:green;">Aktywny</strong>';
            }
            settings = this.insertPaymentLink(tmpdev[i]) + '<a href="javascript:Wiking.widgets.MyAccount.unRegisterDevice('+String(tmpdev[i].getImei())+')">Wyrejestruj</a>';
         }else{
            state = '<strong style="color:red;">Wyrejestrowany</strong>';
            settings = '<a href="javascript:Wiking.widgets.MyAccount.reRegisterDevice('+String(tmpdev[i].getImei())+')">Zarejestruj</a>';
         }
         devname = String(tmpdev[i].getName())!=String(tmpdev[i].getImei()) ? String(tmpdev[i].getName()) : '-';
         devices+='<tr style="height:35px;">'+
                    '<td colspan="3">'+devname+'</td>'+
                    '<td>'+String(tmpdev[i].getImei())+'</td>'+
                    '<td colspan="3">'+state+'</td>'+
                    '<td colspan="2">'+settings+'</td>'+
                   '</tr>';
          }
          if (tmpdev.length=='')
          {
              devices+='<tr><td colspan="9">Brak urządzeń</td></tr>';
          }
          if (Prototype.Browser.IE){
            var div = document.createElement('div')
                div.innerHTML='<table cellpadding="0" cellspacing="0" style="font-size:12px;width:100%;text-align:center;" id="accMyDevices">'+devices+'</table>';
            //$('accMyDevices').parentNode.appendChild(div);
            $('accMyDevices').swapNode(div);
          }else{
            $('accMyDevices').innerHTML=devices;
          }
}
MyAccount.prototype.insertPaymentLink = function(device){
        var code = device.getPaymentCode();
        if (!code) return '';
        
        return '';
        
        if (code == "ERROR") return "<s>Opłać</s> - Proszę spróbować później / ";
        var form = '<form action="https://ssl.dotpay.pl" method="post" style="display:inline;" target="_blank">'+
                   '<input type="hidden" name="id" value="36563">'+
                   '<input type="hidden" name="kwota" value="199.00">'+
                   '<input type="hidden" name="waluta" value="PLN">'+
        
                   '<input type="hidden" name="opis" value="'+code+'"><!--tlenXXX-XXX-XXX tu KODY!-->'+
        
                   '<input type="hidden" name="jezyk" value="pl">'+
                   '<input type="hidden" name="kanal" value="0">'+
                   '<input type="hidden" name="blokuj" value="0">'+
                   '<input type="hidden" name="przelewyonline" value="0">'+
        
                   '<input type="hidden" name="URL" value="http://www.geo2.pl/platnosc-przyjeta"> <!-- Gdzie ma wracac user po platnosci -->'+
        
                   '<input type="hidden" name="typ" value="1">'+
        
                   '<input type="hidden" name="txtguzik" value=""><!--  tresc na guziku powrót do sklepu -->'+
        
                   '<input type="hidden" name="URLC" value="https://panel.tlen.pl/o24/dotpay/odbiornik.php">'+
        
                   '<input type="hidden" name="control" value=""> <!-- hash pomocniczy 128 znakow -->'+
        
                   '<input type="hidden" name="imie" value=""><!-- imie usera -->'+
                   '<input type="hidden" name="nazwisko" value=""><!-- nazwisko usera -->'+
                   '<input type="hidden" name="email" value=""><!-- email usera -->'+
                   '<input type="hidden" name="ulica" value=""><!-- ulica usera -->'+
                   '<input type="hidden" name="budynek" value=""><!--budynek usera -->'+
                   '<input type="hidden" name="lokal" value=""><!-- numer mieszkania -->'+
                   '<input type="hidden" name="addr2" value=""><!-- druga linia adresu -->'+
                   '<input type="hidden" name="addr3" value=""><!--  trzecia linia adresu -->'+
                   '<input type="hidden" name="miasto" value=""><!--miejscowosc osoby placacej -->'+
                   '<input type="hidden" name="kod" value=""><!-- kod pocztowy -->'+
                   '<input type="hidden" name="telefon" value=""><!--telefon osoby placacej -->'+
                   '<input type="hidden" name="kraj" value="POL"><!-- kraj zkad pochodzi osoba placaca =POL -->'+
                   '<input type="hidden" name="code" value=""><!-- puste -->'+
                   '<input type="hidden" name="p_info" value=""><!--puste -->'+
                   '<input type="hidden" name="p_email" value=""><!--puste -->'+
                   '<input type="hidden" name="podatek" value=""><!--puste -->'+

                   '<input type="submit" name="przycisk" value="Opłać (199 zł)" style="padding:0;cursor:pointer;font-family:Arial;border:#fff;background:#fff;color:#c22f00;border-bottom:1px solid #c22f00">'+
                   '</form> / ';
          return form;
      
};
MyAccount.prototype.drawSubscr = function()
      {
            var ownerselect = "";
            var dev = Wiking.getObjects();
            for (var i=0,l=dev.length;i<l;i++)
            {        
                if (dev[i].getRights() == "ownership")
                {
                    ownerselect+='<option value="'+dev[i].getImei()+'">'+dev[i].getName()+' (IMEI: '+dev[i].getImei()+')</option>';
                }
            }
            $('subscriptionSelect').innerHTML=ownerselect;
};
MyAccount.prototype.bindSubsrc = function(){
            Element.observe($('grantSubscr'),'click',function()
            {
                var i = $('subscriptionSelect').value;
                var u = $('subscrAcc').value;
                var waiter = new Wiking.widgets.BlackInfo('<p style="text-align:center;">Trwa nadawanie uprawnień</p><p><img src="/wimg/loader.gif" /></p>',false);
                new Ajax.Request('/thingy/grant?i='+i+'&u='+u,
                {
                    onSuccess:function(e)
                    {
                        var resp = e.responseJSON=="OK" ? 'Uprawnienia zostały nadane.' : 'Nadanie uprawnień nie powiodło się.'
                        waiter.setText('<p>'+resp+'</p><p><button id="closeSubscr">Zamknij</button></p>');
                        waiter.showX();
                        Element.observe($('closeSubscr'),'click',waiter.clear_.bind(waiter));
                    },
                    onFailure:function()
                    {
                        waiter.setText('<p>Nadanie uprawnień nie powiodło się.</p><p><button id="closeSubscr">Zamknij</button></p>');
                        waiter.showX();
                        Element.observe($('closeSubscr'),'click',waiter.clear_.bind(waiter));
                    }
                });
            });
      };
MyAccount.prototype.drawGrantedSubscr = function()
      {
          new Ajax.Request("/thingy/list_granted",{method:'GET',
          onSuccess:function(e)
          {
              function extend(str)
              {
                  str = String(str);
                  if (str.length==1)
                      str = "0"+str;
                  return str;
              }
              var json = e.responseJSON;
              var acc = "";
              var date;
              for (var i=0, l=json.length; i<l; i++)
              {
                  date = new Date(json[i].timestamp*1000);
                  acc+='<tr style="height:35px;">'+
                           '<td colspan="3">'+Wiking.getObjectByImei(json[i].imei).getName()+'</td>'+
                           '<td>'+String(json[i].imei)+'</td>'+
                           '<td colspan="3">'+json[i].user+'</td>'+
                           '<td colspan="2">'+extend(date.getDate())+"-"+extend(date.getMonth()+1)+"-"+date.getFullYear()+' '+extend(date.getHours())+":"+extend(date.getMinutes())+'</td>'+
                           '<td colspan="2"><a href="#" onclick="Wiking.widgets.MyAccount.revokeSubscription('+json[i].imei+',\''+json[i].user+'\',\'true\')">Usuń</a></td>'+
                        '</tr>';                  
              }
              acc = (acc != "") ? acc : '<tr style="height:35px;"><td colspan="9">Brak nadanych uprawnień.</td></tr>';
              var todel = $$('#grantedSubscr tr');
              for (i=1,l=todel.length;i<l;i++)
              {
                Element.remove(todel[i]);
              }
              document.getElementById('grantedSubscr').innerHTML+=acc;
          }}); 
      }
MyAccount.prototype.drawOwnedSubscr = function()
      {
          new Ajax.Request("/thingy/list_owned",{method:'GET',
          onSuccess:function(e)
          {
              function extend(str)
              {
                  str = String(str);
                  if (str.length==1)
                      str = "0"+str;
                  return str;
              }
              var json = e.responseJSON;
              var acc = "";
              var date;
              for (var i=0, l = json.length; i<l; i++)
              {
                  date = new Date(json[i].timestamp*1000);
                  acc+='<tr style="height:35px;">'+
                           '<td colspan="3">'+Wiking.getObjectByImei(json[i].imei).getName()+'</td>'+
                           '<td>'+String(json[i].imei)+'</td>'+
                           '<td colspan="3">'+json[i].user+'</td>'+
                           '<td colspan="2">'+extend(date.getDate())+"-"+extend(date.getMonth()+1)+"-"+date.getFullYear()+' '+extend(date.getHours())+":"+extend(date.getMinutes())+'</td>'+
                           '<td colspan="2"><a href="#" onclick="Wiking.widgets.MyAccount.revokeSubscription('+json[i].imei+',\''+json[i].user+'\',\'false\')">Usuń</a></td>'+
                        '</tr>';                  
              }
              acc = (acc != "") ? acc : '<tr style="height:35px;"><td colspan="9">Brak otrzymanych uprawnień.</td></tr>';
              var todel = $$('#ownedSubscr tr');
              for (i=1,l=todel.length;i<l;i++)
              {
                Element.remove(todel[i]);
              }
              
              document.getElementById('ownedSubscr').innerHTML+=acc;
          }
          });       
      }
MyAccount.prototype.bindNav = function()
      {
          var nav = $$('#accnav a');
		  for (var j=0,l=nav.length;j<l;j++) {
			  nav[j].observe('click',this.goNav.bind(this,j));
		  }
      }
MyAccount.prototype.goNav = function(i)
      {
          this.navpos = i;
          var nav = $$('.navObj');
          var button = $$('#accnav a');
          for (var j=0,l=nav.length;j<l;j++)
          {
              nav[j].style.display='none';
	          button[j].style.background="url(/wimg/bbg4.png)";
          }
          
		  button[i].style.background="url(/wimg/bbg3.png)";
          nav[i].style.display='block';
      }
MyAccount.prototype.doChPasswd = function()
      {
          if(document.getElementById("oldPasswd").value == "")
          {
              return
          }
          if (document.getElementById("newPasswd").value != document.getElementById("reNewPasswd").value)
          {
              document.getElementById("newPasswd").value = "";
              document.getElementById("reNewPasswd").value = "";
              document.getElementById("reNewPasswd").style.background="red"; // TODO -> bardziej cywilizowany kolor
              return
          }
          new Ajax.Request('/thingy/chpasswd?o='+document.getElementById('oldPasswd').value+'&n='+document.getElementById('newPasswd').value,
                           {method:'GET',onSuccess:this.chPasswdSuccess.bind(this)});   
          document.getElementById('chPasswdSpan').innerHTML="Oczekiwanie..."
      }
MyAccount.prototype.chPasswdSuccess = function(e)
      {
          if (typeof(e.responseJSON)=="undefined")
          {
              alert("uu problemo");
              return;
          }
          //console.debug(e.responseJSON,e.responseJSON=="OK");
          
          if (e.responseJSON=="OK")
          {
              document.getElementById('chPasswdSpan').innerHTML="<strong>Hasło zmienione&nbsp;</strong>"
          }
          else
          {
              document.getElementById("oldPasswd").style.background="red";
              document.getElementById('chPasswdSpan').innerHTML="<strong>Niepoprawne hasło&nbsp;</strong>"
          }
      }
MyAccount.prototype.doReg=function()
      {
        Wiking.widgets.MyAccount.doRegisterDevice(document.getElementById('regImei').value,document.getElementById('regCode').value);
      }
MyAccount.prototype.drawGroups = function()
{
	var i,groupId,t,state,devname,bg,group,groups=new Array(),row=0;
    var tmpdev = Wiking.getObjects();
	document.getElementById('noGroupsList').innerHTML=
		'<tr>'+
			'<th class="lborder"></td>'+
			'<th class="white" colspan="2">Nazwa</td>'+
			'<th class="join"></td>'+
			'<th class="dark">IMEI</td>'+
			'<th class="join"></td>'+
			'<th class="white">Stan</td>'+
			'<th class="rborder"></td>'+
		'</tr>';
	document.getElementById('groupsList').innerHTML=
		'<tr>'+
			'<th class="lborder""></td>'+
			'<th class="white">Nazwa grupy</td>'+
			'<th class="join"></td>'+
			'<th class="dark">Obiekty</td>'+
			'<th class="rborder"></td>'+
		'</tr>';
	document.getElementById('noGroupsListSelect').innerHTML='<option>--Wybierz--</option>';
	groups = Wiking.getGroups();
	for(i=0;i<groups.length;i++) {
		bg = i%2==0 ? 'white' : '#eee';
		document.getElementById('groupsList').innerHTML+=
			'<tr>'+
			'<td></td>'+
			'<td style="background:'+bg+'" colspan="2">'+groups[i]+'</td>'+
			'<td style="background:'+bg+'" colspan="2" id="groupsList_'+i+'"></td>'+
			'<td></td>'+
			'</tr>';

		var option=document.createElement('option');
		option.value=groups[i];
		option.innerHTML=groups[i];
		document.getElementById('noGroupsListSelect').appendChild(option)
	}
	for(i=0,row=0; i<tmpdev.length; i++) {
		devname = String(tmpdev[i].getName())!=String(tmpdev[i].getImei()) ? String(tmpdev[i].getName()) : '-';
		group = tmpdev[i].getGroup();
		if(group!='') {
			for(groupId=0;groupId<groups.length;groupId++) {
				if(group==groups[groupId]) {
					document.getElementById('groupsList_'+groupId).innerHTML+='<div style="margin:15px 0">'+devname+' ('+tmpdev[i].getImei()+') <a href="#" onclick="Wiking.widgets.MyAccount.setDeviceGroup(\''+tmpdev[i].getImei()+'\',\'\')">usuń</a></div>';
				}
			}
		} else {
			if (tmpdev[i].isActive()){
				if(tmpdev[i].getPaymentCode()){
					state = '<strong style="color:red;">Nieopłacony</strong>';
				}else{
					state = '<strong style="color:green;">Aktywny</strong>';
				}
			}else{
				state = '<strong style="color:red;">Wyrejestrowany</strong>';
			}
			bg = row++%2==0 ? 'white' : '#eee';
			t = '<tr>'+
				'<td></td>'+
				'<td style="background:'+bg+';width:20px"><input type="checkbox" id="noGroupsList_'+tmpdev[i].getImei()+'" value="'+tmpdev[i].getImei()+'"></td>'+
				'<td style="background:'+bg+'"><label for="noGroupsList_'+tmpdev[i].getImei()+'">'+devname+'</label></td>'+
				'<td style="background:'+bg+'" colspan="2">'+tmpdev[i].getImei()+'</td>'+
				'<td style="background:'+bg+'" colspan="2">'+state+'</td>'+
				'<td></td>'+
				'</tr>';
			document.getElementById('noGroupsList').innerHTML+=t;
		}
	}
}
Wiking.widgets.MyAccount.setDeviceGroup = function(imei,group){
	console.debug('zapisywanie grupy');
	Wiking.getObjectByImei(imei).setGroup(group);
	MyAccount.instance.drawGroups();
}
Wiking.widgets.MyAccount.setDevicesGroup = function(group){
	var i,imei,form=document.getElementById('noGroupsListForm');
	console.debug('zapisywanie grupy');
	document.getElementById('noGroupsListSelect').selectedIndex=0;
	for(i=0; i<form.elements.length;i++) {
		if(form.elements[i].type != 'checkbox' || !form.elements[i].checked) continue;
		imei=form.elements[i].value;
		Wiking.getObjectByImei(imei).setGroup(group);
	}
	MyAccount.instance.drawGroups();
}
Wiking.widgets.MyAccount.addGroup = function(){
	var el=document.getElementById('newGroupName');
	var name=el.value;
	el.value='';

	Wiking.addEmptyGroup(name);
	MyAccount.instance.drawGroups();
}

/*
 * Obsługa wyrejestrowywania urządzeń, jest to mega hardcore ale działa zajebiście ;-)
 */
Wiking.widgets.MyAccount.unRegisterDevice = function(imei){
    var size = new GSize(370,120);
    var obj = Wiking.getObjectByImei(imei);
    var html = '<div id="unregx" style="cursor:pointer;position:absolute;left:'+(size.width-17)+'px;top:-9px;width:27px;height:27px;background: url(\'wimg/x.png\')"></div>'+
                '<div>'+
                  '<div style="font-size:1px;float:left;width:8px;height:8px;background:url(\'wimg/clefttop.png\')"></div>'+
                  '<div style="font-size:1px;float:left;background:url(\'wimg/ctop.png\');height:8px;width:'+(size.width-16)+'px">'+

                  '</div>'+
                  '<div style="font-size:1px;float:left;width:8px;height:8px;background:url(\'wimg/crighttop.png\')"></div>'+
                 
                  '<div style="clear:left;float:left;width:8px;background:url(\'wimg/cleft.png\');height:'+(size.height-16)+'px"></div>'+
                  '<div style="float:left;background:#fff;height:'+(size.height-16)+'px;width:'+(size.width-16)+'px">'+
                    //TREŚĆ
                     '<div style="padding:10px;text-align:center;" id="messageBody">'+
                        '<p>Czy jesteś pewien, że chcesz wyrejestrować urządzenie <strong>'+obj.getName()+'</strong> ('+imei+') ?</p>'+
                        '<span id="buttons"><button id="unregok">Tak</button> <button id="unreganuluj">Anuluj</button></span'+
                     '</div>'+
                  '</div>'+
                  '<div style="float:left;width:8px;background:url(\'wimg/cright.png\');height:'+(size.height-16)+'px"></div>'+
               
                  '<div style="clear:left;font-size:1px;float:left;width:8px;height:8px;background:url(\'wimg/cleftbottom.png\')"></div>'+
                  '<div style="font-size:1px;float:left;background:url(\'wimg/cbottom.png\');height:8px;width:'+(size.width-16)+'px"></div>'+
                  '<div style="font-size:1px;float:left;width:8px;height:8px;background:url(\'wimg/crightbottom.png\')"></div>'+
                '</div>';
    
    var msg = new Wiking.widgets.MyAccount.MsgControl(size,html);

    // handlery
    var x = document.getElementById('unregx');
    var clear = function(){
        Wiking.getMap().removeControl(msg);
        Wiking.widgets.BlackScreen.clear();
    }   
    Element.observe(x,'click',clear);
    var unreganuluj = document.getElementById('unreganuluj');
    Element.observe(unreganuluj,'click',clear);    
    var unregok = document.getElementById('unregok');
    var messageBody = document.getElementById('messageBody');
    var buttons = document.getElementById('buttons');
    Element.observe(unregok,'click',function()
    {
        x.style.display='none';
        buttons.innerHTML='Trwa wyrejestrowywanie obiektu...'
        var responseHandler = function(e)
        {
            x.style.display='block';
            if (e.responseJSON=='OK')
            {
                messageBody.innerHTML='<p style="margin-top:17px;margin-bottom:17px;">Urządzenie zostało wyrejestrowane.</p>'+
                                          '<button id="closebutton">Zamknij</button>';
                Wiking.getObjectByImei(imei).setActive(false); 
                //refresh device list w menu
                MyAccount.instance.drawMyDevices();
                Wiking.tools.ObjDivManager.init();
                Wiking.tools.allController.init();
                Wiking.tools.grayizer();
            }
            else
            {
                messageBody.innerHTML='<p style="margin-top:17px;margin-bottom:17px;">Nie udało się wyrejestrować urządzenia.</p>'+
                                          '<button id="closebutton">Zamknij</button>';
            }
            Element.observe(document.getElementById('closebutton'),'click',clear);
        };
        new Ajax.Request('/thingy/unregdevice?i='+imei,
        {
            method:'GET',
            onSuccess:responseHandler,
            onFailure:responseHandler
        });        
    });
}
/* 
 * END - obsługa wyrejestrowywania urządzeń
 */

Wiking.widgets.MyAccount.MsgControl = (function(){
 //helper
    function MsgControl(size,html){
        this.html_ = html;
        this.size_ = size;
        Wiking.getMap().addControl(this); 
        Wiking.widgets.BlackScreen.setZ(301);
    }
    MsgControl.prototype = new GControl();
    MsgControl.prototype.selectable = function(){return false;}
    MsgControl.prototype.printable = function(){return true;}
    MsgControl.prototype.initialize = function(map){    
        var div = document.createElement('div');
        div.innerHTML = this.html_;
        div.style.zIndex="400";
        
        map.getContainer().appendChild(div);
        this.div_ = div;
        return div;
    }
    MsgControl.prototype.getDefaultPosition = function(){
        var size = Wiking.getMap().getSize();
        return new GControlPosition(G_ANCHOR_TOP_LEFT,new GSize(Math.round(size.width/2-this.size_.width/2),Math.round(size.height/2-this.size_.height/2)));
    };
    return MsgControl;
})(); 


/*
 * Obsługa rerejestrowywania urządzeń
 */ 
Wiking.widgets.MyAccount.reRegisterDevice = function(imei){
    var size = new GSize(460,165);
    var obj = Wiking.getObjectByImei(imei);
    var html = '<div id="reregx" style="cursor:pointer;position:absolute;left:'+(size.width-17)+'px;top:-9px;width:27px;height:27px;background: url(\'wimg/x.png\')"></div>'+
                '<div>'+
                  '<div style="font-size:1px;float:left;width:8px;height:8px;background:url(\'wimg/clefttop.png\')"></div>'+
                  '<div style="font-size:1px;float:left;background:url(\'wimg/ctop.png\');height:8px;width:'+(size.width-16)+'px">'+

                  '</div>'+
                  '<div style="font-size:1px;float:left;width:8px;height:8px;background:url(\'wimg/crighttop.png\')"></div>'+
                 
                  '<div style="clear:left;float:left;width:8px;background:url(\'wimg/cleft.png\');height:'+(size.height-16)+'px"></div>'+
                  '<div style="float:left;background:#fff;height:'+(size.height-16)+'px;width:'+(size.width-16)+'px">'+
                    //TREŚĆ
                     '<div style="padding:10px;text-align:center;" id="messageBody">'+
                        '<p>Jeśli chcesz ponownie zarejestrować urządzenie <strong>'+obj.getName()+'</strong> ('+imei+') podaj kod autoryzacyjny:</p>'+
                        '<p><input type="text" id="reauthcode" /></p>'+
                        '<span id="buttons"><button id="reregdo">Zarejestruj</button> <button id="rereganuluj">Anuluj</button></span>'+
                     '</div>'+
                  '</div>'+
                  '<div style="float:left;width:8px;background:url(\'wimg/cright.png\');height:'+(size.height-16)+'px"></div>'+
               
                  '<div style="font-size:1px;float:left;clear:left;width:8px;height:8px;background:url(\'wimg/cleftbottom.png\')"></div>'+
                  '<div style="font-size:1px;float:left;background:url(\'wimg/cbottom.png\');height:8px;width:'+(size.width-16)+'px"></div>'+
                  '<div style="font-size:1px;float:left;width:8px;height:8px;background:url(\'wimg/crightbottom.png\')"></div>'+
                '</div>';
    var msg = new Wiking.widgets.MyAccount.MsgControl(size,html);
    var clear = function(){
        Wiking.getMap().removeControl(msg);
        Wiking.widgets.BlackScreen.setZ(100);
    }
    var x = document.getElementById('reregx');
    GEvent.addDomListener(x,'click',clear);
    GEvent.addDomListener(document.getElementById('rereganuluj'),'click',clear);

    var buttons = document.getElementById('buttons');
    var messageBody = document.getElementById('messageBody');
    GEvent.addDomListener(document.getElementById('reregdo'),'click',function(){
        x.style.display='none';
        buttons.innerHTML='Wysyłanie rządania rejestracji...';
        var responseHandler = function(e){
            x.style.display='block';
            if (e.responseJSON=='OK'){
                messageBody.innerHTML='<p style="margin-top:31px;margin-bottom:27px;">Urządzenie zostanie zarejestrowane po uruchomieniu.</p>'+
                                          '<button id="closebutton">Zamknij</button>';                  
            }else{
                messageBody.innerHTML='<p style="margin-top:31px;margin-bottom:27px;">Żądanie rejestracji nie powiodło się.</p>'+
                                          '<button id="closebutton">Zamknij</button>';            
            }
            GEvent.addDomListener(document.getElementById('closebutton'),'click',clear);
        }
        new Ajax.Request('/thingy/regdevice?i='+imei+'&c='+document.getElementById('reauthcode').value, 
        {
            method:'GET',
            onSuccess:responseHandler,
            onFailure:responseHandler
        });              
    });
      
} 
/* 
 * END - obsługa rerejestrowywania urządzeń
 */

Wiking.widgets.MyAccount.revokeSubscription = function(imei,username,isOwner){
    var size = new GSize(370,120);
    var obj = Wiking.getObjectByImei(imei);
    var html = '<div id="unregx" style="cursor:pointer;position:absolute;left:'+(size.width-17)+'px;top:-9px;width:27px;height:27px;background: url(\'wimg/x.png\')"></div>'+
                '<div>'+
                  '<div style="font-size:1px;float:left;width:8px;height:8px;background:url(\'wimg/clefttop.png\')"></div>'+
                  '<div style="font-size:1px;float:left;background:url(\'wimg/ctop.png\');height:8px;width:'+(size.width-16)+'px">'+

                  '</div>'+
                  '<div style="font-size:1px;float:left;width:8px;height:8px;background:url(\'wimg/crighttop.png\')"></div>'+
                 
                  '<div style="clear:left;float:left;width:8px;background:url(\'wimg/cleft.png\');height:'+(size.height-16)+'px"></div>'+
                  '<div style="float:left;background:#fff;height:'+(size.height-16)+'px;width:'+(size.width-16)+'px">'+
                    //TREŚĆ
                     '<div style="padding:10px;text-align:center;" id="messageBody">'+
                        '<p>Czy jesteś pewien, że chcesz usunać uprawnienia do <strong>'+obj.getName()+'</strong> ('+imei+') ?</p>'+
                        '<span id="buttons"><button id="unregok">Tak</button> <button id="unreganuluj">Anuluj</button></span'+
                     '</div>'+
                  '</div>'+
                  '<div style="float:left;width:8px;background:url(\'wimg/cright.png\');height:'+(size.height-16)+'px"></div>'+
               
                  '<div style="font-size:1px;float:left;clear:left;width:8px;height:8px;background:url(\'wimg/cleftbottom.png\')"></div>'+
                  '<div style="font-size:1px;float:left;background:url(\'wimg/cbottom.png\');height:8px;width:'+(size.width-16)+'px"></div>'+
                  '<div style="font-size:1px;float:left;width:8px;height:8px;background:url(\'wimg/crightbottom.png\')"></div>'+
                '</div>';
                
    var msg = new Wiking.widgets.MyAccount.MsgControl(size,html);
    
    // handlery
    var x = document.getElementById('unregx');
    var clear = function(){
        Wiking.getMap().removeControl(msg);
        Wiking.widgets.BlackScreen.setZ(100);
    }
    Element.observe(x,'click',clear);
    var unreganuluj = document.getElementById('unreganuluj');
    Element.observe(unreganuluj,'click',clear);    
    var unregok = document.getElementById('unregok');
    var messageBody = document.getElementById('messageBody');
    var buttons = document.getElementById('buttons');
    Element.observe(unregok,'click',function()
    {
        x.style.display='none';
        buttons.innerHTML='Trwa usuwanie uprawnień...'
        var responseHandler = function(e)
        {
            x.style.display='block';
            if (e.responseJSON=='OK')
            {
                messageBody.innerHTML='<p style="margin-top:17px;margin-bottom:17px;">Prawa dostępu zostały usunięte.</p>'+
                                          '<button id="closebutton">Zamknij</button>';
                //refresh device list w menu
                var myacc = MyAccount.instance;
                myacc.drawMyDevices();
                myacc.drawGrantedSubscr();
                myacc.drawOwnedSubscr();
            }
            else
            {
                messageBody.innerHTML='<p style="margin-top:17px;margin-bottom:17px;">Nie udało się usunąć uprawnień do urządzenia.</p>'+
                                          '<button id="closebutton">Zamknij</button>';
            }
            Element.observe(document.getElementById('closebutton'),'click',clear);
        };
        new Ajax.Request('/thingy/revoke?i='+imei+'&u='+username+'&o='+isOwner,
        {
            method:'GET',
            onSuccess:responseHandler,
            onFailure:responseHandler
        });        
    });
}

/*
 * Request rejestracji urządzeń TODO
 */
Wiking.widgets.MyAccount.doRegisterDevice = function(imei,authcode)
{
    var size = new GSize(420,105);
    var html = '<div id="doregx" style="display:none;cursor:pointer;position:absolute;left:'+(size.width-17)+'px;top:-9px;width:27px;height:27px;background: url(\'wimg/x.png\')"></div>'+
                '<div>'+
                  '<div style="font-size:1px;float:left;width:8px;height:8px;background:url(\'wimg/clefttop.png\')"></div>'+
                  '<div style="font-size:1px;float:left;background:url(\'wimg/ctop.png\');height:8px;width:'+(size.width-16)+'px">'+

                  '</div>'+
                  '<div style="font-size:1px;float:left;width:8px;height:8px;background:url(\'wimg/crighttop.png\')"></div>'+
                 
                  '<div style="clear:left;float:left;width:8px;background:url(\'wimg/cleft.png\');height:'+(size.height-16)+'px"></div>'+
                  '<div style="float:left;background:#fff;height:'+(size.height-16)+'px;width:'+(size.width-16)+'px">'+
                    //TREŚĆ
                     '<div style="padding:10px;text-align:center;" id="messageBody">'+
                        '<p>Trwa rejestracja urządzenia <strong>'+imei+'</strong></p>'+
                        '<p><img src="/wimg/loader.gif" /></p>'+
                       
                     '</div>'+
                  '</div>'+
                  '<div style="float:left;width:8px;background:url(\'wimg/cright.png\');height:'+(size.height-16)+'px"></div>'+
               
                  '<div style="font-size:1px;float:left;clear:left;width:8px;height:8px;background:url(\'wimg/cleftbottom.png\')"></div>'+
                  '<div style="font-size:1px;float:left;background:url(\'wimg/cbottom.png\');height:8px;width:'+(size.width-16)+'px"></div>'+
                  '<div style="font-size:1px;float:left;width:8px;height:8px;background:url(\'wimg/crightbottom.png\')"></div>'+
                '</div>';
    
    var msg = new Wiking.widgets.MyAccount.MsgControl(size,html);
    
    $('doregx').observe('click',function(){
        Wiking.getMap().removeControl(msg);
        Wiking.widgets.BlackScreen.setZ(100);
    });
    var messageBody = document.getElementById('messageBody');
    var responseHandler = function(e)
    {
        $('doregx').style.display='block';
        var success = false;
        if (e.responseJSON=='OK')
        {
            messageBody.innerHTML='<p style="margin-top:10px;margin-bottom:15px;">Urządzenie zostanie zarejestrowane po uruchomieniu.</p>'+
                                  '<button id="closebutton">Zamknij</button>';          
            success = true;
        }
        else
        {
            messageBody.innerHTML='<p style="margin-top:10px;margin-bottom:15px;">Żądanie rejestracji nie powiodło się.</p>'+
                                  '<button id="closebutton">Zamknij</button>';            
        }
        Element.observe(document.getElementById('closebutton'),'click',function(){
            Wiking.getMap().removeControl(msg);
            Wiking.widgets.BlackScreen.setZ(100);
            if (success){
                Wiking.createObjects();
                if (Wiking.widgets.MainMenu.isLive())
                {
                    Wiking.tools.LiveLog.stop();
                    Wiking.tools.runLive();
                }
                Wiking.Event.bindAsEventListener(this,'objects_arrived',function(){
                    Wiking.Event.unBindEventListener(this,'objects_arrived');
                    try{
                        MyAccount.instance.drawMyDevices();
                    }catch(e){}
                });
            }
        });
    }
    new Ajax.Request('/thingy/regdevice?i='+imei+'&c='+authcode, 
    {
        method:'GET',
        onSuccess:responseHandler,
        onFailure:responseHandler
    });   
};
/*
 * end
 */

/*
 * Obsługa wyświetlania konta
 */
Wiking.widgets.ShowMyAccount=function(){
    return new MyAccount();
} 
 
