<!--
MM_preloadImages('../Resources/Images/navAbout_on.gif','../Resources/Images/navIndustries_on.gif','../Resources/Images/navServices_on.gif','../Resources/Images/navCaseStudies_on.gif','../Resources/Images/navCareers_on.gif','../Resources/Images/navContact_on.gif','../Resources/Images/navWhitepapers_on.gif','../Resources/Images/navBlogs_on.gif','../Resources/Images/navWebinars_on.gif','../Resources/Images/navArticles_on.gif','../Resources/Images/navPodcasts_on.gif');

function changeBlog(ref){
    for (i=1; i < 4; i++){
	    if (i == ref){
	        document.getElementById("blog" + i).style.display = 'block';
	        document.getElementById("tabBlog" + i).src = '../Resources/Images/tabBlog' + i + '_on.gif';
	    }else{
	        if (document.getElementById("blog" + i)){
    	        document.getElementById("blog" + i).style.display = 'none';
	            document.getElementById("tabBlog" + i).src = '../Resources/Images/tabBlog' + i + '.gif';
	        }
	    }
    }
}

function solutionDesc(ref){
    var descID = document.getElementById(ref);
    if (descID.style.display == 'block'){
        descID.style.display = 'none';
    }else{
        descID.style.display = 'block';
    }
}

function changeResources(ref){
    document.getElementById("tabResources1").src = '../Resources/Images/tabByTopic.gif';
    document.getElementById("tabResources2").src = '../Resources/Images/tabByIndustry.gif';
    
    for (i=1; i < 3; i++){
	    if (i == ref){
	        document.getElementById("list" + i).style.display = 'block';
	    }else{
	        document.getElementById("list" + i).style.display = 'none';
	    }
    }
    
    if (ref == "1"){
        document.getElementById("tabResources1").src = '../Resources/Images/tabByTopic_on.gif';
    }else if (ref == "2"){
        document.getElementById("tabResources2").src = '../Resources/Images/tabByIndustry_on.gif';
    }
}

function showList(ref){
    var descID = document.getElementById(ref);
    if (descID != null)
    {
        if (descID.style.display == 'block'){
            descID.style.display = 'none';
            document.getElementById("btn_" + ref).src = '../Resources/Images/btnExpand.gif';
            
        }else{
            descID.style.display = 'block';
            document.getElementById("btn_" + ref).src = '../Resources/Images/btnCollapse.gif';
        }
    }
}

function showNext(ref,idPrefix,totalCount){
    var to = 0;
    if (ref == totalCount)
        to = 1;
    else
        to = ref + 1;
        
    for (i=1; i <= totalCount; i++)
    {
	    if (i == to)
	        document.getElementById(idPrefix + i).style.display = 'block';
	    else
	        document.getElementById(idPrefix + i).style.display = 'none';	    
    }
}

function changeTabs(ref,tab1,tab2,tab3){
    //first, set all tab images to "off" state
    document.getElementById("tab1").src = '../Resources/Images/' + tab1 + '.gif';
    document.getElementById("tab2").src = '../Resources/Images/' + tab2 + '.gif';
    document.getElementById("tab3").src = '../Resources/Images/' + tab3 + '.gif';
    
    //hide all associated content divs
    document.getElementById("list1").style.display = 'none';
    document.getElementById("list2").style.display = 'none';
    document.getElementById("list3").style.display = 'none';

    //turn on selected tab section
    if (ref == "tab1"){
        document.getElementById("tab1").src = '../Resources/Images/' + tab1 + '_on.gif';
        document.getElementById("list1").style.display = 'block';
    }else if (ref == "tab2"){
        document.getElementById("tab2").src = '../Resources/Images/' + tab2 + '_on.gif';
        document.getElementById("list2").style.display = 'block';
    }else if (ref == "tab3"){
        document.getElementById("tab3").src = '../Resources/Images/' + tab3 + '_on.gif';
        document.getElementById("list3").style.display = 'block';
    }

}

function sifr450(ref,divID){
   var so = new SWFObject("../Resources/swf/sifr450x23.swf", "sifr450x23", "450", "23", "7", "#336699");  
   so.addParam("wmode", "transparent");
   so.addVariable("titleText", ref);
   so.write("flashcontent" + divID);
}

function sifr245(ref,divID){
   var so = new SWFObject("../Resources/swf/sifr245x23.swf", "sifr245x23", "245", "23", "7", "#336699");  
   so.addParam("wmode", "transparent");
   so.addVariable("titleText", ref);
   so.write("flashcontent" + divID);
}

