

//---------------------------------------- Browser && OS detection ---------------------------------------------//
// EXAMPLE of use : BrowserDetect.browser == "Explorer" &&  BrowserDetect.OS == "Windows" 

var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();



//---------------------------------- Select element full width (IE workaround) -----------------------------------//

		var select_was_clicked;

		 function getY( oElement )	{
		 	var iReturnValue = 0;
		 	while( oElement != null ) {
			  iReturnValue += oElement.offsetTop;
			  oElement = oElement.offsetParent;
		 	}
			 return iReturnValue;
			}
			
			function getX( oElement )	{
		 	var iReturnValue = 0;
		 	while( oElement != null ) {
		  	iReturnValue += oElement.offsetLeft;
	   	oElement = oElement.offsetParent;
	 		}
	 		return iReturnValue;
			}
		
		
		 function show_select_full_width( obj_select ) {			

				// create new select box to overlay
				var sel_over = obj_select.cloneNode( true );				
																									
				sel_over.id = obj_select.id + '_copy';
				sel_over.name = obj_select.name + '_copy';
				sel_over.options[obj_select.selectedIndex].selected = true;
				sel_over.style.position = 'absolute';
				sel_over.style.left = getX(obj_select) + 2;
				sel_over.style.top = getY(obj_select);
				sel_over.style.padding_left = '2px';						
				sel_over.style.min_width = '141px';
				sel_over.style.width = null;				
				sel_over.onmouseover = null;								
								
			 sel_over.onchange = function () {
					obj_select.selectedIndex = sel_over.selectedIndex;
					if ( obj_select.onchange != null ) {
					 obj_select.onchange();
					}
				 obj_select.style.display = '';
				 sel_over.style.display = 'none';				
				}
				
				sel_over.onblur = function () {				 
					obj_select.selectedIndex = sel_over.selectedIndex;
					if ( obj_select.onchange != null ) {
					 obj_select.onchange();
					}
				 obj_select.style.display = '';
				 sel_over.style.display = 'none';				
				}    		
				
				
				// add to the body 
			 document.getElementsByTagName("body")[0].appendChild( sel_over );				
				
				// check offsetWidth and set the good width 
				var original_width = obj_select.style.width.substr( 0, obj_select.style.width.indexOf("px") );
				var sel_over_width = sel_over.offsetWidth;
				
				if ( parseInt( original_width ) <= parseInt( sel_over_width ) ) {	
				 sel_over.style.width = null;				
				} else {
				 sel_over.style.width = original_width + 'px';				
				}
			 
				sel_over.focus();
			}
			
			/*
			
		 function show_select_full_width( obj_select ) {			
				
				select_was_clicked = false;
				
				// create new select box to overlay
				var sel_over = obj_select.cloneNode( true );				
																									
				sel_over.id = obj_select.id + '_copy';
				sel_over.name = obj_select.name + '_copy';
				sel_over.options[obj_select.selectedIndex].selected = true;
				sel_over.style.position = 'absolute';
				sel_over.style.left = getX(obj_select) + 2;
				sel_over.style.top = getY(obj_select);
				sel_over.style.padding_left = '2px';						
				sel_over.style.min_width = '141px';
				sel_over.style.width = null;				
				sel_over.onmouseover = null;								
								
			 sel_over.onchange = function () {
					obj_select.selectedIndex = sel_over.selectedIndex;
				 obj_select.style.display = '';
				 sel_over.style.display = 'none';				
				}
				
				sel_over.onblur = function () {				 					
					obj_select.selectedIndex = sel_over.selectedIndex;
				 obj_select.style.display = '';
				 sel_over.style.display = 'none';			
				}    
				
				sel_over.onmouseout = function() {
					if ( ! select_was_clicked ) {
				 	obj_select.selectedIndex = sel_over.selectedIndex;
			 	 obj_select.style.display = '';
			 	 sel_over.style.display = 'none';							
					}
				}
				
				sel_over.onclick = function() {
					
					select_was_clicked = true;
					
				}
				
				// add to the body 
			 document.getElementsByTagName("body")[0].appendChild( sel_over );				
				
				// check offsetWidth and set the good width 
				var original_width = obj_select.style.width.substr( 0, obj_select.style.width.indexOf("px") );
				var sel_over_width = sel_over.offsetWidth;
				
				if ( parseInt( original_width ) <= parseInt( sel_over_width ) ) {	
				 sel_over.style.width = null;				
				} else {
				 sel_over.style.width = original_width + 'px';				
				}
			}
				
				*/
			

