﻿jQuery.fn.toggleText = function(a, b) {
	return this.each(function() {
		jQuery(this).text(jQuery(this).text() == a ? b : a);
	});
};
// custom functions
function click_clear(obj, default_string){

	if($(obj).val() == default_string){
		$(obj).val("")
	}else if($(obj).val().length == 0){
		$(obj).val(default_string)
	}
}
function email_valid(str) {
   return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
}
function url_variables(field_request, request_url_vars){
	
	if(field_request == null){
		return "";
	}
	if(request_url_vars == null){
		var url_vars = false;
	}else{
		var url_vars = true;
	}
	var href = window.location.href;
	var href_array = new Array();
	href_array = href.split('?');
	var url_data_array = new Array();
	if(href_array.length == 1){
		if(url_vars != null){
			return "";
		}
		if(field_request != null){
			return "";
		}
	}
	url_data_array = href_array[href_array.length-1].split('&');
	var field_value = "";
	var href_array = new Array();
	var return_array = new Array();
	var i = 0;
	for (x in url_data_array){
		field_value_array = new Array();
		field_value_array = url_data_array[x].split('=');
		
		if(field_request!=null){
			if(field_value_array[0]==field_request){
				field_value = field_value_array[1];
			}else{
				href_array[i] = field_value_array[0]+'='+field_value_array[1];
				i++;
			}
		}
				
		//return_array[field_value_array[0]] = field_value_array[1];
	}

	if(url_vars == true){
		return href_array.join('&')+'';
	}
	if(field_request != null){
		
		return field_value;
	}
	//return return_array;	
}
function html_entity_decode(string) {

//return string.replace(/</g,"&lt;").replace(/>/g,"&gt;");
	return string.replace(/&lt;/g,"<").replace(/&gt;/g,">");
}
function GetRootUrl(){
	var pathparts = document.location.pathname.split('/');
	var url = 'http://' + document.location.hostname;
	return url;
}
function root_url(){

	var docloc = document.location.toString();
	if(docloc.replace('?', '') != docloc){
		var docloc_array = new Array();
		docloc_array = docloc.split('?');
		var variables = docloc_array[1];
		if(variables.replace('&', '') != variables){
			variables_array = variables.split('&');
			for (x in variables_array){
				//alert(variables_array[x]);		
			}
		}else{
					
		}
		
	}
	return '';
}
function str_pad(string, length, character, side){
	

	if(!side){
		var side = 'l';
	}
	if(!length || !character || !string){
		return '';
	}

	string = string+'';
	while(string.length < length){
	
		if(side=='l'){
			string = character + ''+string;
		}
		if(side=='r'){
			string = ''+string + character;
		}
	
	}

	return string;
}
function substr_count (haystack, needle, offset, length) {
		var pos = 0, cnt = 0;

		haystack += '';
		needle += '';
		if (isNaN(offset)) {offset = 0;}
		if (isNaN(length)) {length = 0;}
		offset--;

		while ((offset = haystack.indexOf(needle, offset+1)) != -1){
				if (length > 0 && (offset+needle.length) > length){
						return false;
				} else{
						cnt++;
				}
		}

		return cnt;
}
function open_popup(input, callback){

$('#s4-workspace').append(
'<a class="make-block popup-base" id="popup-base" href="#" onclick="close_popup();return false;" title="Close Popup"></a>'+
'<div class="popup" id="popup-container"><a id="popup-close" class="popup-close" href="#" onclick="close_popup();return false;"></a></div>');

	var content = '';
	if($(input).length > 0){
		content = $(input).html();
	}else{
		content = input;
	}

	$("#popup-close").after(content);

	var popup_base_height= $(document).height();
	$('.popup-base').css({'height':popup_base_height});

	$('.popup').css({
		//'margin-top' : '-'+(($('.popup').height())*1+10)/2+'px',
		'margin-left' : '-'+(($('.popup').width())*1+10)/2+'px'
	});
	
	if(typeof(window[callback]) == 'function')
		window[callback]();
		
	if(typeof(callback) == 'function')
		callback();	
}
function close_popup(){
	$('#popup-base').remove();
	$('#popup-container').remove();
	$('#popup-content').html('');
}

