// Essentials.js
// Author: Terry Latanville
// v3.0
var info;
var win;
var attributes = {};
var params = { bgcolor : "#000000", allowfullscreen : "true", allowscriptaccess : "always" };
var parentsLogin;
var ENVIRONMENT =
{
  CURRENT : "",
  OPTIONS : { DEV : "DEV", STAGING : "STAGING", LIVE : "LIVE", OPS : "OPS", UAT : "UAT" }
};

ENVIRONMENT.CURRENT = ENVIRONMENT.OPTIONS.LIVE;

var LOGINTYPES =
{
 CHILD    : 0,
 PARENT   : 1,
 REGISTER : 2
};

var CONNECTIONINFO =
{
 SERVER_URLS      :
 {
   GANZ           :
   {
	  UAT         : {
		URLS : ["http://10.0.56.104"],
		PORT : 8180
	 },
     OPS          : {
		URLS : ["http://192.168.53.184"],
		PORT : 8180
	 },
     DEV          : {
		URLS : ["http://192.168.53.143"],
		PORT : 80
	 },
     STAGING      : {
		URLS : ["http://192.168.56.121"],
		PORT : 8180
	 },
     LIVE         :
	 {
		URLS : [
		   "http://gsf1.webkinzjr.com",
		   "http://gsf2.webkinzjr.com",
		   "http://gsf3.webkinzjr.com",
		   "http://gsf4.webkinzjr.com",
		   "http://gsf5.webkinzjr.com",
		   "http://gsf6.webkinzjr.com",
		   "http://gsf7.webkinzjr.com",
		   "http://gsf8.webkinzjr.com",
		   "http://gsf9.webkinzjr.com",
		   "http://gsf10.webkinzjr.com"
		 ],
		PORT : 80
	 }
   }
 },
 FRAMEWORKS        :
 {
   DEFAULT         : "FrameworkBooter.swf"
 },
 RUNNERS           :
 {
   DEFAULT         : "Runner.swf"
	},
 HTMLPAGES         :
 {

CHILDAREAURL    : "childsite/WebkinzRunner.html",
   PARENTSLOGINURL : "ParentsArea-login.html",
   PARENTSAREAURL  : "parentsarea/ParentsArea.html",
   REGISTERURL     : "registration/Registration.html",
   TOURURL         : "http://" + window.location.hostname + "/vid/tour_player.html",
   DELUXETOURURL   : "http://" + window.location.hostname + "/vid/deluxe_player.html",
   STOREURL        : "https://www.ganzestore.com/estorews.wsdl",
   STORELOCATORURL : "http://storelocator.webkinzjr.com/html/locations/",
   BUMPERURL       : "https://www.ganzestore.com/product/79/76",
   PARENTSJSPURL   : "http://" + window.location.hostname + "/page.jsp?res=deluxeMembership",
   OPTIONS         : "height=680,"+
                     "width=1000,"+
                     "toolbar=0,"+
                     "titlebar=1,"+
                     "location=0,"+
                     "status=0,"+
                     "directories=0,"+
                     "menubar=0,"+
                     "scrollbars=0,"+
                     "resizable=0"


 }
};

var GANZ =
{
 USER                    : "",
 PASSWORD                : "",
 SERVER_URL              : "",
 SERVER_PORT             : 80,
 ERROR_DIALOG_URL 	 : "WJr_Error.swf",
 PRELOADER_URL 		 : "preloader.swf",
 TEST_SERVER_PATH        : String( location ).substring( 0, String( location ).lastIndexOf( "/" ) ) + "/fakeResults",
 FRAMEWORK               : CONNECTIONINFO.FRAMEWORKS.DEFAULT,
 RUNNER                  : CONNECTIONINFO.RUNNERS.DEFAULT,
 MAKE_CONNECTION         : true,
 PARENT_SITE_LOGIN_URL   : "http://" + window.location.hostname + "/" + CONNECTIONINFO.HTMLPAGES.PARENTSLOGINURL,
 ESTORE_SERVICE_ROOT_URL : CONNECTIONINFO.HTMLPAGES.STOREURL,
 DELUXE_SITE_URL         : CONNECTIONINFO.HTMLPAGES.PARENTSJSPURL,
 LOG_CLASSES             : "",
 RPC_TRANSPORT           : "AsRpc FULL DUPLEX HTTP"
};

function clearField( field ) { field.value = ""; }

