/**
 * General Functions
 */
Array.max = function( array ){
	return Math.max.apply( Math, array );
};
Array.min = function( array ){
	return Math.min.apply( Math, array );
};
/**
 * init Functions
 */
function init(){
   
    //-----> Shadowbox
    Shadowbox.init({overlayOpacity: 0.8});
    //-----> menu	
	$('ul#menu').superfish();	
	$('ul').parent('li').find('a:first').addClass("trigger");
    $('ul#menu li ul li a').each(function(){
       if(!$(this).hasClass('trigger') ){
           $(this).addClass('fix_padding');
       }
    });
	//-----
	if ($.browser.msie && $.browser.version.substr(0,1)<=7) {	
		$('#browser-alert').addClass('close');
		$('#browser-alert div').hide();
		$('#browser-alert p:first').click(function(){
			$(this).parent().removeClass('close');
			$(this).next('div').fadeIn();
			$('#browser-alert div #chiudi').click(function(){
				$(this).parent().parent().addClass('close')
				$(this).parent().hide();
			});
		});
	}
/*	//-----> Countdown
*/	var newYear = new Date();
	newYear = new Date(2012, 02, 29, 10, 00);
	$('.defaultCountdown').countdown({until: newYear, format: 'DHMS'});
    //-----> fitted
	$("ul.elenco-categorie li").fitted({
		'class':{
			'hover' : 'hovering'
		}
	});
    //-----> input and .button focus and hover
	addHoverFocusInputClass();
     //-----> Addthis
    appendAddthis();    
    $('.utility-news li a.condividi').parent('li').addClass('addthis_hoverme');
    loadAddthis('.addthis_hoverme:not(#primo-piano .utility-news .addthis_hoverme,#last-news .utility-news .addthis_hoverme)',false);
    loadAddthis('#primo-piano .utility-news .addthis_hoverme',true);     
		/* SlideRotator-RatationBanner */
	$('#rotation-banner div:first').slideRotator({				
		width:298,
		height:130,
		time: 4000,
		timeAnimate:300,
		effect: 'fade',
		sideCaption: false,
		sideCaptionWidth: 298,
		showControl: false		
	});

}

/**
 * Addthis
 */
var services={                
        'twitter':'Tweet This',
        'facebook':'Send to Facebook',
        'linkedin':'Send to LinkedIn',
        'google':'Sent to Google',
        'email':'Email',
        'favorites':'Save to Favorites',
        'expanded':'More...'
    };
/* appendAddthis */
function appendAddthis(){
    $share=$('<div id="share"><div class="ang-share-sx"></div><div class="ang-share-dx"></div><ul></ul></div>');
    for (key in services){
        $share.find('ul').append('<li><a class="addthis_button_'+key+'">'+services[key]+'</a></li>')
    }
    $share.insertAfter('#menu');
}
/*
 * loadAddthis
 */
function loadAddthis(hover_me,external){

    $(hover_me).each(function(){
		
        if(external){
            url=$(this).parent('.utility-news').find('.leggi').attr('href');
            
            title=$(this).parent('.utility-news').parent('li').find('h4').html();
			
            $share=$('<div class="addthis_services"><ul></ul><span class="arrow"></span></div>');
            for (key in services){
                if(key!='favorites'){
                    if(key=='expanded'){
                        s='menu';
                    }else{
                        s=key;
                    }
                    href='http://api.addthis.com/oexchange/0.8/forward/'+s+'/offer?url='+url+'&title='+title
                    $share.find('ul').append('<li><a target="_blank" href="'+href+'"><span class="'+key+'"></span>'+services[key]+'</a></li>')
                }
            }
        }else{
           $share=$('<div class="addthis_services"><ul></ul><span class="arrow"></span></div>');
            for (key in services){
                if(key!='favorites'){
                    $share.find('ul').append('<li><a class="addthis_button_'+key+'"><span class="'+key+'"></span>'+services[key]+'</a></li>')
                }
            } 
        }
        $(this).append($share);
        $(this).mouseenter(function() {            
            $(this).find('.addthis_services').fadeIn('fast');
            $(this).addClass('on');
            $(this).data('in', true);
            $(this).find('.addthis_services').data('in', true);
            $(this).find('.addthis_services').data('hidden', false);
        }).mouseleave(function() {
            $tmp=$(this);
            $(this).data('in', false);
            $(this).find('.addthis_services').data('in', false);
            setTimeout(function () {
                if (!$tmp.data('in') && !$tmp.find('.addthis_services').data('in') && !$tmp.find('.addthis_services').data('hidden')) {
                    $tmp.find('.addthis_services').fadeOut('fast');
                    $tmp.removeClass('on');
                    $tmp.find('.addthis_services').data('hidden', true);
                }
            }, 200);
        });
    });



}
/**
 * addHoverFocusInputClass
 */
