 /*
 * the purpose of these functions is to route all page onload events through setPage()
 * these are the only loose js functions on the site
 * this page should be considered the post-load equivalent of the bootstrapper
 */

//"constants"
var ACT_SHOWPOLL = 'showpoll'; // followup action for call to get poll
var DEF_ACCTINFOPATH = 'etc/process_userlookup.php';
//var DEF_ACCTMAINTPATH = 'etc/process_regmaint.php';
var DEF_ACCTMAINTPATH = "?request=forgotpasslookupemail";
var DEF_BADWORDPATH = 'badwords.js';
var DEF_CTRLCOVER = 'div-ctrlcover';
var DEF_CTRLDIALOG = 'div-ctrldialog';
var DEF_CNTRYLISTPATH = 'countrylist.js';
var DEF_GAMELIST = 'games.js';
var DEF_GALLERYCAT = 'fa08';
var DEF_GALLERYSEASON = 'jingleball08';
var DEF_HOMEVIDEOPATH = 'video_homepage.js';
var DEF_INTRFCELANGPATH = 'lang_interface.js';
var DEF_LANGCOOKIE = 'moxiegirlzlang'; // default name of skin cookie
var DEF_LANGLISTPATH = 'site_countries.js';
//var DEF_LOGINPATH = '/giselle/branch/moxiegirlz/etc/process_auth.php';
var DEF_LOGINPATH = "?request=login";
var DEF_PRODCAT = 'core';
var DEF_PRODSEASON = 'sp09';
/* modify this */
var DEF_PUBPATH = 'pub/';

var DEF_QUIZLOGPATH = 'etc/process_quizlog.php';
var DEF_QUIZPATH = 'quiz.js';
var DEF_REGPATH = '?request=register';
var DEF_SKINCOOKIE = 'moxiegirlzskin'; // default name of skin cookie
var DEF_SKINPATH = 'skins.js';
var DEF_STATELISTPATH = 'statelist.js';
var DEF_TIMEPATH = 'configs/time.php';
var DOM_HOMEPOLLID = 'div-poll'; // id of the homepage poll div
var IMG_AJAXLOAD = '<img src="images/common/ajaxloading.gif" width="100" height="100" />'; // preloader image for ajax calls
var IMG_PRELDR = 'images/common/imgloading.gif'; // preloader image for gallery preloader
var KEY_CATEGORY = 'category'; // ?category=
var KEY_GALLERY = 'gallery';
var KEY_HOMEPOLL = '5';
var KEY_IMG = 'img';
var KEY_INVCODE = 'invite_code'; // ?invite_code=
var KEY_LANGCOOKIE = 'moxiegirlzlang'; // name of site's lang cookie
var KEY_SEASON = 'season'; // ?seasion=
var KEY_SECT = 'section'; // ?section=
var KEY_VIDEO = 'video';
var RGX_LANG = /_lang_/;
var SW_HOME = 'home'; // switch to process homepage
var SW_PROD = 'moxieproductgallery'; // switch to process prod gallery
var SW_PRODLANDING = 'productlanding';
var SW_PRODWTB = 'productwtb';
var SW_FANCLUB = 'fclanding';
var SW_GAME = 'game';
var SW_GAMELANDING = 'gamelanding';
var SW_FCEXCLUSIVES = 'fcexclusives';
var SW_PBLANDING = 'pblanding';
var SW_PBBIOS = 'pbbios';
var SW_PBDOWNLOADS = 'pbdownloads';
var SW_TUNESTV = 'tunestvlanding';
var SW_BEAT = 'beatbox';
var SW_PBBLOG = 'pbblog';
var SW_PBQUIZ = 'pbquiz';
var SW_GALLERY = 'gallery';
var URL_POLLPHP = 'etc/process_poll.php'; // location of poll processor page
var URL_POLLDEFS = 'pub/_lang_/poll_defs.js'; // location of poll defs
var URLPATH = 'http://localhost/giselle/branch/new_moxiegirlz/';

