var cartMiniClose = 0;

function cart_add(location_id){
	store_group_id = document.getElementById('store_group_id').value;
	product_id = document.getElementById('product_id').value;
	is_master = document.getElementById('is_master').value;
	item_number = document.getElementById('option_select').value;
	item_quantity = document.getElementById('item_quantity').value;
	has_options = document.getElementById('has_options').value;
	other_storecart_exists = document.getElementById('other_storecart_exists').value;
	instance_product_id = document.getElementById('product_id_' + item_number).value;
	
	
	var now = new Date();
	tickcount = now.getTime();
	
	if (is_master == 1){product_id_selected=instance_product_id;}
	else {product_id_selected=product_id;}
		
	if (other_storecart_exists == 1){
		fuseaction = 'index.cfm?action=shop.viewcartbrand&product_id=' + product_id + '&item_quantity=' + item_quantity;
		window.location=fuseaction;
	}
	else {
		if (item_quantity != parseInt(item_quantity)){
			alert('Quantity must be numeric. Please re-enter your Quantity.');
		}
		else {
			//if (has_options == 1){
			//	color_options_id=document.getElementById('color_options');
			//	color_options_id.style.display = 'none';}
			view_url(location_id,'index.cfm?action=shop.ajaxcartmini&store_group_id=' + store_group_id + '&product_id=' + product_id_selected +  '&is_master=' + is_master + '&item_number=' + item_number + '&item_quantity=' + item_quantity + '&has_options=' + has_options + '&rand=' + tickcount, 'html');	
			setTimeout ('cartToggle()', 1000 );
			cartMiniClose = setTimeout ('cartToggle()', 8000 );
		}
	}	
}

function show_cart_mini(location_id){
	view_url(location_id,'index.cfm?action=shop.viewcartmini','html');	
	setTimeout ('cartToggle()', 1000 );
	cartMiniClose = setTimeout ('cartToggle()', 8000 );
}

var cartToggle = function() {
      if ($("#cart_mini").is(":hidden")) {
        $("#cart_mini").slideDown(); //"slow"
      } else {
        $("#cart_mini").slideUp(); //"slow"
		clearTimeout (cartMiniClose);
	  }
};

$(cartToggle);



// this is not being used at the moment //
function select_option_review(brand_code,item_number) {
	id = document.getElementById('option_img_detail');
	id.src = 'media/images/catalog/' + brand_code + '/150x150/' + item_number + '.jpg';
	
	// label display
	label_display_id=document.getElementById('label_display');
	label_display_id.style.display = '';
	label_id=document.getElementById('label_' + item_number);
	label_display_id.innerHTML=label_id.value;
		
}

function select_option(brand_code,item_number) {
	id = document.getElementById('option_img_detail');
	id.src = 'media/images/catalog/' + brand_code + '/300x300/' + item_number + '.jpg';
	
	option_display_id = document.getElementById('option_txt_display');
	option_display_id.style.display = '';
	
	id2 = document.getElementById('option_select');
	id2_count = id2.options.length-1;
	for(i=0; i<=id2_count; i++) {
		if (id2.options[i].value == item_number) {
			id2.selectedIndex = i;
			option_display_id.innerHTML=id2.options[i].innerHTML;
		}
	}
	
	// statuscode	
	document.getElementById('statuscode').value = document.getElementById('statuscode_' + item_number).value;
	statuscode = document.getElementById('statuscode_' + item_number).value;
					
	// label display
	label_display_id=document.getElementById('label_display');
	label_display_id.style.display = '';
	label_id=document.getElementById('label_' + item_number);
	label_display_id.innerHTML=label_id.value;
	
	// Description display
	long_description_display_id=document.getElementById('long_description_display');
	long_description_display_id.style.display = '';
	long_description_id=document.getElementById('long_description_' + item_number);
	long_description_display_id.innerHTML=long_description_id.value;
		
	// size display
	size_display_id=document.getElementById('size_display');
	size_display_id.style.display = '';
	size_id=document.getElementById('size_' + item_number);
	size_display_id.innerHTML=size_id.value;
	
	// Price display
	price_display_id=document.getElementById('price_display');
	price_display_id.style.display = '';
	price_id=document.getElementById('price_' + item_number);
	price_display_id.innerHTML=price_id.value;
	
	// instock display
	instock_display_id=document.getElementById('instock_display');
	instock_display_id.style.display = '';
	instock_id=document.getElementById('instock_' + item_number);
	instock_display_id.innerHTML=instock_id.value;
	
	// item number display
	item_number_display_id=document.getElementById('item_number_display');
	item_number_display_id.style.display = '';
	item_number_id=document.getElementById('item_number_' + item_number);
	item_number_display_id.innerHTML=item_number_id.value;
	
	
		
	// product backordered,inactive,discontinued	
	if (statuscode == 1011 || statuscode == 1020 || statuscode == 1022){toggle_hide('cart_add_id');}
	else {toggle_show('cart_add_id');} 	
}

