// JavaScript Document

var jsonData = null;

$(document).ready(function() {
						   
	_formulieren();			   
// PNG FIX 
	
	
	 
	 $(window).bind("resize", function(){
		var scrollHeight = parseInt($(window).height())-122;
		$("#scroller").css('height',scrollHeight+'px');
	}).trigger("resize");

	$("#scroller").trigger("resize");
	//$("#scroller").jScrollPane();
	
	$("#tabs").tabs();
				
						   
	$.pngfix('/style/imres/images/common/pixel.gif');
	$('.login IMG, #submenu ul li a.active').pngfix();

	$('.content HR').each(function() {
		$(this).prev().css('margin-bottom','0');							   
	});


	$(".products-list TBODY TR").hover(function() {
		$(this).children().css('background-color', '#EAEDF3');
	},
	function() {
		$(this).children().css('background-color', '');	
	});	
	
	


// HOOFDMENU

	$("#menu UL LI:not(.menu-split)").hover(function() {

			var $prev = $(this).prev();
			var $next = $(this).next();
			
			if ($prev) {
				$prev.removeClass('menu-split').addClass('menu-split-left');
			}
			if ($next) {
				$next.removeClass('menu-split').addClass('menu-split-right');
			}		
	},
	function() {
			var $prev = $(this).prev();
			var $next = $(this).next();
			
			if ($prev) {
				$prev.removeClass('menu-split-left').addClass('menu-split');
			}
			if ($next) {
				$next.removeClass('menu-split-right').addClass('menu-split');
			}			
	});
	
	$("#menu UL LI:last A").addClass('menu-last');
	
	//menuItemLength();

// SUBMENU

	$('#content-default-submenu ul li:last:not(.active)').css('background','none');
	$('#content-default-submenu ul li.active').prev().css('background','none');


// SEARCH

	$("#search-input").focus(function() {
		if( $(this).val() == $("#search-check").val() ){
			$(this).val('');
		}
	});

	$("#search-form").submit(function() {
		var searchVal = $("#search-input").val();
		if (searchVal > '' && searchVal != 'web & product search') {
			location = '/web/show/search/web/'+searchVal;
		}
		return false;
	});
	
// LOGIN
	$('.login').click(function(){
		$('html').css('overflow', 'hidden');
		$('body').css('min-height', '100%').css('height', 'auto');
		$('#popup').css('display','block');
		
		$('#popup-header, #popup-footer, #popup-middle').pngfix();
		
		
		return false;
	});
	
	$('#popup .close, #popup-back').click(function(){
		$('html').css('overflow', 'auto');
		$('body').css('height', '100%').css('min-height', 'auto');
		$('#popup').css('display','none');
		return false;
	});
	
// WEBSHOP MENU

	$('.content-categorie-content ul li[class=""]').hover(
		function(){
			$(this).addClass('active');
		}, function(){
			$(this).removeClass('active');
		}
	);
	


	
// ADD PRODUCT TO CART

	$('.cart-add-product').click(function() {							  
										  
										  
		var row = $(this).parents('tr').eq(0);
		
		var productId = $('.cart-product-id', row).val();
		var productUnit = $('.cart-product-unit', row).val();
		var productSpecialOffer = $('.cart-product-special-offer').val();
		var productQuantity = $('.cart-product-quantity', row).val();
		
		if (parseInt(productQuantity) > 0) {

			$.getJSON('/shop/ajaxAddCartProduct/'+productId+'/'+productUnit+'/'+productSpecialOffer+'/'+productQuantity+'/', function(data) {
				if (data.success == 'true') {
					alert('Product added to cart');
					$("#cart-trigger").show();
					$("#qty-products").text(data.qty);
				$("#qty-products-link").css('display','inline');
				}
			});
		}
		
		return false;
	});
	
	$('.cart-add-product-item').click(function() {
		
		var productId = $('.cart-product-id').val();
		var productUnit = $('.cart-product-unit').val();
		var productSpecialOffer = $('.cart-product-special-offer').val();
		var productQuantity = $('.cart-product-quantity').val();
		
		
		if (parseInt(productQuantity) > 0) {

			$.getJSON('/shop/ajaxAddCartProduct/'+productId+'/'+productUnit+'/'+productSpecialOffer+'/'+productQuantity+'/', function(data) {
				if (data.success == 'true') {					
					
					alert('Product added to cart');
					$("#qty-products-link").css('display','inline');
					$("#qty-products").text(data.qty);
					$("#cart-trigger").show();
				}
			});
		}
		
		return false;
	});
		
// ADD PRODUCT TO CART

	$('.cart-edit-product').click(function() {
		var row = $(this).parents('tr').eq(0);
		
		var productId = $('.cart-product-id', row).val();
		var productUnit = $('.cart-product-unit', row).val();
		var productSpecialOffer = $('.cart-product-special-offer',row).val();
		var productQuantity = $('.cart-product-quantity', row).val();	
		
		
		if (parseInt(productQuantity) > 0) {
			
		
			var data = json_parse(
				$.ajax({
					   type: 'GET',	
					   url: '/shop/ajaxEditCartProduct/'+productId+'/'+productUnit+'/'+productSpecialOffer+'/'+productQuantity+'/', 
					   dataType: 'json', 
					   async: false
				}).responseText
			);
			
			
			if (data.success == 'true') {
				
				if ($('.cart-product-item-price', row).length) {
					$('.cart-product-item-price', row).text(number_format(data.itemPrice,2,',','.'));
					$('.cart-product-total-price', row).text(number_format(data.totalPrice,2,',','.'));
					$('.cart-total').text(number_format(data.totals.total,2,',','.'));
					$('.cart-subtotal').text(number_format(data.totals.subtotal,2,',','.'));
				}
				
				$("#qty-products").text(data.qty);
				alert('Cart updated');
				
				
			}
		}
		
		return false;
	});
	
	$('.cart-delete-product').click(function() {
		var row = $(this).parents('tr').eq(0);
		var productId = $('.cart-product-id', row).val();
		var productUnit = $('.cart-product-unit', row).val();
		
		if (confirm('Are you sure you want to delete this product from your cart?')) {
			var data = json_parse(
				$.ajax({
					   type: 'GET',	
					   url: '/shop/ajaxDeleteCartProduct/'+productId+'/'+productUnit+'/', 
					   dataType: 'json', 
					   async: false
				}).responseText
			);	
			
			if (data.success == 'true') {
				row.remove();
				$('.cart-total').text(number_format(data.totals.total,2,',','.'));
				$('.cart-subtotal').text(number_format(data.totals.subtotal,2,',','.'));
				
				$.each(data.totals.tax, function(i,item) {
						$('.cart-tax-'+i).text(number_format(item,2,',','.'));
				});
				
				if (data.qty < 1) {
					$("#qty-products-link").css('display','none');
				}
				else {
					$("#qty-products").text(data.qty);
				}
				
			}
		}		
		return false;
	});
	
// Consignee adres ophalen

	$("#consigneeTrigger").change(function() {
		var sel = $("#consigneeTrigger OPTION:selected").eq(0).val();
		
		
		$.getJSON('/shop/ajaxGetConsignee/'+sel+'/', function(data) {
			
			if (data.id) {
				$("#consigneeAddress1").val(data.consigneeAddress1);	
				$("#consigneeAddress2").val(data.consigneeAddress2);	
				$("#consigneeName").val(data.consigneeName);	
				$("#consigneePostcode").val(data.consigneePostcode);	
				$("#consigneeCity").val(data.consigneeCity);	
				$("#consigneeCountry OPTION[value="+data.consigneeCountry+"]").attr('selected','selected');	
			}
			else {
				$("#consigneeAddress1").val('');	
				$("#consigneeAddress2").val('');	
				$("#consigneeName").val('');	
				$("#consigneePostcode").val('');	
				$("#consigneeCity").val('');	
				$("#consigneeCountry OPTION:selected").val('');	
			}
		});
	});
	
	
	
// Print pagina
	
	$(".print-page").click(function() {
		openWin($(this).attr('href'),600,400);
		return false;
	});

	
});


