Array.prototype.sum = function(){
	var sum = 0;
	for(var i=0;i<this.length;i++){
		if(isNumeric(this[i])){
			sum = sum + (this[i]*1);
		}
	}
	return sum;
}


function switchLanguage(lang) {
    // menu fold
    u = "";
    if (document.forms['menu'].unfold.value != -1) {
        u = "unfold="+document.forms['menu'].unfold.value;
    }
    // news fold
    n = "";
    if (!news_expand) {
        n = "foldnews";
    }

    loc = page.location.href;
    if (loc.indexOf("page.php?action=show&id=") > 0) {
        tmp = loc.split(/id=/);
        location.href = "index.php?embed=" + escape("page.php?action=show&id="+tmp[1]) + "&language="+lang+"&"+u+"&"+n;
        return;
    } else if (loc.indexOf("news.php?action=show&id=") > 0) {
        tmp = loc.split(/id=/);
        location.href = "index.php?embed=" + escape("news.php?action=show&id="+tmp[1]) + "&language="+lang+"&"+u+"&"+n;
        return;
    } else if (loc.indexOf("news.php?action=index") > 0) {
        location.href = "index.php?embed=" + escape("news.php?action=index") + "&language="+lang+"&"+u+"&"+n;
        return;
    }
    location.href = "index.php?language="+lang+"&"+u+"&"+n;
}
function openLargeImage(url,w,h){
	div_o = document.getElementById('content_overlay');
	div_u = document.getElementById('content_underlay');
	img = document.getElementById('largeimage');
	
	div_o.style.display = "block";
	div_u.style.display = "none";
	if(url){
		url = url.replace('small_','');
		url = url.replace('thumbnail_','');
		img.src = url;
	}
		img.width = w;
		img.height = h;
}
function closeLargeImage(){
	div_o = document.getElementById('content_overlay');
	div_u = document.getElementById('content_underlay');
	img = document.getElementById('largeimage');
	
	div_o.style.display = "none";
	div_u.style.display = "block";
	img.src = "../image/blank.gif";
}

