var focusHandled = true;
var focusExpdateHandled = true; 

function submitForm() {
	try {
		scroll(0,0);
	} catch(e) {alert(e);}
	var packageid = null;
	var i = 0;
	document.getElementById('package_error').style.display = 'none';
	while (null != document.getElementById('packageradio_' + i)) {
		if (document.getElementById('packageradio_' + i).checked) {
			packageid = document.getElementById('packageradio_' + i).value;
			break;
		}
		i++;
	}
	var packageError = false;
	if (null == packageid || packageid == '') {
		document.getElementById('package_error').style.display = '';
		packageError = true;
	} else {
		document.getElementById('selected_package').value = packageid;
	}
	
	if (null != document.getElementById('cc_ccnumber')) {
		var ccnumber1 = document.getElementById('cc_ccnumber1').value;
		var ccnumber2 = document.getElementById('cc_ccnumber2').value;
		var ccnumber3 = document.getElementById('cc_ccnumber3').value;
		var ccnumber4 = document.getElementById('cc_ccnumber4').value;
		document.getElementById('cc_ccnumber').value = ccnumber1 + ccnumber2 + ccnumber3 + ccnumber4;
	}
	var valid = validateSave() && !packageError; 
	if (valid) {
		document.getElementById('step2_form').submit();
	} else if (null != document.getElementById('step3')) {
		showStep2();
	}
	if (!valid)
		document.getElementById('save_failed').style.display = '';
}

function submitMydata() {
	try {
		scroll(0,0);
	} catch(e) {alert(e);}
	if (document.getElementById('newcard').value == 'true') {
		if (null != document.getElementById('cc_ccnumber')) {
			var ccnumber1 = document.getElementById('cc_ccnumber1').value;
			var ccnumber2 = document.getElementById('cc_ccnumber2').value;
			var ccnumber3 = document.getElementById('cc_ccnumber3').value;
			var ccnumber4 = document.getElementById('cc_ccnumber4').value;
			document.getElementById('cc_ccnumber').value = ccnumber1 + ccnumber2 + ccnumber3 + ccnumber4;
		}
		var valid = validateSave();
		if (valid)
			document.getElementById('mydata_form').submit();
		else
			document.getElementById('save_failed').style.display = '';
	} else {
		document.getElementById('mydata_form').submit();
	}
}

function submitNewcard() {
	try {
		scroll(0,0);
	} catch(e) {alert(e);}
	if (null != document.getElementById('cc_ccnumber')) {
		var ccnumber1 = document.getElementById('cc_ccnumber1').value;
		var ccnumber2 = document.getElementById('cc_ccnumber2').value;
		var ccnumber3 = document.getElementById('cc_ccnumber3').value;
		var ccnumber4 = document.getElementById('cc_ccnumber4').value;
		document.getElementById('cc_ccnumber').value = ccnumber1 + ccnumber2 + ccnumber3 + ccnumber4;
	}
	var valid = validateSave();
	if (valid)
		document.getElementById('newcard_form').submit();
	else
		document.getElementById('save_failed').style.display = '';
}

