$(document).ready(function() {
	initPaginationModel();
		
	doGeboortedatumPicker();
	
	doTabs();
	
	doImageGallery();
	
	doOpenTabInternalLink();
	
	doModelvdMaand();
	
	doLedenSorter();
	
	doSearchInit();
	
	doCommentFormValidation();
	
	doRegistrationFormValidation();
	
	doUsernameSite();
	
	doReviewFormValidation();
	
	doTellafriendFormValidation();
	
	doLoginFormValidation();
	
	doLinkNewWindow();

//	doCarpicker();
});

function initPaginationModel() {
    var num_entries = $('#searchresult-hidden div.model').length;

    // Create pagination element
    $("#pagination").pagination(num_entries, {
        callback: pageselectCallback,
        num_edge_entries: 2,
        num_display_entries: 5,
        items_per_page:9,
        prev_text: 'vorige',
        next_text: 'volgende'
    });
}

function pageselectCallback(page_index, jq){
	var num_entries = $('#searchresult-hidden div.model.filtershow').length;
	var new_content = '';
	$('#searchresult').empty();
	var start_at_index = (page_index * 9);
	var intCurrent;
	
/*	intDone = 0;
	intCurrent = start_at_index;
	
	while (intDone < 9 && intCurrent <= num_entries) {
		if ($('#searchresult-hidden div.model:eq(' + intCurrent + ')').hasClass("filtershow")) {
			new_content = $('#searchresult-hidden div.model:eq(' + intCurrent + ')').clone();
			$('#searchresult').append(new_content);
			
			intDone++;
		}
		
		intCurrent++;
	}*/

	for (intCurrent = start_at_index; intCurrent < (start_at_index + 9); intCurrent++) {
		//$('#debug').html($('#debug').html() + "Current = " + intCurrent + "<br />");
		if ($('#searchresult-hidden div.model:eq(' + intCurrent + ')').hasClass("filtershow")) {
			new_content = $('#searchresult-hidden div.model:eq(' + intCurrent + ')').clone();
			$('#searchresult').append(new_content);
			//$('#debug').html($('#debug').html() + "<strong>append: " + intCurrent + "</strong><br />");
		}
	}

    return false;
} 

function doFilter() {
	//$('#debug').html("");
	
	//$('#debug').html($('#debug').html() + "Merk = " + $('#brand').val() + "<br />");
	
	//$('#searchresult-hidden div.model:eq(1)').removeClass("filtershow");
	//$('#searchresult-hidden div.model .brand').val('brandid', '10').removeClass("filtershow");

	if ($('#brand').val() == "ALL") {
		jQuery.each($('#searchresult-hidden div.model'), function() {
				$(this).addClass("filtershow");
		});
		
		$('.pager-wrapper').css('display', 'block');
		
		initPaginationModel();
	}
	else {	
		jQuery.each($('#searchresult-hidden div.model'), function() {
				$(this).removeClass("filtershow");
				//$(this).addClass("filtershow");
		});
	
		jQuery.each($('#searchresult-hidden div.model'), function() {
				//$('#debug').html($('#debug').html() + $(this).children('.brandid').text() + "<br />");
				
				//$('#debug').html($('#debug').html() + ($(this).children('.brandid').text() == $('#brand').val()) + "<br />");
				if ($(this).children('.brandid').text() == $('#brand').val()) {
					//$('#debug').html($('#debug').html() + 'deze');	
					$(this).addClass("filtershow");
				}
		});
		
		$('.pager-wrapper').css('display', 'none');
		
		// rebuild the list
		//var num_entries = $('#searchresult-hidden div.model.filtershow').length;
		var num_entries = $('#searchresult-hidden div.model').length;
		$('#debug').html($('#debug').html() + "num_entries = " + num_entries + "<br />");
		var new_content = '';
		$('#searchresult').empty();
		var intCurrent;
		
		for (intCurrent = 0; intCurrent <= num_entries; intCurrent++) {
			//$('#debug').html($('#debug').html() + "Current = " + intCurrent + "<br />");
			if ($('#searchresult-hidden div.model:eq(' + intCurrent + ')').hasClass("filtershow")) {
				new_content = $('#searchresult-hidden div.model:eq(' + intCurrent + ')').clone();
				$('#searchresult').append(new_content);
				//$('#debug').html($('#debug').html() + "<strong>append: " + intCurrent + "</strong><br />");
			}
		}
	}
}
 
