var AM_classTR1Old;
var AM_classTR2Old;
var IE7=false;
var am_frameDivHeightOffset=80;
var am_frameHeightOffset=60;
function detectBrowser()
{
    var browser=navigator.appName;
    var b_version=navigator.appVersion;
    var version=parseFloat(b_version);

    if (browser=="Microsoft Internet Explorer" && (version>=4))
        {
        IE7=true;
    }
    else
        {
        IE7=false;
    }
}
detectBrowser();

function amAjaxSlideIn(objAId,url,callerObj,frameHeight)
{

    createTR(document.getElementById(objAId).parentNode,url,callerObj,frameHeight);

}
function createTR(objTD,url,callerObj,frameHeight)
{
    //Extract the dvId (a common word for to prepare reference ids for various elements)
    var dvId=objTD.parentNode.id.substr(0,objTD.parentNode.id.length-3);

    //If the amSlideIn system already created just open the required url in it
    if(document.getElementById(dvId+'tr2'))
        {
        AM_FrameEdit(url,dvId,callerObj,frameHeight);
        return;
    }
    //else go create one and then open the url in it.......

    //Determine how many columns are there in the first TR (to be used as colspan)
    var tdList=objTD.parentNode.getElementsByTagName("TD");
    var tdCount=tdList.length;
    var colSpan=1;
    var tmpcolSpan=0;
    for(var i=0;i<tdCount;i++)
        {
        tmpcolSpan=tdList[i].getAttribute('colSpan')*1;
        if(tmpcolSpan>1)
            {
            colSpan+=tmpcolSpan;
        }
        else colSpan++;
    }

    //Get table object's handle
    var objTBL=objTD.parentNode.parentNode;



    //Create close/collapse link
    var closeLnk=document.createElement("A");
    closeLnk.setAttribute('href',"javascript:AM_CloseFrame('"+dvId+"');");
    closeLnk.setAttribute('id',"lnkClose"+dvId);
    closeLnk.className='lnkCloseDiv';
    //closeLnk.innerHTML='X';

    //Create Frame
    var frme=document.createElement("IFRAME");
    //frme.src=url;
    frme.width='100%';
    frme.height='400';
    frme.setAttribute('allowtransparency','true');
    frme.setAttribute('frameborder','no');
    frme.setAttribute('scrolling','auto');
    frme.setAttribute('marginheight','0');
    frme.setAttribute('marginwidth','0');
    frme.setAttribute('id',dvId+'Frame');
    frme.setAttribute('name',dvId+'Frame');
    frme.className='amSlideInFrame';

    //Create Division
    var newDv=document.createElement("DIV");
    newDv.setAttribute('id',dvId);
    newDv.setAttribute('className','amSlideInDiv');
    newDv.appendChild(closeLnk);
    newDv.appendChild(frme);

    //Create Container TD
    if(IE7)
        {
        var newTD=document.createElement("<TD colspan='"+colSpan+"'>");
    }
    else
        {
        var newTD=document.createElement("TD");
        newTD.setAttribute("colspan",colSpan);
    }

    newTD.className='amSlideInContainer';
    newTD.appendChild(newDv);

    //Create Container TR for Container TD
    var newTR=document.createElement("TR");
    newTR.setAttribute('id',dvId+'tr2');
    newTR.className='browserRow2';
    newTR.appendChild(newTD);

    //Insert new TR at proper place
    insertAfter(objTBL,newTR,objTD.parentNode);

    AM_FrameEdit(url,dvId,callerObj,frameHeight);
}
function insertAfter(parent, node, referenceNode) {
    parent.insertBefore(node, referenceNode.nextSibling);
}