function validateSave() {
	document.getElementById('empty_cc_cardholder').style.display = 'none';
	document.getElementById('cc_cardholder').className = document.getElementById('cc_cardholder').className.replace(' ferror', '');
	document.getElementById('empty_cc_ccnumber').style.display = 'none';
	document.getElementById('invalid_cc_ccnumber').style.display = 'none';
	document.getElementById('cc_ccnumber1').className = document.getElementById('cc_ccnumber1').className.replace(' ferror', '');
	document.getElementById('cc_ccnumber2').className = document.getElementById('cc_ccnumber2').className.replace(' ferror', '');
	document.getElementById('cc_ccnumber3').className = document.getElementById('cc_ccnumber3').className.replace(' ferror', '');
	document.getElementById('cc_ccnumber4').className = document.getElementById('cc_ccnumber4').className.replace(' ferror', '');
	document.getElementById('expired_cc_expdate').style.display = 'none';
	document.getElementById('expmonth').className = document.getElementById('expmonth').className.replace(' ferror', '');
	document.getElementById('expyear').className = document.getElementById('expyear').className.replace(' ferror', '');
	document.getElementById('empty_cc_cscnumber').style.display = 'none';
	document.getElementById('invalid_cc_cscnumber').style.display = 'none';
	document.getElementById('cc_cscnumber').className = document.getElementById('cc_cscnumber').className.replace(' ferror', '');

	var cardholder = document.getElementById('cc_cardholder').value;
	var cscnumber = document.getElementById('cc_cscnumber').value;
	var cscdigitsonly = cscnumber.replace(/[^0-9]/g, '');

	var cardholder_valid = true;
	var csc_valid = true;
	var expdate_valid = true;
	var card_valid = true;
	var cardtype = -1;
	
	if (cardholder == '') {
		document.getElementById('empty_cc_cardholder').style.display = '';
		document.getElementById('cc_cardholder').className += ' ferror';
		cardholder_valid = false;
	}
	
	for (var i=0; i<5; i++) {
		if (document.getElementById('radio_' + i) != null && document.getElementById('radio_'+i).checked) {
			cardtype = i;
			break;
		}
	}
	if (cardtype == -1)
		document.getElementById('empty_cc_cardtype').style.display = '';

	expdate_valid = validateExpdate();
	
	// check cscnumber length
	if (cscnumber == '')
		csc_valid = false;
	if (cardtype == 2) {
		if (cscdigitsonly.length != 4)
			csc_valid = false;
	} else if (cardtype == 0 || cardtype == 1 || cardtype == 3) {
		if (cscdigitsonly.length != 3)
			csc_valid = false;
	}
	if (!csc_valid) {
		document.getElementById('invalid_cc_cscnumber').style.display = '';
		document.getElementById('cc_cscnumber').className += ' ferror';
	}

	card_valid = validateCardNumber();
	return cardholder_valid && csc_valid && expdate_valid && card_valid;
}

function validateExpdate() {
	document.getElementById('expired_cc_expdate').style.display = 'none';
	document.getElementById('expmonth').className = document.getElementById('expmonth').className.replace(' ferror', '');
	document.getElementById('expyear').className = document.getElementById('expyear').className.replace(' ferror', '');
	
	var expdate_valid = true;
	var exp_month = parseInt(document.getElementById('expmonth').value);
	var exp_year = parseInt(document.getElementById('expyear').value);
	var currmonth = new Date().getMonth() + 1;
	var curryear = new Date().getFullYear();
	if (exp_year < curryear || (curryear == exp_year && exp_month < currmonth)) {
		document.getElementById('expired_cc_expdate').style.display = '';
		document.getElementById('expmonth').className += ' ferror';
		document.getElementById('expyear').className += ' ferror';
		expdate_valid = false;
	} else if (exp_year > curryear + 10 || ((curryear + 10) == exp_year && exp_month > currmonth)) {
		document.getElementById('expmonth').className += ' ferror';
		document.getElementById('expyear').className += ' ferror';
		expdate_valid = false;
	}
	return expdate_valid;
}

