/*
 * Copyright (C) 2008 Ignition Commerce.
 * All Rights Reserved.  No use, copying or distribution of this
 * work may be made except in accordance with a valid license
 * agreement from IgnitionCommerce.  This notice must be
 * included on all copies, modifications and derivatives of this
 * work.
 *
 * @Author Mike Sewell
 * @Version 1.0
 * @Since 1.0
 */
function addEvent(obj, evType, fn) {
  if (obj == null) return;
  if (obj.addEventListener) {
    obj.addEventListener(evType, fn, false);
   	return true;
  } else if (obj.attachEvent) {
   	var r = obj.attachEvent("on"+evType, fn);
   	return r;
  } else {
   	return false;
  }
}

function cancelEvent(e) {
  if (e && e.preventDefault) {
    e.preventDefault();
  } 
  return false;   
}

function validateCCNumber(ccNum) {
  var isValid = false;
  var ccCheckRegExp = new RegExp("[^\\d -]");
  isValid = !ccCheckRegExp.test(ccNum);	
  if (isValid)
  {
    var cardNumbersOnly = ccNum.replace(/\s+/g,"");
    cardNumbersOnly = cardNumbersOnly.replace(/-+/g, "");
    var cardNumberLength = cardNumbersOnly.length;	
    
    if (cardNumberLength > 13) {
    	isValid = true;
    }
  }
  return isValid;
}

function validateEMail(emailStr) {
  if (emailStr.length == 0) return false;
  var pattern = new RegExp("^[\\w-\\.]+@([\\w-]+\\.)+[\\w-]{2,4}$");
  return pattern.test(emailStr);		
}

function validateDate(dateStr) {
  if (dateStr.length == 0) return false;
  var pattern = new RegExp("(0[1-9]|[1-9]|1[012])[- /.](0[1-9]|[1-9]|[12][0-9]|3[01])[- /.](19|20)\\d\\d");
  return pattern.test(dateStr);	
}

function validatePhone(phoneStr) {
  if (phoneStr.length == 0) return false;
  var newPhoneStr = phoneStr.replace(/[^0-9]/g, '');
  return newPhoneStr.length == 10;
}

function validatePostal(postalStr) {
  if (postalStr.length == 0) return false;
  var objRegExp  = /(^\d{5}$)|(^\d{5}-\d{4}$)/;
  return objRegExp.test(postalStr);
}

var isIE = (navigator.appName.indexOf('Microsoft') != -1);
function adjustHeightWidth() {
	var bodyContainer = document.getElementById('bodyContainer');
  var menuContainer = document.getElementById('leftMenuContainer');
	var pageContainer = document.getElementById('pageContainer');
	if (menuContainer != null) {
		bodyContainer.style.width = 649+'px';
		if (bodyContainer.offsetHeight > menuContainer.offsetHeight) {
			menuContainer.style.height = bodyContainer.offsetHeight+'px';   
		} else {
		bodyContainer.style.height = menuContainer.offsetHeight+'px';
		} 
	} 
}

var count = 0;
var intervalVal;
var animating = false;

function showCartSummary(e) {
	if (animating) return;
  if (!e) var e = window.event;
  if (e) {
 		var relTarg = e.relatedTarget || e.fromElement;
    if (!relTarg || relTarg.id != 'mainMenuContainer') return;    
 	}
  var cartSummaryDiv = document.getElementById('cartSummaryContainer');
  var cartSummaryDDContainer = document.getElementById('cartSummaryDropDownContainer');
  var cartSummaryDD = document.getElementById('cartSummaryDropDown');
  if (!cartSummaryDDContainer) return;
  if (parseInt(document.getElementById('commerceCount').value) == 0) return;
  cartSummaryDDContainer.style.visibility = 'visible';
  cartSummaryDD.style.top = -150 + 'px';
  count = 0;
  animating = true;
  clearInterval(intervalVal);
  intervalVal = setInterval(animateDropDown, 20);
}

function animateDropDown(close) {
	var elem = document.getElementById('cartSummaryDropDown');
  if (count >= 14) {
    count = 14;
    clearInterval(intervalVal);
    animating = false;
  	setTimeout(hideCartSummary, 5000);
  } 
    elem.style.top = elem.offsetTop + 10 + 'px';     
    count += 1;
}
  
function animateDropDownClose() {
	var elem = document.getElementById('cartSummaryDropDown');
  if (count <= 0) {
  	count = 0;
    clearInterval(intervalVal);
    animating = false;
  	document.getElementById('cartSummaryDropDownContainer').style.visibility = 'hidden';
  } 
  count -= 1;
  elem.style.top = elem.offsetTop + -10 + 'px';
}
  
function hideCartSummary() {
	count = 14;
  animating = true;
  intervalVal = setInterval(animateDropDownClose, 20);
}

// Global variables
var isCSS, isW3C, isIE4, isNN4, isIE6CSS, isIE5, isSafari, isMac;
// Initialize upon load to let all browsers establish content objects

function getIEVersionNumber() {
	var ua = navigator.userAgent;
	var MSIEOffset = ua.indexOf("MSIE ");
	if (MSIEOffset == -1) {
		return 0;
	} else {
		return parseFloat(ua.substring(MSIEOffset + 5, ua.indexOf(";", MSIEOffset)));
	}
}

function initDHTMLAPI() {
    if (document.images) {
        isCSS = (document.body && document.body.style) ? true : false;
        isW3C = (isCSS && document.getElementById) ? true : false;
        isIE4 = (isCSS && document.all) ? true : false;
        isNN4 = (document.layers) ? true : false;
        isIE6CSS = (document.compatMode && document.compatMode.indexOf("CSS1") >= 0) ? true : false;
		isIE5 = Math.round(getIEVersionNumber());

		var app = navigator.userAgent;
		if (app.indexOf("Safari") > 0) { isSafari = true; } else { isSafari = false; }
		if (app.indexOf("Mac") > 0)    { isMac = true;    } else { isMac    = false; }
    }
}
initDHTMLAPI();
if ((isMac && isIE5 == 5)) {
	// disables the validation for IE5 on Mac... 
	// for some reason it's not working on that platform
	function validateForm() { }
} else {
	document.write('<script type="text/javascript" src="https://www.topica.com/js/fValidate.config.js"></' + 'script><script type="text/javascript" src="https://www.topica.com/js/fValidate.core.js"></' + 'script><script type="text/javascript" src="https://www.topica.com/js/fValidate.lang-enUS.js"></' + 'script><script type="text/javascript" src="https://www.topica.com/js/fValidate.validators.js"></' + 'script>');
}

function hiliteFunc(id, hiliteimage, nohiliteimage, hilite) {
    var ctl = document.getElementById(id);
    if (hilite == true) {
      ctl.src = hiliteimage;
    } else {
      ctl.src = nohiliteimage;
    } 
  }