﻿function isNullOrEmpty(p) {
    return ((p == undefined) || (p == '') || (p == null));
}
function toStringFA(o) {
    if (o.toString() == '[object Window]') return;
    Str = '{';
    for (var key in o) {
        if (!o.hasOwnProperty || o.hasOwnProperty(key)) {
            if (o[key] != null)
                if (typeof (o[key]) == 'object')
                    Str += "'" + key + "':" + toStringFA(o[key]) + ",";
                else {
                    temp = "'";
                    if (typeof (o[key]) == 'boolean' || typeof (o[key]) == 'number') temp = "";
                    else if (o[key] != null && typeof (o[key]) == 'string') { o[key] = o[key].replace(/'/gi, "\\'"); }
                    Str += "'" + key + "':" + temp + o[key] + temp + ",";
                }
        }
    }
    if (Str.length > 1) Str = Str.substring(0, Str.length - 1);
    return Str += "}";
}
var cache = [];
function CheckCache(url, datao) { if (typeof (datao) == 'object') { datao = toStringFA(datao); } return cache[datao]; }
function GoToServer(url, datao, onsuccess, lid, usecache, LoadingUrl) {
    if (usecache == null) usecache = false;
    if (LoadingUrl == null) LoadingUrl = 'http://Img.Tebyan.net/MainParts/Persian/Thesarus/Tcore/loading.gif';
    if (typeof (datao) == 'object') { datao = toStringFA(datao); }

    if (usecache && cache[datao] != null) { return onsuccess(cache[datao], 'fromcache'); }
    try {
        jQuery.ajax({
            type: 'POST', url: url, contentType: 'application/json; charset=utf-8', dataType: "json", data: datao,
            success: function (d, s) {
                cache[datao] = d;
                onsuccess(d, s);
                if (lid != null) {
                    lid.parent().find('.loadingDiv').fadeOut(1, function () { $(this).remove(); $('.parentDiv1389').css({ "position": "static" }) });
                    lid.parent().css({ position: 'static' });
                }
            },
            beforeSend: function () {
                if (lid != null) {

                    if (!lid.parent().hasClass('parentDiv1389'))
                        lid.wrap('<div class="parentDiv1389" style="position:relative;"></div>');
                    else $('.parentDiv1389').css({ 'position': 'relative' });
                    parentDiv = lid.parent('.parentDiv1389');

                    parentDiv.append('<div class="loadingDiv"></div>');
                    LoadingDiv = parentDiv.find('.loadingDiv');
                    LoadingDiv.css({ 'position': 'absolute', 'top': '0px', 'left': '0px', 'width': lid.width(), 'height': '100%', 'background': '#EEE url(' + LoadingUrl + ') no-repeat center', 'z-index': '100', 'opacity': '0.5' });


                }
            },
            error: function (xmlHttpRequest, status, err) {
                if (lid != null) {
                    lid.parent().find('.loadingDiv').fadeOut(1, function () { $(this).remove(); $('.parentDiv1389').css({ 'position': 'static' }) });
                    lid.parent().css({ position: 'static' });
                }
            }
        });
    }
    catch (e) { }
}

function CheckDate(d) {
    if (d.toString().length < 2)
        d = "0" + d;
    return d;
}
function PTG(date) {
    if (date != '') {
        date = date.replace(/-/gi, '/');
        var t = date.split('/');
        if (t[0][0] == '0') t[0] = t[0][1];
        if (t[1][0] == '0') t[1] = t[1][1];
        if (t[2][0] == '0') t[2] = t[2][1];
        if (t[2].length == 4)
            var d = jd_to_gregorian(persian_to_jd(parseInt(t[2]), parseInt(t[1]), parseInt(t[0])));
        else
            var d = jd_to_gregorian(persian_to_jd(parseInt(t[0]), parseInt(t[1]), parseInt(t[2])));
        return CheckDate(d[0]) + "/" + CheckDate(d[1]) + "/" + CheckDate(d[2]);
    }
}

var cache = [];
function GTP(date, form2) {
    if (date != null && date != '') {
        date = date.replace(/\//gi, '-');
        var t = date.split('-');
        var d = jd_to_persian(gregorian_to_jd(parseInt(t[0]), parseInt(t[1]), parseInt(t[2])));
        if (form2) {
            time = date.split(' ')[1];
            hour = CheckDate(time.split(':')[0]);
            min = CheckDate(time.split(':')[1]);
            return CheckDate(d[0]) + "-" + CheckDate(d[1]) + "-" + CheckDate(d[2]) + ' ' + hour + ':' + min;
        }
        return CheckDate(d[2]) + "/" + CheckDate(d[1]) + "/" + CheckDate(d[0]);
    }
}
function GTH(date, form2) {
    if (date != null && date != '') {
        date = date.replace(/\//gi, '-');
        var t = date.split('-');
        var d = jd_to_islamic(gregorian_to_jd(parseInt(t[0]), parseInt(t[1]), parseInt(t[2])));
        if (form2) {
            time = date.split(' ')[1];
            hour = CheckDate(time.split(':')[0]);
            min = CheckDate(time.split(':')[1]);
            return CheckDate(d[0]) + "-" + CheckDate(d[1]) + "-" + CheckDate(d[2]) + ' ' + hour + ':' + min;
        }
        return CheckDate(d[2]) + "/" + CheckDate(d[1]) + "/" + CheckDate(d[0]);
    }
}

function GetDate(_date) {
    if (_date == null) return null;
    var _date = _date.replace(/\/Date\((.*?)\)\//gi, '$1');
    var date = new Date();
    date.setTime(_date)
    _date = date.getFullYear() + '-' + (parseInt(date.getMonth()) + 1) + '-' + date.getDate();
    return _date + ' ' + date.getHours() + ':' + date.getMinutes();
}


var Areas = '';
var AncorArray = new Array();
var AncorAreas = new Array();
function ManageHash(_Areas) {
    Areas = _Areas;
    AncorAreas = Areas.split(',');
    document.location.hash = '#' + AncorArray.length;
}
function UpdateHash() {
    if (document.location.hash == '') {
        document.location.reload();
        return;
    }
    var u = document.location.hash.substring(1);
    if (AncorArray[u] != null) {
        
        var NewArray = new Array();
        for (var p = 0; p < AncorAreas.length; ++p) {
            NewArray[p] = $(AncorAreas[p]).html();
        }
        AncorArray[u] = NewArray;
    }
}
$(window).bind('hashchange', function () {
    if (document.location.hash == '') {
        document.location.reload();
        return;
    }
    var u = document.location.hash.substring(1);
    if (AncorArray[u] == null) {
        var NewArray = new Array();
        for (var p = 0; p < AncorAreas.length; ++p) {
            NewArray[p] = $(AncorAreas[p]).html();
        }
        AncorArray[u] = NewArray;
    }
    else {
        for (var p = 0; p < AncorArray[u].length; ++p) {
            $(AncorAreas[p]).html(AncorArray[u][p]);
        }
    }
 });
