var thisPageFile = window.location.pathname;
var thisPageSearch = window.location.search;
var thisPage = thisPageFile + thisPageSearch;

var a_main = new AjaxObject();
a_main.OnComplete = a_main_Complete;
a_main.OnError    = Error;

var a_details = new AjaxObject();
a_details.OnComplete = a_details_Complete;
a_details.OnError    = Error;

var a_saved = new AjaxObject();
a_saved.OnComplete = a_saved_Complete;
a_saved.OnError    = Error;

var a_login = new AjaxObject();
a_login.OnComplete = a_login_Complete;
a_login.OnError    = Error;

function a_main_Complete(responseText, responseXML) 
{
  var o = document.getElementById('mainpane');
  o.innerHTML = responseText;
}

function a_details_Complete(responseText, responseXML) 
{
  var o = document.getElementById('mydetails');
  o.innerHTML = responseText;
  show('mydetails');
}

var detailsMode = 'new';

function checkDetails(email)
{
  detailsMode = 'load';
  myDetails(email, 'load')
}

function myDetails(email, mode)
{
  var frmdta = '&mode=' + mode;
  var loadyes = '';
  if (mode == 'load') 
    loadyes = '&load=yes';
  if (document.userdetails) {
    var detailsform = document.userdetails;
    email = detailsform.email.value;
    frmdta = '&' + FormToSearchUri(detailsform);
  }
    
  var uri = 'download-data.vsp' + '?c=myDetails&email='+email+frmdta+loadyes;
  a_details.DoCallBack(uri, 'mainpane', '');
}

function saveDetails()
{
  var u = document.userdetails;
  var req = 0;
  if (selectValue(u.title) == '') {
    u.title.className = 'required';
    req = 1;
  }
  if (selectValue(u.state) == '') {
    u.state.className = 'required';
    req = 1;
  }
  if (selectValue(u.country) == '') {
    u.country.className = 'required';
    req = 1;
  }
  if (u.firstname.value == '') {
    u.firstname.className = 'required';
    req = 1;
  }
  if (u.lastname.value == '') {
    u.lastname.className = 'required';
    req = 1;
  }
  if (u.company.value == '') {
    u.company.className = 'required';
    req = 1;
  }
  if (u.address1.value == '') {
    u.address1.className = 'required';
    req = 1;
  }
  if (u.city.value == '') {
    u.city.className = 'required';
    req = 1;
  }
  if (u.zip.value == '') {
    u.zip.className = 'required';
    req = 1;
  }
  if (u.tel.value == '') {
    u.tel.className = 'required';
    req = 1;
  }
  if (req > 0) {
    document.getElementById('detailsrequired').style.visibility = 'visible';    
    document.getElementById('detailsrequired').style.display = 'block';    
  }
  else
  {
    var detailsform = document.userdetails;
    var frmdta = '&' + FormToSearchUri(detailsform) + '&save=save';
    var uri = 'download-data.vsp' + '?c=myDetails'+frmdta;
    document.getElementById("saving").innerHTML = 'Saving...';
    a_saved.DoCallBack(uri, 'mainpane', '');
  }
}

function a_saved_Complete(responseText, responseXML) 
{
  var o = document.getElementById('mainpane');
  o.innerHTML = responseText;
  //document.dl.uid.value = document.userdetails.uid.value;
  document.getElementById("saving").innerHTML = 'Information saved... Thank you.';
    hide('mydetails');
    startUp();
}

function dlHistory()
{
  document.location="dl.vsp";
}

function chngJsLogin()
{
  hide('welcome');
  show('newlogin');
}

var pp = '';
var uu = '';

function startUp()
{
  var u = getCookieValue('openlinkdusr');
  document.js_login.js_u.value = u;
  var p = getCookieValue('openlinkdpwd');
  document.js_login.js_p.value = p;
  uu = u;
  pp = p;
  // get descriptions for making things more readable.
  var fdesc = document.dl.format_desc.value;
  // end desc
  var uri = 'shop-data.vsp' + '?c=welcome&u='+u+'&p='+p+'&format_desc='+fdesc;
  if (u != '' && p != '')
    a_main.DoCallBack(uri, 'mainpane', '');
}

function doJsLoginKeyed(ev)
{
  //document.getElementById('test').innerHTML = ev.keyCode;
  document.getElementById('user_message').innerHTML = '';
  var keypress = ev.keyCode;
  if (keypress == 13) //The Enter Key!
    doJsLogin();
  return;
}

function doLogin ()
{
  var d = document.js_login.format_desc.value;
  var uri = 'shop-data.vsp' + '?c=login&u='+uu+'&p='+pp+'&format_desc='+d;
  a_login.DoCallBack(uri, 'mainpane', '');
}

function doJsLogin () 
{
  var u = '';
  var p = '';
  if (document.js_login.js_u)
    u = document.js_login.js_u.value;
  if (document.js_login.js_p)
    p = document.js_login.js_p.value;
  pp = p;
  uu = u;
    writeSessionCookie('openlinkdusr', uu);
    writeSessionCookie('openlinkdpwd', pp);
  startUp();
}

