var loadingImg = webroot+'img/ajax-loader.gif';
var loadingImgBlue = webroot+'img/ajax-loader-blue.gif';

function getId(ele_id) {
	var split = ele_id.split("_");
	return split[1];
}

function setFlash(message) {
	if ($('#flashMessage').length == 0){
		$('#content').prepend('<div id="flashMessage" class="message"></div>');
	}
	$('#flashMessage').html(message);
}
function clearFlash() {
	$('#flashMessage').remove();
}
function setError(field_id, message) {
	$parent = $('#'+field_id).parent();
	$parent.children('div.error-message').remove();
	$parent.append('<div class="error-message">'+message+'</div>');
}
function clearError(field_id) {
	$parent = $('#'+field_id).parent();
	$parent.children('div.error-message').remove();
}
function setFieldLoader(field_id) {
	$parent = $('#'+field_id).parent();
	$parent.children('div.loader').remove();
	$parent.append('<div class="loader"><img src="'+loadingImg+'" /></div>');
}
function clearFieldLoader(field_id) {
	$parent = $('#'+field_id).parent();
	$parent.children('div.loader').remove();
}

function searchInput () {
	if ($('input#SearchValue').attr('title') !== undefined) {
		vtitle = $('input#SearchValue').attr('title');
		$('input#SearchValue')
		.val(vtitle)
		.focus(function(){
			if ($(this).val()==vtitle) {
				$(this).val('');
			}
		})
		.blur(function(){
			if ($(this).val()=='') {
				$(this).val(vtitle);
			}
		});
	}
}

/*
function flashObjectActions () {
	$("embed").hide();
	$("embed[wmode!=transparent]").attr('wmode', 'transparent');
	$("object").prepend('<param name="wmode" value="transparent" />');
	$("embed").show();
}
*/

function popup() {
	$('a.popup').click(function(){
		var href = $(this).attr('href');
		var shref = href.split("/");
		window.open(href, shref[shref.length-1], 'width=700,height=500,scrollbars=yes,toolbar=no,location=no'); 
		return false;
	});
}

function slideAdminTools() {
	$('#adminTools li a#slideTools').click(function() {
		var top = $('#adminTools').css('top');
		if (top == '-208px'){
			$.post(webroot+"pages/adminToolsSession/1");
			$("#adminTools").animate({"top": "0px"}, { "duration": 300, "easing": "easeOutSine" });
		}
		else{
			$.post(webroot+"pages/adminToolsSession/0");
			$("#adminTools").animate({"top": "-208px"}, { "duration": "slow", "easing": "easeOutSine" });
		}
	});
	return false;
}

var selected_nav_a_index = undefined;
// dropdown functions for navigation
function dropDownNavigationTools() {
	
	var selected_nav_li, selected_nav_li_ul, selected_nav_li_ul_index, old_nav_li_ul_index; // general vars
	var navTimeout = new Array(); // timeout for all subnavs
	var heights = getSubNavHeights(); // heights for all subnavs
	
	$("ul#navigation > li > a").mouseover(function(){
		
		// set old index
		old_nav_a_index = selected_nav_a_index;
		
		// stop from hiding after a timeout
		clearTimeout(navTimeout[selected_nav_li_ul_index]);
		
		// set new values
		selected_nav_a_index = $('ul#navigation li a').index(this);
		selected_nav_li = $(this).parent("li");
		selected_nav_li_ul = $(selected_nav_li).children('ul');
		selected_nav_li_ul_index = $('ul#navigation li ul').index(selected_nav_li_ul);
		
		// if isnt already selected
		if (selected_nav_a_index !== old_nav_a_index){
			subNavHide(); // hide other subs
			subNavShow(selected_nav_li_ul, heights[selected_nav_li_ul_index]);
		}
		
	});
	
	$('ul#navigation > li > ul').mouseover(function(){
		clearTimeout(navTimeout[selected_nav_li_ul_index]);
	});
	
	$('ul#navigation > li > ul, ul#navigation > li > a').mouseout(function(){
		clearTimeout(navTimeout[selected_nav_li_ul_index]);
		navTimeout[selected_nav_li_ul_index] = setTimeout('subNavHide()', 500);
	});
	
}
function subNavShow(selected_nav_li_ul, height) {
	$(selected_nav_li_ul).css({'height':0});
	$(selected_nav_li_ul).animate({
      "height": height+"px"
    }, { "duration": 200, queue: false });
}
function subNavHide() {
	$("ul#navigation li ul:visible").stop(true, true);
	$('ul#navigation li ul:visible').animate({
      "height": "0px"
    }, { "duration": 100, queue: false, complete: function(){ $(this).hide(); clearActiveNav(); } });
}
function clearActiveNav() {
	selected_nav_a_index = undefined;
}
function getSubNavHeights() {
	var heights = new Array();
	//var val = '';
	$.each($("ul#navigation li ul"), function(i){
		heights[i] = $(this).innerHeight();
		//val = val+'-'+heights[i];
	});
	//setFlash(val);
	return heights;
}

