var intCurrentSection = 1;
var intNextSection = 2;
var intPreviousSection = 0;
var intLastSection;
var intBackNavigateToSection = new Array();
var branchFromQuestionArray;
var branchFromQuestionIDArray;
var branchFromResponseArray;
var branchFromSectionArray
var branchToQuestionArray;
var branchToSectionArray;
var branchToLastQuestion;
var reqQuestionNumberArray;
var reqQuestionIDArray;
var reqQuestionResponsesAllowedArray;
var reqQuestionHTMLControlTypeArray;
var reqQuestionPageArray;
var reqQuestionTextArray;
var intSurveyID;
var strClientID;
var allQuestionNumberArray;
var allQuestionHTMLControlTypeArray;
var allQuestionResponsesAllowedArray;
var allQuestionPageArray;
var strLocaliziationLanguage;
var strLLRequiredFieldPrompt;
var strLLQuestionPrompt;
var strLLCheckOneOrMoreBoxesPrompt;
var strLLCheckPrompt;
var strLLCheckAtLeastPrompt;
var strLLBoxesPrompt;
var strLLBoxPrompt;
var strLLChoosePrompt;
var strLLChooseOneOrMorePrompt;
var strLLChooseOnePrompt;
var strLLChooseAtLeastPrompt;
var strLLInvalidValueEnteredPrompt;
var strLLEnterANumberGreaterThanPrompt;
var strLLEnterANumberLessThanPrompt;
var strLLEnterAValidEmailAddressPrompt;
var strLLEnterOnlyLettersNumberHyphenOrUnderScorePrompt;
var strLLErrorAtCharacterPositionPrompt;
var strLLEnterANumberPrompt;
var strLLEnterAMinimumOfPrompt;
var strLLEnterAMaximumOfPrompt;
var strLLCharactersPrompt;
var strLLEnterOnlyNumbersPrompt;
var strLLCurrentLengthIsPrompt;
var blnWSRCutoffDateTimeRealized = false;
var blnWSRQuotaRealized = false;

function SGShowSection(intSection){
	if (intSection <=0)
	{
		return;
	}
	SGHideSection(intCurrentSection);
	if(intSection <= intPreviousSection)
	{
		intNextSection = intCurrentSection;
		intCurrentSection = intSection;
		intPreviousSection = intBackNavigateToSection[intCurrentSection];
		SGDetermineNextSectionCompletedPage(intSection);
		myJsProgressBarHandler.setPercentage('progressBarTop',Math.round((intSection/intLastSection)*100));
	}
	if(intSection >= intNextSection)
	{
		intBackNavigateToSection[intSection] = intCurrentSection;
		intPreviousSection = intCurrentSection;
		intNextSection = intSection + 1;
		intCurrentSection = intSection;
		SGDetermineNextSectionCompletedPage(intSection);
		myJsProgressBarHandler.setPercentage('progressBarTop',Math.round((intSection/intLastSection)*100));
	}
	document.getElementById("PAGE_"+intSection).style.visibility = "visible";
	if(intSection < intLastSection)
	{
		var strEval;
		strEval = 'if(document.SGWebForm.S' + intCurrentSection + '.style.visibility == "hidden"){document.SGWebForm.C' + intCurrentSection + '.style.visibility="visible"}';
		eval(strEval);
	}
 	scroll(0,0);
}

function SGHideSection(intSection)
{
	document.getElementById("PAGE_"+intSection).style.visibility = "hidden";
	if (intSection != intLastSection)
	{
		var strEval;
		strEval = 'document.SGWebForm.C' + intCurrentSection + '.style.visibility="hidden";';
		eval(strEval);
	}
	strEval = 'if(document.SGWebForm.S' + intCurrentSection + '){document.SGWebForm.S' + intCurrentSection + '.style.visibility="hidden"}';
	eval(strEval);	
}

function SGDetermineNextSectionCompletedPage(intPage)
{
    SGInitializeRequiredFields();
    var objElements = document.SGWebForm.elements;
    SGSetSkipOverFieldsOptional();
    var intObjElementsLength = objElements.length;
    for(var intLoop=0;intLoop < intObjElementsLength;intLoop++)
    {
		var objElement = objElements[intLoop];
		var pageNumber = SGGetBranchFromQuestionPage(objElement);
		if(pageNumber == -1)
		{
			continue;
		}
		if(pageNumber != intPage)
		{
			continue;
		}
		switch(objElement.type)
		{
			case "radio" :
				if (objElement.checked == true)
				{
					SGDetermineNextSection(objElement);
				}
				break;
			case "select-one" :
				if (objElement.value!= "")
				{
					SGDetermineNextSection(objElement);
				}
				break;
		}
    }
}

function SGDateDifference(strDate){
     var d1 = new Date();
     var datDate1=d1.getTime();
     var datDate2= Date.parse(strDate);
     var dret = (datDate2-datDate1);
     return dret;
}

function SGGetBranchFromQuestionPage(objElement)
{
	if (!document.SGWebForm.SGBranchFromQuestion)
	{
		return;
	}
	var pageNumber =-1;
	if (!objElement)
	{
		return pageNumber;
	}
	var elementName = objElement.name;
	if (!elementName)
	{
		return pageNumber;
	}
	if ( elementName.substr(0,1) != "Q")
	{
		return pageNumber;
	}
	var underscorePos = elementName.indexOf("_");
	if (underscorePos<=0)
	{
		return pageNumber;
	}
	elementName = elementName.substr(0,(underscorePos));
	var elementQuestionNumber = parseInt(elementName.replace("Q",""));
	var intBranchFromQuestionArrayLength = branchFromQuestionArray.length;
	for(var intLoop=0;intLoop <=intBranchFromQuestionArrayLength;intLoop++)
	{
		var questionNumber = parseInt(branchFromQuestionArray[intLoop]);
		if(questionNumber == elementQuestionNumber)
		{
			var questionPageNumber = branchFromSectionArray[intLoop];
			if(questionPageNumber)
			{
				pageNumber = parseInt(questionPageNumber);
				break;
			}
		}
	}
	return pageNumber;
}	

function SGDetermineNextSection(objElement)
{
	if ((objElement.type == "radio") || (objElement.type == "select-one"))
	{
		if (!document.SGWebForm.SGBranchFromQuestion)
		{
			return;
		}
		var responseQuestion = objElement.name;
		var underscorePos = responseQuestion.indexOf("_");
		if (underscorePos<=0)
		{
			return;
		}
		responseQuestion = responseQuestion.substr(0,(underscorePos));
		responseQuestion = responseQuestion.replace("Q","");
		intNextSection = intCurrentSection + 1;
		var strEval="";
		if (intCurrentSection < intLastSection)
		{
			strEval = strEval + 'document.SGWebForm.C' + intCurrentSection + '.style.visibility="visible";';
			strEval = strEval + 'document.SGWebForm.S' + intCurrentSection + '.style.visibility="hidden";';
			eval(strEval);
		}
		strEval="";

		var intBranchFromQuestionArrayLength = branchFromQuestionArray.length;
		for(var i=0;i < intBranchFromQuestionArrayLength;i++)
		{
			var branchFromQuestion = branchFromQuestionArray[i];
			if (responseQuestion==branchFromQuestion)
			{
				var branchFromResponse = branchFromResponseArray[i];
				var elementValue = objElement.value;
				if (elementValue == branchFromResponse)
				{
					var nextQuestion = branchToQuestionArray[i];
					var nextSection = branchToSectionArray[i];
					if (nextSection != intCurrentSection)
					{
						intNextSection = parseInt(nextSection);
					}
					if ( nextQuestion == -1 )
					{
						var varRespondentPage = document.SGWebForm.SGRespondentPage;
						if (!varRespondentPage)
						{
							varRespondentPage = 0
						}
						else
						{
							varRespondentPage = parseInt(varRespondentPage.value);
						}
						if (varRespondentPage <=1)
						{
							strEval = strEval + 'document.SGWebForm.C.' + intCurrentSection + '.style.visibility="hidden";';
							strEval = strEval + 'document.SGWebForm.S' + intCurrentSection + '.style.visibility="visible";';
						}
						else
						{
							strEval = strEval + 'document.SGWebForm.C' + intCurrentSection + '.style.visibility="visible";';
							strEval = strEval + 'document.SGWebForm.S' + intCurrentSection + '.style.visibility="hidden";';
						}
					}
					else
					{
						if (intCurrentSection < intLastSection)
						{
							strEval = strEval + 'document.SGWebForm.C' + intCurrentSection + '.style.visibility="visible";';
							strEval = strEval + 'document.SGWebForm.S' + intCurrentSection + '.style.visibility="hidden";';
						}
						else
						{
							strEval = strEval + 'document.SGWebForm.C' + intCurrentSection + '.style.visibility="hidden";';
							strEval = strEval + 'document.SGWebForm.S' + intCurrentSection + '.style.visibility="visible";';
						}
					}
					if(strEval!="")
					{
						eval(strEval);
					}
					return;
				}
			}
		}
	}
}

function SGGetRequiredQuestionPage(objElement)
{
	var pageNumber =-1;
	if (!objElement)
	{
		return pageNumber;
	}
	var elementName = objElement.name;
	if (!elementName)
	{
		return pageNumber;
	}
	if ( elementName.substr(0,1) != "Q")
	{
		return pageNumber;
	}
	var underscorePos = elementName.indexOf("_");
	if (underscorePos<=0)
	{
		return pageNumber;
	}
	elementName = elementName.substr(0,(underscorePos));
	var elementQuestionNumber = parseInt(elementName.replace("Q",""));
	var intReqQuestionNumberArrayLength = reqQuestionNumberArray.length;
	for(var intLoop=0;intLoop <=intReqQuestionNumberArrayLength;intLoop++)
	{
		var questionNumber = parseInt(reqQuestionNumberArray[intLoop]);
		if(questionNumber == elementQuestionNumber)
		{
			var questionPageNumber = reqQuestionPageArray[intLoop];
			if(questionPageNumber)
			{
				pageNumber = parseInt(questionPageNumber);
			}	
		}
	}
	return pageNumber;
}

