/* -------------------------------------------------------------------
 * Cookies management
 * -------------------------------------------------------------------
 */
var siteUrl = 'http://www.nightsceneslighting.com/';
var imageDir = siteUrl + 'images/';
var img;

var now = new Date();
fix_date(now);
now.setTime(now.getTime() + 365 * 24 * 60 * 60 * 1000);

function fix_date(date) {
  var base = new Date(0);
  var skew = base.getTime();
  if (skew > 0) {
    date.setTime(date.getTime() - skew);
  }
}

function addEvent(obj, evType, fn){
  if(obj.addEventListener){
    obj.addEventListener(evType, fn, false); 
    return true;
  } else if (obj.attachEvent){
    var r = obj.attachEvent('on'+evType, fn);
    return r;
  } else {
    return false;
  }
}

function get_cookie_value(offset) {
  var endstr = document.cookie.indexOf (';', offset);
  if (endstr == -1) {
    endstr = document.cookie.length;
  }
  return unescape(document.cookie.substring(offset, endstr));
}

function get_cookie(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 get_cookie_value(j);
    }
    i = document.cookie.indexOf(' ', i) + 1;
    if (i == 0) break;
  }
}

function set_cookie(name, value, expires) {
  var argv   = set_cookie.arguments;
  var argc   = set_cookie.arguments.length;
  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 delete_cookie(name) {
  /*
  var cval = get_cookie(name);
  document.cookie = name + '=' + cval + '; expires=Thu, 01-Jan-70 00:00:01 GMT';
  */
}

/* -------------------------------------------------------------------
 * User preferences cookie
 * -------------------------------------------------------------------
 */
var prefsCookie = 'egographies_prefs';
var prefsPath = "/";

function get_prefs_value(key) {
  theCookie = get_cookie(prefsCookie);

  if (theCookie) {
    thePrefs = theCookie.split('|');
    for (i=0; i<thePrefs.length; i++) {
      aPref = thePrefs[i].split('=');
      if (aPref[0] == key) {
	return aPref[1];
      }
    }
  }
  return null;
}

function set_prefs_value(key, value) {
  theCookie = get_cookie(prefsCookie);
  newPrefs = '';

  if (theCookie) {
    thePrefs = theCookie.split('|');

    for (i=0; i<thePrefs.length; i++) {
      aPref = thePrefs[i].split('=');
      if ((aPref[0].length > 0) && (aPref[0] != key)) {
	newPrefs = newPrefs + ((newPrefs.length > 0) ? '|' : '') + thePrefs[i];
      }
    }
    //delete_cookie(prefsCookie);
  }
  newPrefs = newPrefs + ((newPrefs.length > 0) ? '|' : '') + key + '=' + value;
  set_cookie(prefsCookie, newPrefs, now, prefsPath);
}

/* -------------------------------------------------------------------
 * Expandable tabs
 * -------------------------------------------------------------------
 */
var theTabs = Array('calendar', 'categories', 'archives', 'links', 'feeds', 'services');

// Expands a tab on user click
//   tabID : the base ID of the tab DIVs
//   saveIt: if TRUE, save the tab state in the preferences cookie
function expand_tab(tabID) {
  var argv   = expand_tab.arguments;
  var argc   = expand_tab.arguments.length;
  var saveIt = (argc > 1) ? argv[1] : true;

  if (document.getElementById) {
    theTabOn   = document.getElementById(tabID + 'On');
    theTabOff  = document.getElementById(tabID + 'Off');
    theContent = document.getElementById(tabID + 'Content');

    theTabOn.style.display   = 'none';
    theTabOff.style.display  = 'block';
    theContent.style.display = 'block';

    if (saveIt) {
      save_tab_state(tabID, true);
    }
  }
}

// Collapses a tab on user click
//   tabId : the base ID of the tab DIVs
//   saveIt: if TRUE, save the tab state in the preferences cookie
function collapse_tab(tabID) {
  var argv   = collapse_tab.arguments;
  var argc   = collapse_tab.arguments.length;
  var saveIt = (argc > 1) ? argv[1] : true;

  if (document.getElementById) {
    theTabOn   = document.getElementById(tabID + 'On');
    theTabOff  = document.getElementById(tabID + 'Off');
    theContent = document.getElementById(tabID + 'Content');

    theTabOn.style.display   = 'block';
    theTabOff.style.display  = 'none';
    theContent.style.display = 'none';

    if (saveIt) {
      save_tab_state(tabID, false);
    }
  }
}

// save tab state in the preferences cookie
// (actually only expanded tab IDs are stored in the cookie)
function save_tab_state(tabID, expanded) {
  var newTabs = '';
  var oldTabs = get_prefs_value('tabStates');

  if (oldTabs) {
    var oldTabs = oldTabs.split(',');
    for (i=0; i<oldTabs.length; i++) {
      if (oldTabs[i] != tabID) {
	newTabs = newTabs + ((newTabs.length > 0) ? ',' : '') + oldTabs[i];
      }
    }
  }
  if (expanded) {
    newTabs = newTabs + ((newTabs.length > 0) ? ',' : '') + tabID;
  }
  set_prefs_value('tabStates', newTabs);
}

// On window load, expand tabs according to user preferences
function init_tabs() {
  var tabStates = get_prefs_value('tabStates');

  if (!tabStates) {
    tabStates = '';
  }
  /*
  for (i=0; i<theTabs.length; i++) {
    if (tabStates.indexOf(theTabs[i]) != -1) {
      expand_tab(theTabs[i], false);
    }
  }
  */
  tabStates = tabStates.split(',');
  for (i=0; i<tabStates.length; i++)
  {
    if(document.getElementById(tabStates[i] + 'On'))
    {
      expand_tab(tabStates[i], false);
    }
  }
}
addEvent(window, "load", init_tabs);

/* -------------------------------------------------------------------
 * Forms checking
 * -------------------------------------------------------------------
 */

// Trim White Spaces
function trim(strText) { 
  while (strText.substring(0,1) == ' ') 
    strText = strText.substring(1, strText.length);

  while (strText.substring(strText.length-1,strText.length) == ' ')
    strText = strText.substring(0, strText.length-1);
  return strText;
}

// Check form field is empty
function is_empty(value) {
  if (trim(value) == "")
    return true;
  return false;
}

// Check comment post form
function verify_commentform() {
  var errFlag = false;
  var errMsg = "Erreur ! Vous devez obligatoirement :\n";
  var commentForm = document.getElementById('commentForm');

  if (is_empty(commentForm.author.value)){
    errMsg = errMsg + "- Saisir un nom \n";
    errFlag = true;
  }
  if (is_empty(commentForm.comment.value)){
    errMsg = errMsg + "- Saisir un commentaire \n";
    errFlag = true;
  }
  if (errFlag == true){
    alert(errMsg);
    return false;
  }else {
    return true;
  }
}

// check email post form
function verify_mailform() {
  var errFlag = false;
  var errMsg = "Erreur ! Vous devez obligatoirement :\n";
  var mailForm = document.getElementById('mailForm');

  if (is_empty(mailForm.author.value)){
    errMsg = errMsg + "- Saisir votre nom \n";
    errFlag = true;
  }
  if (is_empty(mailForm.email.value)){
    errMsg = errMsg + "- Saisir votre E-mail \n";
    errFlag = true;
  }
  if (is_empty(mailForm.subject.value)){
    errMsg = errMsg + "- Saisir le sujet du message \n";
    errFlag = true;
  }
  if (is_empty(mailForm.message.value)){
    errMsg = errMsg + "- Saisir le contenu du message \n";
    errFlag = true;
  }
  if (errFlag == true){
    alert(errMsg);
    return false;
  }else {
    return true;
  }
}

function select_menu(menuID, currentID) {
  previousTile = document.getElementById('menu' + (menuID - 1));
  tile = document.getElementById('menu' + menuID);
  
  if (menuID == 4)
      tile.src = imageDir + "menu" + menuID + "_c.jpg";
  else if (currentID == menuID + 1)
      tile.src = imageDir + "menu" + menuID + "_cc.jpg";
  else
      tile.src = imageDir + "menu" + menuID + "_cb.jpg";

  if (menuID == 1)
      previousTile.src = imageDir + "menu0_gc.jpg";
  else
      if ((currentID == (menuID - 1)) || ((currentID == 0) && (menuID == 2)))
	  previousColor = 'c';
      else
	  previousColor='b';
      previousTile.src = imageDir + "menu" + (menuID - 1) + "_" + previousColor + "c.jpg";

  return false;
}

function deselect_menu(menuID, currentID) {
  previousTile = document.getElementById('menu' + (menuID - 1));
  tile = document.getElementById('menu' + menuID);
  
  if (menuID == 4)
      tile.src = imageDir + "menu" + menuID + "_b.jpg";
  else if (menuID == 1 && currentID == 0)
      tile.src = imageDir + "menu" + menuID + "_cb.jpg";
  else if (currentID == menuID + 1)
      tile.src = imageDir + "menu" + menuID + "_bc.jpg";
  else
      tile.src = imageDir + "menu" + menuID + "_bb.jpg";

  if (menuID == 1)
      if (currentID == 0)
	previousTile.src = imageDir + "menu0_gc.jpg";
      else
	  previousTile.src = imageDir + "menu0_gb.jpg";
  else
      if ((currentID == (menuID - 1)) || ((currentID == 0) && (menuID == 2)))
	  previousColor = 'c';
      else
	  previousColor='b';
      previousTile.src = imageDir + "menu" + (menuID - 1) + "_" + previousColor + "b.jpg";

  return false;
}

function ImageArray(size) {
  ar = new Array();
  for (i=0; i<size; i++) {
    ar[i] = new Image();
  }
  return ar;
}
function preloadImages() {
  img = new ImageArray(5);
  img[0].src = imageDir + 'menu1_on.gif';
  img[1].src = imageDir + 'menu2_on.gif';
  img[2].src = imageDir + 'menu3_on.gif';
  img[3].src = imageDir + 'menu4_on.gif';
  img[4].src = imageDir + 'powered_on.gif';
}
/* addEvent(window, "load", preloadImages); */
