function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function addTableRow(table_id,no_of_cells)    {
    var table_obj = document.getElementById(table_id);
    var new_row = table_obj.insertRow(table_obj.rows.length);
    var numrows   = table_obj.rows.length;
    if(numrows > 2) {   // if the row is not the first row the generate id based on prev row_id this is done to avoid duplicates
        var prev_row_id = table_obj.rows[numrows-2].id;     
        var prev_row_no = prev_row_id.substring(table_id.length,prev_row_id.length);
        var cur_row_no  = parseInt(prev_row_no) + 1;
        new_row.id      = table_obj.id + cur_row_no;
    }
    else    {   // if the row is the first row
        if(numrows !=  0)   {
            var prev_row_id = table_obj.rows[0].id;     
            var prev_row_no = prev_row_id.substring(table_id.length,prev_row_id.length);
            var cur_row_no  = parseInt(prev_row_no) + 1;
            if(cur_row_no>0)    {
                new_row.id = table_obj.id+cur_row_no;
            }
            else    {
                new_row.id = table_obj.id+(numrows-1);
            }    
        }
        else    {
            new_row.id = table_obj.id+(numrows-1);
        }    
    }

    for(var cell_index=0; cell_index < no_of_cells; cell_index++)   {
        var nc = new_row.insertCell(cell_index);
        var cellId = new_row.id+'__Col'+(parseInt(cell_index));
        nc.id = cellId;    
    }
    return new_row.id;    
}

function insertContentIntoCell(row_id,cell_no,cell_content, align_val) { 
    var row_obj = document.getElementById(row_id);
    var max_cells = row_obj.cells.length;
    if(!align_val)   {
        align_val = 'left'
    }
    if(cell_no < max_cells) {
        row_obj.cells.item(cell_no).innerHTML=cell_content;
        row_obj.cells.item(cell_no).align=align_val;
    }
}

function deleteTableRow(table_id,row_id)  {
    if(confirm('Are you sure you want to Delete this?'))    {
        var table_obj = document.getElementById(table_id);
        var max_rows = table_obj.rows.length;
        var table_row_id = row_id;
        for (var row_index=0; row_index<max_rows ; row_index++) {
            if(table_row_id == table_obj.rows[row_index].id)    {
                table_obj.deleteRow(row_index);
                break;
            }
        }
        
        if(table_obj.rows.length < 2)   {
            table_obj.style.display = 'none';
        }
    }
}

function trim(s)    {
    return s.replace( /^\s*/, "" ).replace( /\s*$/, "" );
}

function getSelectValue(sobj)   {
    var outval="";
    for (var i=0;i<=sobj.length -1;i++) {
        if (sobj.options[i].selected)   {
            outval = sobj.options[i].value;
            return outval;
        }
    }
    return outval;
}

     function openDesiredWin(myLink,windowName,desired_width,desired_height)
     {
    d_width = (screen.width*desired_width)/100;
    d_left = (screen.width-d_width)/2;
    d_height = (screen.height*desired_height)/100;
    d_top = (screen.height-d_height)/2;
    if(! window.focus)return;
    var myWin=window.open(myLink,windowName,"left=" + d_left + ",top=" + d_top + ",width=" + d_width + ",height=" + d_height + ",toolbar=no,menubar=no,location=no,scrollbars=yes,resizable=yes");
    try {myWin.focus();}
    catch (err) {}
    // myLink.target=windowName;
    return myWin;
    }

function escRep(s)
{
   s = s.replace(/[^0-9a-zA-Z\ \!\@\#\$\%\^\&\*\(\)\-\_\+\=\}\{\[\]\<\>\?\~\`\|\\\/\'\,\"\.\;\:\\\n\\\t]/gi, "");
   return s;
}