function isNumeric(value) {
  if (value == null || !value.toString().match(/^[-]?\d*\.?\d*$/)) return false;
  return true;
}
function isFloat(s){
	var n = trim(s);
	return n.length>0 && !(/[^0-9.]/).test(n) && (/\.\d/).test(n);
}
function getPerPallet(frm){
	span = document.getElementById('pallets_quantity');
	input = document.getElementById('pallets_required');
	var q = 0;
	for(var i=0;i<frm.elements.length;i++){
	    
	    if(isNumeric(frm.elements[i].getAttribute('perpallet')) && frm.elements[i].getAttribute('perpallet')>0 && isNumeric(frm.elements[i].value) && frm.elements[i].value > 0 && frm.elements[i].disabled == false){
			q = q + Math.ceil(frm.elements[i].value/frm.elements[i].getAttribute('perpallet'));
		}
	}

	//input.value = q;
	//span.innerHTML = q; // zolang we niet met pallets werken kunnen deze twee gecomment blijven ...............
}
function getInSet(obj){
	input = document.getElementById(obj.id.replace("_sets", ""));
	span = document.getElementById(obj.id.replace("_sets", "_span"));
	
	input.value = obj.getAttribute('inset')*obj.value;
	span.innerHTML = obj.getAttribute('inset')*obj.value;
	
	getPerPallet(obj.form);
}
var orderSkip;
function setOrderOption(el, target1, target2, target3, target4){
	if(!orderSkip){
		orderSkip = true
		var first = true;
	}
	var checked = false;
	
	if(el.type == 'radio'){
		col = el.form.elements[el.name];
		if(first == true){
			for (i=0;i<col.length;i++){
				col[i].checked = false;
				col[i].onclick();
			}
			el.checked = true;
			checked = true;
		}
	}else if(el.type == 'checkbox'){
		checked = el.checked;
		id = el.name.substr(8,2);
	}

	if(checked == true){
		if(target1){
			target1.disabled = false;
		}
		if(target2){
			target2.disabled = false;
		}
		if(target3){
			target3.disabled = false;
		}
		if(target4){
			target4.disabled = false;
		}
	}else{
		if(target1){
			target1.className = trim(target1.className.replace(/required/, ''));
			target1.setAttribute('disabled', 'disabled');
		}
		if(target2){
			target2.className = trim(target2.className.replace(/required/, ''));
			target2.setAttribute('disabled', 'disabled');
		}
		if(target3){
			target3.className = trim(target3.className.replace(/required/, ''));
			target3.setAttribute('disabled', 'disabled');
		}
		if(target4){
			target4.className = trim(target4.className.replace(/required/, ''));
			target4.setAttribute('disabled', 'disabled');
		}
	}


	if(target1){
		target1.value = '0';
		setExtraPrice(target1, target1.name.toString().replace('options[','').replace('][quantity]',''));
		if(id>1){extraprice[id] = 0; getProductPricing(el.form);}
		if(target1.id.indexOf('quantity_sets')>0){
			document.getElementById(target1.id.replace('quantity_sets', 'quantity_span')).innerHTML = '0';
		}
		
	}
	if(target2){
		target2.value = '0';
		if(id>1){extraprice[id] = 0; getProductPricing(el.form);}
		if(target2.id.indexOf('quantity_sets')>0){
			document.getElementById(target2.id.replace('quantity_sets', 'quantity_span')).innerHTML = '0';
		}
	}
	if(target3){
		target3.value = '';
		if(target3.id.indexOf('quantity_sets')>0){
			document.getElementById(target3.id.replace('quantity_sets', 'quantity_span')).innerHTML = '0';
		}
	}
	if(target4){
		target4.value = '';
		if(target4.id.indexOf('quantity_sets')>0){
			document.getElementById(target4.id.replace('quantity_sets', 'quantity_span')).innerHTML = '0';
		}
	}


	if(first == true){
		orderSkip = false;
	}
	
	getPerPallet(el.form);
}
function setProductImage(type, value)
{
	if(type>0){
		var cur = document.getElementById('product_image_name').value;
		var base = document.getElementById('product_image_base').value;
		var arr = cur.split("");
		
		if(isNumeric(value)){
			arr[type-1] = value;
		}else{
			if(value)
			{
				arr[type-1] = '1';
			}
			else
			{
				arr[type-1] = '0';
			}
		}
		cur = arr.join("");
		document.getElementById('product_image_name').value = cur;
		document.getElementById('img_product').src = '../image/'+base+'small_'+cur+'.jpg';
		if($('cart_img')){
			$('cart_img').value = '../image/'+base+'small_'+cur+'.jpg';
		}
		document.getElementById('preview_image').src = '../image/'+base+'small_'+cur+'.jpg';
		//document.getElementById('largeimage').src = '../image_database/'+base+'small_'+cur+'.png';
		//document.getElementById('configimage').src = '../image_database/'+base+'small_'+cur+'.png';
	}
}
function Price(q, p)
{
	this.quantity = q;
	this.price = p;
}
function getNearest(arr, val)
{
	var p = 0;
	for(var i=0;i<arr.length;i++)
	{
		if(i==0){
			//p = arr[i].price;
		}
		if(arr[i].quantity > val)
		{
			
		}else{
			 p = arr[i].price;
		}
	}
	return p;
}

function setOptionPrice(el, id, e){
	
	
	if(el.options[el.selectedIndex].getAttribute('price')>0){
		var p = el.options[el.selectedIndex].getAttribute('price');
		document.getElementById(id).setAttribute('price', p);
		setExtraPrice(document.getElementById(id), e, true, true);
	}else{
		var m = (el.options[el.selectedIndex].getAttribute('multiplier')*1)+1;
		setExtraPrice(document.getElementById(id), e, true, false, m);
	}
}

function setExtraPrice(el, id, unset, ignore, mulitplier){

	if(!mulitplier){
		mulitplier = 1;
	}
	if(pricing_options[id].length > 0 && ignore !== true){
		el.setAttribute('price', getNearest(pricing_options[id], el.value)*mulitplier);
	}

	if(unset == false){
		extraprice[id] = 0;
	}else{
		extraprice[id] = el.getAttribute('price')*el.value;
	}
	$('tot_price_'+id).innerHTML = '&euro; '+Math.round(extraprice[id]*100)/100;
	
	getProductPricing(el.form);
}