function SGGetAllQuestionPage(objElement)
{
	var pageNumber =-1;
	if (!objElement)
	{
		return pageNumber;
	}
	var elementName = objElement.name;
	if (!elementName)
	{
		return pageNumber;
	}
	if ( elementName.substr(0,1) != "Q")
	{
		return pageNumber;
	}
	var underscorePos = elementName.indexOf("_");
	if (underscorePos<=0)
	{
		return pageNumber;
	}
	elementName = elementName.substr(0,(underscorePos));
	elementName = elementName.replace("Q","");
	var elementQuestionNumber = parseInt(elementName);
	var intAllQuestionNumberArrayLength = allQuestionNumberArray.length;
	for(var intLoop=0;intLoop <=intAllQuestionNumberArrayLength;intLoop++)
	{
		var questionNumber = parseInt(allQuestionNumberArray[intLoop]);
		if(questionNumber == elementQuestionNumber)
		{
			var questionPageNumber = allQuestionPageArray[intLoop];
			if(questionPageNumber)
			{
				pageNumber = parseInt(questionPageNumber);
			}	
		}
	}
	return pageNumber;
}

function SGOnLoad ( )
{
	if (document.SGWebForm.SGSurveyID)
	{
		intSurveyID=document.SGWebForm.SGSurveyID.value;
	}
	if (document.SGWebForm.SGClientID)
	{
		strClientID=document.SGWebForm.SGClientID.value;
	}
	if (document.SGWebForm.SGCutoffDate)
	{
		var dtCutoff = document.SGWebForm.SGCutoffDate.value;
		if (document.SGWebForm.SGCutoffTime)
		{
			var strCutoff = dtCutoff + " " + document.SGWebForm.SGCutoffTime.value;
			if(SGDateDifference(strCutoff) <=0)
			{
				document.getElementById("Cutoff").style.visibility = "visible";
				document.getElementById("PAGE_1").style.visibility = "hidden";
				document.getElementById("S1").style.visibility = "hidden";
				document.getElementById("C1").style.visibility = "hidden";
				return;
			}
		}
	}

	if (document.SGWebForm.SGRequiredQuestionNumber)
	{
		var reqQuestionNumber = document.SGWebForm.SGRequiredQuestionNumber.value;
		reqQuestionNumberArray=reqQuestionNumber.split("_SGVAL_");
	}
	
	if (document.SGWebForm.SGRequiredQuestionResponsesAllowed)
	{
		var reqQuestionResponsesAllowed = document.SGWebForm.SGRequiredQuestionResponsesAllowed.value;
		reqQuestionResponsesAllowedArray = reqQuestionResponsesAllowed.split("_SGVAL_");
	}
	if (document.SGWebForm.SGRequiredQuestionHTMLControlType)
	{
		var reqQuestionHTMLControlType = document.SGWebForm.SGRequiredQuestionHTMLControlType.value;
		reqQuestionHTMLControlTypeArray = reqQuestionHTMLControlType.split("_SGVAL_");
	}
	if (document.SGWebForm.SGRequiredQuestionText)
	{
		var reqQuestionText = document.SGWebForm.SGRequiredQuestionText.value;
		reqQuestionTextArray = reqQuestionText.split("_SGVAL_");
	}
	if (document.SGWebForm.SGRequiredQuestionPage)
	{
		var reqQuestionPage = document.SGWebForm.SGRequiredQuestionPage.value;
		reqQuestionPageArray = reqQuestionPage.split("_SGVAL_");
	}	
	if (document.SGWebForm.SGBranchFromQuestion)
	{
		var branchFromQuestion = document.SGWebForm.SGBranchFromQuestion.value;
		branchFromQuestionArray = branchFromQuestion.split("_SGVAL_");
	}
	if (document.SGWebForm.SGBranchFromQuestionID)
	{
		var branchFromQuestionID = document.SGWebForm.SGBranchFromQuestionID.value;
		branchFromQuestionIDArray = branchFromQuestionID.split("_SGVAL_");
	}
	if (document.SGWebForm.SGBranchFromResponse)
	{
		var branchFromResponse = document.SGWebForm.SGBranchFromResponse.value;
		branchFromResponseArray = branchFromResponse.split("_SGVAL_");
	}
	if (document.SGWebForm.SGBranchFromSection)
	{
		var branchFromSection = document.SGWebForm.SGBranchFromSection.value;
		branchFromSectionArray = branchFromSection.split("_SGVAL_");
	}
	if (document.SGWebForm.SGBranchToLastQuestion)
	{
		branchToLastQuestion = document.SGWebForm.SGBranchToLastQuestion.value;
	}
	if (document.SGWebForm.SGBranchToQuestion)
	{
		var branchToQuestion = document.SGWebForm.SGBranchToQuestion.value;
		branchToQuestionArray = branchToQuestion.split("_SGVAL_");
	}
	if (document.SGWebForm.SGBranchToSection)
	{
		var branchToSection = document.SGWebForm.SGBranchToSection.value;
		branchToSectionArray = branchToSection.split("_SGVAL_");
	}
	if (document.SGWebForm.SGMultiPageFormCount)
	{
		intLastSection = parseInt(document.SGWebForm.SGMultiPageFormCount.value);
	}
	if (document.SGWebForm.SGAllQuestionNumber)
	{
		var allQuestionNumber = document.SGWebForm.SGAllQuestionNumber.value;
		allQuestionNumberArray = allQuestionNumber.split("_SGVAL_");
	}
	if (document.SGWebForm.SGAllQuestionHTMLControlType)
	{
		var allQuestionHTMLControlType = document.SGWebForm.SGAllQuestionHTMLControlType.value;
		allQuestionHTMLControlTypeArray = allQuestionHTMLControlType.split("_SGVAL_");
	}
	if (document.SGWebForm.SGAllQuestionResponsesAllowed)
	{
		var allQuestionResponsesAllowed = document.SGWebForm.SGAllQuestionResponsesAllowed.value;
		allQuestionResponsesAllowedArray = allQuestionResponsesAllowed.split("_SGVAL_");
	}
	if (document.SGWebForm.SGAllQuestionPage)
	{
		var allQuestionPage = document.SGWebForm.SGAllQuestionPage.value;
		allQuestionPageArray = allQuestionPage.split("_SGVAL_");
	}
	if(navigator.appName.indexOf('icrosoft')!=1)
	{
		myJsProgressBarHandler.setPercentage('progressBarTop',Math.round((1/intLastSection)*100));
	}
	if (document.SGWebForm.SGLocalizationLanguage)
	{
		strLocalizationLanguage = document.SGWebForm.SGLocalizationLanguage.value;

		switch(strLocalizationLanguage)
		{
			case "British English":
			  break;    
			case "Canadian English":
			  break;    
			case "Danish":
			  break;    
			case "Dutch":
			  break;    
			case "French (European)":
			  break;    
			case "French (Canadian)":
			  break;    
			case "German":
			  break;    
			case "Italian":
			  break;    
			case "Norwegian (Bokmal":
			  break;    
			case "Portuguese (Iberian)":
			  break;    
			case "Spanish":
			  break;    
			case "Swedish":
			  break;    
			default:
			  strLocalizationLanguage = "American English";
			  break;
		}
	}
	else
	{
		strLocalizationLanguage = "American English";
	}
	SGInitializeLocalizationLanguage();
}

