var m_nExitCode = new Number();
var m_sBrowserType = new String();
var m_sReturnXML = new String();


function WIQ_InitializeReturnXML(sDialogID)
{
    m_sReturnXML = "<DIALOG><ID>" + sDialogID +
        "</ID><DISPLAYTEXT>" + window.document.title + "</DISPLAYTEXT>" +
        "<EXITCODE>" + m_nExitCode + "</EXITCODE>";
}

function GetBrowserType()
{
    var bMSIE = false;
    var bNetscape = false;
    var sAppName = navigator.appName;
    var sUserAgent = navigator.userAgent;

    // Is it IE?
    bMSIE = (sUserAgent.indexOf("MSIE") >= 1);
    
    if (bMSIE)
    {
        return "MSIE";
    }
    else if (sAppName == "Netscape")
    {
        bNetscape = true;
        return "Netscape";
    }
    else
    {
        return "Other";
    }
}

function WIQ_AddQuestionResult(oElementCollection, sDisplayText)
{
    switch (m_sBrowserType)
    {
        case "MSIE":
        {
            WIQ_AddQuestionResult_IE(oElementCollection, sDisplayText);
            break;
        }
        case "Netscape":
        {
        	WIQ_AddQuestionResult_IE(oElementCollection, sDisplayText);
            //WIQ_AddQuestionResult_NN(oElementCollection, sDisplayText);
            break;
        }
    }
}

function WIQ_AddQuestionResult_IE(oElementCollection, sDisplayText)
{
    if (m_sReturnXML.length == 0)
    {
        WIQ_InitializeReturnXML();
    }

    m_sReturnXML += "<QUESTION ID=\"" + oElementCollection[0].name +
        "\" REPORTTEXT=\"" + sDisplayText +
        "\" DISPLAYTEXT=\"" + sDisplayText + "\" TYPE=";

    switch (oElementCollection[0].tagName)
    {
        case "INPUT":
        case "input":
        {
            var nIndex;
            var bIsTextInput = false;            

            switch (oElementCollection[0].type)
            {
                case "RADIO":
                case "radio":
                    m_sReturnXML += "\"3\">";
                    break;

                case "CHECKBOX":
                case "checkbox":
                    m_sReturnXML += "\"4\">";
                    break;
                    
                case "Text":
                case "TEXT":
                case "text":
                {
                    var nIsFollowUpEmail = oElementCollection[0].getAttribute("FOLLOWUPEMAIL", 2);
        
                    bIsTextInput = true;

                    if (nIsFollowUpEmail != null && (nIsFollowUpEmail == 1 || nIsFollowUpEmail == "1"))
                    {
                        m_sReturnXML += "\"5\">";
                    }
                    else
                    {
                        m_sReturnXML += "\"2\">";
                    }

                    m_sReturnXML += "<ANSWER><![CDATA[";
                    m_sReturnXML += oElementCollection[0].value;
                    m_sReturnXML += "]]></ANSWER>";
                    m_sReturnXML += "</QUESTION>";

                    break;
                }                    

                default:
                //window.alert(oElementCollection[0].type);
                    m_sReturnXML = "";
                    return;
            }

 	        if (bIsTextInput == false)
            {

                m_sReturnXML += "<ANSWER>";

                for (nIndex = 0; nIndex < oElementCollection.length; nIndex++)
                {
                    m_sReturnXML += "<OPTION TEXT=\"";
                    m_sReturnXML += oElementCollection[nIndex].value;
                    m_sReturnXML += "\" SELECTED=\"";
                    m_sReturnXML += (oElementCollection[nIndex].checked ? "1" : "0");
                    m_sReturnXML += "\"/>";
                }

                m_sReturnXML += "</ANSWER></QUESTION>";
            }
            break;
        }

        case "TEXTAREA":
        case "textarea":
        {
            var nIsFollowUpEmail = oElementCollection[0].getAttribute("FOLLOWUPEMAIL", 2);

            if (nIsFollowUpEmail != null && (nIsFollowUpEmail == 1 || nIsFollowUpEmail == "1"))
            {
                m_sReturnXML += "\"5\">";
            }
            else
            {
                m_sReturnXML += "\"2\">";
            }

            m_sReturnXML += "<ANSWER><![CDATA[" + oElementCollection[0].value + "]]></ANSWER>";
            m_sReturnXML += "</QUESTION>";

            break;
        }

        case "SELECT":
        case "select":
        {
            //window.alert(oElementCollection[0].options.length);
       
            var nIndex;

            m_sReturnXML += "\"3\">";

            m_sReturnXML += "<ANSWER>";
            //window.alert(nIndex);
            //window.alert(m_sReturnXML);
            for (nIndex = 0; nIndex < oElementCollection[0].options.length; nIndex++)
            {
                m_sReturnXML += "<OPTION TEXT=\"";
                m_sReturnXML += oElementCollection[0].options[nIndex].value;
          // window.alert(oElementCollection[0].options[nIndex].value);
                m_sReturnXML += "\" SELECTED=\"";
                m_sReturnXML += (oElementCollection[0].options[nIndex].selected ? "1" : "0");
           //window.alert(oElementCollection[0].options[nIndex].selected);                
                m_sReturnXML += "\"/>";
            }

            m_sReturnXML += "</ANSWER></QUESTION>";

            break;
        }

        default:
        //window.alert("NotGood1");
            m_sReturnXML = "";
            
            return;
    }
   //window.alert(m_sReturnXML);
}

