//**********************************************************************
//
// Product:     ODA
//
// Module name: dj.js
//
//**********************************************************************

//----------------------------------------------------------------------
// Title:      validEmail
//             Used in form processing in reservation.html
//             Checks an email address
//----------------------------------------------------------------------
function validEmail(FROM) {
  invalidChars = " /:,;";
  
  if (FROM == "") {		// cannot be empty
    return false;
  }
  for (i=0; i<invalidChars.length; i++) {	
    // Does it contain any invalid characters?
    badChar = invalidChars.charAt(i);
    if (FROM.indexOf(badChar,0) > -1) {
      return false;
    }
  }
  atPos = FROM.indexOf("@",1);	// must be one "@" symbol
  if (atPos == -1) {
    return false;
  }
  if (FROM.indexOf("@",atPos+1) != -1) {	
    // only 1 "@" symbol
    return false;
  }
  periodPos = FROM.indexOf(".",atPos);
  if (periodPos == -1) {	// at least one "." after the "@"
    return false;
  }
  if (periodPos+3 > FROM.length) {
    // must be at least 2 characters after the "."
    return false;
  }
  return true;
}

//----------------------------------------------------------------------
// Title:      submitIt
// Used in reservation.html
//----------------------------------------------------------------------
function submitIt(form) {

  // Runs email validation and requires fields
  if (!validEmail(form.FROM.value)) {
    alert("Invalid or empty email address");
    form.FROM.focus();
    form.FROM.select();
    return false;
  }
  
  if (form.Name.value == "") {
    alert ("The name field is required");
    form.Name.focus();
    form.Name.select();
    return false;
  }
  // If we made it to here, everything's valid, so return true
  return true;
}

//----------------------------------------------------------12-May-2007-
// Title:      getURLParam  
//             Just a useful little javascript function which will get 
//             a URL parameter and return it to you. 
//             For example if the current URL is "...?opendocument&id=testid" 
//             then calling getURLParam("id") will return "testid".
//----------------------------------------------------------------------
function getURLParam(strParamName){
  var strReturn = "";
  var strHref = window.location.href;

  if ( strHref.indexOf("?") > -1 ){
    
    var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();
    var aQueryString = strQueryString.split("&");
    
    for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){

      if ( aQueryString[iParam].indexOf(strParamName.toLowerCase() + "=") > -1 ){
        var aParam = aQueryString[iParam].split("=");
        strReturn = aParam[1];
        break;
      }
    }
  }
  return unescape(strReturn);
} 

//----------------------------------------------------------12-May-2007-
// Address  
//----------------------------------------------------------------------
function getShortAddress()
{
  return "Dar Jameel, No. 6, Rue Mohammed Bergach, Medina, Tangier";
}
function getTlfNo()
{
  return  "Tel.: <b>00 (212) 5 39 33 46 80</b>";
}
function getAddress()
{
  var addr = getShortAddress() + ".<br>";
  addr += getTlfNo() + ", email <a href=\"mailto:info@magicmaroc.com\">info@magicmaroc.com</a><br>";
  return addr;
}
function writeAddressAndManager() {
    var aPath = window.location.href.split("/");
    var nameInfo = aPath[aPath.length-1].split(".")[0];
    var langExt = nameInfo.substr(nameInfo.length-3,3).toLowerCase();
    var title
    
    switch (langExt) {
        case "_fr":
            title = "Le gérant de la maison"
            break;
            
        case "_es":
            title = "Gerente de la casa"
            break;

        default:
            title = "House Manager"
    }
    document.write(getAddress());
    document.write(title + ": Idriss Aboulaghrass Tel.: 00 (212) 6 61 09 27 80");
}

//----------------------------------------------------------04-Apr-2008-
// Title:      getDocNameInfo
//----------------------------------------------------------------------
function getDocNameInfo() {
  var aPath = window.location.href.split("/");
  var nameInfo = aPath[aPath.length-1].split(".")[0];
  return nameInfo;
}