function validateCardNumber() {
	document.getElementById('invalid_cc_ccnumber').style.display = 'none';
	document.getElementById('empty_cc_ccnumber').style.display = 'none';
	document.getElementById('cc_ccnumber1').className = document.getElementById('cc_ccnumber1').className.replace(' ferror', '');
	document.getElementById('cc_ccnumber2').className = document.getElementById('cc_ccnumber2').className.replace(' ferror', '');
	document.getElementById('cc_ccnumber3').className = document.getElementById('cc_ccnumber3').className.replace(' ferror', '');
	document.getElementById('cc_ccnumber4').className = document.getElementById('cc_ccnumber4').className.replace(' ferror', '');
//	document.getElementById('ok_cardnumber').style.display = 'none';

	var ccnumber1 = document.getElementById('cc_ccnumber1').value;
	var ccnumber2 = document.getElementById('cc_ccnumber2').value;
	var ccnumber3 = document.getElementById('cc_ccnumber3').value;
	var ccnumber4 = document.getElementById('cc_ccnumber4').value;
	var cardnumber = ccnumber1 + ccnumber2 + ccnumber3 + ccnumber4;
	var cardtype = -1;
	var digitsonly = cardnumber.replace(/[^0-9]/g, '');
	for (var i=0; i<5; i++) {
		if (document.getElementById('radio_' + i) != null && document.getElementById('radio_'+i).checked) {
			cardtype = i;
			break;
		}
	}

	var valid = true;
	if (digitsonly == '')
		valid = false;
	if (cardtype == -1)
		valid = false;
	
	// check ccnumber length
	if (cardtype == 0) {
		if (digitsonly.length != 16 || (digitsonly.indexOf('51') != 0 && digitsonly.indexOf('52') != 0 
				&& digitsonly.indexOf('53') != 0 && digitsonly.indexOf('54') != 0 && digitsonly.indexOf('55') != 0))
			valid = false;
	} else if (cardtype == 1) {
		if ((digitsonly.length != 16 && digitsonly.length != 13) || digitsonly.indexOf('4') != 0)
			valid = false;
	} else if (cardtype == 2) {
		if (digitsonly.length != 15 || (digitsonly.indexOf('34') != 0 && digitsonly.indexOf('37') != 0))
			valid = false;
	} else if (cardtype == 3) {
		if (digitsonly.length != 14 || (digitsonly.indexOf('36') != 0 && digitsonly.indexOf('38') != 0 
				&& digitsonly.indexOf('300') != 0 && digitsonly.indexOf('301') != 0 && digitsonly.indexOf('302') != 0
				&& digitsonly.indexOf('303') != 0 && digitsonly.indexOf('304') != 0 && digitsonly.indexOf('305') != 0))
			valid = false;
	}

	valid = valid && validateCard(digitsonly); 
	if (valid) {
		//document.getElementById('ok_cardnumber').style.display = '';
	} else {
		document.getElementById('invalid_cc_ccnumber').style.display = '';
		document.getElementById('cc_ccnumber1').className += ' ferror';
		document.getElementById('cc_ccnumber2').className += ' ferror';
		document.getElementById('cc_ccnumber3').className += ' ferror';
		document.getElementById('cc_ccnumber4').className += ' ferror';
	}
	return valid;
}

// Luhn algorythm
function validateCard(cardnumber) {
	var sum = 0;
	var digit = 0;
	var addend = 0;
	var timesTwo = false;
	
	var digitsonly = cardnumber.replace(/[^0-9]/g, '');
	for (var i = digitsonly.length - 1; i >= 0; i--) {
		digit = parseInt(digitsonly.substring(i, i + 1));
		if (timesTwo) {
			addend = digit * 2;
			if (addend > 9) {
				addend -= 9;
			}
		} else {
			addend = digit;
		}
		sum += addend;
		timesTwo = !timesTwo;
	}

	var modulus = sum % 10;
	return modulus == 0;
}

var keyUpHandled = false;

function checkInput(obj,event){
	var keycode = event ? event.keyCode : window;
	if(window.event) // IE
		keycode = event.keyCode;
	else if(event.which) // Netscape/Firefox/Opera
		keycode = event.which;

	event = (event) ? event : (window.event) ? window.event : "";
	var shift = false;
	var control = false;
	if (event && event.modifiers) {
		shift = event.modifiers & Event.SHIFT_MASK;
		control = event.modifiers & Event.CONTROL_MASK;
	} else if (event) {
		shift = event.shiftKey;
		control = event.ctrlKey;
	}

	var result = false;
	keyUpHandled = false;
	
	if (keycode < 47) {
		result = true;
	}
	if (((keycode >= 96 && keycode <= 105) ||
		(keycode >= 48 && keycode <= 57))) {
		keyUpHandled = true; // only for numbers
		result = true;
	}
	if (result && shift && keycode > 48) {
		result = false;
	}
	if (control) {
		result = true;
	}
	return result;
}

