/* 
File:		rhs.js
Created:	2010-07-13, VB.
Desc:		(mostly) jQuery calls to handle the VCA RHS tabs
*/

var VCA_DOMAIN = ".villagecinemas.com.au" ;

/* Staging Link - COMMENT OUT ON PRODUCTION RELEASE */
//var STANDARD_DOMAIN = "https://secure.villagecinemas.com.au/" ;
//var NON_SSL_DOMAIN = 'http://staging.villagecinemas.com.au/' ;

/* Production Link - UNCOMMENT ON PRODUCTION RELEASE */
var STANDARD_DOMAIN = "https://secure.villagecinemas.com.au/" ;
var NON_SSL_DOMAIN = 'http://villagecinemas.com.au/' ;


var VCA_MEMBER_ID = "MemberID"	;
var VISTA_MEMBER_ID_COOKIE = "VistaMemberCookie"	;
var VCA_WSURL = STANDARD_DOMAIN + "visInternetticketing/MemberData/visMbrGetRecognition.aspx?MbrID=" ;


function callWebService(sUrl, sMemberID) {
	try{
		var VistaMemberID = readCookie(VISTA_MEMBER_ID_COOKIE) ;
		if( VistaMemberID ) {
			$.ajaxSetup({ cache: false });	//disable cache.

			getRHSDivs() ;

			$('#VCA_Response').load(sUrl + sMemberID + ' #lblResult', 
					function(text, status, xHttpReq) {
						if (status == "error") {
						}
						else {	
							var xml = $('#VCA_Response').text() ;
							var MemberID = getElementVal( xml, 'MemberID' ) ;
							var AnniversaryDate = getElementVal( xml, 'AnniversaryDate' ) ;
							var Balance = getElementVal( xml, 'Balance' );
							var RecognitionEarned = getElementVal( xml, 'RecognitionEarned' );
							var RecognitionExpiryDate = getElementVal( xml, 'RecognitionExpiryDate' );
				
							createCookie( 'AnniversaryDate', AnniversaryDate, VCA_DOMAIN ) ;
							createCookie( 'Balance', Balance, VCA_DOMAIN ) ;
							createCookie( 'RecognitionEarned', RecognitionEarned, VCA_DOMAIN ) ;
							createCookie( 'RecognitionExpiryDate', RecognitionExpiryDate, VCA_DOMAIN ) ;
							getRHSDivs() ;
						} 
					}
			 ) ; 
		}
		else{
			getRHSDivs() ;
		}
	}
	catch( e ) { }
}



function callWebServiceTriggered(sUrl, sMemberID, vistaLoginStatus) {

	try{
		var VistaMemberID = readCookie(VISTA_MEMBER_ID_COOKIE) ;
		if( VistaMemberID ) {

			$.ajaxSetup({ cache: false });	//disable cache.
			$('#VCA_Response').load(sUrl + sMemberID + ' #lblResult', 
					function(text, status, xHttpReq) {
						if (status == "error") {
							setDefaultMemberPoints();
							location.href = STANDARD_DOMAIN + "member/newMember.asp" ;
						}
						else {	
							var xml = $('#VCA_Response').text() ;
	
							var MemberID = getElementVal( xml, 'MemberID' ) ;
							var AnniversaryDate = getElementVal( xml, 'AnniversaryDate' ) ;
							var Balance = getElementVal( xml, 'Balance' );
							var RecognitionEarned = getElementVal( xml, 'RecognitionEarned' );
							var RecognitionExpiryDate = getElementVal( xml, 'RecognitionExpiryDate' );
				
							createCookie( 'AnniversaryDate', AnniversaryDate, VCA_DOMAIN ) ;
							createCookie( 'Balance', Balance, VCA_DOMAIN ) ;
							createCookie( 'RecognitionEarned', RecognitionEarned, VCA_DOMAIN ) ;
							createCookie( 'RecognitionExpiryDate', RecognitionExpiryDate, VCA_DOMAIN ) ;
							if( vistaLoginStatus ) {
								location.href = STANDARD_DOMAIN + "member/newMember.asp" ;
							}
						} 
						
					}) ; 
		}
		else{
			getRHSDivs() ;
		}
	}
	catch( e ) {}
}


function pause(millis) 
{
        var date = new Date();
        var curDate = null;

        do { curDate = new Date(); } 
        while(curDate-date < millis)
}


function getElementVal( text, el ) {
	var nS = text.indexOf('<' + el + '>') + el.length + 2 ; 
	var nE = text.indexOf('</' + el + '>', nS ) ; 

	return( text.substr( nS, nE-nS) ) ;
}

function setDefaultMemberPoints() {
	try{
		createCookie( 'AnniversaryDate', '', VCA_DOMAIN ) ;
		createCookie( 'Balance', '', VCA_DOMAIN ) ;
		createCookie( 'RecognitionEarned', '', VCA_DOMAIN ) ;
		createCookie( 'RecognitionExpiryDate', '', VCA_DOMAIN ) ;
	} catch(e){}
}




function setRHSDivs( vistaLoginStatus ) {		//caller: @sidebar.asp

	var vcaMemberID = readCookie(VCA_MEMBER_ID) ;	

	if( vistaLoginStatus ) {
		callWebServiceTriggered(VCA_WSURL, vcaMemberID, vistaLoginStatus) ;
	}
	else{
		callWebService(VCA_WSURL, vcaMemberID) ;
	}

}





