var step = 0; var score = 0; var co2 = 0;
var flashFiles = new Array("Zip", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "Commit", "Thankyou");
var initFlashLoad = true;

function preparePage()
{
    initConsole();
	
	setPartnerAttribution();
	
    // remove loader
    var x = document.getElementById('loader');
    if (x)
        x.parentNode.removeChild(x);
    
    setupNavbar();
    showStep();
    showHideNavButtons();
    setPostRedir();
}

function setPartnerAttribution()
{
    var themeId = readCookie('themeID');
	//window.alert(themeId);
    if (themeId && document.getElementById('footer'))
    {
        document.getElementById('footer').src = 'images/footer_theme' + themeId + '.png';
    }
    else
    {//window.alert(themeId);
		//setCookie("themeID", "7", "", "", "", "");
        document.getElementById('footer').src = 'images/footer_theme0.png';
        //document.getElementById('footer').src = 'images/footer_theme7.png';
    }
}

function showStep()
{
    var x = document.getElementsByTagName('DIV');
    var j = 0;
    var containerDiv = document.getElementById('mainBg');
    var firstClass;
    var themeId = readCookie('themeID');
	var retakeTest = document.getElementById('retakeLink');
	
	if (!themeId)
	{
		themeId = "0";
	}
	
	if(step == 0)
	{
		retakeTest.style.visibility = 'visible';
	}
	else
	{
		retakeTest.style.visibility = 'hidden';
	}

    if(themeId == "1") //Emmys
    {
		flashFiles[0] = "ZipEmmy";
		
		var stepDiv = document.getElementById('step01');
		stepDiv.setAttribute('bg', 'bgPicEmmy');
		
		if (step == 0)
		{
			document.getElementById('subHead').src = 'images/subheaderEmmy.png';
			document.getElementById('flashTop').src = 'images/blank.gif';
		}
		else
		{
			document.getElementById('flashTop').src = 'images/blank.gif';
			document.getElementById('subHead').src = 'images/subheader.png';
			document.getElementById('inviteFriend').href = 'javascript:popupWin("sendtofriend.aspx?UID=' + document.forms[0].UID.value + '&lGUID=' + document.forms[0].lGUID.value + '", "sendto", 620, 520, true);';
		}
    }
	else if(themeId == "2") //11th Hour
    {
		flashFiles[0] = "Zip11thHour";
		flashFiles[11] = "Commit11thHour";
		
		var stepDiv = document.getElementById('step01');
		stepDiv.setAttribute('bg', 'bgPic11thHour');
		
		stepDiv = document.getElementById('recap');
		stepDiv.setAttribute('bg', 'bgPic11thHour');
		
		if (step == 0)
		{
			document.getElementById('subHead').src = 'images/subheader11thHour.png';
			document.getElementById('flashTop').src = 'images/elevtop.png';
		}
		else if (step == getStepsCount() - 2)
		{
			document.getElementById('subHead').src = 'images/subheader.png';
			document.getElementById('flashTop').src = 'images/whatImpact.png';
		}
		else
		{
			document.getElementById('flashTop').src = 'images/blank.gif';
			document.getElementById('subHead').src = 'images/subheader.png';
			document.getElementById('inviteFriend').href = 'javascript:popupWin("sendtofriend.aspx?UID=' + document.forms[0].UID.value + '&lGUID=' + document.forms[0].lGUID.value + '", "sendto", 620, 520, true);';
		}
    }
    else if(themeId == "3") //Vespa
    {
		flashFiles[0] = "ZipVespa";
		
		var stepDiv = document.getElementById('step01');
		stepDiv.setAttribute('bg', 'bgPicVespa');
		
		if (step == 0)
		{
			document.getElementById('subHead').src = 'images/subheaderVespa.gif';
			document.getElementById('flashTop').src = 'images/vespaTop.jpg';
		}
		else
		{
			document.getElementById('flashTop').src = 'images/blank.gif';
			document.getElementById('subHead').src = 'images/subheader.png';
			document.getElementById('inviteFriend').href = 'javascript:popupWin("sendtofriend.aspx?UID=' + document.forms[0].UID.value + '&lGUID=' + document.forms[0].lGUID.value + '", "sendto", 620, 520, true);';
		}
    }
//    else if(themeId == "4") //Office Max
//    {
//		flashFiles[0] = "ZipOfficeMax";
//
//		var stepDiv = document.getElementById('step01');
//		stepDiv.setAttribute('bg', 'bgPicOfficeMax');
//		
//		if (step == 0)
//		{
//			document.getElementById('subHead').src = 'images/subheaderOfficeMax.png';
//			document.getElementById('flashTop').src = 'images/officemaxTop.png';
//		}
//		else
//		{
//			document.getElementById('flashTop').src = 'images/blank.gif';
//			document.getElementById('subHead').src = 'images/subheader.png';
//			document.getElementById('inviteFriend').href = 'javascript:popupWin("sendtofriend.aspx?UID=' + document.forms[0].UID.value + '&lGUID=' + document.forms[0].lGUID.value + '", "sendto", 620, 520, true);';
//		}
//    }
	else if(themeId == "7") //Earth Day Challenge
    {
		flashFiles[0] = "ZipEDC";
		
		var stepDiv = document.getElementById('step01');
		stepDiv.setAttribute('bg', 'bgPicEDC');
		
		if (step == 0)
		{
			document.getElementById('subHead').src = 'images/subheaderEDC.png';
			document.getElementById('flashTop').src = 'images/edcTop.gif';
		}
		else
		{
			document.getElementById('flashTop').src = 'images/blank.gif';
			document.getElementById('subHead').src = 'images/subheader.png';
			document.getElementById('inviteFriend').href = 'javascript:popupWin("sendtofriend.aspx?UID=' + document.forms[0].UID.value + '&lGUID=' + document.forms[0].lGUID.value + '", "sendto", 620, 520, true);';
		}
    }
    else if(themeId == "8") //City of Kirkland
    {
		var regTitle = document.getElementById("regTitle");
		regTitle.innerHTML = "Kirkland Green - Carbon Calculator";
		
		flashFiles[0] = "ZipKirkland";
		flashFiles[1] = "01Kirkland";
		flashFiles[2] = "02Kirkland";
		flashFiles[3] = "03Kirkland";
		flashFiles[4] = "04Kirkland";
		flashFiles[5] = "05Kirkland";
		flashFiles[6] = "06Kirkland";
		flashFiles[7] = "07Kirkland";
		flashFiles[8] = "08Kirkland";
		flashFiles[9] = "09Kirkland";
		flashFiles[10] = "10Kirkland";
		flashFiles[11] = "CommitKirkland";
		flashFiles[12] = "ThankyouKirkland";
		
		var stepDiv = document.getElementById('step01');
		stepDiv.setAttribute('bg', 'bgPicKirkland01');
		
		stepDiv = document.getElementById('step02');
		stepDiv.setAttribute('bg', 'bgPic01'); //  bgPicKirkland01  bgPic01
		
		stepDiv = document.getElementById('step03');
		stepDiv.setAttribute('bg', 'bgPicKirkland02');
		
		stepDiv = document.getElementById('step04');
		stepDiv.setAttribute('bg', 'bgPicKirkland02');
		
		stepDiv = document.getElementById('step05');
		stepDiv.setAttribute('bg', 'bgPicKirkland03');
		
		stepDiv = document.getElementById('step06');
		stepDiv.setAttribute('bg', 'bgPicKirkland03');
		
		stepDiv = document.getElementById('step07');
		stepDiv.setAttribute('bg', 'bgPicKirkland03');
		
		stepDiv = document.getElementById('step08');
		stepDiv.setAttribute('bg', 'bgPicKirkland04');
		
		stepDiv = document.getElementById('step09');
		stepDiv.setAttribute('bg', 'bgPicKirkland05');
		
		stepDiv = document.getElementById('step10');
		stepDiv.setAttribute('bg', 'bgPicKirkland06');
		
		stepDiv = document.getElementById('step11');
		stepDiv.setAttribute('bg', 'bgPicKirkland06');
		
		stepDiv = document.getElementById('recap');
		stepDiv.setAttribute('bg', 'bgPicKirkland07');
		
		stepDiv = document.getElementById('thankyou');
		stepDiv.setAttribute('bg', 'bgPicKirkland08');
		
		
		if (step == 0)
		{
			document.getElementById('subHead').src = 'images/subheaderKirkland.png';
			document.getElementById('flashTop').src = 'images/kirklandtop.jpg';
		}
		else
		{
			document.getElementById('flashTop').src = 'images/blank.gif';
			document.getElementById('subHead').src = 'images/subheader.png';
			document.getElementById('inviteFriend').href = 'javascript:popupWin("sendtofriend.aspx?UID=' + document.forms[0].UID.value + '&lGUID=' + document.forms[0].lGUID.value + '", "sendto", 620, 520, true);';
		}
    }
    else
    {
        document.getElementById('flashTop').src = 'images/blank.gif';
		document.getElementById('subHead').src = 'images/subheader.png';
		document.getElementById('inviteFriend').href = 'javascript:popupWin("sendtofriend.aspx?UID=' + document.forms[0].UID.value + '&lGUID=' + document.forms[0].lGUID.value + '", "sendto", 620, 520, true);';
    }

    if (containerDiv)
			firstClass = containerDiv.className.split(' ')[0];
				
    for (var i=0; i < x.length; i++) 
    {
        if (x[i].className == 'step') {
            if (j == step)
            {
                x[i].style.display = 'block';
                // set the background image
                var bg = x[i].getAttribute('bg');
                if (containerDiv && bg)
									containerDiv.className = firstClass + ' ' + bg;
            }
            else {
                x[i].style.display = 'none';
            }
            j++;
        }
    }
	fetchTip(flashFiles[step].toString(),score,co2);
    setNavbar();
}