function handleProceed(index,obj,event) {
	if (!keyUpHandled) {
		return;
	}
	var keycode = event ? event.keyCode : window;
	if(window.event) // IE
		keycode = event.keyCode;
	else if(event.which) // Netscape/Firefox/Opera
		keycode = event.which;
	if (keycode < 47)
		return;

	event = (event) ? event : (window.event) ? window.event : "";
	var shift = false;
	var control = false;
	if (event && event.modifiers) {
		shift = event.modifiers & Event.SHIFT_MASK;
		control = event.modifiers & Event.CONTROL_MASK;
	} else if (event) {
		shift = event.shiftKey;
		control = event.ctrlKey;
	}
	if (control || shift) {
		return;
	}
	if (obj.value.length == obj.getAttribute('maxLength')) {
		var nextinput = document.getElementById('cc_ccnumber' + (index+1));
		if (null != nextinput && nextinput.style.display != 'none') {
			focusHandled = false;
			document.getElementById('cc_ccnumber' + (index+1)).focus();
		}
	}
}

function handleFocusLost() {
	if (focusHandled)
		validateCardNumber();
	focusHandled = true;
}

function handleExpdateFocusLost() {
	focusExpdateHandled = true;
	setTimeout("expdateCheck()", 200);
}

function handleExpdateFocusGained() {
	focusExpdateHandled = false;
}

function expdateCheck() {
	if (focusExpdateHandled)
		validateExpdate();
	else
		focusExpdateHandled = true;
}

function fillWithSpace(value,maxlength) {
	var result = value;
	while (result.length < maxlength)
		result += ' ';
	return result;
}

