﻿
/*  Products.aspx Script */
function ResizeProductContainer() {
  var ProductsContainer = document.getElementById('ProductsContainer');
  var ProductsTable = document.getElementById('ProductsTable');
  var ProductsRow = document.getElementById('products_middle');
  var ProductMainTable = document.getElementById('ProductMainTable');

  if (ProductsTable != null) {
    ProductsContainer.style.height = ProductsTable.offsetHeight + 15 + 'px';
  }
  if (ProductsRow != null) {
    ProductsRow.style.height = ProductsTable.offsetHeight + 15 - 140 + 'px';
    alert(ProductsRow.style.height);
  }
  if (ProductMainTable != null) {
    ProductMainTable.style.height = ProductsTable.offsetHeight + 115 + 'px';
  }
}

/* ViewCart.aspx Script */
function ResizeCartContainer() {
  var CartContainer = document.getElementById('CartContainer');
  var CartTable = document.getElementById('CartTable');

  if (CartTable != null)
    CartContainer.style.height = CartTable.offsetHeight + 20 + 'px';
}
var IE = document.all ? true : false
document.onmousemove = mouseMove;
if (!IE) document.captureEvents(Event.MOUSEMOVE)
var mouseX = 0;
var mouseY = 0;

function mouseMove(e) {
  if (IE) {
    mouseX = event.clientX + document.body.scrollLeft;
    mouseY = event.clientY + document.body.scrollTop;
  } else {
    mouseX = e.pageX;
    mouseY = e.pageY;
  }
  if (mouseX < 0) { mouseX = 0 }
  if (mouseY < 0) { mouseY = 0 }
  return true;
}

function updateCart() {
  document.getElementById('cart_text').innerHtml = Worker.UpdateCartTotal();
}
function showPreview(sid, pid, e) {
  document.getElementById('preview').style.display = "block";
  document.getElementById('preview').style.left = mouseX + 50;
  document.getElementById('preview').style.top = mouseY - 50;
  document.getElementById('preview_image').src = "https://www.amazingpictures.com/ProductPreview.aspx?sid=" + sid + "&pid=" + pid;

}
function closePreview() {
  document.getElementById('preview').style.display = "none";
  document.getElementById('preview_image').src = "#";
}
function resizeDiv() {
  document.getElementById('user_background').style.height = document.getElementById('carttable').clientHeight + 'px';
  document.getElementById('content_table').height = document.getElementById('carttable').clientHeight + 'px';
  document.getElementById('content_table').style.height = document.getElementById('carttable').clientHeight + 'px';
}

function CenterBox(object, height, width) {
  var centerObject = document.getElementById(object);

  var screenWidth, screenHeight;
  if (self.innerHeight) {
    screenWidth = self.innerWidth;
    screenHeight = self.innerHeight;
  }
  else if (document.documentElement && document.documentElement.clientHeight) {
    screenWidth = document.documentElement.clientWidth;
    screenHeight = document.documentElement.clientHeight;
  }
  else if (document.body) {
    screenWidth = document.body.clientWidth;
    screenHeight = document.body.clientHeight;
  }

  var posX = (parseInt(screenWidth) / 2) - (parseInt(width) / 2);
  var posY = (parseInt(screenHeight) / 2) - (parseInt(height) / 2);

  centerObject.style.top = posY + 'px';
  centerObject.style.left = posX + 'px';
}

function FillScreen(object) {
  var fillObject = document.getElementById(object);
}

function ClosePopup(object) {
  document.getElementById(object).style.visibility = "hidden";
  document.getElementById('background').style.visibility = "hidden";
}

function ResizeElements() {
  if (document.getElementById('login_box') != null)
    CenterBox('login_box', '381', '609');
  if (document.getElementById('forgotpassword_box') != null)
    CenterBox('forgotpassword_box', '381', '609');
  if (document.getElementById('register_box') != null)
    CenterBox('register_box', '381', '609');
  if (document.getElementById('generic_box') != null)
    CenterBox('generic_box', '381', '609');
  if (document.getElementById('activation_box') != null)
    CenterBox('activation_box', '381', '609');
  if (document.getElementById('contact_box') != null)
    CenterBox('contact_box', '381', '609');
}

function ShowBackground() {
  var box = document.getElementById('background');
  box.style.visibility = "visible";
  if (document.getElementById('body') != null)
    body = document.getElementById('body');
  if (document.getElementById('ie6_body') != null)
    body = document.getElementById('ie6_body');
  if (document.getElementById('ie7_body') != null)
    body = document.getElementById('ie7_body');
  if (document.getElementById('ie8_body') != null)
    body = document.getElementById('ie8_body');
  if (document.getElementById('ie9_body') != null)
    body = document.getElementById('ie9_body');
  
  var screenWidth;

  if (self.innerHeight) { screenWidth = self.innerWidth; }
  else if (document.documentElement && document.documentElement.clientHeight) { screenWidth = document.documentElement.clientWidth; }
  else if (document.body) { screenWidth = document.body.clientWidth; }

  var otherHeight = document.documentElement.scrollHeight;
  box.style.height = otherHeight + 'px';
  box.style.width = screenWidth + 'px';
}