function WIQ_AddQuestionResult_NN(oElementCollection, sDisplayText)
{

    if (m_sReturnXML.length == 0)
    {
        WIQ_InitializeReturnXML();
    }

    m_sReturnXML += "<QUESTION ID=\"" + oElementCollection[0].name +
        "\" REPORTTEXT=\"" + sDisplayText +
        "\" DISPLAYTEXT=\"" + sDisplayText + "\" TYPE=";
	var bIsTextInput = false;
    switch (GetFormElementType(oElementCollection[0]))
    {
    	   
    	
        case "radio":
        {
            var nIndex;

            m_sReturnXML += "\"3\"><ANSWER>";

            for (nIndex = 0; nIndex < oElementCollection.length; nIndex++)
            {
                m_sReturnXML += "<OPTION TEXT=\"" + oElementCollection[nIndex].value + "\" SELECTED=\"" + (oElementCollection[nIndex].checked ? "1" : "0") + "\"/>";
            }

            m_sReturnXML += "</ANSWER></QUESTION>";

            break;
        }

        case "checkbox":
        {
            var nIndex;

            m_sReturnXML += "\"4\"><ANSWER>";

            for (nIndex = 0; nIndex < oElementCollection.length; nIndex++)
            {
                m_sReturnXML += "<OPTION TEXT=\"" + oElementCollection[nIndex].value + "\" SELECTED=\"" + (oElementCollection[nIndex].checked ? "1" : "0") + "\"/>";
            }

            m_sReturnXML += "</ANSWER></QUESTION>";

            break;
        }
        
	        case "Text":
	        case "TEXT":
	        case "text":
	        {
        if(document.layers) 
        	 {
        	 	var nIsFollowUpEmail = "0";
 			}
 		else
 		{       	
            var nIsFollowUpEmail = oElementCollection[0].getAttribute("FOLLOWUPEMAIL", 2);
        }      
                bIsTextInput = true;

                if (nIsFollowUpEmail != null && (nIsFollowUpEmail == 1 || nIsFollowUpEmail == "1"))
	            {
	                m_sReturnXML += "\"5\">";
	            }
	            else
	            {
	                m_sReturnXML += "\"2\">";
	            }
	
	            m_sReturnXML += "<ANSWER><![CDATA[";
	            m_sReturnXML += oElementCollection[0].value;
	            m_sReturnXML += "]]></ANSWER>";
	            m_sReturnXML += "</QUESTION>";
	
	            break;
	        }                    


        case "textarea":
        {
        	
        if(document.layers) 
        	 {
        	 	var nIsFollowUpEmail = "0";
 			}
 		else
 		{       	
            var nIsFollowUpEmail = oElementCollection[0].getAttribute("FOLLOWUPEMAIL", 2);
        }    
            if (nIsFollowUpEmail != null && (nIsFollowUpEmail == 1 || nIsFollowUpEmail == "1"))
            {
                m_sReturnXML += "\"5\">";
            }
            else
            {
                m_sReturnXML += "\"2\">";
            }

            m_sReturnXML += "<ANSWER><![CDATA[" + oElementCollection[0].value + "]]></ANSWER>";
            m_sReturnXML += "</QUESTION>";

            break;
        }
        case "SELECT":
        case "select":
        {
            // window.alert("Select");
            var nIndex;

            m_sReturnXML += "\"3\">";

            m_sReturnXML += "<ANSWER>";
            for (nIndex = 0; nIndex < oElementCollection[0].options.length; nIndex++)
            {
                m_sReturnXML += "<OPTION TEXT=\"";
                m_sReturnXML += oElementCollection[0].options[nIndex].value;
                m_sReturnXML += "\" SELECTED=\"";
                m_sReturnXML += (oElementCollection[0].options[nIndex].selected ? "1" : "0");
                m_sReturnXML += "\"/>";
            }

            m_sReturnXML += "</ANSWER></QUESTION>";

            break;
        }

        default:
        {
            //window.alert("NotGood2");
            m_sReturnXML = "";
            return;
        }
    }
}

