var isNav = navigator.appName.indexOf("Netscape") !=-1;var isN6 = ((isNav) && (document.getElementById));
var isMac = navigator.appVersion.indexOf("Macintosh") !=-1;
var isIE = document.all;
var isIEPC = ((isIE) && (!(isMac)))
var Egale = '=';
var bo_several_checked=false;

function OuvreFenetre(URL,NomControle,Largeur,Hauteur,AffScrollBars)
{
	if (AffScrollBars!="no") AffScrollBars='yes';
	Top = screen.height/2-Hauteur/2 
	Gauche = screen.width/2-Largeur/2
	var popup = window.open(URL, NomControle, "toolbar=no,status=no,menubar=no,scrollbars=" + AffScrollBars + ",resizable=no,directories=no,location=no,width=" + Largeur + ",height=" + Hauteur +",top=" + Top + ",left=" + Gauche)
}

function LoadProvince(Prov,Region)
{
	
	//var TabRegion = Region!='' ? Region.split(/,/) : '';
	if (Prov!='')
	{
		var TabProv = Prov.split(",");	
		for (i=0;i<TabProv.length;i++)
		{
			CheckProvince(TabProv[i]);
		}
	}
	AddProvince();
	if (Region!='')
	{
		var TabRegion = Region.split(",");	
		for (n=0;n<TabRegion.length;n++)
		{
			CheckRegion(TabRegion[n]);
		}
	}
}

function Desactive_Bouton(theform,btn,texte_replace)
{
	if (document.all || document.getElementById)
	{
		/*for (i = 0; i < theform.length; i++)
		{
			var tempobj = theform.elements[i];
			if (tempobj.type.toLowerCase() == "submit" || tempobj.type.toLowerCase() == "reset")
			{
				tempobj.disabled = true;
				tempobj.value="Please wait...";
			}
		}*/
		
		btn.disabled = true;
		//if (texte_replace!='') btn.value = texte_replace;
		
		if (document.all)
		{
			if (eval(theform.id + ".bo_form_soumis"))
				{eval(theform.id + ".bo_form_soumis.value='true';");}
		}
		else
		{
			if (document.getElementById('bo_form_soumis'))
			{
				document.getElementById('bo_form_soumis').value='true';
			}
		}
		theform.submit();
	}
}

function CheckProvince(Id_Province)
{
	var Ctrl =  document.formadsjw.prov;
	for (var k=0;k<Ctrl.length;k++)
	{
		if ((Ctrl[k].value==Id_Province)||(' '+Ctrl[k].value==Id_Province))
		{
			Ctrl[k].checked=true;
			return;
		}
	}
}

function ChangeClass(Ctrl,strClass)
{
	if (Ctrl.className != "SubMenu_Open") {	Ctrl.className = strClass;}
}

function CheckRegion(Id_Region)
{
	var Ctrl =  document.formadsjw.region;
	for (var j=0;j<Ctrl.options.length;j++)
	{
		if ((Ctrl.options[j].value==Id_Region)||(' '+Ctrl.options[j].value==Id_Region))
		{
			Ctrl.options[j].selected=true;
			return;
		}
	}
	
}

function HiLite(imgN,PathImage2,Extension)
{
		eval("document [imgN].src = \"/images/" + PathImage2 + imgN + "_" + Extension + ".gif\"");
}

function trim(inputString) {
   // Removes leading and trailing spaces from the passed string. Also removes
   // consecutive spaces and replaces it with one space. If something besides
   // a string is passed in (null, custom object, etc.) then return the input.
   if (typeof inputString != "string") { return inputString; }
   var retValue = inputString;
   var ch = retValue.substring(0, 1);
   while (ch == " ") { // Check for spaces at the beginning of the string
      retValue = retValue.substring(1, retValue.length);
      ch = retValue.substring(0, 1);
   }
   ch = retValue.substring(retValue.length-1, retValue.length);
   while (ch == " ") { // Check for spaces at the end of the string
      retValue = retValue.substring(0, retValue.length-1);
      ch = retValue.substring(retValue.length-1, retValue.length);
   }
   while (retValue.indexOf("  ") != -1) { // Note that there are two spaces in the string - look for multiple spaces within the string
      retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length); // Again, there are two spaces in each of the strings
   }
   return retValue; // Return the trimmed string back to the user
} // Ends the "trim" function




ValeurMax=-1;