// globals
var o_acctutil;
var o_anim;
var o_gallery;
var o_cookie;
var o_form;
var o_intrfcereq;
var o_jwplayer;
var o_langreq;
var o_menuutil;
var o_pollreq;
var o_polldisp;
var o_styleutil;
var o_util;
var o_quiz;
var s_langcode;
var s_section;
var o_gamelang;

function doFCExclPage() {
	o_anim = new animObj('o_anim');
}

function doFanClubPage() {
	o_anim = new animObj('o_anim');
}

function doGalleryPage() { // set up the product gallery page
	// pub/lang/prod_gallery.js (and a_allprod therein) need to be available to
	// the calling page!
	var a_gallery;
	var s_gallery;
	var s_season;
	s_gallery = o_util.getUriValue(KEY_GALLERY);
	s_season = o_util.getUriValue(KEY_SEASON);
	
	if (s_gallery === false) {
		s_gallery = DEF_GALLERYCAT;
	}
	if (s_season === false) {
		s_season = DEF_GALLERYSEASON;
	}
	//alert(a_allgallery);
	a_gallery = a_allgallery[s_season][s_gallery];
	//alert('gallery' + a_gallery);
	o_gallery = new galleryObj(o_anim, 'o_gallery', a_gallery, IMG_PRELDR,DEF_PUBPATH + s_langcode + '/' + DEF_INTRFCELANGPATH);
	o_gallery.doImgPreload();
}

function doGameInsert(a_gamelist_fp) {
	//alert("start doGameInsert in page_setup.js");
    var s_id = o_util.getUriValue('id');
    var o_flashvars = {};
    var o_params = {};
    o_params.allowscriptaccess = 'always';
    var o_attributes = {};
    var s_gamepath = URLPATH + 'media/swf/' + a_gamelist_fp[s_id]['path'];
    var s_height = a_gamelist_fp[s_id]['height'];
    var s_width = a_gamelist_fp[s_id]['width'];
    swfobject.embedSWF(s_gamepath, 'div-game', s_width, s_height, '9.0.115', false, o_flashvars, o_params, o_attributes);
	//alert("fin_doGameInsert");
}

function doHomePage() { // set up the homepage
	var s_url = URL_POLLDEFS.replace(RGX_LANG,s_langcode); //set the path to the correct language for the poll defs
	o_pollreq = new ajaxReq('o_pollreq'); //create ajax request object
	o_pollreq.setLoadMsg(DOM_HOMEPOLLID,IMG_AJAXLOAD);
	o_polldisp = new ajaxPoll('o_polldisp', 'o_pollreq', DOM_HOMEPOLLID, KEY_HOMEPOLL, URL_POLLPHP); //create poll display object
	o_pollreq.doServerRequest(s_url,'',o_polldisp.doVote); //get the poll
	// defs and show voting options
}

function doHomePlayerInsert() {
    doPlayerInsert('div-lgpromocontainer', URLPATH + 'media/flv/' + getHomeVideo(), 'true');
}

function doInsertBeatBox()
{
	var flashvars = false;
	var params = {};
	params.base = URLPATH;
	params.quality = "high";
	params.scale = "exactfit";
	params.wmode = "transparent";
	params.allowfullscreen = "false";
	params.allowscriptaccess = "sameDomain";
	var attributes = {};
	attributes.id = "logoani";
	attributes.align = "top";
	var attributes = 
		{
			id: "beatBox",
			name: "beatBox"		
		};
	swfobject.embedSWF(URLPATH + "media/swf/beatbox.swf", "swf", "195", "270", "9.0.0","expressInstall.swf", flashvars, params, attributes);
	resizeTo(370,675);
}

