var newCommentAndSave = {
	Actions	: {
		starClick	: function(target,score,id) {
					newCommentAndSave.Overlays.show();
				},

		holder		: null,

		formConfirm	: function(target) {
					target = target.form;
					
					var inps  = target.getElementsByTagName('input');

					if(newCommentAndSave.holder)
						newCommentAndSave.holder.parentNode.removeChild(newCommentAndSave.holder);

					newCommentAndSave.holder = false;

					for(var i=0;i<inps.length;i++) {
						if(inps[i].type!='text') continue;
						
						var v = inps[i].value.replace(/^\s*/,'').replace(/\s*$/,'');
						var a = false;

						if(v=="") a = 'Pole nie może być puste.';
						if(inps[i].name=="edit[NickEmail][email]") if(!v.match(/^[\w\-\.]+@[\w\-\.]+\.[a-z]{2,4}$/i))
							  a = 'Adres e-mail musi być poprawny';

						if(a) {
							newCommentAndSave.holder = document.createElement('p');
								newCommentAndSave.holder.className = 'er';
								newCommentAndSave.holder.innerHTML = a;
								newCommentAndSave.holder.style.color = 'red';
								newCommentAndSave.holder.style.fontWeight = 'bold';
								newCommentAndSave.holder.style.padding = '0 0 0 6em';
								newCommentAndSave.holder.style.margin = '0';
								
							inps[i].parentNode.insertBefore(newCommentAndSave.holder,inps[i].previousSibling);
							inps[i].style.backgroundColor = '#FFD6D6';
						
							return false;
							
						} else inps[i].style.backgroundColor = '';
					}

					var ta = target.getElementsByTagName('textarea')[0];

					if(ta.value.replace(/^\s*/,'').replace(/\s*$/,'')=='') {
					
						newCommentAndSave.holder = document.createElement('p');
								newCommentAndSave.holder.innerHTML = 'Pole nie może być puste.';
								newCommentAndSave.holder.style.color = 'red';
								newCommentAndSave.holder.style.fontWeight = 'bold';
								newCommentAndSave.holder.style.padding = '0 0 0 6em';
								newCommentAndSave.holder.style.margin = '0';
								
						ta.parentNode.insertBefore(newCommentAndSave.holder,ta.previousSibling);

						ta.style.backgroundColor = '#FFD6D6';

						return false;
						
					} else ta.style.backgroundColor = '';
				}
	},

	Tools	: {
		getTarget	: function(ev) {
					var node = ev.target ? ev.target : ev.srcElement;

					if( node && ( node.nodeType == 3 || node.nodeType == 4 ) ) {
						node = node.parentNode;
					}

					return node;
				},


		addEvent	: function(obj,event,func,opt) {
					if(!obj) return false;

					if( obj.addEventListener ) {
						obj.addEventListener(event,func,false);

					} else if (obj.attachEvent) {
						obj.attachEvent('on'+event,func);

					}
				},

		delEvent	: function(obj,event,func,opt) {
					if( obj.removeEventListener ) {
						obj.removeEventListener(event,func,false);

					} else if (obj.removeEvent) {
						obj.removeEvent('on'+event,func);

					} else if (obj.detachEvent) {
						obj.detachEvent('on'+event,func);
					}
				},

		stopEvent	: function(event) {
					if (event.preventDefault) {
						event.preventDefault();
						event.stopPropagation();
					} else {
						event.returnValue = false;
						event.cancelBubble = true;
					}
				},

		getCanvasSize	: function () {
					var size = { width: null, height: null }
					var dSize = newCommentAndSave.Tools.getDocumentSize();

					var b = document.getElementsByTagName('html')[0];

					/* --------------- WIDTH ------------- */
					var sizes = new Array;

					if(typeof b.offsetWidth == 'number') sizes.push(b.offsetWidth);
					if(typeof b.clientWidth == 'number') sizes.push(b.clientWidth);
					if(typeof b.scrollWidth == 'number') sizes.push(b.scrollWidth);

					size.width = sizes.shift();
					for(var i=0;i<sizes.length;i++)  {if(sizes[i]>size.width) size.width = sizes[i]; }

					/* --------------- HEIGHT ------------- */
					var sizes = new Array;

					if(typeof b.offsetHeight == 'number') sizes.push(b.offsetHeight);
					if(typeof b.clientHeight == 'number') sizes.push(b.clientHeight);
					if(typeof b.scrollHeight == 'number') sizes.push(b.scrollHeight);

					size.height = sizes.shift();

					for(var i=0;i<sizes.length;i++) { if(sizes[i]>size.height) size.height = sizes[i]; }

					/* IE < 7 doesn't have XMLHttpRequest (only ActiveX controll) */
					if(window.attachEvent && !window.opera && !window.XMLHttpRequest)
						size.width -= 20;

					return size;
				},

		getDocumentSize	: function () {
					var size = { width: null, height: null }

					/* --------------- WIDTH ------------- */
					if(window.innerWidth)
						size.width = window.innerWidth;
						
					else if(document.documentElement.clientWidth && document.documentElement.clientWidth > 0)
						size.width = document.documentElement.clientWidth;

					else if(document.body.clientWidth)
						size.width = document.body.clientWidth;

					/* --------------- HEIGHT ------------- */
					if(window.innerHeight)
						size.height = window.innerHeight;
						
					else if(document.documentElement.clientHeight && document.documentElement.clientHeight > 0)
						size.height = document.documentElement.clientHeight;

					else if(document.body.clientHeight)
						size.height = document.body.clientHeight;

					return size;
				}
	},

	Overlays: {
		objects		: { bg:null,h:null,f:null },
		show		: function(ocena) {
					if(newCommentAndSave.Overlays.objects.bg==null) {
						newCommentAndSave.Overlays.objects.bg = document.createElement('div');
						var styles = newCommentAndSave.Overlays.objects.bg.style;

							styles.width = newCommentAndSave.Tools.getCanvasSize().width + 'px';
							styles.height = newCommentAndSave.Tools.getCanvasSize().height + 'px';
							styles.backgroundColor = '#000000';
							styles.opacity = 0.4;
							styles.filter = 'alpha(opacity=40)';
							styles.position = 'absolute';
							styles.top = 0;
							styles.left = 0;
							styles.zIndex = 990;
							styles.display = 'block';

						document.getElementsByTagName('body')[0].appendChild(newCommentAndSave.Overlays.objects.bg);
						
					} else newCommentAndSave.Overlays.objects.bg.style.display = 'block';

					if(newCommentAndSave.Overlays.objects.h==null) {
						newCommentAndSave.Overlays.objects.h = document.createElement('div');
						var styles = newCommentAndSave.Overlays.objects.h.style;

							styles.width = newCommentAndSave.Tools.getCanvasSize().width + 'px';
							styles.height = newCommentAndSave.Tools.getCanvasSize().height + 'px';
							styles.position = 'absolute';
							styles.top = 0;
							styles.left = 0;
							styles.zIndex = 999;
							styles.display = 'block';

						document.getElementsByTagName('body')[0].appendChild(newCommentAndSave.Overlays.objects.h);

						// attach commentForm to holder
						var commentForm = document.getElementById('commentForm');

							newCommentAndSave.Overlays.objects.f = commentForm.cloneNode(true);
								newCommentAndSave.Overlays.objects.f.id = 'overlayForm';

							// check form 
// 							newCommentAndSave.Tools.addEvent(
// 								newCommentAndSave.Overlays.objects.f,
// 								'submit',
// 								newCommentAndSave.Actions.formConfirm
// 							);

							var is = newCommentAndSave.Overlays.objects.f.getElementsByTagName('input');
								for(var i = 0;i<is.length;i++) {
									if(is[i].name=="edit[ocena]") is[i].value = ocena;
								}
								
							newCommentAndSave.Overlays.objects.h.appendChild(newCommentAndSave.Overlays.objects.f);
							newCommentAndSave.Overlays.objects.f.className = 'comment';
							
							var styles = newCommentAndSave.Overlays.objects.f.style;

								styles.display = 'block';
								styles.position = 'relative';
								styles.margin = '5% auto auto auto';
								styles.backgroundColor = '#F5F5F5';
								styles.width = '540px';

							
							var fs = newCommentAndSave.Overlays.objects.f.getElementsByTagName('fieldset');
								fs[1].style.display = 'block';
								fs[0].parentNode.removeChild(fs[0]);

							// highlight stars...
							var ims = newCommentAndSave.Overlays.objects.f.getElementsByTagName('img');
								for(var i=0;i<(ocena+3);i++) ims[i].src = '/img/shared/star_ov.gif';
							

					} else newCommentAndSave.Overlays.objects.h.style.display = 'block';

					window.scrollTo(0,0);

					var ss = document.getElementsByTagName('select');
					for(var i=0;i<ss.length;i++) {
						ss[i].style.visibility = 'hidden';
					}
					
				},

		hide		: function() {
					if(newCommentAndSave.Overlays.objects.bg!=null)
						newCommentAndSave.Overlays.objects.bg.style.display = 'none';

					newCommentAndSave.Overlays.objects.f.parentNode.removeChild(newCommentAndSave.Overlays.objects.f);
					newCommentAndSave.Overlays.objects.f = null;

					newCommentAndSave.Overlays.objects.h.parentNode.removeChild(newCommentAndSave.Overlays.objects.h);
					newCommentAndSave.Overlays.objects.h = null;

					var ss = document.getElementsByTagName('select');
					for(var i=0;i<ss.length;i++) {
						ss[i].style.visibility = '';
					}
				}
	}
}