//------------------------------------------ Forms validation -----------------------------------------------//


function Check_Form( form_name ){
		
	if( document.forms[form_name].elements['search_entreprise'].value == "" && document.forms[form_name].elements['search_regions_id'].value == "" && document.forms[form_name].elements['search_postal_code'].value == "" && document.forms[form_name].elements['search_entreprises_types_id'].value == "" && document.forms[form_name].elements['search_entreprises_print_types_id'].value == "" && document.forms[form_name].elements['search_entreprises_products_id'].value == "" ) {
					alert( getTxt( 'FIELD_REQUIRED' ) );
					return false;
	}
	else
	{

		 document.forms[form_name].submit();
		
	}

}


function Check_Field( form_name, fieldname ){
		
	if( document.forms[form_name].elements[fieldname].value == "" ) {
					alert( getTxt( 'FIELD_REQUIRED' ) );
					document.forms[form_name].elements[fieldname].focus();
					return false;
	}
	else
	{

		 document.forms[form_name].submit();
		
	}

}


function Check_Subscribe_Form( form_name ){
		
	if( !isEmail(document.forms[form_name].elements['email'].value) ) {
					alert( getTxt( 'MSG_EMAIL' ) );
					document.forms[form_name].elements['email'].focus();
					return false;
	}
	else
	{

		 document.forms[form_name].submit();
		
	}

}


function Check_Login_Form( form_name ){
		
 if( document.forms[form_name].elements['username'].value == "" ){
					alert( getTxt( 'MSG_EMPTY_USERNAME' ) );
					document.forms[form_name].elements['username'].focus();
					return false;
	}
 if( document.forms[form_name].elements['password'].value == "" ){
					alert( getTxt( 'MSG_EMPTY_PASSWORD' ) );
					document.forms[form_name].elements['password'].focus();
					return false;
	}

document.forms[form_name].submit();

}







function Check_Job_Offer_Form( form_name ){
		
	if( !isEmail(document.forms[form_name].elements['email'].value) ) {
			alert( getTxt( 'MSG_EMAIL' ) );
			document.forms[form_name].elements['email'].focus();
			return false;
	}
		
 if( document.forms[form_name].elements['title_fr'].value == "" ){
					alert( getTxt( 'MSG_EMPTY_TITLE_FR' ) );
					document.forms[form_name].elements['title_fr'].focus();
					return false;
	}
 if( document.forms[form_name].elements['title_en'].value == "" ){
					alert( getTxt( 'MSG_EMPTY_TITLE_EN' ) );
					document.forms[form_name].elements['title_en'].focus();
					return false;
	}

document.forms[form_name].submit();

}





function Check_Applicant_Form( form_name ){
		
 if( document.forms[form_name].elements['first_name'].value == "" ){
					alert( getTxt( 'MSG_EMPTY_FIRST_NAME' ) );
					document.forms[form_name].elements['first_name'].focus();
					return false;
	}
 if( document.forms[form_name].elements['last_name'].value == "" ){
					alert( getTxt( 'MSG_EMPTY_LAST_NAME' ) );
					document.forms[form_name].elements['last_name'].focus();
					return false;
	}
 if( !isEmail(document.forms[form_name].elements['email'].value) ) {
					alert( getTxt( 'MSG_EMAIL' ) );
					document.forms[form_name].elements['email'].focus();
					return false;
	}
	if ( document.forms[form_name].elements['password'] ){
			if( document.forms[form_name].elements['password'].value == "" ){
							alert( getTxt( 'MSG_EMPTY_PASSWORD' ) );
							document.forms[form_name].elements['password'].focus();
							return false;
			}
	}
 if( document.forms[form_name].elements['cv'] && document.forms[form_name].elements['cv'].value != "" ){
				extArray = new Array(".doc",".docx",".pdf"); // allowed extensions								
				if ( !Check_Extensions_Filter(form_name, document.forms[form_name].elements['cv'].value, getTxt( 'MSG_WRONG_FILE_TYPE' ) + extArray )){
				return false;
				}								
	}									
 if( document.forms[form_name].elements['letter'] && document.forms[form_name].elements['letter'].value != "" ){
				extArray = new Array(".doc",".docx",".pdf"); // allowed extensions								
				if ( !Check_Extensions_Filter(form_name, document.forms[form_name].elements['letter'].value, getTxt( 'MSG_WRONG_FILE_TYPE' ) + extArray )){
				return false;
				}								
	}						
document.forms[form_name].submit();

}