function SGInitializeLocalizationLanguage ( )
{
		switch(strLocalizationLanguage)
		{
			case "British English":
			  strLLRequiredFieldPrompt = "Required field";
			  strLLQuestionPrompt = "Question";
			  strLLCheckOneOrMoreBoxesPrompt = "Check one or more boxes";
			  strLLCheckPrompt = "Check";
			  strLLCheckAtLeastPrompt = "Check at least";
			  strLLBoxesPrompt = "boxes";
			  strLLBoxPrompt = "box";
			  strLLChoosePrompt = "Choose";
			  strLLChooseOneOrMorePrompt = "Choose one or more";
			  strLLChooseOnePrompt = "Choose one";
			  strLLChooseAtLeastPrompt = "Choose at least";
			  strLLInvalidValueEnteredPrompt = "Invalid value entered";
			  strLLEnterANumberGreaterThanPrompt = "Enter a number greater than";
			  strLLEnterANumberLessThanPrompt = "Enter a number less than";
			  strLLEnterAValidEmailAddressPrompt = "Enter a valid email address";
			  strLLEnterOnlyLettersNumberHyphenOrUnderScorePrompt = "Enter only letters, numbers, - or _";
			  strLLErrorAtCharacterPositionPrompt = "Error at character position";
			  strLLEnterANumberPrompt = "Enter a number";
			  strLLEnterAMinimumOfPrompt = "Enter a minimum of";
			  strLLEnterAMaximumOfPrompt = "Enter a maximum of";
			  strLLCharactersPrompt = "characters";
			  strLLEnterOnlyNumbersPrompt = "Enter only numbers";
			  strLLCurrentLengthIsPrompt = "Current length is";
			  break;    
			case "Canadian English":
			  strLLRequiredFieldPrompt = "Required field";
			  strLLQuestionPrompt = "Question";
			  strLLCheckOneOrMoreBoxesPrompt = "Check one or more boxes";
			  strLLCheckPrompt = "Check";
			  strLLCheckAtLeastPrompt = "Check at least";
			  strLLBoxesPrompt = "boxes";
			  strLLBoxPrompt = "box";
			  strLLChoosePrompt = "Choose";
			  strLLChooseOneOrMorePrompt = "Choose one or more";
			  strLLChooseOnePrompt = "Choose one";
			  strLLChooseAtLeastPrompt = "Choose at least";
			  strLLInvalidValueEnteredPrompt = "Invalid value entered";
			  strLLEnterANumberGreaterThanPrompt = "Enter a number greater than";
			  strLLEnterANumberLessThanPrompt = "Enter a number less than";
			  strLLEnterAValidEmailAddressPrompt = "Enter a valid email address";
			  strLLEnterOnlyLettersNumberHyphenOrUnderScorePrompt = "Enter only letters, numbers, - or _";
			  strLLErrorAtCharacterPositionPrompt = "Error at character position";
			  strLLEnterANumberPrompt = "Enter a number";
			  strLLEnterAMinimumOfPrompt = "Enter a minimum of";
			  strLLEnterAMaximumOfPrompt = "Enter a maximum of";
			  strLLCharactersPrompt = "characters";
			  strLLEnterOnlyNumbersPrompt = "Enter only numbers";
			  strLLCurrentLengthIsPrompt = "Current length is";
			  break;    
			case "Danish":
	          strLLRequiredFieldPrompt = "Krævede ager";
			  strLLQuestionPrompt = "Afhøre";
			  strLLCheckOneOrMoreBoxesPrompt = "Vælge en eller flere";
			  strLLCheckPrompt = "Vælge";
			  strLLCheckAtLeastPrompt = "Udvælge mindst";
			  strLLBoxesPrompt = "valg";
			  strLLBoxPrompt = "valg";
			  strLLChoosePrompt = "Vælge";
			  strLLChooseOneOrMorePrompt = "Vælge en eller flere";
			  strLLChooseOnePrompt = "Vælger en";
			  strLLChooseAtLeastPrompt = "Udvælge mindst";
			  strLLInvalidValueEnteredPrompt = "Ugyldig værdi anføres";
			  strLLEnterANumberGreaterThanPrompt = "Ind i en række større end";
			  strLLEnterANumberLessThanPrompt = "Ind i en række mindre end";
			  strLLEnterAValidEmailAddressPrompt = "Træder et gyldigt E-mail adresse";
			  strLLEnterOnlyLettersNumberHyphenOrUnderScorePrompt = "Her anfoeres kun bogstaver og numre - eller _";
			  strLLErrorAtCharacterPositionPrompt = "Fejlen på karakter holdning";
			  strLLEnterANumberPrompt = "Ind i en række";
			  strLLEnterAMinimumOfPrompt = "Træder et minimum af";
			  strLLEnterAMaximumOfPrompt = "Ind i en maksimumsmaengde paa";
			  strLLCharactersPrompt = "tegn";
			  strLLEnterOnlyNumbersPrompt = "Her anfoeres kun numre";
			  strLLCurrentLengthIsPrompt = "Aktuelle varighed er";
			  break;    
			case "Dutch":
			  strLLRequiredFieldPrompt = "Voorgeschreven veld";
			  strLLQuestionPrompt = "Vraag";
			  strLLCheckOneOrMoreBoxesPrompt = "Kies een of meer";
			  strLLCheckPrompt = "Kies";
			  strLLCheckAtLeastPrompt = "Kies tenminste";
			  strLLBoxesPrompt = "keuzes";
			  strLLBoxPrompt = "keuze";
			  strLLChoosePrompt = "Kies";
			  strLLChooseOneOrMorePrompt = "Kies een of meer";
			  strLLChooseOnePrompt = "Kies maar";
			  strLLChooseAtLeastPrompt = "Kies tenminste ";
			  strLLInvalidValueEnteredPrompt = "Ongeldige waarde ging";
			  strLLEnterANumberGreaterThanPrompt = "Kom een nummer groter dan binnen";
			  strLLEnterANumberLessThanPrompt = "Kom een nummer minder dan binnen";
			  strLLEnterAValidEmailAddressPrompt = "Kom een geldig emailadres binnen";
			  strLLEnterOnlyLettersNumberHyphenOrUnderScorePrompt = "Ga maar brieven, nummers, - of _ binnen";
			  strLLErrorAtCharacterPositionPrompt = "Vergissing bij het karakter positie";
			  strLLEnterANumberPrompt = "Kom een nummer binnen";
			  strLLEnterAMinimumOfPrompt = "Kom een minimum respectievelijk binnen";
			  strLLEnterAMaximumOfPrompt = "Kom een maximum respectievelijk binnen";
			  strLLCharactersPrompt = "karakters binnen";
			  strLLEnterOnlyNumbersPrompt = "Ga slechts nummers binnen";
			  strLLCurrentLengthIsPrompt = "Stroom lengte is";
			  break;
			case "French (European)":
			  strLLRequiredFieldPrompt = "Champ requis";
			  strLLQuestionPrompt = "Question";
			  strLLCheckOneOrMoreBoxesPrompt = "Choisir un ou plusieurs";
			  strLLCheckPrompt = "Choisissez";
			  strLLCheckAtLeastPrompt = "Choisir au moins";
			  strLLBoxesPrompt = "choix";
			  strLLBoxPrompt = "choix";
			  strLLChoosePrompt = "Choisissez";
			  strLLChooseOneOrMorePrompt = "Choisir un ou plusieurs";
			  strLLChooseOnePrompt = "Choisissez un";
			  strLLChooseAtLeastPrompt = "Choisissez au moins";
			  strLLInvalidValueEnteredPrompt = "Valeur inadmissible écrite";
			  strLLEnterANumberGreaterThanPrompt = "Introduisez un nombre plus grand que";
			  strLLEnterANumberLessThanPrompt = "Introduisez un nombre moins que";
			  strLLEnterAValidEmailAddressPrompt = "Écrivez un email address valide";
			  strLLEnterOnlyLettersNumberHyphenOrUnderScorePrompt = "Écrivez seulement les lettres, les nombres, - ou le _";
			  strLLErrorAtCharacterPositionPrompt = "Erreur à la position";
			  strLLEnterANumberPrompt = "Enter has number";
			  strLLEnterAMinimumOfPrompt = "Enter has minimum off";
			  strLLEnterAMaximumOfPrompt = "Enter has maximum off";
			  strLLCharactersPrompt = "caractères";
			  strLLEnterOnlyNumbersPrompt = "Introduisez seulement les nombres";
			  strLLCurrentLengthIsPrompt = "La longueur courante est";
			  break;    
			case "French (Canadian)":
			  strLLRequiredFieldPrompt = "Champ requis";
			  strLLQuestionPrompt = "Question";
			  strLLCheckOneOrMoreBoxesPrompt = "Choisir un ou plusieurs";
			  strLLCheckPrompt = "Choisissez";
			  strLLCheckAtLeastPrompt = "Choisir au moins";
			  strLLBoxesPrompt = "choix";
			  strLLBoxPrompt = "choix";
			  strLLChoosePrompt = "Choisissez";
			  strLLChooseOneOrMorePrompt = "Choisir un ou plusieurs";
			  strLLChooseOnePrompt = "Choisissez un";
			  strLLChooseAtLeastPrompt = "Choisissez au moins";
			  strLLInvalidValueEnteredPrompt = "Valeur inadmissible écrite";
			  strLLEnterANumberGreaterThanPrompt = "Introduisez un nombre plus grand que";
			  strLLEnterANumberLessThanPrompt = "Introduisez un nombre moins que";
			  strLLEnterAValidEmailAddressPrompt = "Écrivez un email address valide";
			  strLLEnterOnlyLettersNumberHyphenOrUnderScorePrompt = "Écrivez seulement les lettres, les nombres, - ou le _";
			  strLLErrorAtCharacterPositionPrompt = "Erreur à la position";
			  strLLEnterANumberPrompt = "Enter has number";
			  strLLEnterAMinimumOfPrompt = "Enter has minimum off";
			  strLLEnterAMaximumOfPrompt = "Enter has maximum off";
			  strLLCharactersPrompt = "caractères";
			  strLLEnterOnlyNumbersPrompt = "Introduisez seulement les nombres";
			  strLLCurrentLengthIsPrompt = "La longueur courante est";
			  break;    
			case "German":
			  strLLRequiredFieldPrompt = "Pflichteingabefeld";
			  strLLQuestionPrompt = "Frage";
			  strLLCheckOneOrMoreBoxesPrompt = "Wählen Sie eine oder mehr Boxen";
			  strLLCheckPrompt = "Wählen";
			  strLLCheckAtLeastPrompt = "Wählen Sie mindestens";
			  strLLBoxesPrompt = "Felder";
			  strLLBoxPrompt = "Box";
			  strLLChoosePrompt = "Wählen";
			  strLLChooseOneOrMorePrompt = "Wählen Sie ein oder mehr";
			  strLLChooseOnePrompt = "Wählen Sie ein";
			  strLLChooseAtLeastPrompt = "Wählen Sie mindestens";
			  strLLInvalidValueEnteredPrompt = "ungültigen Wert eingegeben werden";
			  strLLEnterANumberGreaterThanPrompt = "Geben Sie eine Zahl größer als";
			  strLLEnterANumberLessThanPrompt = "Geben Sie eine Zahl weniger als";
			  strLLEnterAValidEmailAddressPrompt = "Wählen Sie eine gültige E-Mail Adresse";
			  strLLEnterOnlyLettersNumberHyphenOrUnderScorePrompt = "Geben Sie nur Buchstaben, Zahlen - oder _";
			  strLLErrorAtCharacterPositionPrompt = "Fehler bei Zeichenposition";
			  strLLEnterANumberPrompt = "Geben Sie eine Zahl";
			  strLLEnterAMinimumOfPrompt = "Wählen Sie ein Minimum von";
			  strLLEnterAMaximumOfPrompt = "Geben Sie einen Hoechstbetrag von";
			  strLLCharactersPrompt = "Zeichen";
			  strLLEnterOnlyNumbersPrompt = "Geben Sie nur die Zahlen";
			  strLLCurrentLengthIsPrompt = "Aktuelle Länge ist";
			case "Italian":
			  strLLRequiredFieldPrompt = "Campo obbligatorio";
			  strLLQuestionPrompt = "Domanda";
			  strLLCheckOneOrMoreBoxesPrompt = "Scegliere una o più caselle";
			  strLLCheckPrompt = "Scegliere";
			  strLLCheckAtLeastPrompt = "Scegliere almeno";
			  strLLBoxesPrompt = "caselle";
			  strLLBoxPrompt = "casella";
			  strLLChoosePrompt = "Scegliere";
			  strLLChooseOneOrMorePrompt = "Scegliere una o più";
			  strLLChooseOnePrompt = "Scegliere una";
			  strLLChooseAtLeastPrompt = "Scegliere almeno";
			  strLLInvalidValueEnteredPrompt = "Invalido valore registrato";
			  strLLEnterANumberGreaterThanPrompt = "Inserire un numero maggiore di";
			  strLLEnterANumberLessThanPrompt = "Inserire un numero inferiore a";
			  strLLEnterAValidEmailAddressPrompt = "Scegli un indirizzo email valido";
			  strLLEnterOnlyLettersNumberHyphenOrUnderScorePrompt = "Scegli solo lettere, numeri,-o _";
			  strLLErrorAtCharacterPositionPrompt = "Errore a carattere posizione";
			  strLLEnterANumberPrompt = "Inserire un numero";
			  strLLEnterAMinimumOfPrompt = "Scegli un minimo di";
			  strLLEnterAMaximumOfPrompt = "Scegli un massimo di";
			  strLLCharactersPrompt = "caratteri";
			  strLLEnterOnlyNumbersPrompt = "Scegli solo numeri";
			  strLLCurrentLengthIsPrompt = "Lunghezza attuale è";
			  break;
			case "Norwegian (Bokmal)":
			  strLLRequiredFieldPrompt = "Kreves feltet";
			  strLLQuestionPrompt = "Frågan";
			  strLLCheckOneOrMoreBoxesPrompt = "Sjekk ett eller flere avkrysningsboksene";
			  strLLCheckPrompt = "Sjekk";
			  strLLCheckAtLeastPrompt = "Sjekk minst";
			  strLLBoxesPrompt = "avkrysningsboksene";
			  strLLBoxPrompt = "boks";
			  strLLChoosePrompt = "Velg";
			  strLLChooseOneOrMorePrompt = "Velg ett eller flere";
			  strLLChooseOnePrompt = "Velg en";
			  strLLChooseAtLeastPrompt = "Velg minst";
			  strLLInvalidValueEnteredPrompt = "Invalid (Ugyldig) verdi inn";
			  strLLEnterANumberGreaterThanPrompt = "Gå inn i en rekke større enn";
			  strLLEnterANumberLessThanPrompt = "Gå inn i en rekke mindre enn";
			  strLLEnterAValidEmailAddressPrompt = "Fyll en gyldig e-postadresse";
			  strLLEnterOnlyLettersNumberHyphenOrUnderScorePrompt = "Fyll bare brev, umre, - eller _";
			  strLLErrorAtCharacterPositionPrompt = "Feilen på figuren ställning";
			  strLLEnterANumberPrompt = "Fyll en række";
			  strLLEnterAMinimumOfPrompt = "Inn et minimum av";
			  strLLEnterAMaximumOfPrompt = "Fyll en maksimum";
			  strLLCharactersPrompt = "figurer";
			  strLLEnterOnlyNumbersPrompt = "Fyll bare umre";
			  strLLCurrentLengthIsPrompt = "Nuvarande lengde er";
			  break;
			case "Portuguese (Iberian)":
			  strLLRequiredFieldPrompt = "Campo exigidas";
			  strLLQuestionPrompt = "Questão";
			  strLLCheckOneOrMoreBoxesPrompt = "Escolher uma ou mais casas";
			  strLLCheckPrompt = "Escolher";
			  strLLCheckAtLeastPrompt = "Escolher pelo menos";
			  strLLBoxesPrompt = "caixas ";
			  strLLBoxPrompt = "casa";
			  strLLChoosePrompt = "Escolher";
			  strLLChooseOneOrMorePrompt = "Escolher uma ou mais";
			  strLLChooseOnePrompt = "Escolher um único";
			  strLLChooseAtLeastPrompt = "Escolher pelo menos";
			  strLLInvalidValueEnteredPrompt = "INVALIDAR relação inscritos";
			  strLLEnterANumberGreaterThanPrompt = "Entrar em um número superior a";
			  strLLEnterANumberLessThanPrompt = "Entrar em um número inferior a";
			  strLLEnterAValidEmailAddressPrompt = "Endereço válido Indique um";
			  strLLEnterOnlyLettersNumberHyphenOrUnderScorePrompt = "Indique apenas letras, números, - ou _";
			  strLLErrorAtCharacterPositionPrompt = "Erro ao caráter posição";
			  strLLEnterANumberPrompt = "Entrar em um número";
			  strLLEnterAMinimumOfPrompt = "Entrar em um mínimo de";
			  strLLEnterAMaximumOfPrompt = "Entrar em um número máximo de";
			  strLLCharactersPrompt = "caracteres";
			  strLLEnterOnlyNumbersPrompt = "Indique n Âumeros";
			  strLLCurrentLengthIsPrompt = "O actual comprimento é";
			  break;
			case "Spanish":
			  strLLRequiredFieldPrompt = "Campo Requerido";
			  strLLQuestionPrompt = "Pregunta";
			  strLLCheckOneOrMoreBoxesPrompt = "Elija uno o más";
			  strLLCheckPrompt = "Elija";
			  strLLCheckAtLeastPrompt = "Elegir al menos";
			  strLLBoxesPrompt = "cajas";
			  strLLBoxPrompt = "casilla";
			  strLLChoosePrompt = "Elija";
			  strLLChooseOneOrMorePrompt = "Elija uno o más";
			  strLLChooseOnePrompt = "Elija uno";
			  strLLChooseAtLeastPrompt = "Elegir al menos";
			  strLLInvalidValueEnteredPrompt = "Nulo valor entró";
			  strLLEnterANumberGreaterThanPrompt = "Ingrese un número mayor de";
			  strLLEnterANumberLessThanPrompt = "Ingrese un número inferior a";
			  strLLEnterAValidEmailAddressPrompt = "Escriba una dirección de correo válida";
			  strLLEnterOnlyLettersNumberHyphenOrUnderScorePrompt = "Enter sólo letras, números, - o _";
			  strLLErrorAtCharacterPositionPrompt = "Error en posición de carácter";
			  strLLEnterANumberPrompt = "Ingrese un número";
			  strLLEnterAMinimumOfPrompt = "Introducir un mínimo de";
			  strLLEnterAMaximumOfPrompt = "Entrar en un máximo de";
			  strLLCharactersPrompt = "caracteres";
			  strLLEnterOnlyNumbersPrompt = "Ingrese sólo números";
			  strLLCurrentLengthIsPrompt = "La longitud actual es de";
			  break;
			case "Swedish":
			  strLLRequiredFieldPrompt = "Krävs område";
			  strLLQuestionPrompt = "Fråga";
			  strLLCheckOneOrMoreBoxesPrompt = "Välj en eller flera";
			  strLLCheckPrompt = "Välj";
			  strLLCheckAtLeastPrompt = "Välj minst";
			  strLLBoxesPrompt = "val";
			  strLLBoxPrompt = "val";
			  strLLChoosePrompt = "Välj";
			  strLLChooseOneOrMorePrompt = "Välj en eller flera";
			  strLLChooseOnePrompt = "Välj en";
			  strLLChooseAtLeastPrompt = "Välj minst";
			  strLLInvalidValueEnteredPrompt = "Ogiltig värde trädde";
			  strLLEnterANumberGreaterThanPrompt = "Träd in i ett antal större än";
			  strLLEnterANumberLessThanPrompt = "Träd in i ett antal mindre än";
			  strLLEnterAValidEmailAddressPrompt = "Träd in i en giltig e-postadress";
			  strLLEnterOnlyLettersNumberHyphenOrUnderScorePrompt = "Gå bara bokstäver, siffror,-eller _";
			  strLLErrorAtCharacterPositionPrompt = "Fel på karaktär ställning";
			  strLLEnterANumberPrompt = "Träd in i ett antal";
			  strLLEnterAMinimumOfPrompt = "Träd in i ett minimum av";
			  strLLEnterAMaximumOfPrompt = "Träd in i en högst";
			  strLLCharactersPrompt = "tecken";
			  strLLEnterOnlyNumbersPrompt = "Enter only numbers";
			  strLLCurrentLengthIsPrompt = "Nuvarande längd är";
			  break;
			default:
			  strLLRequiredFieldPrompt = "Required field";
			  strLLQuestionPrompt = "Question";
			  strLLCheckOneOrMoreBoxesPrompt = "Check one or more boxes";
			  strLLCheckPrompt = "Check";
			  strLLCheckAtLeastPrompt = "Check at least";
			  strLLBoxesPrompt = "boxes";
			  strLLBoxPrompt = "box";
			  strLLChoosePrompt = "Choose";
			  strLLChooseOneOrMorePrompt = "Choose one or more";
			  strLLChooseOnePrompt = "Choose one";
			  strLLChooseAtLeastPrompt = "Choose at least";
			  strLLInvalidValueEnteredPrompt = "Invalid value entered";
			  strLLEnterANumberGreaterThanPrompt = "Enter a number greater than";
			  strLLEnterANumberLessThanPrompt = "Enter a number less than";
			  strLLEnterAValidEmailAddressPrompt = "Enter a valid email address";
			  strLLEnterOnlyLettersNumberHyphenOrUnderScorePrompt = "Enter only letters, numbers, - or _";
			  strLLErrorAtCharacterPositionPrompt = "Error at character position";
			  strLLEnterANumberPrompt = "Enter a number";
			  strLLEnterAMinimumOfPrompt = "Enter a minimum of";
			  strLLEnterAMaximumOfPrompt = "Enter a maximum of";
			  strLLCharactersPrompt = "characters";
			  strLLEnterOnlyNumbersPrompt = "Enter only numbers";
			  strLLCurrentLengthIsPrompt = "Current length is";
			  break;
		}
}

