﻿/// <reference path="jquery-1.4.2-vsdoc.js" />

function createCookie(name, value, days) {
    var expires;
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        expires = "; expires=" + date.toGMTString();
    }
    else expires = "";
    document.cookie = name + "=" + value + expires + "; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') c = c.substring(1, c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
    }
    return null;
}

(function($) {

    $.fn.checked = function(value) {

        if(value === true || value === false) {
            // Set the value of the checkbox
            $(this).each(function(){ this.checked = value; });
        } else if(value === undefined || value === 'toggle') {
            // Toggle the checkbox
            $(this).each(function(){ this.checked = !this.checked; });
        }
    };

    $.MonthSelectionChanged = function(CheckBoxListClientID, allOption) {
        var SelectedCheckBox = '';
        var checkBoxes = $(CheckBoxListClientID + ' input');
        var i = 0;
        for (i = 0; i < checkBoxes.length; i++) {
            if (checkBoxes[i].type == 'checkbox' && checkBoxes[i].checked == true) {
                var label = $(checkBoxes[i]).parent().children('label');
                SelectedCheckBox += label[0].innerHTML + ' ';
            }
        }
        $(allOption).attr('checked', SelectedCheckBox == '');
    }
    $.MonthAnySelectionChanged = function(CheckBoxListClientID, allOption) {
        var SelectedCheckBox = '';
        var checkBoxes = $(CheckBoxListClientID + ' input');
        var i = 0;
        for (i = 0; i < checkBoxes.length; i++) {
            if (checkBoxes[i].type == 'checkbox') {
                $(checkBoxes[i]).attr('checked', !$(allOption).attr('checked'));
            }
        }
    }

    $.VictorParseToJsDate = function(aspDate) {
        return new Date(parseInt(aspDate.substr(6)));
    }

    //Returns null or the date, if "true" is specified for justDate, the time will not be displayed
    $.VictorParseDate = function(aspDate, justDate) {
        if (aspDate == null) return null;
        if (justDate == null) justDate = false;

        var date = $.VictorParseToJsDate(aspDate);
        if (justDate) {
            return $.datepicker.formatDate('D, dd M yy', date);
        } else {
            return $.datepicker.formatDate('D, dd M yy', date) + ' - ' + $.VictorParseTime(aspDate);
        }

        return null;
    }

    $.VictorParseTime = function(aspDate) {
        var date = $.VictorParseToJsDate(aspDate);

        var a_p = '';
        var hour = date.getHours();
        var min = date.getMinutes();

        a_p = hour < 12 ? 'am' : 'pm';

        if (hour < 12) {
            a_p = 'am';
        } else {
            a_p = 'pm';
            hour = hour - 12
        }

        if (hour == 0) hour = 12;

        var minString = "";
        if (min.length == 1) {
            minString = "0" + min.toString();
        } else {
            minString = min.toString();
        }
        if (min == 0) minString = "00";

        return hour + ":" + minString + a_p;
    }

    $.CreateErrorDialog = function(jsonErrorList) {
        var sb = '<ul>';
        $.each(jsonErrorList, function() {
            sb += '<li>';
            sb += this;
            sb += '</li>';
        });
        sb += '</ul>';

        $.CreateMessage('Unable to Proceed', sb);
    }

    $.CreateMessage = function(title, message) {
        $('<div>').html(message).dialog({
            title: title,
            modal: true,
            buttons: { OK: function() { $(this).dialog('destroy'); } },
            close: function() {
                $(this).dialog('destroy');
            }
        });
    }

    $.CreateConfirmation = function(title, message, okFunction, cancelFunction) {
        if (okFunction == null || okFunction == undefined) okFunction = $.noop;
        if (cancelFunction == null || cancelFunction == undefined) cancelFunction = $.noop;

        $('<div>').html(message).dialog({
            title: title,
            modal: true,
            buttons: { OK: function() { $(this).dialog('destroy'); okFunction(); }, Cancel: function() { $(this).dialog('destroy'); cancelFunction(); } },
            close: function() {
                $(this).dialog('destroy');
            }
        });
    }

    $.SelectText = function(element) {
        var text = document.getElementById(element);
        if ($.browser.msie) {
            var textRange = document.body.createTextRange();
            textRange.moveToElementText(text);
            textRange.select();
        } else if ($.browser.mozilla || $.browser.opera) {
            var selection = window.getSelection();
            var range = document.createRange();
            range.selectNodeContents(text);
            selection.removeAllRanges();
            selection.addRange(range);
        } else if ($.browser.safari) {
            var safariSelection = window.getSelection();
            safariSelection.setBaseAndExtent(text, 0, text, 1);
        }
    }

    //Use this if you want to test to see if a string = a value, or if it's a concatenation, one of the values = a value
    //You can't just use indexOf() because that will return true in some cases unexpectedly
    //e.g. if value = 123; indexOf(12) will return true (or not return -1)
    $.StringConcatContains = function(string, value) {
        if (string == null || string == '') return false;

        //if it is a concatenation
        if (string.indexOf(',') != -1) {
            var array = string.split(',');
            for (var i in array) {
                if (array[i] == value) return true;
            }
            return false;
        }
        return string == value;
    }
    
    $.extend($.browser, {
        SafariMobile: navigator.userAgent.toLowerCase().match(/iP(hone|ad)/i) 
    });


   

        

    //Defaults
    $(document).ready(function() {
        // Support placeholder on pre-HTML5 browsers...  (ghost/watermark/hint text in input boxes) - simply add
        // the attribute placeholder='value' where value is the text to display when teh bx is empty...
        //$('input[placeholder],textarea[placeholder]').placeholder();

        //Ajax Defaults
        $.ajaxSetup({
            type: 'POST',
            contentType: 'application/json; charset=utf-8',
            dataType: 'json',
            cache: false,
            error: function(data) {
                $.CreateMessage("An Error occured", "Please try again later");
            }
        });

        //DatePicker Defaults
        /*$.datepicker.setDefaults({ showAnim: '', dateFormat: 'dd-MM-yy', minDate: 'today', showOn: 'both',
        buttonImage: "/Resources/styles/images/calendar.gif",
        buttonImageOnly: true
        });*/
        $.datepicker.setDefaults({
            buttonImage: "/Resources/styles/images/calendar.gif",
            buttonImageOnly: true,
            showAnim: '',
            dateFormat: 'dd/mm/yy',
            changeYear: true,
            showOn: 'both',
            showButtonPanel: false
        });
        
        var la = $('#loginlang').html();
        if (la == 2){
        	$.datepicker.regional['de'] = {
		closeText: 'schließen',
		prevText: '&#x3c;zurück',
		nextText: 'Vor&#x3e;',
		currentText: 'heute',
		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'],
		dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'],
		dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'],
		dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'],
		weekHeader: 'Wo',
		dateFormat: 'dd.mm.yy',
		firstDay: 1,
		isRTL: false,
		showMonthAfterYear: false,
		yearSuffix: ''};

            
            
            $.datepicker.setDefaults($.datepicker.regional['de']);
        }
    else{
    /* English/UK initialisation for the jQuery UI date picker plugin. */
/* Written by Stuart. */
jQuery(function($){
	$.datepicker.regional['en-GB'] = {
		closeText: 'Done',
		prevText: 'Prev',
		nextText: 'Next',
		currentText: 'Today',
		monthNames: ['January','February','March','April','May','June',
		'July','August','September','October','November','December'],
		monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
		'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
		dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
		dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
		dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'],
		weekHeader: 'Wk',
		dateFormat: 'dd/mm/yy',
		firstDay: 1,
		isRTL: false,
		showMonthAfterYear: false,
		yearSuffix: ''};
	$.datepicker.setDefaults($.datepicker.regional['en-GB']);
});

    
    
    }
        

        //Disable all actionButtons with disabled class (ToDo: check efficiency)
        $('a.actionButton.disabled').live('click', function() {
            return false;
        });

        if (typeof (getMemberCountPath) == 'string') {
            $.ajax({
                url: getMemberCountPath,
                data: JSON.stringify({}),
                success: function(data) {
                    if (data.d.success == true) {
                        $('.membersCount').text(data.d.count);
                        $('.membersCount').append('<span class="membersWord"> members</span>');
                        $('.membersImageCount').text(data.d.count);
                        if (data.d.count > 99)
                            $('.membersImageCount').css({ 'width': 100 });
                    }
                },
                error: function(data) { }
            });
        }
    });
})(jQuery)

