/*
 *  overlay
 */
function set_overlay(id, pos, margin, image)
{  
   $(id).load(function() {
      $(id).wrap('<div class="overlay" />');
      var off = $(this).position();
      $(id).after('<div class="overlay_image overlay_image'+pos+'" style="top:'+(parseInt(off.top)+parseInt(margin))+'px;left:'+(parseInt(off.left)+parseInt(margin))+'px;width:'+ (parseInt($(this)[0].offsetWidth) - parseInt((margin*2))) +'px;height:'+ (parseInt($(this)[0].offsetHeight) - parseInt((margin*2))) +'px;background-image:url(\''+image+'\')" />');
   });
}

function m_submit_form( nameAttr, valueAttr, formId ) {
	if (nameAttr) { $("#"+formId).prepend("<input type=\"hidden\" name=\"" + nameAttr + "\" value=\""+valueAttr+"\" />"); }
	$("#"+formId).submit();
	$(this).replaceWith("<span class=\"styledbutton\"><span>"+$(this).text()+"</span></span>");
}

function styleButtons() {
	/* macht Probleme (leitet button-klicks auf Startseite um), erstmal deaktiviert */
/*	
 	$(".article_actions button.submitbutton").each(function() { 
		var btnContent = $(this).text();
		if($(this).attr('onclick')) { 
			var onClickValue = $(this).attr('onclick');
		} else {
			var onClickValue = "m_submit_form('"+$(this).attr('name')+"', '"+$(this).text()+"', '"+$(this).parents('form').attr('id')+"')";
			//"document.getElementById('" + $(this).parents('form').attr('id') + "').submit(); return false";
		}
		//$(this).removeClass('submitbutton');
		$(this).replaceWith("<a "+($(this).attr('id') ? "id=\""+$(this).attr('id')+"\" " : "")+"class=\""+$(this).attr('class')+"\" href=\"#"+$(this).parents('form').attr('id')+"\" onclick=\""+onClickValue+"\"><span>"+btnContent+"</span></a>"); 
	});
*/
}




/*
 *  Modal Dialog Helper Function
 */
function show_modal(modal_id) {
   var dialogid = '#' + modal_id;
	$(document).ready(function(){
		var triggerid= modal_id + 'trigger';
		$(dialogid).before('<a id="'+triggerid+'" href="'+dialogid+'" class="hidden"></a>');

		$('#'+triggerid).fancybox({
			'hideOnContentClick': true, 
			'onClosed'		: function() {
				$(dialogid).remove();
			}
		});

		//trigger click to load fancybox
		$('#'+triggerid).trigger('click');
	});
}

/** 
 * @deprecated
 */
function show_popup(mixed, bData, bFast, fnCreated) {
   var dialog = bData ? mixed : '#popup' + mixed;
   $(dialog).fancybox({
		'hideOnContentClick': true, 
		'onClosed'		: function() {
			$(dialog).remove();
		}
	});
}


function setModalBindings() {
	$(document).ready(function(){
		$("a.modal_popup").fancybox({
			'titleShow': false, 
			'enableEscapeButton': true, 
			'showCloseButton': true, 
			'transitionIn': 'elastic'
		});
		
		$("a.zoomable").fancybox({
			'titleShow': true, 
			'titlePosition': 'inside', 
			'hideOnContentClick': true, 
			'transitionIn': 'elastic', 
			'transitionOut': 'elastic'
		});
		
		if ($('.popup').length > 0)
		{
			$('.popup').each(function(idx, item) {
				$(item).attr('href', '#popup' + $(item).attr('id'));
				$(item).fancybox({
					'titleShow': false, 
					'enableEscapeButton': true, 
					'showCloseButton': true, 
					'transitionIn': 'elastic'
				});
			});

		}
		
		if ($('.vat_info a').length > 0) { 
			$('.vat_info a').each(function(idx, item) {
				$(item).bind('click', function() {
					open_modal_window( add_url_param($(this).attr('href'), 'exclusive_content=1') );
					return false; 
				});
			});
		}
	});
}

function initTips() { 
	$(".tooltip, .vat_info .tooltitle").tipTip();
}


function add_url_param(url, params) {
   var newAdditionalURL = '';
   var tempArray = url.split('?');
   var baseURL = tempArray[0];
   var aditionalURL = tempArray[1]; 
   var temp = '';
   
   if (aditionalURL) {
      var tempArray = aditionalURL.split('&');
      for (var i in tempArray) {
         newAdditionalURL += temp + tempArray[i];
         temp = '&';
      }
   }
   
   var finalURL = baseURL + '?' + newAdditionalURL + temp + params;
   return finalURL;
}


/**
 *  modal window popup
 */
function open_modal_window(url, width, height) {
	width = width || 680;
	height = height || 495;
	
	$.fancybox({
		'padding'		: 0,
		'autoScale'		: false,
		'transitionIn'	: 'none',
		'transitionOut'	: 'none',
		'title'			: this.title,
		'width'			: width,
		'height'		: height,
		'href'			: url,
		'type'			: 'ajax'
	});
	return false;
}


