var hideRegionsIfNoFlash = {
	init: function () {
		if ($('#divSelectRegions').length > 0)
		{
			if (!FlashDetect.installed) {
				$('#divSelectRegions').show();     	
			} else {
				$('#divSelectRegions').hide();
			}
		
		}
	}
}
$(document).ready(function () {hideRegionsIfNoFlash.init();});

function hideHtml()	{
	$('#map').hide();
}

function showHtml() {
	$('#map').show();
}

var flashvars = {
	xmlPath:"/it-it/xml/regions.xml"
};

var params = {
	wmode: "transparent",
	scale: "noScale",
	play: "true"
};

var attributes = {
	id: "map",
	name: "map" 
};

swfobject.embedSWF("/it-it/swf/map.swf", "map", "415", "415", "8.0.0", "#ffffff",flashvars,params,attributes);

function selectRegion(id){
	
	$('#region').val(id);
	//Reset value for search
	$('#zip').val("");
	$('#firstname').val("");
	$('#lastname').val("");
	var tmp = $('#region option[value='+id+']').text();
	var reg = new RegExp( "[' ]", "gi") ;
	var region = tmp.toLowerCase().replace(reg,'-');
	setGoogleAnalytics('/search/counsellor/results?searchcounsellor=region-'+region);
	$('#btSearchCouncilor').click();
}


function initForm()
{
box.ui('form').addPatterns({
        zipcode: /^[0-9]{1,8}$/
	});
	
    box.ui('form').create({
        element: '#councilorSearchForm'
    }).addReplacement().mustValidate(function(form) {

		form.field('zip').mustValidate(function(field) {
			if (!field.isEmpty() && !field.isMatching('zipcode')) {
                return l10n.errors.required.EM_SW_12;
            }
			if (form.field('firstname').isEmpty() && form.field('lastname').isEmpty() && form.field('zip').isEmpty() ) {
				$('#councilorSearchForm label').addClass('error');
				return l10n.errors.required.EM_SW_01;
			}
        });
		
            
        return l10n.errors.form;
    });
    
	
    var errorCls = 'error';
    
    var getErrorTarget = function(field) {
        if('radio' != field.type) {
            return field.getLabel();
        } else {
            return field.getElements().parent().parent().prev();
        }
    };
	
	var addErrorIcon = function(field, target) {
		var id = field.name + 'Error';
		var img = box.dom('#' + id);
		if(img.length) {
		  img.attr('alt', field.getError());
		} else {
		  target.append('<span id="' + id + '">- ' + field.getError() + '<br/></span>');
		}
	 };
    
    var addFieldError = function(e) {
		getErrorTarget(e.source).addClass(errorCls);
		addErrorIcon(e.source, $('div.alert .content p'));
    };
    
    var removeFieldError = function(e) {
        getErrorTarget(e.source).removeClass(errorCls);
		box.dom('#' + e.source.name + 'Error').remove();
    };
    
    var addFormError = function(e) {
        var id = e.source.id + 'Error';
		var msgEmpty = '';
		var msg = e.source.msg;
        var error = box.dom('#' + id);
        if(error.length) {
            error.html(msg);
        } else {
            //e.source.getElement().prepend('<div id="' + id + '" class="' + errorCls + '">' + msg + '</div>');
			//$('div.alert .content p').text(msg);
			$('#' + e.source.id + ' div.alert').show();
        }
    };
    
    var removeFormError = function(e) {
        box.dom('#' + e.source.id + 'Error').remove();
    };
    
    // binding des événements
    box.bind({
        'error.form': addFormError,
        'valid.form': removeFormError,
        'error.field.text': addFieldError,
		'error.field.select': addFieldError,
        'error.field.radio': addFieldError,
        'error.field.checkbox': addFieldError,
        'valid.field.text': removeFieldError,
		'valid.field.select': removeFieldError,
        'valid.field.radio': removeFieldError,
        'valid.field.checkbox': removeFieldError
    });
}

box.dom(document).ready(function() {
	if (document.getElementById('councilorSearchForm'))
		initForm();
});