function isTypo3 () {
	var generator = 'mb';
	var metaElements = document.all ?
			document.all.tags('meta') :
			document.getElementsByTagName ?
			document.getElementsByTagName ('meta') : new Array();
	for (var m = 0; m < metaElements.length; m++){
		if (metaElements[m].name == 'generator'){
			generator = metaElements[m].content;
			break;
		}
	}
	var isTypo3 = generator.include('TYPO3');
	return isTypo3;
}
//Update element content
function bme_update(elementId, params){
	var url = getBaseURL() + 'ajax/ajax_controller.php';
	if(isTypo3()){
		url = location.href;
		params += '&eID=mb_ajax'
	}
	new Ajax.Updater( elementId, url, {method: 'post', parameters: params });
}
/*
//Load manufacturers for category
function bme_lmc(){
	var recordId = $F('category_id');
	if(recordId > 0){
		var params = 'ajax_handler=bme_prd&ajax_type=cm&category_id='+recordId;
		bme_update('prd_man_wrap', params);
		bme_reloadProducts();
	}
}*/
//Load categories for manufacturers
function bme_lcm(){
	var value = $F('manufacturer');
	var params = 'ajax_handler=bme_prd&ajax_type=mc&manufacturer='+value;
	bme_update('prd_cat_wrap', params);
	//bme_reloadProducts();
}
//Update advanced search fields
function bme_uas(showResults){
	var params = Form.serialize("form_adv_products_search");
	params += '&ajax_handler=bme_prd&ajax_type=as&show_results='+showResults;
	bme_update('advanced_search_wrap', params);
	//bme_reloadProducts();
}
function bme_reloadProducts(){
	var params = Form.serialize("searchFilter");
	params += '&ajax_handler=bme_prd&ajax_type=lr';
	bme_update('overview', params);
}
function mb_loadImage(recordId, imgOffset){
	var elementId = 'wrap_mb_gallery';
	var url = getBaseURL() + 'ajax/ajax_controller.php';
	var params = 'ajax_handler=bme_prd&ajax_type=gallery&record_id='+recordId+'&img_offset='+imgOffset;
	bme_update(elementId, params);
	return false;
}
//Show or hide contact form
function bme_cf(sender, type){
	var formWrapElt = $('product_contact_form');
	if( $('form_products_contact') == null ){
		formWrapElt.show();
		var params = 'ajax_handler=bme_prd&ajax_type=cfs&record_id='+$F('prd_id');
		bme_update('cf_form_wrap', params);
		return false;
	}
	if(formWrapElt.visible() && $F('question') == type ){		
		formWrapElt.hide();
	}
	else{
		new Draggable(formWrapElt);
		//formWrapElt.absolutize();
		//Does not work in IE
		//$('product_buttons').makePositioned();
		//formWrapElt.clonePosition('product_buttons', {setWidth : false, setHeight : false, offsetLeft: 0, offsetTop : -300});		
		$('question').selectedIndex = type-1;
		formWrapElt.show();
	}
	return false;
}
//Send contact form
function bme_cfs(){	
	var params = Form.serialize("form_products_contact");
	params += '&ajax_handler=bme_prd&ajax_type=cfs';
	$('cf_submit').writeAttribute("disabled");	
	bme_update('cf_form_wrap', params);
	return false;
}

