// ###################################################
//  contact global functionality
// ###################################################
var currentTopic = null;
var contactTopic = null; // set once a user selects a topic
var contactTopicGroup = null; // set once a user selects a topic
var preLoadProduct = false; // has the product select been preloaded on page load?
var preLoadTopic = false; // has the topic select been preloaded on page load?
//var contactChannelData = null; // reloaded as user selects a topic
var productFamilyData = new Object(); // will store all channel data as it's loaded
var loadingProductFamilyData = false;
var productFamilyLTAData = new Object(); // will store all lta data
var contactInstantAnswersFilter = null;	// This will tell us when to make the ajax request to get the instant answers
var customerClickedOnTINA = false;
var productFolder = null;

// ###################################################
//  after document load
// ###################################################
$(document).ready(
    function(){

		// IE POS has issues submitting on enter when multiple forms are present, here is the fix!
		if (jQuery.browser.msie) {
			// Apply a keydown event to all input fields
			$('input').keydown(function(e) {
				// If the form is not a search form,
				var oParent = $(this).parents('form');
				var formName = oParent.attr('name');
				if (formName != "searchHeader" && formName != "searchBody") {
					if (e.keyCode == 13) {
						if ($(this).attr('type') != "textarea") {
							// If this form has an input type image and does not have an input type submit... envoke the click() event!
							if (oParent.find('input:image').length == 1 && oParent.find('input:submit').length == 0) {
								oParent.find('input:image').click();
							}
						}
					}
				}
			});
		}

		// setup next button click
		$('#prod_next').bind('click', productSelectNextClick);

		// preload the product box images
		var preloadAry = new Array();
		$.each(productInfo, function (i,val) {
			var years = this.years.split(",");

			for(x = 0; x < years.length; x++)
				preloadAry.push('/' + productFolder + '/images/boxshots/' + years[x] + '/' + this.boxImageIdentifier + years[x] + '.gif');

		});
		// preload topic images
		var count = 0;
		$.each(bucketTopicMap, function () {
			//preloadAry.push('/common/images/icons/small_'+convertTopicName2Token(this[0])+'.gif');
			preloadAry.push('/' + productFolder + '/images/icons/small_'+bucketTopicMap[count][4]+'.gif');
			count++;
		});
		// preload logos

		preloadAry.push('/common/images/contact/topic_bg.gif');
		$.preloadImages(preloadAry);

        setStep1Clicks ();

		if (!preLoadProduct) {
	        setStepStateUI ('step_2','inactive');
		}
		if (!preLoadTopic) {
	        setStepStateUI ('step_3','inactive');
        }

		setupLogin();
		setupLogout();

		if(!isIE6){
			$('a').each(function(){
				if($(this).attr('href') == '#'){
					$(this).attr('href', 'javascript:;');
				}
			});
		}
    }
);

function loginMember(loginId){
	var custNum = $('#' + loginId + "_custNum").val();
	var pCode = $('#' + loginId + "_pCode").val();

	if(jQuery.browser.msie){
		$.post('/common/contact/fragments/login.jsp', {custNum: custNum, pCode: pCode, loginId: loginId}, handleMemberLogin, 'text');
	}
	else{
		$.post('/common/contact/fragments/login.jsp', {custNum: custNum, pCode: pCode, loginId: loginId}, handleMemberLogin);
	}
}

function handleMemberLogin(data){
	var xml = null;
    if ( jQuery.browser.msie && typeof data == 'string' ) {
    	xml = new ActiveXObject( 'Microsoft.XMLDOM');
    	xml.async = false;
    	xml.loadXML( data );
    } else {
    	xml = data;
    }

    var status = $('status', xml).text();
    var loginId = $('loginId', xml).text();

	$('.form_error').removeClass("form_error");

	if(status == "false"){
		$('field', xml).each(function(id){
			var field = $('field', xml).get(id);
			var curr = $(field).text();

			$('#' + loginId + '_' + curr + "_error").addClass("form_error");
			$('#' + loginId + '_' + curr).addClass("form_error");
		});
	}
	else {
		populateChatEmail();
	}
}