function setupNavbar()
{
	var images = document.getElementById('nav').getElementsByTagName('IMG');
	for (var i=0;i<images.length;i++)
		addEvent(images[i], "click", gotoStep);
}

function gotoStep(e)
{
	if (!e) var e = window.event;
	var tg = e.target || e.srcElement;
    
    if (tg.src.indexOf('_disabled.gif') != -1) return;
    
    // get step for navitem
    var tokens = tg.src.split('/');
    var navItem = tokens[tokens.length - 1].split('_')[0];
    
    var divSteps = getAllSteps();
    for(var i=0;i<divSteps.length;i++)
    {
        if (divSteps[i].getAttribute('nav') == navItem)
        {
            if (navItem == 'home')
                step = 0;
            else
                step = i;
            showStep();
            break;
        }
    }
}

function setNavbar()
{
	var divSteps = getAllSteps();
	var tmp = null;
	for (var i=0; i<divSteps.length; i++)
	{
		// Ignore steps that are not part of the navbar, process each nav item only once
		if (divSteps[i].getAttribute('nav') && tmp != divSteps[i].getAttribute('nav'))
		{
			tmp = divSteps[i].getAttribute('nav');
			if (tmp == getStepDiv(step).getAttribute('nav'))
			{
				selectNavItem(divSteps[i].getAttribute('nav'));
			}
			else if (i < step && step < divSteps.length - 1)
			{
				enableNavItem(divSteps[i].getAttribute('nav'));
			}
			else
			{
				disableNavItem(divSteps[i].getAttribute('nav'));
			}
		}
	}
}

