
// CONSTANTS FOR HTTL URL PARAMETERS
var C_PARAM_BUTTONNAME    = "a";
var C_PARAM_EVENT         = "b";
var C_PARAM_DATE          = "c";
var C_PARAM_LANGUAGE_CODE = "l";
var C_PARAM_LOCKDATELIST  = "d";

// OTHER CONSTANTS
C_DEFAULT_LANGUAGE_CODE = "fr";

var IS_IE = navigator.appVersion.indexOf("MSIE") != -1;
//var IS_IE_5 = (document.all && document.getElementById) != top.undefined;
var IS_IE_5 = ((document.all)&&(navigator.appVersion.indexOf("MSIE 5.") != -1));
var IS_IE_6 = ((document.all)&&(navigator.appVersion.indexOf("MSIE 6.") != -1));
var IS_IE_7 = ((document.all)&&(navigator.appVersion.indexOf("MSIE 7.") != -1));
var IS_IE_8 = ((document.all)&&(navigator.appVersion.indexOf("MSIE 8.") != -1));
var IS_NS_6 = (!document.all && document.getElementById);
var IS_OPERA = navigator.appName.indexOf("Opera") != -1;

var BROWSER_VERSION = (!IS_IE) ? parseFloat(navigator.appVersion) : parseFloat(navigator.appVersion.substring(navigator.appVersion.indexOf("MSIE")+"MSIE".length));

// GLOBAL VARIABLES
var bgFaderOpacityCounter;
var bgFaderIntervalHandle;
var formFaderOpacityCounter;
var formFaderIntervalHandle;
var formHeightCounter;
var formHeightIntervalHandle;

var g_emails = new Array();
g_emails['pf'] = 'agence@pierrefeu-immo.com';
g_emails['am'] = 'amplepuis@pierrefeu-immo.com';
g_emails['or'] = 'agence@oriol-immo.com';
g_emails['ti'] = 'agence@tourimmo.com';

function getUrlParameter(paramName)
{
    paramsString = self.location.search;
    pos = paramsString.indexOf(paramName);
    if (pos == -1)
        return null;

    // REMOVE THE PIECE BEFORE THE PARAM
    paramsString = paramsString.slice(pos);

    // REMOVE THE PIECE AFTER THE PARAM VALUE
    pos = paramsString.indexOf('&');
    if (pos != -1)
        paramsString = paramsString.slice(0, pos);

    // EXTRACT THE PARAM VALUE
    pos = paramsString.indexOf('=');
    paramsString = paramsString.slice(pos+1);

    // RETURN THE FINAL VALUE
    return paramsString;
}


function storeDemoAccessCookie(form)
{
    setCookie('demoAccessFormFilledUp', 'true', 90);
    setCookie('NAME', form.NAME.value, 90);
    setCookie('COMPANY', form.COMPANY.value, 90);
    setCookie('TELEPHONE', form.TELEPHONE.value, 90);
    setCookie('email', form.replyemail.value, 90);
}


function getCookie(NameOfCookie)
{
    if (document.cookie.length > 0) {

        begin = document.cookie.indexOf(NameOfCookie+"=");
        if (begin != -1) {
            begin += NameOfCookie.length+1;

            end = document.cookie.indexOf(";", begin);
            if (end == -1)
                end = document.cookie.length;

            return unescape(document.cookie.substring(begin, end));
        }
    }
  
    return null;
}


function setCookie(NameOfCookie, value, expiredays)
{
    var ExpireDate = new Date();
    ExpireDate.setTime(ExpireDate.getTime() + (expiredays * 24 * 3600 * 1000));
    document.cookie = NameOfCookie + "=" + escape(value) + ((expiredays == null) ? "" : "; expires=" + ExpireDate.toGMTString() + "; path=/");
}


function delCookie(NameOfCookie)
{
    if (getCookie(NameOfCookie))
        document.cookie = NameOfCookie + "=" + "; expires=Thu, 01-Jan-70 00:00:01 GMT";
}


/* CROSS-BROWSER INNER WIDTH & HEIGHT */
function viewport()
{
  var x,y;
  
  // all except Explorer.
  if (self.innerHeight) {
    x = self.innerWidth;
    y = self.innerHeight;
  }
  else
  // Explorer 6 Strict Mode.
  if (document.documentElement && document.documentElement.clientHeight) {
    x = document.documentElement.clientWidth;
    y = document.documentElement.clientHeight;
  }
  else
  // other Explorers.
  if (document.body) {
    x = document.body.clientWidth;
    y = document.body.clientHeight;
  }
  
  return {width: x, height: y};
}


