/**
 * 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 setPointer(theRow, theRowNum, theAction, theDefaultColor, thePointerColor, theMarkColor)
{
    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;
    }

    // 1.1 Sets the mouse pointer to pointer on mouseover and back to normal otherwise.
    if (theAction == "over" || theAction == "click") {
        theRow.style.cursor='pointer';
    } else {
        theRow.style.cursor='normal';
    }

    // 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');
        domDetect    = true;
    }
    // 3.2 ... with other browsers
    else {
        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

// added 2004-05-08 by Michael Keck <mail_at_michaelkeck_dot_de>
//  - this was directly written to each td, so why not a function ;)
//  setCheckboxColumn(\'id_rows_to_delete' . $row_no . ''\');
function setCheckboxColumn(theCheckbox){
    if (document.getElementById(theCheckbox)) {
        document.getElementById(theCheckbox).checked = (document.getElementById(theCheckbox).checked ? false : true);
        if (document.getElementById(theCheckbox + 'r')) {
            document.getElementById(theCheckbox + 'r').checked = document.getElementById(theCheckbox).checked;
        }
    } else {
        if (document.getElementById(theCheckbox + 'r')) {
            document.getElementById(theCheckbox + 'r').checked = (document.getElementById(theCheckbox +'r').checked ? false : true);
            if (document.getElementById(theCheckbox)) {
                document.getElementById(theCheckbox).checked = document.getElementById(theCheckbox + 'r').checked;
            }
        }
    }
}


/* this function shows the pop-up when
 user moves the mouse over the link */
function ImagePopupShow(src)
{
    /* get the mouse left position */
    x = event.clientX + document.body.scrollLeft;
    /* get the mouse top position  */
    y = event.clientY + document.body.scrollTop + 35;
    /* display the pop-up */
    Popup.style.display="block";
    /* set the pop-up's left */
    Popup.style.left = x;
    /* set the pop-up's top */
    Popup.style.top = y;
    
    var html = "<img src='" + src + "'/>";
    document.getElementById("Popup").innerHTML = html;
}
/* this function hides the pop-up when
 user moves the mouse out of the link */
function ImagePopupHide()
{
    /* hide the pop-up */
    Popup.style.display="none";
}

function checkAll(){
	var chk = document.getElementById("checkall");
	var alen = document.frm.elements.length;
	for (i =0; i< alen; i++){
		var e = document.frm.elements[i];
		//Check box
	  	if ( e.type=='checkbox' && e.name!="checkall"){
	  			e.checked = chk.checked;
	  	}
	}
}
function onChangeFrm(action){

	if (confirm("Are you like change?")){
		document.frm.action = action;
		document.frm.submit();
	}
}
function onLinkUrl(aid, url){
	if (confirm("Would you like change it?")){
		document.getElementById(aid).href = url;
		return true;
	}
	return false;
}

////////////////////////////////
function checkAllNow(field)
{
	if(document.getElementById('checkall').checked)
		checkAll(field)		
	else
		uncheckAll(field)
}

function checkAll(field)
{
	if(field.length>=1)
	for (i = 0; i < field.length; i++)
		field[i].checked = true ;	
	else
		field.checked = true ;

}

function uncheckAll(field)
{
	if(field.length>=1)
	for (i = 0; i < field.length; i++)
		field[i].checked = false ;
	else
		field.checked = false ;
}
	

function ShowAll(field)
{
	var f=document.frm_list;
	var tmp='';	
	if(field.length>=1)
		for (i = 0; i < field.length; i++){
			if(field[i].checked)
				tmp+='#cgs#'+field[i].value;
		}
	else if(field.checked)	
		tmp=field.value;
	if(tmp)
	{
		if(window.confirm("Bạn có chắc chắn cho hiển thị các dữ liệu?"))
		{
			document.getElementById('listCheckAll').value=tmp;		
			f.action="?do=showAll";
			f.submit();	
		}
	}	
}

function HiddenAll(field)
{
	var f=document.frm_list;
	var tmp='';	
	if(field.length>=1)
		for (i = 0; i < field.length; i++){
			if(field[i].checked)
				tmp+='#cgs#'+field[i].value;
		}
	else if(field.checked)	
		tmp=field.value;
	if(tmp)
	{
		if(window.confirm("Bạn có chắc chắn ẩn các dữ liệu?"))
		{
			document.getElementById('listCheckAll').value=tmp;		
			f.action="?do=hiddenAll";
			f.submit();	
		}
	}
	
}


function DeleteAll(field)
{
	var f=document.frm_list;
	var tmp='';	
	if(field.length>=1)
		for (i = 0; i < field.length; i++){
			if(field[i].checked)
				tmp+='#cgs#'+field[i].value;
		}
	else if(field.checked)	
		tmp=field.value;
		
	if(tmp)
	{
		if(window.confirm("Bạn có chắc chắn xóa các dữ liệu vào Thùng rác?"))
		{
			document.getElementById('listCheckAll').value=tmp;		
			f.action="?do=deleteAll";
			f.submit();	
		}
	}	
}

function RestoreAll(field)
{
	var f=document.frm_list;
	var tmp='';	
	if(field.length>=1)
		for (i = 0; i < field.length; i++){
			if(field[i].checked)
				tmp+='#cgs#'+field[i].value;
		}
	else if(field.checked)	
		tmp=field.value;
		
	if(tmp)
	{
		if(window.confirm("Bạn có chắc chắn khôi phục các dữ liệu?"))
		{
			document.getElementById('listCheckAll').value=tmp;		
			f.action="?do=restoreAll";
			f.submit();	
		}
	}
	
}

function DropAll(field)
{
	var f=document.frm_list;
	var tmp='';	
	if(field.length>=1)
		for (i = 0; i < field.length; i++){
			if(field[i].checked)
				tmp+='#cgs#'+field[i].value;
		}
	else if(field.checked)	
		tmp=field.value;
	if(tmp)
	{
		if(window.confirm("Bạn có chắc chắn xóa khỏi cơ sở dữ liệu?"))
		{
			document.getElementById('listCheckAll').value=tmp;		
			f.action="?do=dropAll";
			f.submit();	
		}
	}	
}

function changeWithoutSubmit(f)
{
	f.without.value=1;
	f.action="?do=update";	
	f.submit();
}

function gotoUrl(url){
	location.href = url;
}
function maximizeWindow( ) {
    var offset = (navigator.userAgent.indexOf("Mac") != -1 || 
                  navigator.userAgent.indexOf("Gecko") != -1 || 
                  navigator.appName.indexOf("Netscape") != -1) ? 0 : 4;
    window.moveTo(-offset, -offset);
    window.resizeTo(screen.availWidth + (2 * offset), 
                   screen.availHeight + (2 * offset));
}
//paging
function findByNewNoOfRecord(pos){
	if(pos=="top")
		document.frm_paging_top.submit();
	else
		document.frm_paging.submit();
}
//link
function navigate(choice) {
	var url = choice.options[choice.selectedIndex].value;
	if (url!="") {
		window.open(url);
	}
}
//check domain
function Check_Domain() {
    if(document.check_domain.txt_domain.value==""){
	    alert("Vui lòng nhập tên miền");
    	document.check_domain.txt_domain.focus();
	    return ;
    }    
    document.check_domain.submit();
}

function checkMod(field)
{
	var f=document.frm_addnew;
	var tmp='';	
	if(field.length>=1)
		for (i = 0; i < field.length; i++){
			if(field[i].checked)
				tmp+='#cgs#'+field[i].value;
		}
	else if(field.checked)	
		tmp=field.value;
	document.getElementById('listCheckAll').value=tmp;
}