function setPriceMultiplier(el, id, unset){
	
	//var m = el.options[el.selectedIndex].getAttribute('multiplier');
	//multiplier = m;
	
	if(unset == false){
		multiplier[id] = 0;
	}else{
		multiplier[id] = el.options[el.selectedIndex].getAttribute('multiplier');
	}
	getProductPricing(el.form);
}

function setAdditionalPrice(el, id, p, unset){
	
	if(unset == false){
		additionalprice[id] = 0;
	}else{
		additionalprice[id] = p;
	}
	getProductPricing(el.form);
}

function getProductPricing(frm)
{	
	var q = frm.quantity.value*1;
	var p = getNearest(pricing, q);
	var pc = '';
	
	var mq = frm.quantity.getAttribute('minimumquantity');
	if(!isNumeric(mq)){
		mq = 0;
	}
	
	var e = extraprice.sum();
	if(!isNumeric(e)){
		e = 0;
	}

	var a = additionalprice.sum();
	if(!isNumeric(a)){
		a = 0;
	}

	var k = 0;
	if(frm.delivery_option_id){
		if(frm.delivery_option_id.options[frm.delivery_option_id.selectedIndex].value == '2'){
			k = getNearest(kitpack, q);
		}
	}
	a = a + k;

    var b = 1;

	var b = 1+(multiplier.sum()*1);
	if(!isNumeric(b)){
		b = 1;
	}

	var t1 = (q*p*b) + (q*a);
	
	var t2 = e;
	
	var t = t1+t2;

	var s = '&#8364;&nbsp;'+t.toFixed(2);
	var c = 'LC&nbsp;'+(t*xrate).toFixed(2);
	var sp = '&nbsp;/&nbsp;';
	
	if((q>0 && p==0 && frm.quantity.type !== 'hidden') || q<mq ){
		s = 'Er is niet voldaan aan de minimale hoeveelheid van '+mq+' stuks';
		c = '';
		sp = '';
		
		//s = 'To be confirmed';
		//c = 'To be confirmed';
	}else{
		s = 'Totaal prijs: '+s.replace('.', ',');
		//c = c.replace('.', ',');
	}
//	document.getElementById('price_calculation').innerHTML = pc;
    document.getElementById('total_price').innerHTML = s;
	//document.getElementById('total_price_converted').innerHTML = c;
	//document.getElementById('total_price_spacer').innerHTML = sp;
}
function getPricing(frm, product)
{
	var t = 0;
	var q = frm['quantity['+product+']'].value*1;
	var p = getNearest(pricing[product], q);
	
	var mq = frm['quantity['+product+']'].getAttribute('minimumquantity')*1;
	if(!isNumeric(mq)){
		mq = 0;
	}

	frm['quantity['+product+']'].price = p*q;
	
	var s = '&#8364;&nbsp;'+(q*p).toFixed(2);
	var sc = 'LC&nbsp;'+(q*p*xrate).toFixed(2);
	var sp = '&nbsp;/&nbsp;';
	
	if((q>0 && p==0) || q<(mq*1) ){
		s = 'Neem contact op met Smurfit Kappa via shop@smurfitkappa.nl';
		sc = '';
		sp = '';
	}else{
		s = s.replace('.', ',');
		sc = sc.replace('.', ',');
	}	
	
	document.getElementById('price['+product+']').innerHTML = s;
	document.getElementById('price_converted['+product+']').innerHTML = sc;
	document.getElementById('price_spacer['+product+']').innerHTML = sp;
	
}

function XBrowserAddHandler(target,eventName,handlerName)
{
	
	if ( target.addEventListener ) {
	
	target.addEventListener(eventName, handlerName, false);
	} else if ( target.attachEvent ) {
	target.attachEvent("on" + eventName, handlerName);
	} 	else {
	target["on" + eventName] = handlerName;
	}
}