function doMagicHairVote() {
    var s_url = URL_POLLDEFS.replace(RGX_LANG,s_langcode); //set the path to the correct language for the poll defs
	o_pollreq = new ajaxReq('o_pollreq'); //create ajax request object
	o_pollreq.setLoadMsg(DOM_HOMEPOLLID,IMG_AJAXLOAD);
	o_polldisp = new ajaxPoll('o_polldisp', 'o_pollreq', DOM_HOMEPOLLID, 7, URL_POLLPHP); //create poll display object
	o_pollreq.doServerRequest(s_url,'',o_polldisp.doVote); //get the poll
}

function doParentRegCheck() {
//	if (o_util.getUriValue(KEY_INVCODE).length == 32) {
//		doInitRegForm();
//	}
}

function doProdPage() { // set up the product gallery page
	// pub/lang/prod_gallery.js (and a_allprod therein) need to be available to
	// the calling page!
	var a_prod;
	var s_category;
	var s_season;
	s_category = o_util.getUriValue(KEY_CATEGORY);
	s_season = o_util.getUriValue(KEY_SEASON);
	
	if (s_category === false) {
		s_category = DEF_PRODCAT;
	}
	if (s_season === false) {
		s_season = DEF_PRODSEASON;
	}
	a_prod = a_allprod[s_season][s_category];
	o_gallery = new galleryObj(o_anim, 'o_gallery', a_prod, IMG_PRELDR,DEF_PUBPATH + s_langcode + '/' + DEF_INTRFCELANGPATH);
	o_gallery.doImgPreload();
}


function doRequestFromGame()
{
	//alert("in doRequestFromGame")
	// call what calls doSendGameLang(a_gamelang_fp);
	//alert("call doSendGameLang with test info")
	doSendGameLang("test info");
	
}

function doRequestGameLang(s_defname_fp) {
	//alert("flash has loaded and called doRequestGameLang")
	var o_gamereq = new ajaxReq('o_gamereq');
    var s_url = URLPATH + DEF_PUBPATH + s_langcode + '/' + s_defname_fp;
    //alert(s_url);
    o_gamereq.doServerRequest(s_url,'',doSendGameLang);
}

function doRequestGameList() {
    var o_gamelistreq = new ajaxReq('o_gamelistreq');
    var s_url = URLPATH + DEF_PUBPATH + s_langcode + '/' + DEF_GAMELIST;
    o_gamelistreq.doServerRequest(s_url,'',doGameInsert);
}

function doPlayerInsert(s_containerid_fp,s_path_fp,s_autostart_fp) {	
    var o_flashvars = {};
    o_flashvars.plugins = URLPATH + "media/swf/hiroJWPlugin.swf";
    o_flashvars.openningimage = "media/swf/biglogo.png",
    o_flashvars.repeat = "list"
    o_flashvars.url = "http://www.moxiegirlz.com/media/flv/alltogether_en.flv";
    
    if (s_path_fp) {
        o_flashvars.file = s_path_fp;
    }
    if (s_autostart_fp) {
        o_flashvars.autostart = s_autostart_fp;
    }
    
    var o_params = {};
    o_params.allowscriptaccess = 'always';
    o_params.allowfullscreen = 'true';
    var o_attributes = {};
    o_attributes.id = 'jwplayer';
    o_attributes.name = 'jwplayer';
    swfobject.embedSWF(URLPATH + 'media/swf/jwplayer.swf', s_containerid_fp, '328', '200', '9.0.115', false, o_flashvars, o_params, o_attributes);
}


function doSendGameLang(a_gamelang_fp) {

    o_gamelang=a_gamelang_fp;
	//alert("in doSendGameLang. \n speechbubble1="+ a_gamelang_fp["speechbubble1"]);
	//alert("doSendGameLang calling doGameLangToFlash");
    document.getElementById("div-game").doGameLangToFlash();
}

