// +++ MaksajumuPoga +++
Draugiem.MaksajumuPoga = function( prefix, keyword, num, p_value ){
	this.p_value = p_value;
	this.prefix = prefix;
	this.keyword = keyword;
	this.num = num;
	if( ! Draugiem.MaksajumuPoga.rpc ) Draugiem.MaksajumuPoga.rpc = new RPC( '/services/rq/app.php' );
};
Draugiem.MaksajumuPoga.hid = {};

Draugiem.MaksajumuPoga.prototype.pay = function( p_value ){
	var MaksajumuPoga = this;
	this.rpc = Draugiem.MaksajumuPoga.rpc;
	document.getElementById( 'MaksajumuPoga_' + this.prefix + '_button' ).style.display = 'none';
	document.getElementById( 'MaksajumuPoga_' + this.prefix + '_loading' ).style.display = '';
	var node = document.getElementById( 'MaksajumuPoga_' + this.prefix + '_auto' );
	this.rpc.send(
		'MaksajumuPogaPay',
		{
			keyword:this.keyword,
			num:this.num,
			auto:( node ? node.checked : false ),
			p_value:this.p_value
		},
		function( re ){
			if( re.error ){
				document.getElementById( 'MaksajumuPoga_' + MaksajumuPoga.prefix + '_loading' ).style.display = 'none';
			}
			var errorNode = document.getElementById( 'MaksajumuPoga_' + MaksajumuPoga.prefix + '_error' )
			switch( re.error ){
				case 2:
					if( re.payError == 6 ){
						errorNode.innerHTML = xGlobal[ 'MaksajumuPoga day limit' ] || 'Day limit';
					}					
					break;
				case 4:
					return MaksajumuPoga.error4( re );
				case 5:
					return MaksajumuPoga.error5( re );
				case 6:
					return MaksajumuPoga.error6( re );
			}			
			if( re.error ){
				errorNode.style.display = '';
				var spans = errorNode.getElementsByTagName( 'span' );
				if( spans[ 0 ] ){
					spans[ 0 ].innerHTML = '#' + re.error;
				}
				return;
			}
			setTimeout( function(){
				MaksajumuPoga.sms_payment_id = re.sms_payment_id;
				MaksajumuPoga.getStatus();
			}, 5000 );
		}
	);
};

Draugiem.MaksajumuPoga.prototype.getStatus = function(){
	this.rpc.send(
		'MaksajumuPogaOk',
		{
			sms_payment_id:this.sms_payment_id
		},
		Draugiem.MaksajumuPoga.re_MaksajumuPogaok,
		this
	);	
};

Draugiem.MaksajumuPoga.re_MaksajumuPogaok = function( re, par ){
	if( re.error ){
		document.getElementById( 'MaksajumuPoga_' + par.prefix + '_loading' ).style.display = 'none';
		var errorNode = document.getElementById( 'MaksajumuPoga_' + par.prefix + '_error' )
		errorNode.style.display = '';
		if( re.error == 'NOTCHARGED' ){
			errorNode.innerHTML = 'J\u016bsu kont\u0101 nepietieko\u0161s kred\u012bts vai \u0161is pakalpojums nav pieejams \u0161im oper\u0101toram!';
		}
		return;
	}
	if( re.ok ){
		document.getElementById( 'MaksajumuPoga_' + par.prefix + '_loading' ).style.display = 'none';
		document.getElementById( 'MaksajumuPoga_' + par.prefix + '_ok' ).style.display = '';
		if( window[ 'MaksajumuPoga_callback_' + par.prefix ] ) window[ 'MaksajumuPoga_callback_' + par.prefix ]();
	} else {
		setTimeout( function(){
			par.getStatus();
		}, 3000 );
	}
};

