var Page = function() {
	this.mapScale = 14;
	this.loaderImage = new Image();
	this.loaderImage.src = '/styles/loading.gif';
}

Page.prototype.validate = function(formId) {
	var result = true;
	if($('#feedBackName').val().length == 0) {
		$('#feedBackName').parent().addClass('formSelected');
		result = false
	} else {
		$('#feedBackName').parent().removeClass('formSelected');
	}

	if($('#feedBackEmail').val().length == 0) {
		$('#feedBackEmail').parent().addClass('formSelected');
		result = false
	} else if(!$('#feedBackEmail').val().match(/^[a-zA-Z0-9\-\._]+@[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,6}/)) {
		$('#feedBackEmail').parent().addClass('formSelected');
		result = false
	} else {
		$('#feedBackEmail').parent().removeClass('formSelected');
	}

	if($('#feedBackPhone').val().length == 0) {
		$('#feedBackPhone').parent().addClass('formSelected');
		result = false
	} else {
		$('#feedBackPhone').parent().removeClass('formSelected');
	}

	if($('#feedBackText').val().length == 0) {
		$('#feedBackText').parent().addClass('textareaSelected');
		result = false
	} else {
		$('#feedBackText').parent().removeClass('textareaSelected');
	}
	return result;
}

Page.prototype.showAddress = function(address) {
	if(!address) {
		var address = $('#contactAddress').val();
		if(!address) {
			alert('Neuvedena adresa');
			return false;
		}
	}
	if(!this.map) {
		this.geocoder = new google.maps.Geocoder();
		$('#contactMap').css('display', 'block');
	    var myOptions = {
	      zoom: this.mapScale,
	      disableDefaultUI: true,
	      navigationControl:true,
	      mapTypeId: google.maps.MapTypeId.ROADMAP
	    };
	    this.map = new google.maps.Map(document.getElementById('contactMap'), myOptions);
	}
	this.geocoder.geocode({"address": address}, function(results, status) {
		if (status == google.maps.GeocoderStatus.OK) {
            Page.map.setCenter(results[0].geometry.location);
            if(!Page.marker) {
	            Page.marker = new google.maps.Marker({
	                map: Page.map, 
	                position: results[0].geometry.location,
	                draggable: false
	            });
            } else {
            	Page.marker.setPosition(results[0].geometry.location);
            }
          } else {
            alert("Geocode was not successful for the following reason: " + status);
          }
	});

}

Page.prototype.reloadCaptcha = function(imageId){
	if(document.getElementById(imageId)) {
		var image = document.getElementById(imageId);
	} else {
		return false;
	}
	image.parentNode.style.background = 'transparent url("' + this.loaderImage.src + '") no-repeat center center';
	image.style.visibility = 'hidden';
	image.onload = function() {
		this.style.visibility = 'visible';
		this.parentNode.style.background = 'none';
	};
	image.src = image.src.replace(/&nc=\d+/, '&nc='+(new String((new Date).getTime())).substr(8,5));
}

Page.prototype.commentReply = function(commentId){
	if(!this.commentHolder) {
		this.commentHolder = document.createElement('div');
		this.commentHolder.className = 'commentHolder';
		this.commentHolder.innerHTML = 'Váš nový komentář';
	}
	var comment = document.getElementById('comment' + commentId);
	if(!comment) return false;
	if(comment.nextSibling.nextSibling && comment.nextSibling.nextSibling.id) {
		comment.parentNode.insertBefore(this.commentHolder, comment.nextSibling.nextSibling);
	}
	else if(comment.nextSibling && comment.nextSibling.id) {
		comment.parentNode.insertBefore(this.commentHolder, comment.nextSibling);
	} else {
		comment.parentNode.appendChild(this.commentHolder);
	}
	document.getElementById('commentParent').value = commentId;
	
	//if(comment.nextSibling).tagName
	//comment.parentNode.insertAfter()
}

Page.prototype.changeCaptcha = function(img) {
	document.getElementById(img).style.visibility = 'hidden';
	if(typeof document.getElementById(img).onload == 'undefined') {
		document.getElementById(img).onload = function() {
			this.style.visibility='visible';
		}
	}
	document.getElementById(img).src = document.getElementById(img).src.replace(/&nc=\d+$/, '&nc='+(new String((new Date).getTime())).substr(8,5));
}

var Page = new Page();
