// JavaScript Document ąę
var rootPath = '/';
var mainUrl = getMainUrl();
var languageCode = 'pl';
var currentUrl = getCurrentUrl(mainUrl);
var dictionary = null;

var useFlash = true;
var useSifr = false;
var useCufon = true;
var reloadPageContentWithAjaxWhenClickedOnNav = false;

var scriptsToAppend = '<link href="' + rootPath + 'default/styles/jsOnBoard.css" rel="stylesheet" type="text/css" media="screen"/>';
//document.write(scriptsToAppend);

if(useFlash){
	//do wykrywania wersji flash
	var requiredMajorVersion = 8;
	var requiredMinorVersion = 0;
	var requiredRevision = 24;
	var hasRightVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);	
}

 
$(document).ready(function(){		
	languageCode = getLanguageCode();
	dictionary = getDictionary(languageCode);
	
	setSelected();
	
	initNav('sideNav');
	initNav('productsCategoriesNav');	
	
	sfHover();	
	
	//topNav
	$('#topNav li:last-child').addClass('lastChild');
	$('#topNav li:first-child').addClass('firstChild');	
	$('#topNav ul').parent().children('a').addClass('parentHasChildren').parent().addClass('hasChildren');

	//add hidden at begining prevents little move when swap to flash is made
	if(useFlash && hasRightVersion){
		$('#topNav > li > a').each(function(){
			$(this).addClass('hidden');
		});
	}
	//wrapper $('#topNav ul').wrap('<div />');	
	
	$('#breadCrumbTrail li:last-child').addClass('lastChild');
	$('#breadCrumbTrail li:first-child').addClass('firstChild');		
	$('#bottomNav li:last-child').addClass('lastChild');
	$('div.box:last').addClass('lastBox');		
	
	
	/*appReferencesBox*/
	$('#appReferencesBox .slideShow').cycle({
		fx:      'scrollHorz',
		timeout:  5000,
		pager:   '#appReferencesBox .nav',
		pagerAnchorBuilder: pagerFactory
	});
	
	function pagerFactory(idx, slide) {		
		return '<li><a href="#"></a></li>';
	};
	
	/*newsletterBox*/
	if($('#newsletterBox').length){
		$('#newsletterBox a.checkbox').click(function(){
			if($(this).hasClass('checked')){
				$(this).removeClass('checked');
			} else {
				$(this).addClass('checked');
			}
			return false;
		});
	}
});

//popup
var popup = {
	container:'content',
	
	setContainer: function(container){
		if(container){
			this.container = container;	
		}	
	},
	
	show: function(message, type, isAppend){
		var popup = $('#popup ul');
		var className = type;

		if(!popup.length){
			$('#' + this.container).prepend('<div id="popup"><ul></ul><div>');
			popup = $('#popup ul');
		} 

		var html = '<li class="' + className + '">' + message + '</li>';
		if(isAppend){
			popup.append(html);	
		} else {
			popup.html(html)
			popup.removeClass();
			popup.addClass(className);
		}		
	}
}

//init main parameters
function getMainUrl(){
	$regexp = new RegExp('http://.*?/');
	var mainUrl = $regexp.exec(document.location.href);		
	return new String(mainUrl);
}

function getCurrentUrl(mainUrl){	
	return '/' + document.location.href.substring(mainUrl.length);
}

function getLanguageCode(){	
	if(!$('#containerWrapper').length){
		return languageCode;
	}
	var str = $('#containerWrapper').attr('class');
	var classes = str.split(' ');	
	return classes[0];	
}

//dictionary
function getDictionary(ln){
	var dictionary = new Object();
	
	if(ln == 'pl'){
		dictionary.wrong_email_address = 'Sprawdź poprawność adresu email!';
		dictionary.image = 'Obraz';
		dictionary.of = 'z';		
		
		dictionary.you_must_accept_rules = 'Musisz zaakceptować regulamin.';
	} else {
		dictionary.wrong_email_address = 'Check your email address!';
		dictionary.image = 'Image';
		dictionary.of = 'of';
		
		dictionary.you_must_accept_rules = 'You must accept the rules.';		
	}
	
	return dictionary;
}

