if (!lang) {
    var lang = 'de' ;
}

var formChanged = 0; 



jQuery(window).bind('beforeunload', function(){
    //if (jQuery("#dataForm").length > 0 && jQuery('#dataForm [name^="tx_mgskiresort_pi2[data]"]').serialize() != jQuery('#dataForm input[name="tx_mgskiresort_pi2[oldVal]"]').val()) {
    if (formChanged == 1) {    
        if (lang=='de') {
            return 'Sie haben die Daten noch NICHT gespeichert.';    
        } else {
            return 'Your data have NOT yet been saved.';    
        }
        
    }
});

jQuery(document).ready(function() {
    
    jQuery('#dataForm').live('change',function() {
        formChanged = 1;
    });

    jQuery('input:submit').button();
    jQuery('input:button').button();

    jQuery('input:text.time').mask('99:99');

});

function showDialog(title,message,options){

    jQuery('#dialog').attr('title', title);
    jQuery('#dialog').find('p').html(message); 

    x = jQuery('#dataForm').position().left + jQuery('#dataForm').outerWidth() / 2 - 75;
    y = jQuery('#dataForm').position().top ;
    y = 200; 

    defaultoptions = {
        modal: true,
        position: [x,y],
        width: 400,
        buttons: false,
        title: title
    }  
    options = jQuery.extend({}, defaultoptions,options);
    jQuery('#dialog').dialog(options);   

}

function isValidDate(date_string, format) {
    var days = [0,31,28,31,30,31,30,31,31,30,31,30,31];
    var year, month, day, date_parts = null;
    var rtrn = false;
    var decisionTree = {
        'm/d/y':{
            're':/^(\d{1,2})[./-](\d{1,2})[./-](\d{2}|\d{4})$/,
            'month': 1,'day': 2, year: 3
        },
        'mm/dd/yy':{
            're':/^(\d{1,2})[./-](\d{1,2})[./-](\d{2})$/,
            'month': 1,'day': 2, year: 3
        },
        'mm/dd/yyyy':{
            're':/^(\d{1,2})[./-](\d{1,2})[./-](\d{4})$/,
            'month': 1,'day': 2, year: 3
        },
        'dd/mm/yyyy':{
            're':/^(\d{1,2})[./-](\d{1,2})[./-](\d{4})$/,
            'month': 2,'day': 1, year: 3
        },
        'y/m/d':{
            're':/^(\d{2}|\d{4})[./-](\d{1,2})[./-](\d{1,2})$/,
            'month': 2,'day': 3, year: 1
        },
        'yy/mm/dd':{
            're':/^(\d{1,2})[./-](\d{1,2})[./-](\d{1,2})$/,
            'month': 2,'day': 3, year: 1
        },
        'yyyy/mm/dd':{
            're':/^(\d{4})[./-](\d{1,2})[./-](\d{1,2})$/,
            'month': 2,'day': 3, year: 1
        }

    };
    var test = decisionTree[format];

    if (test) {
        date_parts = date_string.match(test.re);
        if (date_parts) {
            year = date_parts[test.year];
            month = date_parts[test.month];
            day = date_parts[test.day];
            
            test = (month == 2 && 
            isLeapYear() && 
            29 || 
            days[parseInt(month,10)] || 0);
            
            rtrn = 1 <= day && day <= test;

        }
    }

    function isLeapYear() {
        return (year % 4 != 0 ? false : 
        ( year % 100 != 0? true: 
        ( year % 1000 != 0? false : true)));
    }
    return rtrn;
}//eof isValidDate


