Object.extend(document, {
	isDocReady: false,
	isDocLoaded: false,
	ready: function(fn) { Event.observe(document, "doc:ready", fn); },
	load: function(fn) { Event.observe(document, "doc:loaded", fn); }
});

Event.observe(document, "dom:loaded", function() {
	Event.fire(document, "doc:ready");
	document.isDocReady = true;
	if (document.isDocLoaded)
		Event.fire(document, "doc:loaded");
});

Event.observe(window, "load", function() {
	document.isDocLoaded = true;
	if (!document.isDocReady) 
		return;
	Event.fire(document, "doc:loaded");
});


function showStat( id, from, to ) {
	if( from == "" ||  to == "" || !$(  'statPeriod_' + id  ) ) {
		return false;
	}
	
	
	if( $(  'statPeriod_' + id  ).getStyle( 'display' ) == 'none' ) {
		var casino = 0;
		if( $('casino')  ) {
			casino = $('casino').options[$('casino').selectedIndex].value;
		}
		
		var profile = 0;
		if( $('profile')  ) {
			profile = $('profile').options[$('profile').selectedIndex].value;
		}
		
		new Ajax.Request( '/ajax_controller.php', {
	        method: 'post',
	        parameters: {
				m: 'ModStat',
				action: 'getPeriodStat',
				from: from,
				to: to,
				casino: casino,
				profile:  profile
	        },
	        onComplete: function( transport ){
	        	var response = transport.responseText.evalJSON();
	        	if( response.success ) {
	        		$(  'statPeriod_' + id  ).update( response.data );
	        	}else {
	        		$(  'statPeriod_' + id  ).update( response.info );
	        	}
	        	new Effect.SlideDown( 'statPeriod_' + id );
	        }
	    } );
	}else {
		new Effect.SlideUp( 'statPeriod_' + id );
	}
	
}


function showDetailStat( date ) {
	if( !document.isDocReady )  {
		return false;
	}
	
	if( !$( 'statDetail' ) ) {
		return false;
	}
	
	var loadingImage = new Image();
	loadingImage.src = "/images/loading.gif";
	loadingImage.className = 'loading';
	
	$( 'detailData' ).appendChild( loadingImage );
	$( 'statDetail' ).style.display = "none";
	$( 'detailData' ).style.display = "block";
	
	var casino = 0;
	if( $('casino')  ) {
		casino = $('casino').options[$('casino').selectedIndex].value;
	}
	
	new Ajax.Request( '/ajax_controller.php', {
        method: 'post',
        parameters: {
			m: 'ModStat',
			action: 'getDetailDay',
			date: date,
			casino: casino
        },
        onComplete: function( transport ){
        	var response = transport.responseText.evalJSON();
        	if( response.success ) {
        		
	        	$( 'detailData' ).update( "<div class=\"showLink\"><a href='javascript:void(0);' onclick='document.getElementById(\"detailData\").style.display=\"none\"; document.getElementById(\"statDetail\").style.display=\"\";'><span>&laquo;back</span></a></div>" + 	response.data ); 
        	}else {
        		$( 'detailData' ).update( "<div class=\"showLink\"><a href='javascript:void(0);' onclick='document.getElementById(\"detailData\").style.display=\"none\"; document.getElementById(\"statDetail\").style.display=\"\";'><span>&laquo;back</span></a></div>" );
        	}
        }
    } );
}

function showProfiles() {
	if( !$('promoContent') && !$('profiles') ) {
		return false;
	}
	$('promoContent').hide();
	$('profiles').show();
}


function loadBanners( profile, casino ) {
	if( !document.isDocReady )  {
		return false;
	}
	
	if( !$('promoContent') && !$('profiles') ) {
		return false;
	}
	
	$( 'profiles' ).hide();
	$('promoContent').update("");
	var loadingImage = new Image();
	loadingImage.src = "/images/loading.gif";
	loadingImage.className = 'loading';
	$( 'promoContent' ).appendChild( loadingImage );
	$('promoContent').show();
	
	var url = "/ajax_controller.php";
	new Ajax.Request( url, {
		method: 'get',
		parameters: {
			m: "ModPromo",
			action:  "getBannersList",
			pid: profile,
			casino: casino
		},
		onSuccess: function( transport ) {
			var responseJS = transport.responseText.evalJSON();
			$('promoContent').update( responseJS );
		},
		onFailure: function( transport ) {
			$('promoContent').update( "data loading error" );
		}
	});
	
}





function ticketAddForm() {
	new Ajax.Request( '/support/tickets/new', {
        method: 'post',
        parameters: {
        },
        onComplete: function( transport ){
        	new UI.Window({
        		theme:  "mac_os_x", 
                shadow: true, 
                width:  780, 
                height: 345}).center().setContent( transport.responseText ).show();
    	}
    } );
}