//select for all navs and links with sites urls
function setSelected(){
	if(typeof(breadCrumbTrail)!="undefined"){
		for(var i = breadCrumbTrail.length - 1; i >= 0; i--){			
			//nie dodawaj dla ostatniej, bo ostatnia to glowna wiec podswietli na calej stronie
			if(breadCrumbTrail.length > 1 && i == 0){
				break; 
			}

			$("a[href='" + breadCrumbTrail[i] + "']").addClass('selected');	
		}
	}
}

function initNav(id) {	
	id = '#' + id;
	if(!$(id).length){
		return false;
	}
	
	//dodaj do li klase ktora pozwoli dodac np. strzalke jesli element jest rozwijany
	$(id + ' ul').parent().children('a').addClass('parentHasChildren').parent().addClass('hasChildren');
		
	$(id + ' ul').hide();	
	
	//zaznaczanie wedle adresu
	var cnt = mainUrl.length;
	var currentUrl = '/' + document.location.href.substring(cnt);	

	if(currentUrl != '/'){
		$("a[href='"+currentUrl+"']").addClass('selected');
	} 

	$(id + ' a.selected').parents("ul").show();
	
	//dodaje selected tez dla rodzicow
	$(id + ' a.selected').parents("li").each(function(i){
		$(this).addClass('selected').children('a').addClass('selected');
		if(i != 0){
			$(this).addClass('expanded');	
		}
	});
	
	$(id + ' li:last').addClass('veryLastChild');
	$(id + ' li:first').addClass('veryFirstChild');
	
	$(id + ' li:last-child').addClass('lastChild');	
	$(id + ' li:first-child').addClass('firstChild');		

	$(id + ' li a').click(
		function() {	
			$(id + ' a.selected').removeClass('selected');
			var li = $(this).parents("li");
			li.addClass('selected').addClass('expanded');
			li.children('a').addClass('selected');
			
			var checkElement = $(this).next();
			//var parent = this.parentNode.parentNode.id;			
			var parent = $(this).parent().parent();
			
			if((checkElement.is('ul')) && (!checkElement.is(':visible'))) {		
				if(reloadPageContentWithAjaxWhenClickedOnNav){
					loadPageUsingAjax($(this).attr('href'));
				}
				if(parent){
					//$('#' + parent + ' ul:visible').slideUp('normal');
					parent.find('ul:visible').slideUp('normal');
				}
				checkElement.slideDown('normal');
				return false;
			}
		}
	);	
}

function loadPageUsingAjax(href){
	if(href){
		$.get(href, {ajax:1}, function(data){
			if(data){				
				$('#mainColumn .page').replaceWith(data);	
			}
		});
	}
}


//przykladowe przewijanie na jquery bez dodatkowych parametrow
function showShortOffer(dir){
	var cnt = $('#offerBox ul').size();
	for(var i=1; i<=cnt; i++){
		if($('#offerBox ul.current').hasClass('o'+i)){		
			var next = $('#offerBox ul.o'+(i+dir));
			if(next.length){
				$('#offerBox ul.current').removeClass('current');
				next.addClass('current');		
				break;
			}			 
		}
	}
}
function showPrevShortOffer(){
	showShortOffer(-1);		
}
function showNextShortOffer(){
	showShortOffer(1);		
}

//images vertical align
function verticalAlign(elem){
	var top = Math.floor(($(elem).parent().height() - elem.height)/2);
	elem.style.top = top+'px';
}

//wyslij do flash elementy menu
function sendToFlashTopNav(){	
	var rows = new Array();
	//dla ie, bo ie nie widzi klasy selected

	var selectedUrl = '';
	if(typeof(breadCrumbTrail) !== 'undefined' && breadCrumbTrail.length){
		if(breadCrumbTrail.length > 1){
			selectedUrl = breadCrumbTrail[1];
		} else {
			selectedUrl = breadCrumbTrail[0];
		}
		
		if(selectedUrl.search('http') == -1){
			selectedUrl = '/' + selectedUrl + '.html';			
		}	
	}
		
	$('#topNav > *').each(function(i){											 
		var row = new Object();
		var a = $(this).children('a');
		row.url = a.attr('href');
		row.name = a.text();
		row.id = $(this).attr('id').substr(2);
		
		if(a.hasClass('selected') || row.url == selectedUrl){
			row.selected = true;
		} else {
			row.selected = false;
		}
		
		if($(this).children('ul').length){
			row.hasChildren = true;	
		} else {
			row.hasChildren = false;	
		}
		rows[i] = row;
	});

	return rows;
}

