//
// Enviroment identificator
//
var localIsDOM = document.getElementById?true:false;
var localIsJava = navigator.javaEnabled();
var localIsStrict = document.compatMode=='CSS1Compat';
var localPlatform = navigator.platform;
var localVersion = "0";
var localBrowser = "";
if(window.opera && localIsDOM) {
	localBrowser = "Opera";
	if(navigator.userAgent.search(/^.*Opera.([\d.]+).*$/) != -1)
		localVersion = navigator.userAgent.replace(/^.*Opera.([\d.]+).*$/, "$1");
	else if(window.print)
		localVersion = "6";
	else
		localVersion = "5";
} else if(document.all && document.all.item)
	localBrowser = 'MSIE';
if(navigator.appName=="Netscape") {
	if(!localIsDOM) {
		localBrowser = 'Netscape';
		localVersion = navigator.userAgent.replace(/^.*Mozilla.([\d.]+).*$/, "$1");
		if(localVersion != '')
			localVersion = "4";
	} else if(navigator.userAgent.indexOf("Safari") >= 0)
		localBrowser = 'Safari';
	else if(navigator.userAgent.indexOf("Netscape") >= 0)
		localBrowser = 'Netscape';
	else if(navigator.userAgent.indexOf("Firefox") >= 0)
		localBrowser = 'Firefox';
	else 
		localBrowser = 'Mozilla';
	
}
if(navigator.userAgent.indexOf("MSMSGS") >= 0)
	localBrowser = "WMessenger";
else if(navigator.userAgent.indexOf("e2dk") >= 0)
	localBrowser = "Edonkey";
else if(navigator.userAgent.indexOf("Gnutella") + navigator.userAgent.indexOf("Gnucleus") >= 0)
	localBrowser = "Gnutella";
else if(navigator.userAgent.indexOf("KazaaClient") >= 0)
	localBrowser = "Kazaa";

if(localVersion == '0' && localBrowser != '') {
	var rg = new RegExp("^.*"+localBrowser+".([\\d.]+).*$");
	localVersion = navigator.userAgent.replace(rg, "$1");
}
var localIsCookie = ((localBrowser == 'Netscape' && localVersion == '4')?(document.cookie != ''):navigator.cookieEnabled);

//
// Opener/Closer HTML block
//
function visibleBox(id,skipOpenClose) {
	elm1 = document.getElementById("open"+id);
	elm2 = document.getElementById("close"+id);
	elm3 = document.getElementById("box"+id);

	if(!elm3)
		return false;

	if (skipOpenClose) {
		elm3.style.display = (elm3.style.display == "")?"none":"";
	} else if(elm1) {
		if (elm1.style.display == "") {
			elm1.style.display = "none";
			if(elm2)
				elm2.style.display = "";
			elm3.style.display = "none";
		} else {
			elm1.style.display = "";
			if(elm2)
				elm2.style.display = "none";
			elm3.style.display = "";
		}
	}
}

//
// URL encode
//
function urlEncode(url) {
	return url.replace(/\s/g, "+").replace(/&/, "&amp;").replace(/"/, "&quot;")
}

//
// Substitute
//
function substitute(lbl) {
var x, rg;
	for(x = 1; x < arguments.length; x+=2) {
		if(arguments[x] && arguments[x+1]) {
			rg = new RegExp("\\{\\{"+arguments[x]+"\\}\\}", "gi");
			lbl = lbl.replace(rg,  arguments[x+1]);
			rg = new RegExp('~~'+arguments[x]+'~~', "gi");
			lbl = lbl.replace(rg,  arguments[x+1]);
		}
	}
	return lbl;
}

function format_price(price, precision) {
var x, cnt, top, botom;
    precision = Math.pow(10, precision);
    price = Math.round(price*precision)/precision;
    top = Math.floor(price);
    bottom = Math.round((price-top)*precision)+precision;
    top = top+"";
    bottom = bottom+"";
    cnt = 0;
    for(x = top.length; x >= 0; x--) {
        if(cnt%3 == 0 && cnt > 0 && x > 0)
            top = top.substr(0,x)+","+top.substr(x,top.length);
        cnt++;
    }
    price = top+"."+bottom.substr(1,bottom.length);
    return price;
}

function getO (objId) {
	return document.getElementById (objId);
}

function getS (objId) {
	var obj = getO (objId);

	if (obj) {
		return obj.options[obj.selectedIndex].value;
	} else {
		return "";
	}
}

function getT (objId) {
	var obj = getO (objId);

	if (obj) {
		return obj.value;
	} else {
		return "";
	}
}

function setVisible (objId, newState) {
	if (getO (objId)) {
		var obj = getO (objId);

		obj.style.display = newState;
	}
}

function checkPaymentType () {
	var paymentType = getS ("payment_type");

	switch (paymentType) {
	case "A":
		// Check number/cardholder name/cvv2
		if (!getT('card_name')) {
			alert ('The required field "Cardholder'+"'" + 's" name is empty');	
			return false;
		}
		if (!getT('card_number')) {
			alert ('The required field "Credit card number" is empty');
			return false;
		}
		if (!getT('card_cvv2')) {
			alert ('The required field "CVV2" is empty');
			return false;
		}
		break;
	case "C":
		// Check nothing for now
		break;
	}

	return true;
}

function submitAddCheck () {
	var checkAmount;

	checkAmount = parseFloat (document.getElementById ("new_check_amount").value);

	if ((isNaN(checkAmount)) || (checkAmount == 0)) {
		alert ("Please enter the amount");
	} else {
		document.frm_check.mode.value = 'add';
		document.frm_check.submit();
	}
}

function doubleConfirm () {
	return (confirm ('Are you sure you want to delete selected items?') && confirm ('Are you really sure?'));
}

function selfRedirectGet (addString) {
	var str = new String (self.location);

	if (str.indexOf ("?") == -1) {
		if (str.substr (-4) == ".php") {
			self.location = str + "?" + addString;
		} else {
			self.location = "home.php?" + addString;
		}
	} else {
		self.location = str + "&" + addString;
	}
}

function showMemberChargeInfo (newState) {
	newState = newState ? "" : "none";

	document.getElementById ("member_row1").style.display = newState;
	document.getElementById ("member_row2").style.display = newState;
}

function selectMembership () {
	var paidMembeships, isPaidMembership, memberships, currentMembership;

	currentMembership = document.getElementById ("current_user_membership").options[document.getElementById ("current_user_membership").selectedIndex].value;

	isPaidMembership = false;

	memberships = new Array ();

	if (document.getElementById ("paid_memberships")) {
		memberships = document.getElementById ("paid_memberships").value.split ("|");

		if (memberships.length > 0) {
			for (var i = 0; i < memberships.length; i++) {
				if (memberships[i] == currentMembership) {
					isPaidMembership = true;
				}
			}
		}
	}

	if (isPaidMembership) {
		document.getElementById ("force_charge").disabled = false;
	} else {
		if (document.getElementById ("force_charge").checked) {
			document.getElementById ("force_charge").checked = false;
			showMemberChargeInfo (false);
		}

		document.getElementById ("force_charge").disabled = true;
	}
}