function sifr140(ref,divID){
   var so = new SWFObject("../Resources/swf/sifr140x23.swf", "sifr140x23", "140", "23", "7", "#336699");  
   so.addParam("wmode", "transparent");
   so.addVariable("titleText", ref);
   so.write("flashcontent" + divID);
}

function GetQueryVariable(variable)
{
    var query = window.location.search.substring(1);
    var vars = query.split('&');
    for (var i=0;i<vars.length;i++) 
    {
        var pair = vars[i].split('=');
        if (pair[0] == variable) 
        {
            return pair[1];
        }
    }
    return "";
}

function SetDropDownValue(o, v)
{
    for(var c = 0; c < o.options.length; c++)
    {
        if(o.options[c].value == v)
        {
            o.selectedIndex = c;
            break;
        }
    }
}

function validateContact(){
    var msg = "";
   
    if (document.getElementById('firstname').value == ""){msg += "-- First Name\n";}
    if (document.getElementById('lastname').value == ""){msg += "-- Last Name\n";}
    if (document.getElementById('company').value == ""){msg += "-- Company\n";}
    if (document.getElementById('phone').value == ""){msg += "-- Phone Number\n";}
    if (ValidateEmail(document.getElementById('email')) == false){msg += "-- E-mail Address\n";}
    if (document.getElementById('industry').value == ""){msg += "-- Your Industry\n";}

    if (msg != ""){
        alert("The following required field(s) are missing:\n\n" + msg + "\nPlease complete the form and resubmit.");
        
    }else{
        var x = getFormElementsXML("formfield", "contactUs");
        Wipfli.AjaxAPI.WipfliAjax.FormSave(x, Process_SubmitForm);     
    }
}

function validateNGP(){
    var msg = "";
   
    if (document.getElementById('firstname').value == ""){msg += "-- First Name\n";}
    if (document.getElementById('lastname').value == ""){msg += "-- Last Name\n";}
    if (document.getElementById('title').value == ""){msg += "-- Title\n";}
    if (document.getElementById('company').value == ""){msg += "-- Company\n";}
    if (document.getElementById('city').value == ""){msg += "-- City\n";}
    if (document.getElementById('state').value == ""){msg += "-- State\n";}
    if (document.getElementById('phone').value == ""){msg += "-- Phone Number\n";}
    if (ValidateEmail(document.getElementById('email')) == false){msg += "-- E-mail Address\n";}

    /*  if (document.getElementById('interest').value == ""){msg += "-- Software interests\n";}   validate Interest checkboxes here  */
    var chk = validateCheckboxes('MainContainer'); 
    if (chk == 'false')
    {
        msg += "-- SoftwareInterests\n";  
    }
      
    if (document.getElementById('fiscalyear').value == ""){msg += "-- Fiscal Year\n";}
    if (document.getElementById('goal').value == ""){msg += "-- Goal for Implementation\n";}

    if (msg != ""){
        alert("The following required field(s) are missing:\n\n" + msg + "\nPlease complete the form and resubmit.");
        
    }else{
        var x = getFormElementsXML("formfield", "SageAssessment");  
        Wipfli.AjaxAPI.WipfliAjax.NGPForm(x, Process_SubmitForm);    
    }
}


function validateOrderForm(){
    var msg = "";
   
    if (document.getElementById('firstname').value == ""){msg += "-- First Name\n";}
    if (document.getElementById('lastname').value == ""){msg += "-- Last Name\n";}
    if (document.getElementById('title').value == ""){msg += "-- Title\n";}
    if (document.getElementById('company').value == ""){msg += "-- Company\n";}
    if (document.getElementById('address').value == ""){msg += "-- Address\n";}
    if (document.getElementById('city').value == ""){msg += "-- City\n";}
    if (document.getElementById('state').value == ""){msg += "-- State\n";}
    if (document.getElementById('zip').value == ""){msg += "-- Zip Code\n";}
    if (document.getElementById('phone').value == ""){msg += "-- Phone Number\n";}
    if (ValidateEmail(document.getElementById('email')) == false){msg += "-- E-mail Address\n";}

    //  If product ordered, then Payment Method field required  
    var chk = validateCheckboxes('productlist'); 
    if (chk == 'true')
    {
        var pay = validateCheckboxes('tblPayment');    
        if (pay == 'false') 
        {
            msg += "-- Payment Method\n"; 
        }
    }
      
    if (msg != ""){
        alert("The following required field(s) are missing:\n\n" + msg + "\nPlease complete the form and resubmit.");
        
    }else{
        var x = getFormElementsXML("formfield", "OrderForm");  
        Wipfli.AjaxAPI.WipfliAjax.OrderForm(x, Process_OrderForm);    
    }
}