//----------------------------------------------------------04-Apr-2008-
// Title:      getLangFileExt
//----------------------------------------------------------------------
function getLangFileExt(nameInfo) {
  if (nameInfo.substr(nameInfo.length-3,1) == "_") {
    return nameInfo.substr(nameInfo.length-3,3).toLowerCase();
  }
  return "";
}

//----------------------------------------------------------12-May-2007-
// Title:      topOfPage  
//----------------------------------------------------------------------
function topOfPage() {

    var descText;
    var priceText;
    var restText;
    var infText;
    var contactText;
    var galleryText;
    var guestbookText;
    var linksText;

    var nameInfo = getDocNameInfo();
    var langExt = getLangFileExt(nameInfo);
    
    switch (langExt) {
        case "_fr":
            descText = "Description";
            priceText = "Tarifs";
            resText  = "Réservation";
            infText = "Information";
            contactText = "Contacter";
            galleryText = "Galerie";
            guestbookText = "";
            linksText = "Liens";          
            nameInfo = nameInfo.substr(0, nameInfo.length-3,3);
            break;
            
        case "_es":
            descText = "Descripción";
            priceText = "Tarifas";
            resText  = "Reservas";
            infText = "Información";
            contactText = "Contactar";
            galleryText = "Galería";
            guestbookText = "Visitas";
            linksText = "Enlaces";
            nameInfo = nameInfo.substr(0, nameInfo.length-3,3);
            break;
            
        default:
            descText = "Description";
            priceText = "Tariffs";
            resText  = "Reservation";
            infText = "Information";
            contactText = "Contact";
            galleryText = "Gallery";
            guestbookText = "Guestbook";
            linksText = "Links";
    }
    
  // document.write("<br>window.location.href: " + window.location.href);
  // document.write("<br>nameInfo: " + nameInfo + ", langExt: " + langExt);
    
  document.write("<div align=center class=mainmenu>");
  document.write("<table>");
  document.write("  <tr>");
  document.write("    <td><a href=\"/\"><img src=\"images/djlogo.jpg\" border=\"0\"></a></td>");

  document.write("    <td align=right>");
  document.write("      <a href=\"" + nameInfo + ".html\">   <img src=\"images/flag_en.gif\" alt=\"English\" border=\"0\"></a>");
  document.write("      <a href=\"" + nameInfo + "_es.html\"><img src=\"images/flag_es.gif\" alt=\"Espa&ntilde;ol\" border=\"0\"></a>");
  document.write("      <a href=\"" + nameInfo + "_fr.html\"><img src=\"images/flag_fr.gif\" alt=\"Francais\" border=\"0\"></a>");
  document.write("    </td>");
  document.write("  </tr>");
  document.write("</table>");

  document.write("<table>");
  document.write("  <tr>");
  document.write("    <td class=menubar>");
  document.write("      &nbsp;&nbsp;<a class=\"mainMenuLink\" href=\"description" + langExt + ".html\">" + descText + "</a>&nbsp;");
  document.write("      &nbsp;&nbsp;<a class=\"mainMenuLink\" href=\"prices" + langExt + ".html\">" + priceText + "</a>&nbsp;");
  document.write("      &nbsp;&nbsp;<a class=\"mainMenuLink\" href=\"reservation" + langExt + ".html\">" + resText + "</a>&nbsp;");
  document.write("      &nbsp;&nbsp;<a class=\"mainMenuLink\" href=\"information" + langExt + ".html\">" + infText + "</a>&nbsp;");
  document.write("      &nbsp;&nbsp;<a class=\"mainMenuLink\" href=\"contact" + langExt + ".html\">" + contactText + "</a>&nbsp;");
  document.write("      &nbsp;&nbsp;<a class=\"mainMenuLink\" href=\"gallery" + langExt + ".html\">" + galleryText + "</a>&nbsp;");

  if (guestbookText.length>0) {
    document.write("      &nbsp;&nbsp;<a class=\"mainMenuLink\" href=\"guestbook" + langExt + ".html\">" + guestbookText + "</a>&nbsp;");
}
  document.write("      &nbsp;&nbsp;<a class=\"mainMenuLink\" href=\"links" + langExt + ".html\">" + linksText + "</a>&nbsp;");
  document.write("    </td>");
  document.write("  </tr>");
  document.write("</table>");
  document.write("</div>");
}