function ticketMessages( id ) {
	new Ajax.Request( '/support/tickets/messages/', {
        method: 'get',
        parameters: {
			'id': id
        },
        onComplete: function( transport ){
        	new UI.Window({
        		theme:  "mac_os_x", 
                shadow: true, 
                width:  900, 
                height: 500}).center().setContent( transport.responseText ).show();
        }
    } );
}

function showReplyForm( id ) {
	var b = $( 'reply_' + id ); 
	if( b.getStyle( 'display'  ) == 'none' ) {
		new Effect.SlideDown( b );
	}else {
		new Effect.SlideUp( b );
	}
}

function addReplyMessage( form ) {
	form.disable();
	
	 	new Ajax.Request( '/ajax_controller.php', {
        method: 'post',
        parameters: {
	 		'm': 'ModSupport',
	 		'action': 'addReplyMessage',
			'id': form.id.value,
			'parentId': form.parentId.value,
			'message': form.message.value
        },
        onComplete: function( transport ){
        	form.enable();
        	form.hide();
        	var response = transport.responseText.evalJSON();
            if( response.success ) {
            	var list = form.parentNode.getElementsByTagName( 'ul' );
            	var li = document.createElement( 'li' );
            	li.innerHTML = "<b>Мой ответ: </b>" + form.message.value;
            	list[0].appendChild( li );
            }else {
            	form.parentNode.appendChild( document.createTextNode( response.info ) );           	
            }
        },
        onFailure: function( transport ) {
			form.parentNode.appendChild( document.createTextNode( 'Request Error.' ) );
        }
    } );
	
}



function selectProfileField( id  ) {
	var input = $( 'profile_' + id );
	if( input ) {
		input.enable();
		input.focus();
	}
}

function updateProfile( event ) {
	var obj;
	if( event.srcElement ) {
		obj = event.srcElement;
	}else {
		obj = event.element();
	}
	
	//if( event.keyCode == Event.KEY_RETURN ) {
		var link = $(obj).parentNode.select('a')[0];
		var oldClass = link.className;
		link.className = 'loading_action';
		
		new Ajax.Request( '/ajax_controller.php', {
	        method: 'post',
	        parameters: {
	                m: 'ModPromo',
	                action: 'saveProfile',
	                id: obj.id,
	            	value: obj.value 
	        },
	        onSuccess: function( transport ){
	            var responseJS = transport.responseText.evalJSON();
	            if( responseJS.success ) {
	            	if( responseJS.data.length > 0 ) {
	            		obj.value = "";
	            		$('profilesList').innerHTML += responseJS.data;
	            	}
	            }
	            obj.disable();
	            obj.blur();
	            link.className = oldClass;
	        },
	    	onFailure: function( transport ){
	            //alert('Epic fail!');
	            link.className = oldClass;
	        }
	    } );
	//}
}


function showList( id ) {
	var sub = $( 'sub_' + id );
	
	if( sub ) {
		if( sub.style.display == 'none' ) {
			//sub.show();
			new Effect.SlideDown( sub );
		}else {
			new Effect.SlideUp( sub );
		}
	}
}


function showBannerCode( id ) {
	var b = $( 'bannerCode_' + id );
	
	if( b ) {
		if( b.getStyle( 'display' ) == "none" ) {
			new Effect.Appear( b );
		}else {
			new Effect.Fade( b );
		}
	}
} 

function showForm(id) {
	var b = $( id );
	
	if( b ) {
		if( b.getStyle( 'display' ) == "none" ) {
			new Effect.SlideDown( b );
		}else {
			new Effect.SlideUp( b );
		}
	}	
}


function payoutSubmit() {
	$('orderSubmit').disable();
	new Ajax.Request( '/ajax_controller.php', {
	    method: 'post',
	    parameters: {
			m: 'ModPayouts',
			action: 'payoutSubmit',
			amount: $F('amount'),
			currency: $F('currency'),
			comments: $F('comments')
	    },
	    onSuccess: function( transport ){
	    	var response = transport.responseText.evalJSON();
	    	$('messages').update( response.info );
	        if( response.success ) {
	        	$('messages').style.color = '#00bb00';
	        	location.reload();
	        }else  {
	        	$('messages').style.color = '#bb0000';
	        }
	        
	        $('orderSubmit').enable();
	    },
	    onFailure: function( transport ) {
	    	$('orderSubmit').enable();
	    }
	} );
}