function validateUserList(){

        var x = getFormElementsXMLUserList();  
        Wipfli.AjaxAPI.WipfliAjax.OrderFormUserList(x, Process_OrderFormUserList);  

}



function validateCheckboxes(div)  //  validate checkboxes or radio buttons  
{ 
    var checked = 'false';   
    var chkArray = document.getElementById(div).getElementsByTagName('input');  
    for (var i = 0; i < chkArray.length; i++)   
    {
        if (chkArray[i].type == 'checkbox' || chkArray[i].type == 'radio')  
        {
            if (chkArray[i].checked)  
            {
                checked = 'true';   
            }  
        }   
    }  
    return checked;  
}  


function updateOrderTotal(){
    var orderTotal = 0;
    
    var productlist = document.getElementById("productlist").getElementsByTagName('input');

    for (i = 0; i < productlist.length; i++)
    {
        if (productlist[i].type = 'checkbox')  
        {
            if (productlist[i].checked)  
            {
                orderTotal = orderTotal + parseFloat(productlist[i].value);  
            }
        }
    }
    document.getElementById('orderTotalDiv').innerHTML = "$" + orderTotal;
}


function Process_SubmitForm(res){
    if (res.error){
        alert("An error occurred.\nYour inquiry could not be processed.  " + res.error.Message)
    }
    else
    {
		/*
        document.getElementById('divForm').style.display = 'none';
        document.getElementById('divConfirmation').style.display = 'block';
        */
        document.location.href = "Page_NeedsAssessmentFormThankyou.aspx";
    }
}

function Process_OrderForm(res){ 
    if (res.error){ 
        alert("An error occurred.\nYour inquiry could not be processed.  " + res.error.Message)  
    } 
    else 
    { 
        var govpro = $(res.value).find('root').attr('govpro');  
        if (govpro == 'true') 
        { 
            document.location.href = "Page_GovProUsers.aspx";  
        } 
        else 
        { 
            document.location.href = "Page_OrderFormThankyou.aspx";  
        } 
    } 
} 


function Process_OrderFormUserList(res){
    if (res.error){
        alert("An error occurred.\nYour inquiry could not be processed.  " + res.error.Message)
    }
    else
    {
        document.location.href = "Page_OrderFormThankyou.aspx";  
    }
}



function ValidateEmail(obj)
{
    var str = obj.value;
    if (str == "")
        return false;
        
    var at="@";
    var dot=".";
    var lat=str.indexOf(at);
    var lstr=str.length;
    var ldot=str.indexOf(dot);
    if (str.indexOf(at)==-1){
        //EmailAlert(obj);
       return false;
    }

    if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
        //EmailAlert(obj);
       return false;
    }

    if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
        //EmailAlert(obj);
        return false;
    }

     if (str.indexOf(at,(lat+1))!=-1){
        //EmailAlert(obj);
        return false;
     }

     if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
        //EmailAlert(obj);
        return false;
     }

     if (str.indexOf(dot,(lat+2))==-1){
        //EmailAlert(obj);
        return false;
     }

     if (str.indexOf(" ")!=-1){
        //EmailAlert(obj);
        return false;
     }

     return true;
}

function EmailAlert(obj)
{
    obj.focus();
    obj.select();
    alert("The email address entered is not valid.\r\nPlease enter an email address with the format email@domain.com.");
}                        

function getFormElementsXML(strAttributeName, strAttributeValue){
    var arrElements = document.body;
    if (!arrElements.all)	
    {
        arrElements = arrElements.getElementsByTagName('*');
    }
    else
    {
       arrElements = arrElements.all;
    }
	
    var arrRetEl = new Array();
    var oAttribVal = (typeof strAttributeValue != "undefined")? new RegExp("(^|\\s)" + strAttributeValue + "(\\s|$)") : null;
    var oCurrent;
    var oAttribute;
    var sReturn='';
	
    var aReturn =new Array();
    aReturn.push('<root>');
    
        for(var i=0; i<arrElements.length; i++){
	    oCurrent = arrElements[i];
	    oAttribute = oCurrent.getAttribute && oCurrent.getAttribute(strAttributeName);
	    
	    if(typeof oAttribute == "string" && oAttribute.length > 0){
		    
		    if(typeof strAttributeValue == "undefined" || (oAttribVal && oAttribVal.test(oAttribute))){
		        if(oCurrent.type=="checkbox" || oCurrent.type=="radio"){
		            aReturn.push('<' + oCurrent.name + ' id=\"' + oCurrent.id + '\">' + oCurrent.checked + '</' + oCurrent.name + '>');
		        }else{
                    aReturn.push('<' + oCurrent.id + '>' + oCurrent.value + '</' + oCurrent.id + '>'); 
		        }
		    }
	    }
    }
    aReturn.push('</root>');
    sReturn = aReturn.join('');

    return sReturn;
}