function handleRadio(ccnumber, cscnumber) {
	if (null == document.getElementById('cc_ccnumber'))
		return;
	var type = -1;
	for (var i=0; i<5; i++) {
		if (null != document.getElementById('radio_'+i) && document.getElementById('radio_'+i).checked == true) {
			type = i;
			break;
		}
	}
	if (type == -1) // type not selected
		return;
	document.getElementById('empty_cc_cardtype').style.display = 'none';

	document.getElementById('cc_ccnumber').value = '';
	var cscnumberField = document.getElementById('cc_cscnumber');
	cscnumberField.setAttribute('maxLength', '3');
	if (cscnumber != '') {
		cscnumberField.value = cscnumber;
	}
	var ccnumber1 = document.getElementById('cc_ccnumber1');
	var ccnumber2 = document.getElementById('cc_ccnumber2');
	var ccnumber3 = document.getElementById('cc_ccnumber3');
	var ccnumber4 = document.getElementById('cc_ccnumber4');
	var dash1 = document.getElementById('dash1');
	var dash2 = document.getElementById('dash2');
	var dash3 = document.getElementById('dash3');
	if (ccnumber == '') {
		//ccnumber = fillWithSpace(ccnumber1.value,4) + fillWithSpace(ccnumber2.value,4) + fillWithSpace(ccnumber3.value,4) + fillWithSpace(ccnumber4.value,4);
		ccnumber = ccnumber1.value + ccnumber2.value + ccnumber3.value + ccnumber4.value;
	}
	if (null != document.getElementById('csc_3digits')) {
		document.getElementById('csc_3digits').style.display = '';
		document.getElementById('csc_4digits').style.display = 'none';
	}
	
	if (type == 0) {
		document.getElementById('cc_cardtype').value = '0';
		ccnumber1.style.display = 'inline';
		ccnumber1.style.width = '35px';
		ccnumber2.style.display = 'inline';
		ccnumber2.style.width = '35px';
		ccnumber3.style.display = 'inline';
		ccnumber3.style.width = '35px';
		ccnumber4.style.display = 'inline';
		ccnumber4.style.width = '35px';
		ccnumber1.setAttribute('maxLength', '4');
		ccnumber2.setAttribute('maxLength', '4');
		ccnumber3.setAttribute('maxLength', '4');
		ccnumber4.setAttribute('maxLength', '4');
		dash1.style.display = 'inline';
		dash2.style.display = 'inline';
		dash3.style.display = 'inline';
		ccnumber1.value = ccnumber.substring(0, 4).replace(/\ /g, '');
		ccnumber2.value = ccnumber.substring(4, 8).replace(/\ /g, '');
		ccnumber3.value = ccnumber.substring(8, 12).replace(/\ /g, '');
		ccnumber4.value = ccnumber.substring(12, 16).replace(/\ /g, '');
	} else if (type == 1) {
		document.getElementById('cc_cardtype').value = '1';
		ccnumber1.style.display = 'inline';
		ccnumber1.style.width = '35px';
		ccnumber2.style.display = 'inline';
		ccnumber2.style.width = '35px';
		ccnumber3.style.display = 'inline';
		ccnumber3.style.width = '35px';
		ccnumber4.style.display = 'inline';
		ccnumber4.style.width = '35px';
		ccnumber1.setAttribute('maxLength', '4');
		ccnumber2.setAttribute('maxLength', '4');
		ccnumber3.setAttribute('maxLength', '4');
		ccnumber4.setAttribute('maxLength', '4');
		dash1.style.display = 'inline';
		dash2.style.display = 'inline';
		dash3.style.display = 'inline';
		ccnumber1.value = ccnumber.substring(0, 4).replace(/\ /g, '');
		ccnumber2.value = ccnumber.substring(4, 8).replace(/\ /g, '');
		ccnumber3.value = ccnumber.substring(8, 12).replace(/\ /g, '');
		ccnumber4.value = ccnumber.substring(12).replace(/\ /g, '');
	} else if (type == 2) {
		document.getElementById('cc_cardtype').value = '2';
		ccnumber1.style.display = 'inline';
		ccnumber1.style.width = '35px';
		ccnumber2.style.display = 'inline';
		ccnumber2.style.width = '50px';
		ccnumber3.style.display = 'inline';
		ccnumber3.style.width = '45px';
		ccnumber3.style.display = 'inline';
		ccnumber4.style.display = 'none';
		ccnumber1.setAttribute('maxLength', '4');
		ccnumber2.setAttribute('maxLength', '6');
		ccnumber3.setAttribute('maxLength', '5');
		dash1.style.display = 'inline';
		dash2.style.display = 'inline';
		dash3.style.display = 'none';
		cscnumberField.setAttribute('maxLength', '4');
		if (null != document.getElementById('csc_3digits')) {
			document.getElementById('csc_3digits').style.display = 'none';
			document.getElementById('csc_4digits').style.display = '';
		}
		ccnumber1.value = ccnumber.substring(0, 4).replace(/\ /g, '');
		ccnumber2.value = ccnumber.substring(4, 10).replace(/\ /g, '');
		ccnumber3.value = ccnumber.substring(10, 15).replace(/\ /g, '');
		ccnumber4.value = '';
	} else if (type == 3) {
		document.getElementById('cc_cardtype').value = '3';
		ccnumber1.style.display = 'inline';
		ccnumber1.style.width = '35px';
		ccnumber2.style.display = 'inline';
		ccnumber2.style.width = '50px';
		ccnumber3.style.display = 'inline';
		ccnumber3.style.width = '35px';
		ccnumber4.style.display = 'none';
		ccnumber1.setAttribute('maxLength', '4');
		ccnumber2.setAttribute('maxLength', '6');
		ccnumber3.setAttribute('maxLength', '4');
		dash1.style.display = 'inline';
		dash2.style.display = 'inline';
		dash3.style.display = 'none';
		ccnumber1.value = ccnumber.substring(0, 4).replace(/\ /g, '');
		ccnumber2.value = ccnumber.substring(4, 10).replace(/\ /g, '');
		ccnumber3.value = ccnumber.substring(10, 14).replace(/\ /g, '');
		ccnumber4.value = '';
	} else if (type == 4) {
		document.getElementById('cc_cardtype').value = '4';
		ccnumber1.style.display = 'inline';
		ccnumber1.style.width = '140px';
		ccnumber2.style.display = 'none';
		ccnumber3.style.display = 'none';
		ccnumber4.style.display = 'none';
		ccnumber1.setAttribute('maxLength', '30');
		dash1.style.display = 'none';
		dash2.style.display = 'none';
		dash3.style.display = 'none';
		ccnumber1.value = ccnumber.replace(/\ /g, '');;
		ccnumber2.value = '';
		ccnumber3.value = '';
		ccnumber4.value = '';
	}		
}

