/* mhc.js - Sosign Interactive Inc. - project: MyHealthCheckup.com (http://www.myhealthcheckup.com) - 20/03/2007	*/
/*
 * file: mhc.js
 *
 * -> main js file for homepage
 */

/* Global variables */

/* resources */
var gMHCLoginResource = "php/authenticate.php";
var gMHCLangResource = "php/login.php";
var gMHCAccountDataResource = "php/myaccountData.php";
var gMHCTryItDataModelResource = "php/tryItDataForm.php";

/* configuration variables */
var gMHCLoadClasses = [
					"jquery/jquery-latest.pack", 
					"jquery/jquery.dimensions",
					"jquery/jquery.scrollTo", 
					"jquery/jquery.impromptu",
					"jquery/jquery.corner",
					"mhc/workingIndicator.prototype",
					"mhc/form.prototype",
					"mhc/login.prototype",
					"mhc/menu.prototype",
					"mhc/modalWindow.prototype"
					];
					
var gMHCLogin;
var gMHCLanguage;
var gMHCLang;
var gMHCWorkingIndicator;
var gMHCMenu;
var gMHCAccountData;
var gMHCTryItForm;

/*
 * object: MHC
 *
 * -> Core object
 */
var MHC = {

	/*
	 * method: Init
	 *
	 * -> Constructor - load needed javascript and lang files
	 */
	Init: function() {
	
		/* get language */
		var lang = document.documentElement.lang;
		gMHCLanguage = lang ? lang : "en";
		var javascriptFilestoLoad = new String();
		
		for (var i=0; i < gMHCLoadClasses.length; i++) {
			javascriptFilestoLoad += '<script type="text/javascript" src="js/'+gMHCLoadClasses[i]+'.js"></script>';
		}
		
		/* add lang file */
		javascriptFilestoLoad += '<script type="text/javascript" src="lang/lang_'+gMHCLanguage+'.js"></script>';
		
		/* write <script> elements to file */
		document.write(javascriptFilestoLoad);
		return true;
	},

	/*
	 * method: build
	 *
	 * -> build page content
	 */
	build: function() {
		
		//gMHCWorkingIndicator = new MHCWorkingIndicator();
	
		/* get localization variables */
		$.ajax({
			url: gMHCLangResource+"?lang="+gMHCLanguage,
			type: 'get',
			async: false,
			success: function(data) {
				gMHCLang = eval("("+data+")");
			}
		});
	
		gMHCLogin = new MHCLogin("#gMHCHomeLoginContainer", gMHCLoginResource, "gMHCLogin", gMHCLang);
		gMHCLogin.displayLoginBox();
		
		/* get login informations if any */
		$.ajax({
			url: gMHCAccountDataResource,
			type: 'get',
			async: false,
			success: function(data) {
				var accountData = eval("("+data+")");
				
				if(accountData["error"]) {
					$("#menu > ul").addClass("disabled");
				
				} else {
					gMHCAccountData = accountData;
				}
			}
		});
		
		if(!!gMHCAccountData) {
			MHCCommon.addlogOutLink("all");
			if(gMHCAccountData.healthProfessionalFullName) {
				MHCCommon.addloggedAsMessage(gMHCAccountData.healthProfessionalFullName);
			} else {
				MHCCommon.addloggedAsMessage(gMHCAccountData.firstName+" "+gMHCAccountData.lastName);
			}
			
		} else {
		
			/* ***Temporary*** units for form display */
			gMHCAccountData = new Object();
			gMHCAccountData["CholesterolAndGlucoseUnit"] = "mmolL";
			gMHCAccountData["measureUnit"] = "metric";
		}
		
		/* "try it" form */
		$.getJSON(gMHCTryItDataModelResource+"?lang="+gMHCLanguage, function(data, textStatus){
			gMHCTryItForm = new MHCForm("gMHCTryIt", "gMHCTryItForm.sendTryItForm", gMHCAccountData); 
			gMHCTryItForm.displayTryItForm(data);
		});
	},

	/*
	 * method: getUrlVars
	 *
	 * -> parse variables contained in page URL
	 */
	getUrlVars: function(url) {
		var vars = [], hash;
		var hashes = url.slice(url.indexOf('?') + 1).split('&');
		
		for(var i = 0; i < hashes.length; i++) {
			hash = hashes[i].split('=');
			vars.push(hash[0]);
			vars[hash[0]] = hash[1];
		}
		return vars;
	}
};

/* Initialization */
MHC.Init();

if(window.addEventListener) {
    window.addEventListener("load", MHC.build, true);
    
} else {
	window.attachEvent("onload", MHC.build);
}