/* CROSS-BROWSER SCROLLING OFFSET */
function scrolling()
{
  var x,y;
  
  // all except Explorer.
  if (self.pageYOffset) {
    x = self.pageXOffset;
    y = self.pageYOffset
  }
  else
  // Explorer 6 Strict Mode.
  if (document.documentElement && document.documentElement.scrollTop) { 
    x = document.documentElement.scrollLeft;
    y = document.documentElement.scrollTop;
  }
  else
  // other Explorers.
  if (document.body) { 
    x = document.body.scrollLeft;
    y = document.body.scrollTop;
  }
  
  return {XOffset: x, YOffset: y};
}


/* CROSS-BROWSER PAGE HEIGHT */
function page()
{
  var x,y;
  var test1 = document.body.scrollHeight;
  var test2 = document.body.offsetHeight
  
  // all but Explorer Mac.
  if (test1 > test2) {
    x = document.body.scrollWidth;
    y = document.body.scrollHeight;
  }
  // Explorer Mac;
  // would also work in Explorer 6 Strict, Mozilla and Safari.
  else {
    x = document.body.offsetWidth;
    y = document.body.offsetHeight;
  }
  
  return {width: x, height: y};
}


function switchLanguage(langCode)
{
  langCode = langCode || 'en'; 
  
  if (langCode == 'en')
    document.location.href = document.location.href.replace('/fr/', '/en/');
  else
  if (langCode == 'fr')
    document.location.href = document.location.href.replace('/en/', '/fr/');
}


function delay(millis) 
{
  var date = new Date();
  var curDate = null;
  
  do { curDate = new Date(); } 
  while(curDate-date < millis);
}


function setDivOpacity(divId, opacity)
{
  if(IS_IE_5) document.getElementById(divId).filters.alpha.opacity = opacity;
  if(IS_NS_6) document.getElementById(divId).style.MozOpacity = opacity/100;
}


function setDivHeight(divId, height)
{
  document.getElementById(divId).style.height = height;
}


function fadeInDiv(isFadeIn, divId, opacitySteps, opacityThreshold, opacityCounterVarName, fadeIntervalHandleVarName)
{
  if (isFadeIn) {
    
    document.getElementById(divId).className = 'class_visible';
    
    if(eval(opacityCounterVarName) < opacityThreshold){
      eval(opacityCounterVarName + '+=' + opacitySteps);
      setDivOpacity(divId, eval(opacityCounterVarName));
    }
    // RESET OPAC VAR FOR NEXT USE.
    else {
      clearInterval(eval(fadeIntervalHandleVarName));
    }
  }
  else {
    if(eval(opacityCounterVarName) > opacityThreshold){
      eval(opacityCounterVarName + '-=' + opacitySteps);
      setDivOpacity(divId, eval(opacityCounterVarName));
    }
    // RESET OPAC VAR FOR NEXT USE.
    else {
      document.getElementById(divId).className = 'class_hidden';
      clearInterval(eval(fadeIntervalHandleVarName));
    }
  }
}


function rollDiv(divId, endHeight, step, divHeightCounterVarName, divHeightIntervalHandleVarName)
{
  eval(divHeightCounterVarName + '+=' + step);

  if ( (step > 0 && eval(divHeightCounterVarName) > endHeight) || (step < 0 && eval(divHeightCounterVarName) < endHeight)) {
    clearInterval(eval(divHeightIntervalHandleVarName));
    return;
  }
  
  setDivHeight(divId, eval(divHeightCounterVarName)+'em');
}

function hideDropDownLists(bool)
{
  if (IS_IE) {
    try {
      if (bool) {
        $('rechercheDeBiensForm_champ_typeDeBien').hide();
        $('biens_resultats_liste_tri').hide();
      }
      else {
        $('rechercheDeBiensForm_champ_typeDeBien').show();
        $('biens_resultats_liste_tri').show();
      }
    }
    catch (ex) {}
    
  }
}