function checkCardType() {
	var cardtype = -1;
	for (var i=0; i<5; i++) {
		if (document.getElementById('radio_' + i) != null && document.getElementById('radio_'+i).checked) {
			cardtype = i;
			break;
		}
	}
	if (cardtype == -1) {
		document.getElementById('empty_cc_cardtype').style.display = '';
	} else {
		document.getElementById('empty_cc_cardtype').style.display = 'none';
	}
}

function handleBillingAddress(same) {
	document.getElementById('regcountry').disabled = same;
	document.getElementById('zipcode').disabled = same;
	document.getElementById('city').disabled = same;
	document.getElementById('billing_fulladdress').disabled = same;
	
	if (same) {
		document.getElementById('regcountry').value = document.getElementById('address_regcountry').value;
		document.getElementById('zipcode').value = document.getElementById('address_zipcode').value;
		document.getElementById('city').value = document.getElementById('address_city').value;
		document.getElementById('billing_fulladdress').value = document.getElementById('fulladdress').value;
	}
}

function checkEnter(e, formId) {
	var characterCode;
	if(e && e.which) {
		characterCode = e.which;
	} else {
		e = event;
		characterCode = e.keyCode;
	}

	if(characterCode == 13) {
		document.getElementById(formId).submit();
		return false;
	} else {
		return true;
	}
}

function showStep2() {
	document.getElementById('memberreg5').id = 'memberreg4';
	document.getElementById('step3').id = 'step2';
	document.getElementById('step2').name = 'step2';
	document.getElementById("div_step2").style.display = '';
	document.getElementById("div_step3").style.display = 'none';
}

function deleteCard() {
	if (null == document.getElementById('confirm_deletecard'))
		return false;
	var confirmText = document.getElementById('confirm_deletecard').value;
	if (!confirm(confirmText))
		return false;
	enableCCFields();
	for (var i=0; i<5; i++) {
		if (null != document.getElementById('radio_'+i) && document.getElementById('radio_'+i).checked == true) {
			document.getElementById('radio_'+i).checked = false;
		}
	}
	if (null != document.getElementById('cc_cardtype')) {
		document.getElementById('cc_cardtype').value = '-1';
	}
}

function enableCCFields() {
	if (null != document.getElementById('radio_0'))
		document.getElementById('radio_0').disabled = false;
	if (null != document.getElementById('radio_1'))
		document.getElementById('radio_1').disabled = false;
	if (null != document.getElementById('radio_2'))
		document.getElementById('radio_2').disabled = false;
	if (null != document.getElementById('radio_3'))
		document.getElementById('radio_3').disabled = false;
	if (null != document.getElementById('radio_4'))
		document.getElementById('radio_4').disabled = false;

	document.getElementById('cc_cardholder').value = '';
	document.getElementById('cc_cardholder').disabled = false;
	document.getElementById('cc_ccnumber').value = '';
	document.getElementById('cc_ccnumber1').value = '';
	document.getElementById('cc_ccnumber1').disabled = false;
	document.getElementById('cc_ccnumber2').value = '';
	document.getElementById('cc_ccnumber2').disabled = false;
	document.getElementById('cc_ccnumber3').value = '';
	document.getElementById('cc_ccnumber3').disabled = false;
	document.getElementById('cc_ccnumber4').value = '';
	document.getElementById('cc_ccnumber4').disabled = false;
	document.getElementById('cc_cscnumber').disabled = false;
	document.getElementById('cc_cscnumber').value = '';
	document.getElementById('expmonth').disabled = false;
	document.getElementById('expmonth').selectedIndex = 0;
	document.getElementById('expyear').disabled = false;
	document.getElementById('expyear').selectedIndex = 0;

	if (null != document.getElementById('cardchange_container'))
		document.getElementById('cardchange_container').style.display = 'none';
	
	if (null != document.getElementById('newcard'))
		document.getElementById('newcard').value = 'true';
	
	handleRadio('','');
}