function doCommentFormValidation() {
	$("#comment_form").validate( {
			messages: {
			comment: {
				required: ''
			},
			name: {
				required: ''
			},
			email: {
				required: ''
			},
			captcha: {
				required: ''
			}
		}	
	});
}

function doRegistrationFormValidation() {
	$("#member_form").validate( {
		messages: {
			screen_name: {
				required: ''
			},
			username: {
				required: ''
			},
			email: {
				required: ''
			},
			password: {
				required: ''
			},
			password_confirm: {
				required: ''
			},
			captcha: {
				required: ''
			}
		}	
		
	});
}

function doTellafriendFormValidation() {
	$("#mail-a-friend").validate( {
		messages: {
			email: {
				required: ''
			},
			name: {
				required: ''
			},
			senderemail: {
				required: ''
			},
			toelichting: {
				required: ''
			}
		}	
	});
}

function doReviewFormValidation() {
	$("#entryform").validate( {
			messages: {
			field_id_129: {
				required: ''
			},
			field_id_130: {
				required: ''
			},
			field_id_155: {
				required: ''
			},
			field_id_156: {
				required: ''
			},
			field_id_132: {
				required: ''
			},
			field_id_133: {
				required: ''
			},
			field_id_131: {
				required: ''
			}
		}	
	});
}

function doLoginFormValidation() {
	$("#login-form form").validate( {
		messages: {
			username: {
				required: ''
			},
			password: {
				required: ''
			}
		}	
	});
	
	strUserDefault = $("#login-username").val();
	strPassDefault = $("#login-password").val();

	$("#login-username").click(function() {
		if ($("#login-username").val() == strUserDefault) {
			$("#login-username").val("");
		}
	});
	
	$("#login-password").click(function() {
		if ($("#login-password").val() == strPassDefault) {
			$("#login-password").val("");
		}
	});
}

function doTabs() {
	$('ul.tabset.incontent a').each(
		function (intIndex) {
			$(this).bind (
				"click",
				function(){
					doTabsResetAll();
					$('#panel-' + intIndex).css('display', 'block');
					$('#tab-' + intIndex).addClass('active');
				}
			);
		}
	);
	
	$('ul.tabset.ajax a').each(
		function (intIndex) {
			$(this).bind (
				"click",
				function(){
					doTabsResetAll();
					$('#panel-' + intIndex).css('display', 'block');
						
					$.get('/tabs-block-ajax/' + intIndex + '/', function(data) {
						$('#panel-' + intIndex).html(data);
					});

					$('#tab-' + intIndex).addClass('active');
				}
			);
		}
	);
	$('.tabset.ajax #tab-0').click(); // set default content

	$('ul.tabset.side a').each(
		function (intIndex) {
			$(this).bind (
				"click",
				function(){
					doTabsSideResetAll();
					$('#panel-side-' + intIndex).css('display', 'block');
					$('#tab-side-' + intIndex).addClass('active');
				}
			);
		}
	);
}

function doTabsResetAll() {
	$('ul.tabset.incontent a').each(
		function (intIndex) {
			$('#tab-' + intIndex).removeClass('active');
			$('#panel-' + intIndex).css('display', 'none');
		}
	);
	
	$('ul.tabset.ajax a').each(
		function (intIndex) {
			$('#tab-' + intIndex).removeClass('active');
			$('#panel-' + intIndex).css('display', 'none');
		}
	);
}

function doTabsSideResetAll() {
	$('ul.tabset.side a').each(
		function (intIndex) {
			$('#tab-side-' + intIndex).removeClass('active');
			$('#panel-side-' + intIndex).css('display', 'none');
		}
	);
}