//dopasuj elementy menu w html do tych we flash, zeby dropdown sie dobrze wyswietlalo
function adjustWidth(nbr, width){
	var a = $('#tn'+nbr+' :first');	
	a.addClass('hidden');
	a.css('width', width + 'px');
}

/*Top Nav*/
//zapisuje elementy ktore maja sie schowac po okreslonym czasie
sfHoverStack = new Array();
sfHover = function() {
	
	$('#topNav li').hover(function () {	
		var parents = $(this).parents('li');
		parents.push($(this));				
		
		//sprawdzamy czy elementow nie ma na liscie do zamkniecia, jesli sa to je usuwamy
		//ze wzgledu na opoznione howanie
		for(var i=0; i<sfHoverStack.length; i++){
			parents.each(function(){	
				if(sfHoverStack[i] == $(this).attr('id')){
					sfHoverStack[i] = null;
				}
			});
		}
		$(this).addClass("sfhover");	  
		
		var id = $(this).attr('id');		
		var nbr = id.substr(2);
		if(useFlash){
			document.flashTopNav.SetVariable('btnOnWichIsMouseOver', nbr);
		}

	}, function () {
		var id = $(this).attr('id');
		sfHoverStack.push(id);		
		
		//opoznienie, zeby zdarzyc 
		setTimeout(function(){								  						  
			for(var i=0; i<sfHoverStack.length; i++){
				if(sfHoverStack[i] == id){					
					$('#' + id).removeClass("sfhover");
					sfHoverStack.splice(i, 1);	
					break;
				}
			}
	   }, 50);		
		

		var nbr = id.substr(2);
		if(useFlash){
			document.flashTopNav.SetVariable('btnOnWichIsMouseOut', nbr);
		}
	});
	
	$('#topNav > *').click(function(){
		window.location.href = $(this).children('a').attr('href');											  
	});

}

/*add to bookmark*/
function addToBookmarks() {
	title = $('title').text(); 
	url = location.href;
		
	if (window.sidebar) { // Mozilla Firefox Bookmark
		window.sidebar.addPanel(title, url,"");
	} else if( window.external ) { // IE Favorite
		window.external.AddFavorite( url, title); }
	else if(window.opera && window.print) { // Opera Hotlist

	}
}

/*polec znajomemu*/
function showMailtoForm(){
	$('#mailtoForm').show();
}

function mailto(form){
	if(isEMailAddr(form.e)){		
		$.get("/mailto/index", {e:form.e.value, url:document.location.href}, function(data){
			form.e.value = 'email do znajomego';
			$('#mailtoForm').hide();
			if(data == 'ok'){					
				alert("Wysłane. Dziękujemy.");
			} else {
				alert(data);
			}
		});
	}
	return false;
}

//swap image to flash
function swapProductImageToFlash(elem){
	var a = $(elem).parent();
	a.html('<embed type="application/x-shockwave-flash" scale="noscale" bgcolor="none" wmode="transparent" flashvars="src='+ elem.src + '&url=' + a.attr('href') + '&width=' + elem.width + '&height=' + elem.height +'" quality="best" src="/flash/image.swf" width="130" height="'+elem.height+'">');
}

//isEmailAddress
function isEMailAddr(elem) {
	var str = elem.value;
	var re = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
	if (!str.match(re)) {
		alert(dictionary.wrong_email_address);
		return false;
	} else {
		return true;
	}
}

//miscelenous
function misc(){
	if(!($.browser.msie == true && jQuery.browser.version == 6.0)){
	}
}

//sameHeightForBoxes
function sameHeightForBoxes(container){	
	$(document).ready(function(){
		var minHeight = 0;
		$(container + ' .box .content').each(function(){
			if(minHeight < $(this).height()){
				minHeight = $(this).height();
			}
		});
	
		if(minHeight > 0){
			$(container + ' .box .content').css('height', minHeight + 'px');
		}
	});
}

//myAccountShortBox - obsluga inputa password
var myAccountShortBoxFocus = function(){			
	$(this).remove();
	$('#myAccountShortBox .passwordContainer').prepend(' <input id="myAccountShortPasswordInput" class="input" name="password" type="password" />');
	
	$('#myAccountShortPasswordInput').blur(myAccountShortBoxBlur);
	//set kursor to this new field
	$('#myAccountShortPasswordInput').focus();		
};


