function isEmpty( s )
{
	var re = new RegExp("[^\\s]|[ ]")
	return !re.test( s )
}

function isEmail( s )
{
	var reg1 = /(@.*@)|(\.\.)|(,)|(@\.)|(\.@)|(^\.)|( )|([æøåÆØÅüöäÜÖÄ])/;	// definitions for nonvalid email
	var reg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2}|com|net|org|gov|mil|int|biz|pro|info|arpa|aero|coop|name|museum|mobi)(\]?)$/; 	// definitions for valid email
	if (!reg1.test( s ) && reg2.test( s ) ) {
		return true
	} else {
		return false
	}
}

function isPhonenumber( s ) {
	var re = new RegExp("^\\s*\\d{8}\\s*$")
	return re.test( s )
}


function newsletterSubscribe( f )
{
	var error = []
	if ( isEmpty(f.subscriber_firstname.value) || f.subscriber_firstname.value == f.subscriber_firstname.defaultValue ) error.push('Du mangler at angive fornavn.')
	if ( isEmpty(f.subscriber_surname.value) || f.subscriber_surname.value == f.subscriber_surname.defaultValue  ) error.push('Du mangler at angive efternavn.')
	if ( isEmpty(f.subscriber_email.value) || f.subscriber_email.value == f.subscriber_email.defaultValue  ) {
		error.push('Du mangler at angive email.')
	} else if ( !isEmail(f.subscriber_email.value) ) {
		error.push('Du har ikke angivet en korrekt email.')
	}
	if ( error.length > 0 ){
		alert( error.join("\n"))
		return false
	} else {
		return true
	}
}

function scrollToAndHighlight( scrollToWhat, highlightWhat )
{
	if ( typeof(highlightWhat) == 'undefined' ) highlightWhat = scrollToWhat;
	$.scrollTo(scrollToWhat, {duration: 500, axis:"y", onAfter:function(){
            $(highlightWhat).effect("highlight", {color: "#ffff00"}, 1000); }
        });
}

var modFavourite = function()
{
	return {
		request: function ( cmd, type, dataId, callback )
		{
			if ( typeof(callback) != 'function' ) callback = function(response){}
			App.showOverlay()
			App.request(
				'/_ajax/mod/favourite/?cmd='+cmd+'&type='+type+'&data_id='+dataId,
				{
					success: function(response){
						App.hideOverlay()
						callback(response)
					},
					error: function(response){

						App.hideOverlay()
						callback(response)
					}
				}
			);
		},

		add: function (type, dataId, callback)
		{
			modFavourite.request('add', type, dataId, callback)
		},

		remove: function (type, dataId, callback)
		{
			modFavourite.request('remove', type, dataId, callback)
		}
	}
}();

function makeDefaultValue(o)
{
	if ( typeof(o) == 'undefined' ) o = this
	$(o).css('color','#aaaaaa')
	$(o).focus(
		function(){
			if ( $(this).val() == $(this).attr('defaultValue') ) {
				$(this).css('color','#333333')
				$(this).val('')
			}
		}
	)
	$(o).blur(
		function(){
			if ( $.trim($(this).val()) == '' ) {
				$(this).css('color','#aaaaaa')
				$(this).val($(this).attr('defaultValue'))
			}
		}
	)
}