function GetFormElementType(sHTMLCode)
{
    var sTemp = new String(sHTMLCode);
    sTemp.toLowerCase();

    if (sTemp.indexOf("radio") != -1)
        return "radio";

    if (sTemp.indexOf("checkbox") != -1)
        return "checkbox";

    if (sTemp.indexOf("textarea") != -1)
        return "textarea";
    if (sTemp.indexOf("select") != -1)
        return "select";    
    return "unknown";
}

function WIQ_GetResultXML()
{
    if (m_sReturnXML.length == 0)
    {
           // window.alert("Not good");
        WIQ_InitializeReturnXML();
    }

    
    m_sReturnXML += "</DIALOG>";
//window.alert(m_sReturnXML);
    return m_sReturnXML;
}

function checkRadioCheckbox(theQuestion, TheError)
{
    var checkvalue;
    checkvalue = "";
    for (i=0, n= theQuestion.length; i<n; i++) 
    {
        if (theQuestion[i].checked) 
        {
            checkvalue = theQuestion[i].checked;
            break;
        } 
    }
    if (checkvalue == "")
    {
        window.alert(TheError);
        return false;
    }
    return true;
}


function checkRadioCheckboxNoAlert(theQuestion)
{
    var checkvalue;
    checkvalue = "";
    for (i=0, n= theQuestion.length; i<n; i++) 
    {
        if (theQuestion[i].checked) 
        {
            checkvalue = theQuestion[i].checked;
            break;
        } 
    }
    if (checkvalue == "")
    {
        return false;
    }
    return true;
}



function checkDropDown(theDropDown, TheError)
{

  if (theDropDown.selectedIndex == 0)
  {
  
         window.alert(TheError);
        return false;
    }
    return true;

}

function checkText(theText, TheError)
{

  if (theText.value == "")
  {
  
         window.alert(TheError);
        return false;
    }
    return true;

}

function checkTextNoAlert(theText, TheError)
{

  if (theText.value == "")
  {
  
         
        return false;
    }
    return true;

}

function IsDropDownComplete(theDropDown)
{

    if (theDropDown.selectedIndex == 0)
    {
        return false;
    }
    return true;

}

function IsTextBoxComplete(theText)
{

    if (theText.value == "")
    {
        return false;
    }
    return true;

}


//This function will disable or enable all of a questions options
function DisableQuestion(theQuestion, OnOff)
{
 var n;
 var i;
 
   // window.alert("Here we are");
    for (i=0, n=theQuestion.length; i<n; i++) 
    {
        
        theQuestion[i].disabled = OnOff;
    }    
    return;
}

function checkEmail(theText, TheError)
{

  if (isEmail(theText.value) != true)
  {
  
        //window.alert(TheError);
        return false;
    }
    return true;

}

function AddRadioCheckboxQuestiontoWIQ(theQuestion, ReportText)
{
    
    var vElements;
    vElements = new Array(theQuestion.length);
    
    for (i=0, n=theQuestion.length; i<n; i++) 
    {
        vElements[i] = theQuestion[i];
    }
    WIQ_AddQuestionResult(vElements, ReportText);    
    return;
}

function AddSelectQuestiontoWIQ(theQuestion, ReportText)
{

    var vElements;
    vElements = new Array(1);
    vElements[0] = theQuestion;
    WIQ_AddQuestionResult(
        vElements,
        ReportText
    );      
    return;
}

function AddTextQuestiontoWIQ(theQuestion, ReportText)
{
    
    
    var vElements;
    vElements = new Array(1);
    vElements[0] = theQuestion;
    WIQ_AddQuestionResult(
        vElements,
        ReportText
    );       
    return;
}

function PickExpireDate()
{
    RightNow = new Date();
    var TheMonth = RightNow.getMonth()
    var TheYear  = RightNow.getYear()
    //set expire date to way into the future
    TheMonth = TheMonth + 3;
    
    if (TheMonth > 12)
    {
      TheMonth = TheMonth - 12;
      TheYear  = TheYear + 1;
      RightNow.setYear(TheYear);
      RightNow.setMonth(TheMonth);
    }
    else
    {
      RightNow.setMonth(TheMonth);
    }
    
    //RightNow = RightNow.toGMTString();

    return RightNow;
}