Draugiem.MaksajumuPoga.prototype.stop = function(){
	document.getElementById( 'MaksajumuPoga_' + this.prefix + '_stop' ).style.display = 'none';
	Draugiem.MaksajumuPoga.rpc.send(
		'maksajumuPogaStop',
		{
			keyword:this.keyword
		},
		Draugiem.MaksajumuPoga.re_stop,
		this
	);
};

Draugiem.MaksajumuPoga.re_stop = function( re, par ){
	if( window[ 'MaksajumuPoga_callback_' + par.prefix ] ) window[ 'MaksajumuPoga_callback_' + par.prefix ]();
};

Draugiem.MaksajumuPoga.prototype.error4 = function( re ){
	var MaksajumuPoga = this;
	var node = document.getElementById( 'MaksajumuPoga_' + this.prefix + '_errorW' );
	node.className = 'bx warning';
	node.style.display = '';
	clearNode( node );
	mkE( {
		tag:'div',
		els:[
			mkE( {
				tag:'b',
				text:re.smsUser.phone
			} ),
			mkE( {
				tag:'span',
				text:' ' + re.lang[ 'poga_tavs_nr' ]
			} )
		]
	} ).append( node );
	var codeInput, failText;	
	mkE( {
		tag:'div',
		els:[
			mkE( {
				tag:'button',
				text:re.lang[ 'poga_yes' ],
				prop:{
					onclick:function(){
						clearNode( node );
						mkE( {
							tag:'div',
							els:[
								mkE( {
									tag:'div',
									text:re.lang[ 'poga_kad_sanem_kodu' ]
								} ),
								failText = mkE( {
									tag:'div',
									text:re.lang[ 'poga_nepareizs_kods' ],
									prop:{
										style:{
											fontWeight:'bold',
											visibility:'hidden'
										}
									}
								} ),
								mkE( {
									tag:'div',
									els:[
										mkE( {
											tag:'span',
											text:re.lang[ 'poga_kods' ] + ': '
										} ),
										codeInput = mkE( {
											tag:'input',
											prop:{
												maxLength:8,
												style:{
													width:'50px'
												}
											}
										} ),
										mkE( {
											tag:'button',
											text:re.lang[ 'poga_accept' ],
											prop:{
												onclick:function(){
													MaksajumuPoga.rpc.send(
														'maksajumuPogaCheckAcceptCode',
														{
															code:codeInput.value
														},
														function( re, par ){
															codeInput.value = '';
															if( re.ok ){
																node.style.display = 'none';
																document.getElementById( 'MaksajumuPoga_' + MaksajumuPoga.prefix + '_button' ).style.display = '';
																MaksajumuPoga.pay();
															} else {
																failText.style.visibility = '';
																setTimeout( function(){
																	failText.style.visibility = 'hidden';
																}, 5000 );
															}
														}
													);
												} // onclick
											}
										} ) // button
									]
								} )
							]
						} ).append( node );
						MaksajumuPoga.rpc.send(
							'maksajumuPogaAcceptCode',
							{},
							function( re, par ){
							}
						);
					}
				}
			} ),
			mkE( {
				tag:'span',
				text:' '
			} ),
			mkE( {
				tag:'button',
				text:re.lang[ 'poga_no' ],
				prop:{
					onclick:function(){
						MaksajumuPoga.rpc.send(
							'maksajumuPogaDeletePhone',
							{},
							function( re, par ){
								MaksajumuPoga.error5( re );
							}
						);
					}
				}
			} )
		]
	} ).append( node );
};