//-------------------------------------- MUTUAL REGISTRATION --------------------------------------- //

function Check_Mutual_Registration( form_name ){

 
  
    if( document.forms[form_name].elements['entreprise'].value == "" ){
    	alert( getTxt( 'MSG_EMPTY_ENTREPRISE' ) );
    	document.forms[form_name].elements['entreprise'].focus();
    	return false;
    }
    
    if( document.forms[form_name].elements['adresse'].value == "" ){
    	alert( getTxt( 'MSG_EMPTY_ADDRESS' ) );
    	document.forms[form_name].elements['adresse'].focus();
    	return false;
    }
    
    if( document.forms[form_name].elements['ville'].value == "" ){
    	alert( getTxt( 'MSG_EMPTY_CITY' ) );
    	document.forms[form_name].elements['ville'].focus();
    	return false;
    }
    
    if( document.forms[form_name].elements['code_postal'].value == "" ){
    	alert( getTxt( 'MSG_EMPTY_POSTAL_CODE' ) );
    	document.forms[form_name].elements['code_postal'].focus();
    	return false;
    }
    
    
    if( document.forms[form_name].elements['telephone'].value == "" ){
    	alert( getTxt( 'MSG_EMPTY_PHONE' ) );
    	document.forms[form_name].elements['telephone'].focus();
    	return false;
    }
    
    
    if( document.forms[form_name].elements['contact'].value == "" ){
    	alert( getTxt( 'MSG_EMPTY_CONTACT' ) );
    	document.forms[form_name].elements['contact'].focus();
    	return false;
    }
    
    if( document.forms[form_name].elements['courriel'].value != '' && !isEmail(document.forms[form_name].elements['courriel'].value) ) {
    		alert( getTxt( 'MSG_EMAIL' ) );
    		document.forms[form_name].elements['courriel'].focus();
    		return false;
    }
    
    if( document.forms[form_name].elements['code'].value == "" ){
    	alert( getTxt( 'MSG_EMPTY_CODE' ) );
    	document.forms[form_name].elements['code'].focus();
    	return false;
    }
    
    var resp = Check_Code( document.forms[form_name].elements['code'].value );
    
    if( resp != "1" ){
     	alert( getTxt( 'MSG_EMPTY_INVALID_CODE' ) );
     	document.forms[form_name].elements['code'].focus();
     	return false;
    }
    
    document.forms[form_name].submit();
    return true;
}









// ------------------------------------------- ENTREPRISE ACCOUNT ---------------------------------------------- //