function openWin(url, wi, he) {
  var win = window.open(url,'popup_win','width='+wi+',height='+he+',resizable=yes,status=no,toolbar=no,menubar=no, scrollbars=yes');
 
  var b = screen.width;
  var h = screen.height;
 
  b = (b - wi) / 2;
  h = (h - he) / 2;
 
  win.moveTo(b,h);
  
  return false;
}


function menuItemLength() {
	$("#menu UL LI:last").addClass('menu-last');
	var qtyItems = $("#menu UL LI:not(.menu-split)").length;
	var qtySplit = qtyItems-1;
	var splitLength = qtySplit*2;
	var totalLength = 738-splitLength;
	var itemLength = Math.floor(totalLength / qtyItems);
	
	var leftOver = totalLength % qtyItems;
	var lastWidth = itemLength+leftOver;
					
	$("#menu UL LI").each(function() {
		if (!$(this).hasClass("menu-split") ) {
			$(this).css('width', itemLength+'px');
			//$(this).css('padding', '0 15px');
		}
	});
	$("#menu UL LI:last").css('width', lastWidth+'px');
	
}




function number_format (number, decimals, dec_point, thousands_sep)
{
  var exponent = "";
  var numberstr = number.toString ();
  var eindex = numberstr.indexOf ("e");
  if (eindex > -1)
  {
    exponent = numberstr.substring (eindex);
    number = parseFloat (numberstr.substring (0, eindex));
  }
  
  if (decimals != null)
  {
    var temp = Math.pow (10, decimals);
    number = Math.round (number * temp) / temp;
  }
  var sign = number < 0 ? "-" : "";
  var integer = (number > 0 ? 
      Math.floor (number) : Math.abs (Math.ceil (number))).toString ();
  
  var fractional = number.toString ().substring (integer.length + sign.length);
  dec_point = dec_point != null ? dec_point : ".";
  fractional = decimals != null && decimals > 0 || fractional.length > 1 ? 
               (dec_point + fractional.substring (1)) : "";
  if (decimals != null && decimals > 0)
  {
    for (i = fractional.length - 1, z = decimals; i < z; ++i)
      fractional += "0";
  }
  
  thousands_sep = (thousands_sep != dec_point || fractional.length == 0) ? 
                  thousands_sep : null;
  if (thousands_sep != null && thousands_sep != "")
  {
	for (i = integer.length - 3; i > 0; i -= 3)
      integer = integer.substring (0 , i) + thousands_sep + integer.substring (i);
  }
  
  return sign + integer + fractional + exponent;
}