if (isN6){	h=".left";	v=".top";	dS="document.getElementById('";	sD="').style";
	appComp = "true";
	Hauteur = "').offsetHeight";
	ECRIRE = "').innerHTML=";
	VISIBLE = ".visibility='visible'";	Unite_Pixel = "px";}else {	if (isNav)
	{		h=".left";		v=".top";
		dS="document.";		sD="";
		appComp = "true";
		Hauteur = ".document.height";		VISIBLE = ".visibility='show'";
		Unite_Pixel = "px";
	}	else	{
		h=".pixelLeft";		v=".pixelTop";
		dS="";		sD=".style";
		appComp = "true";
		Hauteur = ".offsetHeight";
		ECRIRE = ".innerHTML=";
		VISIBLE = ".visibility='visible'";		Unite_Pixel = "";	}}

function AfficheLayer(Layer,x,y)
{
	eval(dS+Layer+sD+v+Egale+y);
	eval(dS+Layer+sD+h+Egale+x);
}

function efface(text_defaut,ctrl)
{
	
	if (text_defaut.value==ctrl.value)
	{
		ctrl.value='';
		ctrl.focus();
	}
}

function RTB_ClearMSWord(editor)
{
	editor = editor.contentWindow ? editor.contentWindow : editor;
	
	editor.focus();

	//on vire tous les CSS
	var body = editor.document.body //? editor.document.body ;
	var TagsArray = body.all ? body.all : body.getElementsByTagName("*");
	
	for (var index = 0; index < TagsArray.length; index++)
	{
		tag = TagsArray[index];
		tag.removeAttribute("className","",0);
		tag.removeAttribute("class","",0);
		tag.removeAttribute("style","",0);
	}

	// Regex based cleaning
	var html = editor.document.body.innerHTML;
	
	//gestion des tags ms-word
	html = html.replace(/<o:p>&nbsp;<\/o:p>/gi, "");
	html = html.replace(/<st1:.*?>/gi, "");
	
	//gestion des tags mozilla
	html = html.replace(/\<!--.+--\>/gi, "");
	


	html = html.replace(/<(\/)?((DIV)|(SPAN)|(O:P)|(FONT))( (([^>])+)>|>)/gi, "");

	//gestion des paragraphes
	html = html.replace(/<P>(&nbsp;)*<\/P>/gi, "");
		
	//gestion des entêtes
	html = html.replace(/<H(1|2|3|4|5|6)( (([^>])+)>|>)/gi, "<p><b>");
	html = html.replace(/<\/H(1|2|3|4|5|6)( (([^>])+)>|>)/gi, "</b></p>");
	
	//gestion des tags IE
	html = html.replace(/<(\/)?(STRONG)( (([^>])+)>|>)/gi, "<$1B>");
	html = html.replace(/<(\/)?(EM)( (([^>])+)>|>)/gi, "<$1I>");
	
	//gestion des bullets
	html = html.replace(/<p>(·|Ø|§|-)(&nbsp;)*(([^>])+)<\/p>/gi, "<ul><li>$3</li></ul>");	
	html = html.replace(/<\/ul>\s*<ul>/gi, "");	
	
	
	//gestion des italiques inutiles
	html = html.replace(/<U>(&nbsp;)*<\/U>/gi, "");
	
	//gestion des paragraphes inutiles créés 
	//lors des remplacements des headers ou autres
	html = html.replace(/<P>(<[^>]*>)*(&nbsp;)*(<[^>]*>)*<\/P>/gi,"");
	
	editor.document.body.innerHTML = html;
										
}

function Mozilla_OnPaste_Handler(e,editor)
{
	var oEvent = (window.event) ? window.event : e;
	var nKeyCode = oEvent.keyCode ? oEvent.keyCode : oEvent.which ? oEvent.which : void 0;
	var sChar = String.fromCharCode(nKeyCode).toLowerCase();
	var bCtrlPressed = (oEvent.ctrlKey) ? oEvent.ctrlKey : oEvent.modifiers & 2 > 0;
	
	if (bCtrlPressed && sChar=="v")
	{
		setTimeout("RTB_ClearMSWord(editor);",50);
	}
	
}

// déclenche la capture du Control-V
function Set_RTB_CleanMS_Word(editor)
{
	if (document.all)
		editor.contentWindow.document.body.onpaste = function() {setTimeout("RTB_ClearMSWord(editor);",50);};
	else
		editor.contentWindow.addEventListener('keypress', function(e) {	Mozilla_OnPaste_Handler(e,editor);}, true);
}								

function is_one_checked(str)
{
	var field = document.forms[0].chk_commande;
	if (typeof(field[0])!="undefined")
	{
		for (i = 0; i < field.length; i++)
		{
			if (field[i].checked)
			{
				return true;
			}
		}
		alert(str);
		return false;
	}
	else
	{
		if (!field.checked)
		{
			alert(str);
			return false;
		}
		else
			return true;
	}
}

