// Updated on 10-07-08 by sharonz
// * updates for DS
// * added two functions to enable proper checking
// * removed duplicate or unecessary code


// Returns a fully qualified DR Global Commerce URL
function getLink(linkMVT, currency) {
	return linkMVT+"&currency="+currency;
}

// Returns the current language selection from browser's user agent object
function getLang() {
	var languageinfo;
	
	languageinfo = navigator.userLanguage;
	if (languageinfo==null) {languageinfo=navigator.language;		}
	if (languageinfo==null) {languageinfo=navigator.browserLanguage;}
	if (languageinfo==null) {languageinfo=navigator.systemLanguage;	}
	if (languageinfo==null) {languageinfo="en-us";					}	
	
	return languageinfo.toLowerCase();
}

function getOriginalPS(currency) {
	switch (currency) {
		case "USD" : return 119.90;
		case "CAD" : return 119.90;
		case "AUD" : return 119.90;
		case "GBP" : return 79.90;
		case "EUR" : return 99.90;
	}
}
function getUpgrades(currency) {
	switch (currency) {
		case "USD" : return 19.95;
		case "CAD" : return 19.95;
		case "AUD" : return 19.95;
		case "GBP" : return 13.29;
		case "EUR" : return 16.62;
	}
}
function get2396(currency) {
	switch (currency) {
			case "USD" : return 23.96;
				case "CAD" : return 23.96;
				case "AUD" : return 23.96;
				case "GBP" : return 15.96;
				case "EUR" : return 19.96;
	}
}
function getUpgradesPP(currency) {
	switch (currency) {
		case "USD" : return 39.95;
		case "CAD" : return 39.95;
		case "AUD" : return 39.95;
		case "GBP" : return 26.62;
		case "EUR" : return 33.29;
	}
}
// Returns the original (strikethrough) pricing of a product
function getOriginal(product, currency) {
	switch (product) {
		case "ps" :	
			return getOriginalPS(currency);
			break;
		case "ps-support" :	
			return getOriginalPS(currency);
			break;
		case "offer-ps-pp" :	
			return getOriginalPS(currency);
			break;
			
		case "ps-site" :
			return getOriginalPS(currency);
			break;
		
		case "downloads-ps" :
			return getOriginalPS(currency);
			break;
			
		case "upgrades-rb" :
			return getUpgrades(currency);
			break;
		case "upgrades-sp" :
			return getUpgrades(currency);
			break;
		case "upgrades-se" :
			return getUpgrades(currency);
			break;
		case "upgrades-ds" :
			return getUpgrades(currency);
			break;	
		// DR update	
		case "upgrades-dr" :
			return getUpgrades(currency);
			break;	
			
		case "prod-1995" :
			return getOriginal(currency);
			break;	
			
		case "prod-2396" :
			return get2396(currency);
			break;				
			
		default :
			switch (currency) {
				case "USD" : return 39.95;
				case "CAD" : return 39.95;
				case "AUD" : return 39.95;
				case "GBP" : return 26.62;
				case "EUR" : return 33.29;
			}
			break;
	}
	return 39.95;
}

function getDiscountedPS(currency) {
	switch (currency) {
		case "USD" : return 59.95;
		case "CAD" : return 59.95;
		case "AUD" : return 59.95;
		case "GBP" : return 39.95;
		case "EUR" : return 49.95;
	}
}
function getDiscountedOffer(currency) {
	switch (currency) {
		case "USD" : return 169.85;
		case "CAD" : return 169.85;
		case "AUD" : return 169.85;
		case "GBP" : return 109.85;
		case "EUR" : return 139.85;
	}
}
function getDiscountedOrig(currency) {
	switch (currency) {
		case "USD" : return 169.85;
		case "CAD" : return 169.85;
		case "AUD" : return 169.85;
		case "GBP" : return 109.85;
		case "EUR" : return 139.85;
	}
}