jQuery(document).ready(function() {

    jQuery.validator.addMethod("noHTML", function(value, element) {
        if (this.optional(element) ||  !/<.*?>/.test(value) ) {
            return true;
        }
    }, jQuery.validator.messages.noHTML);

    jQuery.validator.addMethod("isNumber", function(value, element) {
        theVal = '' + value;
        theVal = theVal.replace(/,/g, '.'); 
        // Tolle seite: http://lawrence.ecorp.net/inet/samples/regexp-validate2.php
        return /^[-+]?[0-9]+(\.[0-9]*)?$/.test(theVal)  ||  this.optional(element)


    }, jQuery.validator.messages.isNumber);

    jQuery.validator.addMethod("double", function(value, element, param) {
        
        var theVal = '' + value;
        theVal = theVal.replace(/[^0-9,\.-]/g, '');
        var negative = theVal.substring(0, 1) === '-';

        theVal = theVal.replace(/-/g, '');
        theVal = theVal.replace(/,/g, '.');
        if (theVal.indexOf('.') == -1) {
            theVal += '.0';
        }

        var parts = theVal.split('.');
        var dec = parts.pop();
        if (dec.length <= param ||  this.optional(element) ) {
            return true;    
        }


    }, jQuery.validator.messages.double);


    jQuery.validator.addMethod("myMax", function(value, element, param) {
        var theVal = '' + value;
        theVal = theVal.replace(/[^0-9,\.-]/g, '');
        var negative = theVal.substring(0, 1) === '-';
        theVal = theVal.replace(/-/g, '');
        theVal = theVal.replace(/,/g, '.');

        return this.optional(element) || theVal <= param
    }, jQuery.validator.messages.myMax);

    jQuery.validator.addMethod("myDate", function(value, element) {
        
        if (lang == 'de') {
            format = 'dd/mm/yyyy';
        } else {
            format = 'yyyy/mm/dd'; 
        }
        return this.optional(element) || isValidDate(value, format);  
    }, jQuery.validator.messages.integer);

    jQuery.validator.addMethod("integer", function(value, element) {
        if (this.optional(element) || ( /^-?\d+$/.test(value) && !/^0\d+$/.test(value))) {
            return true;
        }
    }, jQuery.validator.messages.integer);

    jQuery.validator.addMethod("notNegative", function(value, element) {
        var theVal = '' + value;
        var negative = theVal.substring(0, 1) === '-';
        if (this.optional(element) || !negative) {
            return true;
        }
    }, jQuery.validator.messages.notNegative);


    if (lang == 'de' ) {
        jQuery.extend(jQuery.validator.messages, {
            required: "Dieses Feld ist ein Pflichtfeld.",
            maxlength: jQuery.validator.format("Geben Sie bitte maximal {0} Zeichen ein."),
            minlength: jQuery.validator.format("Geben Sie bitte mindestens {0} Zeichen ein."),
            rangelength: jQuery.validator.format("Geben Sie bitte mindestens {0} und maximal {1} Zeichen ein."),
            email: "Geben Sie bitte eine gültige E-Mail Adresse ein.",
            url: "Geben Sie bitte eine gültige URL ein.",
            date: "Bitte geben Sie ein gültiges Datum ein.",
            myDate: "Bitte geben Sie ein gültiges Datum ein.",
            number: "Geben Sie bitte eine Nummer ein.",
            digits: "Geben Sie bitte nur Ziffern ein.",
            equalTo: "Bitte denselben Wert wiederholen.",
            range: jQuery.validator.format("Geben Sie bitten einen Wert zwischen {0} und {1} ein."),
            max: jQuery.validator.format("Geben Sie bitte einen Wert kleiner oder gleich {0} ein."),
            myMax: jQuery.validator.format("Geben Sie bitte einen Wert kleiner oder gleich {0} ein."),
            min: jQuery.validator.format("Geben Sie bitte einen Wert größer oder gleich {0} ein."),
            creditcard: "Geben Sie bitte ein gültige Kreditkarten-Nummer ein.",
            double: "Bitte nur maximal eine Stelle nach dem Komma.",
            integer: "Geben Sie bitte eine ganze Zahl ohne Komma ein.",
            notNegative: "Geben Sie bitte eine positive Zahl ein.",
            isNumber: "Geben Sie bitte eine Zahl ein." ,
            noHTML: "Bitte verwenden sie kein HTML"

        });
    } else {
        jQuery.extend(jQuery.validator.messages, {
            myMax: jQuery.validator.format("Please enter a value less than or equal to {0}."),
            myDate: "Please enter a valid date.",
            double: "Only one decimal place please.",
            integer: "Please enter a number without a decimal.",
            notNegative: "Please enter a positive number.",
            isNumber: "Please enter a number.",
            noHTML: "Please do not use an HTML."
        });
    }
});

jQuery(function($){
    $.datepicker.regional['de'] = {clearText: 'löschen', clearStatus: 'aktuelles Datum löschen',
        closeText: 'schließen', closeStatus: 'ohne Änderungen schließen',
        prevText: '&#x3c;zurück', prevStatus: 'letzten Monat zeigen',
        nextText: 'Vor&#x3e;', nextStatus: 'nächsten Monat zeigen',
        currentText: 'heute', currentStatus: '',
        monthNames: ['Januar','Februar','März','April','Mai','Juni',
        'Juli','August','September','Oktober','November','Dezember'],
        monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun',
        'Jul','Aug','Sep','Okt','Nov','Dez'],
        monthStatus: 'anderen Monat anzeigen', yearStatus: 'anderes Jahr anzeigen',
        weekHeader: 'Wo', weekStatus: 'Woche des Monats',
        dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'],
        dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'],
        dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'],
        dayStatus: 'Setze DD als ersten Wochentag', dateStatus: 'Wähle D, M d',
        dateFormat: 'dd.mm.yy', firstDay: 1, 
        initStatus: 'Wähle ein Datum', isRTL: false};

    $.datepicker.regional['en'] = {dateFormat: 'yy-mm-dd'};

    if (lang=='de') {
        $.datepicker.setDefaults($.datepicker.regional['de']);
    } else {
        $.datepicker.setDefaults($.datepicker.regional['en']);
    }
});
function saveFormSerialized() {
    var serialized = jQuery('#dataForm [name^="tx_mgskiresort_pi2[data]"]').serialize();   
    jQuery('#dataForm input[name="tx_mgskiresort_pi2[oldVal]"]').val(serialized);
}

function showLoading(){
	if(jQuery("#loader").length == 0){
		jQuery('<div id="loader"><div id="loaderInner"><img src="/typo3conf/ext/mg_skiresort/res/img/ajax-loader_contactForm.gif" /></div></div>').appendTo('body');
		jQuery("#loader").show();
		//jQuery('#loaderInner').css('background-image','url(/typo3conf/ext/mg_skiresort/res/img/ajax-loader_contactForm.gif)');
		//jQuery('#loader').fadeTo(100,1);    

	}

}

//hide loading bar
function hideLoading() {
	jQuery('#resortList').show();
	jQuery("#loader").fadeTo(100, 0);
	/*jQuery('#resortList').fadeTo(250, 1);*/

	jQuery("#loader").remove();

};