function print_this(){

	if($('#print-this').length > 0){

		if($('#print-this').text()=='print'){
		
			$('head link').each(function(){
				if($(this).attr('rel').toLowerCase() == 'stylesheet'){
					$(this).attr({'disabled':'disabled'});
				}
			});
			$('head').append(
			'<link rel="stylesheet" type="text/css" href="/SiteAssets/css/reset.css" class="print-css" /> \
			<link rel="stylesheet" type="text/css" href="/SiteAssets/css/style.css" class="print-css" /> \
			<link rel="stylesheet" type="text/css" href="/SiteAssets/css/layout-follow.css" class="print-css" /> \
			<link rel="stylesheet" type="text/css" href="/SiteAssets/css/print.css" class="print-css" />'
			);
			$('#main-page-body').prepend(
			'<div class="rdiv print-only"> \
				<a href="#" onclick="print_this();return false;">Non-Printer Friendly</a> \
			</div> \
			<div class="rdiv print-only header"> \
				<div class="rdiv left logo"><img src="/SiteAssets/images/logo-reverse.gif" alt="logo" /></div> \
				<div class="rdiv right"> \
					<p><span class="t13 blue">Virginia Aquarium</span><br /> \
					717 General Booth Blvd.<br /> \
					Virginia Beach, VA. 23451<br /> \
					(757) 385-FISH (3474)</p> \
				</div> \
			</div> \
			\
			'
			
			);
			
			$('#print-this').text('no-print');
		}else{
			$('#print-this').text('print');
			$('.print-css').remove();
			$('.print-only').remove();
			$('head link').each(function(){
				if($(this).attr('rel').toLowerCase() == 'stylesheet'){
					$(this).attr({'disabled':''});
				}
			});

		}
	}else{
		$('body').append('<div class="rdiv hidden" id="print-this">print</div>');
		print_this();
	}
}
function center_this(selector){
	if(selector == null){
		return false;
	}
	$(selector).css({
		'float':'left',
		'width':'auto'
	});
	var w = $(selector).width();
	$(selector).css({
		'float':'none',
		'margin':'0 auto',
		'width':w
	});	
}
function paginate(wrap, page_var, page_num, view_total, item){

// default vars	
	if(wrap == null){ return false;	}
	if(page_num == null){ page_num = 1;	}
	if(items == null){ var items = '.item'; }
	if(view_total == null){	var view_total = 15; }
	if(page_var == null){
		var page_var = $(wrap+' input.page-variable').val();
	}
	var total_items = $(wrap+' input.total-items').val();

	if(view_total>total_items){ return false; }

	// hide if paginating and stop if not
	var url_page_num = url_variables(page_var);
	page_num = Math.max(url_page_num*1, page_num);
	var root_url = document.location.pathname.toLowerCase()+'?';
	if((url_variables(page_var, 1)+'').length > 0){
		root_url += url_variables(page_var, 1)+'&';
	}
	
// set total pages
	var total_pages = 1;
	// count total pages
	var i = ((total_items/view_total)+'').split('.');
	total_pages = i[0];	
	if((total_items%view_total)>0){
		total_pages++;
	}

// start pagination
	var pagination = '<div class="rdiv pagination-wrap"><div class="rdiv pagination">';
	
	// add previous
	if(page_num>1){
		pagination +=
		'<a href="'+root_url+page_var+'='+(page_num-1)+'" class="prev-next prev">Previous</a>'
	}	
	
	// add page nums
	var page_count = 0;
	var selected = '';
	while(page_count<total_pages){
		page_count++;
		selected = '';
		if(page_count==page_num){
			selected = ' selected';
		}
		pagination +=
		'<a href="'+root_url+page_var+'='+page_count+'" class="num'+selected+'">'+page_count+'</a>'	
	}

	if(page_num<total_pages){
		pagination +=
		'<a href="'+root_url+page_var+'='+((page_num*1)+1)+'" class="prev-next next">Next</a>';
	}

	pagination += '</div></div>';
	
	$(wrap).append(pagination);
	$(document).ready(function() {
		center_this(wrap+' .pagination');
		
	});
}
function abbreviate(selector){
	var length = 0;
	$(selector).each(function(){
		var aclass = $(this).attr("class");
		var text = $(this).html();
		var class_array = new Array();
		class_array = aclass.split(" ");
		for(i=0; i<class_array.length; i++) {
			if(class_array[i].substring(0, 6)=='limit-'){
				var length = class_array[i].replace('limit-','')*1;
				var rand = (Math.random()+'5').substring(4)*1;
				text =
				'<span class="abbreviated-'+rand+'">'+
				text.substring(0, length)+
				'<span class="abbreviated-read-more">... <a href="#" class="blue" onclick="unabbreviate('+rand+');return false;">read more &#187;</a></span>'+
				'<span class="abbreviated-remaining">'+
				text.substring(length) + '</span>' + '</span>';
			}
		}
		
		$(this).html(text);
		$('.abbreviated-remaining').hide();
	});
	if(selector.substring(0, 1)=='.'){
		$(selector).removeClass(selector);
	}
}
function unabbreviate(id){
	
	$('.abbreviated-'+id+' .abbreviated-read-more ').hide();
	$('.abbreviated-'+id+' .abbreviated-remaining').show();
	
}
function hover_opacity(selector, amount){

	if($(selector).length == 0)
		return false;
		
	$(selector).hover(function(){	
		$(this).css('opacity', amount);
	},function(){	
		$(this).css('opacity', 1.0);	
	});
}