Draugiem.MaksajumuPoga.prototype.error5 = function( re ){
	var MaksajumuPoga = this;
	var node = document.getElementById( 'MaksajumuPoga_' + this.prefix + '_errorW' );
	clearNode( node );
	node.style.display = '';
	node.className = 'bx';
	mkE( {
		tag:'div',
		style:{
			textAlign:'left'
		},
		prop:{
			innerHTML:re.lang[ 'register_enter_phone' ]
		}
	} ).append( node );
	var phoneInput;
	mkE( {
		tag:'div',
		style:{
			textAlign:'left',
			marginTop:'10px'
		},
		els:[
			phoneInput = mkE( {
				tag:'input',
				className:'inp',
				prop:{
					size:20,
					value:'+371 '
				}
			} ),
			mkE( {
				tag:'button',
				text:re.lang[ 'register' ],
				prop:{
					onclick:function(){
						Draugiem.MaksajumuPoga.rpc.send(
							'sendPhoneAcceptCode',
							{
								phone:phoneInput.value
							},
							function( re ){
							}
						);
						clearNode( node );
						mkE( {
							tag:'div',									
							prop:{
								innerHTML:re.lang[ 'confirm_code' ]
							}
						} ).append( node );
						var codeInput;
						mkE( {
							tag:'div',
							els:[
								codeInput = mkE( {
									tag:'input',
									className:'inp',
									style:{
										width:'50px'
									},
									prop:{
										maxLength:8
									}
								} ),
								mkE( {
									tag:'span',
									text:' '
								} ),
								mkE( {
									tag:'button',
									text:re.lang[ 'register' ],
									prop:{
										onclick:function(){
											Draugiem.MaksajumuPoga.rpc.send(
												'checkPhoneAcceptCode',
												{
													phone:phoneInput.value,
													code:codeInput.value
												},
												function( re ){
													if( re.ok ){
														clearNode( node );
														node.style.display = 'none';
														MaksajumuPoga.pay();
														return;
													}
													Draugiem.blink( {
														node:codeInput
													} );
													codeInput.value = '';
												}
											);
										}
									}
								} )
							]
						} ).append( node );						
					} // onclick
				}
			} )
		]
	} ).append( node );
};

Draugiem.MaksajumuPoga.prototype.error6 = function( re ){
	var MaksajumuPoga = this;
	var node = document.getElementById( 'MaksajumuPoga_' + this.prefix + '_errorW' );
	clearNode( node );
	node.style.display = '';
	node.className = 'bx warning';
	node.innerHTML = re.lang[ 'poga_wrong_oper' ];
};
// --- MaksajumuPoga ---


// PaymentButton - +/- universaalais risinaajums maksaajumu pogaam - toposhaa mobilly maksaajumu poga, draugiem nauda maksaajumu poga, vajadziibas gadiijumaa arii citas.

Draugiem.PaymentButton = function(  prefix, pm, service, amount, cid ){
	this.prefix = prefix;
	this.pm = pm;
	this.service = service;
	this.amount = amount;
	this.cid=cid;
	if( ! Draugiem.PaymentButton.rpc ) Draugiem.PaymentButton.rpc = new RPC( '/services/rq/paymentbutton.php' );
};
Draugiem.PaymentButton.hid = {};
Draugiem.PaymentButton.prototype.pay = function(){
	try{
		var PaymentButton = this;
		this.rpc = Draugiem.PaymentButton.rpc;
		document.getElementById( 'PaymentButton_' + this.prefix + '_button' ).style.display = 'none';
		document.getElementById( 'PaymentButton_' + this.prefix + '_loading' ).style.display = '';
		document.getElementById( 'PaymentButton_' + this.prefix + '_error' ).style.display = 'none';
		document.getElementById( 'PaymentButton_' + this.prefix + '_ok' ).style.display = 'none';
		var node = document.getElementById( 'PaymentButton_' + this.prefix + '_auto' );
		this.rpc.send(
			'PaymentButtonPay',
			{
				service:this.service,
				pm:this.pm,
				auto:( node ? node.checked : false ),
				amount:this.amount,
				cid:this.cid
			},
			function( re ){
				document.getElementById('PaymentButton_' + PaymentButton.prefix + '_loading' ).style.display = 'none';
				if (re.status){
					document.getElementById('PaymentButton_' + PaymentButton.prefix + '_ok' ).style.display = '';
					window.setTimeout(function(){
						if( window[ 'PaymentButton_callback_' + PaymentButton.prefix ] ) window[ 'PaymentButton_callback_' + PaymentButton.prefix ]();
					},1500);
				}else{
					document.getElementById('PaymentButton_' + PaymentButton.prefix + '_error' ).style.display = '';
				}
				
			}
		);
	}catch(e){
		alert(e);
	}
};

