// If the ID is hidden, show it, else hide it.
function showID(id, fade) {
	element = document.getElementById(id);
	if (element) {
		if (fade) {
			if (element.style.display == 'none')
				Effect.Appear(id);
			else
				Effect.Fade(id);
		} else {
			if (element.style.display == 'none')
				element.style.display = '';
			else
				element.style.display = 'none';
		}
	}
}

// Saves a new cc for the customer.
function saveNewCC() {
	var cc_type, cc_first_name, cc_last_name, cc_num, cc_month, cc_year, cc_sec_code;
	var currentTime	= new Date();
	var month		= currentTime.getMonth() < 9 ? "0" + (currentTime.getMonth() + 1) : currentTime.getMonth() + 1;
	var year		= currentTime.getFullYear() - 2000;
	year			= year < 10 ? "0" + year : year;

	if (document.getElementById('cc_type_mc').checked)
		cc_type = document.getElementById('cc_type_mc').value;
	else if (document.getElementById('cc_type_vi').checked)
		cc_type = document.getElementById('cc_type_vi').value;
	else if (document.getElementById('cc_type_dc').checked)
		cc_type = document.getElementById('cc_type_dc').value;

	cc_first_name	= document.getElementById('cc_first_name').value;
	cc_last_name	= document.getElementById('cc_last_name').value;
	cc_num			= document.getElementById('cc_num').value;
	cc_month		= document.getElementById('cc_month').value;
	cc_year			= document.getElementById('cc_year').value;
	cc_sec_code		= document.getElementById('cc_sec_code').value;

    success = false;
	if (!cc_type)
		alert('Credit card type is required.');
	else if (!cc_first_name)
		alert('Credit card first name is required.');
	else if (!cc_last_name)
		alert('Credit card last name is required.');
	else if (!cc_num)
		alert('Credit card number is required.');
	else if (!cc_month)
		alert('Credit card expiration month is required.');
	else if (!cc_year)
		alert('Credit card expiration year is required.');
	else if (!cc_sec_code)
		alert('Credit card security code is required.');
	else if (cc_year < year || (cc_year == year && cc_month < month))
		alert('Card card expiration date is expired.');
	else {
		// show loading bar
		document.getElementById('cc_save_status').innerHTML = '<img src="../data/Image/site/load_bar1.gif"> <input type="button" id="cc_save_new" value="Save" onclick="saveNewCC()">';
		new Ajax.Request('common/functions/cc_save_new.php', {
			method:'get',
			parameters: {cc_type: cc_type, cc_first_name: cc_first_name, cc_last_name: cc_last_name, cc_num: cc_num, cc_month: cc_month, cc_year: cc_year, cc_sec_code: cc_sec_code},
			onSuccess: function(transport){
				var customer_id = transport.responseText;
				if (customer_id == 0)
					alert('Credit card is invalid.');
				else {
					document.getElementById('cc_type_mc').checked			= false;
					document.getElementById('cc_type_vi').checked			= false;
					document.getElementById('cc_type_dc').checked			= false;
					document.getElementById('cc_first_name').value			= '';
					document.getElementById('cc_last_name').value			= '';
					document.getElementById('cc_num').value					= '';
					document.getElementById('cc_month').value				= '';
					document.getElementById('cc_year').value				= '';
					document.getElementById('cc_sec_code').value			= '';
					document.getElementById('cc_add_table').style.display	= 'none';
					updateCClist(customer_id);
                    success = true;
				}
				document.getElementById('cc_save_status').innerHTML	= '<input type="button" id="cc_save_new" value="Save" onclick="saveNewCC()">';
			},
			onFailure: function(){ alert('An error occured, please try again.') }
		});
	}

    return success;
}

// Updates the customer's cc list.
function updateCClist() {
	new Ajax.Request('common/functions/cc_update_active.php', {
		method:'get',
		parameters: {},
		onSuccess: function(transport){
			var response = transport.responseText;
			document.getElementById('cc_active').innerHTML = response;
		},
		onFailure: function(){ alert('An error occured, please try again.') }
	});

	new Ajax.Request('common/functions/cc_update_expired.php', {
		method:'get',
		parameters: {},
		onSuccess: function(transport){
			var response = transport.responseText;
			document.getElementById('cc_expired').innerHTML = response;
		},
		onFailure: function(){ alert('An error occured, please try again.') }
	});
}