function SGInitializeRequiredFields ( )
{
	var blnText;
	if (!document.SGWebForm.SGMultiPageFormCount)
	{
		blnText = false;
	}
	else
	{
		blnText = true;
	}
	var strEval="";
	var intReqQuestionNumberArrayLength = reqQuestionNumberArray.length;
	for(var q=0;q < intReqQuestionNumberArrayLength;q++)
	{
	    switch(reqQuestionHTMLControlTypeArray[q]) 
		{ 
			case "1":
			{
				if (blnText == true)
				{
					strEval = strEval + 'frmvalidator.SGAddValidation("Q' + reqQuestionNumberArray[q] + '_1","radioreq", "' + reqQuestionTextArray[q] + ': ' + strLLRequiredFieldPrompt + '");';
				}
				else
				{
					strEval = strEval + 'frmvalidator.SGAddValidation("Q' + reqQuestionNumberArray[q] + '_1","radioreq", "' + strLLQuestionPrompt + ' ' + reqQuestionNumberArray[q] + ': ' + strLLRequiredFieldPrompt + '");';
				}
				break;
			}
			case "2":
			{
				if ( reqQuestionResponsesAllowedArray[q] == "0")
				{
					if (blnText == true)
					{
						strEval = strEval + 'frmvalidator.SGAddValidation("Q' + reqQuestionNumberArray[q] + '_1","chkboxselmin=1", "' + reqQuestionTextArray[q] + ': ' + strLLCheckOneOrMoreBoxesPrompt + '");';
					}
					else
					{
						strEval = strEval + 'frmvalidator.SGAddValidation("Q' + reqQuestionNumberArray[q] + '_1","chkboxselmin=1", "' + strLLQuestionPrompt + ' ' + reqQuestionNumberArray[q] + ': ' + strLLCheckOneOrMoreBoxesPrompt + '");';
					}
				}
				else
				{
					if (blnText == true)
					{
						strEval = strEval + 'frmvalidator.SGAddValidation("Q' + reqQuestionNumberArray[q] + '_1","chkboxreqselexact=' + reqQuestionResponsesAllowedArray[q] + '", "' + reqQuestionTextArray[q] + ': ' + strLLCheckPrompt + ' ' + reqQuestionResponsesAllowedArray[q] + ' ' + strLLBoxesPrompt + '");';
					}
					else
					{
						strEval = strEval + 'frmvalidator.SGAddValidation("Q' + reqQuestionNumberArray[q] + '_1","chkboxreqselexact=' + reqQuestionResponsesAllowedArray[q] + '", "' + strLLQuestionPrompt + ' ' + reqQuestionNumberArray[q] + ': ' + strLLCheckPrompt + ' ' + reqQuestionResponsesAllowedArray[q] + ' ' + strLLBoxesPrompt + '");';
					}
				}
				break;
			}
			case "3":
			{
				if (blnText == true)
				{
					strEval = strEval + 'frmvalidator.SGAddValidation("Q' + reqQuestionNumberArray[q] + '_1","required", "' + reqQuestionTextArray[q] + ': ' + strLLRequiredFieldPrompt + '");';
				}
				else
				{
					strEval = strEval + 'frmvalidator.SGAddValidation("Q' + reqQuestionNumberArray[q] + '_1","required", "' + strLLQuestionPrompt + ' ' + reqQuestionNumberArray[q] + ': ' + strLLRequiredFieldPrompt + '");';
				}
				break;
			}
			case "4":
			{
				if ( reqQuestionResponsesAllowedArray[q] == "0")
				{
					if (blnText == true)
					{
						strEval = strEval + 'frmvalidator.SGAddValidation("Q' + reqQuestionNumberArray[q] + '_1","selectselmin=1", "' + reqQuestionTextArray[q] + ': ' + strLLChooseOneOrMorePrompt + '");';
					}
					else
					{
						strEval = strEval + 'frmvalidator.SGAddValidation("Q' + reqQuestionNumberArray[q] + '_1","selectselmin=1", "' + strLLQuestionPrompt + ' ' + reqQuestionNumberArray[q] + ': ' + strLLChooseOneOrMorePrompt + '");';
					}
				}
				else
				{
					if (blnText == true)
					{
						if (Math.abs(reqQuestionResponsesAllowedArray[q]) == 1)
						{
							strEval = strEval + 'frmvalidator.SGAddValidation("Q' + reqQuestionNumberArray[q] + '_1","selectreqselexact=' + Math.abs(reqQuestionResponsesAllowedArray[q]) + '", "' + reqQuestionTextArray[q] + ': ' + strLLChoosePrompt + ' ' + Math.abs(reqQuestionResponsesAllowedArray[q]) + '");';
						}
						else
						{
							strEval = strEval + 'frmvalidator.SGAddValidation("Q' + reqQuestionNumberArray[q] + '_1","selectreqselexact=' + Math.abs(reqQuestionResponsesAllowedArray[q]) + '", "' + reqQuestionTextArray[q] + ': ' + strLLChoosePrompt + ' ' + Math.abs(reqQuestionResponsesAllowedArray[q]) + '");';
						}
					}
					else
					{
						if (Math.abs(reqQuestionResponsesAllowedArray[q]) == 1)
						{
							strEval = strEval + 'frmvalidator.SGAddValidation("Q' + reqQuestionNumberArray[q] + '_1","selectreqselexact=' + Math.abs(reqQuestionResponsesAllowedArray[q]) + '", "' + strLLQuestionPrompt + ' ' + reqQuestionNumberArray[q] + ': ' + strLLChoosePrompt + ' ' + Math.abs(reqQuestionResponsesAllowedArray[q]) + '");';
						}
						else
						{
							strEval = strEval + 'frmvalidator.SGAddValidation("Q' + reqQuestionNumberArray[q] + '_1","selectreqselexact=' + Math.abs(reqQuestionResponsesAllowedArray[q]) + '", "' + strLLQuestionPrompt + ' ' + reqQuestionNumberArray[q] + ': ' + strLLChoosePrompt + ' ' + Math.abs(reqQuestionResponsesAllowedArray[q]) + '");';
						}
					}
				}
				break;
			}
			case "5": 
			{
				if ( reqQuestionResponsesAllowedArray[q] == "0")
				{
					if (blnText == true)
					{
						strEval = strEval + 'frmvalidator.SGAddValidation("Q' + reqQuestionNumberArray[q] + '_","selectselmin=1", "' + reqQuestionTextArray[q] + ': ' + strLLChooseOneOrMorePrompt + '");';
					}
					else
					{
						strEval = strEval + 'frmvalidator.SGAddValidation("Q' + reqQuestionNumberArray[q] + '_","selectselmin=1", "' + strLLQuestionPrompt + ' ' + reqQuestionNumberArray[q] + ': ' + strLLChooseOneOrMorePrompt + '");';
					}
				}
				else
				{
					if (blnText == true)
					{
						if (Math.abs(reqQuestionResponsesAllowedArray[q]) == 1)
						{
							strEval = strEval + 'frmvalidator.SGAddValidation("Q' + reqQuestionNumberArray[q] + '_","selectreqselexact=' + Math.abs(reqQuestionResponsesAllowedArray[q]) + '", "' + reqQuestionTextArray[q] + ': ' + strLLChoosePrompt + ' ' + Math.abs(reqQuestionResponsesAllowedArray[q]) + '");';
						}
						else
						{
							strEval = strEval + 'frmvalidator.SGAddValidation("Q' + reqQuestionNumberArray[q] + '_","selectreqselexact=' + Math.abs(reqQuestionResponsesAllowedArray[q]) + '", "' + reqQuestionTextArray[q] + ': ' + strLLChoosePrompt + ' ' + Math.abs(reqQuestionResponsesAllowedArray[q]) + '");';
						}
					}
					else
					{
						if (Math.abs(reqQuestionResponsesAllowedArray[q]) == 1)
						{
							strEval = strEval + 'frmvalidator.SGAddValidation("Q' + reqQuestionNumberArray[q] + '_","selectreqselexact=' + Math.abs(reqQuestionResponsesAllowedArray[q]) + '", "' + strLLQuestionPrompt + ' ' + reqQuestionNumberArray[q] + ': ' + strLLChoosePrompt + ' ' + Math.abs(reqQuestionResponsesAllowedArray[q]) + '");';
						}
						else
						{
							strEval = strEval + 'frmvalidator.SGAddValidation("Q' + reqQuestionNumberArray[q] + '_","selectreqselexact=' + Math.abs(reqQuestionResponsesAllowedArray[q]) + '", "' + strLLQuestionPrompt + ' ' + reqQuestionNumberArray[q] + ': ' + strLLChoosePrompt + ' ' + Math.abs(reqQuestionResponsesAllowedArray[q]) + '");';
						}
					}
				}
				break;
			}
			case "6": 
			{
				if (blnText == true)
				{
					strEval = strEval + 'frmvalidator.SGAddValidation("Q' + reqQuestionNumberArray[q] + '_1","required", "' + reqQuestionTextArray[q] + ': ' + strLLRequiredFieldPrompt + '");';
				}
				else
				{
					strEval = strEval + 'frmvalidator.SGAddValidation("Q' + reqQuestionNumberArray[q] + '_1","required", "' + strLLQuestionPrompt + ' ' + reqQuestionNumberArray[q] + ': ' + strLLRequiredFieldPrompt + '");';
				}
				break;
			}
			default:
			{
				if (blnText == true)
				{
					strEval = strEval + 'frmvalidator.SGAddValidation("Q' + reqQuestionNumberArray[q] + '_1","required", "' + reqQuestionTextArray[q] + ': ' + strLLRequiredFieldPrompt + '");';
				}
				else
				{
					strEval = strEval + 'frmvalidator.SGAddValidation("Q' + reqQuestionNumberArray[q] + '_1","required", "' + strLLQuestionPrompt + ' ' + reqQuestionNumberArray[q] + ': ' + strLLRequiredFieldPrompt + '");';
				}
				break;
			}
		}
	}
	if(strEval!="")
	{
		eval(strEval);
	}
}

