﻿var CU = {
  getCookie: function() {
    return BQ.readCookie('bqcontactus')
  },
  setCookie: function(val) {
    BQ.createCookie('bqcontactus', val, 365)
  },
  saveContactInfo: function(subj, text, email) {
    function errnoshow(err) { }
    function afterIns(newid) {
      CU.setCookie(newid)
    }
    function afterUpd(res) { showMsg() }
    var cols = ['Subject', 'Comments'], vals = []
    vals.push("'" + subj.replace("'", "''") + "'")
    vals.push("'" + text.replace("'", "''") + "'")
    if (email.replace(' ', '').length) {
      cols.push('email')
      vals.push("'" + email + "'")
    } 
    var bqck = BQ.readCookie('bqquiz') // if user has taken quiz, update quiz with reguserid
    if (bqck) {
      var dbid = bqck.substring(0, bqck.indexOf('%'))
      cols.push('fkQuiz')
      vals.push(dbid)
    }
    var qdu = DA.createQuery()
    qdu.commandType = enums.commandType.text
    qdu.operationType = enums.dbOperation.insert
    qdu.commandText = 'insert ContactInfo(' + cols.toString() + ') values(' + vals.toString() + ')'
    qdu.xmlElements = '<AutoNumber DBName="SQL Server"></AutoNumber>'
    qdu.onSuccess = afterIns
    qdu.onFailure = errnoshow
    qdu.exec()
  },
  editemail: function() {
    var email = document.getElementById('email')
    if (!email) return false
    if (email.value.length == 0 || !/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.(?:[A-Z]{2}|com|org|net|gov|mil|biz|info|mobi|name|aero|jobs|museum)$/i.test(email.value)) {
      app.msgbox('Please enter a valid email address.', email)
      email.focus()
      return bull
    }
    return email.value
  },
  whentab: function(e) {
    var evt = BC.getEventObject(e)
    app.sc.msgbox.style.display = 'none';
    if (evt.keyCode === enums.keycode.tab) {
      if (evt.shiftKey) {
        if (evt.srcElement.id == 'subject' && (rb = document.getElementById('sendmail'))) {
          evt.endEvent()
          rb.focus()
        }
      } else if (evt.srcElement.id == 'sendmail') {
        if (fn = document.getElementById('subject')) {
          evt.endEvent()
          fn.focus()
        }
      }
    }
  },
  whenKeypress: function(e) {
    if (app.bi.browser === enums.browser.app.Opera) {
      var evt = BC.getEventObject(e)
      if (evt.keyCode === enums.keycode.tab) {
        //        if (evt.shiftKey && evt.srcElement.id == 'fullname'
        if (evt.shiftKey && evt.srcElement.id == 'subject'
        || !evt.shiftKey && evt.srcElement.id == 'sendmail') evt.preventDefault()
      }
    }
  },
  sendMail: function() {
    var subj = document.getElementById('subject')
    var text = document.getElementById('comments')
    var email = document.getElementById('email')  // this.editemail()
    var savebut = document.getElementById('sendmail')

    function clearMessage() { app.sc.msgbox.style.display = 'none' }
    function okay(result) {
      setTimeout(clearMessage, 5000)
      app.msgbox('E-mail sent. Thank you.', savebut, { img: { src: enums.images.info} })
      CU.saveContactInfo(subj.value, text.value, email.value)
      text.value = ''
      email.value = ''
      return
    }
    function failed(err) {
      setTimeout(clearMessage, 12000)
      return app.msgbox(err._message, savebut)
    }
    if (text.value.replace(' ','').length) {
      var webService = eval(webServiceCall).DBI
      var xml = '<Root>' + (email.value.length ? '<From>' + email.value + '</From>' : '') + '<Subject>' + subj.value + '</Subject><Body><![CDATA[' + text.value + ']]></Body><Cc>mailcc</Cc></Root>'
      webService(enums.dbOperation.email, xml, okay, failed)
    } else app.msgbox('Please enter the text of your message.')
  }
}