// product detail - hover over option
function option_hover(brand_code,item_number) {
	id = document.getElementById('option_txt_display');
	id2 = document.getElementById('option_select');
	id.style.display = '';
	id2_count = id2.options.length-1;
	for(i=0; i<=id2_count; i++) {
		if (id2.options[i].value == item_number) {
			id.innerHTML = id2.options[i].innerHTML;
		}
	}
}

// product detail - hover off option
function option_hoveroff() {
	id = document.getElementById('option_txt_display');
	id2 = document.getElementById('option_select');
	if (id2.selectedIndex != 0) {	
		id.innerHTML = id2.options[id2.selectedIndex].innerHTML;
	}
	else {
		id.style.display = 'none';
	}
}
// show/hide rows, if still active, hide
function toggle_note_rows(row_base_id,row_show_id,rows)
{	
	show_row_id = row_base_id + "_" + row_show_id;
	obj_show = document.getElementById(show_row_id);
	for(i=0; i<=rows; i++) {
		row_id = row_base_id + "_" + i;
		obj = document.getElementById(row_id);
		if (row_id == show_row_id) {
			if (obj.style.display == '') {
				obj.style.display='none';
			}
			else {
				obj.style.display='';
			}
		}
		else {
			obj.style.display='none';
		}
	}
}
// show/hide rows
	function toggle_rows(row_base_id,row_show_id,rows)
	{	
		show_row_id = row_base_id + "_" + row_show_id;
		obj_show = document.getElementById(show_row_id);
		for(i=0; i<=rows; i++) {
			row_id = row_base_id + "_" + i;
			obj = document.getElementById(row_id);
			if (row_id == show_row_id) {
			 	obj.style.display='';
			}
			else {
				obj.style.display='none';
			}
		}
	}
	
// show/hide banner
	function toggle_banner(row_base_id,row_show_id,rows)
	{	
		show_row_id = row_base_id + "_product_" + row_show_id;
		obj_show = document.getElementById(show_row_id);
		for(i=0; i<=rows; i++) {
			row_id = row_base_id + "_product_" + i;
			obj = document.getElementById(row_id);
			row_id2 = row_base_id + "_button_" + i;
			obj2 = document.getElementById(row_id2);
			row_id3 = row_base_id + "_cover_" + i;
			obj3 = document.getElementById(row_id3);
			if (row_id == show_row_id) {
			 	obj.style.display='';
				obj2.className='tab_on';
				obj3.className='tab_cover_on';
				obj3.style.display='';
			}
			else {
				obj.style.display='none';
				obj2.className='tab';
				obj3.className='tab_cover';
				obj3.style.display='none';
			}
		}
	}

// switch the show/hide state of two IDs
function toggle_switch(show_id,hide_id) {
	document.getElementById(show_id).style.display = 'none';
	document.getElementById(hide_id).style.display = '';
}

// Simple show/hide
function toggle_simple(id)
{
	var obj = document.getElementById(id);
	if (obj.style.display == '')
	{
		obj.style.display='none';
	}
	else
	{
		obj.style.display='';
	}
}

function toggle_show(id)
{
	var obj = document.getElementById(id);
	obj.style.display='';
}

function toggle_hide(id)
{
	var obj = document.getElementById(id);
	obj.style.display='none';
}

