function ps_CheckSubmit(itemPoints, minCount, check_login) {

    if (typeof (check_login) != "undefined") {
        if (!CheckUserLogIn()) {
            loginAsk.show();
            return false;
        }
    }

    if (itemPoints != null && typeof (itemPoints) != "undefined" && itemPoints.length >= minCount) {
        return true;
    }
    else {
        alert("You must select at least " + minCount + " points.");
        return false;
    }
}

function ps_ShowFound(res, base_name) {
    
    //var found_empty = $('#' + base_name + ' #found_empty');
    //var points_holder = $('#' + base_name + ' #found_points_holder');

    var found_empty = $('#' + base_name + '_found_empty');
    var points_holder = $('#' + base_name + '_found_points_holder');
    
    found_empty.show();

    points_holder.html("");
    var row_index = 0;
    
    if (res != null && res != "") {
        var jsondata = eval('(' + res + ')');
        if (jsondata.length > 0) {                        
            
            ps_SetFoundPointsArr(base_name, jsondata);
            found_empty.hide();
            
            var str = '';
            for (var i = 0; i < jsondata.length; i++) {
                var item = jsondata[i];
                str += ps_GetRowInfo(item, 1, row_index, base_name);
                row_index = row_index + 1;
            }
            points_holder.html(str);
        }
    }
}

function ps_ShowItemPoints(base_name) {
    
    //var item_points_holder = $('#' + base_name + ' #item_points_holder');
    //var item_points_empty = $('#' + base_name + ' #item_points_empty');

    var item_points_holder = $('#' + base_name + '_item_points_holder');
    var item_points_empty = $('#' + base_name + '_item_points_empty');
    
    var tempPoints = new Array()
    var itemPoints = ps_GetItemPointsArr(base_name);

    item_points_empty.show();
    item_points_holder.html("");

    var itemPoints = ps_GetItemPointsArr(base_name);

    var row_index = 0;
    if (itemPoints.length > 0) {
        item_points_empty.hide();
        var str = '';
        for (var i = 0; i < itemPoints.length; i++) {
            str += ps_GetRowInfo(itemPoints[i], 0, row_index, base_name);
            row_index = row_index + 1;
            tempPoints.push(itemPoints[i].ID)
        }
        item_points_holder.html(str);
    }

    $("#" + base_name + " input[name='Items']").attr("value", tempPoints);
}

function ps_GetRowInfo(item, is_add, row_index, base_name) {
    
    var subj = item.Subject;
    var descr = item.Body;

    if (subj == null)
        subj = "";

    if (descr == null)
        descr = "";

    $('#' + base_name + " .item_point_info .point_subject").text(subj);
    $('#' + base_name + " .item_point_info .point_description").text(descr);

    $('#' + base_name + " .item_point_info .item_point_href").attr( 
        { href: "javascript:ps_SelectItem(" + item.ID + ", " + is_add + ", '" + base_name + "')" });

    $('#' + base_name + " .item_point_info div").attr("class", "point_row_" + (row_index % 2));

    var item_html = $('#' + base_name + " .item_point_info").clone(true).get(0);
    
    item_html.style.display = "block";

    return item_html.innerHTML;
}

function ps_SelectItem(id, is_add, base_name) {

    var item;

    var itemPoints = ps_GetItemPointsArr(base_name);
    var foundPoints = ps_GetFoundPointsArr(base_name);
    
    if (is_add)
        item = ps_FindPointInFound(id, foundPoints);
    else
        item = ps_FindPointInItemsPoints(id, itemPoints);

    if (item != null) {
        if (is_add) {
            for (var i = 0; i < itemPoints.length; i++) {
                if (itemPoints[i].ID == item.ID)
                    return;
            }
            itemPoints.push(item);
        }
        else {
            var tmpArr = new Array();
            for (var i = 0; i < itemPoints.length; i++) {
                
                if (itemPoints[i].ID != item.ID)
                    tmpArr.push(itemPoints[i]);
            }
            itemPoints = tmpArr;
        }       
        
        ps_SetItemPointsArr(base_name, itemPoints);
        
        ps_ShowItemPoints(base_name);
    }
}

function ps_SearchPoints(search_str, method) {
    
    var data = "search_str=" + escape(search_str);
    var url = "/Map.aspx/" + method;

    var res = $.ajax({
        type: "post",
        url: url,
        data: data,
        async: false
    }).responseText;

    return res;
}


function ps_FindPointInFound(id, found_data) {
    if (found_data != null) {
        for (var i = 0; i < found_data.length; i++) {
            if (found_data[i].ID == id)
                return found_data[i];
        }
    }
    return null;
}


function ps_CheckItemPointsJSON(method, base_name) {

    var hdnItems = $('#' + base_name + '_hdnItems').val();
    
    if (hdnItems != null && hdnItems != "undefined" && hdnItems != '')
    {
        var data = "items=" + escape(hdnItems);
        var url = "/Map.aspx/" + method;

        res = $.ajax({
            type: "post",
            url: url,
            data: data,
            async: false
        }).responseText;
        
        if (res != null && res != "") {
            var jsondata = eval('(' + res + ')');
            if (jsondata.length > 0) {
                return jsondata;
            }
        }
    }
    return new Array();
}

function ps_SearchItemPoint(base_name, method, check_login) {

    if (typeof (check_login) != "undefined") {
        if (!CheckUserLogIn()) {
            loginAsk.show();
            return false;
        }
    }

    //var search_str = $('#' + base_name + ' #search_str').val();
    var search_str = $('#' + base_name + '_search_str').val();

    //alert('#' + base_name + ' #search_str = ' + search_str);
    //document.getElementById(base_name).getElementById(base_name)
//    alert('#' + base_name + '_search_str' + search_str);
    
    var res = ps_SearchPoints(search_str, method);    
    ps_SetFoundPointsArr(base_name, new Array());
    ps_ShowFound(res, base_name);
}

function ps_FindPointInItemsPoints(id, itemPoints) {
    if (itemPoints != null) {
        for (var i = 0; i < itemPoints.length; i++) {
            if (itemPoints[i].ID == id)
                return itemPoints[i];
        }
    }
    return null;
}
function ps_GetItemPointsArrName(base_name) {
    return base_name + "_itemPointsArr";
}

function ps_GetItemPointsArr(base_name) {
    return eval(ps_GetItemPointsArrName(base_name));
}

function ps_SetItemPointsArr(base_name, arr) {
    eval(ps_GetItemPointsArrName(base_name) + " = arr");
}

function ps_GetFoundPointsArrName(base_name) {
    return base_name + "_foundPointsArr";
}

function ps_GetFoundPointsArr(base_name) {
    return eval(ps_GetFoundPointsArrName(base_name));
}

function ps_SetFoundPointsArr(base_name, arr) {
    eval(ps_GetFoundPointsArrName(base_name)  + " = arr");
}