function populateChatEmail(){
	var topic = currentTopic[3];
	var topicName = currentTopic[0];

	gatherSystemInfo();

	var osInfo = OS + " " + platform + " " + browser;
	var prodInfo = productInfo[contactProduct].productLevel1 + " " + contactProductYear;

	$.get('/common/contact/fragments/email_form.jsp', {ajaxRequest: 'true', productLocale: productLocale, topic: topic }, function(data){
    	$('.email_form_container').html(data);
    	$.get('/common/contact/fragments/chat_form.jsp', {ajaxRequest: 'true', productLocale: productLocale, chat_ai: chat_ai, chat_di: chat_di, topic: topic, topicName: topicName, osInfo: osInfo, prodInfo: prodInfo }, function(data){
    		$('.chat_form_container').html(data);

    		setupLogout();
    		setupLogin();
    	});
    });

	if(topic == "ps"){
		$(".members_message").html("");
	}
	else{
		$(".members_message").html("&nbsp;" + membersOnlyMessage);
	}
}

function setupLogout(){
	$('#sendEmail').click(sendEmail);
	$('.logoutMember').click(function(){
		$.get('/common/contact/fragments/logout.jsp', handleMemberLogin);
	});
	var contact = getContactInfo();
	if(contact != null) setupEmail(contact);
	if(contact != null) setupChat(contact);
}

function setupLogin(){
	$('#email_login_button').click(function(){
		loginMember("email");
	});

	$('#chat_login_button').click(function(){
		loginMember("chat");
	});

	$('#email_whatIsCustNum').click(function(){
		$('#email_custNumDesc').slideToggle('slow');
	});

	$('#chat_whatIsCustNum').click(function(){
		$('#chat_custNumDesc').slideToggle('slow');
	});
}

function sendEmail() {
	$('#email_error').css('display', 'none');

	var question = $('#question').val();
	var emailKey = $('#emailKey').val();
	var firstName = $('#firstName').val();
	var lastName = $('#lastName').val();
	var emailAddress = $('#emailAddress').val();
	var confirmEmailAddress = $('#confirmEmailAddress').val();
	var os = getProductOS(contactProduct);
	var productName = productInfo[contactProduct].productName;

	gatherSystemInfo();

	var emailOsName = OS;
	var emailOsPlatform = platform;
	var emailBrowser = browser;

	if(jQuery.browser.msie){
		$.post("/common/contact/email/send_email.jsp", { emailKey: emailKey, question: question, firstName: firstName, lastName: lastName, emailAddress: emailAddress, confirmEmailAddress: confirmEmailAddress, topic: currentTopic, os: os, product: productName, year: contactProductYear, emailOsName: emailOsName, emailOsPlatform: emailOsPlatform, emailBrowser: emailBrowser, productFamily: productFamily}, processEmail, 'text');
	}
	else{
		$.post("/common/contact/email/send_email.jsp", { emailKey: emailKey, question: question, firstName: firstName, lastName: lastName, emailAddress: emailAddress, confirmEmailAddress: confirmEmailAddress, topic: currentTopic, os: os, product: productName, year: contactProductYear, emailOsName: emailOsName, emailOsPlatform: emailOsPlatform, emailBrowser: emailBrowser, productFamily: productFamily}, processEmail);
	}
}

function processEmail(data){
	var xml = null;
    if ( jQuery.browser.msie && typeof data == 'string' ) {
    	xml = new ActiveXObject( 'Microsoft.XMLDOM');
    	xml.async = false;
    	xml.loadXML( data );
    } else {
    	xml = data;
    }

	var status = $('status', xml).text();
	var count = 0;
	$('.form_error').removeClass("form_error");
	$('#single_error').css('display', 'none');
	$('#multi_error').css('display', 'none');

	if(status == "fail"){

		$('field', xml).each(function(id){
			var field = $('field', xml).get(id);
			var curr = $(field).text();

			if(curr == 'failed'){
				$('#email_error').css('display', 'block');
			}
			else{
				count++;
				$('#' + curr + "_error").addClass("form_error");
				$('#' + curr).addClass("form_error");
			}
		});

		if(count == 1){
			$('#single_error').css('display', 'block');
		}
		else if(count > 1){
			$('#multi_error').css('display', 'block');
			$('#multi_error_num').text(count);
		}
	}
	else if(status == "success"){
		$('#email_form').css('display', 'none');
		$('#email_success').css('display', 'block');
	}
}