function the_test(id)
{
	var obj = document.getElementById(id);
	alert(obj);
}


// ?
function toggle(id,status)
{
	var obj = document.getElementById(id);
	if (obj.style.display == '' && status == 'off')
	{
		obj.style.display='none';
	}
	else if (obj.style.display == 'none' && status == 'on')
	{
		obj.style.display='';
	}
}

// ?
function product_usage_select(prod_use_count) {	
	for(i=0; i<=prod_use_count; i++) {
		if (document.getElementById('product_usage_select').options[i].selected && document.getElementById('product_usage_select').options[i].value == i) {
			document.getElementById('prod_' + i).style.display = '';
		}
		else {
			document.getElementById('prod_' + i).style.display = 'none';
		}
	}
}

// Used on the contact us form
function check_subject() {
	subject_id = document.getElementById('destination');
	subject_value = subject_id.options[subject_id.selectedIndex].value;
	if (subject_value == '4') {
		alert("Please note: Return requests cannot be accepted via email at this time. \nPlease contact us by phone (listed above).");
		subject_id.selectedIndex = 0;
	}
}

// Clear form's default form value
function clearText(thefield){
	if (thefield.defaultValue==thefield.value) {
		thefield.value = ""
	}
}

// Rollovers
	function MM_preloadImages() { //v3.0
	  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
		var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
		if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
	}
	
	function MM_swapImgRestore() { //v3.0
	  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
	}
	
	function MM_findObj(n, d) { //v4.01
	  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
		d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
	  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
	  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
	  if(!x && d.getElementById) x=d.getElementById(n); return x;
	}
	
	function MM_swapImage() { //v3.0
	  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
	   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
	}
	

Global = {
	FixPng: function( img ){
		if(document.all){
			img.parentNode.style.width = img.offsetWidth;
			img.parentNode.style.height = img.offsetHeight;
			img.parentNode.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=scale src='"+ img.src +"')"
		} else {
			img.style.visibility = "visible"
		}
	}
}
/*========================================================*/
/* AJAX HTTP GET VIEW FUNCTION
/*========================================================*/

/* GET URL */
function view_url(form_id,get_view,view_type)
{
	var get_view_http_request = false;

	// branch for native XMLHttpRequest object
	if (window.XMLHttpRequest)
	{
		var get_view_http_request = new XMLHttpRequest();
		
		get_view_http_request.onreadystatechange = function() { get_view_http_response(get_view_http_request, form_id, view_type); };
		get_view_http_request.open("GET", get_view, true);
		get_view_http_request.send(null);
	}
	// branch for IE/Windows ActiveX version
	else if (window.ActiveXObject)
	{
		get_view_http_request = new ActiveXObject("Microsoft.XMLHTTP");

		if (get_view_http_request)
		{
			get_view_http_request.onreadystatechange = function() { get_view_http_response(get_view_http_request, form_id, view_type); };
			get_view_http_request.open("GET", get_view, true);
			get_view_http_request.send(null);
		}
	}
}

/* GET URL RESPONSE */
function get_view_http_response(get_view_http_request, form_id, view_type)
{
	// only if req shows "loaded"
	if (get_view_http_request.readyState == 4)
	{
		// only if "OK"
		if (get_view_http_request.status == 200)
		{
			var view_content = get_view_http_request.responseText;

			if ( view_type == 'text' )
				document.getElementById(form_id).innerText=view_content;
			else if ( view_type == 'text_area') 
					document.getElementById(form_id).value=view_content;	
			else if ( view_type == 'html' )
				document.getElementById(form_id).innerHTML=view_content;
		}
		else
		{
			/* Error Message */
			alert("There was a problem retrieving the data:\n" + get_view_http_response.statusText + get_view_http_request.responseText);
		}
	}
}