function removeMessage(id, localizationTest) {
	var obj = document.getElementById(id);
	if (obj && !localizationTest)
		obj.style.display = 'none';
}

function copyAddressField(field) {
	try {
		if (document.getElementById('address1').checked) {
			if (field == 'fulladdress')
				document.getElementById('billing_fulladdress').value = document.getElementById('fulladdress').value;
			else
				document.getElementById(field).value = document.getElementById('address_'+field).value;
		}
	} catch (e){};
}

function sendPin(memberid) {
	if (null == document.getElementById('confirm_sendpin'))
		return;
	var confirmText = document.getElementById('confirm_sendpin').value;
	if (!confirm(confirmText))
		return;
	document.getElementById('sendpin_success').style.display = 'none';
	document.getElementById('sendpin_error').style.display = 'none';
	var xml = executeSyncronRequest('/secure/Ajax/membercenter/SendPin?memberid=' + memberid);
	var error = true;
	if (null != xml) {
		var tags = xml.getElementsByTagName('result');
		if (tags.length > 0) {
			error = tags[0].getAttribute('error').toLowerCase() == 'true';
		}
	}
	scroll(0, 0);
	if (error)
		document.getElementById('sendpin_error').style.display = '';
	else
		document.getElementById('sendpin_success').style.display = '';
}

var timeoutIndex = null;
var hide = true;

function setHide(value) {
	hide = value;
}

function divMouseOut(obj, event) {
	var target = null;
	if (event.toElement) {
		target = event.toElement;
	} else if (event.relatedTarget) {				
		target = event.relatedTarget;
	}
	if (!isChildOf(obj, target) && obj != target) {
		setHide(true);
		hideTooltip();
	}
}

function isChildOf(parent, child) {
	if (child != null) {
		while (child.parentNode) {
			child = child.parentNode;
			if (child == parent)
				return true;
		}
	}
	return false;
}


function showTooltip() {
	if (null != timeoutIndex)
		clearTimeout(timeoutIndex);
	document.getElementById('warning_tooltip').style.display = '';
}

function hideTooltip() {
	if (hide) {
		document.getElementById('warning_tooltip').style.display = 'none';
	}
}

function hideTooltipWithDelay() {
	timeoutIndex = setTimeout("hideTooltip()", 1300);
	return;
}

function showCurrencySelector() {
	document.getElementById('member_currency').style.display = 'none';
	document.getElementById('currency_selector').style.display = '';
}

function cancelCurrencySelector() {
	document.getElementById('member_currency').style.display = '';
	document.getElementById('currency_selector').style.display = 'none';
	document.getElementById('currency_select').selectedIndex = 0;
	document.getElementById('new_currency').value = '';
}

function handleNewCurrencyChange() {
	document.getElementById('new_currency').value = document.getElementById('currency_select').value;
}

function handleTestimonial(obj, charLimit) {
	var indicator = document.getElementById('chars_left');
	if (null == obj || null == indicator || null == charLimit)
		return;

	var charLeft = charLimit - obj.value.length;
	indicator.value = charLeft;
	if (charLeft < 0) {
		if (-1 == indicator.className.indexOf(" ferror"))
			indicator.className += " ferror";
	} else {
		if (-1 != indicator.className.indexOf(" ferror"))
			indicator.className =  indicator.className.replace(" ferror", "");
	}	
}

