var Cart = Class.create();

Cart.prototype = {

	initialize: function() {

	},

	externalSearch: function(pHide){

		if (pHide){
			$$('.extend_field').each (Element.hide);
			$('link-less-search-options').hide();
			$('link-more-search-options').show();
		}else{
			$$('.extend_field').each (Element.show);
			$('link-more-search-options').hide();
			$('link-less-search-options').show();
		}
	},

	openCloseCart: function (pHide) {
		if (pHide) {
			$$('.extend_cart').each (Element.hide);
			$('dots').show();
			$('cart-show-short').hide();
			$('cart-show-full').show();
		}else{
			$$('.extend_cart').each (Element.show);
			$('dots').hide();
			$('cart-show-short').show();
			$('cart-show-full').hide();
		}
	},

	updateImageList: function() {
		if (!document.getElementsByTagName){ return; }
		var anchors = document.getElementsByTagName('a');
		var areas = document.getElementsByTagName('area');

		// loop through all anchor tags
		for (var i=0; i<anchors.length; i++){
			var anchor = anchors[i];

			var relAttribute = String(anchor.getAttribute('rel'));

			// use the string.match() method to catch 'lightbox' references in the rel attribute
			if (anchor.getAttribute('href') && (relAttribute.toLowerCase().match('lightbox'))){
				anchor.onclick = function () {myLightbox.start(this); return false;}
			}
		}

		// loop through all area tags
		// todo: combine anchor & area tag loops
		for (var i=0; i< areas.length; i++){
			var area = areas[i];

			var relAttribute = String(area.getAttribute('rel'));

			// use the string.match() method to catch 'lightbox' references in the rel attribute
			if (area.getAttribute('href') && (relAttribute.toLowerCase().match('lightbox'))){
				area.onclick = function () {myLightbox.start(this); return false;}
			}
		}
	},

	showCalculator: function(pElem, pPromoPrice){

			if(pPromoPrice == 1)
				overlib('<div style="background: #EB1725; color:white; width: 100%; height: 100%; padding: 5%; font-size: 1.9em; z-index: 1026">Ograniczona ilość produktu na stanie magazynowym – tylko do wyczerpania zapasów. Skontaktuj się z pracownikiem infolinii (801 30 11 30) aby sprawdzić dostępną ilość</div>', 
								STICKY,
								CLOSECLICK,
								CLOSETEXT, 'Zamknij',
								RELY, 100, 
								WIDTH, 600, 
								RELX, (document.body.offsetWidth/2-150)-180,	
								TIMEOUT, 7000, 
								CSSCLASS, 
								FGCLASS, "ol_fg", 
								TEXTFONTCLASS, "ol_text",	
								BGCLASS, "ol_bg", 
								CLOSEFONTCLASS, "ol_close"
								);
						
		vElem = $(pElem);
		// calculate top and left offset for the lightbox
		var arrayPageSize = getPageSize();
		var arrayPageScroll = getPageScroll();
		var calculatorTop = arrayPageScroll[1] + (arrayPageSize[3] / 5)+100;
		var calculatorLeft = arrayPageScroll[0];

		Element.setTop(vElem, calculatorTop);
		Element.setLeft(vElem, calculatorLeft);
		Element.setWidth(vElem, arrayPageSize[0]-240);

		Element.show(vElem);
		$(pElem+'_input_focus').focus();

	},

	closeCalculator: function(pElem){
		$(pElem).hide ();
	},

	methodShowAlt: function(obj, alt){

		 Element.setTop(alt, mouseY - 100);
		 Element.setLeft(alt, mouseX -100);
		 Element.show(alt);

	},

	methodCloseAlt: function(alt){
		Element.hide(alt);
	},
	sendCart: function(pForm){
		new Ajax.Request('/koszyk/add', {
			method: 'POST',
			parameters: pForm.serialize(true),
			onLoading: function(){
				pForm.disable(pForm.id);
			},
			onSuccess: function(pTransport){
				pForm.enable(pForm.id);
				eval(pTransport.responseText);
				alert(vOdp.msg);
				if (vOdp.success)
					document.location.reload();
			},
			onFailure: function(){
				pForm.enable(pForm.id);
				alert('Błąd wysyłania formualrza');
			}
		});
	},

	
	toggleRatyBtn: function (pForm, pWartosc) {
		
		if (pWartosc >= getFloatVal (pForm.elements[pForm.name+'[RATY_MIN_VALUE]'].value)) {
			$('raty_'+pForm.elements[pForm.name+'[TOW_KOD]'].value).show();
		} else {
			$('raty_'+pForm.elements[pForm.name+'[TOW_KOD]'].value).hide();
		}
	},
	
	przeliczSimple: function (pForm, pIleAdd) {
		var vCena = getFloatVal (pForm.elements['CENA'].value);
		var vIle = getFloatVal (pForm.elements[pForm.name+'[ILE]'].value);

		if (pIleAdd && pIleAdd != 0) {
			vIle += pIleAdd;
			pForm.elements[pForm.name+'[ILE]'].value = vIle;
		}
		var vWar = vCena*vIle;
		pForm.elements['WARTOSC'].value = formatVal (vWar, 2, 100, ',');
		this.toggleRatyBtn(pForm, vWar);
	},

	przeliczWym: function (pForm, pIleAdd) {

		if (pForm.elements['SZER'].value == '')
		{
			if (pIleAdd && pIleAdd != 0) {
				var vIle = getFloatVal (pForm.elements[pForm.name+'[ILE]'].value);
				vIle += pIleAdd;
				pForm.elements[pForm.name+'[ILE]'].value = vIle;
			}
			var vWartosc = pForm.elements[pForm.name+'[ILE]'].value*getFloatVal(pForm.elements['CENA'].value);
		}
		else
		{
			var vWys = getFloatVal (pForm.elements[pForm.name+'[DLU]'].value);
			var vSzer = getFloatVal (pForm.elements[pForm.name+'[SZER]'].value);

			if (pIleAdd && pIleAdd != 0) {
				vWys += pIleAdd;
				pForm.elements[pForm.name+'[DLU]'].value = vWys;
			}
			var vIle = vWys * vSzer;
			var vWartosc = vIle * getFloatVal (pForm.elements['CENA'].value);
			pForm.elements[pForm.name+'[ILE]'].value = formatVal (vIle, 2, 100, ',');
		}
		

		pForm.elements['WARTOSC'].value = formatVal (vWartosc, 2, 100, ',');
		this.toggleRatyBtn(pForm, vWartosc);
	},

	przeliczFromPaczki: function (pForm, pIleAdd) {
		var vPaczki = getFloatVal (pForm.elements['PACZKI'].value);
		var vOpk = getFloatVal (pForm.elements['OPK'].value);
		var vCena = pForm.elements['CENA'].value;

		if (pIleAdd && pIleAdd != 0) {
			vPaczki += pIleAdd;
			pForm.elements['PACZKI'].value = vPaczki;
		}
		var vIle = vPaczki*vOpk;

		var vPow = vIle;
		var vWartosc = vPow*vCena;
			

		if (pForm.elements[pForm.name+'[ADD5]'].checked)
		{
			vPow+= vOpk;
			vWartosc+= vOpk*vCena;
		}
		pForm.elements['ILE'].value = formatVal (vIle, 2, 100, ',');

		pForm.elements[pForm.name+'[ILE]'].value = formatVal (vPow, 2, 100, ',');
		pForm.elements['WARTOSC'].value = formatVal (vWartosc, 2, 100, ',');
		this.toggleRatyBtn(pForm, vWartosc);
	},


	przeliczToPaczki: function (pForm, pIleAdd) {
		var vOpk = getFloatVal (pForm.elements['OPK'].value);
		var vIle = getFloatVal (pForm.elements['ILE'].value);
		//var vIle = UndivHint (getFloatVal (pForm.elements['ILE'].value), vOpk, 'ceil', false, 1000);
		var vCena = pForm.elements['CENA'].value;

		if (pIleAdd && pIleAdd != 0) {
			vIle += getFloatVal(pIleAdd);
			pForm.elements['ILE'].value = formatVal (vIle, 2, 100, ',');
		}
		
		/*pForm.elements['ILE'].value = formatVal (vIle, 3, 1000);*/

		var vPaczki = Math.round (vIle/vOpk);
			
		var vPow = (vPaczki*vOpk);
		if (vPow < vIle) {
			vPaczki++;
			vPow = (vPaczki*vOpk);
		}
		var vWartosc = (vPow*vCena);

		pForm.elements['PACZKI'].value = formatVal (vPaczki, 1, 10);
		
		if (pForm.elements[pForm.name+'[ADD5]'].checked)
		{
			vPow+= vOpk;
			vWartosc+= vOpk*vCena;
		}

		pForm.elements[pForm.name+'[ILE]'].value = formatVal (vPow, 2, 100, ',');
		pForm.elements['WARTOSC'].value = formatVal (vWartosc, 2, 100, ',');
		this.toggleRatyBtn(pForm, vWartosc);
	},

	dodajProcenty: function (pForm, pPlusDivId) {

		var vIle = getFloatVal(pForm.elements[pForm.name+'[ILE]'].value);
		var vWartosc = getFloatVal(pForm.elements['WARTOSC'].value);

		var vOpk = getFloatVal (pForm.elements['OPK'].value);
		var vCena = getFloatVal (pForm.elements['CENA'].value);

		if (pForm.elements[pForm.name+'[ADD5]'].checked)
		{
			$(pPlusDivId).show();
			$$('.to_show').each(Element.show);
			pForm.elements[pForm.name+'[ILE]'].value = formatVal (vIle + vOpk, 2, 100, ',');
			pForm.elements['WARTOSC'].value = formatVal(vWartosc + (vOpk*vCena), 2, 100, ',');
		}
		else
		{
			vIle = vIle - vOpk;
			vWartosc = vWartosc - formatVal(vOpk*vCena, 2, 100, '.');

			$(pPlusDivId).hide();
			$$('.to_show').each(Element.hide);
			pForm.elements[pForm.name+'[ILE]'].value = formatVal (vIle, 2, 100, ',');
			pForm.elements['WARTOSC'].value = formatVal (vWartosc, 2, 100, ',');
		}
	},
	
	toggleCalcType: function (pForm, pTowKod) {
		
		var vFieldsetContent = $('fieldset_content_'+pTowKod);
		
		if (vFieldsetContent.hasClassName('disabled_fieldset')) {
			vFieldsetContent.removeClassName('disabled_fieldset');
			vFieldsetContent.toggleClassName('enabled');
			$('input_dlug_'+pTowKod).writeAttribute('readonly', false).setStyle({backgroundColor:'white'});
			$('input_szer_'+pTowKod).writeAttribute('readonly', false).setStyle({backgroundColor:'white'});
			$('input_otwor_'+pTowKod).writeAttribute('readonly', false).setStyle({backgroundColor:'white'});

			$('dluglistw_adn_ilosc_'+pTowKod).removeClassName('enabled');
			$('dluglistw_adn_ilosc_'+pTowKod).toggleClassName('disabled_fieldset');
			$('dlug_listw_'+pTowKod).writeAttribute('readonly', true).setStyle({backgroundColor:'#e7e7e7'});
			$('calculatorContainer_'+pTowKod+'_input_focus').writeAttribute('readonly', true).setStyle({backgroundColor:'#e7e7e7'});
			pForm.elements[pForm.name+'[DLUG_LISTW]'].value = 0;
			pForm.elements[pForm.name+'[ILE]'].value = 0;
		
		} else {
		
			vFieldsetContent.removeClassName('enabled');
			vFieldsetContent.toggleClassName('disabled_fieldset');
			pForm.elements[pForm.name+'[DLU]'].value = 0;
			pForm.elements[pForm.name+'[SZER]'].value = 0;
			pForm.elements[pForm.name+'[OTWOR]'].value = 0;
			$('input_dlug_'+pTowKod).writeAttribute('readonly', true).setStyle({backgroundColor:'#e7e7e7'});
			$('input_szer_'+pTowKod).writeAttribute('readonly', true).setStyle({backgroundColor:'#e7e7e7'});
			$('input_otwor_'+pTowKod).writeAttribute('readonly', true).setStyle({backgroundColor:'#e7e7e7'});


			$('dluglistw_adn_ilosc_'+pTowKod).removeClassName('disabled_fieldset');
			$('dluglistw_adn_ilosc_'+pTowKod).toggleClassName('enabled');
			$('dlug_listw_'+pTowKod).writeAttribute('readonly', false).setStyle({backgroundColor:'white'});
			
			// pole Ile
			$('calculatorContainer_'+pTowKod+'_input_focus').writeAttribute('readonly', false).setStyle({backgroundColor:'white'});
			
		}
		pForm.elements[pForm.name+'[ILE]'].value = 0;		
		pForm.elements[pForm.name+'[DLUG_LISTW]'].value = 0;	
		pForm.elements['WARTOSC'].value = 0;
	},
	
	przeliczWymiary: function (pForm) {
		var vCena = getFloatVal (pForm.elements['CENA'].value);		
		var vWymX = getFloatVal (pForm.elements[pForm.name+'[WYM_X]'].value);

		var vDlug = getFloatVal (pForm.elements[pForm.name+'[DLU]'].value);
		var vSzer = getFloatVal (pForm.elements[pForm.name+'[SZER]'].value);
		var vOtwor = getFloatVal (pForm.elements[pForm.name+'[OTWOR]'].value);
		
		var vWymiary = (2*vDlug+2*vSzer)-vOtwor;
		var vIle = Math.ceil (vWymiary/vWymX);

		pForm.elements[pForm.name+'[ILE]'].value = formatVal (vIle, 2, 100, ',');
		pForm.elements[pForm.name+'[DLUG_LISTW]'].value = formatVal (vWymiary, 2, 100, ',');
		pForm.elements['WARTOSC'].value = formatVal (vCena*vIle, 2, 100, ',');
		this.toggleRatyBtn(pForm, vCena*vIle);
	},	
	
	
	przeliczListwy: function (pForm, pIleAdd) {
		var vCena = getFloatVal (pForm.elements['CENA'].value);		
		var vIle = getFloatVal (pForm.elements[pForm.name+'[ILE]'].value);
		var vWymX = getFloatVal (pForm.elements[pForm.name+'[WYM_X]'].value);
		
		if (pIleAdd && pIleAdd != 0) {
			var vReadonly = $(pForm.elements[pForm.name+'[DLUG_LISTW]'].id).readAttribute('readonly');
			if (vReadonly === 'readonly') 
				return;
			vIle += getFloatVal(pIleAdd);
			pForm.elements[pForm.name+'[ILE]'].value = formatVal (vIle, 2, 100, ',');
		}
		
		pForm.elements[pForm.name+'[DLUG_LISTW]'].value = formatVal (vWymX*vIle, 2, 100, ',');
		var vWar = vCena*vIle;
		pForm.elements['WARTOSC'].value = formatVal (vWar, 2, 100, ',');
		this.toggleRatyBtn(pForm, vWar);
	},
	
	przeliczSztListew: function (pForm, pIleAdd) {
		var vCena = getFloatVal (pForm.elements['CENA'].value);
		var vDlugListw = getFloatVal (pForm.elements[pForm.name+'[DLUG_LISTW]'].value);				


		if (pIleAdd && pIleAdd != 0) {
			var vReadonly = $(pForm.elements[pForm.name+'[DLUG_LISTW]'].id).readAttribute('readonly');
			if (vReadonly === 'readonly') 
				return;
			vDlugListw += getFloatVal(pIleAdd);
			pForm.elements[pForm.name+'[DLUG_LISTW]'].value = formatVal (vDlugListw, 2, 100, ',');
		}	

		var vWymX = getFloatVal (pForm.elements[pForm.name+'[WYM_X]'].value);
		var vIle = Math.ceil (vDlugListw/vWymX);
		
		pForm.elements[pForm.name+'[ILE]'].value = formatVal (vIle, 2, 100, ',');
		var vWar = vCena*vIle;
		pForm.elements['WARTOSC'].value = formatVal (vWar, 2, 100, ',');
		this.toggleRatyBtn(pForm, vWar);
	}
	
}

var mouseX = null;
var mouseY = null;

Event.observe(document, 'mousemove', function(event){ mouseX = Event.pointerX(event); mouseY = Event.pointerY(event);});

objCart = new Cart();