/* GET URL */
function action_url(post_get_msg)
{
	// branch for native XMLHttpRequest object
	if (window.XMLHttpRequest)
	{
		post_get_msg_http_request = new XMLHttpRequest();
		post_get_msg_http_request.onreadystatechange = post_get_msg_http_response;
		post_get_msg_http_request.open("GET", post_get_msg, true);
		post_get_msg_http_request.send(null);
	}
	// branch for IE/Windows ActiveX version
	else if (window.ActiveXObject)
	{
		post_get_msg_http_request = new ActiveXObject("Microsoft.XMLHTTP");
		if (post_get_msg_http_request)
		{
			post_get_msg_http_request.onreadystatechange = post_get_msg_http_response;
			post_get_msg_http_request.open("GET", post_get_msg, true);
			post_get_msg_http_request.send();
		}
	}
}

/* GET URL RESPONSE */
function post_get_msg_http_response()
{
	// only if req shows "loaded"
	if (post_get_msg_http_request.readyState == 4)
	{
		// only if "OK"
		if (post_get_msg_http_request.status == 200)
		{
			/* Set popup content with response */
			msg_pop_content = post_get_msg_http_request.responseText;
			document.getElementById("dialog-msg").innerHTML=msg_pop_content;
			/* Call popup */
			msg_pop(post_get_msg_http_response.responseText);
		}
		else
		{
			/* Error Message */
			alert("There was a problem retrieving the data:\n" + post_get_msg_http_response.statusText);
		}
	}
}

// Horizontal Scrollbar

var zxcDir,TO,zxcScrollObj,zxcScrollObjS,zxcSliderObj,zxcSliderObjS;
var zxcButWH,zxcSliderTravel,zxcScrollTravel,zxcRatio;
var zxcOffSetX,zxcOffSetY,zxcMseX,zxcMseY;

function zxcHInitialise(id){
 divobjs=document.getElementById(id).getElementsByTagName('DIV');
 for (i=0;i<divobjs.length;i++){
  if (divobjs[i].className=='outer'){
   displaywidth=divobjs[i].offsetWidth;
  }
  if (divobjs[i].className=='inner'){
   scrollobj=divobjs[i];
   scrollobjs=scrollobj.style;
   scrollobjs.position='absolute';
   scrollobjs.top='0px';
  }
  if (divobjs[i].className=='hbar'){
   bar=divobjs[i];
   bar.style.overflow='hidden';
   barwidth=bar.offsetWidth;
  }
  if (divobjs[i].className=='arrow_left'){
   divobjs[i].style.position='absolute';
   divobjs[i].style.overflow='hidden';
   divobjs[i].style.left='0px';
   divobjs[i].style.top='0px';
   divobjs[i].style.height=bar.offsetHeight+'px';
   divobjs[i].onmouseover=function(){ zxcLeftRight(this,+100); }
   divobjs[i].onmouseout=function(){ clearTimeout(TO); }
   divobjs[i].scroll=scrollobj;
  }
  if (divobjs[i].className=='arrow_right'){
   divobjs[i].style.position='absolute';
   divobjs[i].style.overflow='hidden';
   buttwh=divobjs[i].offsetWidth;
   divobjs[i].style.top='0px';
   divobjs[i].style.left=(barwidth-buttwh)+'px';
   divobjs[i].style.height=bar.offsetHeight+'px';
   divobjs[i].onmouseover=function(){ zxcLeftRight(this,-100); }
   divobjs[i].onmouseout=function(){ clearTimeout(TO); }
   divobjs[i].scroll=scrollobj;
  }
  if (divobjs[i].className=='slider'){
   sliderobj=divobjs[i];
   sliderobj.onmousedown=function(event){ zxcHMseDown(this,event); }
   sliderobjs=sliderobj.style;
   sliderobjs.position='absolute';
   sliderobjs.overflow='hidden';
   sliderobjs.top='0px';
   sliderobjs.left=buttwh+'px';
   sliderobjs.height=bar.offsetHeight+'px';
   sliderobj.scroll=scrollobj;
  }
 }
 scrollobj.hslider=sliderobj;
 scrollobj.hbuttwh=buttwh;
 scrollobj.hslidertravel=barwidth-buttwh*2-sliderobj.offsetWidth;
 scrollobj.hscrolltravel=scrollobj.offsetWidth-displaywidth;
 scrollobj.hratio=scrollobj.hslidertravel/scrollobj.hscrolltravel;
}

