﻿
function hideDiv(divName)
{
     var div = document.getElementById(divName);

	if(div != null)
	{
		div.style.display = "none";							
	}
}
      
function showDiv(divName)
{
     var div = document.getElementById(divName);

	if(div != null)
	{
		div.style.display = "";							
	}
}

function ismaxlength(obj)
{
    var mlength=obj.getAttribute? parseInt(obj.getAttribute("maxlength")) : ""
    
    var counterLabel = document.getElementById(obj.id + "textarealength");
    var trancated = false;
        
    if (obj.getAttribute && obj.value.length>mlength)
    {
        obj.value=obj.value.substring(0,mlength);
        trancated = true;
    }
    
    if(counterLabel != null)
    {
        if(trancated)
            counterLabel.innerHTML = "trancated to " + obj.value.length;
        else
            counterLabel.innerHTML = obj.value.length;
    }

  }
  
  function printpage(url)
  {
    child = window.open(url); //Open the child in a tiny window.
    window.focus(); //Hide the child as soon as it is opened.
    child.print(); //Print the child.
    child.close();
  }
  
function CheckMultiple(isChecked, prefix)
{
    var items = document.getElementsByTagName("input");
    
    for(var i=0; i<items.length; i++) {
        if(items[i].name.indexOf(prefix) == 0)
        {
            items[i].checked = isChecked;
        }
    }
}
 
function disableAllInput()
{
    var items = document.getElementsByTagName("input");
    
    for(var i=0; i<items.length; i++) 
    {
        if( items[i].type == 'radio' && !items[i].checked || items[i].type == 'checkbox')
        {
            items[i].disabled='disabled';
        }
    }
}

function HideScrollBars()
{
    document.body.style.overflow = "hidden"; // firefox
    window.document.body.scroll = "no"; // ie
}
function ShowScrollBars()
{
    document.body.style.overflow = "auto"; // firefox
    window.document.body.scroll = "auto"; // ie
}
    
 /* Survey Stuff */
 
 function MultiChoiceCheckBox(isChecked)
    {
        if(isChecked)
        {
            document.getElementById("Dropdown").disabled='disabled';
            document.getElementById("Radio").disabled='disabled';
            document.getElementById("Dropdown").checked='';
            document.getElementById("Radio").checked='';
            document.getElementById("CheckBox").disabled='';
            document.getElementById("CheckBox").checked='checked';
        }
        else
        {
            document.getElementById("Dropdown").disabled='';
            document.getElementById("Radio").disabled='';
            document.getElementById("CheckBox").disabled='disabled';
            document.getElementById("CheckBox").checked='';
        }  
    }
    
    function commentsCheckbox(isChecked)
    {
        if(isChecked) 
        {
            document.getElementById('commentLabel').disabled = '';
        } 
        else 
        {
            document.getElementById('commentLabel').disabled = 'disabled';
            document.getElementById('commentLabel').value = '';
        } 
    }
    
    function ValidateQuestion()
    {
        document.getElementById('questionErrors').innerHTML = "";
        
        if(document.getElementById('QuestionText') != null && document.getElementById('QuestionText').value.length == 0)
        {
            document.getElementById('questionErrors').innerHTML += 'Question Text missing<br>';
        }
        else if(document.getElementById('QuestionText') == null)
        {
            document.getElementById('questionErrors').innerHTML += 'Please fill out question form<br>';
        }
        // hack 
        var doctype = document.getElementById('ctl00_ctl00_Main_SurveyDesigner_QuestionDesigner1_QuestionForm1_QuestionTypeDropdown1_QuestionTypeSelect');
        if(doctype && doctype.value == "Please Choose One")
        {
            document.getElementById('questionErrors').innerHTML += 'Question Type Required<br>';
        }
        if(document.getElementById('SubQuestions') != null && document.getElementById('SubQuestions').value.length == 0)
        {
            document.getElementById('questionErrors').innerHTML += 'Text for each line missing<br>';
        }
        if(document.getElementById('AnswerOptions') != null && document.getElementById('AnswerOptions').value.length == 0)
        {
            document.getElementById('questionErrors').innerHTML += 'Values for each choice missing<br>';
        }
        if(document.getElementById('chkFollowUp') != null && document.getElementById('chkFollowUp').checked != '' && document.getElementById('commentLabel').value.length == 0)
        {
            document.getElementById('questionErrors').innerHTML += 'Comment Label missing<br>';
        }
        
        if(document.getElementById('Column1') != null && document.getElementById('Column1').value.length == 0)
        {
            document.getElementById('questionErrors').innerHTML += 'Label for first column missing<br>';
        }
        
         if(document.getElementById('Columns5') != null && document.getElementById('Columns5').checked != '' &&
            document.getElementById('Column5') != null && document.getElementById('Column5').value.length == 0)
        {
            document.getElementById('questionErrors').innerHTML += 'Label for last column missing<br>';
        }
        
        else if(document.getElementById('Columns3') != null && document.getElementById('Columns3').checked != '' &&
            document.getElementById('Column3') != null && document.getElementById('Column3').value.length == 0)
        {
            document.getElementById('questionErrors').innerHTML += 'Label for last column missing<br>';
        }
        
        if(document.getElementById('questionErrors').innerHTML != "")
        {
            document.getElementById('questionErrors').style.display = '';
            return false;
        }
        else
        {
            return true;
        }
    }