// ###################################################
//  preload product and topic selection
// ###################################################
function preload (product, year, topic) {
	if (product == null || year == null) { return; }
	preLoadProduct = true;
	contactProduct = product;

	$('#product_menu li#prod_'+contactProduct).addClass('on');

	var years = productInfo[contactProduct].years.split(",");

	genterateYears(contactProduct);
	contactProductYear = year;

	$('#product_menu li#prod_year_'+year).addClass('on');

	setStepStateUI ('step_1', 'selected');
	setStep1ProductDisplay (product, year);

	if(topic != '') { // topic selected as well
		preLoadTopic = true;
		contactTopic = topic;
		setStepStateUI ('step_2', 'selected');
        setStep2Clicks();
		setStep2TopicState (contactTopic);
		// get bucket
		var bucket = getContactBucket(convertTopicToken2Name (contactTopic));
    	//var folds = null;

		setStepStateUI ('step_3','active');

		resetStep3();

		setupStep3Channels(bucket);
	} else {
		setStepStateUI ('step_2', 'active');
		setStep2Clicks();
	}

}
function productSelectNextClick () {
	if(contactProduct == 'win_dontknow' || productInfo[contactProduct].years == ''){
		contactProductYear = productInfo[contactProduct].defaultYear;
	}

	if(contactProduct == null || contactProductYear == null) {
		alert('Please select your product and year');
		return;
	}

	$('#top_type').val("edition:" + productInfo[contactProduct].productType);
	$('#top_yr').val("DC.coverage.temporal:" + contactProductYear);
	$('#top_pf').val("platform:" +  productInfo[contactProduct].productPlatform.toUpperCase());

	if(productInfo[contactProduct].productType == 'NONE'){
		$('#bn_if').val("DC.coverage.temporal:&&platform:&&edition:");
		$('#bn_af').val("bn-coverage-temporal:&&bn-platforms:&&bn-product-types:");
	}
	else if(contactProductYear == 'NONE'){
		$('#bn_if').val("DC.coverage.temporal:&&platform:" + productInfo[contactProduct].productPlatform.toUpperCase() + "&&edition:" + productInfo[contactProduct].productType);
		$('#bn_af').val("bn-coverage-temporal:&&bn-platforms:" + productInfo[contactProduct].productPlatform.toUpperCase() + "&&bn-product-types:" + productInfo[contactProduct].productType);
	}
	else if(contactProductYear == 'PREVIOUS'){
		var previousYears = "";
		if (productInfo[contactProduct].productPlatform.toUpperCase() == "W"){
			eval("previousYears = " + productInfo[contactProduct].productType + "years['PREVIOUS'].value;");
		}
		else{
			eval("previousYears = " + productInfo[contactProduct].productType + productInfo[contactProduct].productPlatform.toUpperCase() + "years['PREVIOUS'].value;");
		}

		yearArray = previousYears.split(":");

		$('#bn_if').val("DC.coverage.temporal:" + yearArray[1] + "&&platform:" + productInfo[contactProduct].productPlatform.toUpperCase() + "&&edition:" + productInfo[contactProduct].productType);
		$('#bn_af').val("bn-coverage-temporal:" + yearArray[1] + "&&bn-platforms:" + productInfo[contactProduct].productPlatform.toUpperCase() + "&&bn-product-types:" + productInfo[contactProduct].productType);
	}
	else{
		$('#bn_if').val("DC.coverage.temporal:" + contactProductYear + "&&platform:" + productInfo[contactProduct].productPlatform.toUpperCase() + "&&edition:" + productInfo[contactProduct].productType);
		$('#bn_af').val("bn-coverage-temporal:" + contactProductYear + "&&bn-platforms:" + productInfo[contactProduct].productPlatform.toUpperCase() + "&&bn-product-types:" + productInfo[contactProduct].productType);
	}

	$.get('/' + productFolder + '/contact/fragments/updateProduct.jsp', {infoSrc: 'qs', type: productInfo[contactProduct].productType, pf: productInfo[contactProduct].productPlatform, yr: contactProductYear}, function(data){
		//alert("ok" + data);
	});

	solutionatorBaynoteGuides = null;
	solutionatorBaynoteGuidesResults = {};

	// update the product header
	setProductHeader(contactProduct);

	// Omniture Tracking
	//trackPageClick("Contact 1", productInfo[contactProduct].omnitureName);

	setStep1ProductDisplay (contactProduct, contactProductYear);
	// close the modal window
    closeModal();
	// record product select in users profile
	//recordProductSelection(contactProduct);
	// get this products channel data while user is selecting their problem
	//getProductFamilyData(getProductFamily(contactProduct), contactProduct.substring(0,3));
    // set step 1 active state
    setStepStateUI ('step_1', 'selected');
	// activate and reset step 2
    setStepStateUI ('step_2', 'active');
	setStep2Clicks();
    // deactive step 3
	setStepStateUI ('step_3', 'inactive');
	resetStep3();
}
function setProductHeader(userPlatformProduct) {
	if (userPlatformProduct == 'win_itsdeductible' || userPlatformProduct == 'onl_estimated' || userPlatformProduct == 'onl_itsdeductible' || userPlatformProduct == 'win_dontknow') {
		userPlatformProduct = 'win_dontknow';
	}
	$('#mini_hdr').removeClass();
	$('#mini_hdr').addClass(userPlatformProduct);
	//$('#ttlogoImg').attr('src',eval("productInfo."+userPlatformProduct+".logoImage.src"));
}
function setStepStateUI (step, state) {
	//$('#' + step).hide();
	// reset the class to default
	//$('#'+step).removeClass('inactive');
    $('#'+step).removeClass('active');
    $('#'+step).removeClass('selected');
    // by default steps are active
    if (state != 'inactive') {
        $('#'+step).addClass(state);
    }
	// replace step three cover
	// not need for step 2 - once the screen has been removed from step 2 it's never replaced
	if (state == 'inactive' && step == 'step_3') {
        $('#step_3_bg').removeClass('active');
		$('#step_3 .accordion_button_cover').css('display','block');
	}
	else{
        $('#step_3_bg').addClass('active');
	}
	//$('#' + step).show();
	//setTimeout("showAll();", 500); // to counter IE6 display oddities
	//setTimeout("showAll();", 5000); // to counter IE6 display oddities
}

