function str2int(str){
	int = parseFloat(str);
	return (!is_numeric(int))? 0 : int;
}

function is_numeric(str){
	return (!isNaN(str*1));
}

function getCompleteWidth(Obj){
	return Obj.width() + getWidthMargins(Obj) + getWidthBorders(Obj);
}

function getCompleteHeight(Obj){
	return Obj.height() + getHeightMargins(Obj) + getHeightBorders(Obj);
}

function getWidthMargins(Obj){
	return str2int(Obj.css('margin-left')) + 
		str2int(Obj.css('margin-right')) + 
		str2int(Obj.css('padding-left')) + 
		str2int(Obj.css('padding-right'));
}

function getHeightMargins(Obj){
	return str2int(Obj.css('margin-bottom')) + 
		str2int(Obj.css('margin-top')) + 
		str2int(Obj.css('padding-bottom')) + 
		str2int(Obj.css('padding-top'));
}


function getWidthBorders(Obj){
	return str2int(Obj.css('border-left-width')) + 
		str2int(Obj.css('border-right-width'));
}

function getHeightBorders(Obj){
	return str2int(Obj.css('border-bottom-width')) + 
		str2int(Obj.css('border-top-width'));
}

function is_valid_email(str){
	return str.match(/\b(^(\S+@).+((\.com)|(\.net)|(\.edu)|(\.mil)|(\.gov)|(\.org)|(\..{2,2}))$)\b/gi);
}

function getAbsoluteLeft(element) {
	try {
		var intLeft = 0;
		var objParent = element;
		
		do {
			intLeft += objParent.offsetLeft;
			objParent = objParent.offsetParent;
		}
		while (objParent != null);
		
		return intLeft; 
	}
	catch (x) {}
}

function getAbsoluteTop(element) {
	try {
		var intTop = 0;
		var objParent = element;

		do {
			intTop += objParent.offsetTop;
			objParent = objParent.offsetParent;
		}
		while (objParent != null);
		
		return intTop; 
	}
	catch (x) {}
}



function isIE(){
	var data=navigator.appVersion;
	
	if(data.indexOf('MSIE') > -1)
		return parseFloat(data)
	
	return false;
}

function isSafari(){
	var data=navigator.appVersion;
	
	if(data.indexOf('Safari') > -1)
		return parseFloat(data)
	
	return false;
}

function preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.p) d.p=new Array();
	var i,j=d.p.length,a=preloadImages.arguments; for(i=0; i<a.length; i++)
	if (a[i].indexOf("#")!=0){ d.p[j]=new Image; d.p[j++].src=a[i];}}
}

