function submitenter(myfield,e)
{
  var keycode;
  if (window.event) keycode = window.event.keyCode;
  else if (e) keycode = e.which;
  else return true;
  
  if (keycode == 13)
  {
   myfield.form.submit();
   return false;
  }
  else return true;
}
  
function findMouseInElem(elem, e)
{
  if (!e) var e = window.event;
  elem = $(elem);
  var screenpos = Position.page(elem);
  return { x: Event.pointerX(e) - screenpos[0], y: Event.pointerY(e) - screenpos[1] };
}

function getViewPortHeight()
{
  if (typeof window.innerWidth != 'undefined') // Mozilla
  {
    return window.innerHeight;
  }
  else if (typeof document.documentElement != 'undefined'
      && typeof document.documentElement.clientWidth !=
      'undefined' && document.documentElement.clientWidth != 0) // IE Standards compliant
  {
    return document.documentElement.clientHeight;
  }
  else // Old IE
  {
    return document.getElementsByTagName('body')[0].clientHeight;
  }  
}

function isNickValid(nick)
{
  var reg = new RegExp("^[A-Za-z0-9_]+$");
  return reg.test(nick);
}

function isEmailValid(email)
{
  var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // not valid
  var reg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/; // valid
  return (!reg1.test(email) && reg2.test(email));
}

function isPasswordValid(password)
{
  return password.length >= 4 && password.length <= 20;
}

function isLeapYear(year)
{
  return ( ((year)>0) && !((year)%4) && ( ((year)%100) || !((year)%400) ) );
}
  
// Returns # days in a given month
function monthDays(month,year)
{
  month = parseInt(month);
  year = parseInt(year);
  switch(month)
  {
    case 1: return 31;
    case 2: 
      if(year == 0 || isLeapYear(year)) 
        return 29; 
      else 
        return 28;
      break;
    case 3: return 31;
    case 4: return 30;
    case 5: return 31;
    case 6: return 30;
    case 7: return 31;
    case 8: return 31;
    case 9: return 30;
    case 10: return 31;
    case 11: return 30;
    case 12: return 31;
    default: return 31;
  }
}

function insertTextInto(fieldname, textToInsert)
{
  var myField = $(fieldname);
  // IE
  if (document.selection) 
  {
    myField.focus();

    // Text range at cursor position.
    sel = document.selection.createRange();
    // Replace range with text.
    sel.text = textToInsert;
  }
  // Mozilla/Firefox
  else if (myField.selectionStart || myField.selectionStart == '0') 
  {
    // Retrieve selection start and end.
    var startPos = myField.selectionStart;
    var endPos = myField.selectionEnd;
    // Insert text between substrings.
    myField.value = myField.value.substring(0, startPos)+ textToInsert + myField.value.substring(endPos, myField.value.length);
  }
  // No support.
  else 
  {
    myField.value += textToInsert;
  }
}

function shade()
{
  var wrapperHeight = $('wrapper').offsetHeight;
  var viewportHeight = getViewPortHeight();
  var height = viewportHeight > wrapperHeight ? viewportHeight : wrapperHeight;
  $('shader').style.height = height.toString() + "px";
  $('shader').setStyle({ opacity: 0.30 });
  $('shader').show();
}

function unshade()
{
  Effect.Fade($('shader'), { duration: 0.4 } );
  $('shader').hide();
}

img = null;

function loadImage(id, with_owner, allow_download)
{
  shade();

  var loader = $('loader');
  var real_xy = Position.realOffset(loader);
  loader.style.top = ((getViewPortHeight() - loader.offsetHeight) / 2 + real_xy[1]).toString() + "px";
  $('loader').show();

  var ajax = new Ajax.Request(
    "callback/getimageinfo.php",
    {method: 'post', evalScripts: true, parameters: "id=" + id, onComplete: function(xhr) { loadImage_step(xhr, with_owner, allow_download); } }
  );    
}

function loadImage_step(xhr, with_owner, allow_download)
{
  var data; eval("data=" + xhr.responseText);
  $('photo_window_title').innerHTML = "";
  var node = Builder.node("h6", {}, [ data.title ] );
  $('photo_window_title').appendChild(node);
  if( with_owner )
  {
    $('photo_window_owner').show();
    $('photo_window_owner').innerHTML = "<b>Owner:</b> " + data.owner;
  }
  else
  {
    $('photo_window_owner').hide();
  }
  $('photo_window_description').innerHTML = data.description;
  $('photo_window_download_72').href = "download.php?cat=" + data.cat + "&id=" + data.id + "&size=s";
  if( allow_download )
  {
    $('photo_window_print').show();
    $('photo_window_register').hide();
    $('photo_window_download_300').href = "download.php?cat=" + data.cat + "&id=" + data.id + "&size=";
  }
  else
  {
    $('photo_window_register').show();
    $('photo_window_print').hide();
  }
  $('photo_window_size_small').innerHTML = data.small;
  $('photo_window_size_large').innerHTML = data.large;
  
  img = new Image();
  // Events MUST be before .src
  img.onload = loadImage_complete;
  img.onerror = loadImage_error;
  img.onabort = loadImage_error;  
  img.src = "download.php?cat=" + data.cat + "&id=" + data.id + "&size=s";
}