function createTooltip(el, text){
	if(document.getElementById(el)){
		XBrowserAddHandler(document.getElementById(el), 'mouseout', hideTooltip);
    	XBrowserAddHandler(document.getElementById(el), 'mouseover', function(e)
		    { showTooltip(e,text);return false; });
	}
}
function toggleDisplay(arr, show){
	if(!show)
	{
		show = 'block';
	}
	
	for(i=0;i<arr.length;i++){
		obj = document.getElementById(arr[i]);	
		if(obj.style.display == 'none')
		{
			obj.style.display = show;
		}
		else
		{
			obj.style.display = 'none';
		}
	}
}

function CheckRequiredFields(frm, msg){
    var allOK = true;
	var minmsg = false; var maxmsg = false;
    for(i=0;i<frm.elements.length;i++){
        var elem = frm.elements[i];
		
		var dis = elem.getAttribute("disabled");
		var num = elem.id.substr(8,3);
		if(num.charAt(2)=="]"){num = num.substr(0,2);}

		if(dis == true || dis == 'disabled'){
			// do nothing
		}else{
			var req = elem.getAttribute("required");
			var reqif = elem.getAttribute("requiredif");
			if(req == 'true'){
				if(elem.getAttribute("type") == 'radio'){
					value = getCheckedValue(frm.elements[elem.name]);
				}else if(elem.getAttribute("type") == 'checkbox'){
					value = elem.checked
				}else{
					value = elem.value;
				}
				if(trim(value) == '' || value == null){
					if(frm.elements[i].className.indexOf("required") == -1){
						frm.elements[i].className += ' required';
						$('name'+num).className += ' required';
					}
					allOK = false;
				}else{
					if(elem.className.indexOf("required") != -1){
						elem.className = trim(elem.className.replace(/required/, ''));
						$('name'+num).className = trim($('name'+num).className.replace(/required/, ''));
					}
				}
			}
			else if(reqif){
				var arr = reqif.split('=');
				var el = frm.elements[arr[0]];
				var v1 = arr[1];
				
				if(el[0] && el[0].type == 'radio'){
					v2 = getCheckedValue(el);
				}else{
					v2 = el.value;
				}
				
				if(v1 == v2){
				   if(elem.value == "") {
						if(elem.className.indexOf("required") == -1){
							elem.className += ' required';
						}
						allOK = false;
				   }
				   else {
					   elem.className = trim(elem.className.replace(/required/, ''));
				   }   
				}else{
					if(elem.className.indexOf("required") != -1){
						elem.className = trim(elem.className.replace(/required/, ''));
					}
				}
			}
			if(elem.getAttribute("isdate") == 'true'){
				if(isDate(trim(elem.value))){
					if(elem.className.indexOf("required") != -1){
						elem.className = trim(elem.className.replace(/required/, ''));
					}
				}else{
					if(elem.className.indexOf("required") == -1){
						elem.className += ' required';
					}
					allOK = false;
				}
			}
			if(elem.getAttribute("isnumeric") == 'true'){
				if(parseInt(elem.value*1)>0){
					if(elem.className.indexOf("required") != -1){
						elem.className = trim(elem.className.replace(/required/, ''));
					}
				}else{
					if(elem.className.indexOf("required") == -1){
						elem.className += ' required';
					}
					allOK = false;
				}
			}
			var disabled = false;
			if(num == '87' || num == '88'){ // verplichte velden met quantity_sets
				if($('options['+num+'][quantity_sets]').getAttribute("disabled") == true || $('options['+num+'][quantity_sets]').getAttribute("disabled") == 'disabled'){
					 disabled = true;
				}
				var required = false;
			    var q = $('options['+num+'][quantity_sets]').value*1;
				if(q < 50 && !disabled){
					if(!minmsg)msg += "\n Sommige verplichte opties voldoen niet aan de minimum hoeveelheid van 50 stuks";
					minmsg=true; allOK = false; required = true;
				} else if (q > 1000  && !disabled){
					if(!maxmsg)msg += "\n De maximale hoeveelheid is 1000 stuks";
					maxmsg=true; allOK = false; required=true;
				}
				if(required){
					if($('options['+num+'][quantity_sets]').className.indexOf("required") == -1){
						$('options['+num+'][quantity_sets]').className += ' required';
					}
				}
			} else if (num == '85' || num == '120' ){ // verplichte velden met quantity
				
				if($('options['+num+'][quantity]').getAttribute("disabled") == true || $('options['+num+'][quantity]').getAttribute("disabled") == 'disabled'){
					 disabled = true;
				}
				var required = false;
			    var q = $('options['+num+'][quantity]').value*1;
				if(q < 50 && !disabled){
					if(!minmsg)msg += "\n Sommige verplichte opties voldoen niet aan de minimum hoeveelheid van 50 stuks";
					minmsg=true; allOK = false; required=true;
				} else if (q > 1000  && !disabled){
					if(!maxmsg)msg += "\n De maximale hoeveelheid is 1000 stuks";
					maxmsg=true; allOK = false; required=true;
				}
				if(required){
					if($('options['+num+'][quantity]').className.indexOf("required") == -1){
						$('options['+num+'][quantity]').className += ' required';
					}
				}
			}
		}
    }
	if(allOK){
        return true;
    }else{
        alert(msg);
        return false;
    }
}

