window.onbeforeunload = function(){
	$("div#makeMeScrollable").smoothDivScroll("destroy");
};

function logout() {
	window.location.href = base_url+'/welcome/?signout';
}

function getFile(ident,filename){
	$.post(base_url+"/index.php", {ajax: '1' , app: 'researchdocuments' , action: 'CheckForFile', fileID: ident , fileName: filename }, function(result){
		if(result == 'Success'){
			window.location.href = base_url+"/index.php?ajax=1&app=researchdocuments&action=forceDownload&locID="+escape(ident)+"&filename="+escape(filename);
		} else {
			alert(result);
		}
	});
}

function login_iress(){
	window.open('','htmlIress','width=1050,height=600,location=no,toolbar=no,status=no,scrollbars=yes,resizable=yes');
	$(".iressLogin").submit();
}


function dateFormat(date){
	var curr_date = date.getDate();

	var curr_month = date.getMonth()+1;

	var curr_year = date.getFullYear();
	
	return curr_date + "/" + curr_month + "/" + curr_year;
	
}

function getParameterByName( name, location )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( location );
  if( results == null )
    return "";
  else
    return results[1];
}


function resizeTicker(event){
	$("#stockTicker").resizeTicker();
}

(function($){ 
	$.fn.reformatTable = function(){
		this.find("tr").removeClass("odd");
		this.find("tr").removeClass("even");
		this.find("tr:odd").addClass("odd");
		this.find("tr:even").addClass("even");
		return this;
	}
	
	$.fn.customiseTable = function(){
		var checked_table_column = $(this).find('input:checkbox[name=columns[]]:checked');
		
		var num_checked = checked_table_column.length;
		
		var all_table_column = $(this).find('input:checkbox[name=columns[]]');
		
		$.each(all_table_column, function(id, item){
			var hide_class = $.trim($(item).val().replace("align_right", ""));
			hide_class =$.trim( hide_class.replace("align_left", ""));
			
			$("."+hide_class).addClass("hide_cell");	
		});
		
		$.each(checked_table_column, function(id, item){
			var show_class =$.trim( $(item).val().replace("align_right", ""));
			show_class =$.trim( show_class.replace("align_left", ""));
			
			$("."+show_class).removeClass("hide_cell");
		});
        
		
		//TABLE ROW HEADINGS
		//If the option to show headers is turned on (show headers), and reapply striping odd/even classes
		if($("#tableheaders").attr("checked")){
			
			if($(".heading").length > 0) {
			$(".heading").removeClass('hide');
			$('tr.sortme').removeClass("odd even");
			$("tbody tr").qsort({attr: "rel", digits: true});
			$('tr.sortme:odd').addClass("odd");
			
			num_checked = num_checked - 1;
		  }
		} else {
		//If the option to show headers is OFF - (hide headers)	
		if($(".heading").length > 0) {
			$(".heading").addClass('hide');
			$('tr.sortme').removeClass("odd even");
			$("tr.sortme").qsort({attr: "grouporder", digits: true});
			$('tr.sortme:odd').addClass("odd");
		}
		};

		if($(".report_table").length > 0){
			// var table_height = parseInt($(".report_table tbody").height());
			// var table_width = parseInt($(".report_table tbody").width());
			// 
			// $(".report_table").fixedHeaderTable("destroy");
			// if(table_height > 600) {
			// 	$(".report_table").fixedHeaderTable({ height: "600", footer: false, themeClass: "portfolio_table"});
			// } else {
			// 	$(".report_table").fixedHeaderTable({ height: table_height+70, footer: false, themeClass: "portfolio_table"});
			// }
			// 
			// $(".fht-thead table").width("100%");
			// $(".report_table").width("100%");
			// 
			// $(".report_table").parents(".portfolio_table_container").css("overflow", "hidden");
		}
			
		return this;
	}
	
    $.fn.resizeTicker = function(){		
		var tickerWidth = parseInt($("ul.tabbuttons").width()) - parseInt($("#track-login").outerWidth()) - parseInt($("#btnSearch").outerWidth())-15;
		$(this).width(tickerWidth+"px");
		return this;
	}
})(jQuery);