/**
 * window popup
 * @deprecated wird u.a. aber noch fuer commerz finanz popup benoetigt
 */
function open_window(url, width, height) {

	width = width || 1000;
	height = height || 650;

	var left = (screen.width - width) / 2;
	var top = (screen.height - height) / 2;

	var opt = "width=" + width + ",height=" + height + ",top=" + top + ",left=" + left + ",scrollbars=yes,location=no,directories=no,status=no,menubar=no,toolbar=no,resizable=no,dependent=no";
   
	var wnd = window.open(url, "mypopup", opt);
   
    wnd.resizeTo(width, height);
    wnd.moveTo(left, top);
    wnd.focus();
   
	return false;
}


//Falls nVLKeys gesetzt ist und 1 ist, dann soll die Funktion die Vergleichsliste nicht aus der Session aufbauen
//Sondern die Keys der Artikeluebersicht nutzen
function showCompareList(nVLKeys, bWarenkorb)
{
	if(typeof(nVLKeys) == "undefined")
		nVLKeys = 0;
	
	if(typeof(bWarenkorb) == "undefined")
		bWarenkorb = 1;

	myCallback = xajax.callback.create();
	myCallback.onComplete = function(obj) {
		data = obj.context.compareHTML;
		if (typeof data == 'string' && data.length > 0)
		{
			$.fancybox(data, { 
				//'hideOnContentClick': true, 
				'autoScale'		: true
			});
		}
	}
	xajax.call('gibVergleichsliste', { parameters: [nVLKeys, bWarenkorb], callback: myCallback, context: this } );
	return false;
}


function setSelectionWizardAnswer(kMerkmalWert, kAuswahlAssistentFrage, nFrage, kKategorie)
{
    myCallback = xajax.callback.create();
	myCallback.onComplete = function(obj) {
        data = obj.context.response;
		console.log(data);
    }
    xajax.call('setSelectionWizardAnswerAjax', { parameters: [kMerkmalWert, kAuswahlAssistentFrage, nFrage, kKategorie], callback: myCallback, context: this } );
	return false;
}

function resetSelectionWizardAnswer(nFrage, kKategorie)
{
    myCallback = xajax.callback.create();
	myCallback.onComplete = function(obj) {
        data = obj.context.response;
		console.log(data);
    }
    xajax.call('resetSelectionWizardAnswerAjax', { parameters: [nFrage, kKategorie], callback: myCallback, context: this } );
	return false;
}

/*
 *  format file size
 */
function formatSize(size) {

   var fileSize = Math.round(size / 1024);
   var suffix   = 'KB';
   
   if (fileSize > 1000)
   {
      fileSize = Math.round(fileSize / 1000);
      suffix   = 'MB';
   }
   
   var fileSizeParts = fileSize.toString().split('.');
   fileSize = fileSizeParts[0];
   
   if (fileSizeParts.length > 1)
      fileSize += '.' + fileSizeParts[1].substr(0,2);

   fileSize += suffix;
   
   return fileSize;
}

function increaseQuantity(obj, min, max) {
   var val = parseInt($(obj).val());
   
   if (typeof max == 'number')
      if (val + 1 > parseFloat(max))
         return false;
   
   $(obj).val(++val);
   $(obj).trigger('change');
   return false;
}

function decreaseQuantity(obj, min, max) {
   var val = parseInt($(obj).val());
   
   if (typeof min == 'number')
      if (val - 1 < parseFloat(min))
         return false;
   
   $(obj).val(--val);
   $(obj).trigger('change');
   return false;
}

function register_sidebox_autoscroll() {
   $(".sidebox").last().each(function(idx, item) {
      if ($(this).hasClass('autoscroll')) {
         var top = $(item).offset().top;

         $(item).css({
            'width' : $(item).width(),
            'position' : 'absolute',
            'height' : 'auto',
            'top' : top
         });
         
         $(window).scroll(function() {        
            var offset = $(document).scrollTop();
            var max = $('#content').offset().top + $('#content').outerHeight();
            
            if (offset < top) offset = top;
            if (offset > top) offset += 10;
               
            var maxoff = offset + $(item).outerHeight();
            
            if (maxoff <= max) {
               $(item).stop();
               $(item).animate({top: offset}, 250, 'swing');
            }
         });
      }
   });
}



function gibAbnahmeIntervall(elem, fAbnahmeintervall)
{    
    if(Number(fAbnahmeintervall) > 0)
    {
        if(typeof(elem) != "undefined")
        {
            elem.value = elem.value.replace(/,/g, ".");
            if(Number(elem.value) < Number(fAbnahmeintervall) && Number(elem.value) != 0)
                elem.value = Number(fAbnahmeintervall);
            else
                elem.value = Math.round((Number(fAbnahmeintervall) * Math.ceil((Number(elem.value) / Number(fAbnahmeintervall)))) * 100) / 100; 
        }
    }
}