function SGSetSkipOverFieldsOptional ()
{
	if (!document.SGWebForm.SGBranchFromQuestion)
	{
		return;
	}
	if (!document.SGWebForm.SGRequiredQuestionNumber)
	{
		return;
	}
	if (!document.SGWebForm.SGBranchToLastQuestion)
	{
		return;
	}
	var intBranchFromQuestionArrayLength = branchFromQuestionArray.length;
	for(var intBranchCount=0;intBranchCount < intBranchFromQuestionArrayLength;intBranchCount++)
	{
		var objElements = document.getElementsByName(SGBuildCandidateDescriptor(branchFromQuestionArray[intBranchCount],0));
		var intObjElementsLength = objElements.length;
		for(var intLoop=0;intLoop < intObjElementsLength;intLoop++)
		{
			var objElement = objElements[intLoop];
			var strElementValue = objElement.value;
			if (strElementValue == branchFromResponseArray[intBranchCount])
			{
				var elementChecked = false;
				if (objElement.type == "select-one")
				{
					if (strElementValue != "")
					{
						elementChecked = true;
					}
				}
				else
				{
					elementChecked = objElement.checked;
				}
				if (elementChecked == true)
				{
					var branchFromQuestionValue = parseInt(branchFromQuestionArray[intBranchCount]);
					var branchToQuestionValue = parseInt(branchToQuestionArray[intBranchCount]);
					if (branchToQuestionValue == -1)
					{
						branchToQuestionValue = parseInt(branchToLastQuestion)+1;
					}
					else
					{
						branchToQuestionValue = branchToQuestionValue-1;
					}
					for (intDeleteCount=branchFromQuestionValue;intDeleteCount < branchToQuestionValue;intDeleteCount++)
					{
						var strDeleteQuestionNumber = SGBuildCandidateDescriptor(intDeleteCount+1,1);
						var objElementsDel = document.getElementsByName(strDeleteQuestionNumber);
						var intObjElementsDelLength = objElementsDel.length;
						for(var intLoopDel=0;intLoopDel < intObjElementsDelLength ;intLoopDel++)
						{
							var strElementNameDel = objElementsDel[intLoopDel].name;
							if (strElementNameDel.length != 0)
							{
								if ( strDeleteQuestionNumber == strElementNameDel )
								{
									var objElementDel = objElementsDel[intLoopDel];
									var objVS = objElementDel.validationSet;
									if (objVS)
									{
										var objVSet = objVS.vSet;
										var intCount=objVSet.length-1;
										while (intCount>=0)
										{
											var strDesc = objVSet[intCount].desc;
											switch(strDesc)
											{
												case "radioreq":
												{
													objVSet.splice(intCount,1);
													break;
												}
												case "required":
												{
													objVSet.splice(intCount,1);
													break;
												}
												default:
												{
													if (strDesc.length > 9)
													{
														if (strDesc.substr(0,9) == "chkboxopt")
														{
															objVSet.splice(intCount,1);
														}
														if (strDesc.substr(0,9) == "chkboxreq")
														{
															objVSet.splice(intCount,1);
														}
														if (strDesc.substr(0,9) == "chkboxsel")
														{
															objVSet.splice(intCount,1);
														}
														if (strDesc.substr(0,9) == "selectopt")
														{
															objVSet.splice(intCount,1);
														}
														if (strDesc.substr(0,9) == "selectreq")
														{
															objVSet.splice(intCount,1);
														}
														if (strDesc.substr(0,9) == "selectsel")
														{
															objVSet.splice(intCount,1);
														}
													}
													break;
												}
											}	
											intCount = intCount-1;
										} 
									}
								}
							}
						}
					}
				}
			}
		}
	}
}

