﻿/// <reference path="jquery-1.4.2.min-vsdoc.js" />
//jQuery.helpers: functrions used to help in everyday jQuery coding

//Console Log function
cl = function (input) {
    if (console != undefined) {
        console.log(input);
    }
}

$.reminder = function () {
    cl('One line if/else:   [condition] ? [if condition is true] : [else]');
}

$.exeptionbrowser = function (inversion) {
    var str = 'MSIE';
    if (navigator.appVersion.match(str)) {
        var version = navigator.appVersion;
        version = version.substr(version.indexOf(str) + (str.length + 1), 1);
        version = parseInt(version);
        if (version <= inversion)
            return true;
        else
            return false;
    }
    else
        return false;
}

$.sgSetCookie = function (name, value) {
    
}

$.fn.filterKeys = function () {
    $('.filterkeys', this).unbind('keypress.filterkeys').bind('keypress.filterkeys', function (e) {
        var k = e.which;
        if (!k || k == 8) return true;
        var pattern = $(this).attr('data-filterkeys');
        if (pattern) {
            try {
                var filterRegexp = new RegExp(pattern);
            } catch (err) {
                return true;
            }
            var key = String.fromCharCode(k);
            if (!filterRegexp.test(key)) return false;
        }
    });
    return this;
}

//EXAMPLE:
/********************************************************************************************************
$('#confirmReturnManagementSubmit').sgValidation([
    { input: '#returnManagementRef', msg: 'Du måste fylla i referens' },
    { input: '#returnManagementEmail', msg: 'Du måste fylla i korrekt e-postadress', patternt: 'mail' }
]);
********************************************************************************************************/
$.fn.sgValidation = function (validate) {
    var v, flag, items, item, errorcounter;
    var msg = '';
    var mailRegExp = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
    $(this).click(function () {
        flag = true;
        for (var i in validate) {
            v = $.extend({
                input: '',
                pattern: '',
                msg: '',
                isText: true,
                isRadio: false,
                isCheckbox: false,
                isTextarea: false,
                isDropdown: false
            }, validate[i]);

            //if input selector is defined not empty
            if ((v.input != '') && (v.input != undefined)) {
                //creating array of the objects we get from $() selection
                items = $.makeArray($(v.input));
                //looping all objects
                errorcounter = 0;
                for (var x in items) {
                    //saving current object in variable for easier access
                    item = $(items[x]);
                    //if input is type text and empty
                    if (v.isText) {
                        if (v.pattern != '') {
                            if (v.pattern == 'mail') {
                                if (!item.val().match(mailRegExp)) {
                                    flag = false;
                                    if (errorcounter == 0)
                                        msg += v.msg + '\n';
                                    errorcounter++;
                                }
                            }
                            else {
                                if (item.val() != v.pattern) {
                                    flag = false;
                                    if (errorcounter == 0)
                                        msg += v.msg + '\n';
                                    errorcounter++;
                                }
                            }
                        }
                        else {
                            if (item.val() == '') {
                                flag = false;
                                if (errorcounter == 0)
                                    msg += v.msg + '\n';
                                errorcounter++;
                            }
                        }
                    }
                } //end for (var x in items)
            } //end if ((v.input != '') && (v.input != undefined))
        } //end for

        if (!flag)
            alert(msg);

        msg = '';

        return flag;
    });
}

String.prototype.trim = function () {
    return
    (this.replace(/^[\s\xA0]+/, "").replace(/[\s\xA0]+$/, ""))
}

String.prototype.startsWith = function (str)
{ return (this.match("^" + str) == str) }

String.prototype.endsWith = function (str)
{ return (this.match(str + "$") == str) }

