// JavaScript Document

function addLoadEvent(func){
    var oldonload = window.onload;
    if (typeof window.onload != 'function') {
        window.onload = func;
    } else {
        window.onload = function(){
            oldonload();
            func();
        }
    }
}

function setHomeBlockBorder(){
    
    if(navigator.userAgent.match('MSIE')){
        var position = 349;
    } else {
        return false;
    }
    
    var contents = document.getElementById('contents');
    var elements = contents.getElementsByTagName('div');
    
    for(var i = 0; i < elements.length; i++){
        if(elements[i].className == 'homeBlockLight' || elements[i].className == 'homeBlockDark' || elements[i].className == 'homeBlockParaLight' || elements[i].className == 'homeBlockParaDark'){
            elements[i].style.backgroundPositionX = position + 'px';
        }
    }
}

function setFooterPosition(){
    var body = document.getElementsByTagName('body')[0];
    
    if(self.innerHeight > body.offsetHeight) {
        var documentHeight = self.innerHeight;
    } else {
        var documentHeight = body.offsetHeight;
    }
    
    var headerHeight = document.getElementById('header').offsetHeight;
    var bannerHeight = document.getElementById('banner').offsetHeight;
    var navigationHeight = document.getElementById('navigation').offsetHeight;
    var contents = document.getElementById('contents');
    var footerHeight = document.getElementById('footer').offsetHeight;
    var contentsHeight = documentHeight - (headerHeight + bannerHeight + navigationHeight + footerHeight + 30);
    contents.style.height = contentsHeight + 'px';
}

function preloadImages(){
	 if (!document.getElementsByTagName) return false;
		if (!document.getElementById) return false;
		if (!document.getElementById("galleryThumb")) return false;
		var galleryThumbs = document.getElementById('galleryThumb');
		var thumbLists = galleryThumbs.getElementsByTagName('a');
		
		for(var i = 0; i < thumbLists.length; i++){
			 var images = thumbLists[i].getAttribute('href');
		  var loadImage = new Image();
				loadImage.src = images[i];
		}
}

function newsGallery(){
    
    if(!document.getElementById('galleryThumb')) return false;
    var galleryThumbs = document.getElementById('galleryThumb');
    
    var thumbLists = galleryThumbs.getElementsByTagName('a');
    
    for(var i = 0; i < thumbLists.length; i++){
        var list = thumbLists[i];
        
        list.onclick = function(){
            var uri = this.getAttribute('href');
            if(!document.getElementById('newsImg')) return false;
            var galleryImge = document.getElementById('newsImg');
            galleryImge.setAttribute('src', uri);
            return false;
        }
    }
}

function newsletter(){
    if(!document.getElementById('form_header')) return false;
    var newsletter = document.getElementById('form_header');
    var label = newsletter.getElementsByTagName('label')[0];
    var inputs = label.getElementsByTagName('input');
    
    for(var i = 0; i < inputs.length; i++) {
        if(inputs[i].getAttribute('type') == 'text') {
            inputs[i].onclick = function(){
                this.focus();
                this.select();
                this.value = "";
            }
        }
    }
}

function prepareForm(){
    if(document.getElementById('subscribeml')) {
        var form = document.getElementById('subscribeml');
    }
    
    if(document.getElementById('form')) {
        var form = document.getElementById('form');
        
        if (document.getElementById('verificationcode')) {
            var verificationcode = document.getElementById('verificationcode');
            verificationcode.onclick = function(){
                this.focus();
                this.select();
                this.value = "";
            }
        }
    }
    if (document.getElementById('email')) {
        var email = document.getElementById('email');
        email.onblur = function(){
            if(!validMail(this)){
                alert('mail non valida');
            }
        }
    }
    if (document.getElementById('messaggio')) {
        var messaggio = document.getElementById('messaggio');
    }
    
    if (email) {
        form.onsubmit = function(){
            return validateForm(this);
        }
    }
    
    if (messaggio) {
        messaggio.onblur = function(){
            if (!validField(this)) {
                alert('messaggio non valido');
            }
        }
    }
}

function validField(field){
    if (field.value.length < 1 || field.value == field.defaultValue) {
        return false;
    } else {
        return true;
    }
}

function validMail(field){
    input = field.value;
    pattern = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
    if (!input.match(pattern)) {
        return false;
    } else {
        return true;
    }
}

function validateForm(whichForm){
    for (var i = 0; i < whichForm.elements.length; i++) {
        var element = whichForm.elements[i];
        if (element.className == 'required') {
            if (!validField(element)) {
                if (element.getAttribute('name') == 'messaggio') {
                    alert("messaggio non valido");
                } else {
                    alert("completare i campi obbligatori");
                }
                return false;
            }
        }
        
        if (element.getAttribute('name') == 'email') {
            if (!validMail(element)) {
                alert("mail non valida");
                return false;
            }
        }
    }
    
    if(!document.getElementById('legge')) return false;
    var legge = document.getElementById('legge');
    
    if(!legge.checked) {
        alert("consenso obbligatorio");
        return false;
    }
    return true;
}


addLoadEvent(preloadImages);
addLoadEvent(setFooterPosition);
addLoadEvent(setHomeBlockBorder);
addLoadEvent(newsGallery);
addLoadEvent(newsletter);
addLoadEvent(prepareForm)