$(document).ready(function() {
	
	
	curRate = $('#vid_rate ul').attr('class');
	 
		
	// Open modal
	$('.showModal').click(function(){
		$($(this).attr('href')).show()
		$('#modalBg').show()
		if($.browser.msie & jQuery.browser.version < 7) $('select:not(div.modalWrapper select)').hide();	// IE 6 workaround
		return false;
	})
	
	// Sluit modal
	$('a.btnCloseModal').click(function() {
		$(this).parent().hide();
		$('#modalBg').hide()
		if($.browser.msie & jQuery.browser.version < 7) $('select:not(div.modalWrapper select)').show();	// IE 6 workaround
		return false;
	})

	// formulier verzenden
	$('#btnAddVideoSubmit').click(function() {
		    if ( ($('#inpEmbedCode').attr('value')) == '' )
			alert ('Vul de code of URL in van de video');
		    else 
			if ( $('#inpAddEmail').attr('value') == '' || $('#inpAddEmail').attr('value').indexOf('@') == -1 || $('#inpAddEmail').attr('value').indexOf('.')==-1 )
			    alert ('Vul een geldige email adres en embed code of URL in.');
			else
			{
			    var str = $('#addVideoFrm').serialize();
			    if ( str.indexOf('inpAddMerk=&') > -1 || str.indexOf('inpAddModel=&') > -1) {
				alert ('Selecteer een merk en een model.');
			    }
			    else {
				var url = '/ajax/saveVideo.php';
				var soort = str.indexOf('vimeo') > -1 ? 'vimeo' : 'youtube';
				str = str.replace(/inpAddMerk/,'merkID');
				str = str.replace(/inpAddModel/,'modelID');
				str = str.replace(/inpDescr/,'titel');
				str = str.replace(/inpEmbedCode/,'code');
				str += '&soort=' + soort;
				doSend(url, str );
			    }
			}
	});
	
	// Modal achtergrond
	$('<div id="modalBg"></div>').appendTo($('body'))

	bindBtnSearch();
	bindAlgemeen();
	bindBtnPlay();
	bindComments();
	bindEmpty();
	showOccasions();
			     
});

 function doSend(url, serializedStr) {
 $.ajax({
      type: "POST",
      url: url,
      data: serializedStr,
      success: function(msg){
		      //alert( msg );
		         }
	});

 $('a.btnCloseModal').trigger('click');
}

function showRequest(formData, jqForm, options) { 
               var queryString = $.param(formData); 
               var formElement = jqForm[0]; 
		alert('About to submit: \n\n' + queryString); 
    return true; 
} 

function showResponse(responseText, statusText)  { 
     alert('status: ' + statusText + '\n\nresponseText: \n' + responseText +                                                                                         '\n\nThe output div should have already been updated with the responseText.'); 
} 

function bindBtnPlay()
{
    $(".btnPlay,.thumb").click(function()
	{
	    $.get(  '/ajax/video.php',
		    {'videoID': $(this).parent().attr('id'), 'play': 'yes'},
		    function (data)
		    {
			$("#vid_player").replaceWith(data);
			/*var sourceOriginal = $("#embedded").attr('src');
			var sourceNew = sourceOriginal+'&amp;autoplay=1';
			$("#embedded").attr('src', sourceNew);*/
			return false;
		    },
		    'html'
	    );

	        $.get(  '/ajax/comments.php',
		    {'videoID': $(this).parent().attr("id")},
		    function (data)
		    {
			$("#vid_comments").replaceWith(data);
			bindComments();
			return false;
		    },
		    'html'
	    );
		
		changeOccasions($(this).parent().attr("id"));
		
	}
    );
}

function bindEmpty()
{
	$('.makeEmpty').each(function() {
			$(this).val($(this).attr('title')).addClass('grayedOut')
		}).focus(function() {
			if($(this).val() == $(this).attr('title')) $(this).val('').removeClass('grayedOut')
		}).blur(function(){
			if($(this).val() == '') $(this).val($(this).attr('title')).addClass('grayedOut')
		}).trigger('blur')
}

function hideHidden()
{
    $("input[type=hidden]").hide();
}

function bindAlgemeen()
{
    $(".modelselect").attr("disabled", "disabled");

    $.get(  "/ajax/getMerken.php",
	    {"merkID": $("[name=getmerk]").val()},
	    function(data)
	    {
		$(".merkselect").html(data);

		if ($(".merkselect").val() > 0)
		{
		    $(".merkselect").trigger("change");
		}
	    }
    );

    $(".merkselect").change(
	function()
	{
	  // We gaan er hier vanuit dat een select altijd in een p zit en die p in een form
	    /*var form = $(this).parent().parent();
	    var modelselect = form.find(".modelselect");
*/
	    $(".modelselect").attr("disabled", "disabled");

	    $.get(  "/ajax/getModellen.php",
		    {"merk": $(this).val(),
		     "modelID": $("[name=getmodel]").val()},
		    function(data)
		    {
			$(".modelselect").html(data);
			$(".modelselect").attr("disabled", "");
		    }
	    );
	}
    );

    $("#vid_searchForm .modelselect").change(
	function()
	{
	    window.location = "/index.php?merkID="+$("select[name=merkID]").fieldValue()+"&modelID="+$("select[name=modelID]").fieldValue();
	}
    );
}