function demandeDeRappelFormShow(bool)
{  
  if (bool == true) {
    hideDropDownLists(true);
    bgFaderOpacityCounter = 0;
    bgFaderIntervalHandle = setInterval('fadeInDiv(true, "fadedBackground", 20, 70, "bgFaderOpacityCounter", "bgFaderIntervalHandle")', 100);
    
    formFaderOpacityCounter = -50;
    formFaderIntervalHandle = setInterval('fadeInDiv(true, "demandeDeRappelFormDiv", 20, 100, "formFaderOpacityCounter", "formFaderIntervalHandle")', 50);
    
    setTimeout('try {if (!IS_IE) $("listeOffresDiv").hide();} catch(ex){};document.getElementById("demandeDeRappelForm_champ_nom").focus()', 1000);
    
    formHeightCounter = 0;
    formHeightIntervalHandle = setInterval("rollDiv('demandeDeRappelFormDiv', 38, 3, 'formHeightCounter', 'formHeightIntervalHandle')", 50);
  }
  else {
    
    try {if (!IS_IE) $("listeOffresDiv").show();} catch(ex){}
    setTimeout('hideDropDownLists(false)', 1000);
    bgFaderIntervalHandle = setInterval('fadeInDiv(false, "fadedBackground", 20, 0, "bgFaderOpacityCounter", "bgFaderIntervalHandle")', 100);

    formFaderIntervalHandle = setInterval('fadeInDiv(false, "demandeDeRappelFormDiv", 20, 0, "formFaderOpacityCounter", "formFaderIntervalHandle")', 100);

    formHeightIntervalHandle = setInterval("rollDiv('demandeDeRappelFormDiv', 0, -4, 'formHeightCounter', 'formHeightIntervalHandle')", 50);
  }
}


function demandeDeQuestionFormShow(bool, text, destEmail, subject, clientId, offreId)
{  
  if (text)
    $('demandeDeQuestionForm_champ_Question').value = text;
  
  if (destEmail)
    $('demandeDeQuestionForm_champ_destemail').value = destEmail;
    
  if (subject)
    $('demandeDeQuestionForm_champ_subject').value = subject;
    
  if (bool == true) {
    
    if (IS_IE_7) {
      window.location = '#';
      $('bodyElement').up().setStyle({overflow : 'hidden'});
      g_overrideOffreClientId = clientId;
      g_overrideOffreId = offreId;
    }
  
    hideDropDownLists(true);
    bgFaderOpacityCounter = 0;
    bgFaderIntervalHandle = setInterval('fadeInDiv(true, "fadedBackground", 20, 70, "bgFaderOpacityCounter", "bgFaderIntervalHandle")', 100);
    
    formFaderOpacityCounter = -50;
    formFaderIntervalHandle = setInterval('fadeInDiv(true, "demandeDeQuestionFormDiv", 20, 100, "formFaderOpacityCounter", "formFaderIntervalHandle")', 50);
    
    setTimeout('try {if (!IS_IE) $("listeOffresDiv").hide();} catch(ex){};document.getElementById("demandeDeQuestionForm_champ_nom").focus()', 1000);
    
    formHeightCounter = 0;
    formHeightIntervalHandle = setInterval("rollDiv('demandeDeQuestionFormDiv', 32, 3, 'formHeightCounter', 'formHeightIntervalHandle')", 50);
  }
  else {
    try {if (!IS_IE) $("listeOffresDiv").show();} catch(ex){}
    setTimeout('hideDropDownLists(false)', 800);
    bgFaderIntervalHandle = setInterval('fadeInDiv(false, "fadedBackground", 20, 0, "bgFaderOpacityCounter", "bgFaderIntervalHandle")', 100);

    formFaderIntervalHandle = setInterval('fadeInDiv(false, "demandeDeQuestionFormDiv", 20, 0, "formFaderOpacityCounter", "formFaderIntervalHandle")', 100);

    formHeightIntervalHandle = setInterval("rollDiv('demandeDeQuestionFormDiv', 0, -4, 'formHeightCounter', 'formHeightIntervalHandle')", 50);
    
    if (IS_IE_7) {
      $('bodyElement').up().setStyle({overflow : 'auto'});
      setTimeout('jumpToCurrentOffre(); g_overrideOffreClientId = null; g_overrideOffreId = null;', 1000);
    }
  
  }
}

function IE6FIX_footer_track()
{
  var documentObj;

  // FOR IE 6
  if (document.documentElement && document.documentElement.scrollTop)
    documentObj = document.documentElement;
  else
  // FOR IE 5
  if (document.body)
    documentObj = document.body;

  document.getElementById('footerDiv').style.top = 
    (documentObj.scrollTop + documentObj.clientHeight - 12) + 'px';
}

function mainPageOnLoadHandler()
{
  // FOOTER TRACKING FIX FOR IE 5 AND 6 ONLY.
  if (IS_IE_5 && !IS_IE_7) {
    document.getElementById('footerDiv').style.position = 'absolute';
    setInterval('IE6FIX_footer_track()', 20);
  }

  $('footerDiv').show();

  // HANDLES 
  if (getUrlParameter('msgid') == 'DemandeAppelEnvoyee')
    alert("Votre demande a bien été envoyée.\n\nMerci.");
  else
  if (getUrlParameter('msgid') == 'QuestionEnvoyee')
    alert("Votre question a bien été envoyée.\n\nMerci.");
  else
  if (getUrlParameter('msgid') == 'CandidatureEnvoyee') {
    alert("Votre candidature a bien été envoyée.\n\nMerci.");
    // RETOUR A LA PAGE DE GARDE.
    location.href = "/";
  }

  try {
    onLoadHandler();
  }
  catch (ex) {
  }
}


