$(document).ready(function() {
	$.ajax({
		url: webroot + 'js/jquery.easing.1.3.js',
		dataType: "script",
		async: false,
		success: function(js){if(jQuery.browser.safari){eval(js);}}
	});

	$.ajax({
		url: webroot + 'js/jquery.fancybox/jquery.fancybox-1.2.1.pack.js',
		dataType: "script",
		async: false,
		success: function(js){if(jQuery.browser.safari){eval(js);}}
	});

	$.ajax({
		url: webroot + 'js/jquery.jgrowl_compressed.js',
		dataType: "script",
		async: false,
		success: function(js){if(jQuery.browser.safari){eval(js);}}
	});

	$.ajax({
		url: webroot + 'js/jquery.validate.min.js',
		dataType: "script",
		async: false,
		success: function(js){if(jQuery.browser.safari){eval(js);}}
	});

	$.ajax({
		url: webroot + 'js/jquery.simplespy.js',
		dataType: "script",
		async: false,
		success: function(js){if(jQuery.browser.safari){eval(js);}}
	});

	$.ajax({
		url: webroot + 'js/jquery.tipsy.js',
		dataType: "script",
		async: false,
		success: function(js){if(jQuery.browser.safari){eval(js);}}
	});

	$.ajax({
		url: webroot + 'js/jquery.jcarousel.pack.js',
		dataType: "script",
		async: false,
		success: function(js){if(jQuery.browser.safari){eval(js);}}
	});

	$.ajax({
		url: webroot + 'js/tiny_mce/jquery.tinymce.js',
		dataType: "script",
		async: false,
		success: function(js){if(jQuery.browser.safari){eval(js);}}
	});

	$("#searchTitle").live("click", function(e) {
		if ($(this).attr("value") == "title") {
			$(this).attr("value", "");
		}
	});
	$("#searchActor").live("click", function(e) {
		if ($(this).attr("value") == "actor/actress, author, etc") {
			$(this).attr("value", "");
		}
	});
	$("#searchButton").live("click", function(e) {
		if ($(this).attr("value") == "actor/actress, author, etc") {
			$(this).attr("value", "");
		}
	});

	// Init fancybox
	$("a.fancybox").fancybox({
			'padding'				: 2,
			'hideOnContentClick'	: false,
			'overlayShow'			: false,
			'frameWidth'			: 650,
			'frameHeight'			: 580
	});
	$("a.fancybox-big").fancybox({
			'hideOnContentClick'	: false,
			'overlayShow'			: false,
			'frameWidth'			: 700,
			'frameHeight'			: 530,
			'callbackOnShow'		: function () {
										$('#info_replace').click(function() {
											$('#CatalogTitle').attr('value', $.trim($('#info_title').html()));
											$('#CatalogImdbId').attr('value', $.trim($('#info_imdbid').html()));
											$('#CatalogYear').attr('value', $.trim($('#info_year').html()));
											$('#CatalogGenre').attr('value', $.trim($('#info_genre').html()));
											$('#CatalogLanguage').attr('value', $.trim($('#info_language').html()));
											$('#CatalogPlot').html($.trim($('#info_plot').html()));
											$('#CatalogCast').attr('value', $.trim($('#info_cast').html()));
											$('#CatalogDirector').attr('value', $.trim($('#info_director').html()));
											$('#CatalogProducer').attr('value', $.trim($('#info_producer').html()));
										});
									}
	});
	$("a.fancybox-player").fancybox({
			'hideOnContentClick'	: false,
			'zoomOpacity'			: true,
			'overlayShow'			: true,
			'zoomSpeedIn'			: 500,
			'zoomSpeedOut'			: 500,
			'frameWidth'			: 540,
			'frameHeight'			: 365,
			'padding'				: 0
	});
	$("a.fancybox-player-extended").fancybox({
			'hideOnContentClick'	: false,
			'zoomOpacity'			: true,
			'overlayShow'			: true,
			'zoomSpeedIn'			: 500,
			'zoomSpeedOut'			: 500,
			'frameWidth'			: 450,
			'frameHeight'			: 350,
			'padding'				: 0,
			'callbackOnShow'		: function () {
										$('#trailer_replace').click(function() {
											$('#CatalogTrailer').attr('value', $.trim($('#embed_url').html()));
										});
									}
	});

	$(".tipsy-e").tipsy({gravity: 'e'});
	$(".tipsy-w").tipsy({gravity: 'w'});
	$(".package").mytipsy({gravity: 'w'});
	$(".icon-trailer").tipsy({gravity: 's'});
	
	function mycarousel_initCallback(carousel)
	{
		// Disable autoscrolling if the user clicks the prev or next button.
		carousel.buttonNext.bind('click', function() {
			carousel.startAuto(0);
		});
	
		carousel.buttonPrev.bind('click', function() {
			carousel.startAuto(0);
		});
	
		// Pause autoscrolling if the user moves with the cursor over the clip.
		carousel.clip.hover(function() {
			carousel.stopAuto();
		}, function() {
			carousel.startAuto();
		});
	};
	
	jQuery('#mycarousel').jcarousel({
		auto: 2,
		scroll: 4,
		wrap: 'last',
		initCallback: mycarousel_initCallback
	});

	
	$("#imdb_show").live("mouseover", function() {
		$(this).attr("href", $(this).attr("href") + "/" + $("#CatalogImdbId").attr("value"));
	});
	
	$("#trailer_fetcher").live("mouseover", function() {
		$(this).attr("href", $(this).attr("href") + "/" + $("#CatalogImdbId").attr("value"));
	});
	
	$('ul.testimonial').simpleSpy(5);
	
	// Hide first cart list
	$("#cart li:first").hide();

	// Event when visitor click order button
	$("a.order-button").click(function() {
		var catalog = (this.id).split("_");
		var catalogId = catalog[1];
		
		var thumbX = $("#thumb_" + catalogId).offset().left;
		var thumbY = $("#thumb_" + catalogId).offset().top;
		
		var basketX = $("#cartbox").offset().left;
		var basketY = $("#cartbox").offset().top;
		
		var gotoX = basketX - thumbX;
		var gotoY = basketY - thumbY;
		
		var newImageWidth 	= $("#thumb_" + catalogId).width() / 3;
		var newImageHeight	= $("#thumb_" + catalogId).height() / 3;
		
		if ($("#cart li").length == 1) {
			$("#customize_link").show("slow", function() {
				$("#menu").showTipsy({gravity: 'e'});					   
				$("#cart-status").showTipsy({gravity: 'e'});
			});
		}
		
		$("#thumb_" + catalogId).clone().css({'position' : 'absolute', 'left' : thumbX, 'top' : thumbY}).prependTo(this).animate({opacity: 0.1, marginLeft: gotoX, marginTop: gotoY, width: newImageWidth, height: newImageHeight}, 1200, function() {
			$(this).remove();
			$("#cartloader").html('<img src="' + webroot + 'img/loading.gif" />');
			
			$.ajax({  
				type: "POST",  
				url: webroot + "carts/ajax_add_item",  
				data: {catalog_id: catalogId},
				dataType: "json",
				success: function(response) {
					var newItemHTML = '<li class="cart-item" id="cartitem_' + response.id + '">' + response.title.substring(0, 30) + ' - ' + response.size + ' <img src="' + webroot + 'img/icon_delete.png" alt="delete_' + response.id + '" id="delete_' + response.id + '" /></li>';
					$("#cart li:first").before(newItemHTML);
					$("#cart li:first").hide();
					$("#cart li:first").show("slow");
					$("#cartloader").html('');
					$("#cartstatusloader").html('<img src="' + webroot + 'img/loading2.gif" />');
					
					$.ajax({  
						type: "GET",  
						url: webroot + "carts/ajax_get_cart_status",  
						dataType: "json",
						success: function(response) {
							var newStatusHTML = response.total_size + ' - ' + response.dvd_number + ' DVD - ' + response.price + '<span id="cartstatusloader"></span>';
							$("#cart-status").animate({ opacity: 0 }, 500);
							$("#cart-status").html(newStatusHTML);
							$("#cart-status").show("slow");
							$("#cart-status").animate({ opacity: 1 }, 500);
							$("#cartstatusloader").html('');
						}  
					});
	
				}
			});

		});
	});
	
	// Event when visitor delete an item from cart
	$("#cart li img").live("click", function(event) {
		var cartDetail = (this.id).split("_");
		var cartDetailId = cartDetail[1];	
		$("#cartloader").html('<img src="' + webroot + 'img/loading.gif" />');
	
		$.ajax({  
			type: "POST",  
			url: webroot + "carts/ajax_delete_item",  
			data: {cart_detail_id: cartDetailId},
			dataType: "json",
			success: function(response) {
				$("#cartitem_" + cartDetailId).hide("slow",  function() {
					$(this).remove();
					$("#cartloader").html('');
					$("#cartstatusloader").html('<img src="' + webroot + 'img/loading2.gif" />');

					$.ajax({  
						type: "GET",  
						url: webroot + "carts/ajax_get_cart_status",  
						dataType: "json",
						success: function(response) {
							if (response.total_size != '0 Bytes') {
								var newStatusHTML = response.total_size + ' - ' + response.dvd_number + ' DVD - ' + response.price + '<span id="cartstatusloader"></span>';
								$("#cart-status").animate({ opacity: 0 }, 500);
								$("#cart-status").html(newStatusHTML);
								$("#cart-status").animate({ opacity: 1 }, 500);
							} else {
								$("#cart-status").animate({ opacity: 0 }, 500);
								$("#cart-status").html('Your cart is empty<span id="cartstatusloader"></span>');
								$("#cart-status").animate({ opacity: 1 }, 500);
								$("#customize_link").hide("slow");
							}
							$("#cartstatusloader").html('');
							
							$("#pageloader").html('<img src="' + webroot + 'img/loading2.gif" />');
							$(".page").load(webroot + 'carts/index .page', null, function() {
								$("#pageloader").html('');
								initFancyBox();
								inputsHandler();
								initLocations();
							});
							
						}  
					});
				});
			}  
		});  
	});
		
	$(".dvd-content li:first").hide();
	
	// Event when visitor insert media to dvd
	$("#currentbasket li").live("click", function(event) {
		var basketItem = (this.id).split("_");
		var basketItemDvdNumber = basketItem[1];		
		var basketItemId = basketItem[2];
		$("#dvd_statusloader_" + basketItemDvdNumber).html('<img src="' + webroot + 'img/loading3.gif" />');
		
		$.ajax({  
			type: "POST",  
			url: webroot + "carts/ajax_insert_item",  
			data: {dvd_number: basketItemDvdNumber, id: basketItemId},
			dataType: "json",
			success: function(response) {
				if (response.status == 'ok') {
					$.jGrowl("Media has been added succesfully");
					$("#currentbasketitem_" + basketItemDvdNumber + "_" + basketItemId).hide("slow",  function() {
						$(this).remove();

						var newItemHtml = '<li id="dvditem_' + basketItemDvdNumber + '_' + basketItemId + '" class="dvd-item">' + response.new_title + '<img src="' + webroot + 'img/icon_delete.png" alt="delete dvd" id="remove_' + basketItemDvdNumber + '_' + basketItemId + '"></li>';
						$("#dvd_" + basketItemDvdNumber + " li:first").before(newItemHtml);
						$("#dvd_" + basketItemDvdNumber + " li:first").hide();
						$("#dvd_" + basketItemDvdNumber + " li:first").show("slow"); 
						$("#dvd_status_" + basketItemDvdNumber + " span.dvd-size").html(response.dvd_size);
					});
				}
				else {
					$.jGrowl("Sorry!!!, current DVD is full");
				}
				$("#dvd_statusloader_" + basketItemDvdNumber).html('');
			}
		});  
	});
	
	// Event when visitor delete an media from dvd
	$(".dvd-content li img").live("click", function(event) {
		var dvdItem = (this.id).split("_");
		var dvdNumber = dvdItem[1];
		var dvdItemId = dvdItem[2];
		$("#dvd_statusloader_" + dvdNumber).html('<img src="' + webroot + 'img/loading3.gif" />');
	
		$.ajax({  
			type: "POST",  
			url: webroot + "carts/ajax_remove_item",  
			data: {id: dvdItemId, dvd_number: dvdNumber},
			dataType: "json",
			success: function(response) {
				if (response.status == 'ok') {
					$("#dvditem_" + dvdNumber + "_" + dvdItemId).hide("slow",  function() {
						$(this).remove();
						$("#dvd_status_" + dvdNumber + " span.dvd-size").html(response.dvd_size);
					});
				}
				else {
					$.jGrowl("Sorry!!!, current DVD is full");
				}
				$("#dvd_statusloader_" + dvdNumber).html('');
			}  
		});  
	});
	
	// Input event
	function inputsHandler() {
		$("#inputName").focus(function () {
			if ($(this).attr("value") == "name") {
				$(this).attr("value", "").css({color: "white"});
			}
		}).blur(function() {
			if ($(this).attr("value") == "") {
				$(this).attr("value", "name").css({color: "red"});
			}
		});
		$("#inputEmail").focus(function () {
			if ($(this).attr("value") == "email") {
				$(this).attr("value", "").css({color: "white"});
			}
		}).blur(function() {
			if ($(this).attr("value") == "") {
				$(this).attr("value", "email").css({color: "red"});
			}
		});
		$("#inputAddress").focus(function () {
			if ($(this).attr("value") == "address") {
				$(this).attr("value", "").css({color: "white"});
			}
		}).blur(function() {
			if ($(this).attr("value") == "") {
				$(this).attr("value", "address").css({color: "red"});
			}
		});
		$("#inputPostcode").focus(function () {
			if ($(this).attr("value") == "postcode") {
				$(this).attr("value", "").css({color: "white"});
			}
		}).blur(function() {
			if ($(this).attr("value") == "") {
				$(this).attr("value", "postcode").css({color: "red"});
			}
		});
		$("#inputPhone").focus(function () {
			if ($(this).attr("value") == "phone") {
				$(this).attr("value", "").css({color: "white"});
			}
		}).blur(function() {
			if ($(this).attr("value") == "") {
				$(this).attr("value", "phone").css({color: "red"});
			}
		});
		$("#inputMessage").focus(function () {
			if ($(this).val() == "message") {
				$(this).val("").css({color: "white"});
			}
		}).blur(function() {
			if ($(this).val() == "") {
				$(this).val("message").css({color: "red"});
			}
		});
	}
	inputsHandler();

	// Event when visitor choose a provinces drop-down list
	function initLocations() {
		$(".provinces").change(function() {
			$("#locationloader").html('<img src="' + webroot + 'img/loading2.gif" />');						
			$.ajax({  
				type: "POST",  
				url: webroot + "locations/ajax_get_cities_by_province_id", 
				data: {province_id: $(".provinces option:selected").attr("value")},
				dataType: "json",
				success: function(response) {
					$(".cities").html('');
					$.each(response, function(i, r) {
						$("<option>").attr("value", r.city_id).text(r.name).appendTo(".cities");				  
					});
					$("#locationloader").html('');	
				}  
			});
		});
	}
	initLocations();
	
	$("#shippingForm").validate({
		rules: {
			shippingName: "required",
			shippingEmail: {
				required: true,
				email: true
			},
			shippingPhone: {
				required: true,
				minlength: 7
			},
			shippingAddress: {
				required: true,
				minlength: 10
			}
		},
		messages: {
			shippingName: "* Silahkan masukkan nama anda",
			shippingEmail: "* Silahkan masukkan alamat email yang valid",
			shippingPhone: {
				required: "* Silahkan masukkan nomor telepon anada",
				minlength: "* Nomor telepon minimum 7 karakter"
			},
			shippingAddress: {
				required: "* Silahkan masukkan alamat pengiriman yang ingin dituju",
				minlength: "* Alamat pengiriman minimum 10 karakter"
			}
		}
	});

	$("#contactForm").validate({
		rules: {
			contactName: "required",
			contactEmail: {
				required: true,
				email: true
			},
			contactPhone: {
				minlength: 7
			},
			contactMessage: {
				required: true,
				minlength: 10
			}
		},
		messages: {
			contactName: "* Silahkan masukkan nama anda",
			contactEmail: "* ilahkan masukkan alamat email yang valid",
			contactPhone: {
				minlength: "* Nomor telepon minimum 7 karakter"
			},
			contactMessage: {
				required: "* Silahkan tuliskan pesan anda",
				minlength: "* Pesan anda terlalu pendek. Tuliskan pesan anda minimum 10 karakter"
			}
		},
		submitHandler: function () {
			$("#contactloader").html('<img src="' + webroot + 'img/loading.gif" />');
			$.ajax({  
				type: "POST",  
				url: webroot + "dvd/ajax_send_contact_us", 
				data: {contact_name: $("#inputName").attr("value"), contact_email: $("#inputEmail").attr("value"), contact_phone: $("#inputPhone").attr("value"), contact_message: $("#inputMessage").val()},
				dataType: "json",
				success: function(response) {
					if (response.status == 'success') {
						$("#inputName").attr("value", "");
						$("#inputEmail").attr("value", "");
						$("#inputPhone").attr("value", "");
						$("#inputMessage").attr("value", "");
						$.jGrowl("Terima kasih, pesan anda telah terkirim");
					}
					else {
						$.jGrowl("Maaf, pesan anda belum terkirim. Silahkan ulangi.");
					}
					$("#contactloader").html('');	
				}  
			});
			return false;			
		}
	});

	// Event when user agree and checkout
	$("#btn_checkout").live("click", function(event) {
		var agree = $("#checkout_agree:checked").val();

		if (agree ==  '1') {
			$("#checkoutloader").html('<img src="' + webroot + 'img/loading.gif" />');
			$.ajax({  
				type: "POST",  
				url: webroot + "carts/ajax_go_checkout", 
				data: {
					order_shipping_name: $("#OrderShippingName").html(),
					order_shipping_email: $("#OrderShippingEmail").html(),
					order_shipping_phone: $("#OrderShippingPhone").html(),
					order_shipping_message: $("#OrderShippingMessage").html(),
					order_shipping_address: $("#OrderShippingAddress").html(),
					order_detail_ref_id: $("#OrderDetailRefId").html(),
					order_detail_total_dvd: $("#OrderDetailTotalDvd").html(),
					order_detail_dvd_list: $("#OrderDetailDvdList").html(),
					order_cost_download: $("#OrderCostDownload").html(),
					order_cost_shipping: $("#OrderCostShipping").html(),
					order_cost_total: $("#OrderCostTotal").html(),
					order_payment_method: $("#OrderPaymentMethod").html()
				},
				dataType: "json",
				success: function(response) {
					if (response.status == 'success') {
						$.jGrowl("Terima kasih, informasi pesanan anda telah terkirim.");
						document.location = webroot + 'carts/checkout';
					}
					else {
						$.jGrowl("Maaf, pesanan anda belum terkirim. Silahkan ulangi.");
					}
					$("#checkoutloader").html('');	
				}  
			});
		} else {
			$.jGrowl("Anda harus mencentang tanda setuju sebelum bisa melakukan checkout");
		}
	});
	
	// Event when user do basic search
	$("#searchbox").keydown(function(event) {
		if (event.keyCode == 13) {
			if ($("#searchbox").attr("value").length == 0) {
				$.jGrowl("Mohon isikan kata kunci terlebih dahulu");
			}
			else {
				document.location = webroot + 'catalogs/index/title:' + $("#searchbox").attr("value");
			}
		}
	});
	
	
	// Toggle
	//Hide (Collapse) the toggle containers on load
	$(".toggle_container").hide(); 

	//Switch the "Open" and "Close" state per click
	$(".trigger").toggle(function(){
			$(this).addClass("active");
		}, function () {
			$(this).removeClass("active");
		});

	//Slide up and down on click
	$(".trigger").click(function(){
		$(this).next(".toggle_container").slideToggle("slow");
	});
	
	$('textarea.tinymce').tinymce({
		mode : 'textarea',
		script_url : webroot + 'js/tiny_mce/tiny_mce.js',
		theme : "simple",		
		content_css : webroot + "css/tinymce.css"
	});
	
	$("#orderdate").datepicker({
		dateFormat: 'yy/mm/dd',
		onSelect: function(dateText, inst) {
			document.location = webroot + 'admin/orders/index/' + dateText;
		}
	});
	$('#announcement_trigger').trigger('click');
});