Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var Duraks = {
- rpc:new RPC( '/games/duraks/app.php' ),
- init:function(){
- this.node = document.getElementById( 'DuraksContent' );
- this.node.onselectstart = function(){
- return false;
- };
- var buf = '';
- this.s = new Socket( {
- //debug:this.DEV,
- connectTimeout:30000,
- host:this.host,
- port:this.port,
- onInit:function(){
- var $s = this;
- Duraks.layers.intro();
- Duraks.layers.intro.status.innerHTML = 'Ielādē attēlus...';
- Duraks.loadImages( {
- onload:function(){
- Duraks.layers.intro.progress.style.display = 'none';
- //setTimeout( function(){
- Duraks.layers.intro.status.innerHTML = 'Pieslēdzas serverim...';
- $s.connect();
- //}, 1000 );
- }
- } );
- },
- onConnect:function(){
- clearTimeout( this.reconnectTimeout );
- Duraks.send( 'auth', {
- uid:Duraks.auth.uid,
- name:Duraks.auth.name,
- icon:Duraks.auth.icon,
- t:Duraks.auth.t,
- h:Duraks.auth.h
- } );
- var refOnline = function(){
- Duraks.rp.online();
- };
- Duraks.onlineInterval = setInterval( refOnline, Duraks.DEV ? 20000 : 10000 );
- refOnline();
- },
- onRecv:function(v){
- buf += v;
- var a = buf.split('\1');
- for( var i = 0; i < a.length - 1; ++ i ){
- Duraks.onRecvJSON( JSON.decode( a[i] ) );
- }
- buf = a[ a.length - 1 ];
- },
- onDisconnect:function(){
- clearInterval( Duraks.onlineInterval );
- Duraks.layers.intro();
- Duraks.layers.intro.status.innerHTML = 'Neizdevās pieslēgties serverim!';
- this.reconnectTimeout = setTimeout( function(){
- Duraks.layers.intro.status.innerHTML = 'Pieslēdzas serverim atkārtoti...';
- Duraks.s.connect();
- }, 1500 );
- }
- } );
- },
- onRecvJSON:function( data ){
- if( this.DEV ){
- D.console.info( 'recv: ', data );
- }
- if( typeof data == 'object' && data.m ){
- if( ! Duraks.rp[ '_' + data.m ] ){
- D.console.error( 'Undefined method: _' + data.m );
- return;
- }
- try{
- Duraks.rp[ '_' + data.m ]( data.d );
- } catch(e){
- D.console.error( e.name + ': ' + e.message + '@' + e.fileName + ' ' + e.lineNumber );
- if( e.stack ){
- D.console.info( e.stack );
- }
- }
- }
- },
- sendJSON:function( data ){
- if( this.DEV ){
- D.console.info( 'send: ', data );
- }
- return this.s.send( JSON.encode( data ) + String.fromCharCode(1) + "\n" );
- },
- send:function( method, data ){
- return this.sendJSON( {
- m:method,
- d:data || {}
- } );
- },
- loadImages:function( par ){
- var images = [
- 'bg_intro.png',
- 'header.png',
- 'bg.jpg',
- 'bg_button.png',
- 'op40.png',
- 'top.png',
- 'games.png',
- 'bg_msg.png',
- 'kava.png',
- 'bg_count.png',
- 'bg_ucount.png',
- '52.png',
- '52d.png',
- 'send.png',
- 'sendd.png',
- 'priv.png',
- 'privd.png',
- 'vip.png',
- 'vipd.png',
- 'players.png',
- 'create_game_button.png',
- 'vip_big.png',
- 'vip_small.png'
- ];
- for( var k in images ){
- images[ k ] = Duraks.PIMG + 'games/duraks/img/' + images[ k ];
- }
- for( var i = 0; i < 4; i ++ ){
- for( var j = 2; j <= 14; j ++ ){
- images.push( Duraks.cardImg( { suit:i, v:j } ) )
- }
- }
- for( var k in D.smileys ){
- //images.push( D.smileys[ k ] );
- }
- for( var k in this.skinImgs ){
- images.push( Duraks.PIMG + 'games/duraks/img/bg/' + this.skinImgs[k] );
- images.push( Duraks.PIMG + 'games/duraks/img/bg/icon_' + this.skinImgs[k] );
- }
- var loaded = 0;
- var onload = function(){
- loaded ++;
- if( loaded == images.length ){
- par.onload();
- }
- Duraks.layers.intro.progressC.style.width = Math.round( loaded / images.length * 100 ) + '%';
- if( Duraks.DEV ){
- //D.console.info( this.src );
- }
- };
- for( var k in images ){
- var img = mkE( {
- tag:'img',
- prop:{
- onload:onload
- },
- style:{
- width:'1px',
- height:'1px',
- visibility:'hidden'
- }
- } ).append( document.body );
- img.src = images[ k ];
- }
- },
- skinImgs:{
- 1:'a4ea93.jpg',
- 2:'b5af9c.jpg',
- 3:'c8f6b0.jpg',
- 4:'cee4f2.jpg',
- 5:'d0d0d0.jpg',
- 6:'d896df.jpg',
- 7:'dbabaf.jpg',
- 8:'e0e0c7.jpg',
- 9:'f6ede0.jpg',
- 10:'f7f7f7.jpg',
- 11:'ffc98b.jpg'
- },
- memberColors:[ '#8d3571', '#007f00', '#246ea0', '#00867b', '#c01b20' ],
- members:{},
- rp:{
- online:function(){
- Duraks.send( 'online', {} );
- },
- _online:function( re ){
- if( !Duraks.layers.games.node ){
- return;
- }
- Duraks.layers.games.online.innerHTML = 'Online: ' + re.count;
- Duraks.layers.games.gameCount.innerHTML = 'Spēles: ' + re.games;
- if( ! Duraks.layers.game.node ){
- return;
- }
- Duraks.layers.game.online.innerHTML = 'Online: ' + re.count;
- Duraks.layers.game.gameCount.innerHTML = 'Spēles: ' + re.games;
- },
- _ugames:function( re ){ // nesāktās spēles
- Duraks.layers.games();
- clearNode( Duraks.layers.games.listNode );
- for( var k in re.games ){
- Duraks.layers.games.items[ re.games[ k ].id ] = Duraks.gameItem( re.games[ k ] ).append( Duraks.layers.games.listNode );
- }
- },
- _ugame:function( re ){
- Duraks.layers.games();
- var node = Duraks.gameItem( re );
- if( Duraks.layers.games.items[ re.id ] ){
- D.insertBefore( node, Duraks.layers.games.items[ re.id ] );
- Duraks.layers.games.items[ re.id ].remove();
- delete Duraks.layers.games.items[ re.id ];
- } else {
- node.append( Duraks.layers.games.listNode );
- }
- Duraks.layers.games.items[ re.id ] = node;
- },
- _ugameRemove:function( re ){
- if( ! Duraks.layers.games.items[ re.id ] ){
- return;
- }
- Duraks.layers.games.items[ re.id ].remove();
- delete Duraks.layers.games.items[ re.id ];
- },
- _auth:function( re ){
- if( re.error ){
- switch( re.error ){
- case 'Session':
- Duraks.infoBox.show( {
- text:'Tev jau ir atvērta spēle citā logā!'
- } );
- break;
- }
- return;
- }
- Duraks.layers.games();
- if( re.vip ){
- Duraks.vip = true;
- removeClassName( Duraks.layers.games.create.vipIcon, 'DuraksVipDIcon' );
- removeClassName( Duraks.layers.games.create.privIcon, 'DuraksPrivDIcon' );
- removeClassName( Duraks.layers.games.create.skinIcon, 'DuraksSkinDIcon' );
- Duraks.layers.games.create.skin._disable(false);
- Duraks.layers.games.create.vip.disabled = false;
- Duraks.layers.games.create.password.disabled = false;
- Duraks.layers.games.create.vip.title = 'Tikai VIP istabās tiek uzskaitīts reitings,<br /> un tajās var piedalīties tikai VIP konta īpašnieki.';
- if( !Duraks.DEV ){
- Duraks.layers.games.buyVIPNode.style.display = 'none';
- }
- Duraks.layers.games.profileVIPNode.style.display = '';
- //Duraks.layers.games.rateNode.innerHTML = 'Tavs reitings: ' + re.rate;
- Duraks.restoreSkin();
- } else {
- //Duraks.layers.games.rateNode.innerHTML = 'Tavs reitings: tikai VIP';
- }
- Duraks.showTop();
- clearTimeout( Duraks.onlineInterval );
- Duraks.onlineInterval = setInterval( function(){ Duraks.rp.online(); }, Duraks.DEV ? 20000 : 10000 );
- Duraks.rp.online();
- },
- create:function( par ){
- Duraks.send( 'create', {
- memberCount:Number( Duraks.layers.games.create.count._value() ),
- pass:Duraks.layers.games.create.pass.checked,
- '52':Duraks.layers.games.create[ '52' ].checked,
- vip:Duraks.layers.games.create.vip.checked,
- priv:Duraks.layers.games.create.password.value,
- skin:Duraks.layers.games.create.skin._value()
- } );
- },
- _create:function( re ){
- if( re.countLimit ){
- Duraks.infoBox.show( {
- text:'Dienas limits: 10 bezmaksas spēles, ja vēlies turpināt - abonē VIP',
- buttons:[
- {
- caption:'Aizvērt',
- onclick:function(){
- Duraks.infoBox.close();
- }
- },
- {
- caption:'Pirkt VIP',
- onclick:function(){
- parent.D.pb('duraks_vip');
- }
- }
- ]
- } );
- return;
- }
- if( re.ban ){
- Duraks.infoBox.show( {
- text:'Par spēles pamešanu vai kavēšanu tev ir liegums spēlēt: ' + ( re.ban > 60 ? Math.round( re.ban / 60 ) + ' m' : re.ban + ' s' ),
- buttons:[
- {
- caption:'Aizvērt',
- onclick:function(){
- Duraks.infoBox.close();
- }
- }
- ]
- } );
- return;
- }
- },
- join:function( par ){
- Duraks.send( 'join', par );
- },
- joinInfoBox:function( re ){
- var buttons = [];
- if( re.cid == Duraks.auth.uid && re.memberCount > 1 ){
- buttons.push(
- {
- caption:'Sākt',
- onclick:function(){
- Duraks.send( 'start', {} );
- }
- }
- );
- }
- buttons.push( {
- caption:'Aizvērt',
- onclick:Duraks.rp.leave
- } );
- Duraks.infoBox.show( {
- text:'Spēle sāksies, kad pieteiksies visi dalībnieki! ' + '(' + re.memberCount + '/' + re.count + ')',
- buttons:buttons
- } );
- },
- _join:function( re ){
- if( re.ban ){
- Duraks.infoBox.show( {
- text:'Par spēles pamešanu vai kavēšanu tev ir liegums spēlēt: ' + ( re.ban > 60 ? Math.round( re.ban / 60 ) + ' min' : re.ban + ' s' ),
- buttons:[
- {
- caption:'Aizvērt',
- onclick:function(){
- Duraks.infoBox.close();
- }
- }
- ]
- } );
- return;
- }
- if( re.countLimit ){
- Duraks.infoBox.show( {
- text:'Dienas limits: 10 bezmaksas spēles, ja vēlies turpināt - abonē VIP',
- buttons:[
- {
- caption:'Aizvērt',
- onclick:function(){
- Duraks.infoBox.close();
- }
- },
- {
- caption:'Pirkt VIP',
- onclick:function(){
- parent.D.pb('duraks_vip');
- }
- }
- ]
- } );
- return;
- }
- if( re.error ){
- switch( re.error ){
- case 'VIP':
- Duraks.infoBox.show( {
- text:'Spēlē var piedalīties tikai VIP spēlētāji!',
- buttons:[
- {
- caption:'Aizvērt',
- onclick:function(){
- Duraks.infoBox.close();
- }
- },
- {
- caption:'Pirkt VIP',
- onclick:function(){
- parent.D.pb( 'duraks_vip' );
- }
- }
- ]
- } );
- break;
- }
- return;
- }
- if( re.password ){
- var input;
- Duraks.infoBox.show( {
- text:'?ī ir privāta istaba!',
- beforeButtons:mkE( {
- tag:'center',
- id:'DuraksInfoBoxPassword',
- els:[
- mkE( {
- tag:'span',
- text:'Parole: '
- } ),
- input = mkE( {
- tag:'input',
- prop:{
- type:'password'
- }
- } )
- ]
- } ),
- buttons:[
- {
- caption:'Aizvērt',
- onclick:function(){
- Duraks.infoBox.close();
- }
- },
- {
- caption:'Pievienoties',
- onclick:function(){
- Duraks.infoBox.close();
- Duraks.rp.join( {
- id:re.id,
- password:input.value
- } )
- }
- }
- ]
- } );
- input.focus();
- return;
- }
- if( re.id > 0 ){
- Duraks.layers.game();
- if( Duraks.gameId != re.id ){
- clearNode( Duraks.layers.game.members );
- clearNode( Duraks.layers.game.chatItems );
- clearNode( Duraks.layers.game.tableCards );
- Duraks.layers.game.cardCountNode.style.display = 'none';
- Duraks.layers.game.suitImg.style.display = 'none';
- Duraks.layers.game.trumpImg.style.display = 'none';
- Duraks.layers.game.userCards.style.display = 'none';
- Duraks.layers.game.w52Node.style.display = 'none';
- Duraks.layers.game.passNode.style.display = 'none';
- Duraks.layers.game.vipNode.style.display = 'none';
- Duraks.layers.game.timerNode.style.display = 'none';
- Duraks.gameId = re.id;
- }
- Duraks.node.className = 'skin' + re.skin;
- this.joinInfoBox( re );
- Duraks.members[ re.user.uid ] = re.user;
- if( re.user.uid != Duraks.auth.uid ){
- Duraks.chatItem( {
- name:re.user.name,
- text:' pievienojās spēlei!'
- } );
- }
- }
- },
- _unjoin:function( re ){
- if( re.user.uid == Duraks.auth.uid ){
- Duraks.restoreSkin();
- }
- Duraks.chatItem( {
- name:re.user.name,
- text:' pamet spēli'
- } );
- switch( re.status ){
- case 's':
- this.joinInfoBox( re );
- break;
- case 'e':
- if( ! re.statusChange ){
- return;
- }
- Duraks.infoBox.show( {
- text:'Spēle beidzās, jo ' + re.user.name + ' pameta spēli!',
- buttons:[
- {
- caption:'Aizvērt',
- onclick:Duraks.rp.leave
- }
- ]
- } );
- break;
- }
- Duraks.showTop();
- Duraks.updateAch();
- },
- leave:function(){
- Duraks.send( 'leave', {} );
- },
- _leave:function( re ){
- Duraks.restoreSkin();
- /*
- if( Duraks.vip ){
- Duraks.layers.games.rateNode.innerHTML = 'Tavs reitings: ' + re.rate;
- } else {
- Duraks.layers.games.rateNode.innerHTML = 'Tavs reitings: tikai VIP';
- }*/
- Duraks.showTop();
- },
- _start:function( re ){
- Duraks.infoBox.close();
- Duraks.start = true;
- Duraks.trumpSuit = re.trump.suit;
- Duraks.layers.game.suitImg.src = Duraks.suitCardImg( re.trump.suit );
- Duraks.layers.game.suitImg.style.display = '';
- Duraks.layers.game.trumpImg.src = Duraks.cardImg( re.trump );
- Duraks.layers.game.trumpImg.style.display = '';
- Duraks.layers.game.userCards.style.display = '';
- Duraks.layers.game.w52Node.style.display = '';
- Duraks.layers.game.timerNode.style.display = '';
- if( re.game.w52 ){
- removeClassName( Duraks.layers.game.w52Node, 'Duraks52DIcon' );
- } else {
- addClassName( Duraks.layers.game.w52Node, 'Duraks52DIcon' );
- }
- Duraks.layers.game.passNode.style.display = '';
- if( re.game.pass ){
- removeClassName( Duraks.layers.game.passNode, 'DuraksPassDIcon' );
- } else {
- addClassName( Duraks.layers.game.passNode, 'DuraksPassDIcon' );
- }
- Duraks.layers.game.vipNode.style.display = '';
- if( re.game.vip ){
- removeClassName( Duraks.layers.game.vipNode, 'DuraksVipDIcon' );
- } else {
- addClassName( Duraks.layers.game.vipNode, 'DuraksVipDIcon' );
- }
- var tr;
- clearNode( Duraks.layers.game.members );
- mkE( {
- tag:'table',
- prop:{
- cellSpacing:'0'
- },
- els:[
- mkE( {
- tag:'tbody',
- els:[
- tr = mkE( {
- tag:'tr'
- } )
- ]
- } )
- ]
- } ).append( Duraks.layers.game.members );
- Duraks.members = {};
- for( var k in re.members ){
- var member = re.members[ k ];
- member.color = Duraks.memberColors[ k ];
- mkE( {
- tag:'td',
- prop:{
- align:'center'
- },
- els:[
- mkE( {
- tag:'div',
- className:'DuraksGameUser',
- style:{
- color:member.color
- },
- els:[
- mkE( {
- tag:'div',
- className:'DuraksBoxBorderRadius DuraksBox',
- els:[
- mkE( {
- tag:'img',
- src:member.icon,
- prop:{
- _drMember:member,
- onclick:function(){
- Duraks.showAch( this._drMember.uid );
- }
- }
- } ),
- member.cardCount = mkE( {
- tag:'div',
- className:'DuraksGameUserCount',
- els:[
- member.cardCountNode = mkE( {
- tag:'div'
- } )
- ]
- } )
- ]
- } ),
- mkE( {
- tag:'a',
- className:'DuraksGameUserN',
- text:re.members[ k ].name,
- prop:{
- href:'/user/' + member.uid,
- target:'_blank'
- }
- } ),
- member.iet = mkE( {
- tag:'div',
- className:'DuraksGameUserInfo DuraksGameUserIet',
- text:'Iet'
- } ),
- member.sit = mkE( {
- tag:'div',
- className:'DuraksGameUserInfo DuraksGameUserSit',
- text:'Sit'
- } ),
- member.pacel = mkE( {
- tag:'div',
- className:'DuraksGameUserInfo DuraksGameUserPacel',
- text:'Paceļ'
- } )
- ]
- } ) // .DuraksGameUser
- ]
- } ).append( tr );
- member.iet.style.display = 'none';
- member.sit.style.display = 'none';
- member.pacel.style.display = 'none';
- Duraks.members[ re.members[ k ].uid ] = member;
- }
- },
- sendMsg:function(text){
- text = String(text ).replace( /^\s+|\s+$/g, '' );
- if(!text){
- return;
- }
- Duraks.send( 'sendMsg', { text:text } );
- },
- _sendMsg:function( re ){
- },
- _msg:function( re ){
- var name = Duraks.auth.uid == re.uid ? 'Es' : Duraks.members[ re.uid ].name;
- var color = Duraks.members[ re.uid ] ? Duraks.members[ re.uid ].color : '';
- Duraks.chatItem( {
- name:name,
- text:re.text,
- color:color,
- tp:( Duraks.auth.uid != re.uid ),
- id:re.id
- } );
- Duraks.layers.game.chatItems.scrollTop = Duraks.layers.game.chatItems.scrollHeight;
- },
- _infoMsg:function( re ){
- var me = Duraks.auth.uid == re.uid;
- var name = me ? 'Es' : Duraks.members[ re.uid ].name;
- var color = Duraks.members[ re.uid ] ? Duraks.members[ re.uid ].color : '';
- switch( re.type ){
- case 'iet':
- Duraks.chatItem( {
- name:name,
- text:( me ? 'eju ar ' : 'iet ar ' ) + Duraks.cardText( re.card ),
- color:color
- } );
- break;
- case 'sit':
- Duraks.chatItem( {
- name:name,
- text:( me ? 'situ ar ' : 'sit ar ' ) + Duraks.cardText( re.card ),
- color:color
- } );
- break;
- case 'pievieno':
- Duraks.chatItem( {
- name:name,
- text:( me ? 'pievienoju ' : 'pievieno ' ) + Duraks.cardText( re.card ),
- color:color
- } );
- break;
- case 'pacel':
- Duraks.start = true;
- Duraks.chatItem( {
- name:name,
- text:( me ? ' paceļu galda kārtis' : ' paceļ galda kārtis' ),
- color:color
- } );
- if( Duraks.auth.uid == re.uid ){
- Duraks.start = true;
- break;
- }
- Duraks.tableMsg( {
- text:name + ' paceļ galda kārtis!',
- timeout:3000
- } );
- break;
- case 'pass':
- Duraks.chatItem( {
- name:name,
- text:( me ? ' padodu tālāk ar ' : ' padod tālāk ar ' ) + Duraks.cardText( re.card ),
- color:color
- } );
- if( Duraks.auth.uid == re.uid ){
- break;
- }
- if( re.next ){
- var text = name + ' padod Tev!';
- } else {
- var text = name + ( me ? ' padodu tālāk!' : ' padod tālāk!' );
- }
- Duraks.tableMsg( {
- text:text
- } );
- break;
- }
- },
- _cards:function( re ){
- Duraks.layers.game();
- Duraks.layers.game.timerV = 30;
- /*
- if( re.current && ! re.next && re.table.length == 0 ){
- Duraks.tableMsg( {
- text:'Tev jāiet!'
- } );
- }
- if( re.next && ! re.current && re.table.length == 1 && re.undoted == 1 ){
- Duraks.tableMsg( {
- text:'Tev jāsit!'
- } );
- }*/
- if( empty( re.table ) ){
- clearTimeout( Duraks.takeUpTimeout );
- delete Duraks.takeUpTimeout;
- }
- var drawUserCards = function(){
- Duraks.layers.game.youCurrent.style.display = ( re.current && ! re.next ? '' : 'none' );
- Duraks.layers.game.youNext.style.display = ( re.next && ! re.current ? '' : 'none' );
- Duraks.layers.game.takeUp.style.display = ( ! Duraks.takeUpTimeout && re.next && re.table.length ? '' : 'none' );
- var showDotedButton = re.canAdd && ! re.undoted && ! re.done;
- Duraks.layers.game.done.style.display = ( showDotedButton ? '' : 'none' );
- clearTimeout( Duraks.dotedTimer );
- if( showDotedButton ){
- Duraks.dotedTimer = setTimeout( function(){
- Duraks.layers.game.done.onclick();
- }, 30 * 1000 );
- }
- Duraks.layers.game.kava.style.display = ( re.cardCount > 1 ? '' : 'none' );
- Duraks.layers.game.trump.style.display = ( re.cardCount > 0 ? '' : 'none' );
- Duraks.layers.game.cardCount.innerHTML = re.cardCount;
- Duraks.layers.game.cardCountNode.style.display = '';
- clearNode( Duraks.layers.game.userCards );
- var card, cardNode;
- var cards = Duraks.sortCards( re.user );
- var allNew = true;
- for( var k in cards ){
- if( ! cards[ k ].n ){
- allNew = false;
- break;
- }
- }
- for( var k in cards ){
- card = cards[ k ];
- cardNode = mkE( {
- tag:'div',
- className:'DuraksGameCard',
- prop:{
- _card:card,
- onclick:function(){
- Duraks.rp.addTableCard( this._card );
- }
- },
- els:[
- mkE( {
- tag:'img',
- prop:{
- src:Duraks.cardImg( card )
- }
- } )
- ]
- } ).append( Duraks.layers.game.userCards );
- if( k > 0 && cards.length > 3 ){
- cardNode.style.marginLeft = '-' + ( 136 - ( 340 / ( cards.length - 1 ) ) ) + 'px';
- }
- if( ! allNew && card.n ){
- cardNode.style.marginTop = '-15px';
- }
- }
- for( var k in Duraks.members ){
- Duraks.members[ k ].sit.style.display = 'none';
- Duraks.members[ k ].iet.style.display = 'none';
- }
- if( re.currentUid != re.nextUid ){
- if( Duraks.members[ re.currentUid ] ){
- Duraks.members[ re.currentUid ].iet.style.display = '';
- }
- if( Duraks.members[ re.nextUid ] ){
- Duraks.members[ re.nextUid ].sit.style.display = '';
- }
- }
- for( var k in re.counts ){
- if( ! Duraks.members[ k ] ){
- continue;
- }
- if( re.cardCount || re.counts[ k ] ){
- Duraks.members[ k ].cardCountNode.innerHTML = re.counts[ k ];
- Duraks.members[ k ].cardCount.style.display = '';
- } else {
- Duraks.members[ k ].cardCount.style.display = 'none';
- }
- }
- delete drawUserCards;
- }; // drawUserCards = function
- if( count( re.user ) > 12 ){
- addClassName( Duraks.layers.game.userCards, 'DuraksGameUserCardsH' );
- } else {
- removeClassName( Duraks.layers.game.userCards, 'DuraksGameUserCardsH' );
- }
- if( re.table.length || Duraks.start ){
- clearTimeout( Duraks.clearTableTimeout );
- clearNode( Duraks.layers.game.tableCards );
- drawUserCards();
- } else {
- Duraks.clearTableTimeout = setTimeout( function(){
- clearNode( Duraks.layers.game.tableCards );
- drawUserCards();
- }, 2000 );
- }
- var card;
- for( var k in re.table ){
- card = re.table[ k ][ 'd' ];
- mkE( {
- tag:'div',
- className:'DuraksGameCard',
- prop:{
- _card:card
- },
- els:[
- mkE( {
- tag:'img',
- prop:{
- src:Duraks.cardImg( card )
- }
- } )
- ]
- } ).append( Duraks.layers.game.tableCards );
- card = re.table[ k ][ 'u' ];
- if( card ){
- mkE( {
- tag:'div',
- className:'DuraksGameCard DuraksGameCardU',
- prop:{
- _card:card
- },
- els:[
- mkE( {
- tag:'img',
- prop:{
- src:Duraks.cardImg( card )
- }
- } )
- ]
- } ).append( Duraks.layers.game.tableCards );
- }
- }
- Duraks.start = false;
- },
- addTableCard:function( card ){
- Duraks.send( 'addTableCard', { card:card, checkPass:true } );
- },
- _addTableCard:function( re ){
- if( re.canPassOrAdd ){
- Duraks.infoBox.show( {
- text:'Tev ir iespēja:',
- buttons:[
- {
- caption:'Sist',
- onclick:function(){
- Duraks.send( 'addTableCard', { card:re.canPassOrAdd } );
- Duraks.infoBox.close();
- }
- },
- {
- caption:'Padot',
- onclick:function(){
- Duraks.send( 'pass', { card:re.canPassOrAdd } );
- Duraks.infoBox.close();
- }
- }
- ]
- } );
- }
- },
- _doted:function(){
- setTimeout( function(){
- Duraks.tableMsg( {
- text:'Sists!'
- } );
- }, 1000 );
- },
- takeUp:function(){
- Duraks.send( 'takeUp', {} );
- clearTimeout( Duraks.takeUpTimeout );
- Duraks.takeUpTimeout = setTimeout( function(){
- Duraks.send( 'doTakeUp', {} );
- }, 3000 );
- },
- _takeUp:function(){
- },
- setDone:function( v ){
- Duraks.send( 'setDone', { v:v } );
- },
- _end:function( re ){
- var buttons = [
- {
- caption:'Aizvērt',
- onclick:Duraks.rp.leave
- }
- ];
- var beforeButtons = false;
- if( !empty( re.rate ) ){
- beforeButtons = mkE( {
- tag:'center',
- text:'Tu saņem: ' + re.rate + ' punktu'
- } );
- }
- if( Duraks.members[ re.looser ] ){
- Duraks.infoBox.show( {
- text:'Zaudēja: ' + Duraks.members[ re.looser ].name + '!',
- buttons:buttons,
- beforeButtons:beforeButtons
- } );
- } else {
- Duraks.infoBox.show( {
- text:'Tu zaudēji!',
- buttons:buttons
- //beforeButtons:beforeButtons
- } );
- }
- },
- _win:function(re){
- var buttons = [
- {
- caption:'Aizvērt',
- onclick:Duraks.rp.leave
- }
- ];
- var text = 'Uzvarēji! ';
- if( re.rate ){
- text += 'Tu saņem 1 punktu.'
- }
- if( re.limit ){
- text += '?ajā kategroijā šonedēļ Tu vairs nevari saņemt punktus.';
- }
- Duraks.infoBox.show( {
- text:text,
- buttons:buttons
- } );
- }
- }, // rp
- sortCards:function( cards ){
- var re = [];
- for( var k in cards ){
- re.push( cards[ k ] );
- }
- re.sort( Duraks.sortCardsFn );
- return re;
- },
- sortCardsFn:function( c1, c2 ){
- var c1v = c1.v + ( c1.suit == Duraks.trumpSuit ? 100 : 0 );
- var c2v = c2.v + ( c2.suit == Duraks.trumpSuit ? 100 : 0 );
- if( c1v > c2v ){
- return 1;
- } else if( c1v < c2v ){
- return -1;
- }
- return 0;
- },
- cardImg:function( card ){
- var re = Duraks.PIMG + 'games/duraks/img/cards/';
- if( card.v < 11 ){
- re += card.v;
- } else {
- switch( card.v ){
- case 11:
- re += 'J';
- break;
- case 12:
- re += 'Q';
- break;
- case 13:
- re += 'K';
- break;
- case 14:
- re += 'A';
- break;
- }
- }
- switch( card.suit ){
- case 0:
- re += 'e';
- break;
- case 1:
- re += 'k';
- break;
- case 2:
- re += 'kr';
- break;
- case 3:
- re += 'p';
- break;
- }
- re += '.png';
- return re;
- },
- cardText:function( card ){
- var re = '';
- switch( card.suit ){
- case 0:
- re += '♥';
- break;
- case 1:
- re += '♦';
- break;
- case 2:
- re += '♣';
- break;
- case 3:
- re += '?';
- break;
- }
- re += ' ';
- if( card.v < 11 ){
- re += card.v;
- } else {
- switch( card.v ){
- case 11:
- re += 'Kalps';
- break;
- case 12:
- re += 'Dāma';
- break;
- case 13:
- re += 'Kungs';
- break;
- case 14:
- re += 'Dūzis';
- break;
- }
- }
- return re;
- },
- suitCardImg:function( suit ){
- return Duraks.PIMG + 'games/duraks/img/' + suit + '_.png';
- },
- showHelp:function(){
- if( this._drNode ){
- this._drNode.remove();
- delete this._drNode;
- return false;
- }
- var node;
- this._drNode = mkE( {
- tag:'div',
- id:'DuraksHelp',
- //className:'DuraksBox DuraksBoxBorderRadius',
- els:[
- node = mkE( {
- tag:'div'
- } )
- ]
- } ).append( Duraks.node );
- rq( '/games/duraks/rules.php', node, { withoutLoading:true } );
- return false;
- },
- achList:{
- 1:{
- img:'1win',
- title:'Zilais diploms - 1 uzvara'
- },
- 2:{
- img:'50win',
- title:'Zaļais diploms - 50 uzvaras'
- },
- 3:{
- img:'100win',
- title:'Sarkanais diploms - 100 uzvaras'
- },
- 4:{
- img:'500win',
- title:'Bronzas medaļa - 500 uzvaras'
- },
- 16:{
- img:'1000win',
- title:'Sudraba medaļa - 1000 uzvaras'
- },
- 5:{
- img:'3000win',
- title:'Zelta medaļa - 3000 uzvaras'
- },
- 6:{
- img:'5000win',
- title:'Bronzas kronis - 5000 uzvaras'
- },
- 7:{
- img:'10000win',
- title:'Sudraba kronis - 10000 uzvaras'
- },
- 8:{
- img:'30000win',
- title:'Zelta kronis - 30000 uzvaras'
- },
- /*9:{
- img:'weektop3',
- title:'Iekļuvis dienas top 3'
- },
- 10:{
- img:'monthtop3',
- title:'Iekļuvis mēneša top 3'
- },*/
- 11:{
- img:'win_playing2',
- title:'Uzvarējis spēlējot divatā'
- },
- 12:{
- img:'win_playing3',
- title:'Uzvarējis spēlējot trijatā'
- },
- 13:{
- img:'win_playing4',
- title:'Uzvarējis spēlējot četratā'
- },
- 14:{
- img:'win_playing5',
- title:'Uzvarējis spēlējot piecatā'
- },
- 15:{
- img:'win_playing6',
- title:'Uzvarējis spēlējot sešatā'
- },
- 17:{
- img:'win_10_row',
- title:'Uzvarējis 10 spēles pēc kārtas'
- },
- 18:{
- img:'100win_night',
- title:'100 uzvaras spēlējot naktī (00:00 - 05:00)'
- },
- 19:{
- img:'1000win_night',
- title:'1000 uzvaras spēlējot naktī (00:00 - 05:00)'
- }
- },
- showAch:function(uid){
- if( this.achNode ){
- this.achNode.remove();
- delete this.achNode;
- return false;
- }
- this.achNode = mkE( {
- tag:'div',
- id:'DuraksAch',
- //className:'DuraksBox DuraksBoxBorderRadius',
- els:[
- ]
- } ).append( Duraks.node );
- this.rpc.send(
- 'getAch',
- {
- uid:uid || false,
- updateSeen:true
- },
- this.showAchRe,
- this
- );
- return false;
- },
- showAchRe:function(re){
- var itemsNode = mkE( {
- tag:'div',
- id:'DuraksAchItems'
- } ).append( this.achNode );
- for( var k in this.achList ){
- var r = this.achList[k];
- var achNode = mkE( {
- tag:'div',
- className:'DuraksAchItem',
- prop:{
- title:r.title || '',
- style:{
- backgroundImage:"url('" + Duraks.PIMG + 'games/duraks/img/ach/' + r.img + ( re.items[k] ? '' : '_inact' ) + ".png')"
- }
- }
- } ).append(itemsNode);
- if( re.items[k] && re.items[k].seen == 'N' ){
- mkE( {
- tag:'div',
- className:'DuraksAchItemNew'
- } ).append(achNode);
- }
- }
- if( re.uid == D.ID ){
- if( Duraks.layers.games.achCount ){
- Duraks.layers.games.achCount.innerHTML = '';
- Duraks.layers.games.achCount.style.display = 'none';
- }
- }
- mkE( {
- tag:'center',
- els:[
- {
- tag:'button',
- text:'Aizvērt',
- className:'DuraksBorderRadius',
- prop:{
- onclick:function(){
- Duraks.achNode.remove();
- delete Duraks.achNode;
- }
- }
- }
- ]
- } ).append( this.achNode );
- },
- updateAch:function(){
- this.rpc.send(
- 'getAch',
- {
- },
- function( re ){
- if( re['new'] ){
- if( this.layers.games.achCount ){
- this.layers.games.achCount.innerHTML = re['new'];
- Duraks.layers.games.achCount.style.display = '';
- }
- } else {
- this.layers.games.achCount.innerHTML = '';
- Duraks.layers.games.achCount.style.display = 'none';
- }
- },
- this
- );
- },
- showResults:function(uid){
- if( this._resultNode ){
- this._resultNode.remove();
- }
- this._resultNode = mkE( {
- tag:'div',
- id:'DuraksResult',
- //className:'DuraksBox DuraksBoxBorderRadius',
- els:[
- {
- tag:'h1',
- els:[
- '?īs nedēļas statistika: ',
- this._resultPlaceNode = mkE( {
- tag:'span',
- text:'-'
- } ),
- '. vieta'
- ]
- },
- {
- tag:'span',
- className:'DuraksBoxBorderRadius DuraksBox',
- els:[
- {
- tag:'div',
- className:'DuraksError DuraksBox DuraksBorderRadius',
- style:{
- display:( this.vip ? 'none' : '' )
- },
- els:[
- 'Tops pieejams tikai VIP spēlētājiem. ',
- {
- tag:'a',
- text:'Abonēt',
- prop:{
- onclick:function(){
- parent.D.pb( 'duraks_vip' );
- }
- }
- }
- ]
- }, // div.DuraksError
- {
- tag:'table',
- id:'DuraksResultGames',
- els:[
- this._resultBody = mkE( {
- tag:'tbody'
- } )
- ]
- }, // table
- { tag:'br' },
- { tag:'br' },
- {
- tag:'h2',
- text:'Pēdējo 4 nedēļu rezultāti:'
- },
- {
- tag:'table',
- id:'DuraksWeek',
- els:[
- {
- tag:'tbody',
- els:[
- this._resultLast4Node = mkE( {
- tag:'tr'
- } )
- ]
- } // tbody
- ]
- }, // table
- {
- tag:'center',
- els:[
- {
- tag:'button',
- className:'DuraksBorderRadius',
- text:'Aizvērt',
- prop:{
- onclick:function(){
- Duraks._resultNode.remove();
- }
- }
- } //
- ]
- } // center
- ]
- } // div
- ]
- } ).append( Duraks.node );
- this.rpc.send(
- 'result',
- {
- uid:uid || false
- },
- this._showResultsRe,
- this
- );
- },
- _showResultsRe:function(re){
- if(!re){
- return;
- }
- if( re.place ){
- this._resultPlaceNode.innerHTML = re.place;
- }
- var GAMES = 10;
- var total = 0;
- for( var i = 2; i <= 6; ++ i ){
- var tr = mkE( {
- tag:'tr',
- els:[
- {
- tag:'td',
- els:[
- {
- tag:'img',
- src:D.PIMG + 'games/duraks/img/result/' + i + '.png'
- } //img
- ]
- } // td
- ]
- } ).append( this._resultBody );
- var sum = 0;
- for( var k = 0; k < GAMES; ++ k ){
- var item;
- mkE( {
- tag:'td',
- attr:{
- align:'center'
- },
- els:[
- item = mkE( {
- tag:'div',
- className:'DuraksResultI'
- } )
- ]
- } ).append(tr);
- var result = re.games[i][k];
- if( typeof result == 'undefined' ){
- item.title = 'Nav spēlēts';
- continue;
- }
- item._gid = result.gid;
- if( result.win ){
- addClassName( item, 'DuraksResultIWin' );
- ++ sum;
- } else {
- addClassName( item, 'DuraksResultILoose' );
- }
- item.onmouseover = this._resultItemMouseOver;
- } // for
- total += sum;
- mkE( {
- tag:'td',
- els:[
- {
- tag:'b',
- text:sum
- }
- ]
- } ).append(tr);
- }
- mkE( {
- tag:'tr',
- els:[
- {
- tag:'td',
- text:'?onedēļ kopā punkti:',
- prop:{
- colSpan:11,
- style:{
- textAlign:'right'
- }
- }
- },
- {
- tag:'td',
- els:[
- {
- tag:'b',
- text:total
- }
- ]
- }
- ]
- } ).append( this._resultBody );
- for( var k in re.weeks ){
- mkE( {
- tag:'td',
- text:re.weeks[k]
- } ).append( this._resultLast4Node )
- }
- },
- _resultItemMouseOver:function(){
- this.onmouseover = function(){};
- this.title = '<img src="' + D.PIMG + 'i/loading/loading_black_trans.gif" />';
- Duraks.rpc.send(
- 'getGameMembers',
- {
- gid:this._gid
- },
- Duraks._resultGameMembers,
- this
- );
- },
- _resultGameMembers:function(re){
- if( re.notEnd ){
- $('.ToolTip').html("Rezultāti vēl nav pieejami");
- this.onmouseover = Duraks._resultItemMouseOver;
- return;
- }
- var node = mkE( {
- tag:'div'
- } );
- var c = count( re.members );
- for( var i = 0; i < c; ++ i ){
- var m = re.members[i];
- if( i + 1 == c ){
- mkE( {
- tag:'hr'
- } ).append(node);
- }
- mkE( {
- tag:'div',
- els:[
- String( i + 1 ),
- '. ',
- htmlspecialchars_decode( m.title )
- ]
- } ).append(node);
- }
- this._drTitle = node.innerHTML;
- if( this.title ){
- this.title = this._drTitle;
- }
- $('.ToolTip').html( node.innerHTML );
- },
- layers:{
- show:function( leyer ){
- if( leyer.parentNode === Duraks.node ){
- return;
- }
- //clearNode( Duraks.node );
- if( this.intro.node ){
- this.intro.node.remove();
- }
- if( this.games.node ){
- this.games.node.remove();
- }
- if( this.game.node ){
- this.game.node.remove();
- }
- Duraks.infoBox.close();
- leyer.append( Duraks.node );
- },
- intro:function(){
- if( this.intro.node ){
- this.show( this.intro.node );
- return;
- }
- this.intro.node = mkE( {
- tag:'div',
- className:'DuraksView',
- id:'DuraksIntro',
- els:[
- mkE( {
- tag:'div',
- id:'DuraksHeader'
- } ),
- this.intro.progress = mkE( {
- tag:'div',
- id:'DuraksIntroProgress',
- className:'DuraksBorderRadius',
- els:[
- this.intro.progressC = mkE( {
- tag:'div',
- id:'DuraksIntroProgressC'
- } )
- ]
- } ),
- this.intro.status = mkE( {
- tag:'center',
- id:'DuraksIntroStatus'
- } )
- ]
- } );
- this.show( this.intro.node );
- },
- games:function(){
- if( this.games.node ){
- this.show( this.games.node );
- return;
- }
- this.games.items = {};
- this.games.create = {};
- this.games.node = mkE( {
- tag:'div',
- className:'DuraksView',
- els:[
- mkE( {
- tag:'div',
- id:'DuraksHeader',
- els:[
- this.games.online = mkE( {
- tag:'div',
- id:'DuraksGamesOnline'
- } ),
- this.games.gameCount = mkE( {
- tag:'div',
- id:'DuraksGamesCount'
- } ),
- mkE( {
- tag:'a',
- className:'DuraksHeaderAch',
- text_:'Sasniegumi',
- href:'javascript:',
- prop:{
- onclick:function(){
- return Duraks.showAch();
- }
- },
- els:[
- this.games.achCount = mkE( {
- tag:'span'
- } )
- ]
- } ),
- mkE( {
- tag:'a',
- className:'DuraksHeaderHelp',
- text:'Noteikumi',
- href:'javscript:',
- prop:{
- onclick:function(){
- return Duraks.showHelp();
- }
- }
- } )
- ]
- } ), // #DuraksHeader
- mkE( {
- tag:'div',
- id:'DuraksGameBg'
- } ),
- mkE( {
- tag:'div',
- id:'DuraksHello',
- className:'DuraksBoxBorderRadius DuraksBox',
- els:[
- mkE( {
- tag:'img',
- prop:{
- src:Duraks.auth.small
- }
- } ),
- this.games.profileVIPNode = mkE( {
- tag:'div',
- id:'DuraksProfileVIP',
- style:{
- display:'none'
- }
- } ),
- mkE( {
- tag:'div',
- id:'DuraksHelloName',
- text:'Sveiki, ' + Duraks.auth.name
- } ),
- this.games.rateNode = mkE( {
- tag:'div',
- id:'DuraksHelloRate'
- } ),
- mkE( {
- tag:'div',
- text:'Nedēļas uzdevums',
- id:'DuraksResultsButton',
- className:'DuraksBorderRadius DuraksButton',
- prop:{
- onclick:function(){
- Duraks.showResults();
- }
- }
- } ),
- this.games.buyVIPNode = mkE( {
- tag:'div',
- text:'Pirkt VIP',
- id:'DuraksBuyVIP',
- className:'DuraksBorderRadius DuraksButton',
- prop:{
- title:'Abonējot VIP kontu,<br /> varēsi krāt reitingu un iekļūt topā,<br /> un veidot ar paroli aizsargātas istabas.',
- onclick:function(){
- parent.D.pb( 'duraks_vip' );
- }
- },
- els:[
- mkE( {
- tag:'div'
- } )
- ]
- } )
- ]
- } ), // #DuraksHello
- mkE( {
- tag:'div',
- id:'DuraksGamesTop',
- className:'DuraksBoxBorderRadius DuraksBox',
- els:[
- mkE( {
- tag:'div',
- className:'DuraksTopIcon'
- } ),
- mkE( {
- tag:'div',
- id:'DuraksTopTitle',
- text:'VIP TOP'
- } ),
- mkE( {
- tag:'table',
- id:'DuraksGamesTopPeriod',
- els:[
- mkE( {
- tag:'tbody',
- els:[
- mkE( {
- tag:'tr',
- els:[
- mkE( {
- tag:'td',
- els:[
- this.topDayTab = mkE( {
- tag:'a',
- text:'Nedēļas',
- className:'DuraksGamesTopA',
- href:'javascript:',
- prop:{
- onclick:function(){
- Duraks.top = 'day';
- addClassName( Duraks.layers.topDayTab, 'DuraksGamesTopA' );
- //removeClassName( Duraks.layers.topMonthTab, 'DuraksGamesTopA' );
- Duraks.showTop();
- return false;
- }
- }
- } )
- ]
- } )/*,
- mkE( {
- tag:'td',
- els:[
- this.topMonthTab = mkE( {
- tag:'a',
- text:'Mēneša',
- href:'javascript:',
- prop:{
- onclick:function(){
- Duraks.top = 'month';
- removeClassName( Duraks.layers.topDayTab, 'DuraksGamesTopA' );
- addClassName( Duraks.layers.topMonthTab, 'DuraksGamesTopA' );
- Duraks.showTop();
- return false;
- }
- }
- } )
- ]
- } )*/
- ]
- } ) // tr
- ]
- } )
- ]
- } ), // table#DuraksGamesTopPeriod
- this.games.topListNode = mkE( {
- tag:'div',
- id:'DuraksTopList'
- } )
- ]
- } ),
- mkE( {
- tag:'div',
- id:'DuraksGamesList',
- className:'DuraksBoxBorderRadius DuraksBox',
- els:[
- mkE( {
- tag:'div',
- className:'DuraksGamesIcon'
- } ),
- mkE( {
- tag:'div',
- id:'DuraksGamesListTitle',
- text:'Izveidotās spēles'
- } ),
- this.games.listNode = mkE( {
- tag:'div',
- id:'DuraksGamesListItems'
- } )
- ]
- } ), // #DuraksGamesList
- mkE( {
- tag:'div',
- id:'DuraksGamesCreate',
- className:'DuraksBoxBorderRadius DuraksBox',
- els:[
- // +++ 52 +++
- mkE( {
- tag:'div',
- className:'Duraks52Icon'
- } ),
- this.games.create[ '52' ] = mkE( {
- tag:'input',
- id:'DuraksCreate52',
- checked:D.Cookie.read('opt52') === null || D.Cookie.read('opt52') == 'Y',
- prop:{
- type:'checkbox',
- onclick:function(){
- D.Cookie.create( 'opt52', this.checked ? 'Y' : 'N', 7, '/games/duraks/' )
- }
- }
- } ),
- mkE( {
- tag:'label',
- id:'DuraksCreate52Label',
- text:'Lielā kava',
- attr:{
- 'for':'DuraksCreate52'
- }
- } ),
- // --- 52 ---
- // +++ pass +++
- mkE( {
- tag:'div',
- className:'DuraksPassIcon'
- } ),
- this.games.create.pass = mkE( {
- tag:'input',
- id:'DuraksCreatePass',
- checked:D.Cookie.read('optPass') === null || D.Cookie.read('optPass') == 'Y',
- prop:{
- type:'checkbox',
- onclick:function(){
- D.Cookie.create( 'optPass', this.checked ? 'Y' : 'N', 7, '/games/duraks/' )
- }
- }
- } ),
- mkE( {
- tag:'label',
- id:'DuraksCreatePassLabel',
- text:'Ar padošanu',
- attr:{
- 'for':'DuraksCreatePass'
- }
- } ),
- // --- pass ---
- // +++ players +++
- mkE( {
- tag:'div',
- className:'DuraksPlayersIcon'
- } ),
- /*
- this.games.create.count = mkE( {
- tag:'select',
- id:'DuraksCreateMembers',
- els:[
- mkE( {
- tag:'option',
- text:'2',
- value:'2'
- } ),
- mkE( {
- tag:'option',
- text:'3',
- value:'3'
- } ),
- mkE( {
- tag:'option',
- text:'4',
- value:'4'
- } ),
- mkE( {
- tag:'option',
- text:'5',
- value:'5'
- } ),
- mkE( {
- tag:'option',
- text:'6',
- value:'6'
- } )
- ],
- prop:{
- value:D.Cookie.read('optCount') === null ? 4 : D.Cookie.read('optCount'),
- onchange:function(){
- D.Cookie.create( 'optCount',this.value, 7, '/games/duraks/' )
- }
- }
- } ),*/
- this.games.create.count = Duraks.dropDown( {
- id:'DuraksCreateMembers',
- options:[
- {
- text:2,
- value:2
- },
- {
- text:3,
- value:3
- },
- {
- text:4,
- value:4
- },
- {
- text:5,
- value:5
- },
- {
- text:6,
- value:6
- }
- ],
- value:D.Cookie.read('optCount') === null ? 4 : D.Cookie.read('optCount'),
- onchange:function(v){
- D.Cookie.create( 'optCount', v.value, 7, '/games/duraks/' )
- }
- } ),
- mkE( {
- tag:'div',
- id:'DuraksCreatePlayersLabel',
- text:'Spēlētāju skaits'
- } ),
- // --- players ---
- // +++ vip +++
- this.games.create.vipIcon = mkE( {
- tag:'div',
- className:'DuraksVipIcon DuraksVipDIcon',
- prop:{
- title:'Pieejams tikai VIP konta īpašniekiem.'
- }
- } ),
- this.games.create.vip = mkE( {
- tag:'input',
- id:'DuraksCreateVip',
- prop:{
- type:'checkbox',
- title:'Pieejams tikai VIP konta īpašniekiem.',
- disabled:true,
- checked:D.Cookie.read('optVIP') === null || D.Cookie.read('optVIP') == 'Y',
- onclick:function(){
- D.Cookie.create( 'optVIP', this.checked ? 'Y' : 'N', 7, '/games/duraks/' )
- }
- }
- } ),
- mkE( {
- tag:'label',
- id:'DuraksCreateVipLabel',
- text:'VIP spēle',
- attr:{
- 'for':'DuraksCreateVip'
- }
- } ),
- // --- vip ---
- // +++ priv +++
- this.games.create.privIcon = mkE( {
- tag:'div',
- className:'DuraksPrivIcon DuraksPrivDIcon'
- } ),
- mkE( {
- tag:'div',
- id:'DuraksCreatePrivLabel',
- text:'Privāta istaba'
- } ),
- this.games.create.password = mkE( {
- tag:'input',
- id:'DuraksCreatePriv',
- prop:{
- type:'password',
- title:'Parole, ar kuru var pievienoties citi dalībnieki.',
- maxLength:10,
- disabled:true
- }
- } ),
- // --- priv ---
- // +++ skin ---
- this.games.create.skinIcon = mkE( {
- tag:'div',
- className:'DuraksSkinIcon DuraksSkinDIcon',
- title:'Galda krāsa'
- } ),
- this.games.create.skin = Duraks.skinDropDown(),
- mkE( {
- tag:'div',
- id:'DuraksCreateSkinLabel',
- text:'Galda krāsa'
- } ),
- // --- skin ---
- mkE( {
- tag:'div',
- id:'DuraksGamesCreateButton',
- className:'DuraksBorderRadius',
- prop:{
- onclick:function(){
- Duraks.rp.create();
- }
- },
- els:[
- mkE( {
- tag:'center',
- text:'Izveidot savu spēli'
- } )
- ]
- } ) // #DuraksGamesCreate
- ]
- } ) // #DuraksGamesCreate
- ]
- } ); // div.DuraksView
- this.show( this.games.node );
- Duraks.updateAch();
- }, // games
- game:function(){
- if( this.game.node ){
- this.show( this.game.node );
- return;
- }
- var $layers = this;
- this.game.node = mkE( {
- tag:'div',
- id:'DuraksGame',
- className:'DuraksView',
- els:[
- mkE( {
- tag:'div',
- id:'DuraksHeader',
- els:[
- this.game.online = mkE( {
- tag:'div',
- id:'DuraksGamesOnline'
- } ),
- this.game.gameCount = mkE( {
- tag:'div',
- id:'DuraksGamesCount'
- } ),
- mkE( {
- tag:'a',
- className:'DuraksHeaderHelp',
- text:'Noteikumi',
- href:'javscript:',
- prop:{
- onclick:function(){
- return Duraks.showHelp();
- }
- }
- } )
- ]
- } ),
- mkE( {
- tag:'div',
- id:'DuraksGameBg'
- } ),
- this.game.members = mkE( {
- tag:'div',
- id:'DuraksGameUsers'
- } ),
- mkE( {
- tag:'div',
- id:'DuraksGameChat',
- className:'DuraksBox DuraksBoxBorderRadius',
- els:[
- this.game.chatItems = mkE( {
- tag:'div',
- id:'DuraksGameChatItems'
- } ),
- mkE( {
- tag:'textarea',
- className:'DuraksBorderRadius',
- prop:{
- onkeyup:function( e ){
- if(!e){
- e = window.event;
- }
- if( !e.shiftKey && e.keyCode == 13 ){
- Duraks.rp.sendMsg( this.value );
- this.value = '';
- }
- }
- }
- } )
- ]
- } ), // div.DuraksView
- this.game.userCards = mkE( {
- tag:'div',
- id:'DuraksGameUserCards'
- } ),
- this.game.tableCards = mkE( {
- tag:'div',
- id:'DuraksGameTable'
- } ),
- this.game.suitImg = mkE( {
- tag:'img',
- id:'DuraksGameTrump'
- } ),
- this.game.trump = mkE( {
- tag:'div',
- id:'DuraksGameCards',
- els:[
- this.game.trumpImg = mkE( {
- tag:'img'
- } )
- ]
- } ),
- this.game.kava = mkE( {
- tag:'div',
- id:'DuraksGameKava',
- els:[
- this.game.cardCountNode = mkE( {
- tag:'div',
- id:'DuraksGameKavaCount',
- els:[
- this.game.cardCount = mkE( {
- tag:'div'
- } )
- ]
- } )
- ]
- } ),
- this.game.w52Node = mkE( {
- tag:'div',
- className:'Duraks52Icon',
- prop:{
- title:'Lielā kava'
- }
- } ),
- this.game.passNode = mkE( {
- tag:'div',
- className:'DuraksPassIcon',
- prop:{
- title:'Ar padošanu'
- }
- } ),
- this.game.vipNode = mkE( {
- tag:'div',
- className:'DuraksVipIcon',
- prop:{
- title:'VIP spēle'
- }
- } ),
- mkE( {
- tag:'div',
- id:'DuraksProfilePic',
- className:'DuraksBox DuraksBoxBorderRadius',
- els:[
- mkE( {
- tag:'img',
- prop:{
- src:Duraks.auth.small
- }
- } )
- ]
- } ),
- this.game.youCurrent = mkE( {
- tag:'div',
- id:'DuraksGameYouCurrent',
- text:'Tavs gājiens'
- } ),
- this.game.youNext = mkE( {
- tag:'div',
- id:'DuraksGameYouNext',
- text:'Tev jāsit'
- } ),
- this.game.takeUp = mkE( {
- tag:'div',
- id:'',
- className:'DuraksGameTakeUp',
- prop:{
- onclick:function(){
- this.style.display = 'none';
- Duraks.rp.takeUp();
- }
- },
- els:[
- mkE( {
- tag:'div',
- text:'Pacelt'
- } )
- ]
- } ), // takeUp
- this.game.done = mkE( {
- tag:'div',
- id:'',
- className:'DuraksGameTakeUp',
- prop:{
- onclick:function(){
- this.style.display = 'none';
- Duraks.rp.setDone( true );
- }
- },
- els:[
- mkE( {
- tag:'div',
- text:'Sists!'
- } )
- ]
- } ), // done
- this.game.timerNode = mkE( {
- tag:'div',
- id:'DuraksGameTimer'
- } )
- ]
- } );
- this.game.timerV = 30;
- setInterval( function(){
- if( $layers.game.timerV > 0 ){
- $layers.game.timerV --;
- }
- $layers.game.timerNode.innerHTML = ( $layers.game.timerV > 0 ? $layers.game.timerV : '' );
- }, 1000 );
- this.game.youCurrent.style.display = 'none';
- this.game.youNext.style.display = 'none';
- this.game.takeUp.style.display = 'none';
- this.game.done.style.display = 'none';
- this.show( this.game.node );
- }
- }, // layers
- gameItem:function( game ){
- var members;
- var re = mkE( {
- tag:'div',
- className:'DuraksGameItem',
- els:[
- members = mkE( {
- tag:'div',
- className:'DuraksGameItemMembers'
- } ),
- mkE( {
- tag:'div',
- className:'Duraks52Icon' + ( game.w52 ? '' : ' Duraks52DIcon' )
- } ),
- mkE( {
- tag:'div',
- className:'DuraksPassIcon' + ( game.pass ? '' : ' DuraksPassDIcon' )
- } ),
- mkE( {
- tag:'div',
- className:'DuraksPrivIcon' + ( game.priv ? '' : ' DuraksPrivDIcon' )
- } ),
- mkE( {
- tag:'div',
- className:'DuraksVipIcon' + ( game.vip ? '' : ' DuraksVipDIcon' )
- } ),
- mkE( {
- tag:'button',
- className:'DuraksGameItemJoinButton DuraksBorderRadius',
- text:'Pievienoties',
- prop:{
- onclick:function(){
- Duraks.rp.join( {
- id:game.id
- } );
- }
- }
- } ) // .DuraksGameItemJoinButton
- ]
- } );
- var m;
- for( var k in game.members ){
- m = game.members[ k ];
- mkE( {
- tag:'div',
- className:'DuraksGameItemMember',
- els:[
- mkE( {
- tag:'div',
- className:'DuraksGameItemMemberI DuraksBorderRadius DuraksBox',
- els:[
- mkE( {
- tag:'img',
- prop:{
- src:m.icon.replace( 'http://', '//' ),
- _drM:m,
- onclick:function(){
- Duraks.showAch( this._drM.uid );
- }
- }
- } )/*,
- mkE( {
- tag:'div',
- className:'DuraksGameItemMemberR DuraksBox DuraksBorderRadius',
- text:m.rate,
- style:{
- display:( game.vip ? '' : 'none' )
- }
- } )*/
- ]
- } ),
- mkE( {
- tag:'div',
- className:'DuraksGameItemMemberN',
- text:m.name
- } )
- ]
- } ).append( members );
- }
- var c = game.count - count( game.members );
- for( var i = 0; i < c; i ++ ){
- mkE( {
- tag:'div',
- className:'DuraksGameItemMember',
- els:[
- mkE( {
- tag:'div',
- className:'DuraksGameItemMemberI DuraksBorderRadius DuraksBox',
- els:[
- mkE( {
- tag:'img',
- prop:{
- src:Duraks.PIMG + 'i/profile/i_no_pic.png'
- }
- } )
- ]
- } ),
- mkE( {
- tag:'div',
- className:'DuraksGameItemMemberN',
- text:'?'
- } )
- ]
- } ).append( members );
- }
- return re;
- },
- tableMsg:function( par ){
- clearTimeout( this.tableMsg.timeout );
- this.tableMsg.close();
- this.tableMsg.node = mkE( {
- tag:'div',
- id:'DuraksGameTableMsg',
- className:'DuraksBox DuraksBoxBorderRadius',
- text:par.text
- } ).append( Duraks.layers.game.node );
- this.tableMsg.timeout = setTimeout( function(){
- Duraks.tableMsg.close();
- }, par.timeout || 2000 );
- },
- infoBox:{
- show:function( par ){
- if( ! par ){
- par = {};
- }
- this.close();
- this.overlay = mkE( {
- tag:'div',
- className:'DuraksView',
- id:'DuraksViewInfoBox',
- els:[
- mkE( {
- tag:'div',
- id:'DuraksViewInfoBoxBg'
- } ),
- this.content = mkE( {
- tag:'div',
- id:'DuraksViewInfoBoxC',
- className:'DuraksBox DuraksBorderRadius',
- els:[
- mkE( {
- tag:'div',
- id:'DuraksViewInfoBoxText',
- text:par.text || '...'
- } )
- ]
- } )
- ]
- } );
- if( par.beforeButtons ){
- par.beforeButtons.append( this.content );
- }
- if( par.buttons ){
- this.buttons = mkE( {
- tag:'div',
- id:'DuraksViewInfoBoxButton'
- } ).append( this.content );
- var button;
- for( var k in par.buttons ){
- button = par.buttons[ k ];
- mkE( {
- tag:'button',
- className:'DuraksBorderRadius',
- text:button.caption,
- prop:{
- onclick:button.onclick
- }
- } ).append( this.buttons );
- }
- }
- this.overlay.append( Duraks.node );
- },
- close:function(){
- if( this.overlay ){
- this.overlay.remove();
- }
- }
- }, // infoBox
- user:function( par ){
- this.node = mkE( {
- tag:'div',
- className:'DuraksMember',
- els:[
- mkE( {
- tag:'div',
- className:'DuraksMemberImg DuraksBorderRadius DuraksBox',
- els:[
- mkE( {
- tag:'img',
- prop:{
- src:par.icon
- }
- } )
- ]
- } ) // .DuraksMemberImg
- ]
- } );
- }, // user:function
- chatItem:function( par ){
- if( ! Duraks.layers.game.chatItems ){
- return;
- }
- var textNode;
- mkE( {
- tag:'div',
- els:[
- {
- tag:'span',
- className:'DuraksTP',
- text:'[TP] ',
- prop:{
- title:'Nosūdzēt Tautas policijā',
- onclick:function(){
- Duraks.rpc.send(
- 'chatTP',
- {
- id:par.id
- },
- function(re){
- Duraks.tableMsg( {
- text:'Nosūdzēts!',
- timeout:1000
- } );
- }
- );
- } // onclick
- },
- style:{
- display:( par.tp ? '' : 'none' )
- }
- }, // span.DuraksTP
- {
- tag:'b',
- text:par.name + ': '
- },
- textNode = mkE( {
- tag:'span',
- text:par.text
- } )
- ],
- style:{
- color:par.color || ''
- }
- } ).append( Duraks.layers.game.chatItems );
- textNode.innerHTML = nl2br( textNode.innerHTML );
- textNode.innerHTML = D.smileyReplace( textNode.innerHTML );
- Duraks.layers.game.chatItems.scrollTop = Duraks.layers.game.chatItems.scrollHeight;
- },
- showTop:function(){
- if( Duraks.top == 'month' ){
- this.rpc.send( 'mTop', {}, Duraks._showTopRe );
- } else {
- this.rpc.send( 'dTop', {}, Duraks._showTopRe );
- }
- //this.rpc.send( 'top', {}, Duraks.showTopRe );
- },
- _showTopRe:function( re ){
- clearNode( Duraks.layers.games.topListNode );
- var tbody, table = mkE( {
- tag:'table',
- els:[
- tbody = mkE( {
- tag:'tbody'
- } )
- ]
- } );
- var r;
- if( re.myrate && re.myplace > 20 ){
- re.scores.push( {
- i:D.ID,
- p:re.myplace,
- n:'Tu',
- sm:D.me.image.small,
- r:re.myrate
- } );;
- }
- for( var k in re.scores ){
- r = re.scores[k];
- mkE( {
- tag:'tr',
- els:[
- mkE( {
- tag:'td',
- text:r.p + '.'
- } ),
- mkE( {
- tag:'td',
- els:[
- mkE( {
- tag:'a',
- className:'DuraksTopListN',
- text:r.n,
- prop:{
- href:'/user/' + r.i,
- title:'<img src="' + r.sm + '" />',
- target:'_blank'
- }
- } )
- ]
- } ),
- mkE( {
- tag:'td',
- text:r.r
- } )
- ]
- } ).append( tbody );
- }
- table.append( Duraks.layers.games.topListNode );
- },
- restoreSkin:function(){
- Duraks.node.className = 'skin' + Duraks.layers.games.create.skin._value();
- },
- skinDropDown:function( par ){
- var onover = function(){
- Duraks.node.className = 'skin' + this._skin;
- };
- var options = [
- {
- value:0,
- els:[
- mkE( {
- tag:'img',
- src:D.PIMG + 'games/duraks/img/bg/icon_bckgr.jpg',
- prop:{
- onmouseover:function(){
- Duraks.node.className = '';
- },
- onmouseout:Duraks.restoreSkin
- }
- } )
- ]
- }
- ];
- for( var k in this.skinImgs ){
- options.push( {
- value:Number(k),
- //text:this.skinImgs[k]
- els:[
- mkE( {
- tag:'img',
- src:D.PIMG + 'games/duraks/img/bg/icon_' + this.skinImgs[k],
- prop:{
- onmouseover:onover,
- onmouseout:Duraks.restoreSkin,
- _skin:k
- }
- } )
- ]
- } );
- }
- return this.dropDown( {
- id:'DuraksCreateSkin',
- disabled:true,
- options:options,
- onchange:function(v){
- Duraks.node.className = 'skin' + v.value;
- D.Cookie.create( 'skin', v.value, 7, '/games/duraks/' )
- },
- value:Number( D.Cookie.read('skin') ) || 0
- } );
- },
- dropDown:function( par ){
- var list, inp, overlay, value;
- par = par || {};
- par.options = par.options || [];
- var to;
- var re = mkE( {
- tag:'div',
- className:'DuraksDropDown',
- id:par.id || '',
- prop:{
- onclick:function(){
- inp.focus();
- }
- },
- els:[
- mkE( {
- tag:'div',
- className:'DuraksDropDownBorder'
- } ),
- inp = mkE( {
- tag:'input',
- prop:{
- onfocus:function(){
- clearTimeout(to);
- $(list).slideDown('fast');
- },
- onblur:function(){
- to = setTimeout( function(){
- $(list).slideUp('fast');
- }, 300 );
- }
- }
- } ),
- value = mkE( {
- tag:'div',
- className:'DuraksDropDownValue'
- } ),
- mkE( {
- tag:'div',
- className:'DuraksDropDownArrow'
- } ),
- list = mkE( {
- tag:'div',
- className:'DuraksDropDownList',
- style:{
- display:'none'
- }
- } ),
- overlay = mkE( {
- tag:'div',
- className:'DuraksDropDownDisable',
- style:{
- display:'none'
- }
- } )
- ]
- } );
- var options = [];
- var option;
- for( var k in par.options ){
- option = par.options[k];
- var optNode = mkE( {
- tag:'div',
- className:'DuraksDropDownOption',
- text:option.text || '',
- prop:{
- onclick:function(e){
- D.stopPropagation(e);
- list.style.display = 'none';
- if( par.onchange ){
- par.onchange( this._option );
- re._value( this._option.value )
- }
- },
- _option:option
- },
- els:option.els
- } ).append(list);
- options.push(optNode);
- }
- re._disable = function(v){
- inp.disabled = v;
- overlay.style.display = ( v ? '' : 'none' );
- };
- if( par.disabled ){
- re._disable(true);
- }
- re._value = function(v){
- if( typeof v == 'undefined' ){
- return this._val;
- }
- for( var k in options ){
- if( v == options[k]._option.value ){
- this._val = v;
- clearNode(value);
- var newOption = options[k].cloneNode(true);
- newOption.onclick = function(){};
- value.appendChild(newOption);
- }
- }
- return this._val;
- };
- if( typeof par.value != 'undefined' ){
- re._value( par.value );
- }
- return re;
- }
- }; // Duraks
- Duraks.tableMsg.close = function(){
- if( Duraks.tableMsg.node ){
- Duraks.tableMsg.node.remove();
- delete Duraks.tableMsg.node;
- }
- };
- Duraks.reloadCSS = function(){
- var links = document.getElementsByTagName( 'link' );
- var t = ( new Date() ).getTime();
- for( var i = 0; i < links.length; i ++ ){
- if( links.item( i ).type == 'text/css' ){
- links.item( i ).href = links.item( i ).href.split( '?' )[ 0 ] + '?' + t;
- }
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement