/* tell css that there is javascript support */
document.getElementsByTagName("html")[0].className += 'js';

/* fallback for browsers with no html5 support */
document.createElement('header');
document.createElement('footer');
document.createElement('nav');
document.createElement('section');
document.createElement('article');
document.createElement('aside');

var oForms = null;

var Website = {
	initialize: function(){
		$.isIE6 = !$.support.opacity && !window.XMLHttpRequest;
		var oColMain = $('#col-main');
		var oSelf = this;

		/* initialize forms & validation */
		oForms = new Settings.forms({ text: true, textarea: true, file: true, checkbox: true, radio: true, select: true, validate: true });
		
		/* start fancybox */
		$('a.fancyboxlink').fancybox({'overlayColor' : '#fff', onComplete: this.completeFancybox });
				
		/* home page */
		var oBlockHome = $('.block-home', oColMain);
		if(oBlockHome.length > 0){
			var oAccordionsHome = $('.accordion', oBlockHome);
			oAccordionsHome.tinyaccordion({ interval: true });
			oBlockHome.tinycarousel({ pager: true, controls: false, animation: false, callback: function(oEl){ $('li.active', oBlockHome).removeClass('active'); $(oEl).addClass('active'); }});
		}
		
		/* detail page */
		var oBlockInteresting = $('.block-interesting', oColMain);
		if(oBlockInteresting.length > 0){
			oBlockInteresting.tinyscrollbar({ 'axis': 'x', 'sizethumb': 50, 'size': 290 });
		}				
		
		/* cart page */
		var oBlockCart = $('.block-cart', oColMain);
		if(oBlockCart.length > 0){
			$('select', oBlockCart).change(function(oEvent){
				$.ajax({
					  url: LINK_ROOT + '/index.php?action=addProduct&' + 'amount=' + oEvent.target.value + '&bid=' + $(this).parent().parent().find('.bid')[0].value + '&choice=' + $(this).parent().parent().find('.choice')[0].value,
					  type: 'GET',
					  success: function() {
						  location.reload();
					  }
				});
			});
      $('#amount', oBlockCart).change(function(oEvent){
        $.ajax({
            url: LINK_ROOT + '/index.php?action=addProduct&' + 'amount=' + oEvent.target.value + '&bid=' + $(this).parent().parent().find('.bid')[0].value + '&choice=' + $(this).parent().parent().find('.choice')[0].value,
            type: 'GET',
            success: function() {
              location.reload();
            }
        });
      });
		}

		
		/* order page */
		var oCustomer = $('.block-customerswitch', oColMain);
		if(oCustomer.length > 0){
			oCustomer.mousedown(this.toggleCustomer);
			$('.block-newcustomer .radio-parent', oColMain).mousedown(function(oEvent){
				var oThis = $(this);
				$('.block-newcustomer .block-loader', oColMain).show();;
				$('.radio-dummy', oThis).addClass('checked');
				setTimeout(function(){ window.location = oThis[0].title; },1000);
			});
		}
		
		/* persona page */
		var oPersona = $('.block-persona', oColMain);
		if(oPersona.length > 0){
			$('.show-material', oPersona).click(function(){
				var oThis =  $(this), oParent = oThis.parents('.item'), oDownloads = $('.item-downloads', oParent);
				oDownloads.toggle();
				$('span',oThis).text(oDownloads.is(':visible') ? 'Verberg materiaal' : 'Toon materiaal');
				return false;
			});
		}		
		
		var oAddressContainer = $('#address-container');
		var oPostalAddress = $('input[name="tbl_order_postal_address"]');
		if(oAddressContainer.length > 0 && oPostalAddress.length > 0){
			this.toggleAdress(oPostalAddress,oAddressContainer);
			oPostalAddress.change(function(){ oSelf.toggleAdress(oPostalAddress,oAddressContainer); });
		}
		
		/* lightbox order form */
		$('#order-block-form .form-submit').live('click',function(){
			var oLightboxOrderForm = $('#order-block-form');
			if(oLightboxOrderForm.valid()){
				$.ajax({
					url: LINK_ROOT + '/index.php?action=addProduct&' + oLightboxOrderForm.serialize(),
					type: 'GET',
					dataType: 'json',
					success: function(oData) {
					$('#button-basket span').text('Winkelwagen ('+oData['total']+')');
					$('.block-lightbox-order .block-content').html('<p>' + oData['message'] + '</p>');
					$.fancybox.resize();
					setTimeout(function(){ $.fancybox.close(); },2000);
				}
				});
			}
			return false;
		});
		
		/* check books in cart */
		var oCartButton = $('#checkbooks');
		if(oCartButton.length > 0){
			oCartButton.click(function(oEvent){
				var bSubmit = false;
				$.ajax({
					  url: LINK_ROOT + '/index.php?action=checkshoppingcart',
					  type: 'GET',
					  dataType: 'json',
					  async: false,
					  success: function(oData) {
						  bSubmit = oData['result'];
					  }
				});
				
				if(!bSubmit){
					$('#checkbookshide').click();
				}
				
				return bSubmit;
			});
		}
		
		/* newsletter */
		$('#newsletter-block-form .form-submit').live('click',function(){					  
			
			var oNewsletterOrderForm = $('#newsletter-block-form');
			if(oNewsletterOrderForm.valid()){
				$.ajax({
					  url: LINK_ROOT + '/index.php?action=newslettersubscribe&' + oNewsletterOrderForm.serialize(),
					  type: 'GET',
					  dataType: 'json',
					  success: function(oData) {
						window.location.replace(LINK_ROOT + '/pagina/nieuwsbrief');
						//$('.block-newsletter .block-content').html('<div class="error">' + oData['message'] + '</div>');
					  }
				});
			}
			return false;
		});
		
		/* lightbox login form */
		$('#login-block-form .form-submit').live('click',function(){					  
			
			var oLightboxLoginForm = $('#login-block-form');
			if(oLightboxLoginForm.valid()){
				$.ajax({
					  url: oLightboxLoginForm[0].action,
					  type: 'POST',
					  data: oLightboxLoginForm.serialize(),
					  dataType: 'json',
					  success: function(oData) {
						if(oData['result'] == false){
							var oDivError = $('div.error', oLightboxLoginForm);
							if(oDivError.length > 0){
								oDivError.html(oData['data']);
							}else{
								oLightboxLoginForm.prepend('<div class="error">' + oData['data'] + '</div>');
							}
						}else{
							$('.block-lightbox-login .block-content').html('<p>'+ 'Inloggen is gelukt!' +'</p>');
					 		$.fancybox.resize();
							setTimeout(function(){ location.reload(); },2000);
						}

					  }
				});
			}
			return false;
		});		

		/* Decrap ie6 */
		if($.isIE6 && typeof(DD_belatedPNG) != 'undefined'){
			DD_belatedPNG.fix('.button-primary .ico, .button-secondary .ico, .thumb, .thumb .end, .image-border-big, .ribbon');
			$('#menu-main > li').ieHover();
			$('#menu-main ul a').css({'height': 31});
		}

	},
	toggleCustomer: function(oEvent){
		var oThis = $(oEvent.target).hasClass('block') ? $(oEvent.target) :  $(oEvent.target).parents('.block');
		$('.block-customerswitch').addClass('hide');
		oThis.removeClass('hide');
	},
	toggleAdress: function(oPostal,oAddressContainer){
		var oAddressInputs = $('input', oAddressContainer).not('#tbl_order_prive_house_number_suffix');
		var oAddresslabel = $('label', oAddressContainer);
		oAddresslabel = $.grep( oAddresslabel, function(n,i){if(i > 2 || i < 2){ return n;} });
		if(oPostal[1].checked){
			$('#private-adress').show();
			oAddressInputs.addClass('required');
			for(var i = oAddresslabel.length; i--;){
				oAddresslabel[i].innerHTML = oAddresslabel[i].innerHTML + ' *';
			}
		}else{
			$('#private-adress').hide();
			oAddressInputs.removeClass('required');
			for(var i = oAddresslabel.length; i--;){
				oAddresslabel[i].innerHTML = oAddresslabel[i].innerHTML.replace("*", "");
			}
		}
	},	
	completeFancybox: function(oEvent){
		var oFancyBox = $('#fancybox-content');
		var oFancyBoxForm = $('form', oFancyBox);
		if(oFancyBoxForm.length > 0){
			oForms.validate(oFancyBox);
			oForms.select(oFancyBoxForm);
			oForms.text(oFancyBoxForm);
			oForms.radio(oFancyBoxForm);
		}
	}
};

//Custom Methods
$.fn.ieHover = function(sClass){
	var sClass = sClass || 'hover';
	$(this).hover(function(){$(this).addClass(sClass);}, function(){$(this).removeClass(sClass);});
};

//Initialize
$(document).ready(function(){
	Website.initialize();
});
