
Array.prototype.remove = function(value) {
    var newArray = new Array();
    for (i=0; i<this.length; ++i) {
        if (this[i] != value) newArray.push(this[i]);
    }
    while (this.length > 0) this.pop();
    for (i=0; i<newArray.length; ++i) {
        this[i] = newArray[i];
    }
}

var selectedTags = {'produits': [], 'industries': [], 'applications': []};
function clickedOnTag(tagGroup,tagId,tagObj,lang) {
    
    var currentState = (tagObj.className == 'filterItemOn') ? 'on' : 'off';
    
    if (currentState == 'on') {
        // we deselected a tag
        tagObj.className = 'filterItem';
        selectedTags[tagGroup].remove(tagId);
        displayProductListFromTags(lang);
    }
    else {
        // we selected a new tag
        tagObj.className = 'filterItemOn';
        selectedTags[tagGroup].push(tagId);
        displayProductListFromTags(lang);
    }
    
    //alert('produits : '+selectedTags.produits.join(', ')+"\nindustries : "+selectedTags.industries.join(', ')+"\napplications : "+selectedTags.applications.join(', '));
}

function selectAll(tagGroup,tagIds,container,lang) {
	for (i=0; i < container.childNodes.length; ++i) {
		if (container.childNodes[i].tagName == 'SPAN' && container.childNodes[i].className != 'filterToggle') 	container.childNodes[i].className = 'filterItemOn';
	}
        selectedTags[tagGroup] = tagIds.split(',');
        displayProductListFromTags(lang);
}

function selectNone(tagGroup,container,lang) {
	for (i=0; i < container.childNodes.length; ++i) {
		if (container.childNodes[i].tagName == 'SPAN' && container.childNodes[i].className != 'filterToggle') container.childNodes[i].className = 'filterItem';
	}
        selectedTags[tagGroup] = [];
        displayProductListFromTags(lang);
}

function displayProductListFromTags(lang) {
   	var params = new Array();
   	for (tagGroup in selectedTags) {
   	    if (selectedTags[tagGroup].length > 0) params.push(tagGroup+'='+selectedTags[tagGroup].join('-'));
   	}
   	var url = '/'+lang+'/catalogue/navprodlist/?'+params.join('&');
    var myAjax = new Ajax.Updater( 
                    {success: 'productListContainer'}, 
                    url, 
                    { method: 'get', onFailure: reportError }
                 );

}

function launchSearch(elm,lang,fromSearchPage) {
	fromSearchPage = (fromSearchPage == false) ? false : true;
	if (elm.value != undefined && elm.value != '') {
		if (fromSearchPage) {
			url = '/'+lang+'/catalogue/rechprodlist/'+elm.value;
		   	//alert(url);
			var myAjax = new Ajax.Updater( 
		                    {success: 'productListContainer'}, 
		                    url, 
		                    { method: 'get', onFailure: reportError }
		                 );
		}
		else {
			if (lang == 'fr') url = '/fr/catalogue/recherche/'+elm.value;
			else if (lang == 'en') url = '/en/catalogue/search/'+elm.value;
			window.location.href = url;
		} 
	}
}

function reportError(request){
    alert('Sorry. There was an error.');
}

function viewFullSizeImg(src,dims) {
	dims = dims.split('x');
	doozpop = window.open(src,'pop','height='+(parseInt(dims[1]) + 20)+',width='+(parseInt(dims[0]) + 20)+',menubar=no,titlebar=0,resizable=yes,toolbar=no,scrollbars=yes,screenX=50,screenY=50,dependent=no');
	doozpop.focus();
}

function showJob(id,linkObj) {
    if ($('job-'+id).style.display == 'block') {
        $('job-'+id).style.display = 'none';
//        $('job-img-'+id).src = '/img/branch-closed.gif';
        linkObj.className = 'jobTitle';
    }
    else {
        $('job-'+id).style.display = 'block';
//        $('job-img-'+id).src = '/img/branch-opened.gif';
        linkObj.className = 'jobTitle-on';
    }
}