// Hide nav if empty
if ($j14('#ka_headerSubNav_list > li:first > a').html()==null) {
    $j14('#ka_headerSubNav').remove();
}

$j14(document).ready(function(){
  // all calls to modify/register page stuff should be made into functions, and
  // called here.
  check_userid_cookie();
  check_returnto();
  add_tweetmeme_buttons();
  addFindFriendsLink();
  injectEventRego();
  confirmUsername();
  regoProfileEditHook();
  myHydrantLogin();
});

var regoFormAjaxComplete = false;
var regoFormAjaxInProgress = false;

function myHydrantLogin() {
	// If not logged in
	if (Ka.Info.USERID == '') {
		// if My Hydrant sidebar exists, add Log In item	 
		if ($j14('#sh_rightnav_list').length) {
			$j14('#sh_rightnav_list').prepend('<li><a class="login-link icon-friends" href="http://you.sportshydrant.com/user/displayUserLoginPage.kickAction?as=57111">Log In</a></li>');
		}
	}
}

function confirmUsername() {
  // only if we haven't done it this session, and we are logged in
  if (Ka.Info.USERNAME && !getCookie('confirmed_' + Ka.Info.USERNAME)) {
    // Do the confirm call 
    $j14.ajax({
      dataType: 'jsonp',
      data: {userid: Ka.Info.USERID, username: Ka.Info.USERNAME},
      url: "http://sportshydrant.com/registration/confirm",
      success: function (data) {
        // callback with data
        document.cookie = 'confirmed_' + Ka.Info.USERNAME + '=true' +
                            ';domain=.sportshydrant.com;path=/';
      },
      error: function( objAJAXRequest, strError ) {
        // ignore, will try again on next request
      }
    });
  }
}

function regoProfileEditHook() {
  if (Ka.Info.PAGE === 'pages/manageAccountSettings.jsp') {
    $j14("#AccountSettings").submit(function () {
      if (!regoFormAjaxComplete) {
        if (regoFormAjaxInProgress) {
          // do nothing,
          return false;
        }
        else {
          $j14.ajax({
            dataType: 'jsonp',
            data: {userid: Ka.Info.USERID, newemail: $j14('#email').val(), username: Ka.Info.USERNAME},
            url: "http://sportshydrant.com/registration/update_email",
            success: function (data) {
              // callback with data
              regoFormAjaxComplete = true;
              regoFormAjaxInProgress = false;
              $j14("#AccountSettings").submit();
            },
            error: function( objAJAXRequest, strError ) {
              // if we error on kickapps stats, reload and try again.
              alert("We're sorry, and error occured. Please try again soon");
              location.reload();
            }
          });
          regoFormAjaxInProgress = true;
          return false;
        }
      }
      else {
        //alert('would be submitting form now..');
        //return false; // for dev.
        // Remove checkbox for good measure.
        return true;
      }
    });
  }
}

