document.observe("dom:loaded", function() {
	MyBudujemy.fetchLoginStatus(mbManager.set);
});

var popUpId = '';

Event.observe(window, 'load', function() {
	//searchBox
	var searchButton = $('searchBoxButton');
	if(searchButton) {
		Event.observe(searchButton, 'click', function() {
			$('formSearch').submit();
		});
	}

	var forms = $$('form');

	forms.each(function(item) {
		if (item.id != 'orderForm') {
			Event.observe(item, 'keypress', formTrigger.enterCheck.bind(formTrigger));

			var textAreas = item.select('textarea');
			textAreas.each(function(item) {
				Event.observe(item, 'focus', formTrigger.blockTrigger.bind(formTrigger));
				Event.observe(item, 'blur', formTrigger.unblockTrigger.bind(formTrigger));
			});
		}
	});



	//consultation show
	if ($('consultationLink')) {
		Event.observe($('consultationLink'), 'click', function() {
			consultationPopUp.show();
		});

		//consultation hide
		Event.observe($('consultationHide'), 'click', function() {
			consultationPopUp.hide();
		});

		//consultation send
		Event.observe($('sendConsultation'), 'click', function() {
			consultationPopUp.send();
		});
	}

	//suggestion show
	if ($('suggestionLink')) {
		Event.observe($('suggestionLink'), 'click', function() {
			suggestionPopUp.show();
		});

		//suggestion hide
		Event.observe($('suggestionHide'), 'click', function() {
			suggestionPopUp.hide();
		});

		//suggestion send
		Event.observe($('sendSuggestion'), 'click', function() {
			suggestionPopUp.send();
		});
	}

	Event.observe($('overlay'), 'click', function() {
		switch (popUpId) {
			case 'suggestion':
				$$('select', 'object', 'embed').each(function(node){ node.style.visibility = 'visible' });
				new Effect.Fade($('suggestionBox'), { duration: 0.5, afterFinish: function() {
						new Effect.Fade($('overlay'), { duration: 0.2 });
					}
					});
				$('suggestionForm').reset();
				$('suggestionErrorMsg').update('');
				$('suggestionErrorMsg').hide();
				$('suggestionBox').setStyle({
					height: 430 + 'px'
				});
			break;

			case 'consultation':
				$$('select', 'object', 'embed').each(function(node){ node.style.visibility = 'visible' });
				new Effect.Fade($('consultationBox'), { duration: 0.5, afterFinish: function() {
						new Effect.Fade($('overlay'), { duration: 0.2 });
					}
					});
				$('consultationForm').reset();
				$('consultationErrorMsg').update('');
				$('consultationErrorMsg').hide();
				$('consultationBox').setStyle({
					height: 480 + 'px'
				});
			break;

			case 'informFriend':
				$$('select', 'object', 'embed').each(function(node){ node.style.visibility = 'visible' });
				new Effect.Fade($('informFriendBox'), { duration: 0.5, afterFinish: function() {
						new Effect.Fade($('overlay'), { duration: 0.2 });
					}
					});
				$('informFriendForm').reset();
				$('informFriendErrorMsg').update('');
				$('informFriendErrorMsg').hide();
				$('informFriendBox').setStyle({
					height: 540 + 'px'
				});
			break;

			case 'retailShop':
				$$('select', 'object', 'embed').each(function(node){ node.style.visibility = 'visible' });
				new Effect.Fade($('retailShopBox'), { duration: 0.5, afterFinish: function() {
						new Effect.Fade($('overlay'), { duration: 0.2 });
					}
					});
				$('retailShopForm').reset();
				$('retailShopErrorMsg').update('');
				$('retailShopErrorMsg').hide();
				$('retailShopBox').setStyle({
					height: 480 + 'px'
				});
			break;
		}
	});

	swfobject.embedSWF("flash/logos.swf", "companyLogos", "132", "32", "9.0.115", "expressInstall.swf", "", {wmode: "transparent" });
});

