// Todo

// Internal Search keywords
// Q:: How do we handle the filters? as multiple keywords? separate eVars?
//s.prop3 = 'test'; 
//s.prop3="null:test"

// Registration Cancelled
// ~ This needs better conditions
// - $('#step4_cancelled').length > 0
// - include/page_display.inc.php
$(document).ready(function() {
  
  var started_step = { '1' : false, '2' : false, '3' : false};
  var last_product_sku = '';
  var last_product_price = '';

  // When the listing option is changed
  $("input[name='item_number']").change(function(){
    var remove_old = false;
    var item_id = $(this).val();
    var product_title = $('#registration_package_' + item_id).text();
    var product_sku = $('#sku_' + item_id).text();
    var product_price = $('#price_' + item_id).text();
  
    var sjax = s_gi(s_account);
    sjax.linkTrackVars = "eVar11,events,products"; 
    sjax.eVar11 = product_sku + ' :: ' + product_title;
  
    if (started_step['1'] == false) {
      sjax.linkTrackEvents = "event1,scAdd,scOpen";
      sjax.events = sjax.apl(sjax.events,"event1",",",2);
      sjax.events = sjax.apl(sjax.events,"scAdd",",",2);
      sjax.events = sjax.apl(sjax.events,"scOpen",",",2);
      sjax.products = ';' + product_sku + ';1;' + product_price;
      started_step['1'] = true;
    } else {
      sjax.linkTrackEvents = "scAdd";
      sjax.events = sjax.apl(sjax.events,"scAdd",",",2);
      sjax.products = ';' + product_sku + ';1;' + product_price;
      remove_old = true;
    }
    sjax.tl(this, 'o', 'Updated Registration Package');
  
    // Remove the item from the cart
    if (remove_old == true) {
      var sjax2 = s_gi(s_account);
      sjax2.linkTrackVars = "products,events"; 
      sjax2.linkTrackEvents = "scRemove";
      sjax2.products = ';' + last_product_sku + ';1;' + last_product_price;
      sjax2.events = "scRemove";
      sjax2.tl(this, 'o', 'Removed Product');    
    }

    last_product_sku = product_sku;
    last_product_price = product_price;
  });

  // When the registration details are started
  $("#step2 input").change(function(){
    if (started_step['2'] == false) {
      var sjax = s_gi(s_account);
      sjax.linkTrackVars = "events"; 
      sjax.linkTrackEvents = "event13";   
      sjax.events = s.apl(sjax.events,"event13",",",2);
      started_step['2'] = true;
      sjax.tl(this, 'o', 'Updating Registration Login & Contact Details');
    }
  });

  // Listing Contact Form Submission
  if ($('#contact_form_success').length > 0) {
    s.events = s.apl(s.events,"event9",",",2);
    page['action'] = 'listingview_contact_form_completed';
  }

  // Advanced Search Results
  if (page['action'] == 'addon_advancedsearch_showresults' || page['action'] == 'searchresults') {
    page['listing_id'] = '';
    s.events = s.apl(s.events,"event15",",",2);
    s.eVar16 = page['search_options']['cities'] ? page['search_options']['cities'] : 'all';
    s.eVar17 = page['search_options']['state'] ? page['search_options']['state'] : 'all';
    s.eVar18 = page['search_options']['country'] ? page['search_options']['country'] : 'all';
    s.eVar19 = page['search_options']['zipcodes'] ? page['search_options']['zipcodes'] : 'all';
    s.eVar20 = page['search_options']['keywords'] ? page['search_options']['keywords'].toLowerCase() : '';
    s.eVar21 = page['search_options']['filter_with_images'];
    s.eVar22 = page['search_options']['filter_with_virtual_tours'];
    s.eVar23 = page['search_options']['property_classes'];
    s.eVar24 = page['search_options']['price_min'];
    s.eVar25 = page['search_options']['price_max'];
    s.eVar26 = page['search_options']['advanced'];
  
    var keyword_elements = [];
    if (page['search_options']['keywords']) keyword_elements.push(page['search_options']['keywords']);
    if (page['search_options']['country']) keyword_elements.push(page['search_options']['country']);
    if (page['search_options']['state']) keyword_elements.push(page['search_options']['state']);
    if (page['search_options']['cities']) keyword_elements.push(page['search_options']['cities']);
    if (page['search_options']['zipcodes']) keyword_elements.push(page['search_options']['zipcodes']);
    if (page['search_options']['filter_with_images'] == 'true') keyword_elements.push('filter_with_images');
    if (page['search_options']['filter_with_virtual_tours'] == 'true') keyword_elements.push('filter_with_virtual_tours');
    if (page['search_options']['property_classes']) keyword_elements.push(page['search_options']['property_classes']);
    if (page['search_options']['price_min'] || page['search_options']['price_max']) keyword_elements.push('$' + (page['search_options']['price_min'] ? page['search_options']['price_min'] : '0.00') + ' to $' + (page['search_options']['price_max'] ? page['search_options']['price_max'] : '0.00'));
    s.prop3 = keyword_elements.join(', ');
  
    // Search Results Found
    if ($('#nextprev_num_rows').length > 0) {
      s.eVar28 = $('#nextprev_num_rows').text();
    }
  
    // No properties found
    if ($('.no_results').length > 0) {
      s.events = s.apl(s.events,"event16",",",2);
      s.eVar28 = 'null';
      s.prop3 = 'null:' + s.prop3;
    }
  }

  // Auto populated search fields
  if(s.pageName) {
    var prevPage=s.getPreviousValue(s.pageName,'s_gpv_page');
  }

  if(s.prop3) {
    s.prop3=s.eVar9=s.prop3.toLowerCase();
    s.events=s.apl(s.events,"event4",",",2);

    // search origination
    if(prevPage) {
      s.prop10=prevPage;
    }
  }

  // Listing Details View
  if (page['cid'] != '') {
    /* External Campaigns */
  	if(!s.campaign) {
  	  var cid = page['cid'];
  		s.campaign=s.eVar14=s.eVar15=s.getValOnce(cid,'s_campaign',0);
  	}
  }


  // Specialist Details View
  if (page['action'] == 'view_user' && page['user_profile_id'] != '') {
    s.events = s.apl(s.events,"event10",",",2);
  }

  // Listing Details View
  if (page['action'] == 'listingview' && page['listing_id'] != '') {
    s.events = s.apl(s.events,"event5",",",2);
  }

  // Registration Details View - ppl
  if (page['action'] == 'addon_signup_ppl_showpage' && page['has_post_values'] != true) {
    s.eVar5 = 'pay_per_listing';
    s.events = s.apl(s.events,"event11",",",2);
    s.events = s.apl(s.events,"prodView",",",2);
    s.products=";ppl_listings-undecided";
  }

  // Registration Error Page View - ppl
  if (page['action'] == 'addon_signup_ppl_showpage' && page['has_post_values'] == true && $('#signup_errors').length > 0) {
    s.eVar5 = 'pay_per_listing';
    s.events = s.apl(s.events,"event12",",",2);
    page['action'] = 'addon_signup_ppl_showpage_errors';
  }

  // Registration In Progress - Step 3 - ppl
  if (page['action'] == 'addon_signup_ppl_showpage' && page['has_post_values'] == true && $('#step_3').length > 0) {
    s.eVar5 = 'pay_per_listing';
    s.events = s.apl(s.events,"event2",",",2);
    s.events = s.apl(s.events,"scCheckout",",",2);
    page['action'] = 'addon_signup_ppl_showpage_step3';
    var product_sku = $('#step3_sku').text();
    var product_price = $('#step3_price').text();
    s.products = ';' + product_sku + ';1;' + product_price;
  }

  // Registration Completed - Step 3 + Complete - ppl trial
  if ($('#step3_free_listing').length > 0) {
    s.eVar5 = 'pay_per_listing_trial';
    s.events = s.apl(s.events,"event2",",",2); // step 3
    s.events = s.apl(s.events,"event3",",",2); // completed
    s.events = s.apl(s.events,"scCheckout",",",2);
    s.events = s.apl(s.events,"purchase",",",2);
    page['action'] = 'addon_signup_ppl_trial_completed';
    var product_sku = $('#step3_sku').text();
    var product_price = $('#step3_price').text();
    s.products = ';' + product_sku + ';1;' + product_price;
  }

  // Registration Details View - unlimited
  if (page['action'] == 'addon_signup_showpage' && page['has_post_values'] != true) {
    s.eVar5 = 'unlimited';
    s.events = s.apl(s.events,"event11",",",2);
    s.events = s.apl(s.events,"prodView",",",2);
    s.products=";unlimited_listings-undecided";
  }

  // Registration Error Page View - unlimited
  if (page['action'] == 'addon_signup_showpage' && page['has_post_values'] == true && $('#signup_errors').length > 0) {
    s.eVar5 = 'unlimited';
    s.events = s.apl(s.events,"event12",",",2);
    page['action'] = 'addon_signup_showpage_errors';
  }

  // Registration In Progress - Step 3 - unlimited
  if (page['action'] == 'addon_signup_showpage' && page['has_post_values'] == true && $('#step_3').length > 0) {
    s.eVar5 = 'unlimited';
    s.events = s.apl(s.events,"event2",",",2);
    s.events = s.apl(s.events,"scCheckout",",",2);
    page['action'] = 'addon_signup_ppl_showpage_step3';
    var product_sku = $('#step3_sku').text();
    var product_price = $('#step3_price').text();
    s.products = ';' + product_sku + ';1;' + product_price;
  }

  // Registration Completed
  if ($('#step4_sku').length > 0) {
    s.events = s.apl(s.events,"event3",",",2);
    s.events = s.apl(s.events,"purchase",",",2);
    page['action'] = 'registration_completed';
    var product_sku = $('#step4_sku').text();
    var product_price = $('#step4_price').text();
    s.products = ';' + product_sku + ';1;' + product_price;
  }

  // Registration Cancelled
  if ($('#step4_cancelled').length > 0) {
    s.events = s.apl(s.events,"event14",",",2);
    page['action'] = 'registration_cancelled';
    var product_sku = $('#step4_sku').text();
    var product_price = $('#step4_price').text();
    s.products = ';' + product_sku + ';1;' + product_price;
  }

  // Landing Page View
  if (page['action'] == 'landing_page') {
    s.events = s.apl(s.events,"event8",",",2);  
  }

  // Newsletter on Domain View
  if (page['action'] == 'newsletter_page') {
    s.events = s.apl(s.events,"event6",",",2);  
    s.eVar29 = page['landing_page_name'] + ' : ' + page['newsletter_id'];
  }

  // Pitch Page View
  if($('#listAproperty').length > 0 && page['action'] == 'page_display') {
    page['action'] = 'pitch_page_view';
    s.events = s.apl(s.events,"event7",",",2);
  }

  // Purchase Completed

  //s.purchase = ';';

  var page_action = page['action'];
  switch(page['action']) {
    case 'addon_advancedsearch_showpage':
      page_action = 'Advanced Search Customize';
    break;
    case 'index':
      page_action = 'Home Page';
    break;
    case 'page_display':
      page_action = 'Content Page';
    break;
    case 'pitch_page_view':
      page_action = 'Pitch Page View';
    break;
    case 'listingview':
      page_action = 'Listing Details';
    break;
    case 'listingview_contact_form_completed':
      page_action = 'Listing Details Contact Form Completed';
    break;
    case 'searchresults':
      page_action = 'Search Results';
    break;  
    case 'landing_page':
      page_action = 'Landing Page';
    break;
    case 'newsletter_page':
      page_action = 'Newsletter Page';
    break;
    case 'addon_fa_showpage':
      page_action = 'Featured Specialists';
    break;  
    case 'view_users':
      page_action = 'View All Specialists';
    break;  
    case 'view_user':
      page_action = 'Specialist Details';
    break;  
    case 'view_favorites':
      page_action = 'View Favourite Listings';
    break;  
    case 'addon_fa_showpage':
      page_action = 'Featured Specialists';
    break;  
    case 'view_saved_searches':
      page_action = 'Saved Searches';
    break;  
    case 'addon_savedsearches_showpage':
      page_action = 'Saved Searches';
    break;  
    case 'member_login':
      page_action = 'Login';
    break;
    case 'view_listing_image':
      page_action = 'Listing Image Details';
    break;  
    case 'addon_advancedsearch_showresults':
      page_action = 'Advanced Search Results';
    break;
    case 'addon_signup_edit_listings':
      if (page['edit_id'] != '') {
        page_action = 'Edit Listing';
      } else {
        page_action = 'View All Listings';
      }
    break;
    case 'addon_signup_edit_vtour_images':
      page_action = 'Listing Virtual Tour Images Edit';
    break;
    case 'addon_signup_edit_listing_files':
      page_action = 'Listing Files Edit';
    break;
    case 'addon_signup_edit_listing_images':
      page_action = 'Listing Images Edit';
    break;
    case 'addon_fa_subscribe':
      page_action = 'Featured Agent Subscribe Details';
    break;
    case 'addon_signup_admin':
      page_action = 'Add More Listings';
    break;
    case 'addon_signup_ppl_upgrade_submit':
      page_action = 'Add More Listings Confirmation';
    break;
    case 'addon_signup_ppl_showpage':
      page_action = 'Registration Pay Per Listing Details';
    break;
    case 'addon_signup_ppl_showpage_errors':
      page_action = 'Registration Pay Per Listing Errors';
    break;
    case 'addon_signup_ppl_showpage_step3':
      page_action = 'Registration Pay Per Listing Step 3';
    break;
    case 'addon_signup_ppl_trial_completed':
      page_action = 'Registration Pay Per Listing Trial Completed';
    break;
    case 'addon_signup_showpage':
      page_action = 'Registration Unlimited Listings Details';
    break;
    case 'addon_signup_showpage_errors':
      page_action = 'Registration Unlimited Listings Errors';
    break;
    case 'addon_signup_showpage_step3':
      page_action = 'Registration Unlimited Listings Step 3';
    break;
    case 'registration_completed':
      page_action = 'Registration Completed';
    break;
    case 'registration_cancelled':
      page_action = 'Registration Cancelled';
    break;
  }

  var id_details = [];
  if (page['image_id'] && page['image_id'] != '') { id_details.push('image_id=' + page['image_id']); }
  if (page['user_profile_id'] && page['user_profile_id'] != '') { id_details.push('user_profile_id=' + page['user_profile_id']); }
  if (page['listing_id'] && page['listing_id'] != '') { id_details.push('listing_id=' + page['listing_id']); }
  if (page['page_id'] && page['page_id'] != '') { id_details.push('page_id=' + page['page_id']); }
  if (page['property_class_id'] && page['property_class_id'] != '') { id_details.push(page['search_options']['property_classes']); }
  if (page['edit_id'] && page['edit_id'] != '') { id_details.push('edit_id=' + page['edit_id']); }
  if (page['landing_page_name'] && page['landing_page_name'] != '') { id_details.push(page['landing_page_name']); }
  if (page['newsletter_id'] && page['newsletter_id'] != '') { id_details.push(page['newsletter_id']); }

  var page_name = [];
  page_name.push(om['domain']); // domain
  if(page['admin'] == true) {page_name.push('admin'); } // admin
  page_name.push(page_action); // action
  if(id_details.length > 0) { page_name.push(id_details.join(', ')); } // id
  if(page['has_post_values'] == true) { page_name.push('posted values') } // posted?
  // if(page['title'] != '') { page_name.push(page['title']); } // Don't use the title, as it may change and split the same pages in reports

  s.pageName = page_name.join(' : ');
  s.heir1 = page_name.join(' :: ');
  s.channel = page_name[0];
  s.prop2 = om['domain'];
  s.prop4 = page['account_type'];
  s.prop5 = page_name[1];
  s.prop6 = page_name[2];
  s.prop7 = page_name[3];
  s.prop8 = page_name.join(' :: ');
  s.prop9 = page['load_time'];

  s.eVar1="::User-Agent"
  s.eVar4 = page['account_type'];
  if(page['user_id'] != '') {
    s.eVar6 = page['user_id'];
  }
  s.eVar10 = om['domain'];

  // Send it
  $(document).ready(function(){
    var s_code=s.t(); 
    if (s_code) { document.write(s_code); }
  });
}); // on document ready