/* 
	GENERAL JAVASCRIPT
	www.maal4.nl
	by bubi blomer
	ver 0.1 | 20/08/2009
*/

$(document).ready(function() {

	// Internet Explorer 6 Message
	if($.browser.msie && $.browser.version == 6){
		var ie6MsgCookie = $.cookieJar('ie6MsgCookie', {cookie: {path: '/', expires: 1}});
		//ie6MsgCookie.destroy();
		if(ie6MsgCookie.get('show') === "no"){
			//do nothing
		} else {
			$('#ie6Msg').fancybox({
				'frameHeight': 350,
				'overlayShow': true,
				'hideOnContentClick': false
			}).trigger('click');
			ie6MsgCookie.set('show', 'no');
		}
	}

	//message depending on window.location.href
	var location = window.location.href;
	var msgFromPHP = new RegExp("message=");
	var msgErrorFromPHP = new RegExp("error=");
	var msgSucessFromPHP = new RegExp("success=");
	if(msgFromPHP.test(location)){
		flashMessage(unescape(RegExp.rightContext),'message');
	} else if(msgErrorFromPHP.test(location)){
		flashMessage(unescape(RegExp.rightContext),'error');
	} else if(msgSucessFromPHP.test(location)){
		flashMessage(unescape(RegExp.rightContext),'success');
	}

	/* !form validation defaults */
	jQuery.validator.setDefaults({
		errorPlacement: function(error, element){
			element.parent().append(error)
		},
		errorElement: "span",
		errorClass: "ui-state-error",
		rules: {
			sName: 'required',
			sFirstname: 'required',
			sLastname: 'required',
			sEmailadress: 'required email',	
			sUsername: 'required',
			sPassword: 'required',
			sConfirmNewPassword: {
				required: 'true',
				equalTo: "#sNewPass"
			},
			sSignInPassword: {
				required: true,
				remote: '/scripts/validation.php'
			}
		},
		messages: {}
	});
	
	/*
	* Translated default messages for the jQuery validation plugin.
	* By Joost Baaij http://www.spacebabies.nl/ joost@spacebabies.nl
	* Language: NL
	* Skipped date/dateISO/number.
	*/
	
	/* !dutch validation messages translation */
	jQuery.extend(jQuery.validator.messages, {
		required: "Dit veld is verplicht.",
		maxlength: jQuery.format("U kunt niet meer dan {0} karakters invoeren."),
		minlength: jQuery.format("U dient minimaal {0} karakters in te voeren."),
		rangelength: jQuery.format("U dient minimaal {0} en maximaal {1} karakters in te voeren."),
		email: "Een geldig emailadres is verplicht.",
		url: "Een geldig URL is verplicht.",
		date: "Een geldige datum is verplicht.",
		number: "Een geldig getal is verplicht.",
		digits: "Gebruik alleen cijfers.",
		equalTo: "Herhaal de invoer nogmaals.",
		range: jQuery.format("U dient een waarde tussen {0} en {1} in te voeren."),
		max: jQuery.format("U dient een waarde kleiner dan of gelijk aan {0} in te voeren."),
		min: jQuery.format("U dient een waarde groter dan of gelijk aan {0} in te voeren."),
		creditcard: "Een geldig creditcardnummer is verplicht."
	});
	
	// !run form validation
	$('form.validate').validate();

});

function doAjaxRequest (scriptPath, postVars, callback){
	var postVars;
	var response;
	var callback;
	var scriptPath = false ? '/cms/scripts/task.php' : scriptPath;
	
	$.ajax({
		url: scriptPath,
		type: "POST",
		data: postVars,
		dataType: "json",
		async: false,
		cache: false,
		success: function(response, textStatus){
			if(response.error===true){
				doError(response.notice);
				callback.call(this, response);
			} else if(response.error===false) {	
				if(typeof(response.message)==="undefined" || response.message===null) {
					//nothing
				} else {
					doMessage(response.notice);
				}
				callback.call(this, response);
			} else {
				doError('<h2>I didnt get a error = true or a error = false, in your response! Please check your PHP</h2>')
				callback.call(this, response);
			}
			
		}, // end success function
		error: function(XMLHttpRequest, textStatus, errorThrown){
			
			doError('<h2>Textstatus: '+ textStatus + '<br />errorThrown: ' + errorThrown +'</h2>');
	
		}

	}); //end ajax call
	
};

function doError (msg){
	flashMessage('<p><strong>Er is een fout opgetreden:</strong></p><p>'+msg+'</p>', 'error');
}

function doMessage (msg){
	flashMessage('<p><strong>Het systeem geeft de volgende melding:</strong></p><p>'+msg+'</p>', 'message');
}

function doFadeMsg(msg,type) { // type['notice','error','success']
	var $container =  $('#flashMessageContainer');
	$container.addClass('rounded');
	var msgContainer = $container.find('span.msg');
	var $containerHeight = $container.outerHeight();
	var $windowHeight = $(window).height();
	$container.addClass(type);
	msgContainer.html(msg);
	$container.css({'top':(($windowHeight-$containerHeight)/2)});
	$container.fadeIn(1000).animate({opacity: 1.0}, 3000).fadeOut(1000);
	$container.click(function() {
		$(this).hide();
	});
}

function flashMessage(msg,type){ // type['notice','error','success']
	if(type === "message") {
		doFadeMsg(msg,type);
	} else if(type === "error") {
		doFadeMsg(msg,type);
	} else if(type === "success") {
		doFadeMsg(msg,type);
	}
}