function SGBuildCandidateDescriptor(strQuestionNumber,intSwitch)
{
	var strQuestionHTMLControlType;
	var strQuestionResponsesAllowed;
	switch(intSwitch)
	{
		case 0 :
		{
			var intReqQuestionNumberArrayLength = reqQuestionNumberArray.length;
			for (rqcnt=0;rqcnt < intReqQuestionNumberArrayLength;rqcnt++)
			{
				var strReqQuestionNumberCandidate = reqQuestionNumberArray[rqcnt];
				if( strReqQuestionNumberCandidate == strQuestionNumber)
				{
					strQuestionHTMLControlType = reqQuestionHTMLControlTypeArray[rqcnt];
					strQuestionResponsesAllowed = reqQuestionResponsesAllowedArray[rqcnt];
					break;
				}
			}
			break;
		}
		default :
		{
			var intAllQuestionNumberArrayLength = allQuestionNumberArray.length;
			for (allcnt=0;allcnt < intAllQuestionNumberArrayLength;allcnt++)
			{
				var strAllQuestionNumberCandidate = allQuestionNumberArray[allcnt];
				if( strAllQuestionNumberCandidate == strQuestionNumber)
				{
					strQuestionHTMLControlType = allQuestionHTMLControlTypeArray[allcnt];
					strQuestionResponsesAllowed = allQuestionResponsesAllowedArray[allcnt];
					break;
				}
			}
			break;
		}
	}
	var vDescCandidate;
	switch(strQuestionHTMLControlType)
    {
        case "1": 
        { 
            vDescCandidate = "Q" + strQuestionNumber + "_1";
            break;
        }
        case "2": 
        {
            if ( vReqQuestionResponsesAllowedCandidate == "0")
            {
				vDescCandidate = "Q" + strQuestionNumber + "_";
            }
            else
            {
				vDescCandidate = "Q" + strQuestionNumber + "_1";
            }
            break;
        }
        case "3": 
        { 
            vDescCandidate = "Q" + strQuestionNumber + "_1";
            break;
        }
        case "4": 
        { 
            vDescCandidate = "Q" + strQuestionNumber + "_1";
            break;
        }
        case "5": 
        { 
            vDescCandidate = "Q" + strQuestionNumber + "_";
            break;
        }
        case "6": 
        { 
            vDescCandidate = "Q" + strQuestionNumber + "_1";
            break;
        }
        default:
        { 
            vDescCandidate = "Q" + strQuestionNumber + "_1";
            break;
        }
	}
	return vDescCandidate;
}

function SGSelectAdjacentRadioButton ( objElement, blnCheckForValue )
{
	if (objElement.type == "text")
	{
		pos = objElement.name.indexOf("SGOTHR");
		if (pos > 0)
		{ 
			qno = objElement.name.substr(0,pos);
			qvalue = objElement.name.substr(pos+6);
			var intObjElementFormLength = objElement.form.length;
			for (intCount = 0; intCount < intObjElementFormLength; intCount++)
			{
				var e = objElement.form.elements[intCount];
				if ((e.type == "radio") && (e.name == qno) && (e.value == qvalue))
				{
					if ( blnCheckForValue == true )
					{
						e.checked = ( objElement.value != "");
					}
					else
					{
						e.checked = true;
					}
				}
			}
		}
	}
}

function SGClearRadioButtonText ( objElement )
{
	if (objElement.type == "radio")
	{
		var intObjElementFormLength = objElement.form.length;
		for (intCount = 0; intCount < intObjElementFormLength; intCount++)
		{
			var e = objElement.form.elements[intCount];
			if ((e.type == "radio") && (e.name == objElement.name) && (e.value.charAt(e.value.length - 1) == ":"))
			{
				for (intCount1 = 0; intCount1 < intObjElementFormLength; intCount1++)
				{
					var e1 = objElement.form.elements[intCount1];
					if ((e1.type == "text") && (e1.name == (e.name + "SGOTHR" + e.value)))
					{
						e1.value = "";
					}  
				}
			}
		}
	}
}

function SGSetFocusOnRadioButtonText ( objElement )
{
	if (objElement.type == "radio")
	{
		var intObjElementFormLength = objElement.form.length;
		for (intCount = 0; intCount < intObjElementFormLength; intCount++)
		{
			var e = objElement.form.elements[intCount];
			if ((e.type == "text") && (e.name == (objElement.name + "SGOTHR" + objElement.value)))
			{
				e.focus();
			}
		}
	}
}

function SGSetFocusOnCheckBoxText ( objElement )
{
	if (objElement.type == "checkbox")
	{
		var intObjElementFormLength = objElement.form.length;
		for (intCount = 0; intCount < intObjElementFormLength; intCount++)
		{
			var e = objElement.form.elements[intCount];
			if ((e.type == "text") && (e.name == objElement.name))
			{
				if ( objElement.checked == true )
				{
					e.focus();
				}
				else
				{
					e.value = ""
				}
			}
		}
	}
}

function SGSelectAdjacentCheckBox ( objElement, blnCheckForValue )
{
	if (objElement.type == "text")
	{
		var intObjElementFormLength = objElement.form.length;
		for (intCount = 0; intCount < intObjElementFormLength; intCount++)
		{
			var e = objElement.form.elements[intCount];
			if ((e.type == "checkbox") && (e.name == objElement.name) && (e.value == "SGOTHR"))
			{
				if ( blnCheckForValue == true )
				{
					e.checked = ( objElement.value != "");
				}
				else {
					e.checked = true;
				}
			}
		}
	}
}

function SGEnforceUniqueRank( objElement )
{
	if (objElement.type == "select-one")
	{
		var intPos = objElement.name.indexOf("_");
		if (intPos > 0)
		{
			var strNamePrefix = objElement.name.substring(0,intPos+1);
			var intObjElementFormLength = objElement.form.length;
			for (intCount = 0; intCount < intObjElementFormLength; intCount++)
			{
				var e = objElement.form.elements[intCount];
				if ((e.type == "select-one") && (e.name != objElement.name))
				{
					if (e.name.length >= strNamePrefix.length)
					{
						if (e.name.substring(0,intPos+1) == strNamePrefix)
						{
							if (e.value == objElement.value)
							{
								e.value = "";
							}
						}
					}
				}
			}
		}
	}
}

function SGFormValidator()
{
  this.objSGWebForm=document.SGWebForm;
	if(!this.objSGWebForm)
    {
        return;
    }
	if(this.objSGWebForm.onsubmit)
    {
    this.objSGWebForm.OriginalOnSubmit = this.objSGWebForm.onsubmit;
        this.objSGWebForm.onsubmit=null;
    }
    else
    {
        this.objSGWebForm.OriginalOnSubmit = null;
    }
    this.objSGWebForm.method="POST";
    this.objSGWebForm.onsubmit=SGFormOnSubmit;
	this.SGValidatePage = SGValidatePage;
    this.SGAddValidation = SGAddValidation;
    this.SGSetAdditionalValidationFunction=SGSetAdditionalValidationFunction;
}

function SGSetAdditionalValidationFunction(functionname)
{
    this.objSGWebForm.additionalValidation = functionname;
}

function SGValidatePage(intPage)
{
	 
	 
	var strEval="";
	var strValueOrig;
	strEval = strEval + 'strValueOrig=document.SGWebForm.C' + intPage + '.value;';
	eval(strEval);
	var varRespondentPage = document.SGWebForm.SGRespondentPage;
	if (!varRespondentPage)
	{
		varRespondentPage = 0
	}
	else
	{
		varRespondentPage = parseInt(varRespondentPage.value);
	}
	
	var objElements;
	var objElement;
	var returnVS;
	var returnV;
	
	strEval="";
	if(varRespondentPage == intPage)
	{
		objElements = this.objSGWebForm.elements;
		var intObjElementsLength = objElements.length;
		for(var intLoop=0;intLoop < intObjElementsLength;intLoop++)
		{
			objElement = objElements[intLoop];
			var varElementName = objElement.name;
			if (!varElementName)
			{
			}
			else
			{
				if(varElementName.length > 12)
				{
					if (varElementName.substr(0,12) == "SGRespondent")
					{
						returnVS = objElement.validationSet;
						if (returnVS)
						{
							returnV = objElement.validationSet.validate();
							if (!returnV)
							{
								strEval = 'document.SGWebForm.C' + intPage + '.value=strValueOrig;';
								eval(strEval);
								return false;
							}
						}
					}					
				}
				if(varElementName.length = 2)
				{
					if (varElementName.substr(0,1) == "R")
					{
						returnVS = objElement.validationSet;
						if (returnVS)
						{
							returnV = objElement.validationSet.validate();
							if (!returnV)
							{
								strEval = 'document.SGWebForm.C' + intPage + '.value=strValueOrig;';
								eval(strEval);
								return false;
							}
						}
					}					
				}
			}
		}
	}
	else
	{
		SGInitializeRequiredFields();
		objElements = this.objSGWebForm.elements;
		SGSetSkipOverFieldsOptional();
    	var intObjElementsLength = objElements.length;
    	for(var intLoop=0;intLoop < intObjElementsLength;intLoop++)
		{
			objElement = objElements[intLoop];
			var pageNumber = SGGetRequiredQuestionPage(objElement);
			if(pageNumber == -1)
			{
				pageNumber = SGGetAllQuestionPage(objElement);
				if(pageNumber == intPage)
				{
					returnVS = objElement.validationSet;
					if (returnVS)
					{
						returnV = objElement.validationSet.validate();
						if (!returnV)
						{
							strEval = 'document.SGWebForm.C' + intPage + '.value=strValueOrig;';
							eval(strEval);
							return false; 
						}
					}
				}
				else
				{
					continue;
				}
			}
			if(pageNumber != intPage)
			{
				continue;
			}
			returnVS = objElement.validationSet;
			if (returnVS)
			{
				returnV = objElement.validationSet.validate();
				if (!returnV)
				{
					strEval = 'document.SGWebForm.C' + intPage + '.value=strValueOrig;';
					eval(strEval);
					return false; 
				}
			}
		}
		if(this.additionalValidation)
		{
		    str =" var ret = "+this.additionalValidation+"()";
		    eval(str);
		    if(!ret)
		    {
				strEval = 'document.SGWebForm.C' + intPage + '.value=strValueOrig;';
				eval(strEval);
				return ret;
			}
		}
	}
	SGShowSection(intNextSection);
	return true;
}	