function getRHSDivs() {		//caller: @sidebar.asp


	var VistaMemberID, MemberFirstName, AnniversaryDate, Balance, RecognitionEarned, RecognitionExpiryDate ;

	// read cookies first.
	var VistaMemberID = readCookie(VISTA_MEMBER_ID_COOKIE) ;
	var MemberFirstName = readCookie('MemberFirstName') ;
	
	Balance = readCookie('Balance') ;
	RecognitionEarned = readCookie('RecognitionEarned') ;
	RecognitionExpiryDate = readCookie('RecognitionExpiryDate') ;


	if( !Balance ) {
		Balance = 0 ;
	}
	else {
		Balance = parseInt(Balance);
	}
	if( !RecognitionEarned ) {
		RecognitionEarned = 0 ;
	}
	else {
		RecognitionEarned = parseInt(RecognitionEarned);
	}
	
	if( !RecognitionExpiryDate ) {
		RecognitionExpiryDate = '' ;
	}



	/*** HARDCODED vars
	RecognitionEarned = 5 ;
	Balance=5;
	RecognitionExpiryDate = "1/10/2010" ;
	createCookie("Balance","5",".villagecinemas.com.au");
	createCookie("RecognitionEarned","5",".villagecinemas.com.au");
	createCookie('RecognitionExpiryDate', RecognitionExpiryDate, ".villagecinemas.com.au") ;
	*///END 



	var bVMCPage = (location.href.toLowerCase().indexOf('newmember.asp') > -1) ;
	var bOLTPage = (location.href.toLowerCase().indexOf('sessiontime/') > -1) ;
	var bHasReward = false ;

	if( VistaMemberID ) {	//Logged-in!

		LoadMemberData( MemberFirstName, RecognitionExpiryDate ) ;

		showDiv( '#RHS-VISTAlogin', 'hide' ) ;
		showDiv( '#RHS-MemberPrompt', 'hide' ) ;
		
		if( RecognitionEarned > 0) {	//Reward Points
			switch( RecognitionEarned ) {
			case 5:
				bHasReward = true ;
				showDiv( '#RHS-VISTAloggedinNine' ) ;
				break;
			case 6:
				bHasReward = true ;
				showDiv( '#RHS-VISTAloggedinFree' ) ;
				break;
			}
		}
		
		if( bVMCPage ) {	//VMC Pages only
		showDiv( '#RHS-VISTAloggedin' ) ;
		showDiv( '#RHS-LogoutPrompt' ) ;
			if( bHasReward ) {	//Redeem Reward
				showDiv( '#RHS-VISTAloggedin', 'hide' ) ;
				showDiv( '#RHS-BuyTickets', 'hide' ) ;
				showDiv( '#RHS-RedeemRewards' ) ;
			}
		}
		else {	//Non-VMC page or Sessiontimes Page
			if( bHasReward ) {	//Redeem Reward
				//showDiv( '#RHS-VISTAloggedin', 'hide' ) ;
				showDiv( '#RHS-BuyTickets', 'hide' ) ;
				showDiv( '#RHS-RedeemRewards' ) ;
			}
			else {
				var MAX_POINTS = 10 ;
				if( (Balance >= 0) && (Balance <= MAX_POINTS) ) {	//Balance Points
					var nBalance = (MAX_POINTS - Balance ) ;
					if( nBalance > 0 ) {
						$('#RHS-VISTAloggedin2Go').removeClass();
						showDiv( '#RHS-VISTAloggedin2Go', 'numberToGo' + nBalance.toString() ) ;	
					}
				}
			}
			showDiv( '#RHS-NonVMC-LogoutPrompt' ) ;
		}

	}

	else{ 	//Not Logged-in!

		if( bOLTPage ) {	//Buy Tickets OnLine Page
			showDiv( '#RHS-VISTAlogin', 'hide' ) ;
			showDiv( '#RHS-MemberPrompt', 'hide' ) ;
		}
		else {	//VMC/Non-VMC Page
			showDiv( '#RHS-VISTAlogin' ) ;
			showDiv( '#RHS-MemberPrompt' ) ;
		}
		showDiv( '#RHS-VISTAloggedin', 'hide' ) ;
		showDiv( '#RHS-LogoutPrompt', 'hide' ) ;
		showDiv( '#RHS-NonVMC-LogoutPrompt', 'hide' ) ;
	}

}



function LoadMemberData( Fname, RewardExpiry ) {
	try{
		if( Fname ) { 
			$('.FName').text(''); 
			$('.FName').append( Fname ); 
		}
		if( RewardExpiry ) 
		{ 
			$('.RewardExpiry').text(''); 
			$('.RewardExpiry').append( 'Expires ' + RewardExpiry ); 
		}
	} catch(e){}
}


function createCookie(name,value,domain) {
	var path = '; path=/'  ;
	var domain = '; domain=' + domain ;
	document.cookie = name + "=" + value + path + domain + ';' ;
	return null ;
}


function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}


function showDiv( id, css ) {
	try{
		if(!css) { $(id).removeClass();	}
		if( $(id).hasClass(css) ) { return; } 
		$(id).addClass( css );
	} catch(e){}
}


function hideDiv( id, css ) {
	if( css && $(id).hasClass(css) ) {
		$(id).removeClass( css );
	}
}	
	