function Check_Entreprise_Form( form_name ){
	
	var ok = true; // to bypass validation
	
	if ( ok ){
		
			if( document.forms[form_name].elements['entreprise'].value == "" ){
				alert( getTxt( 'MSG_EMPTY_ENTREPRISE' ) );
				document.forms[form_name].elements['entreprise'].focus();
				return false;
			}
			
			if( document.forms[form_name].elements['entreprises_types_id'].value == "" ){
				alert( getTxt( 'MSG_CHOOSE_TYPE' ) );
				document.forms[form_name].elements['entreprises_types_id'].focus();
				return false;
			}
			
			if( document.forms[form_name].elements['address'].value == "" ){
				alert( getTxt( 'MSG_EMPTY_ADDRESS' ) );
				document.forms[form_name].elements['address'].focus();
				return false;
			}
			
			if( document.forms[form_name].elements['city'].value == "" ){
				alert( getTxt( 'MSG_EMPTY_CITY' ) );
				document.forms[form_name].elements['city'].focus();
				return false;
			}
		
			if( document.forms[form_name].elements['province'].value == "" ){
				alert( getTxt( 'MSG_EMPTY_PROVINCE' ) );
				document.forms[form_name].elements['province'].focus();
				return false;
			}
			
			if( document.forms[form_name].elements['postal_code'].value == "" ){
				alert( getTxt( 'MSG_EMPTY_POSTAL_CODE' ) );
				document.forms[form_name].elements['postal_code'].focus();
				return false;
			}
			
			if( document.forms[form_name].elements['country'].value == "" ){
				alert( getTxt( 'MSG_EMPTY_COUNTRY' ) );
				document.forms[form_name].elements['country'].focus();
				return false;
			}
			
			if( document.forms[form_name].elements['phone'].value == "" ){
				alert( getTxt( 'MSG_EMPTY_PHONE' ) );
				document.forms[form_name].elements['phone'].focus();
				return false;
			}
			
			if( document.forms[form_name].elements['email'].value != '' && !isEmail(document.forms[form_name].elements['email'].value) ) {
					alert( getTxt( 'MSG_EMAIL' ) );
					document.forms[form_name].elements['email'].focus();
					return false;
			}
	
			if( document.forms[form_name].elements['username'].value == "" ){
				alert( getTxt( 'MSG_EMPTY_USERNAME' ) );
				document.forms[form_name].elements['username'].focus();
				return false;
			}
			
			if( document.forms[form_name].elements['password'].value == "" ){
				alert( getTxt( 'MSG_EMPTY_PASSWORD' ) );
				document.forms[form_name].elements['password'].focus();
				return false;
			}
	
	}
	
	document.forms[form_name].submit();

}


 
function Check_Help_Form( form_name ){
		
 if( document.forms[form_name].elements['first_name'].value == "" ){
					alert( getTxt( 'MSG_EMPTY_FIRST_NAME' ) );
					document.forms[form_name].elements['first_name'].focus();
					return false;
	}
 if( document.forms[form_name].elements['last_name'].value == "" ){
					alert( getTxt( 'MSG_EMPTY_LAST_NAME' ) );
					document.forms[form_name].elements['last_name'].focus();
					return false;
	}
if( !isEmail(document.forms[form_name].elements['email'].value) ) {
					alert( getTxt( 'MSG_EMAIL' ) );
					document.forms[form_name].elements['email'].focus();
					return false;
	}

document.forms[form_name].submit();

}



//  **************             NETQUIZ            **************************

function Validate_Netquiz_Login() {
	
 if ( document.forms['frm_netquiz'].username.value == '' ) {
		document.forms['frm_netquiz'].username.focus();
		return false;
	}
	
 if ( document.forms['frm_netquiz'].password.value == '' ) {
		document.forms['frm_netquiz'].password.focus();
		return false;
	}
	
	document.forms['frm_netquiz'].form_name.value = 'netquiz_login';
	return true;
	
}


function Validate_Netquiz_Inscription() {
	
	if ( document.forms['frm_netquiz'].first_name.value == '' ) {
		alert( getTxt( 'MSG_EMPTY_FIRST_NAME' ));
		document.forms['frm_netquiz'].first_name.focus();
		return false;
	}
	if ( document.forms['frm_netquiz'].last_name.value == '' ) {
		alert( getTxt( 'MSG_EMPTY_LAST_NAME' ));
		document.forms['frm_netquiz'].last_name.focus();
		return false;
	}
	if ( document.forms['frm_netquiz'].employer.value == '' ) {
		alert( getTxt( 'MSG_EMPTY_EMPLOYER' ));
		document.forms['frm_netquiz'].employer.focus();
		return false;
	}
	if ( document.forms['frm_netquiz'].region.value == '' ) {
		alert( getTxt( 'MSG_EMPTY_REGION' ));
		document.forms['frm_netquiz'].region.focus();
		return false;
	}
	if ( !isEmail(document.forms['frm_netquiz'].email.value) ) {
		alert( getTxt( 'MSG_INVALID_EMAIL' ));
		document.forms['frm_netquiz'].email.focus();
		return false;
	}
	if ( document.forms['frm_netquiz'].netquiz_pamt_id.value == '' ) {
		alert( getTxt( 'MSG_CHOOSE_A_PAMT' ));
		document.forms['frm_netquiz'].netquiz_pamt_id.focus();
		return false;
	}
		
	document.forms['frm_netquiz'].form_name.value = 'netquiz_inscription';
	return true;
}





// checks file extension type
function Check_Extensions_Filter( form, file, msg ) {
		allowSubmit = false;
		while (file.indexOf("\\") != -1){
			file = file.slice(file.indexOf("\\") + 1);
		}
		ext = file.slice(file.indexOf(".")).toLowerCase();
		for (var i = 0; i < extArray.length; i++) {
			if (extArray[i] == ext) { allowSubmit = true;}
		}
		if (allowSubmit){
			return true; 
		}
		else 
		{
			alert(msg);
			return false;
		}

}