function getFormElementsXMLUserList(){

    var sReturn='';
    var aReturn = new Array();
    aReturn.push('<userlist>');

    var fname = "";  
    var lname = ""; 
    var title = ""; 
    var phone = ""; 
    var email = ""; 
    var role = ""; 
   
    $('div.user').each(function (index, user) { 
		    var i = index + 1;
		    // $(user + ':input');  // all inputs   
		    fname = $(user).find("input[id^='firstname']").val();         
		    lname = $(user).find("input[id^='lastname']").val();     
		    title = $(user).find("input[id^='title']").val();    
		    phone = $(user).find("input[id^='phone']").val();   
		    email = $(user).find("input[id^='email']").val(); 
		    //role = $(user).find("input[id^='role']").val();   	
		    role = $(user).find("select option:selected").val(); 
		    
		    if (fname == "" && lname == "")
		    {
		        // skip it  
		    }
		    else 
		    {
		        aReturn.push('<user>'); 
		            aReturn.push('<firstname>' + fname + '</firstname>');
		            aReturn.push('<lastname>' + lname + '</lastname>');
		            aReturn.push('<title>' + title + '</title>');
		            aReturn.push('<phone>' + phone + '</phone>');
		            aReturn.push('<email>' + email + '</email>');
		            aReturn.push('<role>' + role + '</role>');
		        aReturn.push('</user>'); 
		    }
		    	
	    });  
    
    aReturn.push('</userlist>');
    sReturn = aReturn.join(''); 
    
    return sReturn;
}



 function getFormElementsArray(strAttributeName, strAttributeValue){
    var arrElements = document.body;
    if (!arrElements.all)	
    {
        arrElements = arrElements.getElementsByTagName('*');
    }
    else
    {
       arrElements = arrElements.all;
    }
	
    var arrRetEl = new Array();
    var oAttribVal = (typeof strAttributeValue != "undefined")? new RegExp("(^|\\s)" + strAttributeValue + "(\\s|$)") : null;
    var oCurrent;
    var oAttribute;
    var sReturn='';
	
    var aReturn =new Array();
	
    for(var i=0; i<arrElements.length; i++){
        oCurrent = arrElements[i];
        oAttribute = oCurrent.getAttribute && oCurrent.getAttribute(strAttributeName);
        if(typeof oAttribute == "string" && oAttribute.length > 0){
	        if(typeof strAttributeValue == "undefined" || (oAttribVal && oAttribVal.test(oAttribute))){
                aReturn.push(oCurrent.id);
	        }
        }
    }

    return aReturn;
}

function Modal_Open(ref){
    document.getElementById(ref).style.top = getScrollY();
    document.getElementById(ref).style.display = "block";
    window.onscroll = function () { document.getElementById(ref).style.top = getScrollY(); };
}

function ModalFixed_Open(ref){
    document.getElementById(ref).style.top = getScrollY();
    document.getElementById(ref).style.display = "block";
}

function Modal_Close(ref){
    document.getElementById(ref).style.display = "none";
}

function getScrollY(){
    scrollY = 0;
    if ( document.documentElement && document.documentElement.scrollTop ){
        scrollY = document.documentElement.scrollTop;
    }else if ( document.body && document.body.scrollTop ){
        scrollY = document.body.scrollTop;
    }else if ( window.pageYOffset ){
        scrollY = window.pageYOffset;
    }else if ( window.scrollY ){
        scrollY = window.scrollY;
    }
    return scrollY + "px";
}

function CookieSet(name, value)
{
    var date = new Date();
    date.setTime(date.getTime() + (24 * 60 * 60 * 1000 * 365));
    expires = "; expires=" + date.toGMTString();
    document.cookie = name + "=" + escape(value) + expires + "; path=/"; 
}

function CookieRead(name)
{
    var value = document.cookie.match ( '(^|;) ?' + name + '=([^;]*)(;|$)' );
    if (value)
    {
        return unescape(value[2]);
    }
    else
    {
        return null;
    }
}