// Delete the cc.
function deleteCC(cc_id) {
	new Ajax.Request('common/functions/cc_delete.php', {
		method:'get',
		parameters: {cc_id: cc_id},
		onSuccess: function(transport){
			var customer_id = transport.responseText;
			updateCClist(customer_id);
		},
		onFailure: function(){ alert('An error occured, please try again.') }
	});
}

// Save the updated cc info.
function saveUpdateCC(cc_id) {
	var cc_month, cc_year, cc_sec_code, cc_full_year;
	cc_month		= document.getElementById('cc_month_new_'+cc_id).value;
	cc_year			= document.getElementById('cc_year_new_'+cc_id).value;
	cc_sec_code		= document.getElementById('cc_sec_code_new_'+cc_id).value;
	var currentTime = new Date();
	var month		= currentTime.getMonth() < 9 ? "0" + (currentTime.getMonth() + 1) : currentTime.getMonth() + 1;
	var year		= currentTime.getFullYear() - 2000;
	year			= year < 10 ? "0" + year : year;

	if (!cc_sec_code)
		alert('Credit card security code is required.');
	else if (cc_year < year || (cc_year == year && cc_month < month))
		alert('Card card expiration date is expired.');
	else {
		// show loading bar
		document.getElementById('cc_save_update_status_'+cc_id).innerHTML = ' <img src="../data/Image/site/load_bar1.gif">';
		new Ajax.Request('common/functions/cc_save_update.php', {
			method:'get',
			parameters: {cc_id: cc_id, cc_month: cc_month, cc_year: cc_year, cc_sec_code: cc_sec_code},
			onSuccess: function(transport){
				var customer_id = transport.responseText;
				document.getElementById('cc_save_update_status_'+cc_id).innerHTML	= '';
				document.getElementById('cc_month_new_'+cc_id).value				= '';
				document.getElementById('cc_year_new_'+cc_id).value					= '';
				document.getElementById('cc_sec_code_new_'+cc_id).value				= '';
				document.getElementById('btnUpdate'+cc_id).disabled					= '';
				showID('cc_exp_'+cc_id,false);
				showID('cc_exp_new_'+cc_id,false);
				showID('cc_security_new_'+cc_id,false);
				updateCClist(customer_id);
			},
			onFailure: function(){ alert('An error occured, please try again.') }
		});
	}
}

function check_cc() {
	new Ajax.Request('common/functions/check_cc.inc.php', {
		method:'get',
		parameters: {},
		onSuccess: function(transport){
			var response = transport.responseText;
			switch (response) {
				case('needed'): // tell user that a credit card is required to proceed.
					Effect.Appear('cc_required');
					// sellers - create new listing
					if (document.getElementById('btnContinue')) {
						document.getElementById('lbl_cc_required').innerHTML	= "<span style='margin-left:0; color:#ff0000; font-size:12px'>Credit card is required to sell on ComicConnect. Please update your <a href='https://www.comicconnect.com/load_page.php?type=custom&page=profile&bgcolor=ffffff'>Profile</a> to continue. <input type='submit' name='continue' id='btnContinue' value='Continue' disabled></span>";
						document.getElementById('btnContinue').disabled			= true;
					// sellers - manual bulk upload
					} else if (document.getElementById('btnUpdate')) {
						document.getElementById('lbl_cc_required').innerHTML	= "<span style='margin-left:-125px; color:#ff0000; font-size:12px; white-space:nowrap'>Credit card is required to sell on ComicConnect. Please update your <a href='https://www.comicconnect.com/load_page.php?type=custom&page=profile&bgcolor=ffffff'>Profile</a> to continue. <input type='button' name='update' id='btnUpdate' value='Update' disabled></span>";
						document.getElementById('btnUpdate').disabled			= true;
					// sellers - auto bulk upload step 2 of 3 (matching titles)
					} else if (document.getElementById('btnContinueBulk')) {
						document.getElementById('lbl_cc_required').innerHTML	= "<span style='margin-left:40px; color:#ff0000; font-size:12px; white-space:nowrap'>Credit card is required to sell - please update your <a href='https://www.comicconnect.com/load_page.php?type=custom&page=profile&bgcolor=ffffff'>Profile</a> to continue. <input type='button' name='continue' id='btnContinueBulk' value='Continue' disabled></span>";
						document.getElementById('btnUpdate').disabled			= true;
					}
					// sellers - auto bulk upload step 2 of 3
					if (document.getElementById('btnCompleteBulk'))
						document.getElementById('btnCompleteBulk').disabled		= true;

					document.getElementById('cc_exists').value = 'false';
					document.getElementById('logged_in').value = 'true';
					break;
				case('exists'):
					document.getElementById('cc_exists').value = 'true';
					document.getElementById('logged_in').value = 'true';
					break;
				case('not_logged_in'):
					document.getElementById('cc_exists').value = 'false';
					document.getElementById('logged_in').value = 'false';
					break;
			}
		},
		onFailure: function(){ alert('An error occured, please try again.') }
	});
}