var appHomeBannersBox = {
	
	sendToFlash: function(){
		var rows = new Array();
		$('#appHomeBannersBox .banner').each(function(i){	
			var row = new Object();
		
			row.external_url = null;
			if($(this).attr('href') != '#'){
				row.external_url = $(this).attr('href');
			}
		
			row.duration = $(this).attr('rel');
	
			var img = $(this).children('img');
			row.small = img.attr('src');
			row.name = img.attr('alt');
			
			rows[i] = row;
		});
	
		return rows;		
	}
	
};

var myAccountShortBoxBlur = function(){
	if($(this).val() == ''){
		$(this).remove();
		$('#myAccountShortBox .passwordContainer').prepend(' <input id="myAccountShortPasswordInput" class="input" name="password" type="text" value="Hasło" />');
		
		$('#myAccountShortPasswordInput').click(myAccountShortBoxFocus);	
		$('#myAccountShortPasswordInput').focus(myAccountShortBoxFocus);	
	}	
}

$(document).ready(function(){
	if($('#myAccountShortBox').length){
		$('#myAccountShortPasswordInput').click(myAccountShortBoxFocus);
		$('#myAccountShortPasswordInput').focus(myAccountShortBoxFocus);
	}
});

function isValidNewsletterForm(){
	var re = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
	var str = $('#newsletterForm input.email').val();	
	
	if (!str.match(re)) {
		alert(dictionary.wrong_email_address);
		return false;
	} 
	
	if(!$('#newsletterForm a.checkbox').hasClass('checked')){
		alert(dictionary.you_must_accept_rules);
		return false
	} 

	return true;
}


var appProductsDetails = {
	showSendContactDataForm: function(){
		$('#sendContactDataForm').show('slow');
		return false;
	},
	
	sendNotice: function(){
		$.get('/app_products/send-notice', null, function(data){
												  
		});
		return false;
	}
};


//showGoogleMap
function showGoogleMap(){
	var googleMapAddress = 'http://maps.google.pl/maps/ms?msa=0&amp;msid=202865882018032139436.0004a996192e38085afd5&amp;hl='+languageCode+'&amp;ie=UTF8&amp;ll=51.358062,16.66626&amp;spn=1.715143,3.515625&amp;z=8&amp;iwloc=0004a996213d2ccc160c0&amp;output=embed';

	var containerWrapper = $('#containerWrapper');
	containerWrapper.append('<div id="googleMapBg"><div>');		
	$('body').append('<iframe id="googleMap" width="640" height="500" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="' + googleMapAddress + '"></iframe>');			

	//http://maps.google.pl/maps/ms?msa=0&amp;msid=202865882018032139436.0004a996192e38085afd5&amp;hl='+languageCode+'&amp;ie=UTF8&amp;ll=51.358062,16.66626&amp;spn=1.715143,3.515625&amp;z=8&amp;iwloc=0004a996213d2ccc160c0&amp;output=embed
	var googleMapBg = $('#googleMapBg');
	var googleMap = $('#googleMap');
	
	googleMapBg.css({
		opacity:	0.7,
		height: containerWrapper.height()
	});	
	
	var top = $(document).scrollTop() + Math.round($(window).height()/2) - 250;
	googleMap.css('top', top + 'px');
	
	googleMapBg.click(function(){
		googleMap.remove();
		googleMapBg.remove();
	});
}