$(document).ready(function(){
	
	//stick the footer at the bottom of the page if we're on an iPad/iPhone due to viewport/page bugs in mobile webkit
	if(navigator.platform == 'iPad' || navigator.platform == 'iPhone' || navigator.platform == 'iPod')
	{
		$("body").addClass("ios_device");
		 // document.addEventListener('touchmove', function(e){ e.preventDefault(); });
		
		$(".research_companies_container").css("height", "auto");
		
		// $.each($(".research_companies_container"), function(id, item){
		// 	var item_id = $(item).attr("id");
		// 	
		// 	console.log(item_id);
		// 	var myScroll = new iScroll(item_id);
		// });
		
		//
		// $("#trackbar").css("position", "relative");
		// $("#trackbar .tabbuttons").css("position", "absolute");
		// $("#footer div.inner_container").css("margin-bottom", "0");
		
	};
	
	if ($('body.home_splash').length) {
	  $('#wrapper1, #wrapper2, #content').css('cursor', 'pointer');
    $('#client_login, a.vidtutorial').bind('clickoutside', function(event) {
      var clicked_elem = $(event.target);
      if ($(clicked_elem).attr('id') == 'content' || $(clicked_elem).attr('id') == 'wrapper2' || $(clicked_elem).attr('id') == 'wrapper1') {
        window.location = 'welcome';
      }
    });
    $('#client_login, a.vidtutorial').bind('mouseoveroutside', function(event) {
      var clicked_elem = $(event.target);
      if ($(clicked_elem).attr('id') == 'content' || $(clicked_elem).attr('id') == 'wrapper2' || $(clicked_elem).attr('id') == 'wrapper1') {
        clicked_elem.css('cursor', 'pointer');
      } else {
        clicked_elem.css('cursor', '');
      }
    })
	}

	if($("#chart_tabs").length > 0) {
		$("#chart_tabs").tabs("#chart_panes > div");
	}

	$(".depthview").live("click", function(e) {
		e.preventDefault();
		var url = base_url + "/?ajax=1&app=myportfolio&app_type=&action=ReportPricingDepth";
		var sec = $(this).attr('rel');

		$("#pvdata, #pricingdepth").hide();
		$("#depthloader").fadeIn("fast");
		
		$.get(url, {security:sec}, function(result) { 
			$("#depthloader").hide();
			$("#pricingdepth").html(result).show();        
		});

    	return false;
	});
   
    $(".refreshdepth").live("click", function(e) {
		e.preventDefault();
	    
		$(this).text("Updating");
		
		var url = base_url + "/?ajax=1&app=myportfolio&app_type=&action=ReportPricingDepth";
		var sec = $(this).attr('rel');
		
		$.get(url, {security:sec, tableonly: 1}, function(result) { 
			$("#pdtable").fadeTo(400, 0.3).html(result).fadeTo(200, 1);
			$(".refreshdepth").text("Refresh");        
        });
		
		return false;
	});
	
	$(".loadpv").live("click", function(e) {
		e.preventDefault();
		$("#pricingdepth").html('').hide();
		$("#pvdata").show();
		return false;
	})
	
 	$(".depthtable td").live("mouseover", function() { 
		var cls = $(this).attr('class');
		if(cls != '') { $('.' + cls ).addClass('over');} 
	})
		
	$(".depthtable td").live("mouseout", function() { 
		$('.over').removeClass('over');
	})
	
	// $(".depthview").fancybox({
	// 		scrolling		: "no",
	// 		width			: "940",
	// 		height			: "700",
	// 		centerOnScroll	: true,
	// 		margin			: "5",
	// 		padding			: "20"  
	// 	});  
    

	
	$(".printcharts").bind("click", function(ev) {
		ev.preventDefault();
		window.open(base_url + '/index.php?app=myportfolio&ajax=1&action=PrintAssetCharts',
		'PrintCharts','width=740,height=900,location=no,toolbar=no,status=no,scrollbars=yes,resizable=yes');
		//return false;
	});
	
	$("#hide_chart").bind("click", function(){
		if($(this).hasClass("hide_chart")){
			$("#chart_tabs_div").removeClass("hide");
			$(this).removeClass("hide_chart").addClass("show_chart").html("Hide");
		} else {
			$("#chart_tabs_div").addClass("hide");
			$(this).addClass("hide_chart").removeClass("show_chart").html("Expand");
		}
		return false;
	});
	
	$(".hide_company").bind("click", function(){
		if($(this).hasClass("hide_company")){
			$(this).parent().siblings(".research_companies_container").removeClass("hide");
			$(this).removeClass("hide_company").addClass("show_company").html("Hide");
		} else {
			$(this).parent().siblings(".research_companies_container").addClass("hide");
			$(this).addClass("hide_company").removeClass("show_company").html("Expand");
		}
		return false;
	});
	

  	$("#report_fyear").change(function(e) {
		e.preventDefault();
		var year = $(this).val();
		$(".reportyear_row").fadeOut("normal").addClass("hide");
		$("." + year ).removeClass("hide").fadeIn("normal");
	}).trigger("change");
	
    $("a.prevPage").removeAttr("href");
	$("a.nextPage").removeAttr("href");
	
	$("#column_a #story_archive li.collapse").live("click",function(){
		$(this).removeClass("collapse").addClass("expand");
	});
	
	$("#column_a #story_archive li.expand").live("click", function(){
		$(this).addClass("collapse").removeClass("expand");
	});
		
	// login form
	$("form.loginForm").bind('submit', function(){
		$.post(base_url+"/index.php?",{ username: $(this).find('.username').val() , password: $(this).find('.password').val() , ajax: '1', action: 'validateLogin', app: 'login', javascript: '1' },function(result){
			$("#dialog_login_form").dialog("close");
      
			if (result == 'Login Failed') {
				//alert(result);
				$("#loginFormFields").css("display","block");
				// $("#failedLoginMessage").remove();
				$("#dialog-login").html("<p>Login Failed. Please check your login credentials and try again.</p>").dialog('open');
				$("#loginLoader").css("display","none");
			} else if (result == 'Login Successful') {
				var return_url = getParameterByName("return_url", window.location.href);
				var current_url = window.location.href;
				
				if(return_url.length > 0){
					window.location.href = return_url;
				} else if(current_url == base_url+'/welcome/?signout' || current_url == base_url+'/session_expired' || current_url == base_url || current_url == base_url+"/"){
					window.location.href = base_url+'/myportfolio';
				} else {
					window.location.reload();
				}
			} else {
			  //alert(result);
				$("#loginFormFields").css("display","block");
				// $("#failedLoginMessage").remove();
				$("#dialog-login").html("<p>"+result+"</p>").dialog('open');
				$("#loginLoader").css("display","none");
			}
		});
		return false;
	});
	
	// login
	if($(".my_account").length > 0){
		$(".my_account").bind("click", function(){
			login_iress();
			return false;
		});
	}
	
	// author article
	if($(".showArticles").length > 0){
		var article_div = $(".showArticles");
		var author_id = $(".showArticles").attr('id').replace("author_", "");
		$.post(base_url+'/index.php',{ajax: '1', app: 'newsupdates', action: 'getAuthorNews', author: author_id },function(result){
			if(result != null){
				article_div.html(result);
			} 
		});
	}
	
	$("#dialog-login").dialog({
		width: 350,
		height: 120,
		modal: true,
		autoOpen: false,
		buttons: {
			Ok: function() {
				$(this).dialog('close');
			}
		}
	});

	// $(".pricedepth").fancybox({
	// 	'autoDimensions'	: false,
	// 	'width'				: '940',
	// 	'height'			: '700',
	// 	'margin'			: 5,
	// 	'padding'			: 20,
	// 	'scrolling'			: 'no',
	// 	'centerOnScroll'	: true,
	// });
 
	// home scrolling
	if($(".home").length > 0){

		
		if($("html").hasClass("touch")){
			$("#news_scroll .items").html5Slider({pagination: "#latest_news .navi", previous: "#latest_news .prevPage", next: "#latest_news .nextPage"});
			$("#report_scroll .items").html5Slider({pagination: "#daily_reports .navi", previous: "#daily_reports .prevPage", next: "#daily_reports .nextPage"});
		} else {
			// initialize home scrollable
			$("#news_scroll").scrollable({
				keyboard: false,
				circular: true
			}).navigator();

			$("#report_scroll").scrollable({
				keyboard: false,
				circular: true
			}).navigator();
		}

		// $(".twitter_scroll").tweet({
		// 			username: ["slatterymedia"],
		// 			count: 20
		//         })
		// 
		// 		$('.twitter_scroll').ajaxSuccess(function(e, xhr, settings) {
		// 			if(settings.url.search("twitter.com")) {
		// 				if($('.twitter_scroll').length > 0){
		// 					$('#twitter_section').slideDown(300).delay(500).removeClass("hide");
		// 					$('.twitter_scroll').delay(500).scrollable({
		// 						vertical: true,
		// 						keyboard: false,
		// 						circular: true
		// 					}).autoscroll({ autoplay: true });
		// 				}
		// 			}
		// 		});		
		
	}
	
	if($("html").hasClass("touch")){
		$("#archive_side_list").html5Slider({scrollDirection: "vertical", scrollMode: "free", cacheResources: 0});
	} else {
		$(".touch_only").addClass("hide");
		$(".videoupdates #story_archive_content").css("height", "auto");
	}
	
	
	// update password
	$("#updatePassword").click(function() {
		$("#loading_indicator").html('Please wait...');

		$.post(base_url+"/index.php", {
				new_pass: $('#new_password').val(),
				confirm_pass: $('#confirm_password').val(),
				ajax: '1',
				action: 'ajaxChangePassword',
				app: 'myportfolio'
			},
			function(result) {
				
				if (result == "bad_new") {
					$("#feedback").html("<br />Could not proceed. Ensure your password is not blank and your confirmation password matches. Please try again.<br /><br />");
				} else if (result == "bad") {
					$("#feedback").html("<br />An internal error has occurred. Please try again at a later stage.<br /><br />");
				} else {
					$(".intro_setup").html('');
					$("#new_password").val('');
					$("#confirm_password").val('');
					$("#feedback").html('<br />Password change successful. You will now be logged out requiring you to log back in.<br />Please wait to be redirected, or click <a href="'+base_url+'/welcome/?signout">here</a> to do so immediately.<br /><br />');
					setTimeout("logout()", 8000);
				}
				
				$("#loading_indicator").html('');
				
			}
		);
		return false;
	});
	
	$("#limit_asset_class, #select_account").bind("change", function(){
		var redirect_url = $(this).val();
		var url_component = "";

		if($("#start_date").length > 0){
			url_component = url_component+ "start_date="+encodeURIComponent($("#start_date").val());
		}
		
		if($("#end_date").length > 0){
			url_component = url_component+ "&end_date="+ encodeURIComponent($("#end_date").val());
		}
		
		if(url_component.length > 0){
			redirect_url = redirect_url + "?" +url_component;
		}
		
		window.location.href = redirect_url;
		
	});
    
	$("#refresh_accounts").bind("click", function() { refreshPV(); });
	$("#select_currency").bind("change", function() { refreshPV(); });
	$("#update_date").bind("click", function() { refreshPV(); });
	
	function refreshPV() {
		
		var redirect_url = base_url + "/myportfolio/reportPortfolioPosition/account/";
		var url_component = "";
		var multiple = false;
		var accounts = "&acc=";
        
		$('.select_account_drop:checked').each(function(i, selected){ 
				accounts += $(selected).val() + ",";
				multiple = true;
		});
		
		if($('.select_account_drop').hasClass("single_account")){
		    accounts += $('.select_account_drop').val();
			multiple = true;
		}

		if(multiple) {
			redirect_url = redirect_url + "multiple"; 
			url_component = accounts;
		}
		
		if($("#start_date").length > 0){
			url_component = url_component + "&start_date="+encodeURIComponent($("#start_date").val());
		}
		
		
		if($("#end_date").length > 0){
		    url_component = url_component + "&end_date="+encodeURIComponent($("#end_date").val());
		}
		
		if($("#select_currency").length > 0){
			url_component = url_component + "&fx="+$("#select_currency :selected").val();
		}
		
		window.location.href = redirect_url + "?" + url_component;
	}

	// if($("#update_date").length > 0){
	// 	$("#update_date").bind("click", function(){
	// 		var redirect_url = $("#select_account").val();
	// 		
	// 		var url_component = "";
	// 		
	// 		
	// 		if($("#start_date").length > 0){
	// 			url_component = url_component+ "start_date="+encodeURIComponent($("#start_date").val());
	// 		}
	// 		
	// 		if($("#end_date").length > 0){
	// 			url_component = url_component+ "&end_date="+ encodeURIComponent($("#end_date").val());
	// 		}
	// 		
	// 		if(url_component.length > 0){
	// 			redirect_url = redirect_url + "?" +url_component;
	// 		}
	// 		
	// 		window.location.href = redirect_url;
	// 	});
	// }
	
	if($(".buttons").length > 0){
		$(".buttons").bind("mousedown", function(){
			$(this).addClass("pressed");
		}).bind("mouseleave", function(){
			$(this).removeClass('pressed');
		});
	}
	
	
	// stock ticker
	
	if($("#stockTicker").length > 0){
		$.get(base_url+"/index.php", {ajax: '1' , app: 'myportfolio' , action: 'stockTicker' }, function(result){
			$("#stockTicker").html(result);
			
			$("#stockTicker").resizeTicker();
			
			var scrollable_ticker = $("div#makeMeScrollable");
			
		    scrollable_ticker.smoothDivScroll({ 
				autoScroll: "onstart",
				startAtElementId: "startWithMe",
				autoScrollDirection: "endlessloopright", 
				autoScrollStep: 1, 
				autoScrollInterval: 30
			});
			
			var isSafari = navigator.userAgent.match(/Safari/i)  != null;
			
			if(!isSafari){
				scrollable_ticker.smoothDivScroll("moveToElement", "start");
			}
			

			scrollable_ticker.hover(function(){
				scrollable_ticker.smoothDivScroll("stopAutoScroll");
			}, function(){
				scrollable_ticker.smoothDivScroll("startAutoScroll");
			});
			
		});	
	}


    
	if($("#stockTicker").length>0){
		$(window).bind("resize", resizeTicker);
	}
	
	// date picker for reports
	if($("input:date").length > 0){
		$("input:date").dateinput({
			format: 'dd mmm yyyy',
			selectors: true
	});
    }
	
	$("#trackbar #searchForm form .input_text").bind("keyup", function(){
		$("#trackbar .searchResult").remove();
		if($("#trackbar #searchForm form .input_text").val().length >= 3){

		
			$.post(base_url+"/index.php", 
			{
				ajax: '1',
				action: 'SearchResults',
				app: 'sundryapps',
				searchType: "stockOnly",
				searchTerms: $("#trackbar #searchForm form .input_text").val()
			},
			function(data){
				if(data.error != undefined){
					$("#btnSearch").append("<ul class=\"searchResult\"><li><p>"+data.error+"</p></li></ul>");
				} else {
				
					var searchResultString = "";
					searchResultString += "<ul class=\"searchResult\">";
	
					$.each(data, function(index, value){
						searchResultString += "<li><a href=\""+base_url+"/myportfolio/quote/"+value['companycode']+"\">"+value['displayType']+"</a></li>";
					});
					searchResultString += "</ul>";
					$("#btnSearch").append(searchResultString);
				}
			}, "json");
		}
		return false;
	});
	
	$("#track-login").bind("click", function(){
		if($(this).hasClass("active")){
			$(this).removeClass("active");
		} else {
			$(this).addClass("active");
		}
	});
	
	$("#back_in_history").bind("click", function(){
		history.go(-1);
		return false;
	});
	
});

		