function login( formID, type )
{
	var parameters = CONNECTIONINFO.HTMLPAGES.OPTIONS;
	parameters += (screen.height < 769) ? ",fullscreen=yes" : ",fullscreen=no"
 if(formID != null)
 {
  var form = document.getElementById( formID );
  info = { USER : form.username.value, PASSWORD : form.password.value };
  form.username.value = "";
  form.password.value = "";
 }
 switch( type )
 {
  case LOGINTYPES.CHILD : 
   win = window.open( CONNECTIONINFO.HTMLPAGES.CHILDAREAURL, "WebKinzJr", parameters );
   break;

  case LOGINTYPES.PARENT :
   window.opener.parentsLogin = window;
   window.opener.putLoginInfo( info );
   window.location = CONNECTIONINFO.HTMLPAGES.PARENTSAREAURL;

break;

  case LOGINTYPES.REGISTER :
   win = window.open( CONNECTIONINFO.HTMLPAGES.REGISTERURL, "WebKinzJr", parameters );
   break;
 }
}

function putLoginInfo( obj ) { info = obj; }

function getLoginInfo( win, obj )
{
 for( var p in info ) { obj[ p ] = info[ p ]; }

 win.onLoginData( obj );
 obj = null;
 // if(parentsLogin != null) { parentsLogin.close(); }
}

function popups( action )
{
 var defaultParameters = "toolbar=0,titlebar=0,location=0,status=0,directories=0,menubar=0";
 switch( action )
 {
  case 'tour':
   var parameters = "left="+(screen.width-512)/2+",top="+(screen.height-392)/2+",height=392,width=512,"+
                defaultParameters+
                ",scrollbars=0,resizable=0";
   win = window.open( CONNECTIONINFO.HTMLPAGES.TOURURL, "webkinztour", parameters );
   break;
  case 'deluxe-tour':
   var parameters = "left="+(screen.width-512)/2+",top="+(screen.height-392)/2+",height=392,width=512,"+
                defaultParameters+
                ",scrollbars=0,resizable=0";
   win = window.open( CONNECTIONINFO.HTMLPAGES.DELUXETOURURL, "deluxetour", parameters );
   break;
  case 'register':
   login( null, LOGINTYPES.REGISTER );
   break;
  case 'parents':
    win = window.open( CONNECTIONINFO.HTMLPAGES.PARENTSLOGINURL, "ParentsArea", "menubar=0,resizable=0,width=1000,height=680" );
   break;
  case 'estore':
   win = window.open( CONNECTIONINFO.HTMLPAGES.BUMPERURL, "StoreArea", "" );
   break;
  case 'store':
   win = window.open( CONNECTIONINFO.HTMLPAGES.BUMPERURL, "StoreArea", "" );
   break;
  case 'store-locator':
   var parameters = "left="+(screen.width-817)/2+",top="+(screen.height-800)/2+",height=593,width=735,"+
                    defaultParameters+
                    ",scrollbars=1,resizable=0";
   win = window.open( CONNECTIONINFO.HTMLPAGES.STORELOCATORURL, "StoreLocator", parameters );
   break;
 }
}

function openChild()
{
 var myURL = location.toString();
 myURL = myURL.substring( 0, myURL.lastIndexOf( "/" ) ) + "/";
 win = window.open( myURL + CONNECTIONINFO.HTMLPAGES.CHILDAREAURL,"WebKinzJr","menubar=0,resizable=0,width=1000,height=680");
}

function closeThis() { window.close(); }

//e is event object passed from function invocation
function checkEnter( e, loginFormID, loginType )
{
 var characterCode = -1; // literal character code will be stored in this variable
 //if which property of event object is supported (NN4)
 if( e && e.which )
 {
  e = e;
  characterCode = e.which; //character code is contained in NN4's which property
 }
 else { characterCode = e.keyCode; }//character code is contained in IE's keyCode property

 //if generated character code is equal to ascii 13 (if enter key)
 if(characterCode == 13)
 {
  login( loginFormID, loginType ); //submit the form
  return false;
 }
 else { return true; }
}

function toggleFAQ(givenObj) {
 if(givenObj) {
  var parent = givenObj.parentNode.parentNode;
  
  if (parent.tagName == "DL") {
   parent.style.display = "none";
   parent.className = (parent.className == "faq closed" ? "faq open" : "faq closed");
   parent.style.display = "block";
  }
 }
}

function toggleAllFAQ(givenState) {
 if (typeof givenState == "boolean") {
  var contentBody = document.getElementById("pageContent");
  
  replaceState = (givenState ? "faq open" : "faq closed")
  
  var faqs = document.getElementsByTagName("DL");
  
  for(var i=0; i< faqs.length; i++) {
   if (faqs[i].className.indexOf("faq") > -1) {
    faqs[i].style.display = "none";
    faqs[i].className = replaceState;
    faqs[i].style.display = "block";
   }
  }
 }
}