function addHoverFocusInputClass(){
	$('input[type=submit],input[type=reset],input[type=button],button,a.button,input.button').hover(function(){
		$(this).addClass('hover')
	},function(){
		$(this).removeClass('hover')
	});
	$('input[type=submit],input[type=reset],input[type=button],input[type=text],input[type=password],textarea,select').focus(function(){
		$(this).addClass('focus')
	});
	$('input[type=submit],input[type=reset],input[type=button],input[type=text],input[type=password],textarea,select').blur(function(){
		$(this).removeClass('focus')
	});
}
/**
 * switchLanguageSite
 */
function switchLanguageSite(select){
	$(select).change(function(){
		opt=$(this).find(':selected').val();
		window.location='/'+opt+'/';
	});
}

/**
 * privacyOverlay
 */
function privacyOverlay(el){
	//Shadowbox.init();
	//$(el+' a').attr("rel","shadowbox;width=850;height=600");
    $(el+' a').click(function(){        
         Shadowbox.open({
            content:    $(this).attr('href'),
            player:     "iframe",
            title:      $(this).attr('title'),
            height:     600,
            width:      850
        });
        return false;
    });
	$(el).next('ul').radiobutton({
		clickAll: false,
		liInline: true
	});
}
/**
 * selectCascade
 */
function selectCascade(url, loading, select, result, param, objWidth, onSuccess){
    if(!objWidth){
        objWidth=186;
    }
	$(loading).hide();
	$(select).change(function(){
		opt=$(this).find(':selected').val();
		$.ajax({
			beforeSend: function(){
				$(result).html("");
				$(loading).show();
			},
			complete: function(){
				$(loading).fadeOut("fast");
			},
			type: "GET",
			url: url,
			cache: false,
			data: param+"="+opt,
			success: function(html){
				$(result).html(html);
				$(result).find("select").sSelect({
					objWidth: objWidth
				});
                if(onSuccess){
                    onSuccess();
                }
			},
			error: function(){
				$(result).html('Error, please try again later..');
			}
		});
	});
}
/**
 * validateAndCaptcha
 */
function validateAndCaptcha(form,errorContainer,captchaContainer,label,title,msg){
	var firstNumber = Math.ceil(Math.random()*10);
	var secondNumber = Math.ceil(Math.random()*10);
	var theAnswer = firstNumber + secondNumber;
	$(captchaContainer).html("<label for='captcha'>"+label+"<span>*</span>: "+firstNumber+" + "+secondNumber+" =</label> <input type='text' name='captcha' id='captcha' maxlength='2' class='captcha' title='"+title+"' />");
	var validator=installFormValidate(form,errorContainer);
	if (validator){
		$(form+" input[type=reset]").bind("click", function(e){
			if($.fn.resetForm){
				validator.resetForm();
				resetStylesAndValuesFields(form);			
			}else{
				resetStylesAndValuesFields(form);
				return true;
			}			
		});
		$(captchaContainer+ " input[name=captcha]").rules("add", {
			required:true,
			digits:true,
			range:[theAnswer,theAnswer],
			messages:{
				range: msg
			}
		} );

	}
    return validator;
}

