/*####################################
 * 
 * @author Darious
 * 
 #####################################*/
jQuery(document).ready(function(){
	jQuery('#clickme').click(function() {
		jQuery('#book').animate({
		opacity: 1.0,
		height: 'toggle'
		}, 300, function() {
		});
	});
	
	if(jQuery('#widget-nav-breadcrumb-block li a:eq(1)').html() == 'Virtual Elements'){
		jQuery('#widget-nav-breadcrumb-block').find("li:gt(0)").remove();
	}
	
	//jQuery Tabs starter functions
	if (jQuery('#productTabs').length > 0) {
		jQuery('#productTabs').tabs();
	}
	if (jQuery('#newsTabs').length > 0) {
		jQuery('#newsTabs').tabs();
	}
	if (jQuery('#regionTabs').length > 0) {
		jQuery('#regionTabs').tabs();
	}
	
	//main left tree menù selection highlight
	if (jQuery('.menusx li.current ul a.current').length > 0) {
		var subMenuCurrent = jQuery('.menusx li.current a.current')[0];
		jQuery(subMenuCurrent).removeClass('current').css('color', '#000');
	}
	
	//Font size Switcher
	jQuery('#fontSizeSwitcher').click(function(){
		switch (jQuery('#fontSizeSwitcher').html()) {
			case 'AA':
				jQuery('#container').css('font-size', '150%');
				jQuery('#container a').css('font-size', '120%');
				jQuery('#fontSizeSwitcher').html('AAA');
				break;
			case 'A':
				jQuery('#container').css('font-size', '');
				jQuery('#container a').css('font-size', '');
				jQuery('#fontSizeSwitcher').html('AA');
				break;
			case 'AAA':
				jQuery('#container').css('font-size', '100%');
				jQuery('#container a').css('font-size', '70%');
				jQuery('#fontSizeSwitcher').html('A');
				break;
		}
	});
});

/*####################################
 * 
 * Add to bookmark
 * 
 #####################################*/
function addToBookmark() {
	if (window.sidebar) {window.sidebar.addPanel(document.title, window.location,"");} else if( window.external ) {window.external.AddFavorite( window.location, document.title); }else if(window.opera && window.print) {return true;}
}

/*####################################
 * 
 * Get Agencies from WS, id from swf
 * 
 * method getAgencies, returns XHTML markup
 * 
 #####################################*/
function getAgenciesAjax(id){
	jQuery('#mapLoadingAni').toggle();
	jQuery.ajax({
		url: currentDomain + '/swf/returnRegion.cfc?method=getAgencies',
		data: ({
			regionId: id
		}),
		dataType: 'html',
		type: 'POST',
		success: function(data){
			var markup = Encoder.htmlDecode(data);
			
			jQuery('.anx-content-container').fadeOut('slow',function(){
				jQuery('.anx-content-container').html(markup);
				jQuery('.anx-content-container char').remove();
			});
			jQuery('.categoryTitle').fadeOut('slow',function(){
				jQuery('.categoryTitle').html('Agenzie ' + regioni[id]);
			});
			
			jQuery('.anx-content-container').fadeIn();
			jQuery('.categoryTitle').fadeIn();
			
			jQuery('#mapLoadingAni').toggle();
		},
		error: function(){
			jQuery('#mapLoadingAni').toggle();
		}
	});
}

/*####################################
 * 
 * only numbers for input type text
 * 
 #####################################*/
function onlyNumbers(evt) {
	var e = evt;
	if(window.event){ // IE
		var charCode = e.keyCode;
	} else if (e.which) { // Safari 4, Firefox 3.0.4
		var charCode = e.which
	}
	if (charCode != 8 && (charCode < 48 || charCode > 57)){
		e.preventDefault();
	}else{
		return true;	
	}
}

/*####################################
 * 
 * limit textarea characters to 500
 * 
 #####################################*/
function limitTextArea(evt,id){
	var e = evt;
	if(window.event){var charCode = e.keyCode;} else if (e.which) {var charCode = e.which}
	if(jQuery('#'+id).val().length > 500 && charCode != 8){
		var textContent = jQuery('#'+id).val().substr(0, 500);
		jQuery('#'+id).val(textContent);
		return false;
	}else{
		return true;	
	}
	
}

/*####################################
 * 
 * Handlers for forms, validation, reset & initial configurations
 * 
 #####################################*/