var suggestionPopUp = {
	show: function() {
		var panel = $('suggestionBox');

		//gen captcha
		var ajax = new Ajax.Request('index.php', {
			method: 'post',
			parameters: 'p=GenerateCaptcha&type=4',
			onSuccess: function(transport) {
				var response = transport.responseText.evalJSON();
				$('suggestionCaptchaImg').src = 'captcha/' + response.name;
				$('suggestionCaptchaText').clear();
			}
 		});

		panel.setStyle({
			left: (document.viewport.getWidth() - 280)/2 + 'px',
			top: document.viewport.getScrollOffsets().top + (document.viewport.getHeight() - 350)/2 + 'px',
			zIndex: 100
		});

		$$('select', 'object', 'embed').each(function(node){
			node.style.visibility = 'hidden'
		});
		$('overlay').setStyle({
			width: document.documentElement.scrollWidth + 'px',
			height: document.documentElement.scrollHeight + 'px'
		});

    	new Effect.Appear($('overlay'), { duration: 0.2, from: 0.0, to: 0.6, afterFinish: function() {
    			new Effect.Appear(panel, { duration: 0.5 });
    		}
    		});

    	//set popup id
    	popUpId = 'suggestion';
	},

	hide: function() {
		$$('select', 'object', 'embed').each(function(node){ node.style.visibility = 'visible' });
		new Effect.Fade($('suggestionBox'), { duration: 0.5, afterFinish: function() {
				new Effect.Fade($('overlay'), { duration: 0.2 });
			}
			});

		$('suggestionForm').reset();
		$('suggestionErrorMsg').update('');
		$('suggestionErrorMsg').hide();
		$('suggestionBox').setStyle({
			height: 430 + 'px'
		});
	},

	send: function() {
		var ajax = new Ajax.Request('index.php', {
			method: 'post',
			parameters: $('suggestionForm').serialize(),
			onSuccess: function(transport) {
				var response = transport.responseText.evalJSON();
				if (response.status == 'error') {
					$('suggestionErrorMsg').update(response.msg);
					$('suggestionBox').setStyle({
						height: 450 + 'px'
					});
					$('suggestionErrorMsg').show();
					//gen captcha
					var ajax = new Ajax.Request('index.php', {
						method: 'post',
						parameters: 'p=GenerateCaptcha&type=4',
						onSuccess: function(transport) {
							var response = transport.responseText.evalJSON();
							$('suggestionCaptchaImg').src = 'captcha/' + response.name;
							$('suggestionCaptchaText').clear();
						}
			 		});
				} else if (response.status == 'ok') {
					window.location = 'index.php?p=Info&m=22';
				}
			}
 		});
	}
}

var consultationPopUp = {
	show: function() {
		var panel = $('consultationBox');

		//gen captcha
		var ajax = new Ajax.Request('index.php', {
			method: 'post',
			parameters: 'p=GenerateCaptcha&type=1',
			onSuccess: function(transport) {
				var response = transport.responseText.evalJSON();
				$('captchaImg').src = 'captcha/' + response.name;
				$('captchaText').clear();
			}
 		});

		panel.setStyle({
			left: (document.viewport.getWidth() - 280)/2 + 'px',
			top: document.viewport.getScrollOffsets().top + (document.viewport.getHeight() - 350)/2 + 'px',
			zIndex: 100
		});

		$$('select', 'object', 'embed').each(function(node){
			node.style.visibility = 'hidden'
		});
		$('overlay').setStyle({
			width: document.documentElement.scrollWidth + 'px',
			height: document.documentElement.scrollHeight + 'px'
		});

    	new Effect.Appear($('overlay'), { duration: 0.2, from: 0.0, to: 0.6, afterFinish: function() {
    			new Effect.Appear(panel, { duration: 0.5 });
    		}
    		});

    	//set popup id
    	popUpId = 'consultation';
	},

	hide: function() {
		$$('select', 'object', 'embed').each(function(node){ node.style.visibility = 'visible' });
		new Effect.Fade($('consultationBox'), { duration: 0.5, afterFinish: function() {
				new Effect.Fade($('overlay'), { duration: 0.2 });
			}
			});

		$('consultationForm').reset();
		$('consultationErrorMsg').update('');
		$('consultationErrorMsg').hide();
		$('consultationBox').setStyle({
			height: 480 + 'px'
		});
	},

	send: function() {
		var ajax = new Ajax.Request('index.php', {
			method: 'post',
			parameters: $('consultationForm').serialize(),
			onSuccess: function(transport) {
				var response = transport.responseText.evalJSON();
				if (response.status == 'error') {
					$('consultationErrorMsg').update(response.msg);
					$('consultationBox').setStyle({
						height: 500 + 'px'
					});
					$('consultationErrorMsg').show();
					//gen captcha
					var ajax = new Ajax.Request('index.php', {
						method: 'post',
						parameters: 'p=GenerateCaptcha&type=1',
						onSuccess: function(transport) {
							var response = transport.responseText.evalJSON();
							$('captchaImg').src = 'captcha/' + response.name;
							$('captchaText').clear();
						}
			 		});
				} else if (response.status == 'ok') {
					var url = response.back;
					window.location = 'index.php?p=Info&m=7&url=' + url;
				}
			}
 		});
	}
}

var CookieManager = {
	setCookie: function(cName, value, days) {
		t = new Date();
	 	t.setUTCDate(t.getUTCDate() + days);
	 	document.cookie = cName + '=' + escape(value) + ((days == null) ? '' : '; expires=' + t.toGMTString()) + '; path=/';
	},

	getCookie: function(cName) {
		if(document.cookie.length > 0) {
			var cStart = document.cookie.indexOf(cName + "=");
			if (cStart != -1) {
				cStart = cStart + cName.length + 1;
				var cEnd = document.cookie.indexOf(";", cStart);
				if(cEnd == -1) cEnd = document.cookie.length;
				return unescape(document.cookie.substring(cStart, cEnd));
			}
		}
		return null;
	},

	deleteCookie: function(cName) {
		if(CookieManager.getCookie(cName) == null) {
			return null;
		}

		var today = new Date();
		today.setUTCDate(today.getUTCMonth() - 1);
		document.cookie = cName + '=; expires=' + today.toGMTString() + '; path=/';
	}
}