function doSendGameLangInfo(s_langlookup_fp) { 
	var returnarray = new Array();
	returnarray[0]=s_langlookup_fp;
	returnarray[1] = o_gamelang[s_langlookup_fp];
	//alert("in doSendGameLangInfo, namevalue pair"+ returnarray[0] + ":" + returnarray[1]);
	document.getElementById("div-game").doGameLangToFlashInfo(returnarray);
}


/*function doPlayerInsert(s_containerid_fp,s_path_fp,s_autostart_fp) {
    var flashvars = {
		plugins: URLPATH + "media/swf/HiroJWPlugin.swf",
		openningimage: "biglogo.png",
		external_id: "6444",
		repeat:"always"
	}

	var params = {
		allowfullscreen:"true",
		allowscriptaccess:"always"
	}

	var attributes = {
		id:"jwplayer",
		name:"jwplayer"
	}

	swfobject.embedSWF(URLPATH + 'media/swf/jwplayer.swf', "div-playercontainer", "420", "296", "9.0.115", false, flashvars, params, attributes);
}*/

function doSwapMainPromo(s_key_fp) {
	var a_method = new Array();
	a_method[KEY_VIDEO] = outMainPromoSwf;
	a_method[KEY_IMG] = outMainPromoImg;
	a_method[s_key_fp]();
}

function doInitAcctMaintForm(f_handler_fp) { // this gets called to get form params before showing the input for new values - callback is the method that open the inputs in o_acctutil
	o_regform = new formObj('o_regform', o_acctutil.getUserAcctInfo, DEF_PUBPATH + s_langcode + '/' + DEF_INTRFCELANGPATH, DEF_PUBPATH 	+ DEF_BADWORDPATH, '', '', '');
}

function doInitLoginForm() {
	o_loginform = new formObj('o_regform', o_acctutil.doUserLoginInterface, DEF_PUBPATH + s_langcode + '/' + DEF_INTRFCELANGPATH, '', '', '', 	'');
}

function doInitPasswordLookupForm() {
	o_regform = new formObj('o_regform', o_acctutil.doPasswordLookupInterface, DEF_PUBPATH + s_langcode + '/' + DEF_INTRFCELANGPATH, '', '', '', '');
}

function doInitRegForm() { // this method gets called from acctutils if someone wants to register from login window so that o_form can be properly created
   // alert("reg init");
	o_regform = new formObj('o_regform', o_acctutil.doRegDOB, DEF_PUBPATH + s_langcode + '/' + DEF_INTRFCELANGPATH, DEF_PUBPATH + DEF_BADWORDPATH, DEF_TIMEPATH, DEF_PUBPATH + s_langcode + '/' + DEF_CNTRYLISTPATH, DEF_PUBPATH + s_langcode + '/' + DEF_STATELISTPATH);
}

/*function doUpdateJWPlayer(s_path_fp) {
    if (s_path_fp !== '#') {
        var s_path = URLPATH + 'media/flv/' + s_path_fp;
        o_jwplayer.sendEvent('LOAD',s_path);
        o_jwplayer.sendEvent('PLAY');
    }
}*/

function doUpdateJWPlayer(s_id_fp) {
	o_jwplayer.hiro_loadPlaylistByURL(s_id_fp);
}

function getLang() {
	// and figure out where we are on the planet
	o_cookie = new cookieUtilObj(); // refence to cookieUtilObj instance
	s_langcode = o_cookie.readCookie(KEY_LANGCOOKIE); // value of lang cookie
}

function getSection() {
	// figure out where we are in the site
	o_util = new siteUtils('o_util'); // reference to siteUtils instance
	s_section = o_util.getUriValue(KEY_SECT); // ?section=
}

