jQuery.validator.addMethod("pgs_password", function(value, element)
{
	return this.optional(element) || /\d/.test(value) && /[a-z]/i.test(value);
});

$(document).ready(function()
{
	// show active navigation tab
	$("#main_nav a").each(function() {
		var href_uri = $(this).attr("href");
		if (href_uri.toLowerCase() == location.href.toLowerCase()) {
			$(this).addClass("active");
		}
	});

    // Show Close Account Details
    $('#link_close').click(function() {
       $('#close_account').toggle();
    });

	$('.toggle_hide').click(function() {
		$('.toggle_content').hide();
		$('span.promotion_detail').html('');
		$('.normal_content').show();
	});
	
	// password fields swap
	$('.fnfield_swap').click(function() {
		$('.fnfield_swap').val("");
		$('span.fnpassword_field').html('<input type="password" class="txt50 required" name="password" id="login-password" />');
		$('.fnfield_swap').focus();	
	});
	
	$('.lsfield_swap').click(function() {
		$('.lsfield_swap').val("");
		$('span.lspassword_field').html('<input type="password" class="required" name="password" tabindex="2" id="login-password" />');
		$('.lsfield_swap').focus();	
	});

	// show/hide player inf
	$('.show_player_inf').click(function() {
		$('.player_info_back_exp').fadeOut(function() {
			$('.player_info_back').fadeIn();
		});
	});
	
	$('.hide_player_inf').click(function() {
		$('.player_info_back').fadeOut(function() {
			$('.player_info_back_exp').fadeIn();
		});
	});

	// init reg validation
	$(".validationForm").validate(
	{
		errorClass: "displayError",
        focusCleanup: true,
        onkeyup:false,
		rules: {
			alias: {
				rangelength: [5, 25],
				maxlength: 25,
				remote: {
					url: "register/check_alias",
					type: "post",
					async: false,
					beforeSend: function()
					{
						$('#alias').attr('readonly', 'readonly');
						$('#alias').addClass('loading_field');
					},
					complete: function()
					{
						$('#alias').removeAttr('readonly', 'readonly');
						$('#alias').removeClass('loading_field');
					}
				}
			},
			email: {
				required: true,
				email: true
			},
			password:
			{
				required: true,
				pgs_password: true,
				minlength: 5
			},
			passwordConfirm:
			{
				pgs_password: true,
				minlength: 5
			},
            password_reset:
			{
				required: true,
				pgs_password: true,
				minlength: 5
			},
			password_confirm:
			{
				pgs_password: true,
				minlength: 5
			}
		}
	});

    // SEND NEW REGISTRATIONS TO DEPOSIT
    $("#deposit_now_btn").click
    (
        function()
        {
            $("#redirect_page").val("deposit");
            $("#regForm").submit();
        }
    );

     // SEND NEW REGISTRATIONS TO PLAY
    $("#play_fun_btn").click
    (
        function()
        {
            $("#redirect_page").val("play");
            $("#regForm").submit();
        }
    );
	
	// init login validation
	$(".login_validation").validate({
		errorClass: "displayError"
	});
	
	// reg second part validation
	$(".reg_validation").validate({
		errorClass: "displayError"
	});
	
	// init accordian
	$(".div_expand").accordion({
		header: 'h4',
		autoHeight: false
	});
	
	// goto register
	$(".start_register").click(function() {
		window.location = base_url + "/members/register";
	});
	
	// goto casino
	$(".casino").click(function() {
		window.location = base_url + "/games/allgames";
	});
	
	// goto login
	$(".login").click(function() {
		window.location = base_url + "/login";
	});
	
	$("ul.sf-menu").supersubs({ 
        minWidth:    10,   // minimum width of sub-menus in em units
        maxWidth:    27,   // maximum width of sub-menus in em units
        extraWidth:  1     // extra width can ensure lines don't sometimes turn over
                           // due to slight rounding differences and font-family 
    }).superfish({
    	hoverClass:'sfHover',
		delay: 500,
		speed: 'fast', 
        autoArrows: false, 
        dropShadows: false,
        disableHI: true
	}).find('ul').bgIframe({opacity:false});;

	$("table.report tr:even").addClass("even");
	$("table.report tr:odd").addClass("odd");

	$(".checkBoxTree").each(function(){          
		addTreeView($(this), "", "", false, false);
		$(this).TreeViewCheckboxes();              
		$(this).show();                            
	});
	
	$("select.sort").each(function() {
	    var selectedVal = $(this).val();
		$(this).sortOptions(true);
		$(this).val(selectedVal);
	});

    //Crazy Game Shizznit to set height automagically
    var number_games    = $('.game_content_feat[title=games]').length;
    var i               = 1;

    for (i=1;i<=number_games;i+=2)
    {
        if ($('#game-'+(i+1)).length)
        {
            var current_height  = $('#game-'+i+' div.game_content_feat_m').height();
            var next_height     = $('#game-'+(i+1)+' div.game_content_feat_m').height();

            if (current_height < next_height)
            {
                $('#game-'+i+' div.game_content_feat_m').css('height',next_height);
            }
            else if (current_height > next_height)
            {
                $('#game-'+(i+1)+' div.game_content_feat_m').css('height',current_height);
            }
        }
        else
        {
            return true;
        }
    }

});

