/**
 * Displays an confirmation box before to submit a "DROP/DELETE/ALTER" query.
 * This function is called while clicking links
 *
 * @param   object   the link
 * @param   object   the sql query to submit
 *
 * @return  boolean  whether to run the query or not
 */
function confirmLink(theLink, theSqlQuery)
{
	//alert(theLink);
	//alert(theSqlQuery);
    // Confirmation is not required in the configuration file
    // or browser is Opera (crappy js implementation)
    if (confirmMsg == '' || typeof(window.opera) != 'undefined') {
        return true;
    }

    var is_confirmed = confirm(confirmMsg + ' :\n' + theSqlQuery + ' ?');
    if (is_confirmed) {
//        theLink.href += '&is_js_confirmed=1';
    }

    return is_confirmed;
} // end of the 'confirmLink()' function

/**
 * This array is used to remember mark status of rows in browse mode
 */
var marked_row = new Array;

/**
 * Sets/unsets the pointer and marker in browse mode
 *
 * @param   object    the table row
 * @param   integer  the row number
 * @param   string    the action calling this script (over, out or click)
 * @param   string    the default background color
 * @param   string    the color to use for mouseover
 * @param   string    the color to use for marking a row
 *
 * @return  boolean  whether pointer is set or not
 */
function setPointer2(theRow, theRowNum, theAction, theDefaultColor, thePointerColor, theMarkColor)
{
	//alert('theRow:'+theRow+' theRowNum:'+theRowNum);
    var theCells = null;

    // 1. Pointer and mark feature are disabled or the browser can't get the
    //    row -> exits
    if ((thePointerColor == '' && theMarkColor == '') || typeof(theRow.style) == 'undefined')  return false;
    
    // 2. Gets the current row and exits if the browser can't get it
    if (typeof(document.getElementsByTagName) != 'undefined')  theCells = theRow.getElementsByTagName('td');
    else if (typeof(theRow.cells) != 'undefined') theCells = theRow.cells;
    else return false;

    // 3. Gets the current color...
    var rowCellsCnt  = theCells.length;
    var domDetect    = null;
    //var currentColor = null;
    var newColor     = null;
	
    // 3.1 ... with DOM compatible browsers except Opera that does not return
    //         valid values with "getAttribute"
    if (typeof(window.opera) == undefined && typeof(theCells[0].getAttribute) != undefined) 
	{
        currentColor = theCells[0].getAttribute('bgcolor', false);
        domDetect    = true;
		//alert(currentColor);
    }
    // 3.2 ... with other browsers
    else 
	{
		//alert('2');
        currentColor = theCells[0].style.backgroundColor;
        domDetect    = false;
    } // end 3

	
    // 3.3 ... Opera changes colors set via HTML to rgb(r,g,b) format so fix it
    if (currentColor.indexOf("rgb") >= 0)
    {
        var rgbStr = currentColor.slice(currentColor.indexOf('(') + 1,
                                     currentColor.indexOf(')'));
        var rgbValues = rgbStr.split(",");
        currentColor = "#";
        var hexChars = "0123456789ABCDEF";
        for (var i = 0; i < 3; i++)
        {
            var v = rgbValues[i].valueOf();
            currentColor += hexChars.charAt(v/16) + hexChars.charAt(v%16);
        }
    }

    // 4. Defines the new color
    // 4.1 Current color is the default one
    if (currentColor == '' || currentColor.toLowerCase() == theDefaultColor.toLowerCase()) 
	{
        if (theAction == 'over' && thePointerColor != '') {
            newColor              = thePointerColor;
        }
        else if (theAction == 'click' && theMarkColor != '') {
            newColor              = theMarkColor;
            marked_row[theRowNum] = true;
            // Garvin: deactivated onclick marking of the checkbox because it's also executed
            // when an action (like edit/delete) on a single item is performed. Then the checkbox
            // would get deactived, even though we need it activated. Maybe there is a way
            // to detect if the row was clicked, and not an item therein...
            // document.getElementById('id_rows_to_delete' + theRowNum).checked = true;
        }
    }
    // 4.1.2 Current color is the pointer one
    else if (currentColor.toLowerCase() == thePointerColor.toLowerCase()
             && (typeof(marked_row[theRowNum]) == 'undefined' || !marked_row[theRowNum])) {
        if (theAction == 'out') {
            newColor              = theDefaultColor;
        }
        else if (theAction == 'click' && theMarkColor != '') {
            newColor              = theMarkColor;
            marked_row[theRowNum] = true;
            // document.getElementById('id_rows_to_delete' + theRowNum).checked = true;
        }
    }
    // 4.1.3 Current color is the marker one
    else if (currentColor.toLowerCase() == theMarkColor.toLowerCase()) {
        if (theAction == 'click') {
            newColor              = (thePointerColor != '')
                                  ? thePointerColor
                                  : theDefaultColor;
            marked_row[theRowNum] = (typeof(marked_row[theRowNum]) == 'undefined' || !marked_row[theRowNum])
                                  ? true
                                  : null;
            // document.getElementById('id_rows_to_delete' + theRowNum).checked = false;
        }
    } // end 4

    // 5. Sets the new color...
    if (newColor) {
        var c = null;
        // 5.1 ... with DOM compatible browsers except Opera
        if (domDetect) {
            for (c = 0; c < rowCellsCnt; c++) {
                theCells[c].setAttribute('bgcolor', newColor, 0);
            } // end for
        }
        // 5.2 ... with other browsers
        else {
            for (c = 0; c < rowCellsCnt; c++) {
                theCells[c].style.backgroundColor = newColor;
            }
        }
    } // end 5

    return true;
} // end of the 'setPointer()' function