var appGmapBox = {
	
	map: null,
	locations: null,
	defaultLat: 50.822765,
	defaultLng: 16.27942,
	state_id: null,

	/*defaultLat: 53.41935400090768,
	defaultLng: 14.58160400390625,*/
	
	showGoogleMap: function(state_id){

		this.state_id = state_id;
		//pobierz ajaxem
		/*$.getScript('http://maps.google.com/maps/api/js?sensor=false', function(data, status){
		});*/  
		
		var self = this;		
		if(this.locations){
			this.showMap();			
		} else {
			$.getJSON('/app_gmap/get-locations', function(data){
				if(data){
					self.locations	= data;
					self.showMap();
				}
			});			
		}

	},	
	
	showMap: function(){
		var self = this;
		
		this.buildContainer();

		var lat = this.defaultLat;
		var lng = this.defaultLng;
		$.each(this.locations, function(index, location){
			if(location.state_id == self.state_id){
				lat = location.lat;
				lng = location.lng;
				if(location.is_shown){
					return false;	
				}
			}
		});
			
		var coordinates = new google.maps.LatLng(lat, lng);
		var mapOptions = {
		  zoom: 8,
		  mapTypeId: google.maps.MapTypeId.ROADMAP
		};

		this.map = new google.maps.Map(document.getElementById("googleMap"), mapOptions);																														
		
		var lat = null;
		var lng = null;
		$.each(this.locations, function(index, location){
			var marker = self.addMarker(location.lat, location.lng, location.name, location.content);
			//alert(location.lat + ' ' + location.lng + ' ' + location.content);
			if(location.is_shown){
				marker.bobble.setContent(location.content);
				marker.bobble.open(self.map, marker);				
			}
		});
		
		this.map.setCenter(coordinates);
	},
	
	addMarker: function(lat, lng, title, txt){
		var self = this;
		// tworzymy marker
		var markerOptions = {  
			position: new google.maps.LatLng(lat, lng),  
			title: title,
			map: this.map
		}  
		var marker = new google.maps.Marker(markerOptions);
		marker.txt = txt;
		var infoWindowOptions = {
			disableAutoPan: true
		};
		marker.bobble = new google.maps.InfoWindow(infoWindowOptions),
		
		google.maps.event.addListener(marker, 'click', function(){																				  
			self.map.setCenter(marker.getPosition());																				  
			var infoWindowOptions = {
				disableAutoPan: false
			};
			marker.bobble.setOptions(infoWindowOptions);
			marker.bobble.setContent(marker.txt);
			marker.bobble.open(self.map, marker);			
		});
		
		return marker;
	},	
	
	buildContainer: function(){
		var containerWrapper = $('#containerWrapper');
		containerWrapper.append('<div id="googleMapBg"><div>');		
		$('body').append('<div id="googleMap" style="width:640px; height:500px"></div>');			
	
		var googleMapBg = $('#googleMapBg');
		var googleMap = $('#googleMap');
		
		googleMapBg.css({
			opacity:	0.7,
			height: containerWrapper.height()
		});	
		
		var top = $(document).scrollTop() + Math.round($(window).height()/2) - 250;
		googleMap.css('top', top + 'px');
		
		googleMapBg.click(function(){
			googleMap.remove();
			googleMapBg.remove();
		});	
	}
	
}

//sifr config
if(useSifr){


}


if(useCufon){
	Cufon.replace('#header p.integrator b', {
					  fontFamily: 'din', 
					  letterSpacing: '-0.2px', 
					  textShadow: '#ffffff 1px 1px',
					  fontWeight: 'regular'
	});	
	
	Cufon.replace('#header a.help', {
					  fontFamily: 'din', 
					  letterSpacing: '-0.2px', 
					  textShadow: '#ffffff 1px 1px'
	});		
	
	Cufon.replace('.box .header h3, .mainHeader h2, #appBigNewsBox .content h3', {
					  fontFamily: 'din', 
					  letterSpacing: '-0.2px', 
					  textShadow: '#ffffff 1px 1px',
					  color: '-linear-gradient(#616161, #171718)'
	});		
	
	Cufon.replace('#appBigNewsBox .news h4 a', {
					  fontFamily: 'dinr', 
					  letterSpacing: '-0.4px', 
					  textShadow: '#ffffff 1px 1px',
					  hover: {
						  color: '#ed1c24'
					  }
	});
	
	Cufon.replace('#appBigNewsBox .newsArchive h4 a, .commonShortCuts h4 a, .commonShortCuts h4 em', {
					  fontFamily: 'dinr', 
					  letterSpacing: '-0.2px', 
					  textShadow: '#ffffff 1px 1px',
					  hover: {
						  color: '#ed1c24'
					  }
	});
	
	Cufon.replace('#footer p.copyrights', {
					  fontFamily: 'din', 
					  letterSpacing: '-0.2px'
	});	
	Cufon.replace('#footer ul li a', {
					  fontFamily: 'din', 
					  letterSpacing: '-0.2px'
	});	
	
	Cufon.replace('#appContactFormBox label', {
					  fontFamily: 'dinr', 
					  letterSpacing: '-0.2px'
	});	
}
