var elqPPS = '70';
window.onload = initPage;
function initPage(){
    if (this.GetElqCustomerGUID)
        document.forms["BlazeCommunityContactUs"].elements["elqCustomerGUID"].value = GetElqCustomerGUID();
}

function getQueryStringParamValue(strQStrParam)
{
var defaultValue=null;
var strURL = document.location.href;
var strQStrParamValue = '';
	if (strURL.indexOf('?') != -1)
	{
		strQStrParamValue = strURL.substr(strURL.indexOf('?') + 1);
		if (strQStrParamValue.indexOf(strQStrParam) != -1)
		{
			strQStrParamValue = strQStrParamValue.substr(strQStrParamValue.indexOf(strQStrParam));
			strQStrParamValue = strQStrParamValue.substr(strQStrParamValue.indexOf('=') + 1);
			if (strQStrParamValue.indexOf('&') != -1)
				strQStrParamValue = strQStrParamValue.substr(0,strQStrParamValue.indexOf('&'));
			return strQStrParamValue;
			}else{
			strQStrParamValue = defaultValue;
			return strQStrParamValue;
			}
		}else{
		strQStrParamValue = defaultValue;
		return strQStrParamValue;
	}
}

var form = 'BlazeCommunityContactUs';

function setfields()

{
	

	document.forms[form].elements['C_SFDCLastCampaignID'].value = getQueryStringParamValue('eq_cid');
	document.forms[form].elements['C_Google___Campaign1'].value = getQueryStringParamValue('utm_campaign');
	document.forms[form].elements['C_Google___Content1'].value = getQueryStringParamValue('utm_content');
	document.forms[form].elements['C_Google___Medium1'].value = getQueryStringParamValue('utm_medium'); 
	document.forms[form].elements['C_Google___Source1'].value = getQueryStringParamValue('utm_source');
	document.forms[form].elements['C_Google___Term1'].value = getQueryStringParamValue('utm_term'); 
	document.forms[form].elements['C_Marketing_Channel_Current1'].value = getQueryStringParamValue('eq_mcc'); 	
	document.forms[form].elements['C_Marketing_Channel_Original1'].value = getQueryStringParamValue('eq_mco');
	document.forms[form].elements['C_Marketing_Source_Current1'].value = getQueryStringParamValue('eq_msc');
	document.forms[form].elements['C_Marketing_Source_Original1'].value = getQueryStringParamValue('eq_mso');
}



var errorSet = null;

window.onload = initPage;
function initPage() {
   appendContentID();
}

FieldObj = function() {
   var Field;
   this.get_Field = function() { return Field; }
   this.set_Field = function(val) { Field = val; }

   var ErrorMessage;
   this.get_ErrorMessage = function() { return ErrorMessage; }
   this.set_ErrorMessage = function(val) { ErrorMessage = val; }
}

function ResetHighlight() {
   var field;

   if (errorSet != null) {
      for (var i = 0; i < errorSet.length; i++) {
         errorSet[i].Field.className = 'elqField'
      }
    }
   errorSet = new Array();
}

function DisplayErrorSet(ErrorSet) {
   var element;
   var ErrorMessage = '';

   for (var i = 0; i < ErrorSet.length; i++) {
      ErrorMessage = ErrorMessage + ErrorSet[i].ErrorMessage + '\n';
      ErrorSet[i].Field.className = 'elqFieldValidation';
   }

   if (ErrorMessage != '')
      alert(ErrorMessage);
}

function ValidateRequiredField(Element, args) {
   var elementVal=Element.value;
   var testPass=true;
   if (Element) {
      if (args.Type == 'text') {
         if (Element.value == null || Element.value == "") {
            return false;
         }
      }
      else if (args.Type == 'singlesel') {
         if (Element.value == null || Element.value == "") {
            return false;
         }
   }
      else if (args.Type == 'multisel') {
         var selCount=0;
         for (var i=0; i<Element.length; i++) {
              if (Element[i].selected && Element[i].value !='') {
                 selCount += 1;
              }
         }
      if (selCount == 0)
         return false;
   }
   }
   else
      testPass = false;
return testPass;
}

