﻿
function toggleMenu(itemGroupGuid){
	var item = $('ToggleVisiblity_'+itemGroupGuid ); 
	if( item != null ) { 
		item.style.display = ( item.style.display == 'none' ? 'block' : 'none' ); 
		
		if (item.visible()){
			$('icon'+itemGroupGuid).src = "../images/menu/redIcon.gif";
		}
		else{
			$('icon'+itemGroupGuid).src = "../images/menu/blackIcon.gif";
		}
	}
	return false;
}

function validateFormData()
{	  

	if ($('useExistentCustomer').value == 'false'){
		var faktureringFornavn = document.getElementById('billToFirstname').value;
		if(faktureringFornavn == '')
		{
			alert('Indtast venligst navn');
			document.getElementById('billToFirstname').focus();
			return false;
		}
			
		var faktureringVej = document.getElementById('billToAddress').value;  
		if(faktureringVej == '')
		{
			alert('Indtast venligst adresse');
			document.getElementById('billToAddress').focus();
			return false;
		}
		
		var faktureringPostnummer = document.getElementById('billToZipcode').value;  
		if(faktureringPostnummer == '')
		{
			alert('Indtast venligst postnummer');
			document.getElementById('billToZipcode').focus();
			return false;
		}
		
		if(faktureringPostnummer.length < 4)
		{
			alert('Indtast venligst postnummer p&aring; mindst 4 cifre');
			document.getElementById('billToZipcode').focus();
			return false;
		}
		
		var charpos = faktureringPostnummer.search("[^0-9]");
		if(charpos >= 0)
		{
			alert('Indtast venligst kun tal i postnummer ');
			document.getElementById('billToZipcode').focus();
			return false;
		}
		
		var faktureringBy = document.getElementById('billToCity').value;  
		if(faktureringBy == '')
		{
			alert('Indtast venligst by');
			document.getElementById('billToCity').focus();
			return false;
		}
		

		var faktureringTlfnummer = document.getElementById('billToPhone').value;  
		if(faktureringTlfnummer != '')
		{
		
			var charpos = faktureringTlfnummer.search("[^0-9]");
			if(charpos >= 0)
			{
				alert('brug kun tal i telefonnumer');
				document.getElementById('billToPhone').focus();
				return false;
			}
			if(faktureringTlfnummer.length < 8)
			{
				alert('telefonnummer skal v&aelig;re p&aring; mindst 8 tal');
				document.getElementById('billToPhone').focus();
				return false;
			}
		}
		
		var faktureringEmail = document.getElementById('billToEmail').value;  
		if(faktureringEmail == '')
		{
			alert('Indtast venligst email adresse');
			document.getElementById('billToEmail').focus();
			return false;
		}

		if(!validEmail(faktureringEmail))
		{
			alert('Indtast venligst valid email adresse');
			document.getElementById('billToEmail').focus();
			return false;
		}
	}

  return true;
}
	

function validEmail(email)
{
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	return filter.test(email);
}
	
function adresses () 
{
    if (document.getElementById('deliveryAtLocation').checked == true
        || document.getElementById('deliveryAtLocationIncl').checked == true
	    || document.getElementById('deliveryOutCity').checked == true
	    || document.getElementById('deliveryOutCityIncl').checked == true) {
		document.getElementById('deliveryLocation').style.display = "";
		document.getElementById('dateText').innerHTML = "Leveringsdato:";
		document.getElementById('timeText').innerHTML = "Leveringstidspunkt:";
		//document.getElementById('deliveryText1').style.display = "none";
		//document.getElementById('deliveryText2').style.display = "none";
	}
	else{
		document.getElementById('deliveryLocation').style.display = "none";
		document.getElementById('dateText').innerHTML = "Afhentningsdato:";
		document.getElementById('timeText').innerHTML = "Afhentningstidspunkt:";
		//document.getElementById('deliveryText1').style.display = "block";
		//document.getElementById('deliveryText2').style.display = "block";
  }
  
  if (document.getElementById('deliveryOutCity').checked == true){
		document.getElementById('outsideHolstebro').style.display = "";
  }
  else{
		document.getElementById('outsideHolstebro').style.display = "none";
    }
	
  if (document.getElementById('deliveryAtLocationIncl').checked == true){
		document.getElementById('insideHolstebroIncl').style.display = "block";
  }
  else{
		document.getElementById('insideHolstebroIncl').style.display = "none";
   }
    if (document.getElementById('deliveryOutCityIncl').checked == true) {
        document.getElementById('outsideHolstebroIncl').style.display = "";
    }
    else {
        document.getElementById('outsideHolstebroIncl').style.display = "none";
    }
  
}

function payment () 
{
	if (document.getElementById ('paymentPickUp').checked==true){
		document.getElementById('paymentPickUpDiv').style.display = "";
	}
	else{
		document.getElementById('paymentPickUpDiv').style.display = "none";
  }
}