/*function showAll(){
	$('#step_1').hide();
	$('#step_2').hide();
	$('#step_3').hide();
	$('#topic_buttons').hide();
	$('#product_menu').hide();
	$('.topic_icon').hide();
	$('#step_1').show();
	$('#step_2').show();
	$('#step_3').show();
	$('#topic_buttons').show();
	$('#product_menu').show();
	$('.topic_icon').show();
}*/
// ###################################################
//  set product display
// ###################################################
function setStep1ProductDisplay (product, year) {
	var productNameNoOs = product.substring(4);
	var productHtml = '';
	var productName = getStep1ProductName (product);
	var yearLabel = year;

	if(product == 'win_dontknow'){
		yearLabel = "";
		productName = unknownDisplay;
	}
	else if(year == 'NONE' || year == 'PREVIOUS'){
		yearLabel = "";
	}

	productHtml += '<div style="float:left;"><img src="/' + productFolder + '/images/boxshots/' + year + '/' + productInfo[product].boxImageIdentifier + year + '.gif" width="60" height="80" border="0" alt="" class="product_box"></div>';
	productHtml += '<div style="float:left;margin-left:10px;width:100px;"><div class="name_btn">'+productName+' '+yearLabel+'<br />';

	$('#grey_btn_change').hide();
	$('#grey_btn_change').show();

	productHtml += '</div>';
	productHtml += '<div class="clear_div"></div></div>';

	$('#step_1_content').html(productHtml);
	setStep1Clicks();
}
// ###################################################
//  send product select to component
// ###################################################
function recordProductSelection (productToken) {
	$.ajax({
		url : "/common/fragments/set_profile.jsp",
		data : {infoSrc: 'qs', pf: productInfo[productToken].productPlatform, type: productInfo[productToken].productType },
		dataType : 'html',
		type: 'POST',
		beforeSend: function () {},
		success: function (data) {},
		error: function () { }
	});
}
// ###################################################
//  setup 1 click functionality
// ###################################################
function setStep1Clicks () {
}
// ###################################################
//  setup 2 click functionality
// ###################################################
function setStep2Clicks () {
	// create the step to buttons & place the html into the topic_buttons div
	//$('#topic_buttons').hide();
	var topicButtonsHTML = createTopicButtons();
	$('#topic_buttons').html(topicButtonsHTML);
	$('#step_2 .topic_button_cover').hide();
	//$('#topic_buttons').show();

    $('#topic_buttons').children('div.topic_button').each(function () { // divs
        var topic_id = $(this).attr('id').substring(6);
        $(this).children('a').click( function () {
			// Omniture Tracking
			//var omnitureValue = convertTopicToken2Name(topic_id).replace("&amp;","&");
			//trackPageClick("Contact 2", omnitureValue);

        	if(productFolder == "quicken/en-ca" || productFolder == "quicken/fr-ca" || productFolder == "profile/en-ca" || productFolder == "profile/fr-ca"){
        		$('.instant_answers_container').load('/' + productFolder + '/fragments/instant_answers/general.jsp');
        	}
        	else{
	        	var token = $(this).attr('id').substring(4);
	        	loadGuide(token, "populateIA");
        	}

            var topic_gr = $(this).attr('name');

            // set the global var
            contactTopic = topic_id;
            contactTopicGroup = topic_gr;
			// set step 2 state
            setStepStateUI ('step_2', 'selected');
			// set the buttons on state
            setStep2TopicState (contactTopic);

            //displayAllFolds();

            // activate step 3
            setStepStateUI ('step_3', 'active');
			setupStep3Channels();

			gatherSystemInfo();

			$('#optionaldata4').val(OS + " " + browser);
			$('#optionaldata5').val(currentTopic[0]);
        });
    });
}