function getDiscountedOffer(currency) {
	switch (currency) {
		case "USD" : return 59.95;
		case "CAD" : return 59.95;
		case "AUD" : return 59.95;
		case "GBP" : return 39.95;
		case "EUR" : return 49.95;
	}
}
// Returns the discounted price of a product (e.g. 29.95 for RegistryBooster)
function getDiscounted(product, currency) {
	switch (product) {
		case "ps" :
			switch (currency) {
				case "USD" : return 39.95;
				case "CAD" : return 39.95;
				case "AUD" : return 39.95;
				case "GBP" : return 29.95;
				case "EUR" : return 34.95;
			}
			break;
		
		case "ps-support" :
			switch (currency) {
				case "USD" : return 19.95;
				case "CAD" : return 19.95;
				case "AUD" : return 19.95;
				case "GBP" : return 13.30;
				case "EUR" : return 16.62;
			}
			break;
			


	// It's more expensive from the main site because it's not the upgrade from 'enable powersuite' button in software
		case "ps-site" :
			return getDiscountedPS(currency);
			break;
		case "offer-ps-pp" :
			return getDiscountedPS(currency);
			break;
			
		case "downloads-ps" :
			return getDiscountedPS(currency);
			break;
			
		case "prod-1995" :
			switch (currency) {
				case "USD" : return 19.95;
				case "CAD" : return 19.95;
				case "AUD" : return 19.95;
				case "GBP" : return 13.30;
				case "EUR" : return 16.62;
			}
		case "prod-1995-kim" :
			switch (currency) {
				case "USD" : return 19.95;
				case "CAD" : return 19.95;
				case "AUD" : return 19.95;
				case "GBP" : return 13.29;
				case "EUR" : return 16.62;
			}
			break;
		case "prod-2396" :
			switch (currency) {
				case "USD" : return 23.96;
				case "CAD" : return 23.96;
				case "AUD" : return 23.96;
				case "GBP" : return 15.96;
				case "EUR" : return 19.96;
			}
			break;
			
		default :
			switch (currency) {
				case "USD" : return 29.95;
				case "CAD" : return 29.95;
				case "AUD" : return 29.95;
				case "GBP" : return 19.95;
				case "EUR" : return 24.95;
			}
			break;
	}
}

// Returns the original (strikethrough) price of the bundled offers (system tweaker)
function getOffer(product, currency) {
	switch (currency) {
				case "USD" : return 39.95;
				case "CAD" : return 39.95;
				case "AUD" : return 39.95;
				case "GBP" : return 26.62;
				case "EUR" : return 33.29;
	}
	return 39.95;
}
// Returns the original price for PixelPerfect
function getPPOffer(product, currency) {
	switch (currency) {
		case "USD" : return 49.95;
		case "CAD" : return 49.95;
		case "AUD" : return 49.95;
		case "GBP" : return 29.95;
		case "EUR" : return 39.95;
	}
	return 49.95;
}

// Returns the currency symbol: $, €, etc
function getSymbol(currency) {
	switch (currency) {
		case "USD" : return "$";
		case "CAD" : return "$";
		case "AUD" : return "$";
		case "GBP" : return "&pound;";
		case "EUR" : return "&euro;";
	}
	return "$";
}

// Returns currency standard code based on localisation rules
function getCurrency(lang) {
	if (lang in {"en-uk":"", "gd":"", "en-ie":"", "gd-ie":"", "en-gb":""}) {
		return "GBP";
	} else {
		if (lang in {"en-au":"", "en-nz":""}) {
			return "AUD";
		} else {
			if (lang in {"en-ca":"", "fr-ca":""}) {
				return "CAD";
			} else {
				if (lang in {"eu":"", "hr":"", "da":"", "nl-be":"", "fr":"", "fi":"", "fr-be":"", "fr-ch":"", "fr-lu":"", "de":"", "de-at":"", "de-li":"", "de-ch":"", "de-lu":"", "el":"", "hu":"", "it":"", "it-ch":"", "lv":"", "mk":"", "mt":"", "no":"", "pt":"", "pl":"", "ro":"", "ro-mo":"", "ru":"", "ru-mo":"", "sr":"", "sl":"", "sk":"", "es":"", "sv":"", "sv-fi":"", "tr":"", "uk":"", "cs":"", "bg":"", "ca":"", "nl":"", "et":""}) {
					return "EUR";
				}		
			}		
		}		
	}
	return "USD";
}

