﻿// JScript File
var m_divCity;
var m_divType;
//var m_divPrice;
var m_divPagingNav;
var m_strGalleryState = "";
var m_strPage = "";
var m_divProjects = new Array();
var m_iCurProjDiv = 0;
var m_iCurAlbumID = 0;
var m_bSSPLoadedXML = false;
var m_iProjCount = -1;


function body_Load()
{
    var strParams = location.pathname.split("/");
    m_strPage = strParams[strParams.length - 1];
    
    switch (m_strPage)
    {
        case "location.aspx":
            loadMap();
            document.getElementById("txtAddress").focus();
            break;
        case "projects.aspx":
            m_divCity = document.getElementById("divCity");
            m_divType = document.getElementById("divType");
            //m_divPrice = document.getElementById("divPrice");
            m_divProjects.push(document.getElementById("divProjects1"));
            m_divProjects.push(document.getElementById("divProjects2"));
            m_divPagingNav = document.getElementById("divPagingNav");
            
            showDiv(document.getElementById("tab0"), 0);
            
            m_divProjects[1].style.left = "-3000px";
            m_divProjects[0].style.left = "";
            var fdr = new fade(m_divProjects[0], 0, 100, 100);
            fdr.start();
            break;
        default:
            //setTimeout('flashProxy.call("toggleNavigation", false);', 1000);
            break;
    }
    var x = getPageSize();
    document.getElementById("middleColumn").style.height = x[1] + "px";
}

/*************************************************************************
*   Map Functions & locations page
*************************************************************************/


function loadMap()
{
    /*if (GBrowserIsCompatible()) 
    {
        var map = new GMap2(document.getElementById("map"));
        map.setCenter(new GLatLng(37.4419, -122.1419), 13);
    }*/
    
    
    divMap = document.getElementById("map");
    if (divMap == null || !GBrowserIsCompatible())
    {
        return;
    }
    var map = new GMap2(divMap);
    map.setCenter(new GLatLng(35.091541, -92.426959), 16);
    map.addControl(new GLargeMapControl());
    map.addControl(new GMapTypeControl());
    map.addControl(new GScaleControl());
    map.setMapType(G_HYBRID_MAP);
    
    //create point for DeBoards Location
    map.addOverlay(new GMarker(new GLatLng(35.091497, -92.4319)));
}

function txt_KeyPress(event)
{
    if (event.keyCode == 13)
    {
        cmdGetDirections_Click();
    }
}

function cmdGetDirections_Click()
{
    var txtAddress = document.getElementById("txtAddress");
    var txtCity = document.getElementById("txtCity");
    var txtState = document.getElementById("txtState");
    var strErrorString = "Please enter the following fields\n\n";
    var iErrorLength = strErrorString.length;
    
    //reset backgrounds
    txtAddress.style.backgroundColor = "";
    txtCity.style.backgroundColor = "";
    txtState.style.backgroundColor = "";
    
    if (txtAddress.value.length == 0)
    {
        strErrorString += " - Address Field\n";
        txtAddress.style.backgroundColor = "red";
    }
    
    if (txtCity.value.length == 0)
    {
        strErrorString += " - City Field\n";
        txtCity.style.backgroundColor = "red";
    }
    
    if (txtState.value.length == 0)
    {
        strErrorString += " - State Field\n";
        txtState.style.backgroundColor = "red";
    }
    
    if (strErrorString.length > iErrorLength)
    {
        alert(strErrorString);
        return false;
    }
    else
    {
        window.open("http://maps.google.com/maps?&daddr=35.091541,-92.431786+(DeBoards+Electronics)&saddr=" + 
            replace(txtAddress.value, " ", "+") + "+" + replace(txtCity.value, " ", "+") + "+" + replace(txtState.value, " ", "+"));
        return true;
    }
}

/*************************************************************************
*   Projects Page
*************************************************************************/