function findServerButton(name)
{
    var items = document.getElementsByTagName("input");
    
    for(var i=0; i<items.length; i++) {
        if(items[i].type=="submit" && items[i].value == name)
        {
            return items[i];
        }
    }
    return null;
}

function findServerDiv(name)
{
    var items = document.getElementsByTagName("div");
    
    for(var i=0; i<items.length; i++) {
        var id = items[i].id;
        
        var index = id.toString().lastIndexOf(name);
        
        if(index > 0)
        {
            if(index + name.toString().length == id.toString().length)
            {
                return items[i];
            }
        }
    }
    return null;
}

function hideServerDiv(name)
{
    var div = findServerDiv(name);
    
    if(div != null)
    {
        div.style.display = "none";			
    }
}

/**** Scoring *****/
function hideDivsByName(name)
{
   var items = getDivElementsByName(name);
 
   for(var i=0; i<items.length; i++) 
   {
       items[i].style.display = "none";	
   }
}

function openOrCloseScoringDetails (sectionNo, image, divName, imageButton)
{
    var display = "";
    var hideOthers = false;
    
    if(image.src.indexOf("Minus") > 1)
    {
        display = "none";
        newsrc = image.src.replace("Minus", "Plus");
    }
    else
    {
        newsrc = image.src.replace("Plus", "Minus");
    }
    
    if(hideOthers)
    {
        hideDivsByName(divName);

        /* switch everyone top plus sign (sinse they are closed) */        
        var items = document.getElementsByName(imageButton);
        
        for(var i=0; i<items.length; i++) 
        {
            items[i].src = image.src.replace("Minus", "Plus");
        }
    }
    
    image.src = newsrc;
 
    var items = getDivElementsByName(divName);
    
    for(var i=0; i<items.length; i++) 
    {
        if(items[i].id == divName + sectionNo)
        {
            items[i].style.display = display;	
        }
    }
} 
 
function getDivElementsByName(divName) 
{
   // For firefox getElementsByName works
    if(navigator.appName == "Netscape")
    {
        return  document.getElementsByName(divName);
    }
    // getElementsByName not working for div in IE
    var items = document.getElementsByTagName("div");
    var array = new Array();
    
    for(var i=0; i<items.length; i++) 
    {
        if(items[i].name == divName)
        {
            array.push(items[i]);
        }
    }
    return array;
}
function CloseAll()
{
    hideDivsByName("questionScoreBox");
    hideDivsByName("answerScores"); 
     
    var items = document.getElementsByName('sectionButton');
        
    for(var i=0; i<items.length; i++) 
    {
        items[i].src = items[i].src.replace("Minus", "Plus");
    }
    
    items = document.getElementsByName('questionButton');
        
    for(var i=0; i<items.length; i++) 
    {
        items[i].src = items[i].src.replace("Minus", "Plus");
    }
}

function highLightError(id)
{
    document.getElementById(id).style.backgroundColor='#FF6A6A';
}

function highLightErrorAll(startswith)
{
    var items = document.getElementsByTagName("input");
    
    for(var i=0; i<items.length; i++) 
    {
        if(items[i].type !="text" || items[i].name.indexOf(startswith) != 0)
        {
            continue;
        }
        items[i].style.backgroundColor='#FF6A6A';
    }
}

function OpenCloseSection(sectionIndex)
{
    openOrCloseScoringDetails(sectionIndex, document.getElementById("SectionImage"+sectionIndex), 'questionScoreBox', 'sectionButton');
}

function OpenCloseQuestion(sectionIndex, questionIndex)
{
    openOrCloseScoringDetails(sectionIndex, document.getElementById("SectionImage"+sectionIndex), 'questionScoreBox', 'sectionButton');

    openOrCloseScoringDetails(questionIndex, document.getElementById("QuestionImage"+sectionIndex + "_" + questionIndex), 
    'answerScores', 'questionButton');
}