function noNumbers(e)
{
  var keynum;
  var keychar;
  var numcheck;
  
  if(window.event) // IE
    keynum = e.keyCode;
  else if(e.which) // Netscape/Firefox/Opera
    keynum = e.which;
  
  if (keynum == 8 || keynum == top.undefined)
    return true;
  
  keychar = String.fromCharCode(keynum);
  numcheck = /\d/;
  
  return !numcheck.test(keychar);
}



function noLetters(e)
{
  var keynum;
  var keychar;
  var numcheck;

  if(window.event) // IE
    keynum = e.keyCode;
  else if(e.which) // Netscape/Firefox/Opera
    keynum = e.which;
  
  if (keynum == 8 || keynum == top.undefined)
    return true;
  
  keychar = String.fromCharCode(keynum);
  numcheck = /\d/;
  
  //window.status = "e.which: " + e.which + " |a e.keyCode: " + e.keyCode + " | e.charCode: " + e.charCode + " | String.fromCharCode(e.which): " + String.fromCharCode(keynum);
  return numcheck.test(keychar) || (e.keyCode >= 96 && e.keyCode <= 105) ;
}


function preventLetterAndGetNbOfResults(e)
{
  if (noLetters(e) == true) {
    setTimeout('getNbResults()', 100);
    return true;
  }
  
  return false;
}


function browsePhotoOffre(clientId, offreId)
{
  g_overrideOffreClientId = clientId;
  g_overrideOffreId = offreId;
  
  new Ajax.Request(
    'biensalavente.php',
    { 
    asynchronous : false,
    method:'get', 
    parameters: { ff_action: 'setCurrentOffreInSessionOnly', offreAgId: clientId, offreId: offreId},
    onSuccess: function(transport){ /*alert(transport.responseText);*/ }
    });

//  new Ajax.Request(
//    'images.php',
//    { 
//    asynchronous : false,
//    method:'get', 
//    onSuccess: function(transport){ alert(transport.responseText); }
//    });

  $('bodyElement').setStyle({overflow: 'hidden'});
  
  if (IS_IE_7)
    $('bodyElement').up().setStyle({overflow : 'hidden'});

  // IE 8 AND BELOW
  if (IS_IE & BROWSER_VERSION <= 7) {
    $('photoBrowserTopBarDiv').setStyle({position: 'absolute', width: (viewport().width)+'px', top: '-6em', left: '-14em'});
    $('photoBrowserDiv').setStyle({top: '-4em', height: (viewport().height-40)+'px', width: (viewport().width)+'px'});
    $('photoBrowserFlashContentDiv').setStyle({height: (viewport().height-40)+'px'});
  }
  else {
    $('photoBrowserDiv').setStyle({height: (viewport().height)+'px', width: (viewport().width)+'px'});
  }

  // IE 8 AND UP
  if (IS_IE & BROWSER_VERSION >= 8) {
    $('photoBrowserFlashContentDiv').setStyle({right: '-16px'});
  }
  
//  setTimeout("$('photoBrowserFlashContentDiv').update('<object type=\"application/x-shockwave-flash\" data=\"../browser.swf\" width=\"100%\" height=\"100%\"><param name=\"movie\" value=\"../browser.swf\" /></object>')", 100);

  hideDropDownLists(true);
  try {
    $('rechercheDeBiensFormDiv').hide();
    $('logoTrefleDiv').hide();
    $('listeOffresDiv').hide();
  }
  catch (ex) {}

  var flashBgColor = '#A69581';
  $('photoBrowserDiv').show();
  $('photoBrowserTopBarDiv').show();
  $('photoBrowserFlashContentDiv').update('<object type=\"application/x-shockwave-flash\" bgcolor=\"'+flashBgColor+'\" data=\"../browser.swf\" width=\"100%\" height=\"100%\" wmode=\"opaque\"><param name=\"movie\" value=\"../browser.swf\" /><param name=\"bgColor\" value=\"'+flashBgColor+'\" /><param name=\"wmode\" value=\"opaque\" /></object>');
}