// Updates the links on a page with the DR url from "getLink"
function updateLinks(product, linkMVT, currency) {
	var url = getLink(linkMVT, currency);
	var urlPPupgrade = linkMVT+"&currency="+currency;
	switch (product) {
		
		case "store-offer" :
			break;
			
		case "ps-site" :
			// document.getElementById("link-right").href = url;
			// document.getElementById("link-button1").href = url;
			// document.getElementById("link-button2").href = url;
			break;
		
		case "rb-site" :
			// document.getElementById("link-right").href = url;
			break;
			
		case "rb-site-purchase" :
		case "se-site-purchase" :
		case "sp-site-purchase" :
		case "ds-site-purchase" :
		// dr update
		case "dr-site-purchase" :
			document.getElementById("link-maintop").href = url;
			document.getElementById("link-mainbot").href = url;
			document.getElementById("link-maintoptext").href = url;
			document.getElementById("link-mainbottext").href = url;
			document.getElementById("link-toptext").href = url;
			document.getElementById("link-midtext").href = url;
			break;
			
		case "se-site" :
			// document.getElementById("link-right").href = url;
			break;
		
		case "sp-site" :
			// document.getElementById("link-right").href = url;
			break;

		case "ds-site" :
			// document.getElementById("link-right").href = url;
			break;
		
		case "dr-site" :
			// document.getElementById("link-right").href = url;
			break;
			
			
		case "downloads-rb" :
			setHrefWithChecking("link-rb", url);
			break;
			
		case "downloads-se" :
			setHrefWithChecking("link-se", url);
			break;
			
		case "downloads-sp" :
			setHrefWithChecking("link-sp", url);
			break;
		
		case "downloads-ds" :
			setHrefWithChecking("link-ds", url);
			break;
		
		// dr update
		case "downloads-dr" :
			setHrefWithChecking("link-dr", url);
			break;
			
		case "downloads-ps" :

			setHrefWithChecking("link-ps", url);
			break;
		
		case "upgrades-rb" :

			setHrefWithChecking("link-main-rb", url);
			setHrefWithChecking("link-main-pp-rb", urlPPupgrade);
			break;
		case "upgrades-sp" :

			setHrefWithChecking("link-main-sp", url);
			setHrefWithChecking("link-main-pp-sp", urlPPupgrade);
			break;
		case "upgrades-se" :

			setHrefWithChecking("link-main-pp-se", urlPPupgrade);
			break;
		
		case "upgrades-ds" :

			setHrefWithChecking("link-main-ds", url);
			setHrefWithChecking("link-main-pp-ds", urlPPupgrade);
			break;
			
		case "upgrades-dr" :

			setHrefWithChecking("link-main-dr", url);
			setHrefWithChecking("link-main-pp-dr", urlPPupgrade);
			break;
		
		default:
			var links = document.getElementsByTagName("a");	
			for (i=0;i<links.length;i++) {links[i].href=url;}
			break;
	}
}

// Encapsulates common price updates - right panel
function updateSitePricing(amount_orig, amount_save, amount_sell) {
	document.getElementById("right-orig").innerHTML	= amount_orig;
	document.getElementById("right-save").innerHTML	= amount_save + ".00";
	document.getElementById("right-sell").innerHTML	= amount_sell;
}

