// Voici les 3 fonctions de gestions des cookies

////////////////////////////////////////////////

function getCookieVal(offset) {

	var endstr=document.cookie.indexOf (";", offset);

	if (endstr==-1)

      		endstr=document.cookie.length;

	return unescape(document.cookie.substring(offset, endstr));

}



function GetCookie (name) {

	var arg=name+"=";

	var alen=arg.length;

	var clen=document.cookie.length;

	var i=0;

	while (i<clen) {

		var j=i+alen;

		if (document.cookie.substring(i, j)==arg)

                        return getCookieVal (j);

                i=document.cookie.indexOf(" ",i)+1;

                        if (i==0) break;}

	return null;

}



function SetCookie (name, value) {

// un cookie a besoin d'un nom, d'une valeur, d'un nom de domaine, d'une date d'expiration

// 

	var argv=SetCookie.arguments;

	var argc=SetCookie.arguments.length;

	var expires=(argc > 2) ? argv[2] : null;

	var path=(argc > 3) ? argv[3] : null;

	var domain=(argc > 4) ? argv[4] : null;

	var secure=(argc > 5) ? argv[5] : false;

	document.cookie=name+"="+escape(value)+

		((expires==null) ? "" : ("; expires="+expires.toGMTString()))+

		((path==null) ? "" : ("; path="+path))+

		((domain==null) ? "" : ("; domain="+domain))+

		((secure==true) ? "; secure" : "");

}



function setMiddleLocation(value)

{

 SetCookie('kerland.net.middle.location',value,null,"/",null,false);

 //alert(GetCookie('kerland.net.middle.location'));

}



function setGite(value)

{

 SetCookie('kerland.net.gite',value,null,"/",null,false);

 //alert(GetCookie('kerland.net.gite'));

}



//To remove a cookie, just set its expiration date to -1

function UnsetCookie(name)

{

  date=new Date;

  date.setFullYear(date.getFullYear()-1);

  SetCookie(name,null,date,"/",null,false);

  //alert("Cookie " + name + " removed");

}

///////////////////////////////////





//Load in the middle frame the given location

//ans update accordingly the cookie "middle"

function loadInMiddle(newloc)

{

  window.top.middleframe.location.href = newloc;

}



//Load in the left frame the given location

function loadInLeft(newloc)

{

  window.top.leftframe.location.href = newloc;

}



//Load in the upper frame the given location

function loadInUpper(newloc)

{

  window.top.upperframe.location.href = newloc;

}





function encode(str)

{

  //alert("Encode replace : " + str.replace(new RegExp("(\\+)","g"),"µ"));

  //alert("Encode : " + escape(str.replace(new RegExp("(\\+)","g"),"µ")));

  return escape(str.replace(new RegExp("(\\+)","g"),"µ"));

}



/*

Function used to decode an URL passed as php argument.

It mainly replaced existing ## by + after calling urlEncode

*/

function decode(str)

{

  //alert("Decode : " + unescape(str));

  //alert("Decode Replace: " + unescape(str).replace(new RegExp("µ","g"),"+"));

  return unescape(str).replace(new RegExp("µ","g"),"+");

}



// Update the main location

// Retrieve gite attribute from left frame location

// Compute new middle location 

function selectLanguage(prevlang,newlang)

{

   //Look for the gite parameter, if any

   var newloc="../index.php?lang="+newlang;

   //Now, retrieve the gite from its cookie

   var gite=GetCookie('kerland.net.gite');

   if (gite!=null)

   {

     newloc += "&gite=" +gite;

   }

   var middle = GetCookie('kerland.net.middle.location');

   if (middle != null)

   {  

      if (middle.indexOf('itea')!=-1)

      {

         // http://www.itea.fr/bin/itea_dyn.net?FRM:N+DEP:29+ACC:F+LAN:$iteaLang+NUM:$gite

         var oldIteaLang=getIteaLang(prevlang);

         var newIteaLang=getIteaLang(newlang);

         //alert(encode(middle.replace("LAN:" + oldIteaLang,"LAN:" + newIteaLang)));

         newloc += "&middle=" + encode(middle.replace("LAN:" + oldIteaLang,"LAN:" + newIteaLang));

         //alert("OLB 2 " + newloc);

      }

      else if (middle.indexOf('location.gites-finistere.com')!=-1)
      {
           //We are facing a new link description, new style . We just replace the language argument 
           //http://location.gites-finistere.com/location-gite-de-france-finistere-en-bretagne-pays-bigouden-gite-rural-sur-ploneis-17160.html?langue=FRANCAIS
           
         var oldFullIteaLang=getFullIteaLang(prevlang);
         var newFullIteaLang=getFullIteaLang(newlang);
         newloc += "&middle=" + encode(middle.replace(oldFullIteaLang,newFullIteaLang));
      }
      else if (middle.indexOf('appspot.com')!=-1)
      {
           //We are facing a link to GAE and GWT . We just replace the language argument 
           //http://kerlandfinistere.appspot.com/crepes.html?locale=fr
           
         var oldLang="locale="+ prevlang;
         var newLang="locale="+newlang;
         newloc += "&middle=" + encode(middle.replace(oldLang,newLang));
      }
      else
      {

         //we are facing an internal link

         //Just replace the lang argument in the command if there is any

         if (middle.indexOf('lang=')!=-1)

         {

           newloc += "&middle=" + encode(middle.replace("lang="  + prevlang,"lang=" + newlang));

         }

         else

         {

           newloc += "&middle=" + encode(middle);

         }

       }

   }

   loadMain(newloc);

}



function getIteaLang(lang)

{

  if (lang=='fr') return 'FR';

  if (lang=='de') return 'AL';

  return 'AN';

}

/*
 Since 08 2009 to be used to referenced new gites description
 */
function getFullIteaLang(lang)
{
  if (lang=='fr') return 'FRANCAIS';

  if (lang=='de') return 'ALLEMAND';

  return 'ANGLAIS';
}

function getCurrentYear()
{
  return '2010';
}

function getNextYear()
{
  return '2011';
}

function loadMain(newUrl)

{

  //alert("new url : " + newUrl);

   window.top.location=newUrl;

}



function test()

{

  //str="my+string+jy";

  //reg=new RegExp("(\\+)","g");

  //alert("Encode replace : " + str.replace(reg,"µ"));

}



function showImage(page,largeur,hauteur,options)

{

	var top=(screen.height-hauteur)/2;

	var left=(screen.width-largeur)/2;

	//neo = window.open(page,"Images","top="+top+",left="+left+",width="+largeur+",height="+hauteur+","+options);

	//neo.document.write("<img src="+page+" width="+largeur+" height="+hauteur + " border=0>");

    //alert("<img src="+page+" width="+largeur+" height="+hauteur + " border=0>");

    var largeurWin = 50 +largeur ;

    var hauteurWin = hauteur + 90;

	neo = window.open('',"Images","top="+top+",left="+left+",width="+largeurWin+",height="+hauteurWin+","+options);

    neo.document.write("<html><head><title>"+page+"</title></head>");

    neo.document.write("<body>");

	neo.document.write("<img src='"+page+"' width="+largeur+" height="+hauteur + " border=0>");

    neo.document.write("</body></html>");

    neo.document.close();

	neo.resizeTo(largeurWin,hauteurWin);

	if(neo.window.focus){neo.window.focus();}

}







