// form validation functions
function validateForm(formData, jqForm, options)
{
     var name, submitForm = true;

     for (var i=0; i < formData.length; i++) {
          if (formData[i].name == 'register[linkedIn]' || formData[i].name == 'register[twitter]' || formData[i].name == 'register[facebook]' || formData[i].name == 'register[about]' || formData[i].name == 'register[userWebsite]' || formData[i].name == 'contact[url]' || formData[i].name == 'userURL' || formData[i].name == 'article[category_id]' || formData[i].name == 'article[ntags]'|| formData[i].name == 'submitSite[cms_used]'|| formData[i].name == 'submitSite[cms_used_other]'|| formData[i].name == 'categories[]'|| formData[i].name == 'colors[]') {
               continue;
          }
          if (formData[i].name.indexOf('[') != -1) {
               name = formData[i].name.substring(formData[i].name.indexOf('[') + 1, formData[i].name.indexOf(']'));
          } else {
               name = formData[i].name;
          }
          if (!(formData[i].name == 'articlefile' || formData[i].value)) {
               submitForm = false;
               $('#' + options.formName + name).addClass('fieldError');
               $('#' + name + 'Error').fadeIn(750).removeClass('noFieldError').addClass('fieldErrorNotify').text('Field ' + name + ' is required');

          } else if (formData[i].name == 'register[confirmPassword]' && formData[i].value != formData[i-1].value) {
                submitForm = false;
                $('#registerpassword').addClass('fieldError');
                $('#registerconfirmPassword').addClass('fieldError');
                $('#passwordError').fadeIn(750).removeClass('noFieldError').addClass('fieldErrorNotify').text('Password and Confirm password do not match.');
                $('#confirmPasswordError').fadeIn(750).removeClass('noFieldError').addClass('fieldErrorNotify').text('Password and Confirm password do not match.');
          } else {
               $('#' + options.formName + name).removeClass('fieldError');
               $('#' + name + 'Error').removeClass('fieldErrorNotify').addClass('noFieldError').text('');
          }
     }
     if (submitForm) {
          $('#page').fadeTo(400, 0.5);
          if(options.formName=='comment') {
               $('#workingComment').show();
          } else {
               $('#working').show();
          }
     }
     return submitForm;
}

function formResponse(responseText, statusText)
{
     responseText = responseText.substring(responseText.indexOf('{'), responseText.indexOf('}') + 1);
     eval("var response=" + responseText);

     if (response.success == '0') {
          $("#formContainer").show();
          $("#errors").html(response.errors);
     } else {
          $("#formContainer").hide();
          $("#registerText").hide();
          $('<p>' + response.message + '</p>').insertAfter("#formContainer");
     }
     $('#working').hide();
     $('#workingComment').hide();
     $('#page').fadeTo(400,1.0);
}

function loginResponse(responseText, statusText)
{
     eval("var response = " + responseText);

     if (response.success == '0') {
          $("#formContainer").show();
          $("#errors").html(response.errors);
          $('#working').hide();
          $('#page').fadeTo(400,1.0);
     } else {
          document.location.href = response.url;
     }
}

function submitSiteResponse(responseText, statusText)
{
     responseText = responseText.substring(responseText.indexOf('{'), responseText.indexOf('}') + 1);
     eval("var response = " + responseText);

     if (response.success == '0') {
          $("#formContainer").show();
          $("#errors").html(response.errors);
          $("#messages").hide();
          $("#errors").show();
     } else {
          $("#messages").html('<p>' + response.message + '</p>');
          $("#errors").hide();
          $("#messages").show();
          $("#submitSite").clearForm();
     }
     $('#working').hide();
     $('#page').fadeTo(400,1.0);
}

function checkField(fieldName,fieldValue,url,formName,optional)
{    
     if (optional && !fieldValue) {
          return;
     }
     var name, options, dataObj = {};

     if (fieldName.indexOf('[') != -1) {
          name = fieldName.substring(fieldName.indexOf('[') + 1, fieldName.indexOf(']'));
     } else {
          name = fieldName;
     }
     dataObj = eval("({'paramName':'" + name + "','paramValue':'" + fieldValue + "','formName':'" + formName + "'})");
     options = {
     'url'          : url,
     'data'         : dataObj,
     'type'         : 'POST',
     'processData'  : true,
     'dataType'     : 'json',
     'success'      : checkFieldResponse
     };
     $.ajax(options);
}

function checkFieldResponse(responseText, ststusText)
{
     var fieldName = responseText.field;

     if(responseText.success == '0') {
          $('#' + responseText.formName + fieldName).addClass('fieldError');
          $('#' + fieldName + 'Error').fadeIn(450).removeClass('noFieldError').addClass('fieldErrorNotify').text(responseText.errors);
     } else {
          $('#' + responseText.formName + fieldName).removeClass('fieldError');
          $('#' + fieldName + 'Error').removeClass('fieldErrorNotify').addClass('noFieldError').text('');
     }
}

function checkPasswdLen(pass)
{
     if (pass.length < 6) {
          $('#registerpassword').addClass('fieldError');
          $('#passwordError').fadeIn(450).removeClass('noFieldError').addClass('fieldErrorNotify').text('Password should be at least 6 characters long.');
     } else {
          $('#registerpassword').removeClass('fieldError');
          $('#passwordError').removeClass('fieldErrorNotify').addClass('noFieldError').text('');
     }
}

function checkPasswdMatch(pass, cfrmPass)
{
     if (pass != cfrmPass) {
          $('#registerpassword').addClass('fieldError');
          $('#registerconfirmPassword').addClass('fieldError');
          $('#passwordError').fadeIn(450).removeClass('noFieldError').addClass('fieldErrorNotify').text('Password and Confirm password do not match.');
          $('#confirmPasswordError').fadeIn(450).removeClass('noFieldError').addClass('fieldErrorNotify').text('Password and Confirm password do not match.');
     } else if ( pass.length < 6 ) {
          $('#registerpassword').addClass('fieldError');
          $('#registerconfirmPassword').addClass('fieldError');
          $('#passwordError').fadeIn(450).removeClass('noFieldError').addClass('fieldErrorNotify').text('Password should be at least 6 characters long.');
          $('#confirmPasswordError').fadeIn(450).removeClass('noFieldError').addClass('fieldErrorNotify').text('Password should be at least 6 characters long.');
     } else {
          $('#registerpassword').removeClass('fieldError');
          $('#registerconfirmPassword').removeClass('fieldError');
          $('#passwordError').removeClass('fieldErrorNotify').addClass('noFieldError').text('');
          $('#confirmPasswordError').removeClass('fieldErrorNotify').addClass('noFieldError').text('');
     }
}

function checkSelectedOption(sl)
{
     var divOther = document.getElementById('otherCMSUsed');
     var divOtherLabel = document.getElementById('otherCMSUsedLabel');

     if (sl.options[sl.selectedIndex].value == 'Other') {
          divOther.style.display = 'block';
          divOtherLabel.style.display = 'block';
     } else {
          divOther.style.display = 'none';
          divOtherLabel.style.display = 'none';
     }
}

function inArray(needle, haystack)
{
     if (!haystack.length) {
          return false;
     }
     for (var i = 0; i < haystack.length; i++) {
          if (haystack[i] == needle) {
               return true;
          }
     }
     return false;
}