function ValidateEmailAddress(Element) {
   var varRegExp='^[A-Z0-9!#\\$%&\'\\*\\+\\-/=\\?\\^_`\\{\\|\\}~][A-Z0-9!#\\$%&\'\\*\\+\\-/=\\?\\^_`\\{\\|\\}~\\.]{0,62}@([A-Z0-9](?:[A-Z0-9\\-]{0,61}[A-Z0-9])?(\\.[A-Z0-9](?:[A-Z0-9\\-]{0,61}[A-Z0-9])?)+)$';
   if ((Element) && (Element.value != '')) {
      var reg = new RegExp(varRegExp,"i");
      var match = reg.exec(Element.value);
         if ((match) && (match.length=3) && (match[1].length<=255) && ((match[2].length>=3) & (match[2].length<=7)))
            return true;
   }
   return false;
}

function ValidateDataTypeLength(Element, args, ErrorMessage) {
   var elementVal = Element.value;
   var testPass = true;

   if (Element) {
      if (args.Type == 'text') {
         if ((args.Minimum != '') && (elementVal.length < args.Minimum))
            testPass = false;
         if ((args.Maximum != '') && (elementVal.length > args.Maximum))
            testPass = false;
      }
      else if (args.Type == 'numeric') {
         if ((elementVal == '')) {
            testPass = false;
         }
         if ((elementVal != '') && (elementVal != parseFloat(elementVal)))
            testPass = false;
         if (args.Minimum != '') {
            if ((elementVal == '') || (parseFloat(elementVal) < args.Minimum))
            testPass = false;
         }
         if (args.Maximum != '') {
            if ((elementVal != '') && (parseFloat(elementVal) > args.Maximum))
               testPass = false;
         }
      }
   }
   else
      testPass = false;
   return testPass;
}

function CheckElqForm(elqForm) {
var args = null;
var allValid = true;

if (elqForm == null) {
   alert('Unable to execute form validation!\Unable to locate correct form');
   return false;
}
ResetHighlight();

formField = new FieldObj();
formField.Field = elqForm.elements['C_Company'];
formField.ErrorMessage ='Company is a required field'
args = {'Type': 'text' };
if (formField.Field != null) {
   if (!ValidateRequiredField(formField.Field, args)) {
      errorSet.push(formField);
      allValid = false;
   }
}

formField = new FieldObj();
formField.Field = elqForm.elements['C_Title'];
formField.ErrorMessage ='Title is a required field'
args = {'Type': 'text' };
if (formField.Field != null) {
   if (!ValidateRequiredField(formField.Field, args)) {
      errorSet.push(formField);
      allValid = false;
   }
}

formField = new FieldObj();
formField.Field = elqForm.elements['C_LastName'];
formField.ErrorMessage ='Last Name is a required field'
args = {'Type': 'text' };
if (formField.Field != null) {
   if (!ValidateRequiredField(formField.Field, args)) {
      errorSet.push(formField);
      allValid = false;
   }
}

formField = new FieldObj();
formField.Field = elqForm.elements['C_FirstName'];
formField.ErrorMessage ='First Name is a required field'
args = {'Type': 'text' };
if (formField.Field != null) {
   if (!ValidateRequiredField(formField.Field, args)) {
      errorSet.push(formField);
      allValid = false;
   }
}

formField = new FieldObj();
formField.Field = elqForm.elements['C_EmailAddress'];
formField.ErrorMessage ='Email Address field contains an invalid email address'
if (formField.Field != null) {
   if (!ValidateEmailAddress(formField.Field)) {
      errorSet.push(formField);
      allValid = false;
   }
}

formField = new FieldObj();
formField.Field = elqForm.elements['C_Description1'];
formField.ErrorMessage ='Description is a required field'
args = {'Type': 'text' };
if (formField.Field != null) {
   if (!ValidateRequiredField(formField.Field, args)) {
      errorSet.push(formField);
      allValid = false;
   }
}

if (!allValid) {
   DisplayErrorSet(errorSet);
   return false;
}

return true;
}

function submitForm(elqForm) {
   if (CheckElqForm(elqForm)) {
       prepareSelectsForEloqua(elqForm);
       fnPrepareCheckboxMatricesForEloqua(elqForm);
       return true;
   }
   else { return false; }
}

function prepareSelectsForEloqua(elqForm) {
   var selects = elqForm.getElementsByTagName("SELECT");
   for (var i = 0; i < selects.length; i++) {
       if (selects[i].multiple) {
           createEloquaSelectField(elqForm, selects[i]);
       }
   }
   return true;
}