function injectEventRego() {
  // Cookie can interfere
  document.cookie = 
    'kid_cookie=; expires=Thu, 01-Jan-70 00:00:01 GMT; ' +
    'domain=you.sportshydrant.com; path=/';
  // Set/update cookies if params exist - to persist across page loads
  if (Ka.Info.PAGE == "login/registerUser.jsp" && gup('eventid') && gup('eventname')) {
    document.cookie = 'rego_eventid=' + gup('eventid') +
                        ';domain=.sportshydrant.com;path=/';
    document.cookie = 'rego_eventname=' + gup('eventname') +
                        ';domain=.sportshydrant.com;path=/';
    document.cookie = 'rego_host=' + gup('sitehost') +
                        ';domain=.sportshydrant.com;path=/';
  }
  // Check we are on the rego page, and have params.
  if (Ka.Info.PAGE == "login/registerUser.jsp" && getCookie('rego_eventid') && getCookie('rego_eventname')) {
    
	// set in cookies to persist across page loads.
	var eventName = unescape(getCookie('rego_eventname'));
    var sitehost = unescape(getCookie('rego_host'));
    var eventid = getCookie('rego_eventid');

	// Add/Hide form elements to put focus on event 
	$j14('.ka_optional').hide();
	$j14('.ka_required legend').hide();
	$j14('.ka_required').prepend('<img src="http://events.sportshydrant.com/assets/images/branding/banner_700.jpg" width="700" />');
	
	$j14('ol#ka_joinRequired').before('<ul style="border:1px solid #CCC; margin:-1px 0 20px; padding:15px 0px 10px 160px; background-color:#FAFAFA;"><li><span style="color:#E2007A; font-weight:bold; padding-right:10px;">Yes, I would like to attend ' + eventName + '</span><input type="checkbox" id="eventRegoCheckbox" name="eventRegoCheckbox" checked="yes"></li><li id="ka_eventRegoLocation"><label for="eventRegoLocation" style="color:#E2007A; font-weight:bold;">Choose your Sport for Women Day Location:<select style="margin-left:15px; width:100px;" id="eventRegoLocation" name="eventRegoLocation"><option value="Sydney">Sydney</option><option value="Canberra">Canberra</option><option value="Curves">Curves</option></select></li><li><span style="color:#333; font-weight:bold; font-size:11px; padding-left:36px;">Complete your registration form below to signup!</span></li></ul>');
	$j14('ol#ka_joinRequired').prepend('<li id="ka_joinName"><label for="name">Name:</label><input type="text" value="" name="name" id="name" /></li>');

	$j14('#ka_joinSubmit input[type=submit]').hide();
	$j14('#ka_joinSubmit').append('<input id="ka_joinSubmit_eventSignup" type="button" value="join" name="Signup" class="ka_button">');
	
	$j14('#ka_joinSubmit_eventSignup').live('click',function(){
		
		// Display Loading Image
		if ($j14('#ka_joinSubmit img').length > 0){
			$j14('#ka_joinSubmit img').show();
		} else {
			$j14('#ka_joinSubmit').append('<img src="http://events.sportshydrant.com/assets/images/progress/horizontal.gif" width="220" height="19" />');
		}
		$j14('#ka_joinSubmit input').hide();
		
		// Perform form validation
		var thisForm = Ka.formValidation.containers.formsToValidate[0];
		if ( Ka.formValidation.actions.validateForm(thisForm) ){
			// Valid
			// Pass information to server for event signup
			$j14.ajax({
				dataType: 'jsonp',
				data: {
					"event": eventid, 
					email: $j14('#email').val(), 
					name: $j14('#name').val(), 
					username: $j14('#username').val(), 
					location: $j14('#eventRegoLocation').val(), 
					dob_year: $j14('#dobYear').val(), 
					dob_month: $j14('#dobMonth').val(), 
					dob_day: $j14('#dobDay').val()
				},
				url: "http://events.sportshydrant.com/register.php",
				success: function (data) {
					// callback with data
					setTimeout(function(){$j14('#ka_joinSubmit input[type=submit]').trigger('click');},3000);
				},
				error: function( objAJAXRequest, strError ) {
					// if we error on kickapps stats, reload and try again.
					alert("We're sorry, an error occured. Please try again soon. " + strError);
					location.reload();
				}
			});
		} else {
			$j14('#ka_joinSubmit img').hide();
			$j14('#ka_joinSubmit input[type=button]').show();
		}
	});

  } // end page check
}

function addFindFriendsLink() {
  if (Ka.Info.PAGE == 'pages/manageFriends.jsp' && $j14('.ka_gen_friend').length === 0) {
    $j14("#ka_manageContent").append('<div class="ka_gen_friend ka_sprite_media"><a href="/service/searchEverything.kickAction?as=57111&mediaType=user&sortType=recent&includeUser=on">Find friends</a></div>');
  }
}