function erhoeheArtikelAnzahl(elemID, bIntervall, fAbnahmeintervall)
{
    if(elemID.length > 0)
    {
        if(typeof(bIntervall) == "undefined")
            bIntervall = false;
            
        elem = document.getElementById(elemID);
        
        if(typeof(elem) != "undefined")
        {
            elem.value = elem.value.replace(/,/g, ".");
            if(Number(elem.value) < 0)
                elem.value = 0;
            
            if(bIntervall && Number(fAbnahmeintervall) > 0)
            {
                if(Number(elem.value) < Number(fAbnahmeintervall))
                    elem.value = Number(fAbnahmeintervall);
                else
                {
                    elem.value = Math.round((Number(fAbnahmeintervall) * Math.ceil((Number(elem.value) / Number(fAbnahmeintervall)))) * 100) / 100; 
                    elem.value = Math.round((Number(elem.value) + Number(fAbnahmeintervall)) * 100) / 100;
                }
            }
            else
            {
                elem.value = Number(elem.value) + 1;
            }
        }
        $('#' + elemID).trigger('keyup');
    }   
}

function erniedrigeArtikelAnzahl(elemID, bIntervall, fAbnahmeintervall)
{
    if(elemID.length > 0)
    {
        if(typeof(bIntervall) == "undefined")
            bIntervall = false;
            
        elem = document.getElementById(elemID);
        
        if(typeof(elem) != "undefined")
        {
            elem.value = elem.value.replace(/,/g, ".");
            if(Number(elem.value) < 0)
                elem.value = 0;
            
            if(bIntervall && Number(fAbnahmeintervall) > 0)
            {
                if(Number(elem.value) >= Number(fAbnahmeintervall))
                {
                    elem.value = Math.round((Number(fAbnahmeintervall) * Math.floor((Number(elem.value) / Number(fAbnahmeintervall)))) * 100) / 100;
                    elem.value = Math.round((Number(elem.value) - Number(fAbnahmeintervall)) * 100) / 100; 
                }
            }
            else
            {
                if(Number(elem.value) > 1)
                    elem.value -= 1;
            }
        }
        $('#' + elemID).trigger('keyup');
    }   
}

function number_format(number, decimals, dec_point, thousands_sep)
{
	number = (number + '').replace(/[^0-9+\-Ee.]/g, '');
    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);
}


/** Ajax Suggest **/

var nSelectedSuggest = -1;
var nAnzahlSuggests = 0;

/*  
*	Params:
*	elem 			=> Objekt des Suchfelds (input)
*	e 				=> Event des Suchfelds
*	suggestID		=> DIV an dem die Suchvorschläge angegeben werden
*	submitID		=> Form die abgeschickt werden soll
*/
function checkKeys(elem, e, suggestID, submitID) {
	if(e) {
		if(elem.value.length >= 3) {
			if(e.keyCode == 38 || e.keyCode == 40) {
				for(i=0; i<=nAnzahlSuggests; i++) {
					document.getElementById(suggestID + i).className = 'suggestions';
				}
			}
			
			// up
			if(e.keyCode == 40 && (nSelectedSuggest < nAnzahlSuggests)) {
				nSelectedSuggest++;
				document.getElementById(suggestID + nSelectedSuggest).className = 'suggestions active';
			}	
				
			// down
			else if(e.keyCode == 38 && nSelectedSuggest > 0) {
				nSelectedSuggest--;	
				document.getElementById(suggestID + nSelectedSuggest).className = 'suggestions active';
			}
					
			// search
			else if(e.keyCode != 40 && e.keyCode != 38 && e.keyCode != 13) {
				nSelectedSuggest = -1;				
				xajax_suchVorschlag(elem.value, e.keyCode, elem.id, suggestID, submitID);
			}
			
			else
				document.getElementById(suggestID + nSelectedSuggest).className = 'suggestions active';	
		}
		else {
			if(nAnzahlSuggests != 0)
				for(i=0; i<=nAnzahlSuggests; i++)
					document.getElementById(suggestID + i).style.display = "none";
		}
	}
}

function checkEnter(elem, e, suggestID) {
	if(e.keyCode == 13)
		elem.value = document.getElementById(suggestID + 'value' + nSelectedSuggest).value;
}

function releaseSearch(elemSuggestID) {
   window.setTimeout(function() {
      var elemHeader = document.getElementById(elemSuggestID);
      elemHeader.style.display = "none";
   }, 200);
}

function resizeContainer(elemSearchID, elemSuggestID) {
   var elemSearch = document.getElementById(elemSearchID);
   var elemHeader = document.getElementById(elemSuggestID);
   elemHeader.style.zIndex = 101;
   elemHeader.style.position = 'absolute';
   elemHeader.style.left =  elemSearch.offsetLeft + 'px';
   elemHeader.style.top = (elemSearch.offsetTop + elemSearch.offsetHeight) + 'px';
   elemHeader.style.width = elemSearch.offsetWidth + 'px';
   elemHeader.style.display = 'block';
   elemHeader.className = 'search_wrapper';
}

$(document).ready(function(){
	styleButtons();
	setModalBindings();
	initTips();
	// execute cronjob
	//xajax_executeCron();
});
