/* Copyright (c) 2011 CRMSoftware Piotr Głodzik piotr.glodzik@crmsoftware.pl
 * --------------------------------------------------------------------------
 * Linea, version 1.0.0
 * Data utworzenia pliku: 2011-03-23
 * Ostatnia modyfikacja:  2011-04-03
 *
 * Jednym właścielem praw autorkich i majątkowych do kodu składającego się na Skrypt Linea jest Piotr Głodzik CRMSoftware.
 * Rozpowszechnianie kodu, korzystanie z niego w celach niekomercyjnych, oraz komercyjnych bez zgody i wiedzy autora
 * jest zabronione.
 */
(function(window){
	
	var Linea = function() {
		
	}
	
	Linea.prototype =  {
			ver : '1.0.0',			
			showBigArrangement : function() {
				
		var over = Arm('firmaOver');
				var mainPicture = Arm('mainPicture');
				
				mainPicture.style.marginLeft='-10000px';
				mainPicture.onload = function() {
					
					mainPicture.style.width = '573px';
					mainPicture.style.height = 'auto';
					
					over.style.display='none';
															
					if ( parseInt(mainPicture.height) > 381 ) {											
						mainPicture.style.width = Math.ceil(  ( parseInt( mainPicture.width ) *381 / parseInt(mainPicture.height)  ) ) + 'px';						
						mainPicture.style.height = '382px';						
					} 			
					
					mainPicture.style.marginLeft='auto';
					
				}
				
				
				over.style.display ='block';
				
				var imgX = parseInt((over.offsetWidth-over.firstChild.offsetWidth)/2);
				var imgY = parseInt((over.offsetHeight-over.firstChild.offsetHeight)/2);
				
				over.firstChild.style.left=imgX+'px';
				over.firstChild.style.top=imgY+'px';
								
				
				var arrPieces = this.src.split( '/' );							
				mainPicture.src = 'images/gallery/' + arrPieces[arrPieces.length-1];				
				
			},
			
			stopLink : function(e) {				
				e.cancelBubble = true;
				e.returnValue = false;
				if (e.stopPropagation) {
					e.stopPropagation();
					e.preventDefault();
				}				
			},
			onWaitGetProductData : function(o) {
				
				var overlay = Arm('over');				
				
				overlay.style.height = overlay.parentNode.clientHeight-7+'px';
				overlay.style.display='block'; 				
				
			},						
			
			makeProductRow : function (name, value, pTable, rIndex ) {
				
				
				//var row = document.createElement('tr');
				var row = pTable.insertRow(rIndex);
				
				var nameCell = document.createElement('th');
				var nameDiv = document.createElement('div');
				var nameText = document.createTextNode(name);
				nameDiv.appendChild(nameText);
				nameCell.appendChild(nameDiv);
				row.appendChild(nameCell);
				
				var valueCell = row.insertCell(1);
				var valueText = document.createTextNode(value);
				valueCell.appendChild(valueText);
				//row.appendChild(valueCell);
				
				return row;
			},
			
			onGotProductData : function(o) {
								
			    var product = eval( '(' + o.text + ')' );
			   
			    o.param.L.pictures=product.pictures;
			    var langCode = Arm('langCode').value;
			    Arm('pictureIndex').value = 0;
			    Arm('pPrevImg').style.display='none';
			    if ( product.pictures.length>1) {
			    	Arm('pNextImg').style.display='block';
			    } else {
			    	Arm('pNextImg').style.display='none';
			    }
			    	
			    if (product.error==1) {
			    	alert('Wystąpił błąd podczas pobierania danych');
			    } else {			    	
			    	
			    	Arm('pPicture').src = product.picture_src;
			    	if ( product.name ) Arm('pName').innerHTML = product.name; else Arm('pName').innerHTML ='';
			    				    	
			    	// Usuwamy wszystkie wiersze
			    	var pTable = Arm('productDetailsTable');
			    	
			    	for(var i=pTable.rows.length-1;i>0;i--) {
			    				    		
			    		if ( (pTable.rows[i].cells[0].id != 'pDescr') && ( pTable.rows[i].cells[0].id != 'pName' ) ) {			    	
			    			pTable.deleteRow(pTable.rows[i].rowIndex);
			    			
			    		} else {
			    			continue;
			    		}
			    			
			    	}

			    	var dict = { code : { pl : 'KOD', en : 'CODE' },
			    				 capacity : { pl : 'POJEMNOŚĆ', en : 'CAPACITY' },
			    				 width : { pl : 'SZEROKOŚĆ', en : 'WIDTH' },
			    				 height :  { pl : 'WYSOKOŚĆ', en : 'HEIGHT' },
			    				 depth : { pl : 'GŁĘBOKOŚĆ', en : 'DEPTH' },
			    				 material : { pl : 'MATERIAŁ', en : 'MATERIAL' },
			    				 color :    { pl : 'KOLOR', en : 'COLOR' } };
			    	var lang = Arm('langCode').value;
			    	
			    	var row;

			    	// Dodajemy kolejne wiersze
			    	// o.param.L to this - Linea, tkóry został tutaj przekazany po kolei przez różne funkcje :)
			    	var x=1;
			    	if ( product.code ) {
			    		o.param.L.makeProductRow(  dict.code[lang], product.code, pTable, x );
			    		x++;
			    		
			    	}
			    	
			    	if (product.capacity) {			    		
			    		o.param.L.makeProductRow( dict.capacity[lang], product.capacity, pTable, x );
			    		x++;
			    	}
			    	if (product.width) {
			    		o.param.L.makeProductRow( dict.width[lang], product.width, pTable, x );
			    		x++;
			    	}
			    	if (product.height) {
			    		o.param.L.makeProductRow( dict.height[lang], product.height, pTable, x );
			    		x++;
			    	}
			    	if (product.depth) {
			    		o.param.L.makeProductRow( dict.depth[lang], product.depth, pTable, x );
			    		x++;
			    	}
			    	if (product.material) {
			    		o.param.L.makeProductRow( dict.material[lang], product.material, pTable, x );
			    		x++;
			    	}
			    	if (product.color) {
			    		o.param.L.makeProductRow( dict.color[lang], product.color, pTable, x );
			    		x++;
			    	}
			    	
			    	// Dodanie pol dodatkowych
			    	for(var z=0;z<product.fields.length;z++,x++) {
			    		
			    		if ( product.fields[z].value ) {
			    			o.param.L.makeProductRow( product.fields[z].name, product.fields[z].value, pTable, x );
			    		} else {
			    			x--;
			    		}
			    	}
			    	
			    	if ( product.descr) Arm('pDescr').innerHTML = product.descr; else Arm('pDescr').innerHTML = '';
			    	
			    	var catLink = Arm('pCatalogueLink');
			    	var cerLink = Arm('pCertificateLink');
			    	var ateLink = Arm('pAtestLink');
			    	var decLink = Arm('pDeclarationLink');
			    	var othLink = Arm('pOtherLink');
			    	var pId = Arm('pId');
			    	
			    	if (product.hasCatalogue==1) {
			    		catLink.href=langCode+'/pliki/katalogi/'+product.id;
			    		catLink.style.display='inline';
			    		catLink.previousSibling.style.display='inline';
			    	} else {
			    		catLink.style.display='none';
			    		catLink.previousSibling.style.display='none';
			    	}
			    	
			    	if (product.hasCertificate==1) {
			    		cerLink.href=langCode+'/pliki/certyfikaty/'+product.id;
			    		cerLink.style.display='inline';
			    		cerLink.previousSibling.style.display='inline';
			    	} else {
			    		cerLink.style.display='none';
			    		cerLink.previousSibling.style.display='none';
			    	}
			    	
			    	if (product.hasAtest==1) {
			    		ateLink.href=langCode+'/pliki/atesty/'+product.id;
			    		ateLink.style.display='inline';
			    		ateLink.previousSibling.style.display='inline';
			    	} else {
			    		ateLink.style.display='none';
			    		ateLink.previousSibling.style.display='none';
			    	}
			    	
			    	if (product.hasDeclaration==1) {
			    		decLink.href=langCode+'/pliki/deklaracje/'+product.id;
			    		decLink.style.display='inline';
			    		decLink.previousSibling.style.display='inline';
			    	} else {
			    		decLink.style.display='none';
			    		decLink.previousSibling.style.display='none';
			    	}
			    	
			    	if (product.hasOther==1) {
			    		othLink.href=langCode+'/pliki/inne/'+product.id;
			    		othLink.style.display='inline';
			    		othLink.previousSibling.style.display='inline';
			    	} else {
			    		othLink.style.display='none';
			    		othLink.previousSibling.style.display='none';
			    	}
			    	
			    	pId.value = product.id;
			    	
			    	// Produkty powiazane
			    	var relatedContainer = Arm('relatedPicturesContainer');
			    	
			    	if ( relatedContainer ) {
			    	// Wyczyszczenie kontenera
			        relatedContainer.innerHTML = '';
			    	for( var x=0;x<product.related.length;x++ ) {
			    		
			    		var curItem = product.related[x];
			    		
			    		var aLink = document.createElement('a');
			    		aLink.href = langCode + '/oferta/produkty/'+curItem.category_id+'/'+curItem.product_id;
			    		
			    		var pPict = document.createElement('img');
			    		pPict.src= 'images/gallery/thumbs/'+curItem.main_picture;
			    		pPict.className = 'relatedProductImg';
			    		aLink.appendChild(pPict);
			    		
			    		relatedContainer.appendChild(aLink);
			    		
			    	}
			    	}
			    	Arm('over').style.display='none';
			    }
				
			},
			
			
			getProductData : function(e,o) {

				// Odznaczamy wszystkie obrazki 
				var imgs = this.parentNode.parentNode.parentNode.getElementsByTagName('img');
				for(var i=0;i<imgs.length;i++) {
					if ( (i+1)%6==0 ) {
						imgs[i].className = 'productThumb nomargin';
					} else {
						imgs[i].className = 'productThumb';
					}
					
				}
				// Zaznaczamy kliknięty			
				this.className = this.className + ' selected';
				// Skąd tutaj wziąć język
				// Może zapisywać do ukrytego inputa?
				var langCode = Arm('langCode').value;
				
				A.aGet( { url : 'index.php?action=produkt&lang='+langCode,
					      serviceFunc : o.L.onGotProductData,
					      serviceFuncWait : o.L.onWaitGetProductData,					      
					      method : 'POST',
					      pStr : 'id='+o.id,
					      mimeType : 'text/plain',
					      param : { L: o.L}
					      } );
				
			},
			
			assignGetProductData : function() {
			
				var prods = A.getO('products').getElementsByTagName('img');
				for (var i=0;i<prods.length;i++) {
					Arm(prods[i]).aE('click',this.getProductData,'hndl',{ id:prods[i].nextSibling.value, L:this });
					Arm(prods[i].parentNode).aE('click',this.stopLink,'hndl',{});
				}
				
			},
			
			nextPicture : function(e,o) {
								
				var pi = Arm('pictureIndex'); 
				var pics = o.L.pictures;
				var ov = Arm('over');
				var prevImg = Arm('pPrevImg');
				var nextImg = Arm('pNextImg');
				
				if ( parseInt(pi.value) < pics.length-1 ) {
					
					pi.value = parseInt(pi.value)+1;												
					ov.style.display ='block';
					
					Arm('pPicture').onload = function() {
						Arm('over').style.display = 'none';
					}
					
					Arm('pPicture').src= 'images/gallery/'+pics[pi.value];										
					
					// Jeżeli wyświetlany obrazek jest większy niż 0, to pokazujemy strzałkę wstecz
					if ( parseInt(pi.value)>0 ) {
						prevImg.style.display='block';
					}										
					if (parseInt(pi.value)==pics.length-1) {
						nextImg.style.display='none';	
					}					
				} 
			},
			
			prevPicture : function(e,o) {
												
				var pi = Arm('pictureIndex');									
				var pics = o.L.pictures;				
				var ov = Arm('over');
				var prevImg = Arm('pPrevImg');
				var nextImg = Arm('pNextImg');
				
				if ( parseInt(pi.value) > 0 ) {
					
					pi.value = parseInt(pi.value)-1;
				
					ov.style.display ='block';
					
					Arm('pPicture').onload = function() {
						Arm('over').style.display = 'none';
					}
					Arm('pPicture').src= 'images/gallery/'+pics[pi.value];

									
					// Jeżeli jest to pierwszy obrazek
					if (parseInt(pi.value)==0) {
						prevImg.style.display='none';
						if ( pics.length > parseInt(pi.value) ) {
							nextImg.style.display='block';
						}
					} else {
						nextImg.style.display='block';
					}
									
				} 
								
			},
			
			assignNextPicture : function() {
				
				Arm('pNextImg').aE('click',this.nextPicture,'hndl',{L:this} );
			},
			
			assignPrevPicture : function() {
				
				Arm('pPrevImg').aE('click',this.prevPicture,'hndl',{L:this} );
				
			},
			
			categoryOut : function() {
				Arm('catOver').style.display='none';
			},
			
			categoryOver : function(e,o) {
				
				if ( this.nextSibling.value ) {
					var iSrc = 'images/category/'+this.nextSibling.value;
					var con = Arm('catOver');
					var im = con.getElementsByTagName('img')[0];
					im.src = iSrc;
					
					var tab = Arm('categoryList');
					var ct = Arm('categoryListContainer');
																				
					var curtop=0;
					
					do {
						curtop+=ct.offsetTop;
					} while( (ct = ct.offsetParent) );
					
					var newY;
					if ( document.documentElement.scrollTop <curtop) {
						newY=0;
					} else {
						newY = document.documentElement.scrollTop-curtop;						
					}	
					
					con.style.top = newY+20+'px';															
					con.style.display = 'block';
					
				}
				
			},
			
			assignCategoryOver : function() {

				var ls = Arm('categoryList').getElementsByTagName('a');
				
				for( var i=0;i<ls.length;i++) {
					
					Arm(ls[i]).aE('mouseover',this.categoryOver,'hndl',{});
					Arm(ls[i]).aE('mouseout',this.categoryOut,'hndl',{});
				}
				
			},
			
			closeLightbox : function (e,o) {
				this.style.display='none';
			},
			
			lightbox : function (e,o) {
				
				var lCon = Arm('lightbox');			
				
				var b = document.body;
				
				var im = lCon.getElementsByTagName('img')[0];								
								
				b.appendChild(lCon);											
				var x = document.body.offsetWidth;
				var y = document.body.offsetHeight;
								
				// Rozmiary kontenera
				lCon.style.top=0+'px';				
				lCon.style.left=0+'px';
				lCon.style.width = x+'px';
				lCon.style.height = y+'px';
								
				// Rozmiary warstwy przezroczystej
				lCon.firstChild.style.top=0+'px';
				lCon.firstChild.style.left=0+'px';
								
				lCon.firstChild.style.width=x+'px';				
				lCon.firstChild.style.height=y+'px';
							
				im.onload = function (){					
										
					lCon.style.visibility='visible';
					lCon.style.display = 'block';
					var xPos = parseInt((document.documentElement.clientWidth-im.offsetWidth)/2);					
					var yPos = parseInt((document.documentElement.clientHeight-im.offsetHeight-50)/2);
										
					// Rozmiary backgroundu obrazka
					this.parentNode.style.left=xPos+'px';
					this.parentNode.style.top=yPos+'px';					
					this.parentNode.style.width=this.clientWidth+'px';
					
					lCon.style.visibility='visible';
					loader.style.display = 'none';				
					
				}
				
				// Pozycjonuję loading
				var loader=lCon.childNodes[2];
				
				loader.style.backgroundColor='#fff';
				loader.style.padding='20px';
				var xlPos = parseInt((document.documentElement.clientWidth-loader.offsetWidth)/2);
				var ylPos = parseInt((document.documentElement.clientHeight-loader.offsetHeight)/2);
				
				loader.style.position='absolute';
				loader.style.left=xlPos+'px';
				loader.style.top=ylPos+'px';
				if ( o.srcImg ) {
					im.src = o.srcImg.src;
				} else {
					im.src = this.src;
				}
				lCon.aE('click',o.t.closeLightbox,'hndl',{});
				
			},
			
			qForm : function(lang) {
				
				var pId = Arm('pId').value;
				var bHref = document.getElementsByTagName( 'base' )[0].href;
				bHref = bHref + 'form.php?id='+pId+'&lang='+lang;
				
				A.nW( { url : bHref,
						name : 'qForm',
						width : '480px',
						height : '400px',
						left : '20px', 
						top : '20px' } );								
			}, 				
			
			assignLightbox : function () {
					
				// Przypisuję je tylko do produktów
				Arm('pPicture').aE('click',this.lightbox,'hndl',{ t:this });
				
				// .. i do ikonki zoom
				var prodImg = Arm('productDetailsContainer');								
				var imgs = prodImg.getElementsByTagName('img');
				for(var j=0;j<imgs.length;j++){
					if (imgs[j].className=='product') {						
						var imSrc = imgs[j]; 
						break;
					}
				}
				
				Arm('zoomImg').aE('click',this.lightbox,'hndl',{ t:this, srcImg:imSrc });

			},
			
			assignLightboxFirm : function () {
				Arm('mainPicture').aE('click',this.lightbox,'hndlaa',{ t:this });
				Arm('zoomImg').aE('click',this.lightbox,'hndlab',{ t:this, srcImg:Arm('mainPicture') });

			},
			
			newsletterSubmit : function() {
				this.form.action='pl/kontakt';
			},
			
			assignNewsletter : function() {
				Arm('newsletterSubmit').aE('click',this.newsletterSubmit,'hndl',{});
			},
			
			showMap : function (e,o) {
				
				var lCon = Arm('lightbox');			
				
				
				var b = document.body;
				var im = lCon.getElementsByTagName('iframe')[0];
								
				b.appendChild(lCon);											
				var x = document.body.offsetWidth;
				var y = document.body.offsetHeight;
								
				// Rozmiary kontenera
				lCon.style.top=0+'px';				
				lCon.style.left=0+'px';
				lCon.style.width = x+'px';
				lCon.style.height = y+'px';
				
								
				// Rozmiary warstwy przezroczystej
				lCon.firstChild.style.top=0+'px';
				lCon.firstChild.style.left=0+'px';
								
				lCon.firstChild.style.width=x+'px';				
				lCon.firstChild.style.height=y+'px';
																			
			    lCon.style.visibility='visible';
			    lCon.style.display = 'block';
			    var xPos = parseInt((document.documentElement.clientWidth-im.offsetWidth)/2);					
				var yPos = parseInt((document.documentElement.clientHeight-im.offsetHeight-50)/2);
										
				// Rozmiary backgroundu iframki				
				var imgCon = Arm('imgContainer');
			    imgCon.style.left=xPos+'px';
				imgCon.style.top=yPos+'px';					
					
				lCon.style.visibility='visible';					
				
				lCon.aE('click',o.t.closeLightbox,'hndl',{});
				
				
			},
			
			assignShowMap : function () {
						
				Arm('contactMap').aE('click',this.showMap,'hndl',{ t:this });
				Arm('zoomImg').aE('click',this.showMap,'hndl',{ t:this });

			},
			
			showMenu : function (e,o) {
				o.offerMenuContainer.style.marginLeft='0';
			},
			
			hideMenu : function (e,o) {				
								
				o.offerMenuContainer.style.marginLeft='-9999px';
			},
			
			showSubmenu : function(e,o) {
								
				var submenus= this.getElementsByTagName('ul');
				if ( submenus.length > 0 ) {
					var submenu = submenus[0];
					
					submenu.style.left = this.offsetWidth + 1 + 'px';
					submenu.style.marginLeft = '-1px';
					
					
				}
				
			}, 
			
			hideSubmenu : function (e,o) {
				var submenus= this.getElementsByTagName('ul');
				if ( submenus.length > 0 ) {
					var submenu = submenus[0];
					submenu.style.marginLeft = '-9999px';
				}
			},
			
			assignMenu :  function () {
				var offerMenuContainer = Arm('offerMenuContainer');
				Arm('offerMenuItem').aE('mouseover',this.showMenu,'mHndlr', {t:this, offerMenuContainer : offerMenuContainer });
				Arm('offerMenuItem').aE('mouseout',this.hideMenu,'mHndlr', {t:this, offerMenuContainer : offerMenuContainer});
				
				offerMenuContainer.aE('mouseover',this.showMenu,'mHndlr', {t:this, offerMenuContainer : offerMenuContainer});
				offerMenuContainer.aE('mouseout',this.hideMenu,'mHndlr', {t:this, offerMenuContainer : offerMenuContainer});
				
				// Dla wszystkich pozycji menu przypisuję pokazywanie podmenu
				var offerMenu = Arm('offerMenu');
				var menuItems = offerMenu.childNodes;
				for(var i=0;i<menuItems.length;i++) {		
										
					if ( menuItems[i].nodeType == 1 && menuItems[i].tagName == 'LI' ) {						
						Arm(menuItems[i]).aE('mouseover', this.showSubmenu,'shndl', {t:this, offerMenuContainer : offerMenuContainer} );
						Arm(menuItems[i]).aE('mouseout', this.hideSubmenu,'shndl', {t:this, offerMenuContainer : offerMenuContainer} );
						
						// To samo dla kolejnego poziomu menu
						var menuChildren = menuItems[i].getElementsByTagName('ul');
						
						if ( menuChildren.length > 0 ) {
							var subMenuItems = menuChildren[0].childNodes;
						
							for(var a=0;a<subMenuItems.length;a++) {
							
								if ( subMenuItems[a].nodeType == 1 && subMenuItems[a].tagName == 'LI' ) {
									
									Arm(subMenuItems[a]).aE('mouseover', this.showSubmenu,'shndl', {t:this, offerMenuContainer : offerMenuContainer} );
									Arm(subMenuItems[a]).aE('mouseout', this.hideSubmenu,'shndl', {t:this, offerMenuContainer : offerMenuContainer} );
								}
							
							}
						}
					}
				}
				
			},
			
			// Obsługuje przypisywanie produktów powiązanych
			selectRelatedProducts : function(e,o) {
				
				var selectedMembers = Arm('selectedProducts');
				var sCouncilMembers = Arm('available_products');
				var sCommissionMembers = Arm( 'selected_products');
				
				var councilMembers = sCouncilMembers.options;
				var commissionMembers = sCommissionMembers.options;
				
				var recordsToIterate = ( this.id == 'rButton' ? councilMembers : commissionMembers );
				
				var bFlag = true, toDel = new Array(),d=0,inp;
								
				for(var i=0;i<recordsToIterate.length;i++) {				
					
						var currentItem = recordsToIterate[i];
						bFlag=true;
						// Jeżeli opcja jest zaznaczona, to ją kopiuję do drugiego okienka
						if ( currentItem.selected ) {
							if (  this.id == 'rButton' ) {
								// Sprawdzenie czy jest na liście
								for( var a=0;a<commissionMembers.length;a++ ){
	
									if ( commissionMembers[a].value == councilMembers[i].value ) {									
										bFlag=false;
										break;									
									}
								}
								if ( bFlag ) {
									sCommissionMembers.add( new Option( councilMembers[i].text, councilMembers[i].value), null );
									inp = document.createElement('input');
									inp.name = 'selected_products[]';
									inp.type = 'hidden';
									inp.value = councilMembers[i].value; 									
									selectedMembers.appendChild(inp);
								}	
							} else {
								toDel[d] =  currentItem;											
								d++;
							}					
					} 
				
				}
				
		        // Jeżeli jest coś do usuniecia - to usuwam
		        for(var x=toDel.length-1;x>-1;x--) {                    
		            sCommissionMembers.removeChild(toDel[x]);
		            for(var b=0;b<selectedMembers.childNodes.length;b++) {
		            
		            	var curInp = selectedMembers.childNodes[b];
		            	if ( curInp.value == toDel[x].value) {
		            		selectedMembers.removeChild(curInp);
		            	}
		            }
		        }
			},
			
			
			assignSelectRelatedProducts : function () {
				Arm('rButton').aE('click',this.selectRelatedProducts,'cHndl',{ t:this } );
				Arm('lButton').aE('click',this.selectRelatedProducts,'cHndl',{ t:this } );
			},
			
			menuHover : function(e,o){
				
				var id=this.id;
				
				if ( e.type=='mouseover') {
					
					this.src = o.imgTab[id]['over'].src;
					
					
				} else {
					
					if ( e.type=='mouseout' ) {
						
						if ( this.parentNode.className=='act') {
							this.src = o.imgTab[id]['act'].src;
						} else{
							this.src = o.imgTab[id]['out'].src;
						}
						
					}
				
				}
			},
			
			assignMenuHover : function() {
				
				var menuHomePlHover = new Image();
					menuHomePlHover.src='images/menu_home_pl_hover.png';
				var menuHomePlOut = new Image();
					menuHomePlOut.src='images/menu_home_pl.png';
				var menuHomePlAct = new Image();
					menuHomePlAct.src='images/menu_home_pl_act.png';
			    var menuHomeEnHover = new Image();
				    menuHomeEnHover.src='images/menu_home_en_hover.png';
				var menuHomeEnOut = new Image();
					menuHomeEnOut.src='images/menu_home_en.png';
				var menuHomeEnAct = new Image();
					menuHomeEnAct.src='images/menu_home_en_act.png';
					
			    var menuOfertaPlHover = new Image();
					menuOfertaPlHover.src='images/menu_oferta_pl_hover.png';
				var menuOfertaPlOut = new Image();
					menuOfertaPlOut.src='images/menu_oferta_pl.png';
				var menuOfertaPlAct = new Image();
					menuOfertaPlAct.src='images/menu_oferta_pl_act.png';
			    var menuOfertaEnHover = new Image();
				    menuOfertaEnHover.src='images/menu_oferta_en_hover.png';
				var menuOfertaEnOut = new Image();
					menuOfertaEnOut.src='images/menu_oferta_en.png';
				var menuOfertaEnAct = new Image();
					menuOfertaEnAct.src='images/menu_oferta_en_act.png';
					
			    var menuAranzacjePlHover = new Image();
					menuAranzacjePlHover.src='images/menu_aranzacje_pl_hover.png';
				var menuAranzacjePlOut = new Image();
					menuAranzacjePlOut.src='images/menu_aranzacje_pl.png';
				var menuAranzacjePlAct = new Image();
					menuAranzacjePlAct.src='images/menu_aranzacje_pl_act.png';
			    var menuAranzacjeEnHover = new Image();
				    menuAranzacjeEnHover.src='images/menu_aranzacje_en_hover.png';
				var menuAranzacjeEnOut = new Image();
					menuAranzacjeEnOut.src='images/menu_aranzacje_en.png';
				var menuAranzacjeEnAct = new Image();
					menuAranzacjeEnAct.src='images/menu_aranzacje_en_act.png';

				var menuDownloadPlHover = new Image();
					menuDownloadPlHover.src='images/menu_download_pl_hover.png';
				var menuDownloadPlOut = new Image();
					menuDownloadPlOut.src='images/menu_download_pl.png';
				var menuDownloadPlAct = new Image();
					menuDownloadPlAct.src='images/menu_download_pl_act.png';
			    var menuDownloadEnHover = new Image();
				    menuDownloadEnHover.src='images/menu_download_en_hover.png';
				var menuDownloadEnOut = new Image();
					menuDownloadEnOut.src='images/menu_download_en.png';
				var menuDownloadEnAct = new Image();
					menuDownloadEnAct.src='images/menu_download_en_act.png';
					
				var menuArchitekciPlHover = new Image();
					menuArchitekciPlHover.src='images/menu_architekci_pl_hover.png';
				var menuArchitekciPlOut = new Image();
					menuArchitekciPlOut.src='images/menu_architekci_pl.png';
				var menuArchitekciPlAct = new Image();
					menuArchitekciPlAct.src='images/menu_architekci_pl_act.png';
			    var menuArchitekciEnHover = new Image();
				    menuArchitekciEnHover.src='images/menu_architekci_en_hover.png';
				var menuArchitekciEnOut = new Image();
					menuArchitekciEnOut.src='images/menu_architekci_en.png';
				var menuArchitekciEnAct = new Image();
					menuArchitekciEnAct.src='images/menu_architekci_en_act.png';

				var menuFirmaPlHover = new Image();
					menuFirmaPlHover.src='images/menu_firma_pl_hover.png';
				var menuFirmaPlOut = new Image();
					menuFirmaPlOut.src='images/menu_firma_pl.png';
				var menuFirmaPlAct = new Image();
					menuFirmaPlAct.src='images/menu_firma_pl_act.png';			
			    var menuFirmaEnHover = new Image();
				    menuFirmaEnHover.src='images/menu_firma_en_hover.png';
				var menuFirmaEnOut = new Image();
					menuFirmaEnOut.src='images/menu_firma_en.png';
				var menuFirmaEnAct = new Image();
					menuFirmaEnAct.src='images/menu_firma_en_act.png';
					
				var menuKontaktPlHover = new Image();
					menuKontaktPlHover.src='images/menu_kontakt_pl_hover.png';
				var menuKontaktPlOut = new Image();
					menuKontaktPlOut.src='images/menu_kontakt_pl.png';
				var menuKontaktPlAct = new Image();
					menuKontaktPlAct.src='images/menu_kontakt_pl_act.png';
			    var menuKontaktEnHover = new Image();
				    menuKontaktEnHover.src='images/menu_kontakt_en_hover.png';
				var menuKontaktEnOut = new Image();
					menuKontaktEnOut.src='images/menu_kontakt_en.png';
				var menuKontaktEnAct = new Image();
					menuKontaktEnAct.src='images/menu_kontakt_en_act.png';
					
				var imgTab = { 'menuHomePl' : { 'over' : menuHomePlHover, 'out' : menuHomePlOut, 'act' : menuHomePlAct },
							   'menuHomeEn' : { 'over' : menuHomeEnHover, 'out' : menuHomeEnOut, 'act' :  menuHomeEnAct },
							   
					       	   'menuOfertaPl' : { 'over' : menuOfertaPlHover, 'out' : menuOfertaPlOut, 'act' : menuOfertaPlAct},
					       	   'menuOfertaEn' : { 'over' : menuOfertaEnHover, 'out' : menuOfertaEnOut, 'act' : menuOfertaEnAct },
					       	   
					           'menuAranzacjePl' : { 'over' : menuAranzacjePlHover, 'out' : menuAranzacjePlOut, 'act' : menuAranzacjePlAct },
					           'menuAranzacjeEn' : { 'over' : menuAranzacjeEnHover, 'out' : menuAranzacjeEnOut, 'act' : menuAranzacjeEnAct  },
					           
					           'menuDownloadPl' : { 'over' : menuDownloadPlHover, 'out' : menuDownloadPlOut, 'act' : menuDownloadPlAct },
					           'menuDownloadEn' : { 'over' : menuDownloadEnHover, 'out' : menuDownloadEnOut, 'act': menuDownloadEnAct },
					           
					           'menuArchitekciPl' : { 'over' : menuArchitekciPlHover, 'out' : menuArchitekciPlOut, 'act' :  menuArchitekciPlAct },
					           'menuArchitekciEn' : { 'over' : menuArchitekciEnHover, 'out' : menuArchitekciEnOut, 'act' : menuArchitekciEnAct },
					           
					           'menuFirmaPl' : { 'over' : menuFirmaPlHover, 'out' : menuFirmaPlOut, 'act' : menuFirmaPlAct },
					           'menuFirmaEn' : { 'over' : menuFirmaEnHover, 'out' : menuFirmaEnOut, 'act' : menuFirmaEnAct },
					           
					           'menuKontaktPl' : { 'over' : menuKontaktPlHover, 'out' : menuKontaktPlOut, 'act' : menuKontaktPlAct },
					           'menuKontaktEn' : { 'over' : menuKontaktEnHover, 'out' : menuKontaktEnOut, 'act' : menuKontaktEnAct }
				}
				
				var langCode = Arm('jsLangCode').value;
				
				if (langCode == 'en' ) {
				
					Arm('menuHomeEn').aE( 'mouseover', this.menuHover, 'oph', {t:this, imgTab:imgTab } );
					Arm('menuHomeEn').aE( 'mouseout', this.menuHover, 'oph', {t:this, imgTab:imgTab } );
					
					Arm('menuOfertaEn').aE( 'mouseover', this.menuHover, 'oph', {t:this, imgTab:imgTab } );
					Arm('menuOfertaEn').aE( 'mouseout', this.menuHover, 'oph', {t:this, imgTab:imgTab } );
				
					Arm('menuAranzacjeEn').aE( 'mouseover', this.menuHover, 'oph', {t:this, imgTab:imgTab } );
					Arm('menuAranzacjeEn').aE( 'mouseout', this.menuHover, 'oph', {t:this, imgTab:imgTab } );
				
					Arm('menuDownloadEn').aE( 'mouseover', this.menuHover, 'oph', {t:this, imgTab:imgTab } );
					Arm('menuDownloadEn').aE( 'mouseout', this.menuHover, 'oph', {t:this, imgTab:imgTab } );
				
					Arm('menuArchitekciEn').aE( 'mouseover', this.menuHover, 'oph', {t:this, imgTab:imgTab } );
					Arm('menuArchitekciEn').aE( 'mouseout', this.menuHover, 'oph', {t:this, imgTab:imgTab } );
				
					Arm('menuFirmaEn').aE( 'mouseover', this.menuHover, 'oph', {t:this, imgTab:imgTab } );
					Arm('menuFirmaEn').aE( 'mouseout', this.menuHover, 'oph', {t:this, imgTab:imgTab } );
					
					Arm('menuKontaktEn').aE( 'mouseover', this.menuHover, 'oph', {t:this, imgTab:imgTab } );
					Arm('menuKontaktEn').aE( 'mouseout', this.menuHover, 'oph', {t:this, imgTab:imgTab } );
					
				} else{
				
					Arm('menuHomePl').aE( 'mouseover', this.menuHover, 'oph', {t:this, imgTab:imgTab } );
					Arm('menuHomePl').aE( 'mouseout', this.menuHover, 'oph', {t:this, imgTab:imgTab } );				
					
					Arm('menuOfertaPl').aE( 'mouseover', this.menuHover, 'oph', {t:this, imgTab:imgTab } );
					Arm('menuOfertaPl').aE( 'mouseout', this.menuHover, 'oph', {t:this, imgTab:imgTab } );				
					
					Arm('menuAranzacjePl').aE( 'mouseover', this.menuHover, 'oph', {t:this, imgTab:imgTab } );
					Arm('menuAranzacjePl').aE( 'mouseout', this.menuHover, 'oph', {t:this, imgTab:imgTab } );				
					
					Arm('menuDownloadPl').aE( 'mouseover', this.menuHover, 'oph', {t:this, imgTab:imgTab } );
					Arm('menuDownloadPl').aE( 'mouseout', this.menuHover, 'oph', {t:this, imgTab:imgTab } );				
				
					Arm('menuArchitekciPl').aE( 'mouseover', this.menuHover, 'oph', {t:this, imgTab:imgTab } );
					Arm('menuArchitekciPl').aE( 'mouseout', this.menuHover, 'oph', {t:this, imgTab:imgTab } );				
				
					Arm('menuFirmaPl').aE( 'mouseover', this.menuHover, 'oph', {t:this, imgTab:imgTab } );
					Arm('menuFirmaPl').aE( 'mouseout', this.menuHover, 'oph', {t:this, imgTab:imgTab } );						
					
					Arm('menuKontaktPl').aE( 'mouseover', this.menuHover, 'oph', {t:this, imgTab:imgTab } );
					Arm('menuKontaktPl').aE( 'mouseout', this.menuHover, 'oph', {t:this, imgTab:imgTab } );				
				}
					
			},
			
			// Dodaje kolejne pole modułu
			addModuleField : function(e,o) {
				
				var mbTab = Arm('moduleBuilder').getElementsByTagName('tbody')[0];
				// 1. Klonuję sobie wiersz tabeli, w której kliknąłem przycisk dodaj
				var newRow = this.parentNode.parentNode.cloneNode(true);
				
				// 2. Ustawiam pola we wierszu na wartości domyślne
				
				// Nazwa PL
				newRow.cells[0].getElementsByTagName('input')[0].value='';
				newRow.cells[0].getElementsByTagName('input')[0].style.backgroundColor='#fff';
				newRow.cells[0].getElementsByTagName('input')[0].nextSibling.style.display='none';
				newRow.cells[0].getElementsByTagName('input')[0].nextSibling.nextSibling.style.display='none';
				
				// Nazwa EN
				newRow.cells[1].getElementsByTagName('input')[0].value='';
				newRow.cells[1].getElementsByTagName('input')[0].style.backgroundColor='#fff';
				newRow.cells[1].getElementsByTagName('input')[0].nextSibling.style.display='none';
				newRow.cells[1].getElementsByTagName('input')[0].nextSibling.nextSibling.style.display='none';
							
				// ID
				newRow.cells[1].getElementsByTagName('input')[1].value='';
				
				Arm(newRow.cells[2].firstChild).aE('click',o.t.moveModuleFieldUp,'hndlMMU',{t:o.t});
				Arm(newRow.cells[3].firstChild).aE('click',o.t.moveModuleFieldDown,'hndlMMD',{t:o.t});				
				Arm(newRow.cells[4].firstChild).aE('click',o.t.removeModuleField,'hndlRMF',{t:o.t});
				Arm(newRow.cells[5].firstChild).aE('click',o.t.addModuleField,'hndlAMF',{t:o.t});
				
				
				// 3. Dodaję wiersz do tabeli
				mbTab.appendChild(newRow);								
				
			},
			
			// Usuwa pole modułu
			removeModuleField : function(e,o) {
				
				// Jeżeli zostało ostatnie pole, to go nie pozwalamy usunąć
				var rQuantity = this.parentNode.parentNode.parentNode.rows.length;
				var rIndex = this.parentNode.parentNode.rowIndex 
				if ( rQuantity == 1 && (rQuantity-1 == rIndex) ) {
					alert( 'Tej pozycji nie można usunąć' );
					return;
				}
				this.parentNode.parentNode.parentNode.removeChild(this.parentNode.parentNode);
			},
			
			// Przenosi moduł do góry
			moveModuleFieldUp : function() {
				
				var mbTab = Arm('moduleBuilder');
				// Usuwam wiersz
				var rowIndex = this.parentNode.parentNode.rowIndex;			
							
				var myRow = this.parentNode.parentNode;
				if ( rowIndex==0 ){
					alert( 'Wyżej się nie da :)' );
					return;
				}
				myRow.parentNode.removeChild(myRow);				
								
				// Wstawiam o jedno pole wyżej
				var newIndex = rowIndex-1;
				var refRow = mbTab.rows[newIndex];
				refRow.parentNode.insertBefore(myRow,refRow);							
				
			},
			
			// Przenosi moduł w dół
			moveModuleFieldDown : function() {
				var mbTab = Arm('moduleBuilder');
				// Usuwam wiersz
				var rowIndex = this.parentNode.parentNode.rowIndex;
				var myRow = this.parentNode.parentNode;
								
				if (rowIndex==mbTab.rows.length-1) {
					alert( 'Niżej się nie da :)' );
					return;
				}
				myRow.parentNode.removeChild(myRow);
					
				// Wstawiam o jedno pole niżej
				var refRow = mbTab.rows[rowIndex+1];				
				mbTab.insertBefore(myRow,refRow);
			},

			
			
			// Przypisuje wszystkie funkcje do buildera modułów
			assignModuleBuilder : function() {
				
				var mbTab = Arm('moduleBuilder');
				// Pobieram wszytkie przyciski dodawania pola
				var rows = mbTab.rows;
				var row;
				// Kolumny:
				// 3 - przycisk UP 
				// 4 - przycisk DOWN
				// 5 - przycisk -
				// 6 - Przycisk +
				for( var i=0;i<rows.length;i++ ) {
					
					row = rows[i];
					Arm(row.cells[2].firstChild).aE('click',this.moveModuleFieldUp,'hndlMMU',{t:this});
					Arm(row.cells[3].firstChild).aE('click',this.moveModuleFieldDown,'hndlMMD',{t:this});
					Arm(row.cells[4].firstChild).aE('click',this.removeModuleField,'hndlRMF',{t:this});
					Arm(row.cells[5].firstChild).aE('click',this.addModuleField,'hndlAMF',{t:this});
										
				}
				

			},
			
			// Sprawdza poprawność zbudowanego modułu
			validateModuleBuilder : function(e,o) {				
				
				var frm = Arm( 'siteModuleForm' );
				
				// Sprawdzenia odule buildera dokonujemy tylko jeżeli wybrany typ modułu to "moduł":3
				var moduleTypeSelect = Arm('moduleType'); 
								
				// 1. Sprawdzam czy Wszystkie pola mają nazwy uzupełnione
				var rows = Arm('moduleBuilder').rows;
				var inp,row;
				var errors = [];
				var blnErr;
				
				// Sprawdzenie tylko jeżeli nie jest tak, ze jest jeden wiersz z pustymi polami				
				if ( !(rows.length==1 && rows[0].cells[0].getElementsByTagName('input')[0].value.length == 0 && rows[0].cells[1].getElementsByTagName('input')[0].value.length == 0 )) {
									
				for(var i=0;i<rows.length;i++) {
					row=rows[i];
					inp = row.cells[0].getElementsByTagName('input')[0];
					inp1 = row.cells[1].getElementsByTagName('input')[0];
					
					if ( inp.value.length==0 ) {
						blnErr = true;
						inp.style.backgroundColor ='#ffffe1';
						inp.nextSibling.style.display='block';						
						blnErr = true;
					} else {						
						inp.style.backgroundColor ='#fff';
						inp.nextSibling.style.display='none';						
					}
										
					if ( inp1.value.length==0 ) {
						blnErr = true;
						inp1.style.backgroundColor ='#ffffe1';
						inp1.nextSibling.style.display='block';						
						blnErr = true;
					} else {												
						inp1.style.backgroundColor ='#fff';
						inp1.nextSibling.style.display='none';						
					}
					
				}
												
				} else { // Jeżeli jest jeden wiersz z pustymi polami...
					// ... To w jego nazwie usuwam id
					rows[0].cells[1].getElementsByTagName('input')[1].value = '';
				}
				
				
				if( !blnErr ) {							
					// Teraz wszystkie wiersze muszę przejechać i zmienić im nazwy pól,jest to konieczne, jeżeli nastąpiło przemieszcze pól strzałkami
					var mbTab = Arm('moduleBuilder').getElementsByTagName('tbody')[0];
					var cRow, fName;
					for(var i=0;i<mbTab.rows.length;i++) {
											
						cRow = mbTab.rows[i];
						fName = 'a'+i;
						cRow.cells[0].getElementsByTagName('input')[0].name='field['+fName+'][name_pl]';
						cRow.cells[1].getElementsByTagName('input')[0].name='field['+fName+'][name_en]';
						cRow.cells[1].getElementsByTagName('input')[1].name='field['+fName+'][id]';
						cRow.cells[1].getElementsByTagName('input')[2].name='field['+fName+'][position]';
						// Przepozycjonowanie					
						cRow.cells[1].getElementsByTagName('input')[2].value = i;
						
					}
					frm.submit();
				} else {
					alert('Wystąpiły błędy');
				}
				

			},
			
			// Zmienia nazwę ukrytego inputa, który informuje o tym, którym przyciskiem został zasubmitowany formularz
			setSubmitBy : function(e,o) {
				
				Arm('submitBy').name = o.s;
			},

			
			// Przypisuje funkcję sprawdzającą poprawność zbudowanego modułu
			assignValidateModuleBuilder : function() {
								
				Arm('siteModuleForm').aE('submit',this.validateModuleBuilder,'hndlVMB',{t:this});
				Arm('siteModuleForm').aE('submit', function(e){if (e.preventDefault)e.preventDefault();} ); //Moz,Opera				
		    	Arm('siteModuleForm').aE('submit',function(e){e.returnValue = false;return false;} ); // IE
				
				Arm('saveAndReturn').aE('click',this.setSubmitBy,'hndlSSR', { s : 'saveAndReturn' } );
				Arm('saveAndEdit').aE('click',this.setSubmitBy,'hndlSSE', { s : 'saveAndEdit' } );
				Arm('saveAndNext').aE('click',this.setSubmitBy,'hndlSSN', { s : 'saveAndNext' } );
				
				
			}

			
	}
		
	this.Linea = new Linea;
	this.Linea.prototype = Linea.prototype;
	
}(window))
