﻿var Integra = {
    TechnologyOfferings: {
        Legend: {        
            ActiveId:false,
            Show: function(obj,id) {
                    var targ = docObj('divTechLegend-'+id);
                    if (targ)
                    {                    
                        // ensure the last popup is being hidden
                        this.Hide();
                        
                        var offset = 5;
                        targ.style.top  = (findPos(obj).top +parseInt(obj.offsetHeight)  +offset) + 'px';
                        targ.style.left = (findPos(obj).left+parseInt(obj.offsetWidth)/2 +offset) + 'px';                        
                        targ.className = 'legend_tech';
                        this.ActiveId = id;
                        
                        shadowBox(true,targ,6);
                    }
                },
            Hide: function() {
                    if (this.ActiveId)
                    {
                        var obj = docObj('divTechLegend-'+this.ActiveId);
                        obj.className = 'legend_tech_off';
                        shadowBox(false,obj);   
                    }
                }                
        }
    },
    
    RegionalContact: {
            ActiveId:false,
            InitMapPopUp: function() {
                    document.onmousemove = Integra.RegionalContact.MoveMap;
                    if (document.captureEvents)
	                    document.captureEvents(Event.ONMOUSEMOVE);
                },
            MoveMap: function(e) {
                    if (Integra.RegionalContact.ActiveId)
                    {
                        var coords = findMouse(e);
                        var obj = docObj('divContact-'+Integra.RegionalContact.ActiveId);                                               
                        obj.style.top  = (coords.y - parseInt(obj.offsetHeight)/2)+75 + 'px';
                        obj.style.left = (coords.x + 35) + 'px';
                    }            
                },
            Show: function(obj,id) {
                    var targ = docObj('divContact-'+id);
                    if (targ && ! this.ActiveId)
                    {                    
                        // ensure the last popup is being hidden
                        this.Hide();                      
                        targ.className = 'legend_tech';
                        this.ActiveId = id;
                    }
                },
            Hide: function() {
                    if (this.ActiveId)
                    {
                        var obj = docObj('divContact-'+this.ActiveId);
                        obj.className = 'legend_tech_off';
                        shadowBox(false,obj);
                        this.ActiveId = false;
                    }
                } 
    },
    
    NumberingSystem: {
        ActiveId:false,
        Show: function(obj,id) {
                var targ = docObj('divNumberingSystem-'+id);
                // ensure the last popup is being hidden
                this.Hide();
                
                var offset = 20; var offsetWidth = ( 750/2 );
                targ.style.top  = (findPos(obj).top + parseInt(obj.offsetHeight)) + 'px';
                targ.className = (id.match(/corn/gi) ? 'numbering_system_corn' : 'numbering_system_soybean');
                targ.style.left = (offsetWidth - parseInt(targ.offsetWidth)/2) + offset + 'px';                
                this.ActiveId = id;
                
                shadowBox(true,targ,6);
            },
        Hide: function() {
                if (this.ActiveId)
                {
                    var obj = docObj('divNumberingSystem-'+this.ActiveId);
                    obj.className = 'numbering_system_off';
                    shadowBox(false,obj);
                }                    
            }    
    },
    
    DropDownList: {        
        SearchType:'', ActiveId:false, DropDownListIsActive:false,
        Show: function(obj) {
                if (this.ActiveId != obj.id)
                {
                    if (this.ActiveId) this.Hide();                    
                    var targ = docObj(obj.id+'Panel');
                    
                    if ( DdlIsNotDisabled(targ) )
                    {                    
                        targ.style.top  = (findPos(obj).top + parseInt(obj.offsetHeight)) + 'px';
                        targ.style.left = findPos(obj).left + 'px';
                        targ.className = 'ddlPanel'; obj.className = 'ddl_on';
                        this.ActiveId = obj.id; this.DropDownListIsActive = true;
                        shadowBox(true,targ,3,'right');
                    }
                }
                else
                    this.Hide();
            },
        Hide: function() {
                var obj = docObj(this.ActiveId+'Panel');
                if (obj)
                {
                    obj.className = 'ddlPanel_off'; docObj(this.ActiveId).className = 'ddl_off';
                    shadowBox(false,obj);
                    this.DisplaySelections(this.ActiveId);
                    this.ActiveId = this.DropDownListIsActive = false;
                }
            },
      DisplaySelections: function(id) {
                var obj = docObj(id);
                var arChk = docObj(id+'Panel').getElementsByTagName('input');
                var strDisplay = '';
                if (arChk.length && arChk.length > 0)
                {
                    for (var i = 0; i < arChk.length; i++)
                    {
                        if (arChk[i].checked)
                        {
                            var refObj = arChk[i].nextSibling;
                            if (refObj.nodeName.toUpperCase() != 'IMG' && refObj.nodeName.toUpperCase() != 'SPAN')
                                strDisplay += refObj.innerHTML + ',';
                            else
                            {
                                if (refObj.nodeName.toUpperCase() == 'IMG')
                                    strDisplay += refObj.alt + ',';
                                else
                                    strDisplay += refObj.innerHTML + ',';
                            }
                        }                    
                    }                    
                    if (strDisplay.indexOf(',') != -1)
                        strDisplay = strDisplay.substring(0,strDisplay.length-1)
                }                
                if (strDisplay.length > 16)
                    strDisplay = strDisplay.substring(0,15)+'...';
                else if (strDisplay.length == 0)
                    strDisplay = DdlDefaultDisplay(id);
                
                obj.innerHTML = strDisplay;
            },
        Select: function(obj) {
                this.EnsureDeselection(obj.previousSibling);
                obj.className = 'selected'; obj.previousSibling.checked = true;                
                this.Hide();
                
                CheckIfSorghumChoices(obj);
            },
       SelectImage: function(obj) {
                var chkBox = obj.previousSibling;
                chkBox.checked = ! chkBox.checked;
                obj.className = (chkBox.checked ? 'selected' : '');
            },
       SetValues: function(Values) {                
                this.SearchType = Values.Search;
                
                if (docObj('ddlTypePanel'))
                {
                    arRadio = docObj('ddlTypePanel').getElementsByTagName('input');                
                    ValueToSelect(arRadio, Values.SorghumTypeId);
                }
                if (docObj('ddlMaturityPanel'))
                {
                    arRadio = docObj('ddlMaturityPanel').getElementsByTagName('input');                
                    ValueToSelect(arRadio, Values.Maturity.Occurs);
                }
                if (docObj('ddlMaturityFromPanel'))
                {
                    arRadio = docObj('ddlMaturityFromPanel').getElementsByTagName('input');
                    ValueToSelect(arRadio, Values.Maturity.From);
                }
                if (docObj('ddlMaturityToPanel'))
                {
                    arRadio = docObj('ddlMaturityToPanel').getElementsByTagName('input');
                    ValueToSelect(arRadio, Values.Maturity.To);
                }
                if (docObj('ddlTraitPanel'))
                {
                    arChkbx = docObj('ddlTraitPanel').getElementsByTagName('input');
                    ValueToSelect(arChkbx, Values.Traits, true);
                }
                
                arRadio = docObj('ddlCharacteristicPanel').getElementsByTagName('input');
                ValueToSelect(arRadio, Values.Characteristic);
            },      
      EnsureDeselection: function(obj) {
                if (obj.type && obj.type.toLowerCase() == 'radio')
                {
                    var parent = obj.parentNode;                      
                    var arRadio = parent.getElementsByTagName('input');
                    if (arRadio.length && arRadio.length > 0)
                    {
                        for (var i = 0; i < arRadio.length; i++)
                        { arRadio[i].checked = false; arRadio[i].nextSibling.className = ''; }
                    }
                }
            },
      CheckToCloseDropDownList: function(e) {
	            if (Integra.DropDownList.DropDownListIsActive)
	            {
	                if (!e) var e = window.event;
	                var targ = (window.event) ? e.srcElement : e.target;
	                while (targ.nodeName != 'HTML')
	                { if (targ.id && targ.id.match(/^(ddl|cbBox)/)) { return; } else { targ = targ.parentNode; } }
	                Integra.DropDownList.Hide();
	                Integra.ComboBox.Hide();
	                this.DropDownListIsActive = false;
	            }
            }
    },
    
    ComboBox: {
        IsShown: false, Timer:false,
        Show: function(obj) {
                if (! this.IsShown)
                {               
                    var targ = docObj('cbBoxPanel');
                        targ.className = 'cboxPanel';
                    this.IsShown = Integra.DropDownList.DropDownListIsActive = true;
                }
            },
        Hide: function() {
                if (docObj('cbBoxPanel'))
                {
                    docObj('cbBoxPanel').className = 'cboxPanel_off';
                    this.IsShown = Integra.DropDownList.DropDownListIsActive = false;
                }
            },
        Select: function(obj) {
                var input = obj.parentNode.parentNode.getElementsByTagName('input')[0];
                input.value = obj.innerHTML; this.Hide();
            },
        Filter: function(obj) {
                var arSpn = docObj('cbBoxPanel').getElementsByTagName('span');
                if (! this.IsShown)
                    this.Show(obj);
                
                var rEx = new RegExp('^'+obj.value,'i');
                var hidden = 0;
                for (var i = 0; i < arSpn.length; i++)
                {
                    if (arSpn[i].innerHTML.match(rEx))
                        arSpn[i].style.display = 'block';
                    else
                    {
                        arSpn[i].style.display = 'none';
                        hidden++;
                    }
                }
                if (hidden == arSpn.length)
                    this.Hide();
            }
    },
    
    Tab: {
        Toggle: function(obj,set,id) {
                obj.className = 'irm_tab_on';
                if (id=='2')
                {
                    obj.nextSibling.className = 'irm_tab_off';
                    docObj('irm_chart_'+set+'-1').style.display = 'none';
                    docObj('irm_chart_'+set+'-2').style.display = 'block';
                }
                else
                {
                    obj.previousSibling.className = 'irm_tab_off';
                    docObj('irm_chart_'+set+'-2').style.display = 'none';
                    docObj('irm_chart_'+set+'-1').style.display = 'block';
                }
            }    
    },
    
    Nav: {
        ActivePage:false,HoveredLink:false,HoveredLinkPanel:false,Timeout:false,
        ShowSubNav: function(obj) {
                if (obj && obj.parentNode.id)
                {
                    // clear any timers and hide any active menu to ready the next selection
                    clearTimeout(Integra.Nav.Timeout);
                    this.Hide();
                    
                    var targId = obj.parentNode.id.replace(/^n/,'pnl');
                    var targObj = dotNetObj(targId,'div');
                    if (targObj)
                    {
                        this.SetStyle(dotNetObj(this.ActivePage,'div'),false);
                        this.SetStyle(targObj,true); obj.className = 'selected';
                        this.HoveredLinkPanel = targId; this.HoveredLink = obj.id;                       
                    }
                }        
            },
        SustainSubNav: function() { clearTimeout(Integra.Nav.Timeout); },
        SetStyle:      function(obj,b) { if (obj) { obj.className = (b ? obj.className.replace('_off','') : obj.className+'_off' ); } },
        HideSubNav:    function() { this.Timeout = setTimeout('Integra.Nav.Hide()',1000); },
        Hide: function() {                
                if (this.HoveredLinkPanel && this.HoveredLinkPanel != this.ActivePage)
                {
                    var obj = docObj(this.HoveredLink);
                    if (obj)
                    {
                        docObj(this.HoveredLink).className = '';
                        this.SetStyle(dotNetObj(this.HoveredLinkPanel,'div'),false);
                        this.SetStyle(dotNetObj(this.ActivePage,'div'),true);                    
                        this.HoveredLinkPanel = this.HoveredLink = false;
                    }
                }
            }
    },
    
   SeedsForSuccess: {
              Url: window.location.href.split('#'), JQueryReady: false,
    GetStartIndex: function () {    
                if (this.Url.length == 2)
                    return parseInt(this.Url[1])-1;
                else
                    return 0;
            },
    InitAutoLoad: function() {
             if (this.Url.length == 2)
             {                
                //if (this.JQueryReady)
               // {
                    var refObj = docObj('article'+this.Url[1]);
                    if (refObj) window.scrollTo(0,$(refObj).position().top);
                //}                
                //else
                //    setTimeout('Integra.SeedsForSuccess.InitAutoLoad();',10);
             }
        }
    },

    PdfIsGenerating: false,
    DownloadPdf: function(url,type,title,refObj) {
            if (! this.PdfIsGenerating)
            {
                if (type.match(/sorghum/g))
                    type = 'sorghum';
                
                docObj('ifrmPdf').src = url;
                var pdfBox = docObj('pdf_box');
                pdfBox.innerHTML = '<div><img src="../media/images/ax-'+type+'.gif" alt="">&nbsp; &nbsp;Retrieving pdf for ' + title + '</div>';
                
                pdfBox.style.display = 'block';
                pdfBox.style.top  = (findPos(refObj).top - 100) + 'px';
                pdfBox.style.left = findPos(refObj.parentNode).left + 'px';   
                shadowBox(true,pdfBox,3,'right');
                this.PdfIsGenerating = true;
                setTimeout('Integra.CancelDownloadPdf();',9000);
            }
        },
    CancelDownloadPdf: function() {
            var pdfBox = docObj('pdf_box'); 
            shadowBox(false,pdfBox); pdfBox.style.display = 'none';
            this.PdfIsGenerating = false;
        }
  /*
    DealerLocator: {
        InView:false, PostalCode:0, IsResizing:false,
        ResizeMap: function (obj,b) {
                if (b && !this.IsResizing)
                {
                    IsResizing = true;
                    animate(obj, 449);
                }
                else if (!b)
                {
                    animate(obj, 30);
                }
            }
        Locate: function(postalcode) {
                if (this.PostalCode != postalcode)
        
            }      
    
    }*/
}