function bme_ssr(offset,recordId,direction){
	var chkElt = $('similar_products');
	if(chkElt.hasClassName('wait')) return false;
	chkElt.addClassName('wait');
	//Find all visible elements
	var rows = $('similar_products').select('.ssr_row').findAll(function(elt) { return elt.visible(); });
	var rowCount = rows.size();
	
	if(rowCount > 0){
		var firstElt = rows[0];
		var lastElt = rows[rowCount-1];
		var prevArrow = $('a_sim_prd_prev');
		var nextArrow = $('a_sim_prd_next');
		//0 = scroll up
		if(direction == 0){
			var firstOffset = parseInt(firstElt.id.gsub('ssr_', ''));
			if(rowCount > 4){ lastElt.hide();lastElt = rows[rowCount-2]; }
			if( firstOffset == 0 ) return false;
			//Hide up arrow if first element is to be shown
			if( firstOffset == 1 ) prevArrow.hide();
			if( !nextArrow.visible() ) nextArrow.show();
			
			var eltHidden = $('ssr_'+(firstOffset-1));
			if( eltHidden != null && !eltHidden.visible() ){
				/*new Effect.Parallel([
				    new Effect.SlideDown(eltHidden, { sync: true, scaleFrom:0, scaleTo:100}), 
				    new Effect.SlideUp(lastElt, { sync: true, scaleFrom:100, scaleTo:0 }) 
				    ], { 
					duration: 0.5,
					}
				);*/
				lastElt.hide();
				eltHidden.show();
			}
		}
		else{
			var lastOffset = parseInt(lastElt.id.gsub('ssr_', ''));
			if(rowCount > 4){ firstElt.hide();firstElt = rows[1]; }
			//Hide down button if last element is to be shown
			if( $('ssr_'+(lastOffset+2)) == null ) nextArrow.hide();
			if( !prevArrow.visible() ) prevArrow.show();
			
			var eltHidden = $('ssr_'+(lastOffset+1));
			if( eltHidden != null && !eltHidden.visible() ){
				/*new Effect.Parallel([
				    new Effect.SlideDown(eltHidden, { sync: true, scaleFrom:0, scaleTo:100}), 
				    new Effect.SlideUp(firstElt, { sync: true, scaleFrom:100, scaleTo:0 }) 
				    ], { 
					duration: 0.5,
				});*/
				firstElt.hide();
				eltHidden.show();
			}
		}
	}
	chkElt.removeClassName('wait');
	return false;
}
function bme_ppu(prdId){
	var params = 'ajax_handler=bme_prd&ajax_type=ppu&record_id='+prdId+'&value='+$F('retail_price_'+prdId);
	var url = getBaseURL() + 'ajax/ajax_controller.php';
	new Ajax.Updater( 'ppu_'+prdId, url, {method: 'post', parameters: params });
}
function bme_pitu(prdId){
	var params = 'ajax_handler=bme_prd&ajax_type=pitu&record_id='+prdId+'&value='+$F('incoterm_'+prdId);
	var url = getBaseURL() + 'ajax/ajax_controller.php';
	new Ajax.Updater( 'pitu_'+prdId, url, {method: 'post', parameters: params });
}
function bme_ash(prdId, value){
	var params = 'ajax_handler=bme_prd&ajax_type=ash&record_id='+prdId+'&value='+value;
	var url = getBaseURL() + 'ajax/ajax_controller.php';
	new Ajax.Updater( 'ash_'+prdId, url, {method: 'post', parameters: params });
}
function bme_nlcb(cbElt){
	var doCheck = cbElt.checked;
	$('form_export').select('.cb_export').each(function(elt) {elt.checked = doCheck;});
}
function bme_nlsos(cbElt){
	var filterSelected = cbElt.checked;
	$('form_export').select('.cb_export').each(function(elt) {
		var rowElt = elt.up('tr');
		if(filterSelected && !elt.checked ){
			rowElt.hide();
		}
		else{
			rowElt.show();
		}
	});	
}
function calcEndCustomerPrice(recordId){
	var prcPrice = parseInt($F('cprices_'+recordId+'_customer_price_prc'));
	if(isNaN(prcPrice)) prcPrice = 0;
	var retailPrice = parseInt($F('retail_price_'+recordId));
	var endPrcPrice = 0;
	var sumStr = '';
	if(retailPrice > 0 && prcPrice > 0 ){
		var percentage = prcPrice > 50 ? prcPrice / 100 : prcPrice/10;
		endPrcPrice = parseInt(percentage * retailPrice);
		sumStr = ' = '+number_format(endPrcPrice, 0, ',', '.' )+' EUR';
	}
	var prcSumElt = $('prdPrcPriceSum')
	if(prcSumElt != null) prcSumElt.innerHTML = sumStr;
	var absPrice = parseInt($F('cprices_'+recordId+'_customer_price_abs'));
	if(isNaN(absPrice)) absPrice = 0;
	$('prdPriceSum_'+recordId).innerHTML = Math.max(endPrcPrice, absPrice) +' EUR';
}
/**
 * http://phpjs.org/functions/number_format:481
 */
function number_format(number, decimals, dec_point, thousands_sep) {
    var n = !isFinite(+number) ? 0 : +number, 
        prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
        sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
        dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
        s = '',
        toFixedFix = function (n, prec) {
            var k = Math.pow(10, prec);
            return '' + Math.round(n * k) / k;
        };
    // Fix for IE parseFloat(0.55).toFixed(0) = 0;
    s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');
    if (s[0].length > 3) {
        s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep);
    }
    if ((s[1] || '').length < prec) {
        s[1] = s[1] || '';
        s[1] += new Array(prec - s[1].length + 1).join('0');
    }
    return s.join(dec);
}
function bme_nlMoveDown(recordId){
	var sortPosOld = parseInt($F('sortpos_'+recordId));
	var recordIdNew = 0;
	var posFound = false;
	var rowFound = false;
	var maxSortPos = $F('max_sort_pos');
	var rows = $('tbl_products').select('tr');
	rows.each(function(elt) {
		if( !posFound && elt.visible() && elt.hasAttribute('id') ){
			var tmpRecId = elt.id.gsub('lr_', '');
			if(rowFound){
				var sortPosNew = parseInt($F('sortpos_'+tmpRecId));
				$('sortpos_'+recordId).value = sortPosNew;
				$('sortpos_'+tmpRecId).value = sortPosOld;
				var moveRow = $('lr_'+recordId);
				moveRow.removeClassName('highlight_row');
				var rowA = moveRow.remove();
				$('lr_'+tmpRecId).insert( { after : rowA } );
				if(sortPosNew == maxSortPos){
					$('md_'+recordId).hide();
					$('md_'+tmpRecId).show();
				}
				else if(sortPosOld == 0){
					$('mu_'+recordId).show();
					$('mu_'+tmpRecId).hide();
				}
				posFound = true;
			}
			else if(tmpRecId == recordId){
				rowFound = true;
			}
			
		}
	});
	return false;
}
function bme_nlMoveUp(recordId){
	var sortPosOld = parseInt($F('sortpos_'+recordId));
	if(sortPosOld == 0) return false;
	var sortPosNew = 0;
	var recordIdNew = 0;
	var posFound = false;
	var rows = $('tbl_products').select('tr');
	rows.each(function(elt) {
		if( !posFound && elt.visible() && elt.hasAttribute('id') ){
			var tmpRecId = elt.id.gsub('lr_', '');
			if(tmpRecId != recordId){
				sortPosNew = parseInt($F('sortpos_'+tmpRecId));
				recordIdNew = tmpRecId;
			}
			else{
				if(recordIdNew != 0){
					var moveRow = $('lr_'+recordId);
					$('sortpos_'+recordId).value = sortPosNew;
					$('sortpos_'+recordIdNew).value = sortPosOld;
					moveRow.removeClassName('highlight_row');
					var rowA = moveRow.remove();
					$('lr_'+recordIdNew).insert( { before : rowA } );
					if(sortPosNew == 0){
						$('mu_'+recordId).hide();
						$('mu_'+recordIdNew).show();
					}
					posFound = true;
				}
			}
			
		}
	});
	return false;
}