function AM_FrameEdit(url,dvId,callerObj,frameHeight)
{
    //get handles to objects
    var tr1=document.getElementById(dvId+'tr1');
    var tr2=document.getElementById(dvId+'tr2');
    var d=document.getElementById(dvId);
    var f=document.getElementById(dvId+'Frame');

    //setup frame object
    if(!frameHeight)
    {
        frameHeight=200;
    }

    f.src=url+'&_amdvId='+dvId;
    f.style.width='100%';
    f.style.height=frameHeight+'px';
    //alert(f.style.height+frameHeight+''+d.style.height );
    //frames[f.id].document.body.innerHTML="<center>"+AM_waitImgIcon+"</center>";
    if(f.contentWindow.document.body)
        {
        f.contentWindow.document.body.innerHTML="<div style='margin:0 auto;width:100px;text-align:center;'>"+AM_waitImgIcon+"</div>";
    }
    //f.style.border='1px solid blue';

    //setup div object
    d.style.display='block';
    d.style.width='100%';
    d.style.height=(20+frameHeight)+'px';
    //d.style.scroll='auto';
    //d.style.border='1px solid red';
    //Effect.SlideDown(dvId);

    //setup event handlers for div and frame objects
    if(!IE7)
        {
        addEvent(f,'load',function(){AM_ResizeFrame(dvId);});
        //addEvent(f,'resize',function(){});
        addEvent(d,'mouseout',function(){AM_ResizeHandler(dvId);});

    }
    else
        {
        addEvent(f,'load',function(){AM_ResizeHandler(dvId);});
        //addEvent(f,'resize',function(){});
        addEvent(d,'mouseout',function(){AM_ResizeHandler(dvId);});
    }




    //highlight container's associated row
    if(tr1)
        {
        if(tr1.className!='browserRow1Selected') AM_classTR1Old=tr1.className;
        //alert(AM_classTR1Old);
        tr1.className='browserRow1Selected';
    }
    //highlight container row
    if(tr2)
        {
        if(tr2.className!='browserRow2Selected') AM_classTR2Old=tr2.className;
        //alert(AM_classTR2Old);
        tr2.className='browserRow2Selected';
    }
    if(typeof(AM_curFrameDv)!='undefined' && AM_curFrameDv!=dvId )
        {
        AM_CloseFrame(AM_curFrameDv);
        AM_curFrameDv=dvId;
    }
    //display tr2 as well
    if(tr2)
        {
        tr2.style.display='';
        tr2.style.width='100%';
    }
}
function addEvent(object,type,handler){
    if(object.addEventListener){
        object.addEventListener(type,handler,false);
    }
    else{
        object.attachEvent("on"+type,handler);
    }
}
function AM_ResizeFrame(dvId)
{
    //do it now
    AM_ResizeHandler(dvId);
    //and after few seconds again
    setTimeout("AM_ResizeHandler('"+dvId+"')",1000);
}
function AM_ResizeHandler(dvId)
{
    var iframe=document.getElementById(dvId+'Frame');
    var doc= 'contentDocument' in iframe? iframe.contentDocument : iframe.contentWindow.document;
    if(doc)
    {
        var dv=document.getElementById(dvId);
        var sh=doc.body.scrollHeight*1;
        
        
        //alert(window.am_frameDivHeightOffset);
        var fh=String(iframe.style.height);
        fh=fh.substr(0,fh.indexOf('p'))*1;
        
        if(sh>fh)
        {
            iframe.style.height='100px';
            dv.style.height=(window.am_frameDivHeightOffset+sh)+'px';
            iframe.style.height=(window.am_frameHeightOffset+sh)+'px';
            iframe.height=(window.am_frameHeightOffset+sh);
        }
    }
}

function AM_CloseFrame(dvId)
{
    if(dvId=='') return;


    var tr1=document.getElementById(dvId+'tr1');
    var tr2=document.getElementById(dvId+'tr2');
    var d=document.getElementById(dvId);
    var f=document.getElementById(dvId+'Frame');

    if(d.style.display=='none') return;
    if(tr2.style.display=='none') return;

    //check if effects available
    if(typeof(jQuery) != 'undefined')
        {
        jQuery('#'+dvId+'tr2').fadeOut('slow');
    }
    else //if not, simply hide
        {
        d.style.display='none';
        tr2.style.display='none';
    }

    if(tr1) tr1.className=AM_classTR1Old;
    if(tr2) tr2.className=AM_classTR2Old;
    /*alert(AM_classTR1Old);
    alert(AM_classTR2Old);*/

}