function closePhotoBrowser()
{
  hideDropDownLists(false);
  try {
    $('rechercheDeBiensFormDiv').show();
    $('logoTrefleDiv').show();
    $('listeOffresDiv').show();
  }
  catch (ex) {}
  
  $('photoBrowserDiv').hide();
  $('photoBrowserTopBarDiv').hide();
  
  $('photoBrowserFlashContentDiv').update('');
  $('bodyElement').setStyle({overflow: 'visible'});

  if (IS_IE_7)
    $('bodyElement').up().setStyle({overflow : 'auto'});

  setTimeout('jumpToCurrentOffre(); g_overrideOffreClientId = null; g_overrideOffreId = null;', 100);
}


function biensTriListe_Onchange_Handler(listObj, isListeInteret)
{
  if (isListeInteret)
    $('rechercheDeBiensForm_champ_showListeInteretOnly').value = 'true';
    
  $('rechercheDeBiensForm_champ_tri').value = listObj.value;
  $('rechercheDeBiensFormId').submit();
}


function offreToListeDinteret(clientId, offreId, doAdd)
{  
  var actionStr = doAdd ? 'addOffreToListeDinteret' : 'removeOffreToListeDinteret';
  
  new Ajax.Request(
    'biensalavente.php',
    { 
    asynchronous : false,
    method:'get', 
    parameters: { ff_action: actionStr, offreAgId: clientId, offreId: offreId},
    onSuccess: function(transport)
      {
        var offreIdsArray = transport.responseText.evalJSON(); 

        $('nbOffresDansListeDInteretSpan').update(offreIdsArray.length);

        if (offreIdsArray.length == 0)
          $('listeDInteretBlockSpan').hide();
        else
          $('listeDInteretBlockSpan').setStyle({display : 'block'});
      }
    });
}

var g_slideshowImgIndex = 0;
var g_slideshowImgHtmlArray;

function runSlideShow(imgDivId, imgHtmlArray, speed)
{
  if (imgHtmlArray != null)
    g_slideshowImgHtmlArray = imgHtmlArray;
    
  if (document.all) {
    $(imgDivId).style.filter="blendTrans(duration=2)";
    $(imgDivId).style.filter="blendTrans(duration=crossFadeDuration)";
    $(imgDivId).filters.blendTrans.Apply();
  }

  $(imgDivId).update(g_slideshowImgHtmlArray[g_slideshowImgIndex]);

  if (document.all)
    $(imgDivId).filters.blendTrans.Play();

  g_slideshowImgIndex = g_slideshowImgIndex + 1;

  if (g_slideshowImgIndex > (g_slideshowImgHtmlArray.length-1))
    g_slideshowImgIndex = 0;
  
  setTimeout('runSlideShow("' + imgDivId + '", null, ' + speed + ');', speed);
}


function showMentionsLegales()
{
  setDivOpacity('fadedBackground', 70);
  $('fadedBackground').toggleClassName('class_hidden');
  $('fadedBackground').toggleClassName('class_visible');
//  setDivHeight(divId, height)
  //$('mentionsLegalesDiv').
  $('mentionsLegalesDiv').show();
}


function hideMentionsLegales()
{
  $('mentionsLegalesDiv').hide();
  setDivOpacity('fadedBackground', 0);
  $('fadedBackground').toggleClassName('class_hidden');
  $('fadedBackground').toggleClassName('class_visible');
}

var g_showBigPhotoPreview_imgIsLandscapeArray = new Array();

function showBigPhotoPreview(imgUrl, clientId, offreId)
{
  // FUNCTION DISABLED FOR TEST PURPOSES...
  return;
  
  if (g_showBigPhotoPreview_imgIsLandscapeArray[clientId+'_'+offreId] == top.undefined) {
  
    new Ajax.Request(
      'biensalavente.php',
      { 
      asynchronous : false,
      method:'get', 
      parameters: { ff_action: 'imgIsLansdcape', imgUrl: imgUrl},
      onSuccess: function(transport){g_showBigPhotoPreview_imgIsLandscapeArray[clientId+'_'+offreId]=transport.responseText;}
      });
  }
  
  var imgAttrib = 'height="400"';
  
  if (g_showBigPhotoPreview_imgIsLandscapeArray[clientId+'_'+offreId] == 'true')
    imgAttrib = 'width="400"';

  $('listeOffresPhotoBigPreviewDiv').update('<img '+imgAttrib+' src="'+imgUrl+'" />');
  $('listeOffresPhotoBigPreviewDiv').show();
}


function hideBigPhotoPreview()
{
  // FUNCTION DISABLED FOR TEST PURPOSES...
  return;
  
  $('listeOffresPhotoBigPreviewDiv').hide();
}