//----------------------------------------------------------12-May-2007-
// Title:      bottomOfPage  
//----------------------------------------------------------------------
function bottomOfPage(path) {
  if (path==null) {
    path = "";
  }
  document.write("<table width=800 cellpadding=0 cellspacing=0 align=\"center\">");
  document.write("    <tr>");
  document.write("    <td colspan=2 align=\"center\" class=\"address\">");
  document.write("________________________________________<br><br>");
  writeAddressAndManager();
  document.write("<br><br>");
  document.write("    <img src=\"" + path + "images/bluetile.jpg\" height=50>");
  document.write("    </td>");
  document.write("  </tr>");
  document.write("");
  document.write("</table><br><br>");
}

function listProps(obj, objName) {

  for (var i in obj) {
    var value;
    if (typeof(obj[i]) == "string" || typeof(obj[i]) == "number" || typeof(obj[i]) == "boolean") {
      value = obj[i];
    } else {
      value = "...";
    }
    var typeName = typeof(obj[i]) + "   ";
    document.write(typeName.substr(0,8) + " " + objName + "." + i + " => " + value + "<br>"); // obj[i]+
  }
}

//----------------------------------------------------------04-Apr-2008-
// Title:      showPhoto
//----------------------------------------------------------------------
function showPhoto(url, title, photoText) {
  var w=window.open('', "djphoto", "height=600,width=800,status=no,scrollbars=yes,toolbar=no,menubar=no,location=no,resizable=yes,toolbar=no,directories=no"); //,dependent=yes

  if (title==null) {
    title = "";
  }
  w.document.open("text/html");
  w.document.write("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
  w.document.write("<html>");
  w.document.write("<head>");
  w.document.write("<title>Dar Jameel - " + title + "</title>");
  w.document.write("<link rel=\"stylesheet\" href=\"dj.css\" type=\"text/css\">");
  w.document.write("</head>");
  w.document.write("<body>");
  w.document.write("<div align=center class=photo>");
  w.document.write("<table><tr><th><img src=\"images/djlogo.jpg\"></th></tr></table>");
  w.document.write("<table><tr><td>");

  if (photoText!=null) {
    w.document.write("<h3>" + title + "</h3>");
    w.document.write(photoText+"<br>");
  }

  w.document.write("<img src=\"" + url + "\"><br>");
  w.document.write(title);
  w.document.write("</td></tr></table><br><small>");
  w.document.write(getAddress());
  w.document.write("</small>");
  w.document.write("</div>");
  w.document.write("</body>");
  w.document.write("</html>");
  w.document.close();
  w.focus();
}

//----------------------------------------------------------04-Apr-2008-
// Title:      createPhotoElem
//----------------------------------------------------------------------
function createPhotoElem(previewUrl, photoUrl, text) {

  if (photoUrl==null) {
    photoUrl = previewUrl;
  }

  document.write("<td><a href=\"javascript:showPhoto('" + photoUrl + "','" + text + "', null)\">");
  document.write("<img src=\"" + previewUrl + "\"><br>" + text + "</a></td>");
}

//----------------------------------------------------------04-Apr-2008-
// Title:      createPriceTableRow
//----------------------------------------------------------------------
function createPriceTableRow(previewUrl, photoUrl, title, text,
                               onePrsText, onePrsPrice,
                               twoPrsText, twoPrsPrice,
                               threePrsText, threePrsPrice) {

  var photoLink = "<a href=\"javascript:showPhoto('" + photoUrl + "','" + title + "',";
  if (text == null) {
    photoLink += "null)\">";
  } 
  else {
    photoLink += "'" + text + "')\">";
  }

  document.write("<tr>");
  document.write("<td>&nbsp;" + photoLink + title + "</a>&nbsp;</td>");
  document.write("<th>" + photoLink);
  document.write("<img src=\"" + previewUrl + "\"></a></th>");

  if (onePrsText != "") {
    onePrsText += "<br>"
    onePrsPrice += "<br>";
  }

  document.write("<td>");
  var indent = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
  document.write(indent + onePrsText + "<br>" + indent + twoPrsText + "<br><br>" + indent + threePrsText);
  document.write("</td>");

  document.write("<td>");
  document.write(onePrsPrice + "<br>" + twoPrsPrice + "<br><br>" + threePrsPrice);
  document.write("</td>");

  document.write("</tr>");
}

//----------------------------------------------------------04-Apr-2008-
// Title:      priceTable
//----------------------------------------------------------------------
function priceTable() {
  
  var nameInfo = getDocNameInfo();
  var langExt = getLangFileExt(nameInfo);

  var noPersonsText;
  var dailyRateText;

  var standardRoomTitle;
  var standardRoomText;

  var bergachSuiteTitle;
  var bergachSuiteText;

  var leilaSuiteTitle;
  var leilaSuiteText;

  var sheherazadeSuiteTitle;
  var sheherazadeSuiteText;

  var malabataSuiteTitle;
  var malabataSuiteText;
  
  switch (langExt) {
    case "_fr":
      // French
      noPersonsText = "Numero de personnes";
      dailyRateText = "Le prix par jour en Euros"

      standardRoomTitle = "Chambre standard";
      standardRoomText  = "Chambre Marhaba: une chambre au RDC ; avec ces  mures en zellige son plafond au plâtre décoré traditionnellement." +
        "Elle a un grand lit ; et un divan qui peut être utilisé comme un lit supplémentaire. Une salle de bain privée a l&acute;extérieur.<br>" + 
        "Chambre Hamri et Agoumi :deux chambres au 1er étage avec un grand lit et un divan sofa dans chacune ;elles ont en commun une large salle de bain et un énorme salon traditionnel ;ou le petit déjeuner peut être servis.";
      
      bergachSuiteTitle = "Suite Bergach";
      bergachSuiteText = "Rez-de-chaussée, un très grand lit, chauffage, ventilateur électrique, aucune vue.";

      leilaSuiteTitle = "Suite Leila";
      leilaSuiteText = "3ème étage, 1 très grand lit, A/C chauffage, connexion à Internet, vue de mer partielle."

      sheherazadeSuiteTitle = "Suite Sheherazade";
      sheherazadeSuiteText = "3ème étage, suite avec un très grand lit, vue océanique, A/C chauffage, connexion à internet, sofa.";

      malabataSuiteTitle = "Suite Malabata";
      malabataSuiteText = "2ème  étage; la plus grande suite avec 2 très grands lits, chauffage/climatisée, connexion à internet, un petit salon, table de petit déjeuner, sofa, vue de medina.";

      break;
      
    case "_es":
      // Spanish
      noPersonsText = "Numero de personas";
      dailyRateText = "Precio diario en Euros"

      standardRoomTitle = "Habitación estándard";
      standardRoomText = "4 habitaciones disponible";

      bergachSuiteTitle = "Suite Bergach";
      bergachSuiteText = "Planta baja, 1 cama matrimonial.";

      leilaSuiteTitle = "Suite Leila";
      leilaSuiteText = "Tercer planta, 1 cama matrimonial, climatización, adsl";

      sheherazadeSuiteTitle = "Suite Sheherazade";
      sheherazadeSuiteText = "Tercer planta, 1 cama matrimonial, sofa, climatización, adsl";

      malabataSuiteTitle = "Suite Malabata";
      malabataSuiteText = "Segunda planta, 2 camas matrimoniales, mesa, sofa, climatización, adsl.";

      break;
      
    default:
      // English
      noPersonsText = "Number of persons";
      dailyRateText = "Daily rate in Euros";

      standardRoomTitle = "Standard room";
      standardRoomText = "Marhaba; ground floor, own private bathroom.<br>" +
        "Hamri; first floor, shares a bathroom with Agoumi, also on the first floor.<br>" + 
        "Tafraout; 2nd floor, own bathroom and toilet next to the room.<br>" + 
        "Ground floor, 1 king-size bed, air con.";
      
      bergachSuiteTitle = "Bergach suite";
      bergachSuiteText = "Ground floor, 1 king-size bed, air con.";

      leilaSuiteTitle = "Leila suite";
      leilaSuiteText = "3rd floor, 1 king-size bed, air con., adsl, partial sea-view."

      sheherazadeSuiteTitle = "Sheherazade suite";
      sheherazadeSuiteText = "3rd floor, &quot;honeymoon suite&quot;, 1 king-size bed, sofa, air con., adsl, sea view.";

      malabataSuiteTitle = "Malabata suite";
      malabataSuiteText = "2nd floor;  largest suite with 2 king-size beds, air con., breakfast table, sofa, adsl, medina view."
  }
  
  document.write("<table class=priceTable>");
  document.write("<tr>");
  document.write("<td></td>");
  document.write("<td></td>");
  document.write("<td width=100>&nbsp;" + noPersonsText + "&nbsp;</td>");
  document.write("<td width=100>&nbsp;" + dailyRateText + "&nbsp;</td>");
  document.write("</tr>");

  createPriceTableRow("images/tn_standard_room.jpg", "images/standard_room.jpg", standardRoomTitle, standardRoomText,
                      "1",     "48 &euro;",
                      "2",     "58 &euro;",
                      "3",     "68 &euro;");
  
  createPriceTableRow("images/tn_bergach_suite.jpg", "images/suite_bergach.jpg", bergachSuiteTitle, bergachSuiteText,
                      "",    "",
                      "1",   "68 &euro;",
                      "2",   "88 &euro;");

  createPriceTableRow("images/tn_leila_suite.jpg", "images/leila_suite.jpg", leilaSuiteTitle, leilaSuiteText,
                      "",    "",
                      "1",   "68 &euro;",
                      "2",   "88 &euro;");
  
  createPriceTableRow("images/tn_sheherazade_suite.jpg", "images/sheherazade_suite.jpg", sheherazadeSuiteTitle, sheherazadeSuiteText,
                      "",    "",
                      "1",   "68 &euro;",
                      "2",   "88 &euro;");
  
  createPriceTableRow("images/tn_malabata_suite.jpg", "images/malabata_suite.jpg", malabataSuiteTitle, malabataSuiteText,
                      "",      "",
                      "",      "",
                      "3 - 4", "118 &euro;");
  
  document.write("</table>");
}

//----------------------------------------------------------12-Apr-2008-
// Title:      getBrowserLangExt
//----------------------------------------------------------------------
function getBrowserLangExt() {
  // document.write("<br>navigator.systemLanguage: " + navigator.systemLanguage);
  // document.write("<br>navigator.userLanguage: " + navigator.userLanguage);


  var langCode = navigator.userLanguage;
  var langExt = "";
  switch (langCode) {
    case "es": 
      langExt = "_es";
      break;
      
    case "fr": 
      langExt = "_fr";
      break;

    default:
      langExt = "";
  }
  return langExt;
}

//----------------------------------------------------------12-Apr-2008-
// Title:      getGreeting
//----------------------------------------------------------------------
function getGreeting() {

  // Create a greeting based on the language
  var langCode = navigator.userLanguage;
  var greeting = "";
  switch (langCode) {
    case "es":
      greeting = "Bienvenidos";
      break;
    case "fr": 
      greeting = "Bienvenue"; 
      break;
    case "da": 
      greeting = "Velkommen"; 
      break;
    default:   
      greeting = "Welcome";
  }
  return greeting;
}

//----------------------------------------------------------12-Apr-2008-
// Title:      mainEntryLink
//----------------------------------------------------------------------
function mainEntryLink() {
  document.write("<a href=\"/djsite/description" + getBrowserLangExt() + ".html\">");
  document.write("<img  alt=\"" + getGreeting() + "\" width=350 height=466 border=0 src=\"djsite/images/internal_door_350x466_fuz.jpg\">");
  document.write("</a>");
}
