﻿var formatTimer;
var formatOpenedDiv;

function showFormatSelector(id)
{
  obj = document.getElementById(id);
  attr = obj.getAttribute('formatSelectingBehaviour');
  if(attr != 'switcher')
  {
     return;
  }
  hideOpenedDiv();
  obj.style.display = 'block';
  obj.style.left = getAscendingLefts(obj.parentNode)+'px';
  obj.style.top = getAscendingTops(obj.parentNode)+20+'px';
  formatOpenedDiv = obj;
  if(formatTimer)
    clearTimeout(formatTimer);
}

function containsChild(parent, child)
{
  ch = parent.childNodes;
  for(i=0; i<ch.length; i++)
  {
    if(ch[i]==child) 
      return true;
  }
  return false;
}

function hideFormatSelector(event, id)
{
  if(!event) event=window.event;
  if (event.relatedTarget) toElem=event.relatedTarget;
  else if (event.toElement) toElem=event.toElement;
  else return;
  obj = document.getElementById(id);
  if(obj && (event.type!='mouseout' || 
    !containsChild(obj,toElem)))
  {
    obj.style.display = 'none';
    if(formatTimer) 
      clearTimeout(formatTimer);
    formatOpenedDiv = null;
  }
}

function hideOpenedDiv()
{
  if(formatOpenedDiv)
  {
    formatOpenedDiv.style.display='none';
    formatOpenedDiv = null;
  }  
}

function updateFormat(s, format)
{
  re = /(\?|&)fmt=[a-z]*/i;
  if(re.test(s))
  {
    s = s.replace(re, RegExp.$1 + 'fmt=' + format);
  }
  else 
  {
    s += (/\?/.test(s) ? '&' : '?') + 'fmt=' + format;
  }
  return s;
}

function selectFormat(format)
{
  for(i=0;i<document.links.length;i++)
  {
    if(document.links[i].getAttribute('formatSelectingBehaviour')=='downloadLink')
    {
      document.links[i].href = updateFormat(document.links[i].href, format);
    }
  }
  for(i=0;i<document.images.length;i++)
  {
    if(document.images[i].getAttribute('formatSelectingBehaviour')=='formatImage')
    {
      document.images[i].src = updateFormat(document.images[i].src, format);
    }
  }
  date = new Date();
  //cookie expires after 30 days
  date.setTime(date.getTime()+(30*24*60*60*1000));
  setCookie('CC:PreferredFormat',format, date);
}

function setOrder(orderBy, orderDir)
{
  date = new Date();
  //cookie expires after 14 days
  date.setTime(date.getTime()+(14*24*60*60*1000));
  setCookie('CC:DocumentsOrderBy',orderBy, date);
  setCookie('CC:DocumentsOrderDir',orderDir, date);
  return true;
}



