Event.observe(window, 'load', init, false);

var my_tabs  = null;
var cycle_id = 0;

function init(){
	if($('tournament_filter')){
		Event.observe('buy_in_from', 'change', ajax_tournament_filter, false);
		Event.observe('buy_in_to', 'change', ajax_tournament_filter, false);
		Event.observe('client', 'change', ajax_tournament_filter, false);
		Event.observe('game_type', 'change', ajax_tournament_filter, false);

		$('default').firstChild.toggleClassName('image_down');
	}
	if($('alert')){
		new Effect.Highlight('alert');
	}

	if($('tabs')){
		my_tabs = new Control.Tabs('tabs');
			cycle_id = setInterval('cycleTab(my_tabs)', 5000);
			Event.observe('tabs', 'click', function(){
			clearInterval(cycle_id);
		});
	}
	if($('glossary_widget')){
		new Ajax.Autocompleter('glossary_search', 'glossary_results', $F('ajax_url'));
	}

	if($('frm_rakeback_calculator')){
		Event.observe('game_types', 'change', toggle_rakeback_stakes, false);
		Event.observe('frm_rakeback_calculator', 'change', calculate_rakeback, false);
	}

	if($('frm_login')){
		new Validation('frm_login');
	}

	if($('frm_signup')){
		new Validation('frm_signup');
	}

	if($('frm_register')){
		var valid = new Validation('frm_register');

		Event.observe('frm_register', 'submit', function(event) {
			var result = valid.validate();
			if(result){
				submit_user_to_rbp();
			}
	    	Event.stop(event);
		});
	}
}

function toggle_rakeback_stakes(){
	var game_type = $F('game_types');
	var a_nl      = ["nlf", "nls"];

	if(game_type){
		if(a_nl.indexOf(game_type) != -1){
			$('nl_game_stakes').disabled = false;
			$('fl_game_stakes').disabled = true;
		}else{
			$('nl_game_stakes').disabled = true;
			$('fl_game_stakes').disabled = false;
		}
	}else{
		$('nl_game_stakes').disabled = false;
		$('fl_game_stakes').disabled = false;
	}
}

function calculate_rakeback(){
	if($F('game_types') && ($F('nl_game_stakes') || $F('fl_game_stakes')) && $F('tables') && $F('hours') && $F('rakeback')){
		var nlf = new Array(3.93, 5.9, 6.95, 8.91, 14.81, 16.78, 17.7);
		var nls = new Array(5, 8.5, 18.5, 24.4, 26.62, 27.54, 38.42);
		var flf = new Array(1.96, 3.01, 3.93, 7.86, 10.88, 11.8, 15.75, 16.78, 19.62, 19.62);
		var fls = new Array(3.01, 9.83, 10.88, 18.23, 20.52, 21.63, 27.54, 31.47, 46.29, 46.29);

		var game_type  = $F('game_types');
		var a_nl       = ["nlf", "nls"];
		var limit      = a_nl.indexOf(game_type) != -1 ? $F('nl_game_stakes') : $F('fl_game_stakes') ;
        limit         -= 1
		var rake       = nlf[limit];

		if(game_type == "nls"){
			rake = nls[limit];
		}else if (game_type == "flf"){
			rake = flf[limit];
		}else if (game_type == "fls"){
			rake = fls[limit];
		}

		var tables   = $F('tables');
		var hours    = $F('hours');
		var rakeback = $F('rakeback');
		var total    = (hours * tables * rakeback * rake);
        total        = isNaN(total) ? 0 : total ;

		$('daily').innerHTML   = "$" + total.toFixed(0);
		$('weekly').innerHTML  = "$" + (total * 7).toFixed(0);
		$('monthly').innerHTML = "$" + (total * 31).toFixed(0);
	}
}

function cycleTab(){
	if(my_tabs.activeContainer.id == 'tab_4'){
		my_tabs.first();
	}else{
		my_tabs.next();
	}
}

function ajax_tournament_filter(){
	if($('loader')){
		var myGlobalHandlers = {
			onCreate: function(){
				Element.appear('loader');
			},
			onComplete: function() {
				if(Ajax.activeRequestCount == 0){
					Element.fade('loader');
				}
			}
		};
	Ajax.Responders.register(myGlobalHandlers);
	}

	var myUrl    = $F('ajax_url');
	var myPars   = 'buy_in_from=' + escape($F('buy_in_from')) + '&buy_in_to=' + escape($F('buy_in_to')) + '&client=' + escape($F('client')) + '&game_type=' + escape($F('game_type'));
	var myTarget = 'tournaments';
	var myAjax   = new Ajax.Updater(myTarget, myUrl,{method: 'get', parameters: myPars});
}

function createRequestObject(){
	if(navigator.appName == 'Microsoft Internet Explorer'){
		return new ActiveXObject('Microsoft.XMLHTTP');
	}	else{
		return new XMLHttpRequest();
	}
}

function toggleColumn(obj, table_id, column_nr){
	var cls     = (obj.checked == 'on') ? 'show_cell' : 'hide_cell' ;
	var allRows = document.getElementById(table_id).rows;
	for(var i = 0; i < allRows.length; i++){
		for(var j = 0; j < allRows[i].cells.length; j++){
		if(j == column_nr){
			// Workaround for IE to be able to use prototype's toggleClassName
			allRows[i].cells[j].id = 'tmp_id';
			$('tmp_id').toggleClassName(cls);
			allRows[i].cells[j].id = '';
			}
		}
	}
	toggleCheckboxes();
}

function toggleCheckboxes(){
	var els = $('payment_method_filter').elements;
	var j   = 0;
	for(var i = 0; i < els.length; i++){
		j += (els[i].checked == true) ? 1 : 0 ;
	}
	for(i = 0; i < els.length; i++){
		if(els[i].checked == true && j == 3){
			els[i].disabled = true;
		}else if(els[i].checked == false && j == 5){
		 els[i].disabled = true;
		}else{
		 els[i].disabled = false;
		}
	}
}

function submit_user_to_rbp(){
	var myTarget = 'frm_container';
	var myUrl    = '/execute/set_user.php';
	new Ajax.Updater(
		myTarget,
		myUrl, {
			method: 'post',
			parameters: {
				username:   escape($F('username')),
				email:      escape($F('email')),
				password:   escape($F('password')),
				first_name: escape($F('first_name')),
				last_name:  escape($F('last_name')),
				gender_id:  escape($F('gender_id')),
				city:       escape($F('city')),
				country_id: 131
			},
			onComplete: function() {
				new Effect.Highlight('alert');
			}
		}
	);
}

function fixPaths(){
	var flash   = $('pas').getElementsByClassName('flash');
	var embeds  = document.getElementsByTagName('embed');
    var objects = document.getElementsByTagName('object');

	for(i = 0; i < flash.length; i++){
		var a_flashvars = embeds[i].getAttribute('flashVars').split('=');
		var flashvars   = { '&dataURL':        a_flashvars[1] };
		var params      = { pluginspage:       'https://www.macromedia.com/go/getflashplayer',
						    allowscriptaccess: 'always',
                            base:              'http://offers.rakebackpoker.nl',
						    menu:              'false',
						    quality:           'high',
							transparent:       'wmode' };
		var attributes  = { };

		swfobject.embedSWF("http://offers.rakebackpoker.nl/interfaces/fusioncharts/charts/Column3D.swf", flash[i].id, 509, 300, "8.0.0.0", "http://www.rakebackpoker.nl/swf/expressInstall.swf", flashvars, params, attributes);
	}
	objects[0].remove();
	objects[0].remove();
}