// Encapsulates common price updates - product selectors
function updateSelectorPricing(product, amount_orig, amount_save, amount_sell) {
	setInnerHTMLWithChecking("price-orig-" + product, amount_orig);
	setInnerHTMLWithChecking("price-save-" + product, amount_save + ".00");
	setInnerHTMLWithChecking("price-sell-" + product, amount_sell);
	
/*	document.getElementById("price-orig-"+product).innerHTML = amount_orig;
	document.getElementById("price-save-"+product).innerHTML = amount_save + ".00";
	document.getElementById("price-sell-"+product).innerHTML = amount_sell;*/
}


// Main entry function 
function checkLocale(product, linkMVT) {
	if (product==null||linkMVT=="") {return;}
	
	var lang 		= getLang();
	var currency 	= getCurrency(lang);
	var symbol 		= getSymbol(currency);
	
	amount_orig = symbol + getOriginal(product, currency).toFixed(2);
	amount_save	= symbol + (getOriginal(product, currency)-getDiscounted(product, currency)).toFixed(0);	
	amount_sell = symbol + getDiscounted(product, currency).toFixed(2);
	amount_free = symbol + getOffer(product, currency);
	amount_ppfree = symbol + getPPOffer(product, currency);
	amount_PPupgrade = symbol + getUpgradesPP(currency).toFixed(2);
	
	amount_orig_offer = symbol + getDiscountedOrig(currency).toFixed(2);
	amount_sell_offer = symbol + getDiscountedOffer(currency).toFixed(2);
	
	updateLinks(product, linkMVT, currency);
	
	switch (product) {
		case "ps" :
			document.getElementById("price-save").innerHTML     = amount_save;
			document.getElementById("price-discount").innerHTML = amount_sell;
			document.getElementById("price-offer").innerHTML    = amount_save;
			document.getElementById("price-old").innerHTML      = amount_orig;			
			break;
			
		case "ps-site" :
			updateSitePricing(amount_orig, amount_save, amount_sell);
			document.getElementById("button-orig-1").innerHTML	= amount_orig;
			document.getElementById("button-sell-1").innerHTML	= amount_sell;
			document.getElementById("button-orig-2").innerHTML	= amount_orig;
			document.getElementById("button-sell-2").innerHTML	= amount_sell;
			break;
			
		case "ps-support" :
			document.getElementById("price-topline").innerHTML	= amount_sell;	
			document.getElementById("price-product").innerHTML	= amount_orig;
			document.getElementById("price-promo").innerHTML	= amount_ppfree;	
			document.getElementById("price-save").innerHTML		= amount_save;		
			document.getElementById("price-old").innerHTML		= symbol + (getOriginal(product, currency) + getPPOffer(product, currency)).toFixed(2);
			document.getElementById("price-new").innerHTML		= amount_sell;
			break;
			
			// PS + PP offer purchase page
		case "offer-ps-pp" :
			document.getElementById("price-topline").innerHTML	= amount_sell;	
			document.getElementById("price-product").innerHTML	= amount_orig;
			document.getElementById("price-promo").innerHTML	= amount_ppfree;
			document.getElementById("price-save").innerHTML		= amount_save;	
			document.getElementById("price-old").innerHTML		= symbol + (getOriginal(product, currency) + getPPOffer(product, currency)).toFixed(2);
			document.getElementById("price-new").innerHTML		= amount_sell;
			break;
			
			// SP + PP offer purchase page
		case "offer-sp-pp" :
			document.getElementById("price-topline").innerHTML	= amount_sell;	
			document.getElementById("price-product").innerHTML	= amount_orig;
			document.getElementById("price-promo").innerHTML	= amount_ppfree;	
			document.getElementById("price-save").innerHTML		= amount_save;		
			document.getElementById("price-old").innerHTML		= symbol + (getOriginal(product, currency) + getPPOffer(product, currency)).toFixed(2);
			document.getElementById("price-new").innerHTML		= amount_sell;
			break;
			
		case "store-offer" :		
			document.getElementById("price-old").innerHTML		= amount_orig_offer;
			document.getElementById("price-new").innerHTML		= amount_sell_offer;
			break;
			
		case "rb-site" :
			updateSitePricing(amount_orig, amount_save, amount_sell);
			break;
			
		case "se-site" :
			updateSitePricing(amount_orig, amount_save, amount_sell);
			break;
			
		case "sp-site" :
			updateSitePricing(amount_orig, amount_save, amount_sell);
			break;
		
		case "ds-site" :
			updateSitePricing(amount_orig, amount_save, amount_sell);
			break;
			
		// dr update
		case "dr-site" :
			updateSitePricing(amount_orig, amount_save, amount_sell);
			break;
		
		case "downloads-rb" :
			updateSelectorPricing("rb", amount_orig, amount_save, amount_sell);
			break;
		case "upgrades-rb" :
			checkElementRB = document.getElementById("price-orig-rb");
			checkElementRBPP = document.getElementById("price-orig-pp-rb");
			
			if (checkElementRB)
			    checkElementRB.innerHTML = amount_orig;
				
			if (checkElementRBPP)
				checkElementRBPP.innerHTML	= amount_PPupgrade;
			break;
			
		case "downloads-se" :
			updateSelectorPricing("se", amount_orig, amount_save, amount_sell);
			break;
		case "upgrades-se" :
			document.getElementById("price-orig-pp-se").innerHTML	= amount_PPupgrade;
			break;
			
		case "downloads-sp" :
			updateSelectorPricing("sp", amount_orig, amount_save, amount_sell);
			break;
		case "upgrades-sp" :
			document.getElementById("price-orig-sp").innerHTML	= amount_orig;
			document.getElementById("price-orig-pp-sp").innerHTML	= amount_PPupgrade;
			break;
		
		case "downloads-ds" :
			updateSelectorPricing("ds", amount_orig, amount_save, amount_sell);
			break;
		case "upgrades-ds" :
			document.getElementById("price-orig-ds").innerHTML	= amount_orig;
			document.getElementById("price-orig-pp-ds").innerHTML	= amount_PPupgrade;
			break;
			
		case "downloads-ps" :
			updateSelectorPricing("ps", amount_orig, amount_save, amount_sell);
			break;
		
		case "downloads-special" :
			updateSelectorPricing("special", amount_orig, amount_save, amount_sell);
			break;
			
		// update dr
		case "downloads-dr" :
			updateSelectorPricing("ds", amount_orig, amount_save, amount_sell);
			break;
		case "upgrades-dr" :
			document.getElementById("price-orig-ds").innerHTML	= amount_orig;
			document.getElementById("price-orig-pp-ds").innerHTML	= amount_PPupgrade;
			break;
		
		case "prod-1995" :
			document.getElementById("price-topline").innerHTML	= amount_sell;
			document.getElementById("price-product").innerHTML	= amount_orig;
			document.getElementById("price-promo").innerHTML	= amount_free;
			document.getElementById("price-save").innerHTML		= amount_save;	
			document.getElementById("price-old").innerHTML		= symbol + (getOriginal(product, currency) + getOffer(product, currency)).toFixed(2);
			document.getElementById("price-new").innerHTML		= amount_sell;		
			break;		
			
		default : 
			document.getElementById("price-topline").innerHTML	= amount_sell;
			document.getElementById("price-product").innerHTML	= amount_orig;
			document.getElementById("price-promo").innerHTML	= amount_free;
			document.getElementById("price-save").innerHTML		= amount_save;	
			document.getElementById("price-old").innerHTML		= symbol + (getOriginal(product, currency) + getOffer(product, currency)).toFixed(2);
			document.getElementById("price-new").innerHTML		= amount_sell;
			break;
	}

}

// Added 10/07
function setInnerHTMLWithChecking(id, value)
{
	element = document.getElementById(id);
	if (element)
		element.innerHTML = value;
}

function setHrefWithChecking(id, value)
{
	element = document.getElementById(id);
	if (element)
		element.href = value;
}