function get_event_auction_values(event_auction_id, field_id) {
	if (field_id.toString().indexOf('_') == -1)
		var num = field_id.toString();
	else {
		var arr = field_id.split('_');
		var num = arr[0];
	}
	document.getElementById(num+'_loadingPrices').style.display = '';
	new Ajax.Request('common/functions/get_event_auction_values.inc.php', {
		method:'get',
		parameters: {event_auction_id: event_auction_id, fid: num},
		onSuccess: function(transport){
			var resp			= transport.responseText.split('|||||');
			// resp[0] contains the same value as field_id -- this is req for the Callbackhandler func in ajax_queue_init.js
			response			= resp[1].split('|');
			min_start_price		= response[0];
			max_start_price		= response[1];
			allow_reserve_price	= response[2];
			allow_buy_price		= response[3];

			document.getElementById(num+'_auctionPrice').style.display			= 'block';
			document.getElementById(num+'_auctionPrice').style.margin			= '3px 0 0 97px';
			document.getElementById(num+'_auctionDurationSpan').style.display	= 'none';

			if (min_start_price == max_start_price) {
				document.getElementById(num+'_bookStartingPrice').value				= min_start_price;
				document.getElementById(num+'_bookStartingPrice').readOnly			= true;
				document.getElementById(num+'_bookStartingPrice').style.color		= '#000000';
				document.getElementById(num+'_bookStartingPrice').style.background	= '#dddddd';
			} else {
				document.getElementById(num+'_bookStartingPrice').readOnly			= false;
				document.getElementById(num+'_bookStartingPrice').style.color		= '#000000';
				document.getElementById(num+'_bookStartingPrice').style.background	= '#fbfdca';
			}
			if (allow_reserve_price == 0) {
				document.getElementById(num+'_bookReservePrice').value				= '';
				document.getElementById(num+'_bookReservePrice').readOnly			= true;
				document.getElementById(num+'_bookReservePrice').style.color		= '#cccccc';
				document.getElementById(num+'_bookReservePrice').style.background	= '#dddddd';
			} else {
				document.getElementById(num+'_bookReservePrice').readOnly			= false;
				document.getElementById(num+'_bookReservePrice').style.color		= '#000000';
				document.getElementById(num+'_bookReservePrice').style.background	= '#ffffff';
			}
			if (allow_buy_price == 0) {
				document.getElementById(num+'_bookBuyNowPrice').value				= '';
				document.getElementById(num+'_bookBuyNowPrice').readOnly			= true;
				document.getElementById(num+'_bookBuyNowPrice').style.color			= '#cccccc';
				document.getElementById(num+'_bookBuyNowPrice').style.background	= '#dddddd';
			} else {
				document.getElementById(num+'_bookBuyNowPrice').readOnly			= false;
				document.getElementById(num+'_bookBuyNowPrice').style.color			= '#000000';
				document.getElementById(num+'_bookBuyNowPrice').style.background	= '#ffffff';
			}
			document.getElementById(num+'_loadingPrices').style.display = 'none';
		},
		onFailure: function(){ alert('An error occured, please try again.'); document.getElementById(num+'_loadingPrices').style.display = 'none'; }
	});
}

// return true if enter key is pressed
function checkEnter(e) {			//e is event object passed from function invocation
	var characterCode;				//literal character code will be stored in this variable
	if (e && e.which) {				//if which property of event object is supported (NN4)
		e = e;
		characterCode = e.which;	//character code is contained in NN4's which property
	} else {
		e = event;
		characterCode = e.keyCode;	//character code is contained in IE's keyCode property
	}
	return characterCode == 13 ? true : false;	//if generated character code is equal to ascii 13 (if enter key)
}