function SGFormOnSubmit()
{
    SGInitializeRequiredFields();
    SGSetSkipOverFieldsOptional();
    var intThisElementsLength = this.elements.length;
    for(var intLoop=0;intLoop < intThisElementsLength;intLoop++)
    {
		var objElement = this.elements[intLoop];
		var returnVS = objElement.validationSet;
		if (returnVS)
		{
			var returnV = objElement.validationSet.validate();
			if (!returnV)
			{
				return false; 
			}
		}		
    }
    if(this.additionalValidation)
    {
        str =" var ret = "+this.additionalValidation+"()";
        eval(str);
        if(!ret) return ret;
    }
    return true;
}

function SGAddValidation(itemname,descriptor,errstr)
{
    if(!this.objSGWebForm)
    {
        return;
    }
    var itemobj = this.objSGWebForm[itemname];
    if(!itemobj)
    {
        return;
    }
    if(itemobj.length && isNaN(itemobj.selectedIndex) )
    {
        itemobj = itemobj[0];
    }
    if(!itemobj.validationSet)
    {
        itemobj.validationSet = new SGValidationSet(itemobj);
    }
    var testVS = itemobj.validationSet;
    if(testVS)
    {
		testVSet = testVS.vSet;
		if(testVSet)
		{
			var intTestVSetLength = testVSet.length;
			for(var intLoop=0;intLoop < intTestVSetLength;intLoop++)
			{
				var testDescriptor = testVSet[intLoop].desc;
				if(!testDescriptor)
				{
					continue;
				}
				else
				{
					if(testDescriptor == descriptor)
					{
						var testError = testVSet[intLoop].error;
						if(!testError)
						{
							continue;
						}
						else
						{
							if(testError = errstr)
							{
								return;
							}
						}
					}
				}
			}
	    }
	}
    itemobj.validationSet.add(descriptor,errstr);
}

function SGRemoveValidation (itemname, descriptor)
{
    if(!this.objSGWebForm)
    {
        return;
    }
    var itemobj = this.objSGWebForm[itemname];
    if(!itemobj)
    {
        return;
    }
    if(!itemobj.validationSet)
    {
        return;
    }
    itemobj.validationSet.remove(descriptor);
}

function ValidationDesc(inputitem,desc,error)
{
    this.desc=desc;
    this.error=error;
    this.itemobj = inputitem;
    this.validate=SGVDescriptionValidate;
}

function SGVDescriptionValidate()
{
    if(!SGValidataData(this.desc,this.itemobj,this.error))
    {
        this.itemobj.focus();
        return false;
    }
    return true;
}

function SGValidationSet(inputitem)
{
    this.vSet=new Array();
    this.add= SGAddValidationDesc;
    this.validate= SGVSetValidate;
    this.itemobj = inputitem;
    this.remove = SGRemoveValidationDesc;
}

function SGAddValidationDesc(desc,error)
{
    this.vSet[this.vSet.length]= 
    new ValidationDesc(this.itemobj,desc,error);
}

function SGRemoveValidationDesc(desc)
{
    var intThisVSetLength = this.vSet.length;
    for(var vi=0;vi < intThisVSetLength; vi++)
    {
        vitem = this.vSet[vi];
        if(!vitem)
        {
            continue;
        }
        if (vitem.desc == desc)
        { 
            vitem.desc = "";
        }
    }

}

function SGVSetValidate()
{
    var intThisVSetLength = this.vSet.length;
    for(var intLoop=0;intLoop<intThisVSetLength;intLoop++)
    {
        if(!this.vSet[intLoop].validate())
        {
            return false;
        }
    }
    return true;
}

function SGValidateEmail(email)
{
    if(email.length <= 0)
    {
        return true;
    }
    var splitted = email.match("^(.+)@(.+)$");
    if(splitted == null) return false;
    if(splitted[1] != null )
    {
        var regexp_user=/^\"?[\w-_\.]*\"?$/;
        if(splitted[1].match(regexp_user) == null) return false;
    }
    if(splitted[2] != null)
    {
        var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,6}$/;
        if(splitted[2].match(regexp_domain) == null)
        {
            var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
            if(splitted[2].match(regexp_ip) == null) return false;
        }
        return true;
    }
    return false;
}

