﻿var infProxy = {
    cacheTime: new Date().getTime(),
   // proxyUrl: 'http://localhost:50110/Infors.Portal.Website/InfProxy.aspx',
    //proxyUrl: 'http://modulbilgisayar.inforcebt.com/InfProxy.aspx',
     proxyUrl: 'http://www.modulbilgisayar.net/InfProxy.aspx',
    strFormat: function(str, args) {
        if (!args || !args.length) {
            return str;
        }
        for (var i = 0; i < args.length; i++) {
            str = str.replace('{' + i + '}', args[i]);
        }
        return str;
    },

    addLoadingImpl: function(o) {
        if (o.attr('ldng') != '1') { return; }
        o.prepend("<div style='text-align:center;width:'100%'><img src='images/webdesign/load.gif'/></div>");
    },
    addLoading: function(o) {
        o.attr('ldng', '1');
        setTimeout(function() { infProxy.addLoadingImpl(o); }, 100);
    },



    checkResponse: function(msg) {
        if (msg == '') {
            document.location.href = document.location.href;
            return false;
        }
        return true;
    },

    setupDropdown: function(config) {
        //jQuery(document).ready(function($) {
        (function($) {
            var $changer = $('#' + config.changerId);
            var $content = $('#' + config.contentId);
            var ev = function() {
                $.ajax({
                    type: 'GET',
                    async: false,
                    url: infProxy.proxyUrl + '?Type=' + config.type + '&Params=' + infProxy.strFormat(config.params, [this.value]) + '&t=' + infProxy.cacheTime,
                    //contentType: 'application/json; charset=utf-8',
                    success: function(msg) {
                        if (!infProxy.checkResponse(msg)) { return; }
                        $content.html(msg);
                    }
                });
            };
            $changer.bind('change', ev).bind('keyup', ev);
        })(jQuery);
    },

    ajax: function(config) {
        //jQuery(document).ready(function($) {
        (function($) {
            var $content = $('#' + config.contentId);
            infProxy.addLoading($content);
            $.ajax({
                type: 'GET',
                url: infProxy.proxyUrl + '?Type=' + config.type + '&Params=' + config.params + '&t=' + ((config.cache != false) ? infProxy.cacheTime : new Date().getTime()),
                //contentType: 'application/json; charset=utf-8',
                success: function(msg) {
                    $content.attr('ldng', null);
                    if (!infProxy.checkResponse(msg)) { return; }
                    $content.html(msg);
                    if (config.onSuccess) {
                        config.onSuccess(msg);
                    }
                }
            });
        })(jQuery);
    },

    ajaxBack: function(config) {
        //jQuery(document).ready(function($) {
        (function($) {
            $.ajax({
                type: 'POST',
                url: infProxy.proxyUrl,
                contentType: "application/x-www-form-urlencoded;charset=ISO-8859-9", 
                data: 'Type=' + config.type + '&Params=' + config.params,
                //contentType: 'application/json; charset=utf-8',
                success: function(msg) {
                    if (config.onSuccess) {
                        if (!infProxy.checkResponse(msg)) { return; }
                        config.onSuccess(msg);
                    }
                }
            });
        })(jQuery);
    },

    ajaxPost: function(config) {
        //jQuery(document).ready(function($) {
        (function($) {
            var $content = (config.content) ? config.content : $('#' + config.contentId);
            infProxy.addLoading($content);
            $.ajax({
                type: 'POST',
                url: infProxy.proxyUrl + '?Type=' + config.type + '&t=' + infProxy.cacheTime,
                data: 'Params=' + config.params,
                //contentType: 'application/json; charset=utf-8',
                success: function(msg) {
                    $content.attr('ldng', null);
                    if (!infProxy.checkResponse(msg)) { return; }
                    $content.html(msg);
                    if (config.onSuccess) {
                        config.onSuccess(msg);
                    }
                },

                error: function(XMLHttpRequest, textStatus) {
                    $content.attr('ldng', null);
                    $content.html("<div style=\"color:red\">Hata: \"" + textStatus + "\"</div>");
                }
            });
        })(jQuery);
    }
};



(function($) {
    $.fn.extend({
        infTabs: function(config) {
            return this.each(function() {
                var $ul = $(this);
                this.config = config;
                var $tabs = $ul.find('li');
                $ul.css({ 'list-style': 'none', 'margin-left': '0px', 'padding': '3px 0px 3px 0px' });
                $tabs.css({ 'float': 'left' }).attr('class', config.tabCss);
                var activeTab = (config.activeTab) ? config.activeTab : 0;
                $($tabs.get($tabs.length - 1)).attr('class', config.tabLastCss);
                if (activeTab == 0) {
                    $($tabs.get(0)).attr('class', config.tabFirstActiveCss).attr('classx', config.tabFirstCss);
                } else {
                    $($tabs.get(0)).attr('class', config.tabFirstCss).attr('classx', config.tabFirstCss);
                    if (activeTab == $tabs.length - 1) {
                        $($tabs.get(activeTab)).attr('class', config.tabLastActiveCss).attr('classx', config.tabLastCss);
                    } else {
                        $($tabs.get(activeTab)).attr('class', config.tabActiveCss).attr('classx', config.tabCss);
                    }
                }
                $ul.get(0).activeTab = function() {
                    var $coll = $ul.find("li[class='" + config.tabActiveCss + "'],li[class='" + config.tabFirstActiveCss + "'],li[class='" + config.tabLastActiveCss + "']");
                    if ($coll.length == 0) { return null; }
                    return $($coll.get(0));
                };
                $ul.get(0).setActiveTab = function(activeTab) {
                    var config = this.config;
                    activeTab = parseInt(activeTab);
                    var $oldActiveTab = this.activeTab();
                    if ($oldActiveTab) { $oldActiveTab.attr('class', $oldActiveTab.attr('classx')); }
                    var $tabs = $(this).find('li');
                    $($tabs.get($tabs.length - 1)).attr('class', config.tabLastCss);
                    if (activeTab == 0) {
                        $($tabs.get(0)).attr('class', config.tabFirstActiveCss).attr('classx', config.tabFirstCss);
                    } else {
                        $($tabs.get(0)).attr('class', config.tabFirstCss).attr('classx', config.tabFirstCss);
                        if (activeTab == $tabs.length - 1) {
                            $($tabs.get(activeTab)).attr('class', config.tabLastActiveCss).attr('classx', config.tabLastCss);
                        } else {
                            $($tabs.get(activeTab)).attr('class', config.tabActiveCss).attr('classx', config.tabCss);
                        }
                    }
                }

                $tabs.click(function() {

                    $ul.find('li[classx]').each(function(i, item) {
                        $(item).attr('class', $(item).attr('classx'));
                    });

                    var o = $(this);
                    var c = o.attr('class');
                    if (c == config.tabCss) { c = config.tabActiveCss; } else { if (c == config.tabFirstCss) { c = config.tabFirstActiveCss; } else { c = config.tabLastActiveCss; } }
                    o.attr('classx', o.attr('class'));
                    o.attr('class', c);

                    if (config.onChange) {
                        config.onChange(this);
                    }
                });
            });
        }
    });
})(jQuery); 