function zxcLeftRight(obj,dir){
 if (obj){
  zxcDir=dir;
  zxcHAssignGlobals(obj);
 }
 zxcScrollObjS.left=(parseInt(zxcScrollObjS.left)+zxcDir)+'px';
 zxcSliderObjS.left=(Math.abs(parseInt(zxcScrollObjS.left))*zxcRatio+zxcButWH)+'px';
 if (zxcDir<5){ zxcDir=zxcDir*1.05; }
 if ((zxcDir<0&&Math.abs(parseInt(zxcScrollObjS.left))<zxcScrollTravel)||(zxcDir>0&&parseInt(zxcScrollObjS.left)<0)){
  TO=setTimeout('zxcLeftRight()',500);
 }
 else {
  if (zxcDir>0){ zxcScrollObjS.left='0px'; }
  if (zxcDir<0){ zxcScrollObjS.left=-zxcScrollTravel+'px'; }
 }
}

function zxcHMseDown(obj,event){
 zxcHAssignGlobals(obj);
 document.onmousemove=function(event){zxcHDrag(event);}
 document.onmouseup=function(event){zxcHMseUp(event);}
 zxcHMse(event);
 zxcOffSetX=zxcMseX-zxcSliderObj.offsetLeft;
}

function zxcHDrag(event) {
 zxcHMse(event);
 zxcSliderObjS.left=(zxcMseX-zxcOffSetX)+'px';
 if (parseInt(zxcSliderObjS.left)<zxcButWH-2){ zxcSliderObjS.left=zxcButWH+'px'; }
 if (parseInt(zxcSliderObjS.left)>zxcSliderTravel+zxcButWH+2){ zxcSliderObjS.left=(zxcSliderTravel+zxcButWH)+'px'; }
 zxcScrollObjS.left=(-(parseInt(zxcSliderObjS.left)-zxcButWH)/zxcRatio)+'px';
}

function zxcHMseUp(event) {
 document.onmousemove=null;
 document.onmouseup=null;
 if (parseInt(zxcSliderObjS.left)<=zxcButWH){
  zxcSliderObjS.left=zxcButWH+'px';
  zxcScrollObjS.left='0px';
 }
 if (parseInt(zxcSliderObjS.left)>=zxcSliderTravel+zxcButWH){
  zxcSliderObjS.left=(zxcSliderTravel+zxcButWH)+'px';
  zxcScrollObjS.left=(-zxcScrollTravel)+'px';
 }
}

function zxcHAssignGlobals(obj){
 zxcScrollObjS=obj.scroll.style;
 zxcSliderObj=obj.scroll.hslider;
 zxcSliderObjS=obj.scroll.hslider.style;
 zxcScrollTravel=obj.scroll.hscrolltravel;
 zxcSliderTravel=obj.scroll.hslidertravel;
 zxcButWH=obj.scroll.hbuttwh;
 zxcRatio=obj.scroll.hratio;
}


function zxcHMse(event){
 if(!event) var event=window.event;
 if (document.all){ zxcMseX=event.clientX; }
 else {zxcMseX=event.pageX; }
}


function show_element(id)
{pr=document.getElementById(id);pr.style.display = '';}


function isValidDate(dateStr)
{
	var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
	var matchArray = dateStr.match(datePat); // is the format ok? 

	if (matchArray == null)
	{
		alert("Please enter date as either mm/dd/yyyy or mm-dd-yyyy.");
		return false;
	}

	month = matchArray[1]; // parse date into variables 
	day = matchArray[3]; 
	year = matchArray[5]; 

	if (month < 1 || month > 12)
	{
		// check month range
		alert("Month must be between 1 and 12.");
		return false;
	} 

	if (day < 1 || day > 31)
	{
		alert("Day must be between 1 and 31.");
		return false;
	}

	if ((month==4 || month==6 || month==9 || month==11) && day==31)
	{
		alert("Month "+month+" doesn't have 31 days!");
		return false;
	} 

	if (month == 2)
	{
		// check for february 29th
		var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
		if (day > 29 || (day==29 && !isleap))
		{
			alert("February " + year + " doesn't have " + day + " days!");
			return false; 
		}
	}
	return true; // date is valid 
}