function payoutTypeSubmit() {
	$('poTypeSubmit').disable();
	var mode = "";
	if( $('po_type1') && $('po_type1').checked ) {
		mode = $('po_type1').value; 
	}
	if( $('po_type2') && $('po_type2').checked ) {
		mode = $('po_type2').value; 
	}
	if( $('po_type3') && $('po_type3').checked ) {
		mode = $('po_type3').value; 
	}
	
	new Ajax.Request( '/ajax_controller.php', {
	    method: 'post',
	    parameters: {
			m: 'ModPayouts',
			action: 'updatePayoutType',
			mode: mode
	    },
	    onSuccess: function( transport ){
	    	var response = transport.responseText.evalJSON();
	    	$('messages').update( response.info );
	        if( response.success ) {
	        	$('messages').style.color = '#00bb00';
	        	//showForm('payoutTypeForm');
	        	window.location = "/cash";
	        }else  {
	        	$('messages').style.color = '#bb0000';
	        }
	        $('poTypeSubmit').enable();
	    },
	    onFailure: function( transport ) {
	    	$('poTypeSubmit').enable();
	    }
	} );
}


function selectRotatorField( id  ) {
	var input = $( 'rotator_' + id );
	if( input ) {
		input.enable();
		input.focus();
	}
}


function updateRotator( event ) {
	var obj;
	if( event.srcElement ) {
		obj = event.srcElement;
	}else {
		obj = event.element();
	}
	
	//if( event.keyCode == Event.KEY_RETURN ) {
		var link = $(obj).parentNode.select('a')[0];
		var oldClass = link.className;
		link.className = 'loading_action';
		
		new Ajax.Request( '/ajax_controller.php', {
	        method: 'post',
	        parameters: {
	                m: 'ModPromo',
	                action: 'saveRotator',
	                id: obj.id,
	            	value: obj.value 
	        },
	        onSuccess: function( transport ){
	            var responseJS = transport.responseText.evalJSON();
	            if( responseJS.success ) {
	            	if( responseJS.data.length > 0 ) {
	            		obj.value = "";
	            		$('rotatorsList').innerHTML += responseJS.data;
	            	}
	            }else {
	            	alert( "Error: " + responseJS.info );
	            }
	            
	            obj.disable();
	            obj.blur();
	            link.className = oldClass;
	        },
	    	onFailure: function( transport ){
	            //alert('Epic fail!');
	            link.className = oldClass;
	        }
	    } );
	//}
}


function addToRotator( id, pid ) {
	if( !id ) {
		return;	
	}
	
	new Ajax.Request( '/ajax_controller.php', {
		method: 'post',
		parameters: {
			m: 'ModPromo',
			action: 'getRotatorsSelect',
			id: id
		},
		onSuccess: function( transport ){
			var response = transport.responseText.evalJSON();
			$( "bannerRotator_" + id ).update( response );
			if( response != 'no rotators' ) {
				var input = new  Element( "input", { type: 'button', value: 'Добавить' } );
				input.observe( "click", function() {
					var rid = $F('rotatorSelect_' + id );
					var  img = new  Element( "img", { src: "/images/loading.gif" } );
					$( "bannerRotator_" + id ).update( img );
					
					new Ajax.Request( '/ajax_controller.php', {
						method: 'post',
						parameters: {
							m: 'ModPromo',
							action: 'addBannerToRotators',
							id: id,
							rid: rid,
							pid: pid
						},
						onSuccess: function( transport ){
							var responseJS = transport.responseText.evalJSON();
				            if( responseJS.success ) {
								$( "bannerRotator_" + id ).update( response.info );
								showForm( "bannerRotator_" + id );
				            }
						},
						onFailure: function( transport ) {
							//
						}
					} );
				});
				$( "bannerRotator_" + id ).appendChild( input );
			}
			showForm( "bannerRotator_" + id );
		},
		onFailure: function( transport ) {
			//
		}
	} );	
}

function showRotatorBanners(  id ) {
	if( !id )  {
		return;	
	}
	
	new Ajax.Request( '/ajax_controller.php', {
		method: 'post',
		parameters: {
			m: 'ModPromo',
			action: 'getRotatorBanners',
			id: id
		},
		onSuccess: function( transport ){
			var response = transport.responseText.evalJSON();
            if( response.success ) {
				$( "banners_" + id ).update( response.data );
				showForm( "banners_" + id );
            }else {
            	$( "banners_" + id ).update( response.info );
				showForm( "banners_" + id );
            }
		},
		onFailure: function( transport ) {
			//
		}
	} );
}

function removeFromRotator( rid, id ) {
	if( !id || !rid)  {
		return;	
	}
	
	new Ajax.Request( '/ajax_controller.php', {
		method: 'post',
		parameters: {
			m: 'ModPromo',
			action: 'removeFromRotator',
			id: id,
			rid:  rid
		},
		onSuccess: function( transport ){
			var response = transport.responseText.evalJSON();
            if( response.success ) {
            	var cnt = $( "bannersCounter" + response.rid ).firstChild.nodeValue;
            	cnt--;
            	$( "bannersCounter" + response.rid ).update( cnt ); 
				$( "row_" + response.rid + "_" + response.id ).remove();
            }
		},
		onFailure: function( transport ) {
			//
		}
	} );	
}