function loadImage_complete()
{
  $('loader').hide();
  $('photo_window_img').src = img.src;   
  show_window("photo_window");
}

function show_window(id)
{
  shade();
  var wnd = $(id);
  wnd.show();
  centerWindow(id);
  window.onresize = function() { centerWindow(id); };
  window.onscroll = function() { centerWindow(id); };
  if(sIFR.replaceElement)
  {
    sIFR.replaceElement("h6", "sifr/pristina.swf", "#0F115F", "#0F115F", "#0F115F", null, 0, 0, 0, 0, "");
  }
}

function centerWindow(id)
{
  var wnd = $(id);
  var real_xy = Position.realOffset(wnd);
  var diff = getViewPortHeight() - wnd.offsetHeight;
  var newtop = diff / 2 + real_xy[1];
  var docheight = $('wrapper').offsetHeight;
  if( newtop + wnd.offsetHeight > docheight ) newtop = docheight - wnd.offsetHeight;
  if( newtop < 10 ) newtop = 10;
  wnd.style.top = newtop.toString() + "px";
}

function closeWindow(id)
{
  Effect.Fade($(id), { duration: 0.4 } );
  unshade();
}

function closeWindowFast(id)
{
  $(id).hide();
}

function loadImage_error()
{
  $('loader').hide();
  unshade();
}

function start_edit_text(cat)
{
  shade();
  $('loader').show();
  var ajax = new Ajax.Request(
    "callback/getcattext.php",
    {method: 'post', evalScripts: true, parameters: "cat=" + cat, onComplete: start_edit_text_complete }
  ); 
}

function start_edit_text_complete(xhr)
{
  $('loader').hide();
  var data; eval("data=" + xhr.responseText);
  $('edit_text_name').value = data.name;
  $('edit_text_description').value = data.description;
  tinyMCE.updateContent('edit_text_description');
  show_window("window_edit_text");
}

function start_upload(cat)
{
  show_window("window_upload");
}

function start_edit_image(id)
{
  shade();
  $('loader').show();
  $('edit_image_id').value = id;
  var ajax = new Ajax.Request(
    "callback/getimageinfo.php",
    {method: 'post', evalScripts: true, parameters: "id=" + id, onComplete: start_edit_image_complete }
  ); 
}

function start_edit_image_complete(xhr)
{
  $('loader').hide();
  var data; eval("data=" + xhr.responseText);
  $('edit_image_title').value = data.title;
  $('edit_image_tags').value = data.tags;
  $('edit_image_description').value = data.description;
  tinyMCE.updateContent('edit_image_description');
  show_window("window_edit_image");
}

function start_delete_image(id)
{
  $('delete_image_id').value = id;
  show_window("window_delete_image");
}

function start_create_folder(cat)
{
  $('create_folder_cat').value = cat;
  $('create_folder_name').value = "";
  show_window("window_create_folder");
}

function start_delete_folder(cat)
{
  $('delete_folder_id').value = cat;
  show_window("window_delete_folder");
}

function start_edit_user(nick)
{
  shade();
  $('loader').show();  
  var ajax = new Ajax.Request(
    "callback/getuserinfo.php",
    {method: 'post', evalScripts: true, parameters: "nick=" + nick, onComplete: start_edit_user_complete }
  ); 
}

function start_edit_user_complete(xhr)
{
  $('loader').hide();
  var data; eval("data=" + xhr.responseText);
  $('edit_user_nick').value = data.nick;
  $('edit_user_nick2').innerHTML = data.nick;
  $('edit_user_password').value = data.password;
  $('edit_user_firstname').value = data.firstname;
  $('edit_user_lastname').value = data.lastname;
  $('edit_user_email').value = data.email;
  if( data.gender == "M")
    $('edit_user_gender_m').checked = true;
  else
    $('edit_user_gender_f').checked = true;
  $('edit_user_website').value = data.website;
  $('edit_user_company').value = data.company;
  if( data.type == "user" )
    $('edit_user_type_user').checked = true;
  else if( data.type == "operator" )
    $('edit_user_type_operator').checked = true;
  else 
    $('edit_user_type_admin').checked = true;
  $('edit_user_active').checked = data.active == "Y";
  $('edit_user_promotional').checked = data.promotional == "Y";
  $('edit_user_country').selectedIndex = 0;
  if(data.country !=  null && data.country != 0) $('edit_user_country_' + data.country).selected = true;
  $('edit_user_nature_' + data.nature).selected = true;
  $('edit_user_nature_specify').value = data.nature_specify;
  $('edit_user_nature_specify').hide();
  if( data.nature == "other") $('edit_user_nature_specify').show();
  $('edit_user_address').value = data.address;
  $('edit_user_phone').value = data.phone;
  
  var inputs = $A($('edit_user_groups').getElementsByTagName("INPUT"));
  inputs.each(function(elem) {
    elem.checked = false;
  });
  data.folders.each(function(folder) {
    $('_f_'+folder).checked = true;
  });
  show_window("window_edit_user");
}

function start_delete_user(nick)
{
  $('delete_user_nick').value = nick;
  $('delete_user_nick2').innerHTML = nick;
  show_window("window_delete_user");
}