function isDate(sDate) {
	var re = /^\d{1,2}\-\d{1,2}\-(?:\d{2}|\d{4})$/
	if (re.test(sDate)) {
		var dArr = sDate.split("-");
		if(dArr[2].length == 2) {
			dArr[2] = "20" + dArr[2];
		}
		var d = new Date();
		d.setFullYear(parseInt(dArr[2]), parseInt(dArr[1]) - 1, parseInt(dArr[0]));
		return d.getDate() == dArr[0] && d.getMonth() + 1 == dArr[1] && d.getFullYear() == dArr[2];
		}
	else {
		return false;
	}
}
function toDate(sDate) {
   var re = /^\d{1,2}\-\d{1,2}\-\d{4}$/
   if (re.test(sDate)) {
      var dArr = sDate.split("-");
      if(dArr[2].length == 2) {
          dArr[2] = "20" + dArr[2];
      }
      var d = new Date();
      d.setFullYear(parseInt(dArr[2]), parseInt(dArr[1]) - 1, parseInt(dArr[0]));
      return d;
   }
   else {
      return false;
   }
}

function trim(str)
{
    if(!str || typeof str != 'string')
        return str;

    return str.replace(/^[\s]+/,'').replace(/[\s]+$/,'').replace(/[\s]{2,}/,' ');
}
function getCheckedValue(radioObj) {
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}

function checkAllOk(frm){
	q = frm.quantity.value*1;
	mq = frm.quantity.getAttribute('minimumquantity');
	if(q<mq){
		var a = alert('Uw bestelling van '+q+' stuks voldoet nog niet aan de minimum eis van '+mq+' stuks\n');
		return false;
	}else{
		$('refresh').value = 'false';
		return true;
	}
}

function flashCheck(){
	// Flash Player Version Detection - Rev 1.5
	// Detect Client Browser type
	// Copyright 2006 Adobe Systems, Inc. All rights reserved.
	var isIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
	var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
	var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
	// NS/Opera version >= 3 check for Flash plugin in plugin array
	var flashVer = -1;
	if (navigator.plugins != null && navigator.plugins.length > 0) {
		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
		var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
		var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
		var descArray = flashDescription.split(" ");
		var tempArrayMajor = descArray[2].split(".");
		var versionMajor = tempArrayMajor[0];
		var versionMinor = tempArrayMajor[1];
		if ( descArray[3] != "" ) {
		tempArrayMinor = descArray[3].split("r");
		} else {
		tempArrayMinor = descArray[4].split("r");
		}
		var versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0;
		var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
		}
	}
	// MSN/WebTV 2.6 supports Flash 4
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
	// WebTV 2.5 supports Flash 3
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
	// older WebTV supports Flash 2
	else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
	else if ( isIE && isWin && !isOpera ) {
		var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
		flashVer = axo.GetVariable("$version");
	}
	return flashVer;
}