function createEloquaSelectField(elqForm, sel) {
   var inputName = sel.name;
   var newInput = document.createElement('INPUT');
   newInput.style.display = "none";
   newInput.name = inputName;
   newInput.value = "";

   for (var i = 0; i < sel.options.length; i++) {
       if (sel.options[i].selected) {
           newInput.value += sel.options[i].value + "::";
       }
   }
   if (newInput.value.length > 0) {
       newInput.value = newInput.value.substr(0, newInput.value.length - 2);
   }
   sel.disabled = true;
   newInput.id = inputName;
   elqForm.insertBefore(newInput, elqForm.firstChild);
}

function appendContentID() {
   var frm=document.forms['BlazeCommunityContactUs'];
   if (frm) {
      var re = new RegExp("[?&](gatedcontent)=([^&$]*)", "i" );
      var offset = location.search.search( re );
      if (offset == -1)
         return null;
      else {
         var contentID=document.createElement('input');
         contentID.setAttribute('type', 'hidden');
         contentID.setAttribute('name', 'elqGatedContent');
         contentID.setAttribute('value', RegExp.$2);
         frm.appendChild(contentID);
      }
   }
}

	function fnPrepareCheckboxMatricesForEloqua(elqForm) {
	   var matrices = elqForm.getElementsByTagName('TABLE');
	   for (var i = 0; i < matrices.length; i++) {
	       var tableClassName = matrices[i].className;
	       if (tableClassName.match(/elqMatrix/)) {
	           if (fnDetermineMatrixType(matrices[i]).toLowerCase() == 'checkbox') {
	               if (matrices[i].rows[0].cells[0].childNodes.length == 1) {
	                   if (matrices[i].rows[0].cells[0].childNodes[0].nodeName != '#text') {
	                       fnCreateHorizontalMatrixCheckboxField(elqForm, matrices[i]);
	                   }
	                   else {
	                       fnCreateVerticalMatrixCheckboxField(elqForm, matrices[i]);
	                   }
	               }
	           }
	       }
	   }
	   return true;
	}

	function fnCreateVerticalMatrixCheckboxField(elqForm, matrix) {
	   var inputName = matrix.id + 'r' + 1;
	   var newInput = document.createElement('INPUT');
	   newInput.style.display = 'none';
	   newInput.name = inputName;
	   newInput.value = '';
	
	   var inputs = document.getElementsByName(inputName);
	   for (var i=0; i < inputs.length; i++) {
	       if (inputs[i].nodeName.toLowerCase() == 'input') {
	           if (inputs[i].checked == true) {
	               if (inputs[i].type.toLowerCase() == 'checkbox') {
	                   newInput.value += inputs[i].value + '::';
	                   inputs[i].disabled = true;
	               }
	           }
	       }
	   }
	   if (newInput.value.length > 0) {
	       newInput.value = newInput.value.substr(0, newInput.value.length - 2);
	   }
	
	   newInput.id = inputName;
	   elqForm.insertBefore(newInput, elqForm.firstChild);
	   matrix.disabled = true;
	}

	function fnCreateHorizontalMatrixCheckboxField(elqForm, matrix) {
	   for (var i=1; i < matrix.rows.length; i++) {
	       var inputs = document.getElementsByName(matrix.id + 'r' + i);
	       var oMatrixRow = matrix.rows[i];
	       var inputName = oMatrixRow.id;
	       var newInput = document.createElement('INPUT');
	       newInput.style.display = 'none';
	       newInput.name = inputName;
	       newInput.value = '';
	
	       for (var j=0; j < inputs.length; j++) {
	           if (inputs[j].nodeName.toLowerCase() == 'input') {
	               if (inputs[j].checked == true) {
	                   if (inputs[i].type.toLowerCase() == 'checkbox') {
	                       newInput.value += inputs[j].value + '::';
	                       inputs[j].disabled = true;
	                   }
	               }
	           }
	       }
	
	       if (newInput.value.length > 0) {
	           newInput.value = newInput.value.substr(0, newInput.value.length - 2);
	       }
	
	       newInput.id = inputName;
	       elqForm.insertBefore(newInput, elqForm.firstChild);
	   }
	   matrix.disabled = true;
	}

	function fnDetermineMatrixType(oTable) {
	   var oFirstMatrixInput = oTable.rows[1].cells[1].childNodes[0];
	   return oFirstMatrixInput.type;
	}