function AddSelectionToCart( itemGuid )
{
		var minNumberOfOrders = parseInt( $F('minNumberOfOrders'));
		var itemMinGroupSelections = parseInt( $F('itemMinGroupSelections'));
		var itemMaxGroupSelections = parseInt( $F('itemMaxGroupSelections'));

    var result = ""
    var numberOfPersons = parseInt( document.getElementById('textbox_NumberOfPersons').value);
    var minNumberOfOrdersValue = parseInt( minNumberOfOrders );

    if (isNaN(minNumberOfOrdersValue))
    {
        minNumberOfOrdersValue = -1;
    }
    
    if (isNaN(numberOfPersons))
    {
        alert("Indtast venligst et gyldigt antal personer");
        
        return;
    }
           
    var errorSet = false;
    
    var itemTotalSelections = 0;
    var groupTotalSelections = 0;
    
    var selectionTables = $('selectionDiv').select('table.selectionTable');
    selectionTables.each(function(table){
		
			
			var numberOfResults = 0;	
			
			var partsListGroupGuid = parseInt( table.id.substring(14) );
    
			var minimumSelections =  parseInt( $F('minSelections' + partsListGroupGuid));
			var maximumSelections =  parseInt( $F('maxSelections' + partsListGroupGuid));
			
    
			var checkboxes = $('selectionTable'+partsListGroupGuid).select('input[type="checkbox"]');
			for( i = 0 ; i < checkboxes.length ; i++ )
			{
					if( checkboxes[i].checked )
					{
							numberOfResults++;
							result += ( result == "" ? "" : "," ) + checkboxes[i].value;
					}
			}        
	    
	    itemTotalSelections = itemTotalSelections + numberOfResults;
	    
	    if (numberOfResults > 0){
				groupTotalSelections++;
			}
	    
	    
			if( numberOfResults < minimumSelections )
			{
				if (minimumSelections == 1){
					if (selectionTables.length>1)
						alert( "Du skal mindst vælge 1 ret under " + $F('partsListGroupName' + partsListGroupGuid) + "." );
					else
						alert( "Du skal mindst vælge 1 ret." );
				}
				else {
					if (selectionTables.length>1)
						alert( "Du skal mindst vælge " + minimumSelections + " retter under " + $F('partsListGroupName' + partsListGroupGuid) + "." );
					else
						alert( "Du skal mindst vælge " + minimumSelections + " retter." );
				}
				errorSet = true;
			}
	            
			if( numberOfResults > maximumSelections )
			{
				if (maximumSelections == 1){
					if (selectionTables.length>1)
						alert( "Du må højest vælge 1 ret under " + $F('partsListGroupName' + partsListGroupGuid) + "." );
					else
						alert( "Du må højest vælge 1 ret." );
				}
				else {
					if (selectionTables.length>1)
						alert( "Du må højest vælge " + maximumSelections + " retter under " + $F('partsListGroupName' + partsListGroupGuid) + "." );
					else
						alert( "Du må højest vælge " + maximumSelections + " retter." );
				}
				errorSet = true;
			}
    });
    
    if (errorSet){
			return;
    }
    
    if( groupTotalSelections < itemMinGroupSelections )
			{
				if (itemMinGroupSelections == 1){
					alert( "Du skal vælge retter fra mindst 1 gruppe." );
				}
				else {
					alert( "Du skal vælge retter fra mindst " + itemMinGroupSelections + " grupper." );
				}
				return;
			}
	            
			if( groupTotalSelections > itemMaxGroupSelections )
			{
				if (itemMaxGroupSelections == 1){
					alert( "Du må højest vælge retter fra 1 gruppe." );
				}
				else {
					alert( "Du må højest vælge retter fra " + itemMaxGroupSelections + " grupper." );
				}
				return;
			}
    
    if( minNumberOfOrdersValue >= 0 && minNumberOfOrdersValue > numberOfPersons )
    {            
        alert( "Du skal bestille til mindst " + minNumberOfOrdersValue + " personer" );
        return;
    }
  
		Element.hide('ajaxItemAdded');
		
		Element.show('ajaxload');
        
    var url = '/ajax/addToCart.asp';
		var pars = 'itemGuid=' + itemGuid + '&quantity=' + numberOfPersons + '&commaSeperatedPartsItemList=' + result;
		//alert(pars);
		var myAjax = new Ajax.Updater(
			'smallCartContainer', 
			url,
			{
				method: 'post', 
				parameters: pars,
				evalScripts: true,
				onSuccess: addItemToCartSuccess
			}
		);
}


function addItemToCartSuccess(){
  Element.hide('ajaxload');
  $('ajaxItemAdded').innerHTML = "Du har lagt vare i <a href='/pages/basket.asp'>indkøbskurven</a>"
  $('ajaxItemAdded').show();
  
  new Effect.Highlight('smallCartContainer');
  new Effect.Highlight('ajaxItemAdded');
  
}