function selectNavItem(item)
{
    var navItem = document.getElementById('navItem_' + item)
    if (navItem.src.indexOf('_on.gif') == -1)
    {
        navItem.src = 'images/' + item + '_on.gif';
        navItem.style.cursor = 'pointer';
    }
}

function enableNavItem(item)
{
    var navItem = document.getElementById('navItem_' + item)
    if (navItem.src.indexOf('_off.gif') == -1)
    {
        navItem.src = 'images/' + item + '_off.gif';
        navItem.style.cursor = 'pointer';
    }
}

function disableNavItem(item)
{
    var navItem = document.getElementById('navItem_' + item)
    if (navItem.src.indexOf('_disabled.gif') == -1)
    {
        navItem.src = 'images/' + item + '_disabled.gif';
        navItem.style.cursor = 'default';
    }
}

function getStepDiv(step)
{
    var x = document.getElementsByTagName('DIV');
    var j = 0;
    for (var i=0; i < x.length; i++) 
    {
        if (x[i].className == 'step') 
        {
            if (j == step) return x[i];
            j++;
        }
    }
}

function getStepsCount()
{
    var x = document.getElementsByTagName('DIV');
    var j = 0;
    for (var i=0; i < x.length; i++) 
    {
        if (x[i].className == 'step') j++;
    }
    return j;
}

function getAllSteps()
{
    var steps = new Array;

    var x = document.getElementsByTagName('DIV');
    for (var i=0; i < x.length; i++) 
    {
        if (x[i].className == 'step') steps.push(x[i]);
    }
    return steps;
}

function getSectionSteps(section)
{
    var allSteps = getAllSteps();
    var sectionSteps = new Array;
    
    for (var i=0;i<allSteps.length;i++)
    {
        if (allSteps[i].getAttribute('section') == section)
            sectionSteps.push(allSteps[i]);
    }
    return sectionSteps;
}

function showHideNavButtons() 
{
	var btnNext = document.getElementById("btnNext");
	var btnBack = document.getElementById("btnBack");

	// replace submit image on clicking back on last step
	if (btnNext.src.toLowerCase().indexOf('images/next.png') == -1)
	{ 
		btnNext.src = 'images/next.png'; 
		btnNext.width = 199; 
		btnNext.alt = 'NEXT';
	}

	if (step == getStepsCount() - 1)
	{
		btnNext.src = 'images/submit.png';
		btnNext.alt = 'SUBMIT'
		btnBack.src = 'images/backBlank.png';
	}
	else if (step == 0) 
	{
		//btnBack.style.display = 'none';
		if (btnBack.src.toLowerCase().indexOf('backblank.png') == -1)
			btnBack.src = 'images/backblank.png';
	}
	else
	{
		if (btnNext.src.toLowerCase().indexOf('nextblank.png') != -1)
			btnNext.src = 'images/next.png';

		if (btnBack.src.toLowerCase().indexOf('backblank.png') != -1)
			btnBack.src = 'images/back.png';
	}
	try
	{
		removeEvent(btnNext, 'click', showNextStep);
	}
	catch(e)
	{
	}
	try
	{
		removeEvent(btnBack, 'click', showPreviousStep);
	}
	catch(e)
	{
	}

	enableNextButton();
	enableBackButton();    
}