var _formulieren = function(){
	
	// Form checker
	$('form').submit(function(){					
		var txt = '';

		// standaard form check
		$(this).find('input, textarea').each(function(){
			var label = $(this).parents('td').prev().children('label').text();
			
			switch($(this).attr('alt')){
				case 'required':
					if( $(this).attr('alt') && $(this).val().length == 0 ){
						txt += ' - ' + label + ' is required.\n';
					}
				break;
				case 'email':
					if(!emailValidation($(this).val())){
						txt += ' - ' + label + ' is not a valid e-mailaddress.\n';
					}
				break;
				case 'url':
					if(!urlValidation($(this).val())){
						txt += ' - ' + label + ' is geen geldige URL.\n';
					}
				break;
				case 'number':
					if(!intValidation($(this).val())){
						txt += ' - ' + label + ' is geen geldig nummer.\n';
					}
				break;
				case 'date':
					if(!dateValidation($(this).val())){
						txt += ' - ' + label + ' is geen geldige datum notatie gebruik (dd-mm-jjjj).\n';
					}
				break;
			}
		});
		
		if(txt && txt.length > 0) {
			var header = '___________________________________________________________\n\n';
			var footer = '___________________________________________________________\n\n';
			alert(header + txt + footer);
			return false;
		}
	});
}


var emailValidation = function(str) {
	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	if (str.indexOf(at)==-1){
	   return false
	}

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
	   return false
	}

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		return false
	}

	 if (str.indexOf(at,(lat+1))!=-1){
		return false
	 }

	 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		return false
	 }

	 if (str.indexOf(dot,(lat+2))==-1){
		return false
	 }
	
	 if (str.indexOf(" ")!=-1){
		return false
	 }
	 return true					
}

var urlValidation = function(url){
    var RegExp = /^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/;
    if(RegExp.test(url)){
        return true;
    }else{
        return false;
    }
}

var intValidation = function(int){
	var valid = '1234567890';
	var bool = true;
	
	if(int.length > 0){
		for(i=0; i<int.length; i++){
			if( valid.indexOf(int[i]) < 0 ){
				bool = false;
			}
		}
	}
	else{
		bool = false;	
	}
	
	return bool;
}

var dateValidation = function(date){
	var valid = '1234567890';
	var bool = true;
	var glue = '-';
	var check=new Date();
		
	
	if(date.length == 10){
		if(date.indexOf(glue) == 2 && date.lastIndexOf(glue) == 5 && intValidation(date.replace(/-/g,''))){
			dateParts = date.split('-',3);
			
			check.setFullYear(dateParts[2],(dateParts[1]-1),dateParts[0]);
			
			debug(check);
			var day = (check.getDate() < 10 ? '0'+check.getDate() : check.getDate());
			var month = parseInt(check.getMonth()+1) < 10 ? '0'+check.getMonth()+1 : check.getMonth()+1;
			var year = check.getFullYear()
			test = day.toString().replace('00','0')+'-'+month.toString().replace('00','0')+'-'+year;
			
			
			
			debug(month);
			debug(date);
			debug(test);
			
			if(date != test){
				bool = false;
			}
			
		}
		else{
			debug('fout bij cehck 2');
			bool = false;	
		}
	
	}
	else{
		bool = false;	
	}
	
	return bool;
}