Draugiem.PaymentButton.prototype.stop = function(){
	document.getElementById( 'PaymentButton_' + this.prefix + '_stop' ).style.display = 'none';
	Draugiem.PaymentButton.rpc.send(
		'PaymentButtonStop',
		{
			service:this.service
		},
		function (re, par){
			D.console.info(re);
		}
	);
};

// +++ serviceDr +++
D.services = {
	
	ROOT:'services/',
	
	SERVICES_DR_ERROR_NO_MONEY:1,
	SERVICES_DR_ERROR_TRANS:2,

	rpc:new RPC( '/services/rq/app.php' ),
	
	pb:function( name, par ){
		if( ! par ){
			par = {};
		}
		var get = new Get();
		get.add( 'service', name );
		if( par.uid ){
			get.add( 'uid', par.uid );
		}
		if( par.callback ){
			get.add( 'callback', par.callback );
		}
		if( par[ 'return' ] ){
			get.add( 'return', par[ 'return' ] );
		}
		if( par.defaultTab ){
			get.add( 'defaultTab', par.defaultTab );
		}
		var p = { width:310 };
		if( par.onClose ){
			p.onClose = par.onClose;
		}
		InfoBox.open( '/services/rq/pb.php?' + get.str(), p );
		return false;
	},
	
	changeCreditCount:function( re ){
		if( re.countHTML ){
			var n;
			if( n = document.getElementById( 'servicesRightTotal' ) ){
				n.innerHTML = re.countHTML;
			}
			if( n = document.getElementById( 'headerCredits' ) ){
				n.innerHTML = re.countHTML;
			}
		}
		if( typeof re.count != 'undefined' ){
			D.services.total = re.count;
		}
	},

	blockPay:function( par ){
		par.customId = par.customId || 0;
		if( D.services.total < par.price ){			
			this.PBshowBuy( par );
			return false;
		}
		var pay = document.getElementById( 'servicesPBPay_' + par.name );
		var loading = document.getElementById( 'servicesPBLoading_' + par.name );
		var ok = document.getElementById( 'servicesPBOk_' + par.name );
		pay.style.display = 'none';		
		loading.style.display = '';
		var autoCheckbox = document.getElementById( 'servicesPBauto_' + par.name );
		D.services.rpc.send(
			'buyService',
			{
				name:par.name,
				customId:par.customId,
				uid:par.uid || 0,
				h:par.h,
				auto:autoCheckbox ? autoCheckbox.checked : false
			},
			function( re ){				
				D.services.changeCreditCount( re );
				var node = document.getElementById( 'servicesPBYouHave_' + par.name );
				if( node && re.countHTML ){
					node.innerHTML = re.countHTML;
				}
				loading.style.display = 'none';
				if( re.ok ){
					ok.style.display = '';
					if( par.callback ){
						setTimeout( function(){
							eval( par.callback );
						}, 1000 );					
					}
				}
				if( re.errorText ){
					var error = document.getElementById( 'servicesPBError_' + par.name );
					var errorText = document.getElementById( 'servicesPBErrorText_' + par.name );
					error.style.display = '';
					errorText.innerHTML = re.errorText;
				}
				if( re.errorNr == 1 ){
					this.PBshowBuy( par );
				}
			} // function
		);
	},
	
	blockPayApi:function( par ){
		if( D.services.total < par.price ){			
			this.PBshowBuy( par );
			return false;
		}
		var pay = document.getElementById( 'servicesPBPay_api' );
		var loading = document.getElementById( 'servicesPBLoading_api' );
		var ok = document.getElementById( 'servicesPBOk_api' );
		pay.style.display = 'none';		
		loading.style.display = '';
		D.services.rpc.send(
			'buyServiceApi',
			{
				id:par.id
			},
			function( re ){
				D.services.changeCreditCount( re );
				loading.style.display = 'none';
				if( re.ok ){
					ok.style.display = '';
					if( par.callback ){
						setTimeout( function(){
							eval( par.callback );
						}, 1000 );					
					}
				}
				if( re.errorText ){
					var error = document.getElementById( 'servicesPBError_api' );
					var errorText = document.getElementById( 'servicesPBErrorText_api' );
					error.style.display = '';
					errorText.innerHTML = re.errorText;
				}
				if( re.errorNr == 1 ){
					this.PBshowBuy( par );
				}
			} // function
		);
	},
	
	PBStop:function( pak, par ){
		D.services.rpc.send(
			'SMSAuto',
			{
				pak:pak,
				add:false
			},
			function( re ){
				D.services.PBChangeCredits( par );
				D.services.PBChangeSMS( par );
				var add = document.getElementById( 'servicesAddAuto_' + par.name );
				if( add ){
					add.style.display = '';
				}
				var stop = document.getElementById( 'servicesStopAuto_' + par.name );
				if( stop ){
					stop.style.display = 'none';
				}
			}
		);
		return false;
	},
	
	PBshowBuy:function( par ){
		par.redir = par.redir || document.location.href;
		var get = new Get();		
		get.add( 'name', par.name );
		get.add( 'customId', par.customId );
		get.add( 'redir', par.redir );
		get.add( 'callback', par.callback );
		//get.add( 'callback', 'alert(1);' );
		if( par.uid ){
			get.add( 'uid', par.uid );
		}
		if( par.buy ){
			get.add( 'buy' );
		}
		var noCreditUrl = '/services/rq/no_credits_buy.php?' + get.str();
		D.smallPopUp.open( noCreditUrl, { title:par.caption } );
		return false;
	},
	
	PBChangeCredits:function( par ){
		var get = new Get();
		get.add( 'service[name]', par.name );
		get.add( 'service[cc]', par.cc );
		get.add( 'service[uid]', par.uid );
		get.add( 'service[customId]', par.customId );
		get.add( 'service[callback]', par.callback );
		get.add( 'service[return]', par[ 'return' ] );		
		if( par.count ){
			get.add( 'service[count]', par.count );
		}
		var url = '/services/rq/pb_credit.php?' + get.toStr();
		rq( url, 'servicePB_credit_' + par.name, { overlay:true } );
		return false;
	},
	
	PBCreditAuto:function( el, pak, par ){
		D.services.rpc.send(
			'SMSAuto',
			{
				pak:pak,
				add:el.checked,
				type:'credit'
			},
			function( re ){
				D.services.PBChangeCredits( par );
				D.services.PBChangeSMS( par );
				var add = document.getElementById( 'servicesAddAuto_' + par.name );
				if( add ){
					add.style.display = 'none';
				}
				var stop = document.getElementById( 'servicesStopAuto_' + par.name );
				if( stop ){
					stop.style.display = '';
				}
			}
		);
	},
	
	PBSMSAuto:function( el, pak, par ){
		D.services.rpc.send(
			'SMSAuto',
			{
				pak:pak,
				add:el.checked
			},
			function( re ){
				D.services.PBChangeCredits( par );
				D.services.PBChangeSMS( par );
				var add = document.getElementById( 'servicesAddAuto_' + par.name );
				if( add ){
					add.style.display = 'none';
				}
				var stop = document.getElementById( 'servicesStopAuto_' + par.name );
				if( stop ){
					stop.style.display = '';
				}
			}
		);
	},
	
	PBChangeSMS:function( par ){
		var get = new Get();
		get.add( 'service[name]', par.name );
		get.add( 'service[cc]', par.cc );
		get.add( 'service[uid]', par.uid );
		get.add( 'service[customId]', par.customId );
		get.add( 'service[callback]', par.callback );
		get.add( 'service[return]', par[ 'return' ] );		
		if( par.count ){
			get.add( 'service[count]', par.count );
		}
		var url = '/services/rq/pb_sms.php?' + get.toStr();
		rq( url, 'servicePB_sms_' + par.name, { overlay:true } );
		return false;
	},
	
	PBShowSMS:function( name ){
		D.smallPopUp.close();		
		var node = document.getElementById( 'servicePB_sms_' + name );
		if( ! node ){
			return false;
		}
		node.style.display = '';
		document.getElementById( 'servicePB_credit_' + name ).style.display = 'none';
		return false;
	},
	
	PBShowCredits:function( name ){
		D.smallPopUp.close();
		var node = document.getElementById( 'servicePB_sms_' + name );
		if( ! node ){
			return false;
		}
		node.style.display = 'none';
		document.getElementById( 'servicePB_credit_' + name ).style.display = '';
		return false;
	},
	
	buyCreditsSubmit:function( name, par ){
		if( ! par ){
			par = {};
		}
		var form = document.getElementById( 'servicesBuyCreditsForm_' + name );
		if( ! form ){
			return false;
		}
		D.loadingOverlay( 'servicesBuy' + name );
		var data = D.ajaxPostData( form );
		var get = new Get();
		get.add( 'servicesBuy[redir]', data[ 'servicesBuy[redir]' ] );
		get.add( 'servicesBuy[type]', data[ 'servicesBuy[type]' ] );
		get.add( 'servicesBuy[price]', data[ 'servicesBuy[price]' ] );
		get.add( 'servicesBuy[cur]', data[ 'servicesBuy[cur]' ] );
		var wName = 'draugiemServicesWindow' + ( new Date() ).getTime();
		var w = D.newWindow( '/services/rq/payment_cc_form.php?' + get.str(), wName, {width:850,height:600,toolbar:0} );
		form.target = wName;
		var interval = setInterval( function(){
			if( ! w.closed ){
				try{
					w.document;
				}catch(e){
					return;
				}
				if( w.document.location.href.indexOf( 'payment_cc_form.php' ) != -1 ){
					return;
				}
			}
			clearInterval( interval );									
			w.close();
			window.focus();
			var trid = Number( data[ 'servicesBuy[trid]' ] );
			if( trid ){
				D.services.rpc.send(
					'buyServiceTransaction',
					{
						id:trid
					},
					function( re ){
						var node = document.getElementById( 'servicesPBYouHave_' + name );
						if( node && re.countHTML ){
							node.innerHTML = re.countHTML;
						}
						if( re.ok && par.callback ){
							eval( par.callback );
						}
						D.removeLoadingOverlay( 'servicesBuy' + name );
					}
				);
				return;
			}
			var apitrid = Number( data[ 'servicesBuy[apitrid]' ] );
			if( apitrid ){
				D.services.rpc.send(
					'buyServiceApi',
					{
						id:apitrid
					},
					function( re ){
						var node = document.getElementById( 'servicesPBYouHave_api' );
						if( node && re.countHTML ){
							node.innerHTML = re.countHTML;
						}
						if( re.ok ){
							var node = document.getElementById( 'servicesPBOk_api' );
							if( node ){
								node.style.display = 'block';
							}
							var node = document.getElementById( 'servicesPBBuyCredits_api' );
							if( node ){
								node.style.display = 'none';
							}
						}
						if( re.ok && par.callback ){
							eval( par.callback );
						}
						D.removeLoadingOverlay( 'servicesBuy' + name );
					}
				);
				return;
			}
			if( par.callback ){
				eval( par.callback );
			}
			D.removeLoadingOverlay( 'servicesBuy' + name );			
		}, 500 );
		D.smallPopUp.close();		
		return false;
	}
	
};