$(document).ready(function() {

	$("#newslots-memberlink").fancybox({
				'titleShow'		: 'false',
				'overlayColor'		: '#000',
				'overlayOpacity'	: 0.6,
				'transitionIn'		: 'fade',
				'transitionOut'		: 'none'
	});
	$("#newslotslink").fancybox({
				'titleShow'		: 'false',
				'overlayColor'		: '#000',
				'overlayOpacity'	: 0.6,
				'transitionIn'		: 'fade',
				'transitionOut'		: 'none'
	});


	$.validator.setDefaults({
	    errorPlacement: function(error, element) {
		if (element.attr('id').substr(0,5)=='birth') {
       		error.appendTo('#birthdate-error');
		} else if (element.attr('id').substr(0,6)=='gender') {
       		error.appendTo('#gender-error');
		} else {
       		error.appendTo('#' + element.attr('id') + '-error');
		}
	    }
	});

	$.validator.addMethod("aliasChars", function(value) {
		//value = jQuery.trim(value);
    		var regx = /^[a-z\d_\*!~]{5,15}$/i;
    		if(value.length>0 && !regx.test(value)){
	            return false;
	       }
		return true;
	}, "Alias must be at least 5 characters and can only contain number, letter or *_!~");

	$.validator.addMethod("password", function(value) {
		//value = jQuery.trim(value);
    		var regx = /(?=^.{5,}$)(?=.*\d)(?=.*[A-Za-z]).*$/;
    		if(value.length>0 && !regx.test(value)){
	            return false;
	       }
		return true;
	}, "Password must be at least one letter and one digit and must be at least 5 characters.");

	$.validator.addMethod("passwordChars", function(value) {
    		var regx = /^[A-Za-z0-9_~`!@$\*^(),\.?]*$/;
    		if(!regx.test(value)){
	            return false;
	       }
		return true;
	}, "Password can only contain number, letter or _~`!@$*^(),.?");

	$.validator.addMethod("checkalias", function(value) {
		var x= $.ajax({
		    url: "/members/checkalias",
		    type: 'POST',
		    async: false,
		    data: "alias=" + value,
		    beforeSend: function() { $('#alias').parent().addClass('checking'); },
		    complete: function() { $('#alias').parent().removeClass('checking'); }
		 }).responseText;
		return eval(x);
	}, "That alias is already taken, please choose another one!");

	$(".validationForm").validate({
		onkeyup: false,
		errorClass: "validationError"
	});

	$(".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"
			});
		}
	});

	$(".reconcilereport").each(function() {
		if (!$(this).hasClass("notDynamic")) {
			$(this).dataTable({
				"bPaginate":true,
				"bLengthChange":false,
				"bFilter":false,
				"bSort":true,
				"aaSorting": [ [0,'desc'],[1,'desc'] ],
				"bInfo":true,
				"bProcessing":true,
				"bAutoWidth":true,
				"iDisplayLength":25,
				"sPaginationType":"full_numbers"
			});
		}
	});

	$("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: 0, 
        dropShadows: 0,
        disableHI: true
	}).find('ul').bgIframe({opacity:0});;

	$("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);
	});
});

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 populateStates(countryElem) {
	var countryVal = countryElem.value;

	$.ajax({
		type: "POST",
		url: webRoot + "/members/register/generateProvince",
		data: {selectedCountry:countryVal},
		success: function(msg){
			$("#provinceContainer").html(jQuery.trim(msg));
		}
	});
}
