﻿function $ready(what) {
  window.addEvent('domready', what);
}
var log = new Log;
FormValidator.WithCssMessage = new Class({
  Extends: FormValidator.Inline,

  makeAdvice: function(className, field, error, warn) {
    var errorMsg = (warn) ? this.warningPrefix : this.errorPrefix;
    var props = field.get('validatorProps');
    if (props[className + '-message']) {
      errorMsg += unescape(props[className + '-message']);
    } else {
      errorMsg += (this.options.useTitles) ? field.title || error : error;
    }
    var cssClass = (warn) ? 'warning-advice' : 'validation-advice';
    var advice = this.getAdvice(className, field);
    if (advice) {
      advice = advice.clone(true, true).set('html', errorMsg).replaces(advice);
    } else {
      advice = new Element('div', {
        html: errorMsg,
        styles: { display: 'none' },
        id: 'advice-' + className + '-' + this.getFieldId(field)
      }).addClass(cssClass);
    }
    field.store('advice-' + className, advice);
    return advice;
  }
});


function ajaxSubmit(form) {
  var validators = window.MooToolsFormValidators;
  if (!validators || !validators[form.id] || validators[form.id].validate()) {
    $(form).send();
  }
  return false;
}

// Fix for StickyWin.UI + Opera, see: http://code.google.com/p/cnetjavascript/issues/detail?id=73
StickyWin.UI.getArgs = function(){ 
  var input = $type(arguments[0]) == "arguments"?arguments[0]:arguments;
   // in Opera the input length is 1 and in the fist object are the args 
   if (Browser.Engine.presto && 1 === input.length) {
    input = input[0];
  } // end opera fix
  var cap = input[0], bod = input[1];
  var args = Array.link(input, { options: Object.type });
  if (input.length == 3 || (!args.options && input.length == 2)) {
    args.caption = cap; args.body = bod;
  } else if (($type(bod) == 'object' || !bod) && cap && $type(cap) != 'object') {
    args.body = cap;
  }
  return args;
};

function presentResult(success, delay) {
  $$(".result-box").each(function(el) {
    var inner = $(el.id + '_inner');
    var outer = el;
    var tween = inner.get('tween');
    inner.highlight(success ? '#008800' : '#ff0000');
    tween.wait(delay)
          .chain(function() { inner.slide('out'); })
          .chain(function() { outer.dispose(); });
  });
}


function applyInputFocus(formID) {
  ["input[type='text']", "textarea", "select"].each(function(type) {
    $(formID).getElements(type)
    .filter(function(e) { return e.id; })
    .each(function(x) { new InputFocus(x); });
  });
}

window.checkBrowserVersion = false;

$ready(function() {
  if (window.checkBrowserVersion && Browser.Engine.trident && Browser.Engine.version < 5) {
    var el = new Element('div',
      {
        html: "Note: you are using a deprecated browser version. For security reasons and in order to take full advantage of this site we suggest you to upgrade to a more recent version.",
        'class': "deprecated-browser"
      }).inject($('Page'), "after");
    el.highlight();
  }
});


var SiteBase = new Class({
  initialize: function() {
    $ready(this.start);
  },
  start: function() {
  }
});
