﻿if (!window.DYP) {
    DYP = {};
}

function UpdateURL(url)
{
    if (url.indexOf('?') > 0)
    {
        return url + '&csrf=' + CSRF;
    }
    else
    {
        return url + '?csrf=' + CSRF;
    }
}

DYP.SyncAjax = {
    requestJson: function(url, success, error, settings) {
        settings = $.extend({
            url: UpdateURL(url),           
            type: 'POST',
            success: function(response) {
                success(response);
            },
            error: function(response) {   
                if (error) {
                    error(response);
                }            
            }
        }, settings);
        $.ajax(settings);
    },
    requestJsonWithJsonData: function(url, data, success, error, settings) {
        settings = $.extend({
            url: UpdateURL(url),
            data: data,
            type: 'POST',
            contentType: 'application/json; charset=utf-8',
            success: function(response) {
                success(response);
            },
            error: function(response) {
                error(response);
            }
        }, settings);
        $.ajax(settings);
    }
}
DYP.CollectFormValues = function(form) {
	var params = {},
	    fields = $(form).find('input, select, textarea'),
	    field,
	    name,
	    isCheckbox,
	    isButton,
	    i;
	for (i = fields.length - 1; i > -1; i--) {
	    field = fields.get(i);
	    isCheckbox = field.type == 'checkbox' || field.type == 'radio';
	    isButton = field.type == 'button' || field.type == 'submit';
	    if ((!isButton || this == field) && (!isCheckbox || field.checked)) {
	        name = field.name;
	        if (name) {
	            if (!params[name]) {
	                params[name] = [];
	            }
	            params[name].push(field.value);
	        }
	    }
	}
	for (var prop in params) {
	    params[prop] = params[prop].join(',');
	}
	return params;
}

String.format = function () {
    var s = arguments[0];
    for (var i = 0; i < arguments.length - 1; i++) {
        var reg = new RegExp("\\{" + i + "\\}", "gm");
        s = s.replace(reg, arguments[i + 1]);
    }

    return s;
};

//trim function 
function trimMe(str) {
    var str = str.replace(/^\s\s*/, ''),
		ws = /\s/,
		i = str.length;
    while (ws.test(str.charAt(--i)));
    return str.slice(0, i + 1);
}

$.fn.monobind = function (eventType, callback) {
    return this.unbind(eventType, callback).bind(eventType, callback);
};

// get selected text in a textbox
$.fn.getSelection = function () {
    var ss,
        se,
        element = this[0],
        selection = null;
    if (element) {
        ss = element.selectionStart;
        se = element.selectionEnd;
        if (typeof ss == "number" && typeof se === "number") {
            selection = element.value.substring(ss, se);
        }
        else { selection = ""; }
    }
    return selection;
};


$(document).ready(function () {
    // add .clear-field to clear the text inputs when the user focus on them
    $(".clear-field").focus(function () {
        $(this).val("");
    });

    /* Tag inner Wrapper */
    $('.fnc-wrap-span').wrapInner(function () {
        return "<span></span>";
    });

    /* External Links */
    $('.external').click(function() {
        var url = $(this).attr("href");
        window.open(url);
    return false;
    });
})


//Cookies Managment
function setCookie(name, value, days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        var expires = "; expires=" + date.toGMTString();
    }
    else var expires = "";
    document.cookie = name + "=" + value + expires + "; path=/";
}

function getCookie(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 deleteCookie(name) {
    setCookie(name, "", -1);
}

function removePlanCookies() {
    deleteCookie('mainreason');
    deleteCookie('gain');
    deleteCookie('lifestyle');
    deleteCookie('datepkr');
    deleteCookie('birthday-input');
    deleteCookie('gender-select');
    deleteCookie('activitylevel-h');
    deleteCookie('weight-h');
    deleteCookie('height1-h');
    deleteCookie('height2-h');
    deleteCookie('eventdate-goal-h');
    deleteCookie('event-goal-h');
    deleteCookie('tolose-h');
}