function showDiv(field, id)
{
    var objTabs = field.parentNode.getElementsByTagName("a");
    for(var i = 0; i < objTabs.length; i++)
    {
        objTabs[i].className = "tab";
    }
    m_divCity.style.opacity = 0;
	m_divCity.style.filter = "alpha(opacity=0)";
	m_divCity.style.left = "-99999px";
	//m_divPrice.style.opacity = 0;
	//m_divPrice.style.filter = "alpha(opacity=0)";
	//m_divPrice.style.left = "-99999px";
	m_divType.style.opacity = 0;
	m_divType.style.filter = "alpha(opacity=0)";
	m_divType.style.left = "-99999px";
	
	field.className = "tabSelected";
    var x;
    switch(id)
    {
        case 0:
            x = new fade(m_divCity, 0, 100, 100);        
            m_divCity.style.left = "";
            break;  
        case 1:
            //x = new fade(m_divPrice, 0, 100, 100); 
            //m_divPrice.style.left = "";
            break;
        case 2:
            x = new fade(m_divType, 0, 100, 100); 
            m_divType.style.left = "";
            break;
    }   
   
    x.start();
}

function refreshCounts(strOmit)
{
    //var chkPrices = document.getElementsByName("chkPrice");
    var chkTypes = document.getElementsByName("chkType");
    var chkCities = document.getElementsByName("chkCity");
    var i = 0;
    //var strPrices = "";
    var strTypes = "";
    var strCities = "";
    
    //clear it
    m_divPagingNav.innerHTML = "";
    
    //prices
    /*for(i = 0; i < chkPrices.length; i++)
    {
        if(chkPrices[i].checked)
            strPrices += "1,";
        else
            strPrices += "0,";    
        
    }*/
    
    //types
    for(i = 0; i < chkTypes.length; i++)
    {
        if(chkTypes[i].checked)
        {
            strTypes += chkTypes[i].id + ",";
        }
    }
    
    //cities
    for(i = 0; i < chkCities.length; i++)
    {
        if(chkCities[i].checked)
        {
            strCities += chkCities[i].id + ",";
        }
    }
    
    //strPrices = strPrices.substr(0, strPrices.length - 1);
    
    if(strCities.length > 0)
    {
        strCities = strCities.substr(0, strCities.length - 1);
    }
    
    if(strTypes.length > 0)
    {
        strTypes = strTypes.substr(0, strTypes.length - 1);
    }
    
    //flashProxy.call('setImagePath', "pictureFeed.aspx?cities=" + strCities + "&types=" + strTypes);
    Projects.refreshCheckBoxes(strCities, "", strTypes, strOmit,0, refreshCheckBoxesCallBack);
    
}

function refreshCheckBoxesCallBack(res)
{
    var arrCities = null;
    var arrTypes = null;
    //var arrPrices = null;
    var i = 0;
    var j = 0;
    var iLastChk = 0;
    var chkBox = null;
    var arrElems = null;    
    
    //setTimeout('flashProxy.call("toggleNavigation", false);', 200);
        
    if (res != null)
    {
        //check to see if there's a difference in project count
        if(res.value.projCount > m_iProjCount)
        {
            alert("New Projects have been added!\nThe page will refresh so you may view them.");
            window.location.reload();
            return;
        }
        else if(res.value.projCount < m_iProjCount)
        {
            alert("Projects have been changed!\nThe page will refresh with current data.");
            window.location.reload();
            return;
        }
    
        //city
        if(res.value.omit.indexOf("city") < 0)
        {
            arrCities = res.value.cities;
            
            arrElems = m_divCity.getElementsByTagName("span");
            for(i = 0; i < arrCities.length; i++)
            {
                arrElems[i].innerHTML = arrCities[i].count;
            }
        }
        
        //price
        /*if(res.value.omit.indexOf("price") < 0)
        {
            arrPrices = res.value.prices;
            
            arrElems = //m_divPrice.getElementsByTagName("span");
            for(i = 0; i < arrPrices.length; i++)
            {
                arrElems[i].innerHTML = arrPrices[i].count;
            }
        }*/
        
        //type
        if(res.value.omit.indexOf("type") < 0)
        {
            arrTypes = res.value.types;

            arrElems = m_divType.getElementsByTagName("span");
            for(i = 0; i < arrTypes.length; i++)
            {
                arrElems[i].innerHTML = arrTypes[i].count;
            }
        }
        
        //projects Div
        if(res.value.omit.indexOf("proj") < 0)
        {
            //fix old div
            m_divProjects[m_iCurProjDiv].style.left = "-3000px";
            m_divProjects[m_iCurProjDiv].style.opacity = "0";
            m_divProjects[m_iCurProjDiv].style.filter = "alpha(opacity=0)";
            m_divProjects[m_iCurProjDiv].style.display = "none";
            
            //get new div
            m_iCurProjDiv = Math.abs(m_iCurProjDiv - 1);
            
            //fix new div
            m_divProjects[m_iCurProjDiv].style.left = "";
            m_divProjects[m_iCurProjDiv].style.display = "block";
            m_divProjects[m_iCurProjDiv].innerHTML = res.value.projects;
            
            var x = new fade(m_divProjects[m_iCurProjDiv], 0, 100, 100);
            
            x.start();
        }
    }
}