function setPostRedir()
{
	var postUrl = "";
	
	if(queryString("postredir") == "carbon")
	{
		postUrl = "../carbonoffset/selectoffset.aspx";
	}
	else if(queryString("postredir") == "pledge")
	{
		postUrl = "../profile/openpledges.aspx";
	}
	else
	{
		postUrl = "../index.aspx?ecp=1";
	}
	
	document.getElementById("checkout").href = postUrl;
	document.getElementById("compare").href = postUrl;
}

function showNextStep()
{
    var totalSteps = getStepsCount();
    if (step == totalSteps -1)
    {
			document.location.href = '../index.aspx?ecp=1';
    }
    
    var dataPosted = false;
    if (step < totalSteps - 1) 
    {
        if (!validate()) return;
        disableNextButton();
    
        if (isLastStepInSection(step))
        {
            var postData = collectPostData(getStepDiv(step).getAttribute('section'));
            dataPosted = true;
            sendRequest(document.getElementById('test').action, getScore, postData);
        }
        
        if (!dataPosted)
            fetchNextStep();
    }
}

function fetchNextStep()
{

    step++;
    if (skipNextPage() && step < getStepsCount() - 1)
        step++;
        
    showStep();
    showHideNavButtons();
}

function disableNextButton()
{
	var btnNext = document.getElementById('btnNext');
	removeEvent(btnNext, 'click', showNextStep);
	btnNext.style.cursor = 'wait';
}

function disableBackButton()
{
	var btnBack = document.getElementById('btnBack');
	removeEvent(btnBack, 'click', showPreviousStep);
	btnBack.style.cursor = 'wait';
}

function enableNextButton()
{
	var btnNext = document.getElementById('btnNext');
	addEvent(btnNext, 'click', showNextStep);
	btnNext.style.cursor = 'pointer';
}

function enableBackButton()
{
	var btnBack = document.getElementById('btnBack');
	addEvent(btnBack, 'click', showPreviousStep);
	btnBack.style.cursor = 'pointer';
}

function isLastStepInSection(step)
{
    var isLastStep = false;
    var section = getStepDiv(step).getAttribute('section');
    
    // if step is part of a section
    if (section)
    {
        // is step last in the section?
        if (!getStepDiv(step+1) || getStepDiv(step+1).getAttribute('section') != section)
            isLastStep = true;
    }
    return isLastStep;
}

function showPreviousStep()
{
    if (step > 0) 
    {
        disableBackButton();
        step--;
        if (step > 0 && skipNextPage()) step--;
        
        //fetchTip(flashFiles[step].toString(),score,co2);window.alert("in show prev step");
        showStep();
        showHideNavButtons();
    }
}

function skipNextPage()
{   
    var div = getStepDiv(step);
    if (div.id != 'recap' && getAllFormFields(div).length == 0)
        return true;
    else
        return false; 
}

function collectPostData(section)
{
    var postData = '';
    var sectionSteps = getSectionSteps(section);

    for(var j=0;j<sectionSteps.length;j++)
    {
        var fields = getFormFieldsForNode(sectionSteps[j]);
        for (var i=0;i<fields.length;i++)
        {
	        if (fields[i].type == 'checkbox' || fields[i].type == 'radio')
	        {
		        if (fields[i].checked)
			        postData += fields[i].name + '=' + fields[i].value + '&';
	        }
	        else if (fields[i].type == 'select-one' && !fields[i].disabled)
	        {
		        postData += fields[i].name + '=' + fields[i].options[fields[i].selectedIndex].value + '&';
            }
	        else if (fields[i].type == 'text' || fields[i].type == 'password' || fields[i].type == 'hidden')
	        {
		        postData += fields[i].name + '=' + encodeURIComponent(trimAll(fields[i].value)) + '&';
            }
        }
    }
        
    postData = 'fnct=sendresults&testId=2&' + postData + 'section=' + section;
    if (request('CID') != '')
        postData += '&CID=' + request('CID');
        
    if (document.forms[0].UID.value != '') 
    {
         postData += '&UID=' + document.forms[0].UID.value;
         postData += '&lGUID=' + document.forms[0].lGUID.value;
    }
    return(postData);
}
