/***********************************************************************************
 * Class: CCommon
 * Description:
 *   Common class
 *
 ***********************************************************************************/

	function CCommon() {};
	
	CCommon.expandedMenuItem = null;
	CCommon.selectedHeaderTab = null;
	
	// Exdpand list item
	CCommon.expandMenu = function(id, avoidLoop) {
		var obj = CObject.get("rmenu-item-" + id);
		var objList = CObject.get("rmenu-list-" + id);
		if(obj.className == "expanded") {
			CObject.displayNone(objList);
			CObject.classSet(obj, "expand");
			
			CCommon.expandedMenuItem = null;
		}
		else {
			// Collapse open menu
			if(CCommon.expandedMenuItem != null && !avoidLoop)
				CCommon.expandMenu(CCommon.expandedMenuItem, true);
				
			CObject.displayBlock(objList);
			CObject.classSet(obj, "expanded");

			CCommon.expandedMenuItem = id;
		}
	};

	// Display tab
	CCommon.tabDisplay = function(id, avoidLoop) {
		if(CCommon.selectedHeaderTab == id && !avoidLoop)
			return;
		
		var obj = CObject.get("header-link-" + id);
		var objContent = CObject.get("header-tab-" + id);
		if(obj.className == "selected") {
			CObject.displayNone(objContent);
			//CObject.hide(objContent);
			CObject.classSet(obj, "");
			
			CCommon.selectedHeaderTab = null;
		}
		else {
			// Close open tab
			if(CCommon.selectedHeaderTab != null && !avoidLoop)
				CCommon.tabDisplay(CCommon.selectedHeaderTab, true);
				
			CObject.displayBlock(objContent);
			//CObject.show(objContent);
			CObject.classSet(obj, "selected");

			CCommon.selectedHeaderTab = id;
		}
		
	};

	// Calculate mortgate sum
	CCommon.calculate = function(form) {
		// Get values
		var term = form.term.options[form.term.selectedIndex].value;
		var rate = form.rate.options[form.rate.selectedIndex].value;
		var loan = form.loan.value; //.replace(/[^0-9\.]+/g, '');
		
		if(term == '') {
			alert("Please choose a term");
			return false;
		}
		if(rate == '') {
			alert("Please choose a term");
			return false;
		}
		if(loan == '' || isNaN(loan)) {
			alert("Please enter a valid loan value");
			return false;
		}
		
		var mi = rate / 1200;
		var base = 1;
		var mbase = 1 + mi;
		
		for (i=0; i < term * 12; i++) {
			base = base * mbase;
		}

		form.repayments.value = Math.floor((loan * mi / ( 1 - (1/base)))*Math.pow(10,2))/Math.pow(10,2);
		
		return false;
	};
	
	CCommon.addOnLoad = function(func) {
		if(CCommon.onloads == null)
			CCommon.onloads = new Array();
		CCommon.onloads.push(func);
	};
	
	CCommon.init = function() {
		// Nav menu mouseover script for ie
		if(window.attachEvent) {
			window.attachEvent("onload", function() {
				var sfEls = document.getElementById("nav").getElementsByTagName("LI");
				for (var i=0; i<sfEls.length; i++) {
					sfEls[i].onmouseover=function() {
						this.className+=" sfhover";
					}
					sfEls[i].onmouseout=function() {
						this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
					}
				}
			});
		}
		
		// Do onloads
		if(window.onload)
			CCommon.prevOnload = window.onload;
			
		window.onload = function() {
			// Call load methods
			if(CCommon.onloads != null && CCommon.onloads.length > 0) {
				for(var i = 0; i < CCommon.onloads.length; i++)
					CCommon.onloads[i]();
			}
			
			// Call previous onload if set
			if(CCommon.prevOnload)
				CCommon.prevOnload();
		}		
	};
	
	// Init 
	CCommon.init();