function SGValidataData(strValidate,objValue,strError)
{
    var EQPos = strValidate.search("=");
    var strCommand  = "";
    var strCommandValue = "";
    if(EQPos >= 0) 
    {
        strCommand  = strValidate.substring(0,EQPos);

        strCommandValue = strValidate.substr(EQPos+1);
    } 
    else 
    {
        strCommand = strValidate;
    }
    switch(strCommand) 
    { 
        case "req":
        case "required": 
        { 
            if(eval(objValue.value.length) == 0)
                {
                    if(!strError || strError.length ==0)
                    {
                        strError = objValue.name + " : ' + strLLRequiredFieldPrompt + '"; 
                    }
					
					
                    alert(strError);
                    return false;
                }
                break;
        }

        case "maxlength":
        case "maxlen":
        {
            if(eval(objValue.value.length) >  eval(strCommandValue))
            {
                if(!strError || strError.length ==0)
                {
                    strError = objValue.name + " : ' + strLLEnterAMaximumOfPrompt + ' "+strCommandValue+" ' + strLLCharactersPrompt + '";
                }
                alert(strError + "\n[' + strLLCurrentLengthIsPrompt + ' " + objValue.value.length + " ]");
                return false;
            }
            break;
        }

        case "minlength":
        case "minlen":
        {
            if(eval(objValue.value.length) <  eval(strCommandValue)) 
            {
                if(!strError || strError.length ==0) 
                    {
                        strError = objValue.name + " : ' + strLLEnterAMinimumOfPrompt + ' " + strCommandValue + " ' + strLLCharactersPrompt + '"; 
                    }
                    alert(strError + "\n[' + strLLCurrentLengthIsPrompt + ' " + objValue.value.length + " ]"); 
                    return false;
            }
            break; 
        }

        case "num":
        case "numeric":
        {
            var charpos = objValue.value.search("[^0-9]");
            if(objValue.value.length > 0 &&  charpos >= 0)
            {
                if(!strError || strError.length ==0)
                {
                    strError = objValue.name+": ' + strLLEnterOnlyNumbersPrompt + '";
                }
                alert(strError + "\n [' + strLLErrorAtCharacterPositionPrompt + ' " + eval(charpos+1)+"]");
                return false;
              }
              break;
        }

        case "alnumhyphen":
        {
            var charpos = objValue.value.search("[^A-Za-z0-9\-_]"); 
            if(objValue.value.length > 0 &&  charpos >= 0) 
            {
                if(!strError || strError.length ==0)
                {
                    strError = objValue.name+": ' + strLLEnterOnlyLettersNumberHyphenOrUnderScorePrompt + '";
                }                           
                alert(strError + "\n [' + strLLErrorAtCharacterPositionPrompt + ' " + eval(charpos+1)+"]");
                return false; 
            }
            break;
        }

        case "email":
        {
            if(!SGValidateEmail(objValue.value))
            {
                if(!strError || strError.length ==0)
                {
                    strError = objValue.name+": ' + strLLEnterAValidEmailAddressPrompt + '";
                }
                alert(strError);
                return false;
            }
            break;
        }

        case "lt":
        case "lessthan":
        {
            if(isNaN(objValue.value))
            {
                if(!strError || strError.length ==0)
                {
				strError = objValue.name+": ' + strLLEnterANumberPrompt + '";
              }
              alert(strError);
              return false;
            }
            if(eval(objValue.value) >=  eval(strCommandValue))
            { 
              if(!strError || strError.length ==0)
              { 
                strError = objValue.name + " : ' + strLLEnterANumberLessThanPrompt + ' "+ strCommandValue;
              }
              alert(strError);
              return false;
             }
            break; 
         }

        case "gt":
        case "greaterthan":
         { 
            if(isNaN(objValue.value))
            { 
                if(!strError || strError.length ==0)
                {
                    strError = objValue.name+": ' + strLLEnterANumberPrompt + '"; 
                }
                alert(strError);
                return false;
            }
            if(eval(objValue.value) <=  eval(strCommandValue)) 
             {
               if(!strError || strError.length ==0) 
               { 
                 strError = objValue.name + " : ' + strLLEnterANumberGreaterThanPrompt + ' "+ strCommandValue; 
               }
               alert(strError); 
               return false;
             }
            break; 
         }

        case "regexp": 
         { 
		 	if(objValue.value.length > 0)
			{
	            if(!objValue.value.match(strCommandValue)) 
	            { 
	              if(!strError || strError.length ==0) 
	              { 
	                strError = objValue.name+": ' + strLLInvalidValueEnteredPrompt + '"; 
	              }
	              alert(strError); 
	              return false;
	            }
			}
           break; 
         }

		case "chkboxselmin":
        {
            var objcheck = objValue.form.elements[objValue.name];
            var chkcount =0;
            var checkName = objcheck.name;
            checkName = checkName.substr(0,(checkName.lastIndexOf("_",checkName.length - 1)+1))
            var chkcount =0;
            var objElements = document.SGWebForm.elements;
			var intObjElementsLength = objElements.length;
            for(var intLoop=0;intLoop < intObjElementsLength;intLoop++)
		    {
				var objElement = objElements[intLoop];
				if(objElement.type == "checkbox")
				{
					var objElementName = objElement.name;
					if(objElementName.search(checkName) != -1)
					{
						if(objElement.checked == true)
						{
							chkcount++;
						}
					}
				}
			}
            var minsel = eval(strCommandValue);
            if(chkcount < minsel)
            {
                if(!strError || strError.length ==0)
                {
                    if(minsel ==1)
                    {
                        strError = objValue.name + ": ' + strLLCheckAtLeastPrompt + ' " + minsel + " ' + strLLBoxPrompt + '";
                    }
                    else
                    {
                        strError = objValue.name + ": ' + strLLCheckAtLeastPrompt + ' " + minsel + " ' + strLLBoxesPrompt + '";
                    }
                }
                alert(strError);
                return false;
            }
            break;
        }
        case "chkboxreqselexact":
        {
            var objcheck = objValue.form.elements[objValue.name];
            var chkcount =0;
            var checkName = objcheck.name;
            checkName = checkName.substr(0,(checkName.lastIndexOf("_",checkName.length - 1)+1))
            var chkcount =0;
            var objElements = document.SGWebForm.elements;
			var intObjElementsLength = objElements.length;
            for(var intLoop=0;intLoop < intObjElementsLength;intLoop++)
		    {
				var objElement = objElements[intLoop];
				if(objElement.type == "checkbox" || objElement.type == "text")
				{
					var objElementName = objElement.name;
					if(objElementName.search(checkName) != -1)
					{
						switch (objElement.type)
						{
							case "checkbox" :
								if (objElement.checked == true && objElement.value != "SGOTHR")
								{
									chkcount++;
								}
								break;
							case "type" :
								if (objElement.value !="")
								{
									chkcount++;
								}
								break;
						}
					}
				}
			}
			var exactsel = eval(strCommandValue);
			if(chkcount != exactsel)
			{
				if(!strError || strError.length ==0)
				{ 
                        if(exactsel ==1)
                        {
					    strError = objValue.name + ": ' + strLLCheckPrompt + ' " + exactsel + " ' + strLLBoxPrompt + '";
                        }
                        else
                        {
					    strError = objValue.name + ": ' + strLLCheckPrompt + ' " + exactsel + " ' + strLLBoxesPrompt + '";
                        }
				}
				alert(strError);
				return false;
			}
			break;
        }
        case "chkboxoptselexact":
        {
            var objcheck = objValue.form.elements[objValue.name];
            var chkcount =0;
            var checkName = objcheck.name;
            checkName = checkName.substr(0,(checkName.lastIndexOf("_",checkName.length - 1)+1))
            var chkcount =0;
            var objElements = document.SGWebForm.elements;
			var intObjElementsLength = objElements.length;
            for(var intLoop=0;intLoop < intObjElementsLength;intLoop++)
		    {
				var objElement = objElements[intLoop];

				if(objElement.type == "checkbox" || objElement.type == "text")
				{
					var objElementName = objElement.name;
					if(objElementName.search(checkName) != -1)
					{
						switch (objElement.type)
						{
							case "checkbox" :
								if (objElement.checked == true && objElement.value != "SGOTHR")
								{
									chkcount++;
								}
								break;
							case "type" :
								if (objElement.value !="")
								{
									chkcount++;
								}
								break;
						}
					}
				}
			}
			var exactsel = eval(strCommandValue);
			if(chkcount != exactsel && chkcount !=0)
			{
				if(!strError || strError.length ==0)
				{ 
                        if(exactsel ==1)
                        {
					    strError = objValue.name + ": ' + strLLCheckPrompt + ' " + exactsel + " ' + strLLBoxPrompt + '";
                        }
                        else
                        {
					    strError = objValue.name + ": ' + strLLCheckPrompt + ' " + exactsel + " ' + strLLBoxesPrompt + '";
                        }
				}
				alert(strError);
				return false;
			}
			break;
        }
		case "selectselmin":
        {
            var objcheck = objValue.form.elements[objValue.name];
            var chkcount =0;
            var checkName = objcheck.name;
            checkName = checkName.substr(0,(checkName.lastIndexOf("_",checkName.length - 1)+1))
            var chkcount =0;
            var objElements = document.SGWebForm.elements;
			var intObjElementsLength = objElements.length;
            for(var intLoop=0;intLoop < intObjElementsLength;intLoop++)
		    {
				var objElement = objElements[intLoop];
				if(objElement.type == "select")
				{
					var objElementName = objElement.name;
					if(objElementName.search(checkName) != -1)
					{
						if(objElement.checked == true || objElement.selected == true)
						{
							chkcount++;
						}
					}
				}
				if(objElement.type == "select-multiple")
				{
					var objElementName = objElement.name;
					if(objElementName.search(checkName) != -1)
					{
						for (var intLoopIn = 0; intLoopIn < objElement.length; intLoopIn++)
						{
							if (objElement.options[intLoopIn].selected)
							{
								chkcount++;
							}
						}
					}
				}
			}
            var minsel = eval(strCommandValue);
            if(chkcount < minsel)
            {
                if(!strError || strError.length ==0)
                {
                    if(minsel ==1)
                    {
                        strError = objValue.name + ": ' + strLLChooseAtLeastPrompt + ' " + minsel;
                    }
                    else
                    {
                        strError = objValue.name + ": ' + strLLChooseAtLeastPrompt + ' " + minsel;
                    }
                }
                alert(strError);
                return false;
            }
            break;
        }
        case "selectreqselexact":
        {
            var objcheck = objValue.form.elements[objValue.name];
            var chkcount =0;
            var checkName = objcheck.name;
            checkName = checkName.substr(0,(checkName.lastIndexOf("_",checkName.length - 1)+1))
            var chkcount =0;
            var objElements = document.SGWebForm.elements;
			var intObjElementsLength = objElements.length;
            for(var intLoop=0;intLoop < intObjElementsLength;intLoop++)
		    {
				var objElement = objElements[intLoop];
				if(objElement.type == "select" || objElement.type == "select-one" || objElement.type == "select-multiple" || objElement.type == "text")
				{
					var objElementName = objElement.name;
					if(objElementName.search(checkName) != -1)
					{
						switch (objElement.type)
						{
							case "select" :
								if (objElement.checked == true && objElement.value != "SGOTHR")
								{
									chkcount++;
								}
								break;
							case "select-one" :
								if (objElement.value != "SGOTHR")
								{
									for (var intLoopIn = 0; intLoopIn < objElement.length; intLoopIn++)
									{
										if ((objElement.options[intLoopIn].selected) && (objElement.options[intLoopIn].text != ""))
										{
											chkcount++;
										}
									}
								}
								break;
							case "select-multiple" :
								if (objElement.value != "SGOTHR")
								{
									for (var intLoopIn = 0; intLoopIn < objElement.length; intLoopIn++)
									{
										if (objElement.options[intLoopIn].selected)
										{
											chkcount++;
										}
									}
								}
								break;
							case "type" :
								if (objElement.value !="")
								{
									chkcount++;
								}
								break;
						}
					}
				}
			}
			var exactsel = eval(strCommandValue);
			if(chkcount != exactsel)
			{
				if(!strError || strError.length ==0)
				{ 
                        if(exactsel ==1)
                        {
					    strError = objValue.name + ": ' + strLLChoosePrompt + ' " + exactsel;
                        }
                        else
                        {
					    strError = objValue.name + ": ' + strLLChoosePrompt + ' " + exactsel;
                        }
				}
				alert(strError);
				return false;
			}
			break;
        }
        case "selectoptselexact":
        {
            var objcheck = objValue.form.elements[objValue.name];
            var chkcount =0;
            var checkName = objcheck.name;
            checkName = checkName.substr(0,(checkName.lastIndexOf("_",checkName.length - 1)+1))
            var chkcount =0;
            var objElements = document.SGWebForm.elements;
			var intObjElementsLength = objElements.length;
            for(var intLoop=0;intLoop < intObjElementsLength;intLoop++)
		    {
				var objElement = objElements[intLoop];
				if(objElement.type == "select" || objElement.type == "select-one" || objElement.type == "select-multiple" || objElement.type == "text")
				{
					var objElementName = objElement.name;
					if(objElementName.search(checkName) != -1)
					{
						switch (objElement.type)
						{
							case "select" :
								if (objElement.checked == true && objElement.value != "SGOTHR")
								{
									chkcount++;
								}
								break;
							case "select-one" :
								if (objElement.value != "SGOTHR")
								{
									for (var intLoopIn = 0; intLoopIn < objElement.length; intLoopIn++)
									{
										if ((objElement.options[intLoopIn].selected) && (objElement.options[intLoopIn].text != ""))
										{
											chkcount++;
										}
									}
								}
								break;
							case "select-multiple" :
								if (objElement.value != "SGOTHR")
								{
									for (var intLoopIn = 0; intLoopIn < objElement.length; intLoopIn++)
									{
										if (objElement.options[intLoopIn].selected)
										{
											chkcount++;
										}
									}
								}
								break;
							case "type" :
								if (objElement.value !="")
								{
									chkcount++;
								}
								break;
						}
					}
				}
			}
			var exactsel = eval(strCommandValue);
			if(chkcount != exactsel && chkcount !=0)
			{
				if(!strError || strError.length ==0)
				{ 
                        if(exactsel ==1)
                        {
					    strError = objValue.name + ": ' + strLLChoosePrompt + ' " + exactsel;
                        }
                        else
                        {
					    strError = objValue.name + ": ' + strLLChoosePrompt + ' " + exactsel;
                        }
				}
				alert(strError);
				return false;
			}
			break;
        }
        case "radioreq":
        {
            var objradio = objValue.form.elements[objValue.name];
            var rb_selected=false;
            if(objradio.length)
			{
				var intObjRadioLength = objradio.length;
				for(var r=0;r < intObjRadioLength;r++)
				{
				    if(objradio[r].checked == "1")
				    {
				        rb_selected=true;
				        break;
				    }
				}
				if(false == rb_selected)
				{
				    if(!strError || strError.length ==0) 
				    {
				    strError = objValue.name + ": ' + strLLChooseOnePrompt + '";
				    }	
				    alert(strError);
				}
				return rb_selected;
				break;
			}
			else
			{
				if(objValue.checked == "1")
				{
					rb_selected=true;
					break;
				}
				else
				{
				    if(!strError || strError.length ==0) 
				    {
				    strError = objValue.name + ": ' + strLLChooseOnePrompt + '";
				    }	
				    alert(strError);
				}
				return rb_selected;
				break;
			}
        }

    }
    return true; 
}

function SGDisableEnterKey(e)
{
     var key;
     if(window.event)
          key = window.event.keyCode; //IE
     else
          key = e.which; //firefox
     return (key != 13);
}

function SGProcessQueryString()
{
	var intQPos = window.location.href.indexOf('?');
	if(intQPos < 0) {
		return;
 	}

	var strQueryString = window.location.href.substr(intQPos + 1);
	var arrayQueryStringItem = strQueryString.split('&');
	for(var intItem = 0; intItem < arrayQueryStringItem.length; intItem++)
	{
   	var strItem = arrayQueryStringItem[intItem].split('=');
	
	
		if(! eval('document.SGWebForm.'+strItem[0]))
		{
			continue;
		}
		strItem[1] = unescape(strItem[1]);
		if(strItem[1].indexOf('"') > -1)
		{
			var strRegExp = /"/g;
			strItem[1] = strItem[1].replace(re,'\\"');
		}
		eval('document.SGWebForm.'+strItem[0]+'.value="'+strItem[1]+'"');
		eval('document.SGWebForm.'+strItem[0]+'.readOnly=true');
	}
}
// JavaScript Document