function initDataTables(localeFile) {
	$(".report").each(function() {
		if (!$(this).hasClass("notDynamic")) {
			$(this).dataTable({
				"bPaginate":true,
				"bLengthChange":false,
				"bFilter":false,
				"bSort":true,
				"bInfo":true,
				"bProcessing":true,
				"bAutoWidth":true,
				"iDisplayLength":25,
				"sPaginationType":"full_numbers",
				"oLanguage": {
					"sUrl": localeFile
				}
			});
		}
	});
}

function parseXML( xml ) {
	if( window.ActiveXObject && window.GetObject ) {
		var dom = new ActiveXObject( 'Microsoft.XMLDOM' );
		dom.loadXML( xml );
		return dom;
	}
	if( window.DOMParser ) {
		return new DOMParser().parseFromString( xml, 'text/xml' );
	}
	throw new Error( 'No XML parser available' );
} 

jQuery.parseXML = function( xml ) {
   	return jQuery( parseXML(xml) );
};

function addTreeView(element, animation, persist, collapsed, unique) {
	$(element).treeview({                                               
		animated: animation,                                              
		persist: persist,                                                 
		collapsed: collapsed,                                             
		unique: unique                                                    
	});                                                                 
}          

function fn_ajaxPromo(uri)
{
	// show ajax box with loader
	$('.promo-loading-box').show();
	$('.toggle_content').show();
	$('.normal_content').hide();
			
	$.ajax({
		url: base_url + uri,
		type: 'GET',
		success: function(response)
		{
            response = response.substring(1,response.length);
            $('.promo-loading-box').hide();
			$('span.promotion_detail').html(response);
		}
	});
}

// Stores HTML to display progress bar and 'Please wait' language
// Used by fn_ajaxPopup
var loadingHtml = '';

/*
 * Pops an information bubble and
 * populates it with the response from
 * an ajax request to the provided relative
 * URL.
 */
function fn_ajaxPopup(container, url )
{
    $('div.ajax_popup:visible').css('visibility', 'hidden');
    $(container + ':visible').css('visibility', 'hidden');
    $(container).css('visibility', 'visible');

	if(loadingHtml == '')
	{
		loadingHtml = $(container).html();
	}

	$.ajax(
	{
		url: base_url + url,
		type: 'GET',
		success: function(response)
		{
			$(container).html(response);
		}
	});
}

/*
 * Hides pop up and places value of loadingHtml as the
 * popup contents so it will be present for the next 
 * call to fn_ajaxPopup
 */
function resetPopup()
{
	$('div.ajax_popup:visible').css('visibility', 'hidden');
	$('div.ajax_popup:visible').html(loadingHtml);
}

/* Check user alias exists */
function checkAliasExists(alias) 
{
	var alias = alias.value;
	
	$('#alias').attr('readonly', 'readonly');
	$('#alias').addClass('loading_field');
	
	$.ajax({
		type: "POST",
		async: false,
		url: base_url + "/members/register/check_alias",
		data: {selectedAlias:alias},
		success: function(msg)
		{
			$('#alias').removeAttr('readonly', 'readonly');
			$('#alias').removeClass('loading_field');
			
			if (msg.indexOf('found') == -1)
			{
				$("#alias").removeClass("displayError");
				$(".alias_check").hide();
			}
			else
			{
				$(".alias_check").show();
				$(".alias_check").html(jQuery.trim(msg));
				$("#alias").addClass("displayError");
			}
			
		}
	});
}

// Setup the report datepickers
$(function() {
	$("#hiddenStartDate").datepicker({
		showOn: 'button',
		dateFormat: "m/d/yy",
		buttonImage: common_url + '/images/icons/calendar.jpg',
		buttonImageOnly: true,
		showAnim: "fadeIn",
		onSelect: function(dateText, inst) {
		
			// explode date
			var dateparts = dateText.split("/");

			// set date dropdowns
			$('#startMonth').val(dateparts[0]);
			$('#startDay').val(dateparts[1]);
			$('#startYear').val(dateparts[2]);
		}
	});
});

$(function() {
	$("#hiddenEndDate").datepicker({
		showOn: 'button',
		dateFormat: "m/d/yy",
		buttonImage: common_url + '/images/icons/calendar.jpg',
		buttonImageOnly: true,
		showAnim: "fadeIn",
		onSelect: function(dateText, inst) {
		
			// explode date
			var dateparts = dateText.split("/");

			// set date dropdowns
			$('#endMonth').val(dateparts[0]);
			$('#endDay').val(dateparts[1]);
			$('#endYear').val(dateparts[2]);
		}
	});
});

/* quick date select using fixed date */
function jQuery_setFixedDate()
{
	var fixedVal = $('#fixedDate').val();
	
	if (fixedVal != 0)
	{
		var dt = new Date();
		var timestamp = dt.getTime() - fixedVal * 24 * 60 * 60 * 1000;
		
		var newDate = new Date(timestamp);
	
		// Set the date fields
		$('#startMonth').val(newDate.getMonth() + 1);
		$('#startDay').val(newDate.getDate());
		$('#startYear').val(newDate.getFullYear());
	}
}

/* ajax request */
function submitAjaxRequest(theForm, responseCont)
{
	$('#' + theForm).ajaxSubmit({
				
		success: function(responseXML) {
			
			// post ecom redirect form
			$('#' + responseCont).html(responseXML);

		}
	});
}