var Fortified = {
    Navigation: {
        Initiated:false, ActiveTab:'manifest', LastActiveTab:false, zIndex:100,
        Toggle: function(obj,isConfirmation) {                
                if (this.ActiveTab != obj.id)
                {
                    var size = 275;

                    // reset last active menu to a hidden state
                    if (! this.Initiated)
                        docObj('content_'+this.ActiveTab).style.visibility = 'hidden';                    
                    // reset overflow
                    this.ToggleOverflow(false);
                    
                    this.LastActiveTab = this.ActiveTab;
                    this.ActiveTab = (!isConfirmation ? obj.id : 'result');
                    
                    if ('manifest_more'==this.ActiveTab) size = 335;
 
                    var targ = docObj('content_'+this.ActiveTab);
                    if (targ)
                    {
                        targ.style.height = '0px'; // reset
                        targ.style.zIndex = this.zIndex; this.zIndex++;
                        targ.style.visibility = 'visible';
                        
                        animate(docObj('content_'+this.LastActiveTab),0);
                        animate(targ,size); this.ChangeTitle(this.ActiveTab);
                        this.Initiated = true;
                        
                        if (this.ActiveTab=='signup')
                        { if (docObj('txtSignupFName')) docObj('txtSignupFName').focus(); }
                        else if (this.ActiveTab=='contact')
                        { if (docObj('txtContactFName')) docObj('txtContactFName').focus(); }
                    }
                }        
            },
        Redirect: function(link) {
                    window.location = link;
                },       
        ChangeTitle: function(id) {
                var title = '';
                switch (id)
                {
                    case 'manifest_more':
                    case 'manifest': title = 'INTEGRA SEED, FORTIFIED BY MANIFEST'; break;
                    case   'signup': title = 'SIGN UP FOR THE 2010 CATALOGUE'; break;
                    case  'contact': title = 'QUESTIONS OR COMMENTS?'; break;
                    case   'result': title = docObj('spnTitle').innerHTML; break;
                }
                docObj('spnTitle').innerHTML = title;
            },
        ToggleOverflow: function(b) { docObj('content_'+this.ActiveTab).style.overflow = (b ? 'visible' : 'hidden'); }
    }
}
function shadowBox(show,obj,thickness,direction)
{
    var baseId = 'div-'+obj.id+'-ShadowBox';
    var baseClass = 'shadowbox-'+thickness+'-';
    if (show)
    {
        for (var i = 0; i < thickness; i++)
        {
            var div = document.createElement('div');
            div.id = baseId+i;
            div.className = baseClass+i;
            div.style.width  = parseInt(obj.offsetWidth) - 2 + 'px';  // 2px offset.. not sure why
            div.style.height = parseInt(obj.offsetHeight) - 2 + 'px'; // 2px offset.. not sure why
            div.style.top    = parseInt(obj.style.top) + (i+1) + 'px';
            if (direction && direction == 'right')
                div.style.left = findPos(obj).left + (i+1) + 'px';
            else
                div.style.left = findPos(obj).left - (i+1) + 'px';
            
            document.body.appendChild(div);
        }
    }
    else
    {
        for (var i = 0; i < 8; i++)
        {
            var obj = docObj(baseId+i);
            if (obj) document.body.removeChild(obj);
        }
    }
}
function animate(obj,ht)
{
    var speed = 2, timer = 0;    
    
    if (ht == 0)
    {
        for(i = parseInt(obj.offsetHeight); i >= 0; i-=2)
        {
            if (i < ht) break;
            setTimeout("doSize("+i+",'"+obj.id+"',"+timer+")",(timer*speed));
            timer++;
        }
    }
    else
    {
        for(i = 0; i <= ht; i+=2)
        {
            if (i > ht) break;
            setTimeout("doSize("+i+",'"+obj.id+"',"+timer+")",(timer*speed));
            timer++;
        }
    }
}
function doSize(size, id, pass) { docObj(id).style.height = size+'px'; }
function CheckIfSorghumChoices(obj)
{
    var ddlObj = obj.parentNode.previousSibling;
    if (ddlObj.id) // won't always have an id in the case of the characteristic ddl selected
    {
        if (ddlObj.id.match(/Type/g))
        {
            DdlEnable('ddlCharacteristic');
            if (ddlObj.innerHTML.match(/Grain/gi))
            { docObj('divGrainSorghum').style.display = 'block'; docObj('divForageSorghum').style.display = 'none'; }
            else
            { docObj('divGrainSorghum').style.display = 'none';  docObj('divForageSorghum').style.display = 'block';}
            
            // reset search title and values due to type switching
            docObj('ddlCharacteristic').innerHTML = 'Characteristic';
            Integra.DropDownList.EnsureDeselection(docObj('divGrainSorghum').firstChild);
            Integra.DropDownList.EnsureDeselection(docObj('divForageSorghum').firstChild);
        }
    }
}
function ValueToSelect(arObj, value, multiple)
{
    if (arObj.length && arObj.length > 0)
    {
        var txt = '';
        
        if (Integra.DropDownList.SearchType == 'Sorghum' && arObj[0].parentNode.id.match(/sorghum/gi))
            var ddl = arObj[0].parentNode.parentNode.previousSibling;
        else
            var ddl = arObj[0].parentNode.previousSibling;
        
        for (var i = 0; i < arObj.length; i++)
        {
            if (arObj[i].value == value || InArray(value,arObj[i].value))
            {
                arObj[i].checked = true;
                arObj[i].nextSibling.className = 'selected';
                
                var txt, displayObj = arObj[i].nextSibling;
                if (displayObj.nodeName.toUpperCase() == 'IMG')
                    txt += displayObj.alt+',';
                else
                    txt = displayObj.innerHTML+',';

                if (! multiple)
                    break;    
            }
        }        
        if (txt != '')
        {
            if (ddl && ddl.nodeName == 'DIV')
            { 
                txt = txt.substring(0,txt.length-1); // strip last comma
                if (txt.length > 16) txt = txt.substring(0,15)+'...';                    
                ddl.innerHTML = txt;
            }
        }
    }
}
function InArray(ar, value)
{
    for (var i = 0; i < ar.length; i++)
    { if (ar[i] == value) return true; }
    return false;
}
function DdlIsNotDisabled(obj)
{
    var targ = obj.parentNode;
    if ( targ.innerHTML.match(/gray/g) )
        return false;
    else
        return true;
}
function DdlEnable(id)
{
    var obj = docObj(id);
    obj.innerHTML = obj.innerHTML.replace(/<.*?>/,'');
}
function DdlDefaultDisplay(id)
{
    if (id.match(/Type/g))
        return 'Type';
    else if (id.match(/Trait/g))
        return 'Traits';
    else if (id.match(/State/g))
        return 'States';
    else if (id.match(/Char/g))
        return 'Characteristic';
    else if (id.match(/(From|To)/g))
        return '--';
    else if (id.match(/Maturity/g))
        return 'Maturity';
    else
        return '&nbsp;';
}
var LastClickedRefugeImage = false;
function toggleImage(obj)
{
    var src = obj.src;
    if (src.match(/_large/gi))
    {
        obj.src = src.replace(/_large/gi,'');
        resetImage(obj);
    }
    else
    {
        if (LastClickedRefugeImage)
        {
            LastClickedRefugeImage.src = LastClickedRefugeImage.src.replace(/_large/gi,'');
            resetImage(LastClickedRefugeImage);
        }   
        
        var pos = findPos(obj);
        obj.src = obj.src.replace(/\.gif/ig,'_large.gif');        
        
        obj.style.position = 'absolute';
        obj.style.zIndex = '100000'; obj.style.border = '5px solid #fff';
        obj.style.left = parseInt(pos.left - 60) + 'px';
        obj.style.top  = parseInt(pos.top  - 60) + 'px';
        LastClickedRefugeImage = obj;
    }
}
function resetImage(obj)
{
    obj.style.position = 'relative'; obj.style.left = '0'; obj.style.top = '0';
    obj.style.zIndex = '1'; obj.style.display = 'block'; obj.style.border = '0px none';
}