function viewProject_CallBack(res)
{
    if(res.value != null)
    {
        //fix old div
        m_divProjects[m_iCurProjDiv].style.left = "-3000px";
        m_divProjects[m_iCurProjDiv].style.opacity = "0";
        m_divProjects[m_iCurProjDiv].style.filter = "alpha(opacity=0)";
        m_divProjects[m_iCurProjDiv].style.display = "none";
        
        //get new div
        m_iCurProjDiv = Math.abs(m_iCurProjDiv - 1);
        
        //fix new div
        m_divProjects[m_iCurProjDiv].style.left = "";
        m_divProjects[m_iCurProjDiv].style.display = "block";
        m_divProjects[m_iCurProjDiv].innerHTML = "<BR><span class='subtitle' style='font-weight: normal;'>" + res.value.title + "</span><BR>" + res.value.lowerHTML;
        m_divPagingNav.innerHTML = "<a href='' class='PagingLinks' onclick='refreshCounts(\"city,type,price\"); return false;'>View Projects</a>";
        
        var x = new fade(m_divProjects[m_iCurProjDiv], 0, 100, 100);
        
        x.start();
    }
}

function viewProject(field, albumID)
{
    var strInnerHTML = field.innerHTML;        
    m_bSSPLoadedXML = false;
    m_divProjects[m_iCurProjDiv].innerHTML = 
        '<img src="images/loading-spinner.gif" /> Loading...<p />';// + 
        //strInnerHTML;
    flashProxy.call('setImagePath', "pictureFeed.aspx?aid=" + albumID);
    Projects.viewProject(albumID, viewProject_CallBack);
}

function loadedXML()
{
    m_bSSPLoadedXML = true;
}



//Misc
function getPageSize() 
{
	var xScroll, yScroll;
	
	if (window.innerHeight && window.scrollMaxY) {	
		xScroll							= document.body.scrollWidth;
		yScroll							= window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll							= document.body.scrollWidth;
		yScroll							= document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll							= document.body.offsetWidth;
		yScroll							= document.body.offsetHeight;
	}
	
	var windowWidth, windowHeight;
	if (self.innerHeight) {	// all except Explorer
		windowWidth						= self.innerWidth;
		windowHeight					= self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth						= document.documentElement.clientWidth;
		windowHeight					= document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth						= document.body.clientWidth;
		windowHeight					= document.body.clientHeight;
	}	
	
	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight						= windowHeight;
	} else { 
		pageHeight						= yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){	
		pageWidth						= windowWidth;
	} else {
		pageWidth						= xScroll;
	}

	arrayPageSize						= new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
	return arrayPageSize;
}

function replace(string,text,by) {
// Replaces text with by in string
 var strLength = string.length, txtLength = text.length;
 if ((strLength == 0) || (txtLength == 0)) return string;

 var i = string.indexOf(text);
 if ((!i) && (text != string.substring(0,txtLength))) return string;
 if (i == -1) return string;

 var newstr = string.substring(0,i) + by;

 if (i+txtLength < strLength)
 newstr += replace(string.substring(i+txtLength,strLength),text,by);

 return newstr;
}