function add_tweetmeme_buttons() {

  var button_url = '<a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" data-via="sportshydrant" data-related="SportForWomen">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>';

  if (Ka.Info.PAGE == 'pages/discussionThread.jsp') {
    $j14('#ka_enabledDiscussionList .ka_moreInfo').after(button_url);
  }
  else if (Ka.Info.PAGE == 'pages/mediaPlayPage.jsp') {
    if (Ka.Info.MEDIATYPE == 'BLOG') {
      var url = '<div style="float:right;padding-left:8px;padding-right:8px;">' +
        button_url + '</div>';
      $j14('#ka_descriptionBlog').prepend(url);
    }
    else if (Ka.Info.MEDIATYPE == 'PHOTO' || Ka.Info.MEDIATYPE == 'VIDEO') {
      $j14('#ka_uploadedby').after('<div style="padding-bottom:10px">' +
                                   button_url +
                                  '</div>');
    }
  }
  else if (Ka.Info.PAGE == 'pages/clubHome.jsp') {
    $j14('#ka_groupDescription').prepend('<div style="padding-bottom:10px">' +
                                   button_url +
                                  '</div>');
  }
}


function check_userid_cookie() {
  // are we logged in?
  if (Ka.Info.USERID != '') {
    document.cookie = 'ka_info_userid=' + Ka.Info.USERID  +
        ';domain=.sportshydrant.com;path=/';
    document.cookie = 'ka_info_username=' + Ka.Info.USERNAME  +
      ';domain=.sportshydrant.com;path=/';
  }
  else {
    // clear them
    document.cookie = 
      'ka_info_userid=; expires=Thu, 01-Jan-70 00:00:01 GMT; ' +
      'domain=.sportshydrant.com; path=/';
    document.cookie = 
      'ka_info_username=; expires=Thu, 01-Jan-70 00:00:01 GMT; ' +
      'domain=.sportshydrant.com; path=/';
  }
}

function check_returnto() {
  // check the rego
  if (getCookie('logout_returnto')) {
    var returnto = getCookie('logout_returnto');
    document.cookie = 
      'logout_returnto=; expires=Thu, 01-Jan-70 00:00:01 GMT; ' +
      'domain=.sportshydrant.com; path=/';
    window.location.href = returnto;
  }
  else if (Ka.Info.USERID != '' && getCookie('login_returnto')) {
    var returnto = getCookie('login_returnto');
    document.cookie = 
      'login_returnto=; expires=Thu, 01-Jan-70 00:00:01 GMT; ' +
      'domain=.sportshydrant.com; path=/';
    window.location.href = returnto;
  }
}

function getCookie(name) {
  var theCookies = document.cookie.split(/[; ]+/);
  for (var i = 0 ; i < theCookies.length; i++) {
    var aName = theCookies[i].substring(0,theCookies[i].indexOf('='));
    if (aName == name)
      return theCookies[i].substring(theCookies[i].indexOf('=')+1,
                                     theCookies[i].length);

  }
}


function sh_boxify(element, replace, title) {
    element = $j14(element);
    replace = $j14(replace);

    // make sure we have items to work with
    if (element.size() == 0 || replace.size() == 0) return;
    if (!title || title.length == 0) title = "&nbsp;";

    // create a module, with the contents of the element
    box = sh_box(title, element.html(), null);

    // insert it.
    replace.replaceWith(box);
}

function sh_box(title, content, id) {
    var width = title.length * 11;
    if (width < 100) width = 100;

    var idstr = '';
    if (id != null) {
        idstr = ' id="' + id + '"';
    }

    return '<div class="module"' + idstr +'>' + //id="$box_id"
    '<div class="module-head">' +
    '<h3 class="boxtitle" style="width:' + width + 'px"><span>' + title + '</span></h3>' +
    '<div class="module-control"></div>' +
    '</div>' +
    '<div class="module-body">' +
    '<div class="module-module">' +
    '<div class="module-content">' + content + '</div>' +
    '</div>' +
    '<div class="module-foot">' +
    '<div class="module-control"></div>' +
    '</div>' +
    '</div>' +
    '</div>';
}

/**
 * Takes a KA module name, and converts it into a SH box.
 * @param name the name of the box (e.g about for #ka_aboutModule)
 */
function sh_boxify_ka_module(name) {
    sh_boxify('div#ka_' + name + 'Content', 'div#ka_' + name + 'Module', $j14('div#ka_' + name + 'Module h3 span').text());
}

/* Get a URL parameter by name */
function gup( name ) {
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}



