function checkInt(value)
{
  $('nrOrdered').value = value.replace(/([^0-9])/g, '');
}

function markUp(field,err) {
	if(err == true){
		field.style.borderColor = "red";
		field.style.borderWidth = "1px";
		field.style.borderStyle = "solid";
	}	else {
		field.style.borderColor = "";
		field.style.borderWidth = "";
		field.style.borderStyle = "";
	}
}

function validatie(formulier){
	var error = 0;
  with (formulier) {
    if(name.value == "") {
      markUp(name,true);
      error++;
    }	else {
      markUp(name,false);
    }
	/*
    if(colorName.value == "") {
      markUp(colorName,true);
      error++;
    }	else {
      markUp(colorName,false);
    }
	*/
    if(price.value == "") {
      markUp(price,true);
      error++;
    }	else {
      markUp(price,false);
    }
    if (sizeCatID.value == "") {
      markUp(sizeCatID, true);
      error++;
    } else {
      markUp(sizeCatID, false);
    }
  }
  var checked = 0;
  $each($$('.sizes'), function(elem) {
    markUp(elem, false);
    if (elem.checked) {
      checked++;
    }
  });
  if (checked == 0) {
    markUp($('sizes'), true);
    error++;
  }
  checked = 0;
    $each($$('.lrHanded'), function(elem) {
    markUp(elem, false);
    if (elem.checked) {
      checked++;
    }
  });
  if (checked == 0) {
    markUp($('lrHanded'), true);
    error++;
  }
	if(error == 0){
		return true;
	}	else{
		return false;
	}
}

function showMenu(key) {
  $each ($$('div'), function(div) {
    if (div.id.substr(0,4) == 'menu' && div.id.length > 4) {
      div.setStyle('display', 'none');
    }
  });
  $('menu'+key).setStyle('display', 'block');

  $each ($$('h1'), function(header) {
    if (header.id.substr(0, 10) == 'menuheader') {
      header.className = '';
    }
  });
  $('menuheader'+key).className = 'active';
}


function recalculateSubtotal () {
  totalPrice = 0;
  for ( a = 0; a < document.forms [ 'shopCart' ].elements.length; a ++ ) {
    if ( document.forms [ 'shopCart' ].elements [ a ].name.indexOf ( 'pieces[' ) != -1) {
      id = document.forms [ 'shopCart' ].elements [ a ].name.substring ( 7, document.forms [ 'shopCart' ].elements [ a ].name.length - 1 );
      price = document.forms [ 'shopCart' ].elements [ a ].value * document.getElementById ( 'piecePrice_' + id ).value;

      if ( !isNaN ( document.forms [ 'shopCart' ].elements [ a ].value ) ) {
        totalPrice += price;
      }
      document.getElementById ( 'totalPrice_' + id ).innerHTML = number_format ( price, 2, ',', '.' );
    }

    if ( document.forms [ 'shopCart' ].elements [ a ].name.indexOf ( 'piecesInsurance[' ) != -1) {
      id = document.forms [ 'shopCart' ].elements [ a ].name.substring ( 16, document.forms [ 'shopCart' ].elements [ a ].name.length - 1 );
      if(document.forms['shopCart'].elements['insurance['+id+']'].checked) {
        if(parseInt(document.forms [ 'shopCart' ].elements [ a ].value) > parseInt(document.forms [ 'shopCart' ].elements [ 'pieces['+id+']' ].value)) {
          document.forms [ 'shopCart' ].elements [ a ].value = document.forms [ 'shopCart' ].elements [ 'pieces['+id+']' ].value;
        }
        price = document.forms [ 'shopCart' ].elements [ a ].value * document.getElementById ( 'piecesInsurancePrice_' + id ).value;
        if ( !isNaN ( document.forms [ 'shopCart' ].elements [ a ].value ) ) {
          totalPrice += price;
        }
        document.getElementById ( 'piecesInsuranceTotal_' + id ).innerHTML = number_format ( price, 2, ',', '.' );
      } else {
        document.getElementById ( 'piecesInsuranceTotal_' + id ).innerHTML = number_format ( 0, 2, ',', '.' );
      }
    }

    if ( document.forms [ 'shopCart' ].elements [ a ].name.indexOf ( 'piecesInsuranceTrans[' ) != -1) {
      id = document.forms [ 'shopCart' ].elements [ a ].name.substring ( 21, document.forms [ 'shopCart' ].elements [ a ].name.length - 1 );
      if(document.forms['shopCart'].elements['insuranceTrans['+id+']'].checked) {
        if(parseInt(document.forms [ 'shopCart' ].elements [ a ].value) > parseInt(document.forms [ 'shopCart' ].elements [ 'piecesInsurance['+id+']' ].value)) {
          document.forms [ 'shopCart' ].elements [ a ].value = document.forms [ 'shopCart' ].elements [ 'piecesInsurance['+id+']' ].value;
        }
        price = document.forms [ 'shopCart' ].elements [ a ].value * document.getElementById ( 'piecesInsuranceTransPrice_' + id ).value;
        if ( !isNaN ( document.forms [ 'shopCart' ].elements [ a ].value ) ) {
          totalPrice += price;
        }
        document.getElementById ( 'piecesInsuranceTransTotal_' + id ).innerHTML = number_format ( price, 2, ',', '.' );
      } else {
        document.getElementById ( 'piecesInsuranceTransTotal_' + id ).innerHTML = number_format ( 0, 2, ',', '.' );
      }
    }
    document.getElementById ( 'subtotalPrice' ).innerHTML = number_format ( totalPrice, 2, ',', '.' );
  }
}