function is_several_checked(str)
{
	var field = document.forms[0].chk_commande;
	var cpt=0;
	if (typeof(field[0])!="undefined")
	{
		for (i = 0; i < field.length; i++)
		{
			if (field[i].checked)
				cpt+=1;
		}
		
		if (cpt>1)
		{
			alert(str);
			return true;
		}
		else
			return false;
	}
	else
		return false;
}

function checkall(ctrl)
{
	var bo_checked = ctrl.checked ? true : false;
	var field = document.forms[0].chk_commande;
	if (typeof(field[0])!="undefined")
	{
		for (i = 0; i < field.length; i++)
		{
			field[i].checked = bo_checked;
		}
	}
	else
	{
		field.checked = bo_checked;
	}
}

function change_statut(mode,str_1,str_2)
{
	switch(mode)
	{ 
		case "active" :
						if (!is_one_checked(str_1)) return false;
						if (is_several_checked(str_2)) return false;
						break;
		case "archive" :
						if (!is_one_checked(str_1)) return false;
						break;
		case "delete" :
						if (!is_one_checked(str_1)) return false; else if (!confirm(str_2)) return false;
						break;
		case "change_statut" :
					if (!is_one_checked(str_1)) return false;
					break;
	}
	
	document.forms[0].Mode_Statut.value = mode;
	document.forms[0].submit();
}

function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}



function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}

function popup_menu(td_parent,ctrl)
{
	var objTD = eval("document.getElementById('" + td_parent + "')")
	if (eval(dS + ctrl + sD + v + Egale + Egale + "'-500" + Unite_Pixel + "'"))
	{
		var _x = findPosX(objTD)-(objTD.tagName=='A'? 2 : 0);
		var _y = findPosY(objTD);
		var _h = eval(objTD.offsetHeight);
		AfficheLayer(ctrl,_x,_y+_h);
	}
	else
	{
		AfficheLayer(ctrl,-500,-500);
	}
}
function rafraichir(id,boNow,boAutorefresh) {
    var url = "/ajax/refresh.aspx"
    var bo_sectioncarriere = $("linkCS") ? true : false;
    var optionDaysAutoRefresh = $("nb_jour_refresh");
    var nbDaysAutoRefreshForThisJob = $("hidden_nb_jour_refresh_" + id).value == "" ? 0 : $("hidden_nb_jour_refresh_" + id).value;
    var nbDaysAutoRefreshWanted = boAutorefresh ? optionDaysAutoRefresh.options[optionDaysAutoRefresh.selectedIndex].value : -1;
    var nbDaysRefreshDiff = boAutorefresh ?  (nbDaysAutoRefreshWanted - nbDaysAutoRefreshForThisJob) : (boNow ? 0 : 21);
    
    var dateJob = $("hidden_date_refresh_" + id).value;
    var td = $('td_date_refresh' + id);
    
    td.innerHTML = "<img src='/images/wheel.gif' height='20' width='20' />";
        
    new Ajax.Request(url, {
          method: 'POST',
          parameters: 'oId=' + id + '&nJrAR=' + nbDaysAutoRefreshWanted + '&nJrDiff=' + nbDaysRefreshDiff + '&d=' + dateJob + '&bSc=' + bo_sectioncarriere,
          onSuccess: function(response) {
            var td = $('td_date_refresh' + id);
            var jsonResponse = response.responseJSON;
            if (jsonResponse.error=="false") {
                td.innerHTML  = jsonResponse.dateText;
                $("hidden_date_refresh_" + id).value = jsonResponse.dateValue ;
            }
            else
                td.innerHTML  = "error";
                   
            var field = document.forms[0].chk_commande;
            
            if (typeof(field[0])!="undefined")
			{
				for (var i = 0; i < field.length; i++)
				{
					children = $('td_date_refresh' + field[i].value).childNodes[$('td_date_refresh' + field[i].value).childNodes.length - 1];
					if  (children.tagName == "IMG") return false;
				}
				location.href = '/employeur/compte.aspx';
			}
			else
			{
				location.href = '/employeur/compte.aspx';
            }
     
        }});

    
}

