/**
 * @author thomas
 */
/*
MooTools.lang.set('de-AT', 'FormValidator', {

	required:'Dieses Feld wird benötigt.',
	minLength:'Please enter at least {minLength} characters (you entered {length} characters).',
	maxLength:'Please enter no more than {maxLength} characters (you entered {length} characters).',
	integer:'Please enter an integer in this field. Numbers with decimals (e.g. 1.25) are not permitted.',
	numeric:'Please enter only numeric values in this field (i.e. "1" or "1.1" or "-1" or "-1.1").',
	digits:'Please use numbers and punctuation only in this field (for example, a phone number with dashes or dots is permitted).',
	alpha:'Please use letters only (a-z) with in this field. No spaces or other characters are allowed.',
	alphanum:'Please use only letters (a-z) or numbers (0-9) only in this field. No spaces or other characters are allowed.',
	dateSuchAs:'Please enter a valid date such as {date}',
	dateInFormatMDY:'Please enter a valid date such as MM/DD/YYYY (i.e. "12/31/1999")',
	email:'Ungültige E-Mail Adresse!',
	url:'Please enter a valid URL such as http://www.google.com.',
	currencyDollar:'Please enter a valid $ amount. For example $100.00 .',
	oneRequired:'Please enter something for at least one of these inputs.',
	errorPrefix: 'Fehler: ',
	warningPrefix: 'Warning: ',

	//FormValidator.Extras

	noSpace: 'There can be no spaces in this input.',
	reqChkByNode: 'No items are selected.',
	requiredChk: 'This field is required.',
	reqChkByName: 'Please select a {label}.',
	match: 'This field needs to match the {matchName} field',
	startDate: 'the start date',
	endDate: 'the end date',
	currendDate: 'the current date',
	afterDate: 'The date should be the same or after {label}.',
	beforeDate: 'The date should be the same or before {label}.',
	startMonth: 'Please select a start month',
	sameMonth: 'These two dates must be in the same month - you must change one or the other.'

});
MooTools.lang.setLanguage('de-AT');
*/
/*
Element.Properties.send.get = function(options){
	if (options || !this.retrieve('send')){
		if (options || !this.retrieve('send:options')) this.set('send', options);
		this.store('send', new XSR($merge({'callback': 'callback'}, this.retrieve('send:options'))));
	}
	return this.retrieve('send');
};
*/

if (Falidator) {
    CustomValidator = new Class({
        Extends: Falidator,
        options: {
            rulesAttr: 'class',
            validateOn: 'blur',
            rules: {
                'email': function(value){
                    return value.test(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/);
                },
                'alpha': function(value){
                    return value.test(/^[a-zA-Z]+$/);
                },
                'numeric': function(value){
                    return value.test(/^[\d]+$/);
                },
                'alpha-num': function(value){
                    return value.test(/\w/);
                },
                'maxlength': function(value, opt){
                    return (value.length <= opt[0]);
                },
                'minlength': function(value, opt){
                    return (value.length >= opt[0]);
                },
                'min-value': function(value, opt){
                    return (value.toInt() >= opt[0]);
                },
                'max-value': function(value, opt){
                    return (value.toInt() <= opt[0]);
                },
                'range': function(value, opt){
                    var v = value.toInt();
                    return (v >= opt[0] && v <= opt[1]);
                },
                'differs': function(value, opt){
                    return !opt.contains(value);
                },
                'regexp': function(value, opt){
                    return new RegExp(opt[0], opt[1] || '').test(value);
                },
				'sameas': function(value, opt){
					var other = $(opt[0]).get('value');
					return (value === other);
				}
            },
			messages: {
				"required": "Bitte ausfüllen",
				"email": "Ungültige Email-Adresse",
				"alpha": "Nur Buchstaben erlaubt. a-Z",
				"numeric": "Nur Ziffern erlaubt. 0-9",
				"alpha-num": "Nur alpha-numerische Zeichen erlaubt",
				"maxlength": "Zuviele Zeichen.",
				"minlength": "Mindestens {0} Zeichen eingeben",
				"min": "Nummer zu klein!",
				"max": "Nummer zu groß!",
				"range": "Nummer ist außerhalb des erlaubten Bereichs. {0}-{1}",
				"differs": "Wert muss sich unterscheiden",
				"regexp": "Regexp invalid message",
				"sameas": "Werte sind unterschiedlich" 
			},
            
            onInvalidForm: function(fields){
            },
            
            onInvalidField: function(field, messages){
                field.getParent().getElements('span.error-cont').destroy();
                field.removeClass(this.options.validClass).addClass(this.options.invalidClass);
                var error_cont = new Element('span', {
                    'class': 'error-cont'
                }).inject(field, 'before');
                
                messages.each(function(msg){
                    new Element('span', {
                        'id': $pick(field.get('id'), field.get('name'), field.get('tag')) + '_label',
                        'class': 'error-msg',
                        'text': msg
                    }).inject(error_cont);
                });
            },
            
            onValidField: function(field){
                field.getParent().getElements('span.error-cont').destroy();
                field.removeClass(this.options.invalidClass).addClass(this.options.validClass);
            },
            
            onFieldFocus: function(e, field){
            },
            
            onFieldBlur: function(e, field){
            }
        }
    });
}

window.addEvent('domready', function(){
	$$('.content-container').getElements('a[rel!="milkbox[gallery]"]').each(function(el){
		if(el.getFirst('img')){
			el.set('rel', 'milkbox[content]');
		}
	});
	
	milkbox.reloadGalleries();
	
	var queryString = window.location.search;
	
	if(queryString.contains('code')){
		$$('input[name=os0]').set('value', queryString.split('=')[1]);
	}
	
	var form = $('form-registry');
	if (form) {
		var v = new CustomValidator(form, {
			ajax: false
			/*
ajax: {
				onSuccess: function(ret){
					if (ret['status']) {
						if (ret.status == 'saved') {
							form.destroy();
							
							$$('input[name=os0]').set('value', ret.code);
							$('sent-msg').setStyle('display', 'block');
						}
					}
				},
				onComplete: function(){
				}
			}
*/
		});
	}
});


Cufon.replace('#top-menu a, .cufon', {
	fontFamily: 'Myriad Pro',
	hover: true
});
