// JavaScript Document

$(function() {
	
		//callback function to bring a hidden box back
		var currentBrowserItem = 1;
		if (!$.cookie("cartContent")) {
			$.cookie("cartContent","",{ path: '/' });
		}
		function changeBrowserItem(prevNext,hide,show) {
			$("#effect_"+currentBrowserItem).hide("drop",{direction:hide},500);
			var totalBrowserItems = document.getElementById("totalBrowserItems").innerHTML;
			setTimeout(function(){
				currentBrowserItem = currentBrowserItem + prevNext; 
				if (currentBrowserItem > totalBrowserItems ) {currentBrowserItem = 1;}
				if (currentBrowserItem  == 0 ) {currentBrowserItem = totalBrowserItems;}
				$("#effect_"+currentBrowserItem).show("drop",{direction:show},500);
				document.getElementById("currentBrowserItem").innerHTML = currentBrowserItem;
			}, 500)
		}
		function browserSearch() {
			
			$("#effect_"+currentBrowserItem).hide("drop",{direction:"left"},500);
			
			setTimeout(function(){
				$("#effect_0").show("drop",{direction:"right"},500);
				currentBrowserItem = 0; 
				document.getElementById("currentBrowserItem").innerHTML = "0";
			}, 500)
		}
		$("#loginPrompt").dialog({			
			autoOpen: false,
			modal:true,
			bgIframe:true,
			width:400,
			overlay: {
				background: '#000',
				opacity: 0.5
			}
		});

		$("#browse_search").click(function() { browserSearch(); return false; });
		$(".browse-left").click(function() { changeBrowserItem(-1,"right","left"); return false; });
		$(".browse-right").click(function() { changeBrowserItem(1,"left","right"); return false; });

		
		$(".addTickets").click(function(){
			
			$(this).closest('li').effect('transfer',{ 
				to: "#cartContent", 
				className: "ui-effects-transfer" }
			,500);
			var ticketId = $(this).closest('li').attr('id');
			ticketId = ticketId.replace("ticket-","");
			
			// ticketprijs
			var price =  $(this).closest('li').find('.ticketPrice').html();
			price = price.replace("\u20ac","");
			price = price.replace(",",".");
			price = price.replace("-","00");
			price = parseFloat(price);
			
			// aantal kaarten
			var N = $(this).closest('li').find('.selectNTickets').val();
			N = parseFloat(N);
			
			// totaal berekenen
			var total = N * price;
			
			// Winkelwagen totaal berekenen
			var cartTotal = $("#cartTotal").html();
			cartTotal = cartTotal.replace("\u20ac","");
			cartTotal = parseFloat(cartTotal);
			cartTotal = cartTotal + total;
			
			// Decimalen weergeven
			cartTotal = cartTotal.toFixed(2);
			total = total.toFixed(2);
			price = price.toFixed(2);
			var concertTitle = $("#concertTitle").html();
			var concertLocation = $("#concertLocation").html();
			var cartContent = "<div rel='ticket-" + ticketId + "' class='cartItem'><span class='cartItemTitle'>" + concertTitle + "</span><br /><span class='cartItemLocation'>" + concertLocation +"</span><br /><span class='cartItemTickets'>"+ N + " x &euro; "+ price +"</span><span class='cartItemSubtotal'>&euro; "+ total +"</span></div>";
			var cartContentArray = $.cookie('cartContent');
			$.cookie('cartContent',cartContentArray + ticketId + ',' + N  + ';',{ path: '/' });
			$("#cartContent").append(cartContent);
			$("#cartTotal").html("&euro; " + cartTotal);
			
		});
		$(".cartItem").live('mouseenter',function(){
			$(this).append('<div class="remove">x</div>');
		});
		$(".cartItem").live('mouseleave',function(){
			$('.remove').remove();
		});
		$(".remove").live('click',function(){
			
			var price = $(this).parent().find('.cartItemSubtotal').html();
			price = price.replace("\u20ac","");
			price = parseFloat(price);

			var cartTotal = $("#cartTotal").html();
			cartTotal = cartTotal.replace("\u20ac","");
			cartTotal = parseFloat(cartTotal);
			
			newCartTotal = cartTotal - price;
			newCartTotal = newCartTotal.toFixed(2);
			$("#cartTotal").html("&euro; " + newCartTotal);
			
			var cartItemIndex = $(this).parent().index();
			
			var cartContent = $.cookie('cartContent');
			cartContent = cartContent.split(";");
			cartContent.splice(cartItemIndex,1);
			cartContent = cartContent.join(";");			
			$.cookie('cartContent',cartContent,{ path: '/' });

			$(this).parent().remove();

		});
		$("#issuerList").load("ideal.php");
		
		$(".listItem.ticket").click(function(){
			ticketId = $(this).attr("id");
			ticketId = ticketId.replace("ticket-","");
			window.open("print-ticket.php?ticket="+ticketId);
		});
	});

	function login() {
		$("#loginPrompt").dialog('open');
	}
	function attach_file( p_script_url ) {
	  // create new script element, set its relative URL, and load it
	  script = document.createElement( 'script' );
	  script.src = p_script_url;
	  document.getElementsByTagName( 'head' )[0].appendChild( script );
	}
	function goto(lnk){
		window.location=lnk;
	}
	function WindowOnload(f) {
    var prev=window.onload;
    window.onload=function(){ if(prev)prev(); f(); }
	}
	sfHover = function() {
		var sfEls = document.getElementById("nav").getElementsByTagName("li");
		for (var i=0; i<sfEls.length; i++) {
			sfEls[i].onmouseover=function() {
				this.className+=" sfhover";
			}
			sfEls[i].onmouseout=function() {
				this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
			}
		}
	}
	if (window.attachEvent) window.attachEvent("onload", sfHover);

	function slideDown(id) {
		var button = document.getElementById('showAllButton_'+id);
		$('#showAll_'+id).show('drop',{direction: 'up'});
		button.setAttribute('onclick','slideUp("'+id+'")');
		button.innerHTML = 'Verbergen';
	}
	function slideUp(id) {
		var button = document.getElementById('showAllButton_'+id);
		$('#showAll_'+id).hide('drop',{direction: 'up'});
		button.setAttribute('onclick','slideDown("'+id+'")');
		button.innerHTML = 'Alles weergeven...';
	}
	function highlightEvents(date) {
		var tickets;
		for (i = 0; i < events.length; i++) {
		  if (date.getFullYear() == events[i][0]
			  && date.getMonth() == events[i][1] - 1
			  && date.getDate() == events[i][2]) {
			  if (events[i][3] == 1) {
				tickets = 'tickets_colored';
			  }
			  else {
				tickets = 'colored';
			  }
			return [true, tickets];
		  }
		}
	  return [true, 'not_colored'];
	}
	function updateAgendaSmall() {
		$("#datepicker").datepicker("destroy");
		var location = document.getElementById('location');
		attach_file("../lib/agendaSmall.php?location="+location.options[location.selectedIndex].value);
	
	}
function populate_date(month, day, year) {
  ge('date_month').value = month;
  ge('date_day').value = day;
  ge('date_year').value = year;
}

function ge(elem) {
  return document.getElementById(elem);
}

/*
 * Simple Ajax call method.
 *
 * From http://en.wikipedia.org/wiki/XMLHttpRequest
 */
function ajax(url, vars, callbackFunction) {
  var request =  new XMLHttpRequest();
  request.open("POST", url, true);
  request.setRequestHeader("Content-Type",
                           "application/x-www-form-urlencoded");

  request.onreadystatechange = function() {
    if (request.readyState == 4 && request.status == 200) {
      if (request.responseText) {
        callbackFunction(request.responseText);
      }
    }
  };
  request.send(vars);
}