function formsHandler(formType){
	
	var invalidFields = [];
	//////////////////////////////////////////////////////////
	////////////    common validation controls      //////////
	//////////////////////////////////////////////////////////
	function validityTextCheck(id){
		if(jQuery('#' + id).val() == ""){
			validForm = false;
			jQuery('label[for="' + id + '"]').css('color','red');
			invalidFields.push('Il campo ' + jQuery('#' + id).attr('alt') + ' &egrave; obbligatorio');
		}
	}
	function validitySelectCheck(id){
		if(jQuery('#' + id + ' option:selected').val() == "0"){
			validForm = false;
			jQuery('label[for="' + id + '"]').css('color','red');
			invalidFields.push('Il campo ' + jQuery('#' + id).attr('alt') + ' &egrave; obbligatorio');
		}
	}
	
	function contactFormValidationReset(){
		jQuery('label[for="contactName"]').css('color','#555555');
		jQuery('label[for="contactSurname"]').css('color','#555555');
		jQuery('label[for="contactRagioneSociale"]').css('color','#555555');
		jQuery('label[for="contactReferente"]').css('color','#555555');
		jQuery('label[for="contactHQ"]').css('color','#555555');
		jQuery('label[for="contactProvince"]').css('color','#555555');
		jQuery('label[for="contactBirthday"]').css('color','#555555');
		jQuery('label[for="contactAddress"]').css('color','#555555');
		jQuery('label[for="contactCity"]').css('color','#555555');
		jQuery('label[for="contactCap"]').css('color','#555555');
		jQuery('#contactBankSelect').css('border-color','#D9E1EA');
		jQuery('label[for="contactContractNumber"]').css('color','#555555');
		jQuery('label[for="contactEmail"]').css('color','#555555');
		jQuery('label[for="contactTel"]').css('color','#555555');
		jQuery('#formProductsRow p').remove();
		jQuery('label[for="contactMessage"]').css('color','#555555');
		jQuery('label[for="jobCv"]').css('color','#555555');
		jQuery('.privacy').css('border','0 none');
		invalidFields = [];
	}
	//////////////////////////////////////////////////////////
	////////////    common validation controls      //////////
	//////////////////////////////////////////////////////////
	
	
	
	//////////////////////////////////////////////////////////
	////////////////    contact form handler    //////////////
	//////////////////////////////////////////////////////////
	
	function contactFormHandler(){
		jQuery('.formField.switches div').click(function(){
			var clickSelected = jQuery(this).hasClass('selected');
			if (clickSelected == false) {
				jQuery('#contactRequestType').val(jQuery(this).attr('name'));
				jQuery('.formField.switches div').removeClass('selected');
				jQuery(this).addClass('selected');
			}
		});
		
		jQuery('input:radio[name="profileType"]').click(function(){
			if (jQuery('input:radio[name="profileType"]:checked').val() == 'Azienda') {
				jQuery('#contactName').attr('disabled', true);
				jQuery('#contactSurname').attr('disabled', true);
				jQuery('#contactProvince').attr('disabled', true);
				jQuery('#contactRagioneSociale').attr('disabled', false);
				jQuery('#contactReferente').attr('disabled', false);
				jQuery('#contactHQ').attr('disabled', false);
			}
			else {
				jQuery('#contactName').attr('disabled', false);
				jQuery('#contactSurname').attr('disabled', false);
				jQuery('#contactProvince').attr('disabled', false);
				jQuery('#contactRagioneSociale').attr('disabled', true);
				jQuery('#contactReferente').attr('disabled', true);
				jQuery('#contactHQ').attr('disabled', true);
			}
		});
		jQuery('input:radio[name="contactAreadyCustomer"]').click(function(){
			if (jQuery('input:radio[name="contactAreadyCustomer"]:checked').val() == 'si') {
				jQuery('#contactContractNumber').attr('disabled', false);
			}
			else {
				jQuery('#contactContractNumber').attr('disabled', true);
			}
		});
		jQuery('input:radio[name="contactAreadyBankCustomer"]').click(function(){
			if (jQuery('input:radio[name="contactAreadyBankCustomer"]:checked').val() == 'si') {
				jQuery('#contactBankSelect').attr('disabled', false);
			}
			else {
				jQuery('#contactBankSelect').attr('disabled', true);
			}
		});
		
		jQuery('input:radio[name="profileType"]')[0].click();
		jQuery('input:radio[name="contactAreadyCustomer"]')[1].click();
		jQuery('input:radio[name="contactAreadyBankCustomer"]')[1].click();
		
		//get product list from WS, return json array
		jQuery.ajax({
			url: currentDomain + '/ws/ajax/anxContentRetrival.cfc?method=getProducts',
			dataType: 'json',
			success: function(data){
				products = data.DATA;
				for (i = 0; i < products.length; i++) {
					if(products[i] == 'Approfondimenti'){
						jQuery('#formProductsRow').append('<input class="productContactInfo" type="checkbox" name="product' + i + '" id="product' + i + '" value="altro"/><label for="product' + i + '">Altro (specificare sotto)</label>');
					}else{
						jQuery('#formProductsRow').append('<input class="productContactInfo" type="checkbox" name="product' + i + '" id="product' + i + '" value="' + products[i] + '"/><label for="product' + i + '">' + products[i] + '</label>');
					}
					
					if ((i % 2) == 1) {
						jQuery('#formProductsRow').append('<div class="clear">&nbsp;</div>');
					}
				}
				
			}
		});
		
		
		jQuery('.formFieldRow.formSubmit input').click(function(e){
			var regExMail = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
			

			e.preventDefault();
			var validForm = true;
			
			//reset styles for revalidate
			contactFormValidationReset();
			
			//Check Azienda/privato
			if (jQuery('input:radio[name="profileType"]:checked').val() == 'Azienda') {
				validityTextCheck('contactRagioneSociale');
				validityTextCheck('contactReferente');
				validitySelectCheck('contactHQ');
			}
			else {
				validityTextCheck('contactName');
				validityTextCheck('contactSurname');
				validitySelectCheck('contactProvince');
			}
			
			
			
			//Check nuovo cliente banca
			if (jQuery('input:radio[name="contactAreadyBankCustomer"]:checked').val() == 'si') {
				if (jQuery('#contactBankSelect option:selected').val() == "0") {
					validForm = false;
					jQuery('#contactBankSelect').css('border-color', 'red');
					invalidFields.push('Il campo ' + jQuery('#contactBankSelect').attr('alt') + ' &egrave; obbligatorio');
				}
			}
			//Check nuovo cliente
			if (jQuery('input:radio[name="contactAreadyCustomer"]:checked').val() == 'si') {
				validityTextCheck('contactContractNumber');
			}
			
			//Check email
			var address = jQuery('#contactEmail').val();
			if (regExMail.test(address) == false || address == "") {
				validForm = false;
				jQuery('label[for="contactEmail"]').css('color', 'red');
				invalidFields.push('Il campo ' + jQuery('#contactEmail').attr('alt') + ' &egrave; obbligatorio');
			}
			
			//Check telefono
			validityTextCheck('contactTel');
			
			//Check almeno un prodotto
			if (jQuery('#formProductsRow input').is(':checked') == false) {
				validForm = false;
				jQuery('#formProductsRow').append('<p id="productValidationError">Selezionare almeno un prodotto</p>');
				invalidFields.push('Selezionare almeno un prodotto');
			}
			
			//Check message
			validityTextCheck('contactMessage');
			
			//Check privacy
			if (jQuery('.privacy input#privacyCheckOne').is(':checked') == false) {
				validForm = false;
				jQuery('.privacy').css('border', '1px solid red');
				invalidFields.push("E' necessario accettare le condizioni sulla priovacy");
			}
			if (validForm == true) {
				jQuery('#contactForm').submit();
			}else{
				jQuery('#firstErrorMessage').html(invalidFields[0]);
			}
		});
	}
	//////////////////////////////////////////////////////////
	////////////////    contact form handler    //////////////
	//////////////////////////////////////////////////////////
	
	
	
	//////////////////////////////////////////////////////////
	////////////////       job form handler     //////////////
	//////////////////////////////////////////////////////////
	
	function jobFormHandler(){
		jQuery('.formFieldRow.formSubmit input').click(function(e){
			var regExMail = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
			var regExDate = /^(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d$/;
			e.preventDefault();
			var validForm = true;
			
			//reset styles for revalidate
			contactFormValidationReset();
			
			validityTextCheck('contactName');
			validityTextCheck('contactSurname');
			//Check birthday date
			var birthday = jQuery('#contactBirthday').val();
			if (regExDate.test(birthday) == false || birthday == "") {
				validForm = false;
				jQuery('label[for="contactBirthday"]').css('color', 'red');
				invalidFields.push('Il campo ' + jQuery('#contactBirthday').attr('alt') + ' &egrave; obbligatorio');
			}
			validityTextCheck('contactAddress');
			validityTextCheck('contactCity');
			validityTextCheck('contactCap');
			validitySelectCheck('contactProvince');
			//Check email
			var address = jQuery('#contactEmail').val();
			if (regExMail.test(address) == false || address == "") {
				validForm = false;
				jQuery('label[for="contactEmail"]').css('color', 'red');
				invalidFields.push('Il campo ' + jQuery('#contactEmail').attr('alt') + ' &egrave; obbligatorio');
			}
			//Check telefono
			validityTextCheck('contactTel');
			//Check message
			validityTextCheck('contactMessage');
			//Check attachment
			validityTextCheck('jobCv');
			//Check privacy
			if (jQuery('.privacy input#privacyCheckOne').is(':checked') == false) {
				validForm = false;
				jQuery('.privacy').css('border', '1px solid red');
				invalidFields.push("E' necessario accettare le condizioni sulla priovacy");
			}
			
			if (validForm == true) {
				jQuery('#contactForm').submit();
			}else{
				jQuery('#firstErrorMessage').html(invalidFields[0]);
			}
		});
	}
	//////////////////////////////////////////////////////////
	////////////////       job form handler     //////////////
	//////////////////////////////////////////////////////////
	
	
	
	
	
	//////////////////////////////////////////////////////////
	////////////    form type handler switch        //////////
	//////////////////////////////////////////////////////////
	switch(formType){
		case 'contacts':
			contactFormHandler();
			break;
		case 'job':
			jobFormHandler();
			break;
		default: break;
		
	}
	jQuery('#fIcons').css('display','none');
}

