$(document).ready(function() {
	jQuery.validator.messages.required = "Detta f&auml;lt &auml;r obligatoriskt";
	jQuery.validator.messages.email = "Ange en giltig e-postadress";
	jQuery.validator.messages.equalTo = "Ange samma v&auml;rde igen";

	$.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;
	}, "Det ska innehålla minst 5 tecken, varav minst ett tecken måste vara en siffra eller bokstav.");

	$.validator.addMethod("passwordChars", function(value) {
    		var regx = /^[A-Za-z0-9_~`!@$\*^(),\.?]*$/;
    		if(!regx.test(value)){
	            return false;
	       }
		return true;
	}, "Lösenordet får bara innehålla tal, brev eller _~`!@$*^(),.?");

	$(".validationForm").validate({
		errorClass: "validationError",
		rules: {
			firstName: "required",
			lastName: "required",
			username: {
				required: true,
				minlength: 2
			},
			email: {
				required: true,
				email: true
			},
			topic: {
				required: "#newsletter:checked",
				minlength: 2
			},
			agree: "required"
		}
	});

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

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