function setStep2TopicState (topic) {
    $('#topic_'+topic).parent().children().children('a').removeClass('on');
    if (topic != '') {
        $('#topic_'+topic).children('a').addClass('on');
    }
}
// ###################################################
//  setup 2 create topic html from data tree per production selection
// ###################################################
function createTopicButtons () {
	var jsLink = "javascript:;";
	if(isIE6){
		jsLink = "#";
	}

	var os = getProductOS(contactProduct);
	if (contactProduct == 'win_dontknow') { // over-ride "don't know"
		os = 'none';
	}
	// get this families topics
	var topics = bucketTopicMap;
	// topic[i][0]: name, topic[i][1]: BUCKET, topic[i][2]: platform
	var topicButtonsHTML = '';
	var topicCount = 0;
	for(i = 0; i < topics.length; i++) {
		if(topics[i] != null && topicCount < 6) {
			var temp = productInfo[contactProduct].displayTopics;
			if (productInfo[contactProduct].displayTopics.indexOf(topics[i][3]) != -1) {
				if (topicCount != 0 && topicCount % 3 == 0) {
					topicButtonsHTML += '<div class="clear_div"></div>';
				}
				var topicToken = topics[i][4]; //convertTopicName2Token (topics[i][0]);
				topicButtonsHTML += '<div id="topic_'+topicToken+'" class="topic_button"><a href="' + jsLink + '" id="btn_'+topics[i][4]+'" name="'+topics[i][3]+'"> <img src="/' + productFolder + '/images/icons/small_'+topicToken+'.gif" width="30" height="30" border="0" class="topic_icon" />'+topics[i][0]+'</a></div>';
				topicCount++;
			}
		}
	}
	topicButtonsHTML += '<div class="clear_div"></div>';
	return topicButtonsHTML;
}
function convertTopicName2Token (name) {
	// lower case
	var token = name.toLowerCase();
	// remove &amp;space
	token = token.replace(" &amp; ", " ", "gi");
	token = token.replace(/[^a-z]/g, " ", "gi");
	// replace space with _
	token = token.replace(/ /g, "_", "gi");
	return token;
}
function convertTopicToken2Name (token) {
	if($('#topic_buttons').children().length == 0) { alert('development error: called before topics defined'); }
	var name = '';
	$('#topic_buttons').children().each(function(){
		if ($(this).attr('id')) {
			var element_id = $(this).attr('id');
			if(element_id.substring(6) == token){
				name = $(this).children('a').text();
			}
		}
	});
	// need to trim name
	name = trim(name);
	name = name.replace("&", "&amp;", "gi");
	token = atozOnly(token);
	return name;
}