function getHomeVideo() { // oh, what a dreadful hack this is :(
	var a_videopath = new Array();
	a_videopath['de-de'] = 'f08_lila_de-de.flv';
	a_videopath['en-au'] = 'invincible_en.flv';
	a_videopath['en-ca'] = 'invincible_en.flv';
	a_videopath['en-uk'] = 'invincible_en.flv';
	a_videopath['en-us'] = 'invincible_en.flv';
	a_videopath['es-es'] = 'f08_kidzsnapon_es-es.flv';
	a_videopath['es-mx'] = 'f08_bgrr_es-mx.flv';
	a_videopath['fr-be'] = 'f08_magichairdoll_fr-lu.flv';
	a_videopath['fr-ca'] = 'invincible_en.flv';
	a_videopath['fr-fr'] = 'f08_magichairdoll_es-es.flv';
	a_videopath['fr-lu'] = 'f08_magichairdoll_fr-lu.flv';
	a_videopath['nl-be'] = 'f08_bgrr_nl-nl.flv';
	a_videopath['nl-nl'] = 'f08_bgrr_nl-nl.flv';
	return a_videopath[s_langcode];
}

function outMainPromoSwf() {
	o_styleutil.doElementContent('div-lgpromocontainer', HTML_HOMEVIDEOPLAYER);
}

function playerReady(thePlayer) { //this method is called by the JWPlayer to return its DOM handle
    //alert('playerReady fired');
    o_jwplayer = window.document[thePlayer.id]; 
}

function setAcctCtrls() {
	// get the account utils loading in the background
	var s_interfacelangpath = DEF_PUBPATH + s_langcode + '/'
			+ DEF_INTRFCELANGPATH;
	var s_langlistpath = DEF_PUBPATH + '/' + DEF_LANGLISTPATH;
	var s_skinlistpath = DEF_PUBPATH + s_langcode + '/' + DEF_SKINPATH;
	o_acctutil = new acctUtils('o_acctutil', s_interfacelangpath,
			s_langlistpath, s_skinlistpath, s_langcode, DEF_SKINCOOKIE,
			DEF_LANGCOOKIE, DEF_REGPATH, DEF_LOGINPATH, DEF_ACCTINFOPATH,
			DEF_ACCTMAINTPATH);
	o_acctutil.setCtrlDivs(DEF_CTRLCOVER, DEF_CTRLDIALOG);
	return;
}

function setUtils() {
	o_menuutil = new menuUtils('o_menuutil');
	o_styleutil = new styleUtils('o_styleutil');
	o_anim = new animObj('o_anim');
}

function setPage() { // our main switching function
	getSection();
	getLang();
	setAcctCtrls();
	setUtils();

	switch (s_section) { // set the page up based on where we are
	case SW_HOME:
		doHomePage();
	case SW_PROD:
		doProdPage();
		break;
	case SW_PRODLANDING:
		break;
	case SW_PRODWTB:
		break;
	case SW_GAME:
	    doRequestGameList();
		break;
	case SW_GAMELANDING:
		break;
	case SW_FCEXCLUSIVES:
		doFCExclPage();
		break;
	case SW_FANCLUB:
		doFanClubPage();
		break;
	case SW_PBLANDING:
		break;
	case SW_PBBIOS:
		break;
	case SW_PBDOWNLOADS:
		break;
	case SW_TUNESTV:
		//alert(document.getElementById('sel-video').value);
		doPlayerInsert('div-player');
		break;
	case SW_BEAT: 
		doInsertBeatBox();
		break;
	case SW_PBBLOG:
		break;
	case SW_PBQUIZ:
		var o_util = new siteUtils('o_util');
		i_quizid = Number(o_util.getUriValue('id'));
	    o_quiz = new quizObj('o_quiz',DEF_PUBPATH + s_langcode + '/' + DEF_QUIZPATH, DEF_PUBPATH + s_langcode + '/' + DEF_INTRFCELANGPATH, DEF_QUIZLOGPATH);
	    o_quiz.doQuiz(i_quizid, 'div-quiz');
	    break;
	case SW_GALLERY:
		doGalleryPage();
		break;
	case "pbmagichairvote":
	    doMagicHairVote();
	    break;
	default:
		doHomePage();
		break;
	}
	doParentRegCheck();
}