var mbManager = {
	set: function() {
		if(!MyBudujemy.isUndefined && MyBudujemy.user) {
			if($('myBudujemyLogged')) {
				$('mbUser').update(MyBudujemy.user.nick);
				Effect.Appear('myBudujemyLogged', { duration: 1.0 });
			}

			if($('mbImg')) {
				$('mbLink').href = 'http://www.mybudujemy.pl/?module=favourites&action=projects&user_id=' + MyBudujemy.user.id;
				Effect.Appear('mbImg', { duration: 1.0 });
			}

		} else {
			if($('myBudujemyLogin')) {
				Effect.Appear('myBudujemyLogin', { duration: 1.0 });
			}

			if($('mbRegister')) {
				Effect.Appear('mbRegister', { duration: 1.0 });
			}

			if($('myBudujemyNotice')) {
				Effect.BlindDown('myBudujemyNotice', { duration: 1.0 });
			}
		}
	}
}

var hiliteManager = {
	hilite: function(event) {
		var row = Event.findElement(event, 'tr');
		if(row.up().inspect().indexOf('tbody') != -1) {
			row.childElements().each(function(item){
				item.setStyle({
				  backgroundColor: '#D0E4A9'
				});
			});
		}
	},

	nolite: function(event) {
		var row = Event.findElement(event, 'tr');

		if(row.up().inspect().indexOf('tbody') != -1) {
			if(row.hasClassName('even')) {
				row.childElements().each(function(item){
					item.setStyle({
					  backgroundColor: '#FFFFFF'
					});
				});
			} else {
				row.childElements().each(function(item){
					item.setStyle({
					  backgroundColor: '#F0F1EB'
					});
				});
			}
		}
	}
}

var formTrigger = {
	goAhead: true,

	blockTrigger: function() {
		this.goAhead = false;
	},

	unblockTrigger: function() {
		this.goAhead = true;
	},

	enterCheck: function(event) {
		if(this.goAhead && (event.charCode == 13 || event.keyCode == 13)) {
			Event.findElement(event, 'form').submit();
		}
	}
};

var tool = {

	numCheck: function(eventObj) {
		var keyCode
		if (document.all) {
			keyCode=eventObj.keyCode;
		} else {
			keyCode=eventObj.which;
		}

		if(keyCode==8 || keyCode==0)
			return true;
		if (keyCode<48 || keyCode >58) {
			return false;
		}
		return true;
	},

	validateEmail: function(email) {
		return /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test(email);
	},

	subStr: function(f_string, f_start, f_length) {
		f_string = f_string+'';

	    if(f_start < 0) {
	        f_start += f_string.length;
	    }

	    if(f_length == undefined) {
	        f_length = f_string.length;
	    } else if(f_length < 0){
	        f_length += f_string.length;
	    } else {
	        f_length += f_start;
	    }

	    if(f_length < f_start) {
	        f_length = f_start;
	    }

	    return f_string.substring(f_start, f_length);
	},

	validatePostalCodePL: function(zip)
	{
		var tempZip = '';
		tempZip = zip.replace(/ /g, '');
		tempZip = tempZip.replace(/^\s+|\s+$/g, '');

		return /^[0-9]{2}-[0-9]{3}$/.test(zip);
	},

	validateNIP: function(nip)
	{
		var tempNip = '';
		tempNip = nip.replace(/-/g, '');
		tempNip = tempNip.replace(/ /g, '');

		if (!/^[0-9]{10}$/.test(tempNip)) {
			return false;
		}

		var factor = 6;
		var sum = 0;
		for(i = 0; i < 9; i++) {
			sum += tool.subStr(tempNip, i, 1) * factor;
			switch(i) {
				case 0: factor--; break;
				case 1: factor += 2; break;
				case 2: factor -= 5; break;
				default: factor++;
			}
		}

		var last = sum % 11;
		if(last == 10) {
			return false;
		}

		if(last != tool.subStr(tempNip, 9, 1)) {
			return false;
		}

		return true;
	},

	popupOpen: function(lat, lng, zoom)
	{
		window.open('index.php?p=GoogleMap&lat=' + lat + '&lng=' + lng + '&zoom=' + zoom, 'Mapa dojazdu', 'height=400,width=500');
	},

	printPaper: function(id, mirror)
	{
		var win;
		win = window.open('index.php?p=PrintProject&id=' + id +'&mirror=' + mirror, 'Wydruk_projektu', 'height=400,width=750,scrollbars=yes');
		win.focus();
	},

	printPDF: function()
	{

	},

	wander: function(name)
	{
		var win;
		win = window.open('wirtualnySpacer,' + name + '.html', 'Wirtualny_spacer', 'height=550,width=1025,scrollbars=yes');
		win.focus();
	},

	rot13: function(s)
	{
		var rot13Str = "nopqrstuvwxyzabcdefghijklmNOPQRSTUVWXYZABCDEFGHIJKLM";
		var plainStr = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
  		var a = [];
	  	for (var i=0; i<s.length; i++) {
	    	var c = s.charAt(i);
	    	var found = plainStr.indexOf(c);
	    	a.push(found<0 ? c : rot13Str.charAt(found));
	  	}
  		return a.join('');
	}
}