function atozOnly(name){
	return name.toLowerCase().replace("&amp;", "&", "gi").replace(/[^a-z]/g, "", "gi");
}

function getProductFamily (product) {
	if( product.indexOf('basic') != -1 || product.indexOf('deluxe') != -1 || product.indexOf('premier') != -1 || product.indexOf('dontknow') != -1) {
		return 'Core';
	}
	if( product.indexOf('homebusiness') != -1 ) { return 'HB'; }
	if( product.indexOf('business') != -1 ) { return 'Biz'; }
	if( product.indexOf('estimated') != -1) { return 'Estimated'; }
	if( product.indexOf('free') != -1) { return 'Free';	}
	if( product.indexOf('freedom') != -1) { return 'Freedom'; }
	return 'Core'; // default
}
function getProductOS (product) {
	if( product.indexOf('win') != -1 || product.indexOf('mac') != -1) { return 'desktop'; }
	if( product.indexOf('onl') != -1 ) { return 'online'; }
	if( product.indexOf('nan') != -1 ) { return 'none'; }
	return 'online'; // default
}
function getContactBucket (topicName) {
	var topics = bucketTopicMap;
	// topic[i][0]: name, topic[i][1]: BUCKET, topic[i][2]: platform
	for(i = 0; i < 10; i++) {
		if(topics[i] != null) {
			if (topics[i][0] == topicName) { return topics[i][1]; }
		}
	}
}
function getContactInfo(){
	var contact = null;

	if(currentTopic != null){
		for(x = 0; x < contactInfo.length; x++){
			var temp1 = contactInfo[x].product;
			var temp2 = contactInfo[x].topicId;
			var temp3 = currentTopic[3];

			if(contactInfo[x].product == contactProduct && contactInfo[x].topicId == currentTopic[3]){
				contact = contactInfo[x];
				break;
			}
		}
	}

	return contact;
}

// ###################################################
//  setup step_3 contact options
// ###################################################
function setupStep3Channels () {
	resetStep3();
	// exit if selections aren't defined
	if (contactProduct == null || contactTopic == null) { return false; }
	// still loading contact channel data?
	if (loadingProductFamilyData) {
		// show loading graphic
		$('#step_3 .loading').css('display','block');
		setTimeout("setupStep3Channels();", 500); // try again in a 1/2 second
		return;
	}

	var contact = null;

	var bucketName = contactTopic;
	for(x = 0; x < bucketTopicMap.length; x++){
		var temp = bucketTopicMap[x][4];
		if(temp == bucketName && bucketTopicMap[x][3] == contactTopicGroup){
			currentTopic = bucketTopicMap[x];
			break;
		}
	}

	contact = getContactInfo();

	setupInstantAnswers();
	if(contact != null){
		populateChatEmail();
		setupPhone(contact);
		setupEmail(contact);
		setupChat(contact);
		setupProAdvisor(contact);
		setupAskTina(contact);
	}
	else{
		hideAllFolds();
	}

	var preloadChannel = gup('channel');
	if (preloadChannel == '') {
		var delayedOpenTO = setTimeout("$('#fold0_link').click();", 500); // open instant answers
	} else {
		switch (preloadChannel) {
			case 'phone':
				var delayedOpenTO = setTimeout("$('#fold1_link').click();", 500);
			break;
			case 'email':
				var delayedOpenTO = setTimeout("$('#fold2_link').click();", 500);
			break;
			case 'chat':
				var delayedOpenTO = setTimeout("$('#fold3_link').click();", 500);
			break;
		}
	}

	$('#step_3 .accordion_button_cover').css('display','none');
}
function resetStep3 () {
	// display default options
	displayAllFolds();
	// close accordions
	accordionMenu1.closeAll();
}
function displayAllFolds(){
	$('#fold0_wrap').css('display','block');
	$('#fold2_wrap').css('display','block');
	$('#fold1_wrap').css('display','block');
	$('#fold3_wrap').css('display','block');
	$('#fold4_wrap').css('display','block');
}
function hideAllFolds(){
	$('#fold2_wrap').css('display','none');
	$('#fold1_wrap').css('display','none');
	$('#fold3_wrap').css('display','none');
	$('#fold4_wrap').css('display','none');
}
// ###################################################
//  setup step_3 instant answers - WILL PULL FROM BAYNOTE
// ###################################################
function setupInstantAnswers () {

}