function check_date_refresh(str_no_checked,str_no_refresh)
{
	var now = new Date();
	var leform = document.forms[0];
	var aujourdhui = new Date(now.getFullYear(),now.getMonth(),now.getDate());
	var date_poste,date_minimum,titre_poste;
	var cpt_OK=0,cpt_NO_GOOD=0;
	var Tab_OK = new Array;
	var Tab_NO_GOOD = new Array;
	var bo_affiche_no_good =false;
	var field = leform.chk_commande;
	var bo_submit = false;
	var bo_autorefresh = !document.getElementById('chk_choix_refresh_now').checked;
	var boGood = false;
	
		if (is_one_checked(str_no_checked))
		{
	        $("submit_refresh").value  = "Patientez ..." ;
	        $("submit_refresh").disabled = true;
	
			if (typeof(field[0])!="undefined")
			{
				for (var i = 0; i < field.length; i++)
				{
					if (field[i].checked)
					{
						date_poste = new Date(eval("leform.hidden_date_refresh_" + field[i].value + ".value"));
						
						if (DateDiff(date_poste,aujourdhui,"d") < 21)
							Tab_NO_GOOD[cpt_NO_GOOD++]=field[i].value;
                        else
                        {
                            rafraichir(field[i].value,true,bo_autorefresh);boGood=true;}
					}
				}
			}
			else
			{
				if (field.checked)
				{
					date_poste = new Date(eval("leform.hidden_date_refresh_" + field.value + ".value"));
					
					if (DateDiff(date_poste,aujourdhui,"d") < 21)
						Tab_NO_GOOD[cpt_NO_GOOD++]=field.value;
                    else {
                        rafraichir(field.value,true,bo_autorefresh);boGood=true;}
				}
			}
						
			
			if (Tab_NO_GOOD.length>0)
			{
				if (!bo_autorefresh) {
				    if (confirm(str_no_refresh)) 
				        for (i=0;i<Tab_NO_GOOD.length;i++)
				            rafraichir(Tab_NO_GOOD[i],false,bo_autorefresh);//leform.postes_no_good.value += ',' + Tab_NO_GOOD[i];
                    else
                        if (!boGood) location.href = '/employeur/compte.aspx';			            
                }
                else
                    for (i=0;i<Tab_NO_GOOD.length;i++)
				        rafraichir(Tab_NO_GOOD[i],false,bo_autorefresh);//leform.postes_no_good.value += ',' + Tab_NO_GOOD[i];
				    
			    
			
		    }
	    }
	
	
//	if (bo_submit) leform.submit();
	
}

function DateDiff( start, end, interval, rounding ) {

    var iOut = 0;
    
    // Create 2 error messages, 1 for each argument. 
    var startMsg = "Check the Start Date and End Date\n"
        startMsg += "must be a valid date format.\n\n"
        startMsg += "Please try again." ;
		
    var intervalMsg = "Sorry the dateAdd function only accepts\n"
        intervalMsg += "d, h, m OR s intervals.\n\n"
        intervalMsg += "Please try again." ;

    var bufferA = Date.parse( start ) ;
    var bufferB = Date.parse( end ) ;
    	
    // check that the start parameter is a valid Date. 
    if ( isNaN (bufferA) || isNaN (bufferB) ) {
        //alert( startMsg ) ;
        return null ;
    }
	
    // check that an interval parameter was not numeric. 
    if ( interval.charAt == 'undefined' ) {
        // the user specified an incorrect interval, handle the error. 
        //alert( intervalMsg ) ;
        return null ;
    }
    
    var number = bufferB-bufferA ;
    
    // what kind of add to do? 
    switch (interval.charAt(0))
    {
        case 'd': case 'D': 
            iOut = parseInt(number / 86400000) ;
            if(rounding) iOut += parseInt((number % 86400000)/43200001) ;
            break ;
        case 'h': case 'H':
            iOut = parseInt(number / 3600000 ) ;
            if(rounding) iOut += parseInt((number % 3600000)/1800001) ;
            break ;
        case 'm': case 'M':
            iOut = parseInt(number / 60000 ) ;
            if(rounding) iOut += parseInt((number % 60000)/30001) ;
            break ;
        case 's': case 'S':
            iOut = parseInt(number / 1000 ) ;
            if(rounding) iOut += parseInt((number % 1000)/501) ;
            break ;
        default:
        // If we get to here then the interval parameter
        // didn't meet the d,h,m,s criteria.  Handle
        // the error. 		
        //alert(intervalMsg) ;
        return null ;
    }
    
    return iOut ;
}


/* fonctions qui aident dans la vie */
function isArray(a) {
    return isObject(a) && a.constructor == Array;
}

function isBoolean(a) {
    return typeof a == 'boolean';
}

function isEmpty(o) {
    var i, v;
    if (isObject(o)) {
        for (i in o) {
            v = o[i];
            if (isUndefined(v) && isFunction(v)) {
                return false;
            }
        }
    }
    return true;
}

function isFunction(a) {
    return typeof a == 'function';
}

function isNull(a) {
    return typeof a == 'object' && !a;
}

function isNumber(a) {
    return typeof a == 'number' && isFinite(a);
}

function isObject(a) {
    return (a && typeof a == 'object') || isFunction(a);
}

function isString(a) {
    return typeof a == 'string';
}

function isUndefined(a) {
    return typeof a == 'undefined';
} 