function PageSwap(to, id)
{
    aDivs = new Array();
    aDivs = getFormElementsArray(id, 'true');
    
    for(var i = 0; i < aDivs.length; i++)
    {
        var d = document.getElementById(id + (i + 1));
        
    	if (i + 1 == to)
	        d.style.display = 'block';
	    else
	        d.style.display = 'none';	            
    }         
}

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') 
    window.onload = func;
  else 
  {
    window.onload = function() 
    {
      if (oldonload) 
        oldonload();
      func();
    }
  }
}

function confirmEmail(){
    // check to make sure the email addresses match
    // let a null value go -- we'll check it again during form submission
    if ((document.getElementById('emailConfirm').value != document.getElementById('email').value) && (document.getElementById('emailConfirm').value != "")){
        alert("The e-mail addresses do not match.\n\nPlease re-enter your e-mail address.");
        document.getElementById('emailConfirm').value = "";

        document.getElementById('emailConfirm').focus();   // doesn't work in FF
    }
}

function validateEmailSignup(ref){
    var msg = "";
   
    if (ValidateEmail(document.getElementById('email')) == false){msg += "-- Valid E-mail Address\n";}
    if ((document.getElementById('emailConfirm').value != document.getElementById('email').value) || (document.getElementById('emailConfirm').value == "")){msg += "-- Confirm E-mail Address\n";}
    
    if (ref == "subscribe"){
        if (document.getElementById('firstname').value == ""){msg += "-- First Name\n";}
        if (document.getElementById('lastname').value == ""){msg += "-- Last Name\n";} 
        if (document.getElementById('company').value == ""){msg += "-- Company\n";} 
        if (document.getElementById('address').value == ""){msg += "-- Address\n";}
        if (document.getElementById('city').value == ""){msg += "-- City\n";}
        if (document.getElementById('state').value == ""){msg += "-- State\n";}
        if (document.getElementById('zip').value == ""){msg += "-- Zip Code\n";}
        
        if (document.getElementById('phone').value == ""){msg += "-- Phone Number\n";}
    }
    
    if (msg != ""){
        alert("The following required field(s) are missing:\n\n" + msg + "\nPlease complete the form and resubmit.");
        
    }else{
        var x = getFormElementsXML("formfield", "emailSignup");
        //convert email to lowercase before saving to database
        var emailLC = document.getElementById('email').value.toLowerCase();    
    
        if (ref == "subscribe"){
            document.getElementById('subscribe').value = "subscribe";
            //alert("Thank you for subscribing.");
             Wipfli.AjaxAPI.WipfliAjax.EmailSignup(emailLC, x, Process_EmailSignup);
        }else if (ref == "unsubscribe"){
            document.getElementById('subscribe').value = "unsubscribe";
            //alert("You will be unsubscribed from all e-mail newsletter topics.");
             Wipfli.AjaxAPI.WipfliAjax.EmailSignup(emailLC, x, Process_EmailUnSubscribe);
        }
    }
}

function Process_EmailSignup(res){
    if (res.error){
        //alert("An error occurred.\nYour request could not be processed.  " + res.error.Message)
    }
    document.location.href = "Page_EmailSubscriptionThankYou.aspx";
}
function Process_EmailUnSubscribe(res){
    if (res.error){
        //alert("An error occurred.\nYour request could not be processed.  " + res.error.Message)
    }
    document.location.href = "Page_EmailUnsubscribe.aspx";
}

function GFPlogin(){
    var msg = "";
    
    if (document.getElementById('login').value == ""){
        msg += "-- User ID\n";
    }
    if (document.getElementById('password').value == ""){
        msg += "-- Password\n";
    }

    if (msg != ""){
        alert("Please enter the following required fields:\n\n" + msg);
    }else{
        var frm = document.getElementsByTagName("form")[1];
        frm.action = "https://gfponline.wipfli.com/iMISWeb/gfpredirect.aspx";
        frm.method = "get";
        frm.submit();
    }   
}


function checkGFPCookie()
{
    Wipfli.AjaxAPI.WipfliAjax.ProcessGFPCookie(updateGFPForm);
} 

function updateGFPForm(res)
{

    if (res.error)
    {
        alert("An error occurred.\n Your request could not be processed. " + res.error.Message)
    }
    else 
    {
        var t = res.value; 
        if (t.length > 0)
        {
            //t = "<p>testing here...</p>"; 
            $(".GFPWelcome").html(t);   
            $(".GFPWelcome").show();  
            
        }
        else
        {
            $(".GFPLogin").show();
        }
    }
} 




//-->