document.onclick = Integra.DropDownList.CheckToCloseDropDownList;
if (document.captureEvents)
	document.captureEvents(Event.ONCLICK);

/*************************************************************************************************/
/*************************************************************************************************/
/***
/*** Common/Shared Methods
/***
/*************************************************************************************************/
/*************************************************************************************************/
function docObj(id)   { return document.getElementById(id); }
function docObjs(tag) { return document.getElementsByTagName(tag); }
function dotNetObj(id,tag)
{
    if (!tag) tag = 'input';
        
    var arFld = document.getElementsByTagName(tag);
    if (id)
    {
        var serverCtrlName = id.replace(/_/g,'$');
        var regExId = new RegExp(id+"$", "ig");

        for (var i = 0; i < arFld.length; i++)
        {
            if (arFld[i].id)
            {            
                if (arFld[i].id.match(regExId))
                    return arFld[i];
            }
            else if (arFld[i].name)
            {
                (arFld[i].name == serverCtrlName)
                    return arFld[i];
            }
        }
    }
    
    return false;
}
function findPos(obj) 
{
	var curleft = curtop = 0;
	if (obj.offsetParent)
	{
		curleft = obj.offsetLeft;
		curtop = obj.offsetTop;
		while (obj = obj.offsetParent)
		{
			curleft += obj.offsetLeft
			curtop  += obj.offsetTop
		}
	}
	return { left:parseInt(curleft), top:parseInt(curtop) };
}
function findMouse(e)
{
	var posx = 0;
	var posy = 0;
	if (!e) var e = window.event;
	if (e.pageX || e.pageY)
	{ posx = e.pageX; posy = e.pageY; }
	else if (e.clientX || e.clientY)
	{
		posx = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
		posy = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
	}
	return { x:posx, y:posy };
}
function addThisEvent(obj,evType,fn,useCapture)
{
	if(obj)
	{
		if(obj.addEventListener)
			obj.addEventListener(evType,fn,useCapture);
		else if(obj.attachEvent)
			obj.attachEvent('on'+evType,fn);
	}
}
var BrowserIsIE = (navigator.appName=='Microsoft Internet Explorer'?true:false);