//###################################################
//setup step_3 phone
//###################################################
function setupPhone(contact) {
	if(contact != null && contact.phone != null){
		$('.phone_container').show();
		$('.phone_closed_container').hide();
		if(contact.phone.wait == false){
			$('.phone_container').hide();
			$('.phone_closed_container').show();
		}
		else if(contact.phone.ignoreYears.indexOf(contactProductYear) != -1){
			$('#fold1_wrap').css('display','none');
		}
		else{
			$('#fold1_content .phone_number').html(contact.phone.number);
			$('#fold1_content .hours_container').html(contact.phone.hours);
			$('#fold1_link .right_content').html(contact.phone.wait);
		}
	}
	else{
		$('#fold1_wrap').css('display','none');
	}
}

// ###################################################
//  setup step_3 email us
// ###################################################
function setupEmail (contact) {
	if(contact != null && contact.email != null){
		if(contact.email.ignoreYears.indexOf(contactProductYear) != -1){
			$('#fold2_wrap').css('display','none');
		}
		else{
			$('#sendEmail').click(sendEmail);

			$('#emailKey').val(contact.email.key);
			$('#fold2_content .hours_container').html(contact.email.hours);
			$('#fold2_link .right_content').html(contact.email.wait);

			$('#question').keydown(function(){
				if(this.value.length > 5000){
					this.value = this.value.substring(0, 5000);
				}
			});
		}
	}
	else{
		$('#fold2_wrap').css('display','none');
	}
}
//###################################################
//setup step_3 chat
//###################################################
function setupChat (contact) {
	if(contact != null && contact.chat != null){
		$('.chat_form_container').show();
		$('.chat_closed_container').hide();
		if(contact.chat.wait == false){
			$('.chat_form_container').hide();
			$('.chat_closed_container').show();
		}
		else if(contact.chat.ignoreYears.indexOf(contactProductYear) != -1){
			$('#fold3_wrap').css('display','none');
		}
		else{
			$('#fold3_content .hours_container').html(contact.chat.hours);
			$('#fold3_link .right_content').html(contact.chat.wait);

			$('#optionaldata11').keydown(function(){
				if(this.value.length > 128){
					this.value = this.value.substring(0, 128);
				}
			});
		}
	}
	else{
		$('#fold3_wrap').css('display','none');
	}
}
// ###################################################
//setup step_3 chat
//###################################################
function setupProAdvisor (contact) {
	if(contact != null && contact.advisor != true){
		$('#fold4_wrap').css('display','none');
	}
}

//###################################################
//setup step_5 asktina
//###################################################
function setupAskTina (contact) {
	if(contact != null && contact.asktina != null){
		$('#fold5_link .right_content').html(contact.asktina.message);
	}
	else{
		$('#fold5_wrap').css('display','none');
	}
}

function convert2HTML(string) {
	string = string.replace("&lt;", "<", "gi");
	string = string.replace("&gt;", ">", "gi");
	return string;
}
jQuery.preloadImages = function() { // send this an array of image srcs to preload
  for(var i = 0; i<arguments[0].length; i++)
  {
	    jQuery("<img>").attr("src", arguments[0][i]);
  }
}