function bindBtnSearch()
{
	$(".btnSearch").click(
				function()
				{
					$.get
					(
						"/ajax/searchVideo.php",
						{'search':$("#searchInput").val()},
						function(data)
						{
							window.location = '/index.php?merkID='+$(data).find('merk').text()+'&modelID='+$(data).find('model').text()+'&typesearch='+$(data).find('typesearch').text();
						},
						'xml' //Belangrijk voor IE8, in combinatie met zetten van header in het php-script
					);
				}
			      );
	//Een enter na het intypen van zoekterm roept de zoekbutton click-event aan. 
	$("#searchInput").keypress(function(e)
        {
            code= (e.keyCode ? e.keyCode : e.which);
            if (code == 13) $(".btnSearch").trigger("click");
        });
	
}

//functie om get variabelen uit de huidige URL te halen. 
$.extend({
  getUrlVars: function(){
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
      hash = hashes[i].split('=');
      vars.push(hash[0]);
      vars[hash[0]] = hash[1];
    }
    return vars;
  },
  getUrlVar: function(name){
    return $.getUrlVars()[name];
  }
});

//Laat occasions zien relevant voor de auto waarop gezocht is in de video database. Het script laadt een andere pagina en knipt daar de occasions uit.
function showOccasions()
{
	//Voorkom dat functie wordt uitgevoerd bij het laden van de video-homepage, daar is nog geen merkID gegeven, het script duurt dan 30s en gaat voor getModellen
	if(!($.getUrlVar('merkID') === undefined))
	{
		$.get
		( 'ajax/getOccasions.php',
		 {'merkID':$.getUrlVar('merkID'), 'modelID':$.getUrlVar('modelID')},
		 function(data)
		 {
			$("#occasions-detail").html($(data).find('htmlcode').text());
			var hoogte = $(data).find('hoogte').text();
			$("#occasions").css('height',hoogte);
		 },
		 'xml'
		);
	}
}

//Bij een klik op een video uit de zoekresultaten worden de getoonde occasions aangepast. Een video aanklikken verandert de URL niet, dus moet
//het merk en model worden opgehaald via de video ID (gebeurt ook in getOccasions.php). Daarmee worden dan de occasions opgehaald
function changeOccasions(video)
{
	var merk;
	var model;
	$.get
	( "ajax/getOccasions.php",
	 {"videoID": video},
	 function(data)
	 {
		merk = $(data).find("merk").text();
		model = $(data).find("model").text();
		$.get
		( "ajax/getOccasions.php",
		 {"merkID": merk, "modelID": model},
		 function(data)
		 {
			$("#occasions-detail").html($(data).find("htmlcode").text());
			var hoogte = $(data).find("hoogte").text();
			$("#occasions").css("height",hoogte);
		 }
		);
	 },
	 'xml'
	);
}

function bindComments()
{
// Rating in description hover
	$('#vid_rate ul li a').hover(
		function()
		{
			var nummer = $(this).attr('title');
			
			$('#vid_rate:not(.rated) ul').attr('class','').addClass('rate'+nummer)	
		},
		function()
		{
			$('#vid_rate:not(.rated) ul').attr('class',curRate)
		}
	).click(
		function()
		{
		    var nummer = $(this).attr('title');

		    $.get(  "/ajax/setBeoordeling.php",
			    {
				beoordeling: nummer,
				videoID:    $("input[name=videoID]").fieldValue()
			    },
			    function(data)
			    {
				nummer = data;
				$('#vid_rate ul').attr('class','').addClass('rate'+nummer)
				$('#vid_rate').addClass('rated');

				$('#vid_rate span').text('Dank u wel!');
				setCookie('beoordelingvideo'+$("input[name=videoID]").fieldValue(), true, 1);
			    }
		    );

		    return false;
		}
	);



    $("#commentForm .btn").click(
	function()
	{
	    if (($("input[name=naam]").fieldValue() != $("input[name=naam]").attr("title")) &&
	      ($("textarea[name=reactie]").fieldValue() != $("textarea[name=reactie]").attr("title")))
	    {
	      $.get( "/ajax/setReactie.php?ID="+getUniqueId(),
		      {	naam:	$("input[name=naam]").fieldValue(),
			  videoID: $("input[name=videoID]").fieldValue(),
			  reactie: $("textarea[name=reactie]").fieldValue()},
		      function(data)
		      {
			  $("#vid_comments").replaceWith(data);
			  bindComments();
		      }
	      );

	      window.location.href = '#comments';
	      return false;
	    }
	    else
	    {
		alert("U moet beide velden invullen");
		return false;
	    }
	}
    );

    $("#vid_comments .vid_pages a").click(
	function()
	{
	    $.get(  "/ajax/comments.php",
		    {	videoID:    $("input[name=videoID]").fieldValue(),
			pagina:	    ($(this).text()-1)},
		    function(data)
		    {
			$("#vid_comments").replaceWith(data);
			bindComments();
		    }
	    );
	    return false;
	}
    );

    bindEmpty();
    hideHidden();

    return false;
}

function setCookie(c_name,value,expiredays)
{
  var exdate=new Date();
  exdate.setDate(exdate.getDate()+expiredays);
  document.cookie=c_name+ "=" +escape(value)+
  ((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
}

function getUniqueId()
{
  var dateObject = new Date();
  var uniqueId =
  dateObject.getFullYear() + '' +
  dateObject.getMonth() + '' +
  dateObject.getDate() + '' +
  dateObject.getTime();

  return uniqueId;
};