function external() {
	$("a[rel='external']").click(function(){
    	window.open($(this).attr('href'));
    	return false;
    });
}

function fancyBox() {
	$("a.fancybox").fancybox();
}

function block_paginate(container, links, url) {
	$(links).click(function(){
		if (!$(this).hasClass('active')){
			// set vars
			var id = $(this).html();
			var ur = webroot+url+id;
			var containerHeight = $(container).innerHeight();
			
			// activate nav
			$(links).removeClass('active');
			$(this).addClass('active');
			
			// set loading img and fixed height
			$(container).css({
				'background':'url('+loadingImg+') center 20px no-repeat',
				'height':containerHeight+'px'
			});
			// fadeout items
			$(container+' div.newsitems_container').fadeOut('fast', function () {
				$.ajax({
			        type: "POST",
			        url: ur,
			        error: function(msg){
			            setFlash(msg);
			        },
			        success: function(msg){
			        	// hide loading img
			        	$(container).css({'background':'none'});
			        	// load new items
			        	$(container).html(msg);
			        	// animate container to new height
			        	var blockHeight = $(container+' div.newsitems_container').innerHeight();
			        	$(container).animate({"height": blockHeight+"px"}, { "duration": 350, "easing": "easeOutSine" });
			        }
			    });
			});
		}
		return false;
	});
}

function blockSlide() {
	$('div.block.slide div.head').hover(
		function () {
			$(this).addClass('hover');
		},
		function () {
			$(this).removeClass('hover');
		}
	);
	$('div.block.slide div.main').hide();
	$('div.block.slide div.head').click(function(){
		$(this).toggleClass('open');
		$(this).next('.main').slideToggle('slow');
	});
}

function round(n, d) {
	n = n - 0;
	if (d == null) d = 2;
	var f = Math.pow(10, d);
	n += Math.pow(10, - (d + 1));
	n = Math.round(n * f) / f;
	n += Math.pow(10, - (d + 1));
	n += '';
	return d == 0 ? n.substring(0, n.indexOf('.')) :  n.substring(0, n.indexOf('.') + d + 1);
}

function number_format( number, decimals, dec_point, thousands_sep ) {
    var n = number, c = isNaN(decimals = Math.abs(decimals)) ? 2 : decimals;
    var d = dec_point == undefined ? "," : dec_point;
    var t = thousands_sep == undefined ? "." : thousands_sep, s = n < 0 ? "-" : "";
    var i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", j = (j = i.length) > 3 ? j % 3 : 0;
    return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
}

function validateUserForm() {
	$('input#UserCarConsumerPrice').keyup(function(){
		var val = $(this).val()+"";
		val = val.replace('.', '');
		val = parseInt(val);
		if (val > 99000) {
			$(this).val('');
			setError($(this).attr('id'), 'Dit bedrag kan maximaal 99.000 zijn.');
		}
		else{
			if (isNaN(val) || val == 0) {
				$(this).val('');
			}
			else{
				$(this).val(number_format(val, 0, '', '.'));
			}
		}
	});
}

function validateUserAddingDataForm() {
	$('input#UserCarConsumerPrice').keyup(function(){
		var val = $(this).val()+"";
		val = val.replace('.', '');
		val = parseInt(val);
		if (val > 99000) {
			$(this).val('');
			setError($(this).attr('id'), 'Dit bedrag kan maximaal 99.000 zijn.');
		}
		else{
			if (isNaN(val) || val == 0) {
				$(this).val('');
			}
			else{
				$(this).val(number_format(val, 0, '', '.'));
			}
		}
	});
	
	$('input#UserCarConsumerPrice, input#UserYearIncome, input#UserOwnPaymentAMonth').keyup(function(){
		var val = $(this).val()+"";
		val = val.replace('.', '');
		val = parseInt(val);
		if (isNaN(val) || val == 0) {
			$(this).val('');
		}
		else{
			$(this).val(number_format(val, 0, '', '.'));
		}
	});
}

(function($) {
	$.fn.customFadeIn = function(speed, callback) {
		$(this).fadeIn(speed, function() {
			if(!$.support.opacity)
				$(this).get(0).style.removeAttribute('filter');
			if(callback != undefined)
				callback();
		});
	};
	$.fn.customFadeOut = function(speed, callback) {
		$(this).fadeOut(speed, function() {
			if(!$.support.opacity)
				$(this).get(0).style.removeAttribute('filter');
			if(callback != undefined)
				callback();
		});
	};
	$.fn.customFadeTo = function(speed,to,callback) {
		return this.animate({opacity: to}, speed, function() {
			if (to == 1 && jQuery.browser.msie)
				this.style.removeAttribute('filter');
			if (jQuery.isFunction(callback))
				callback();
		});
	};
})(jQuery)