function toogle_view(cell){

	var oCell = document.getElementById(cell);
	if(oCell.style.display=='none')
		oCell.style.display='';
	else
		oCell.style.display='none';
}

function toogle_up_down(id){
	image='IMG__'+id;
	cell='service_'+id;
	var oImg = document.getElementById(image);
	var oCell = document.getElementById(cell);

	if(oCell.style.display=='none')
	{
		oCell.style.display='';
		oImg.src="images/up.gif";
	}
	else
	{
		oCell.style.display='none';
		oImg.src="images/down.gif";
	}
}

function login() {
	
	if (document.login.user_login.value != '' && document.login.user_pass.value != '') {

		document.login.submit();
	} else {
		alert("Invalid user!!!");
	}
}
function change_printdoc_flag($flag) {
	
	if ($flag== '1')
	{
		document.subscriber_form.print_docs.value='0';
	} else {
		document.subscriber_form.print_docs.value='1';
	}
}

function check_quicksearch(advanced) {
	
	if (advanced) {
		
		document.quick_search.newone.value = '1';
		document.quick_search.search_type.value = 'advanced';
		document.forms['quick_search'].submit();
		return;
	}
	
	if (document.quick_search.quick_search_string.value != '') {
	
		document.forms['quick_search'].submit();
	} else {
		alert("Введите фразу для поиска.");
	}
}

function checksearch() {
	
	news = document.search.elements['news[]'];
	articles = document.search.elements['articles[]'];
	
	if (document.search.search_text.value != '' && (news[0].checked || articles[0].checked)) {

		return true;
	} else {
		
		alert("Укажите необходимые критерии поиска!");
		return false;
	}
}

function setPointer(theRow, theRowNum, theAction, theDefaultColor, thePointerColor, theMarkColor) {
    var theCells = null;
    if ((thePointerColor == "" && theMarkColor == "") ||
        typeof (theRow.style) == "undefined") {
        return false;
    }
    if (typeof (document.getElementsByTagName) != undefined) {
        theCells = theRow.getElementsByTagName("td");
    } else {
        if (typeof (theRow.cells) != undefined) {
            theCells = theRow.cells;
        } else {
            return false;
        }
    }
    var rowCellsCnt = theCells.length;
    var domDetect = null;
    var currentColor = null;
    var newColor = null;
    if (typeof (window.opera) == undefined &&	typeof (theCells[0].getAttribute) != undefined) 
	{
        currentColor = theCells[0].getAttribute("bgcolor");
        domDetect = true;
    }
	else
	{
        currentColor = theCells[0].style.backgroundColor;
        domDetect = false;
    }
    if (currentColor.indexOf("rgb") >= 0) 
	{
        var rgbStr = currentColor.slice(currentColor.indexOf("(") + 1, currentColor.indexOf(")"));
        var rgbValues = rgbStr.split(",");
        currentColor = "#";
        var hexChars = "0123456789ABCDEF";
        for (var i = 0; i < 3; i++) {
            var v = rgbValues[i].valueOf();
            currentColor += hexChars.charAt(v / 16) + hexChars.charAt(v % 16);
        }
    }
    if (currentColor == "" || currentColor.toLowerCase() == theDefaultColor.toLowerCase()) 
	{
        if (theAction == "over" && thePointerColor != "") 
		{
            newColor = thePointerColor;
        }
		else
		{
            if (theAction == "click" && theMarkColor != "") {
                newColor = theMarkColor;
                marked_row[theRowNum] = true;
            }
        }
    } else {
        if (currentColor.toLowerCase() == thePointerColor.toLowerCase() &&
            (typeof (marked_row[theRowNum]) == "undefined" ||
            !marked_row[theRowNum])) {
            if (theAction == "out") {
                newColor = theDefaultColor;
            } else {
                if (theAction == "click" && theMarkColor != "") {
                    newColor = theMarkColor;
                    marked_row[theRowNum] = true;
                }
            }
        } else {
            if (currentColor.toLowerCase() == theMarkColor.toLowerCase()) {
                if (theAction == "click") {
                    newColor = (thePointerColor != "") ? thePointerColor : theDefaultColor;
                    marked_row[theRowNum] = (typeof (marked_row[theRowNum]) == "undefined" ||
                        !marked_row[theRowNum]) ? true : null;
                }
            }
        }
    }
    if (newColor) {
        var c = null;
        if (domDetect) {
            for (c = 0; c < rowCellsCnt; c++) {
                theCells[c].setAttribute("bgcolor", newColor, 0);
            }
        } else {
            for (c = 0; c < rowCellsCnt; c++) {
                theCells[c].style.backgroundColor = newColor;
            }
        }
    }
    return true;
}