/*------------------------------------------
Open popups
------------------------------------------*/

function openLogin() {
  ShowBackground();
  CenterBox('login_box', '381', '609');
  document.getElementById('login_box').style.visibility = "visible";
}
function openPrivacy() {
  ShowBackground();
  CenterBox('privacy_box', '381', '609');
  document.getElementById('privacy_box').style.visibility = "visible";
}
function openPasswordRetrieval() {
  ShowBackground();
  CenterBox('forgotpassword_box', '381', '609');
  if (document.getElementById('login_box') != null)
    document.getElementById('login_box').style.visibility = "hidden";
  document.getElementById('forgotpassword_box').style.visibility = "visible";
}
function openRegistration() {
  ShowBackground();
  CenterBox('register_box', '381', '609');
  if (document.getElementById('login_box') != null)
    document.getElementById('login_box').style.visibility = "hidden";
  document.getElementById('register_box').style.visibility = "visible";
}
function openContact() {
  ShowBackground();
  CenterBox('contact_box', '381', '609');
  document.getElementById('contact_box').style.visibility = "visible";
}
function openHelp() {
  ShowBackground();
  CenterBox('help_box', '381', '609');
  document.getElementById('help_box').style.visibility = "visible";
}

/*------------------------------------------
Functions using .asmx
------------------------------------------*/
function RegisterGuest() {
  Worker.RegisterAccount(document.getElementById('tbRegisterFirstName').value, document.getElementById('tbRegisterLastName').value, document.getElementById('tbRegisterEmail').value, document.getElementById('tbRegisterEmailVerify').value, document.getElementById('tbRegisterPassword').value, document.getElementById('tbRegisterPasswordVerify').value, document.getElementById('checkRegisterAcceptTerms').checked, document.getElementById('ip').value, document.getElementById('sitevar').value, RegisterSuccess, RegisterFailed);
}
function RegisterSuccess(result, eventArgs) {
  if (result == "true") {
    document.getElementById('genericPopupMessage').innerHTML = "Your account has been created.  The activation email has been sent to the provided email address.  You will need to activate, and then login to continue.";
    document.getElementById('generic_box').style.visibility = "visible";
    CenterBox('generic_box', '381', '609');
    document.getElementById('register_box').style.visibility = "hidden";
    document.getElementById('errorRegisterPopup').innerHTML = "";
  }
  else {
    document.getElementById('errorRegisterPopup').innerHTML = result;
  }
}
function RegisterFailed(result, eventArgs) {
  alert(result);
}

function RetrievePassword() {
  Worker.RetrieveLostPassword(document.getElementById('tbPopupPasswordEmail').value, document.getElementById('tbPopupPasswordName').value, document.getElementById('sitevar').value, PasswordSuccess, PasswordFailed);
}
function PasswordSuccess(result, eventArgs) {
  document.getElementById('errorPopupPassword').innerHTML = result;
}
function PasswordFailed(result, eventArgs) {
  alert(result);
}

function SubmitComment() {
  Worker.SendComment(document.getElementById('uid').value, document.getElementById('tbContactName').value, document.getElementById('tbContactEmail').value, document.getElementById('ddlContactSubject').value, document.getElementById('tbContactMessage').value, document.getElementById('browser').value, document.getElementById('os').value, document.getElementById('sitevar').value, CommentSuccess, CommentFailed)
}
function CommentSuccess(result, eventArgs) {
  if (result == "true") {
    document.getElementById('contact_box').style.visibility = "hidden";
    document.getElementById('background').style.visibility = "hidden";
  }
  else {
    document.getElementById('tbContactError').innerHTML = result;
  }
}
function CommentFailed(result, eventArgs) {
  alert(result);
}

/* Microsoft Silverlight Stuff */
function onSilverlightError(sender, args) {
  var appSource = "";
  if (sender != null && sender != 0) {
    appSource = sender.getHost().Source;
  }

  var errorType = args.ErrorType;
  var iErrorCode = args.ErrorCode;

  if (errorType == "ImageError" || errorType == "MediaError") {
    return;
  }

  var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n";

  errMsg += "Code: " + iErrorCode + "    \n";
  errMsg += "Category: " + errorType + "       \n";
  errMsg += "Message: " + args.ErrorMessage + "     \n";

  if (errorType == "ParserError") {
    errMsg += "File: " + args.xamlFile + "     \n";
    errMsg += "Line: " + args.lineNumber + "     \n";
    errMsg += "Position: " + args.charPosition + "     \n";
  }
  else if (errorType == "RuntimeError") {
    if (args.lineNumber != 0) {
      errMsg += "Line: " + args.lineNumber + "     \n";
      errMsg += "Position: " + args.charPosition + "     \n";
    }
    errMsg += "MethodName: " + args.methodName + "     \n";
  }

  throw new Error(errMsg);
}