function number_format ( price, i, sep, thousand ) {
  if ( isNaN ( price ) || price < 0 ) {
    price = 0;
  }

  if ( parseInt ( price ) != price ) {
    eur = parseInt ( price );
    cent = Math.round ( ( price - eur ) * 100 );

    if ( cent < 10 ) {
      cent = '0' + cent;
    }
  } else {
    eur = price;
    cent = '00';
  }

  if ( eur > 0 ) {
    t = eur + '';
    eur = '';
    while ( t.length > 3 ) {
      eur = thousand + t.substring ( t.length - 3, t.length ) + eur;
      t = t.substring ( 0, t.length - 3 );
    }
    if ( t > 0 ) {
      eur = t + eur;
    }
  } else {
    eur = '0';
  }
  return eur + sep + cent;
}

function viewImage( url, alt, obj ) {
  if( !$( 'viewImage' ) ) {
    var div = new Element( 'div' );
    div.setProperty( 'id', 'viewImage' );
    div.setOpacity( 0 );
    div.setStyles( {
      'position':'absolute',
      'left': '0px',
      'top': '0px',
      'width': window.getWidth() + 'px',
      'height': window.getScrollHeight() + 'px',
      'text-align':'center'
    } );
    div.addEvent( 'click', function( ){ viewImageClose( ) } );
    var divImg = new Element( 'div' );
    var img = new Element( 'img' );
    img.setProperty( 'alt', alt );
    img.setProperty( 'src', url );

    var x = new Element( 'span' );
    x.setHTML( 'sluiten X' );
    x.setStyles( {
      'position':'absolute',
      'right':'5px',
      'top':'5px',
      'color':'black',
      'font-weight':'bold',
      'cursor':'pointer'
    } );

    x.injectInside( divImg );
    img.injectInside( divImg );
    divImg.injectInside( div );
    div.injectInside( document.body );
  }

  t = window.getScrollTop() + 100 + 'px';
  $$( '#viewImage div' ).setStyle( 'top', t );

  ( function(){
      l = divImg.getCoordinates();
      l = Math.round( ( window.getWidth() - l.width ) / 2 ) + 'px';
      divImg.setStyle('left', l);
    }
  ).delay(10);

  new Fx.Style( 'viewImage', 'opacity', { duration:500 } ).start( 0, 1 );
  return false;
}

function viewImageClose( ) {
  if( $( 'viewImage' ) ) {
    new Fx.Style( 'viewImage', 'opacity', { duration:500, onComplete: function() {
      $( 'viewImage' ).remove( )
    } } ).start( 1, 0 );
  }
}

function detailZoom( image ) {
	if( ( zoom = $('detailZoom') ) ) {
		if( image == 2 ) {
			setExample(example2);
		} else {
			setExample(example1);
		}
		zoom.setStyles( {
			'display': 'block',
			'opacity':0
		} );
		new Fx.Style( 'detailZoom', 'opacity', { duration:500 } ).start( 1 );
		if( window.ie6 ) {
			$$('select').setStyle('visibility','hidden');
		}
		return false;
	}
}

function detailZoomClose() {
	if( ( zoom = $('detailZoom') ) ) {
		new Fx.Style( 'detailZoom', 'opacity', { duration:500, onComplete: function() {
			zoom.setStyle('display', 'none');
		} } ).start( 0 );
		if( window.ie6 ) {
			$$('select').setStyle('visibility','visible');
		}
		return false;
	}
}

function sizeInfo() {
	if( ( zoom = $('sizeInfo') ) ) {
		zoom.setStyles( {
			'display': 'block',
			'opacity':0
		} );

		new Fx.Style( 'sizeInfo', 'opacity', { duration:500 } ).start( 1 );
		if( window.ie6 ) {
			$$('select').setStyle('visibility','hidden');
		}
		return false;
	}
}

function sizeInfoSwithTab(id) {
	$$('.sizeContent').setStyle('display', 'none');
	$('sizeContent-'+id).setStyle('display', '');
	return false;
}