function FormFunctions(){
	$('label.radio').click(function(){
		$(this).parent('td').children('label').removeClass('checked');						  
		$(this).addClass('checked');	
		var parts = $(this).attr('id').split('_');
		$('#'+parts[0]).val(parts[1]);
	});
		
	$('label.multiselect').click(function(){
		$(this).toggleClass('checked');	
		var parent = $('#'+$(this).attr('parent'));
		var parentVal = '' + parent.val();
		
		if ($(this).hasClass('checked'))
			parent.val(parentVal + ','+$(this).html());
		else
			parent.val(parentVal.replace($(this).html(), ''));
		
		parentVal = '' + parent.val();
		parentVal = parentVal.replace(',,', ',');
	
		if(parentVal.indexOf(',') == 0)
			parent.val(parentVal.replace(',', ''));
	});

	
	$('input.datepart').change(function(){
		var parts = $(this).attr('id').split('_');
		
		var day 	= $('#'+parts[0]+'_dd').val();
		var month	= $('#'+parts[0]+'_mm').val();
		var year	= $('#'+parts[0]+'_yyyy').val();
		
		$('#'+parts[0]).val(day+'-'+month+'-'+year)
	});
	
	$('form').submit(function(){				
		switch($(this).attr('id')){
			case'aanmeldenForm':
			case'contactForm':
				var returnVal = true;
				var LastRadioButton = '';
				var RadioButtons = new Array();
				var CheckedRadioButtons = new Array();
				var IRB = 0;

				$('#'+$(this).attr('id')+' input.req, #'+$(this).attr('id')+' textarea.req').each(function(){
					if (returnVal){												 
						switch ($(this).attr('type')){
							default:
							case 'text':
								if ($(this).val().length == 0){
									alert(jQuery.trim($(this).attr('caption')) + ' is verplicht');
									$(this).focus();
									returnVal = false;
								}
								
								if($(this).hasClass('email') && returnVal){	
									if (!is_valid_email($(this).val())){
										window.alert(jQuery.trim($(this).attr('caption')) + ' is een ongeldig emailadres.');
										$(this).focus();
										returnVal = false;
									}
								}
								
								if($(this).hasClass('date') && returnVal){	
									var l_strError = is_valid_date($(this).val(), 'Dutch');
									if (l_strError!=true){
										alert(l_strError.replace('##FIELDNAME##', $(this).attr('caption')));
										$(this).focus();
										returnVal = false;
									}
								}
	
							break;
							
							case'radio':
								if (LastRadioButton != $(this).attr('name')){
									LastRadioButton = $(this).attr('name');
									RadioButtons[IRB] = $(this);
									IRB++;
								}
								
								if (CheckedRadioButtons[LastRadioButton] != true)
									CheckedRadioButtons[LastRadioButton] = $(this).attr('checked');
						
							break;
							
							case'checkbox':
								if ($(this).attr('checked') == false){
									alert(jQuery.trim($(this).attr('caption')) + ' is verplicht');
									$(this).focus();
									returnVal = false;
								}
							break;
						}
					}
				});
				
				for(i=0;i<IRB;i++){
					var tmpStr = RadioButtons[i].attr('name');
					if (CheckedRadioButtons[tmpStr] == false && returnVal){
						alert(RadioButtons[i].attr('caption') + ' is verplicht');
						$(this).focus();
						returnVal = false;
					}
				}
								
				if(returnVal && $(this).hasClass('ajaxform')){
					var form			= $(this);

					form.animate({ opacity : '0.25' }, 200, function(){
						var allFieldNames	= new Array();
						var DataString		= '';
						var DataSpacer		= '';
						var ajaxUrl			= form.attr('action');
						var ajaxType		= form.attr('method').toUpperCase();
		
						$('#'+$(this).attr('id')+' input, #'+$(this).attr('id')+' textarea').each(function(){
							if($(this).attr('name').length > 0){															   
								DataString += DataSpacer+$(this).attr('name')+'='+$(this).val();
								DataSpacer = '&';
							}
						});
											
						$.ajax({
							type: ajaxType,
							data: DataString,
							url: ajaxUrl,
							cache: false,
							complete: function(result){
								form.html(result.responseText);
								form.animate({ opacity : '1' }, 200);
							}
						});
					});
					returnVal = false;
				}
				return returnVal;
			break;
			default: return true; break;
			
		}
	});
}



// Function to set src on given image element
function setImage (id, img) {
	document.getElementById(id).src=img;
	return true;
}

var zIndex = 2;

function setZIndex(Obj){
	Obj.css('z-index', zIndex);
	zIndex = zIndex + 1;
}

var strBG = null;

function resizeBg(){
	if(isSafari()) alert('skdjaoidhkas');
	if(isIE() === false) resetBg();
}

function resetBg(){
	var windowObj		= $(window);
	var windowHeight	= str2int(windowObj.height());
	var windowWidth		= str2int(windowObj.width());
	
	var oldImgUrl		= (strBG == null || strBG.length == 0)? $('body').css('background-image').replace('url(','').replace(')','').replace(strBaseURL, '').replace('"', '').replace('"', '') : strBG;
	strBG				= oldImgUrl; 
	var newImgUrl		= strBaseURL + '/services/bgimage.php?file='+oldImgUrl+'&w='+windowWidth+'&h='+windowHeight;
	
	//alert(newImgUrl);
	
	if(isIE()){
		$('body').css('background-image', 'url('+newImgUrl+')');
	}else{
		$.ajax({
			url: newImgUrl,
			cache: false,
			success: function(){
				$('body').css('background-image', 'url('+newImgUrl+')');
			}
		});
	}
}