function getCustomer()
{
  Element.show('ajaxload');
  $('noCustomerTr').hide();
  
  
	var url = '/ajax/getCustomer.asp';
	var pars = 'phone=' + $F('billToPhone');
	//alert(pars);
	var myAjax = new Ajax.Updater(
		'existentCustomer', 
		url,
		{
			method: 'post', 
			parameters: pars,
			evalScripts: true
		}
	);
}

function getCustomerSuccess()
{
	$('faktAddress').select('tr.inputRow').each(Element.hide);
  $('existentCustomer').show();
  $('useExistentCustomer').value="true";
  
  $('billToPhone').readOnly = "readonly";
  
  $('getCustomerButton').value="Ny kunde";
  $('getCustomerButton').onclick = useOtherPhoneNumber;

	Element.hide('ajaxload');
}

function getCustomerNotFound()
{
	$('noCustomerTr').show();
	new Effect.Highlight('noCustomerTr', {startcolor:'#ffff99', endcolor:'#E6E5DE'});
	Element.hide('ajaxload');
}

function useOtherPhoneNumber(){
	$('noCustomerTr').hide();
	$('faktAddress').select('tr.inputRow').each(Element.show);
	$('existentCustomer').hide();
	$('useExistentCustomer').value="false";
	
	$('billToPhone').readOnly = false;
	
	$('getCustomerButton').value="Hent kunde";
  $('getCustomerButton').onclick = getCustomer;
}


function validateBasketChanges()
{
  
  var cartlines = $('shopCart').select('tr.cartline');
  var errorMsg = "";
  cartlines.each(function(cartline){
    if (cartline.down('.quantity').value == ''){
      cartline.down('.quantity').value = '0';
    }
  
    var quantity = parseInt( cartline.down('.quantity').value );
    var minNumberOfOrders = parseInt( cartline.down('.minNumberOfOrders').value );
    var itemName = cartline.down('.itemName');
    
    //alert(minNumberOfOrders + " > " + quantity + " " + (minNumberOfOrders > quantity));
    if (isNaN(quantity)){
      errorMsg += "Antal kuverter af " + itemName.innerHTML + " er ikke korrekt udfyldt<br />";
    }
    else if (minNumberOfOrders > quantity && quantity != 0) {
      errorMsg += itemName.innerHTML + " skal bestilles til mindst " + minNumberOfOrders + " personer<br />";
    }
  });
  if (errorMsg.length>0){
    $('errorMsgDiv').innerHTML = errorMsg;
    new Effect.Highlight('errorMsgDiv');
    return false;
  }
  else{
    $('shoppingCartForm').submit();
  }
}

var ajaxItemDiv = null;

function addToCartFromList( itemGuid )
{
		var minNumberOfOrders = parseInt( $F('minNumberOfOrders'+itemGuid));
		
    var result = ""
    var numberOfPersons = parseInt( $F('textbox_NumberOfPersons'+itemGuid));
    var minNumberOfOrdersValue = parseInt( minNumberOfOrders );

    if (isNaN(minNumberOfOrdersValue))
    {
        minNumberOfOrdersValue = -1;
    }
    
    if (isNaN(numberOfPersons))
    {
        alert("Indtast venligst et gyldigt antal personer");
        
        return;
    }
           
    var errorSet = false;
    
   
    if( minNumberOfOrdersValue >= 0 && minNumberOfOrdersValue > numberOfPersons )
    {            
        alert( "Du skal bestille til mindst " + minNumberOfOrdersValue + " personer" );
        return;
    }
  
    $('orderingContainer').select('.ajaxItemAdded').each(function(div){
      div.hide();
    });
  
  
    // global variable - also used in addToCartFromListSuccess
    ajaxItemDiv = $('item'+itemGuid);
    var ajaxItemAdded = ajaxItemDiv.down('.ajaxItemAdded');
    var ajaxload = ajaxItemDiv.down('.ajaxload');
  
    ajaxItemAdded.hide();
    ajaxload.show();
        
    var url = '/ajax/addToCart.asp';
		var pars = 'itemGuid=' + itemGuid + '&quantity=' + numberOfPersons + '&commaSeperatedPartsItemList=';
		//alert(pars);
		var myAjax = new Ajax.Updater(
			'smallCartContainer', 
			url,
			{
				method: 'post', 
				parameters: pars,
				evalScripts: true,
				onSuccess: addToCartFromListSuccess
			}
		);
}


function addToCartFromListSuccess(){
  ajaxItemDiv.down('.ajaxload').hide();
  ajaxItemDiv.down('.ajaxItemAdded').innerHTML = "Du har lagt vare i <a href='/pages/basket.asp'>indkøbskurven</a>"
  ajaxItemDiv.down('.ajaxItemAdded').show();
  
  new Effect.Highlight('smallCartContainer');
  new Effect.Highlight( ajaxItemDiv.down('.ajaxItemAdded') );
}