function sizeInfoClose() {
	if( ( zoom = $('sizeInfo') ) ) {
		new Fx.Style( 'sizeInfo', 'opacity', { duration:500, onComplete: function() {
			zoom.setStyle('display', 'none');
		} } ).start( 0 );
		if( window.ie6 ) {
			$$('select').setStyle('visibility','visible');
		}
		return false;
	}
}

  function showProductTree(className, catID) {
    var div = $(className+'_'+catID);
    var display = div.getStyle('display') == 'block' ? 'none' : 'block';
    div.setStyle('display', display);
  }


  var sizeCats = new Array();
  function fillSizes(sizeID) {

    $('sizeID').length = 0;
    $('sizeID').add  ( new Option ( 'Selecteer...', '0' ), null );
    if (sizeID == 0) {
      return false;
    }
    if ( typeof ( sizeCats[sizeID] ) != 'undefined' ) {
      sizeCats[sizeID].each(function(s, sID) {
        $('sizeID').add ( new Option ( s, sID ), null );
      });
    } else {
      var requestOptions = {
        url: URL_ROOT+'beheer/?page=product&action=getSize&key='+sizeID,
        method : 'get' ,
        onComplete: function(response) {
          $each(response, function(s, sID) {
            $('sizeID').add ( new Option ( s, sID ), null );
            if ( typeof ( sizeCats[ document.forms [ 'content' ].elements [ 'sizeCatID' ].value ] ) == 'undefined' ) {
              sizeCats[ document.forms [ 'content' ].elements [ 'sizeCatID' ].value ] = Array ();
            }
            sizeCats[ document.forms [ 'content' ].elements [ 'sizeCatID' ].value ][sID] = s;
          });
        }
      };
      var request = new Request.JSON(requestOptions);
      request.send();
    }
  }



function fadeMsg(show, msg) {
  $('order_message').innerHTML = msg;
  if (show) {
    $('tintScreen').fade(0.8);
    $('orderMessage').fade('in');
  } else {
    $('tintScreen').fade('out');
    $('orderMessage').fade('out');
  }
}

function handleAddCart(response) {
  if (response.status == 'succes') {
    var nrProducts = $('nrProducts').innerHTML.toInt()+response.num.toInt();
    $('nrProducts').innerHTML = nrProducts;
    $('productsLabel').innerHTML = 'producten';
    if (nrProducts == 1 ) {
      $('productsLabel').innerHTML = 'product';
    }
    var price = $('totalCosts').innerHTML.substr(2).replace(',', '.').toFloat();
    price = price + (response.price.toFloat()*response.num.toInt()).toFloat();
    $('totalCosts').innerHTML = '&euro; ' +price.toFixed(2).replace('.',',')
   // useless $('delCart').setStyle('display', 'block');
    $('sendCart').setStyle('display', 'block');
    fadeMsg(true, '<h2>Artikel toegevoegd</h2>U heeft een artikel toegevoegd aan de winkelwagen.');
    fadeMsg.delay(2000, null, [false, '']);
  } else {
    fadeMsg(true, '<h2>Fout</h2>Het artikel kon niet worden toegevoegd aan de winkelwagen.');
    fadeMsg.delay(2000, null, [false, '']);
  }
}

// this is useless now
function handleEmptyCart(response) {
  if (response.status == 'succes') {
    $('nrProducts').innerHTML = '0';
    $('productsLabel').innerHTML = 'producten';
    $('totalCosts').innerHTML = '&euro; 0,00';
   // useless $('delCart').setStyle('display', 'none');
    $('sendCart').setStyle('display', 'none');
    fadeMsg(true, '<h2>Gelukt</h2>De winkelwagen is geleegd.');
    fadeMsg.delay(2000, null, [false, '']);
  } else {
    fadeMsg(true, '<h2>Fout</h2>De winkelwagen kon niet worden geleegd.');
    fadeMsg.delay(2000, null, [false, '']);
  }
}

function rotateProducts(productNr) {
	var showNr = productNr % products.length;
	for (var key in products) {
		if (!isNaN(key) && key != showNr) {
			products[key].fade('out');
		}
	}
	products[showNr].fade('in');
	
	setTimeout(function() { rotateProducts(productNr+1); }, 5000);	
}

var products = new Array();
window.addEvent('domready', function() {
	if ($('emoticons')) {
		$each($$('.emoticon'), function(img) {
			img.addEvent('click', function() {
				$('message').value += ':'+img.title+':';
			});
		});
		$('emoticons').style['display'] = 'block';
	}
	
	$each($$('div.productSlider'), function (product) {
		products.push(product);
	});
	if (products.length > 0) {
		rotateProducts(0);
	}
/*
  $each($$('.hide'), function(elem) {
    elem.fade('hide').removeClass('hide');
    elem.setStyle('display', 'block');
  });

  if ($('accessoiriesProducts')) {
    $each($('accessoiriesProducts').getChildren('form'), function(form) {
      form.addEvent('submit', function(event) {
        event.stop();
        new Request.JSON({
          url: this.action,
          onSuccess: function(response) {
            handleAddCart(response);
          }
        }).send('productID='+this.productID.value+'&num=1');
      });
    });
  }
  
  if ($('detailForm')) {
    $('detailForm').addEvent('submit', function(event) {
      event.stop();
      new Request.JSON({
        url: this.action,
        onSuccess: function(response) {
          handleAddCart(response);
        }
      }).send('productID='+this.productID.value+'&num='+this.num.value);
    });
  }
  
// This is useless now
  if ($('delCart')) {
    $('delCart').addEvent('click', function(event) {
      event.stop();
      new Request.JSON({
        url: this.href,
        onSuccess: function(response) {
          handleEmptyCart(response);
        }
      }).send('ajax=delete');
    });
  }
*/
});