function doGeboortedatumPicker() {
	if (getSavedGeboortedatum() == "") {
		$('#geboortedatum-picker').DatePicker({
			flat: true,
			date: '1910-01-01',
			current: '1975-01-01',
			calendars: 1,
			starts: 0,
			view: 'years',
			onChange: function(formated, dates) {
				if (formated != '1910-01-01') {
					$("#geboortedatum-jaar").val(formated.substr(0, 4));
					$("#geboortedatum-maand").val(formated.substr(5, 2));
					$("#geboortedatum-dag").val(formated.substr(8, 2));
				}
			}
	
		});
	}
	else {
		$('#geboortedatum-picker').DatePicker({
			flat: true,
			date: '1910-01-01',
			current: '1975-01-01',
			calendars: 1,
			starts: 0,
			view: 'days',
			onChange: function(formated, dates) {
				if (formated != '1910-01-01') {
					$("#geboortedatum-jaar").val(formated.substr(0, 4));
					$("#geboortedatum-maand").val(formated.substr(5, 2));
					$("#geboortedatum-dag").val(formated.substr(8, 2));
				}
			}
	
		});

		$('#geboortedatum-picker').DatePickerSetDate(getSavedGeboortedatum(), true);

	}
	

}

function getSavedGeboortedatum() {
	if ($("#geboortedatum-jaar").val() != "" && $("#geboortedatum-maand").val() != "" && $("#geboortedatum-dag").val() != "" && $("#geboortedatum-jaar").val() != "0" && $("#geboortedatum-maand").val() != "0" && $("#geboortedatum-dag").val() != "0") {
		return $("#geboortedatum-jaar").val() + "-" + $("#geboortedatum-maand").val() + "-" + $("#geboortedatum-dag").val();
	}
	else {
		return '';
	}

}

function doImageGallery(){
	$("#pikame").PikaChoose({
		show_captions:false,
		slide_enabled:false,
		show_prev_next:false,
		thumb_width:80,
		thumb_height:60
	});
}

function doOpenTabInternalLink() {
	var hash = document.location.hash.substr(1,document.location.hash.length);
	
	if (hash == "reviews") {
		$('#tab-2').click();
	}
	if (hash == "weblog") {
		$('#tab-3').click();
	}	
	if (hash == "videos") {
		$('#tab-4').click();
	}	
}

function doModelvdMaand() {
	$('.modelvdmaand .img-link').text($('#modelvdmaand').text());
}

function doLedenSorter() {
	var strOrderBy = $.cookie('exp_user_orderby');
	var strSort = $.cookie('exp_user_sort');
	
	if (strOrderBy == null) {
		strOrderBy = "username";
	}
	
	if (strSort == null) {
		strSort = "asc";
	}

	$("#user_orderby").val(strOrderBy);
	$("#user_sort").val(strSort);

}

function doCarpicker() {
	$("#select-hebik_1").sexyCombo({ 
		triggerSelected: true, 
		changeCallback: function(){
				$('#{embed:show}').show();
			}
	});
}

function doSearchInit() {
	var strSearchDefault = $("#search-keywords").val();

	$("#search-keywords").click(function() {
		if ($("#search-keywords").val() == strSearchDefault) {
			$("#search-keywords").val("");
		}
	});	
	
	$("#search-keywords").blur(function() {
		if ($("#search-keywords").val() == "") {
			$("#search-keywords").val(strSearchDefault);
		}
	});	

}

function doYouTube() {
	$('a[href^="http://www.youtube.com"]').flash(
		{ height: 385, width: 640 },
		{ version: 8 },
		function(htmlOptions) {
			$this = $(this);
			htmlOptions.src = $this.attr('href');
			$this.before($.fn.flash.transform(htmlOptions));						
		}
	);
	
	$('a[href^="http://www.youtube.com"]').hide();
}

function doLinkNewWindow(){
	var hostname = window.location.hostname;
	hostname = hostname.replace("www.","").toLowerCase();
	var a = document.getElementsByTagName("a");	
	this.check = function(obj){
		var href = obj.href.toLowerCase();
		return (href.indexOf("http://")!=-1 && href.indexOf(hostname)==-1) ? true : false;				
	};
	this.set = function(obj){
		obj.target = "_blank";
		obj.className = obj.className + " external";
	};	
	for (var i=0;i<a.length;i++){
		if(check(a[i])) set(a[i]);
	};		
};

function doUsernameSite() {
	$('#the-username').blur(function() {
		$('#the-username-site').val($('#the-username').val());
	});
}

function doVergelijker(strCol, intVal) {
	if (intVal != "" && intVal != 0) {
		$.get("/modellen/vergelijk-uitvoeringen-ajax/" + intVal + "/", function(data) {
			$("#" + strCol).html(data);
		});
	}
	else {
		$("#" + strCol).html("<div class=\"spacer\">Kies hierboven een uitvoering...</div>");
	}
	
}