var transparentImage = "images/transparent.gif";

function fixTrans()
{
	if (typeof document.body.style.maxHeight == 'undefined') {

	var imgs = document.getElementsByTagName("img");
	
	for (i = 0; i < imgs.length; i++)
	{	
		if (imgs[i].src.indexOf(transparentImage) != -1)
		{
			return;
		}

		if (imgs[i].src.indexOf(".png") != -1)
			{
				var src = imgs[i].src;
				imgs[i].src = transparentImage;
				imgs[i].runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "',sizingMethod='scale')";
			}
		}	
	}
}

if (document.all && !window.opera)
	attachEvent("onload", fixTrans);

function detectSafari(){ 
if (navigator.appVersion.indexOf("Safari") != -1) 
   document.body.className += " safari"; 
} 

if (window.addEventListener) 
   window.addEventListener("load", detectSafari, false);
   
function changeCandidates( candType )
{
    var frame = document.getElementById( "carouseliframe" );

    if( !frame )
        return;        

    frame.src = "carouseliframesrc.aspx?type=" + candType;
}

var IsInAsyncPostBack = false;
/* makes async call to pull in feed text */
function loadRssFeed( chkId, chkVal )
{
    /* ensure that at least one item is checked */
    var checkbox = document.getElementById( chkId );
    
    if( IsInAsyncPostBack )
    {    
        checkbox.checked = !checkbox.checked
        return;
    }   
    
    var tab1 = document.getElementById( 'tab1' );    
    var boxes = tab1.getElementsByTagName( 'input' );
    var hasSelection = false;
    
    for (var i = 0;i<boxes.length;i++)
    {
        if( boxes[i].type == 'checkbox' && boxes[i].checked )
        {
            hasSelection = true;
            break;
        }
    }    
    if( !hasSelection )
    {
        checkbox.checked = true;
        return;
    }       
    if( checkbox.checked ) 
    {   
        IsInAsyncPostBack = true;
        PageMethods.GetRssFeed( chkVal, loadRssFeedSuccess, loadRssFeedFail );   
    }
    else
    {
        var ulEl = document.getElementById( 'pnlFeedText' );
        var liEl = document.getElementById( 'Feed' + chkVal );
        
        if( ulEl && liEl )
            ulEl.removeChild(liEl);
    }
}
function loadRssFeedSuccess(result)
{
    IsInAsyncPostBack = false;
    $get('pnlFeedText').innerHTML += result;
}
function loadRssFeedFail()
{
    IsInAsyncPostBack = false;
}
function loadCandidateList( IsElectedOfficials )
{
    /* deduce which tab is active */
    var tab1 = document.getElementById('tab1');
    var tab2 = document.getElementById('tab2');
    var tab3 = document.getElementById('tab3');
    var loadLocal = false;
    var loadState = false;
    var loadNatl = false;
    
    if( !tab1 || !tab2 || !tab3 )
        return;
    
    if( tab1.style.display.toLowerCase() == 'block' )
        loadLocal = true;
    else if( tab2.style.display.toLowerCase() == 'block' )
        loadState = true;
    else if( tab3.style.display.toLowerCase() == 'block' )
        loadNatl = true;
        
    if( !loadLocal && !loadState && !loadNatl )
        return;
    
    IsInAsyncPostBack = true;
    
    if( loadLocal )
    {
        PageMethods.GetLocalCandidateList(IsElectedOfficials, loadLocalCandidatesSuccess, loadLocalCandidatesFail);
    }
    else if( loadState )
    {
        PageMethods.GetStateCandidateList(IsElectedOfficials, loadStateCandidatesSuccess, loadStateCandidatesFail);
    }
    else
    {
        PageMethods.GetNationalCandidateList(IsElectedOfficials, loadNationalCandidatesSuccess, loadNationalCandidatesFail);
    }    
}
function loadLocalCandidatesSuccess(result)
{
    IsInAsyncPostBack = false;
    $get('tab1').innerHTML = result;
}
function loadLocalCandidatesFail()
{
    IsInAsyncPostBack = false;
}
function loadStateCandidatesSuccess(result)
{
    IsInAsyncPostBack = false;
    $get('tab2').innerHTML = result;
}
function loadStateCandidatesFail()
{
    IsInAsyncPostBack = false;
}
function loadNationalCandidatesSuccess(result)
{
    IsInAsyncPostBack = false;
    $get('tab3').innerHTML = result;
}
function loadNationalCandidatesFail()
{
    IsInAsyncPostBack = false;
}