function a_login_Complete(responseText, responseXML) 
{
  var x = responseXML.getElementsByTagName('login')[0];
  var u = x.getAttribute('uid');
  var worked = x.getAttribute('worked');
  var m = x.getAttribute('message');

  if (worked == 'yes')
  {
    writeSessionCookie('openlinkdusr', uu);
    writeSessionCookie('openlinkdpwd', pp);
    document.dl.uid.value = u;
    document.dl.submit();
  }
  else
  {
    alert(m);
    var o = document.getElementById('user_message');
    o.innerHTML = m;
  }
}

function show (e) 
{
  var box = document.getElementById(e);
  box.style.visibility = 'visible';
  box.style.display = 'block';
}

function hide (e) 
{
  var box = document.getElementById(e);
  box.style.visibility = 'hidden';
  box.style.display = 'none';
}

var a_user = new AjaxObject();
a_user.OnComplete = a_user_Complete;
a_user.OnError    = Error;

function getPassword () 
{
  var u = document.js_login_forgot.js_u.value;
  var uri = 'shop-data.vsp' + '?c=pwd&email='+u;
  a_user.DoCallBack(uri, 'user_message', '');
}

function a_user_Complete(responseText, responseXML) 
{
  var o = document.getElementById('user_message');
  o.innerHTML = responseText;
  hide('forgotBox');
}

var a_reg = new AjaxObject();
a_reg.OnComplete = a_reg_Complete;
a_reg.OnError    = Error;

function register () 
{
  detailsMode = 'new';
  var u = '';
  var p = '';
  if (document.js_login_reg.js_u)
    u = document.js_login_reg.js_u.value;
  if (document.js_login_reg.js_p)
    p = document.js_login_reg.js_p.value;
  var uc = '';
  var pc = '';
  if (document.js_login_reg.js_uc)
    uc = document.js_login_reg.js_uc.value;
  if (document.js_login_reg.js_pc)
    pc = document.js_login_reg.js_pc.value;
  
  if (u != uc) { alert('Email addresses do not match'); return;}
  if (p != pc) { alert('Passwords do not match'); return;}
  if (p.length < 6) { alert('Password is not long enough'); return;}
  if (!validEmail(u)) { alert('Please check that you are supplying a valid email address.'); return; }

  var uri = 'shop-data.vsp' + '?c=reg&u='+u+'&p='+p;
  a_reg.DoCallBack(uri, 'user_message', '');
}

function a_reg_Complete(responseText, responseXML) 
{
  var x = responseXML.getElementsByTagName('reg')[0];
  var u = x.getAttribute('email');
  var p = x.getAttribute('pass');
  var worked = x.getAttribute('worked');
  var m = x.getAttribute('message');

  if (worked == 'yes')
  {
    hide('regBox');
    uu = u;
    pp = p;
    
    document.js_login.js_u.value = u;
    document.js_login.js_p.value = p;
    writeSessionCookie('openlinkdusr', u);
    writeSessionCookie('openlinkdpwd', p);
    
    document.getElementById('mainpane').innerHTML = '';
    myDetails(u, 'new');
  }
  else
  {
    alert(m);
    var o = document.getElementById('user_message');
    o.innerHTML = m;
  }
}

function Error(status, statusText, responseText) 
{
  message('<h1>Error: '+status+' - '+statusText+'</h1><div>'+responseText+'</div><br /><div>Click message to dismiss...</div>');
}

function message (text) 
{
  var om = document.getElementById('messages');
  om.style.visibility = 'visible';
  om.style.display = 'block';
  om.innerHTML = text;
}

function dismiss(o) 
{
  //var o = document.getElementById('messages');
  o.style.visibility = 'hidden';
  o.style.display = 'none';
}

function selected_tab(href) 
{
  var nodes = document.getElementById('nav').getElementsByTagName('a');

  if (nodes && nodes.length > 0)
  {
    var i;
    for (i = 0; i < nodes.length; i++)
    {
      var node = nodes[i];
      if (node.getAttribute('href') == href+thisPageSearch)
      {  
        node.setAttribute('class', 'nav_selected');
        node.className = 'nav_selected';
      }
    }
  }
}

function getSid()
{
  return '';
}


function doPayment()
{
  var u = document.paydetails;
  var req = 0;
  if (u.cardNumber.value.length < 8) { // invalid card number
    u.cardNumber.className = 'required';
    req = 1;
  }
  if (u.cardHolder.value == '') { // invalid card holder
    u.cardHolder.className = 'required';
    req = 1;
  }
  if (req > 0) {
    document.getElementById('detailsrequired').style.visibility = 'visible';    
    document.getElementById('detailsrequired').style.display = 'block';    
  }
  else
  {
    var sesid = getSid();
    var frmdta = '&' + FormToSearchUri(u) + '&save=save&mode=' + CurrentMode;
    var uri = 'shop-data.vsp' + '?c=payment&sesid=' + sesid + '&cartid=' + CurrentCart + frmdta;
    a_main.DoCallBack(uri, 'mainpane', '');
  }

}

/* Session Cookie Functions */

function writeSessionCookie (cookieName, cookieValue) {
  document.cookie = escape(cookieName) + "=" + escape(cookieValue) + "; path=/";
}

function getCookieValue (cookieName) {
  var exp = new RegExp (escape(cookieName) + "=([^;]+)");
  if (exp.test (document.cookie + ";")) {
    exp.exec (document.cookie + ";");
    return unescape(RegExp.$1);
  }
  else return '';
}
