//jquery initialize functions only when dom is fully loaded
$(document).ready(function()
{
	//call init function located at bottom of this file
	init();
});
//this function controls the admin app pages that have deleter classes on links
function setDeleteConfirmations()
{
	$('.page_vadmin_navigation .deleter').click(function(){
		var answer = confirm('Are you sure you want to delete this navigation?');
		return answer;	
	});
	$('.page_vadmin_bios .deleter').click(function(){
		var answer = confirm('Are you sure you want to delete this bio?');
		return answer;	
	});
	$('.page_vadmin_blocks .deleter').click(function(){
		var answer = confirm('Are you sure you want to delete this block?');
		return answer;	
	});
	$('.page_vadmin_templates .deleter').click(function(){
		var answer = confirm('Are you sure you want to delete this template?');
		return answer;	
	});
	$('.page_vadmin_comments .deleter').click(function(){
		var answer = confirm('Are you sure you want to delete this comment?');
		return answer;	
	});
	$('.page_vadmin_contacts .deleter').click(function(){
		var answer = confirm('Are you sure you want to delete this contact?');
		return answer;	
	});
	$('.page_vadmin_content .deleter').click(function(){
		var answer = confirm('Are you sure you want to delete this content?');
		return answer;	
	});
	$('.page_vadmin_users .deleter').click(function(){
		var answer = confirm('Are you sure you want to delete this user?');
		return answer;	
	});
	$('.page_vadmin_roles .deleter').click(function(){
		var answer = confirm('Are you sure you want to delete this role?');
		return answer;	
	});
	$('.page_vadmin_redirects .deleter').click(function(){
		var answer = confirm('Are you sure you want to delete this redirect?');
		return answer;	
	});
	$('.page_vadmin_routes .deleter').click(function(){
		var answer = confirm('Are you sure you want to delete this route?');
		return answer;	
	});
}
//this function will count a supplied id value length and display the value in another supplied id value field
function update_char_count(this_display_count_id,count_this_id)
{
	var new_length = update_char_count_get_length(count_this_id);
	$('#'+this_display_count_id).html(new_length);
	$('#'+count_this_id).keyup(function(){
		var new_length = update_char_count_get_length(count_this_id);
		$('#'+this_display_count_id).html(new_length);
	});
}
//count the length of the field id supplied
function update_char_count_get_length(count_this_id)
{
	var text_length = $('#'+count_this_id).val().length;
	return text_length;
}
//convert textareas to tinymce areas as needed
$.fn.tinymce = function(options)
{
    return this.each(function(){
        // I don't think the style declaration is not really used in this sense, but I left it anyway
        var preString = '<div class="jqHTML_frame" style="width:'+$(this).css('width')+'px;height:' + ($(this).css('height')+20) + 'px;">';
        var postString = '</div>';
        $(this).wrap(preString + postString);

        // this comes last to avoid IE7 bug
	tinyMCE.execCommand("mceAddControl",false,this.id);
    });
}
//make sure any character that is not a '/' and not a word character is replaced with an underscore
function strip_dashes()
{
	if($('#sef_url_string').length > 0)
	{
		$('#sef_url_string').keyup(function(){
			$('#machine_name').val($('#sef_url_string').val().replace(/\-/g,'_'));
		});
	}
	$('#machine_name').keyup(function(){
		//$('#machine_name').val($('#machine_name').val().replace(/\W/g,'_'));
		$('#machine_name').val($('#machine_name').val().replace(/(?!\/)\W/g,'_'));
	});
}
//disables a field determined the by supplied id
function disable_field(field_id,re_enable)
{ //re_enable can be 1 or 0
	$('#'+field_id).attr('disabled','disabled');
	if(re_enable==1)
	{
		$('input[type=submit]').click(function(){
			enable_field(field_id);
		});
	}
}
//enables a field determined the by supplied id
function enable_field(field_id)
{
	$('#'+field_id).removeAttr('disabled');
}
function in_array (needle, haystack, argStrict) 
{
	var key = '', strict = !!argStrict;
	if (strict) 
	{
		for (key in haystack) 
		{
			if (haystack[key] === needle) 
			{
				return true;
			}
		}
	} 
	else 
	{
		for (key in haystack) 
		{
			if (haystack[key] == needle) 
			{
				return true;
			}
		}
	}

	return false;
}
//ajax function to refresh captcha
function button_refresh()
{
	$('#captcha_refresh').click(function(){
		var ajax_url = base_url+'ajax/captcha';
		var newImg = $.ajax({
			type: "GET",
			//cache: false,
			async: false,
			url: ajax_url,
			data: '',
			success: function(){
			}
		});
		var img = newImg.responseText+'.jpg';
		var new_img = '<img src="/images/captcha/'+img+'" alt="" />';
		$('#captchaImage').html(new_img);
	});
}
function update_content()
{
	$('.info_icon').filter(function(index){
		var actual_id = this.id.substr(14);
		var selector1 = 'info_icon_img_'+actual_id;
		var selector2 = 'info_content_'+actual_id;
		$('#'+selector1).mouseover(function(){
			$('#'+selector2).slideDown('fast');
		});
		$('#'+selector1).mouseout(function(){
			$('#'+selector2).fadeOut('slow');
		});
	});
}
function update_dashboard()
{
	$('#perm_header').mouseover(function(){
		$('body').css('cursor','pointer');
	});
	$('#perm_header').mouseout(function(){
		$('body').css('cursor','auto');
	});
	$('#perm_header').click(function(index){
		$(this).siblings().toggle('fast');
	});
}
function update_available_pages()
{
	$('#templates').change(function(index){
		var selected_arr = $.makeArray($('#templates').val());
		var options_arr = $.makeArray($('#templates').children().map(function(index){
			return $(this).val();
		}));
		for(var i = 0; i < options_arr.length; i++)
		{
			var show_selector = false;
			for(var ii = 0; ii < selected_arr.length; ii++)
			{
				if(options_arr[i]==selected_arr[ii])
				{
					show_selector = true;		
				}
			}
			var selector = 'pages_fieldset_'+options_arr[i];
			if(show_selector == true)
			{
				$('#'+selector).show('fast');
				//ajax
				var ajax_url = base_url+'ajax/getTemplatePages/'+options_arr[i];
				var newURLs = $.ajax({
					type: "GET",
					//cache: false,
					async: false,
					url: ajax_url,
					data: '',
					success: function(){
					}
				});
				var urls = newURLs.responseText;
				var ul = 'pages_ul_'+options_arr[i];
				$('#'+ul).html(urls);
				$('#'+ul).children().filter(function(index){
					$(this).mouseover(function(){
						$(this).css('background-color','#fc6');
						$(this).css('color','#fff');
						$('body').css('cursor','pointer');
					});
					$(this).mouseout(function(){
						$(this).css('background-color','#ffc');
						$(this).css('color','#909090');
						$('body').css('cursor','auto');
					});
					$(this).dblclick(function(index){
						var pages_arr = new Array();
						pages_arr = $('#pages_show').val().split('\n');
						var add_page = true;
						for(var i = 0; i < pages_arr.length; i++)
						{
							if($(this).text()==pages_arr[i])
							{
								add_page = false;
							}
						}
						if(add_page)
						{
							$('#pages_show').val($('#pages_show').val()+$(this).text()+'\n');
						}
						else
						{
							alert('You have already added that page!');
						}
					});
				});
			}
			else
			{
				$('#'+selector).hide();
				var ul = 'pages_ul_'+options_arr[i];
				var li = '<li>No URLs found</li>';
				$('#'+ul).html(li);
			}
		}	
	});
	$('.pages_legend').filter(function(index){
		var actual_id = this.id.substr(13);
		var selector = 'pages_legend_'+actual_id;
		$('#'+selector).mouseover(function(){
			$('body').css('cursor','pointer');
		});
		$('#'+selector).mouseout(function(){
			$('body').css('cursor','auto');
		});
		$('#'+selector).click(function(){
			if($('#'+selector).siblings().length > 0){
				$('#'+selector).siblings().toggle('fast');	
			}
		});
	});	
}
function update_available_pages2()
{
	$('#templates').change(function(index){
		var selected_arr = $.makeArray($('#templates').val());
		var options_arr = $.makeArray($('#templates').children().map(function(index){
			return $(this).val();
		}));
		for(var i = 0; i < options_arr.length; i++)
		{
			var show_selector = false;
			for(var ii = 0; ii < selected_arr.length; ii++)
			{
				if(options_arr[i]==selected_arr[ii])
				{
					show_selector = true;		
				}
			}
			var selector = 'pages_fieldset_2_'+options_arr[i];
			if(show_selector == true)
			{
				$('#'+selector).show('fast');
				//ajax
				var ajax_url = base_url+'ajax/getTemplatePages/'+options_arr[i];
				var newURLs = $.ajax({
					type: "GET",
					//cache: false,
					async: false,
					url: ajax_url,
					data: '',
					success: function(){
					}
				});
				var urls = newURLs.responseText;
				var ul = 'pages_ul_2_'+options_arr[i];
				$('#'+ul).html(urls);
				$('#'+ul).children().filter(function(index){
					$(this).mouseover(function(){
						$(this).css('background-color','#fc6');
						$(this).css('color','#fff');
						$('body').css('cursor','pointer');
					});
					$(this).mouseout(function(){
						$(this).css('background-color','#ffc');
						$(this).css('color','#909090');
						$('body').css('cursor','auto');
					});
					$(this).dblclick(function(index){
						var pages_arr = new Array();
						pages_arr = $('#pages_hide').val().split('\n');
						var add_page = true;
						for(var i = 0; i < pages_arr.length; i++)
						{
							if($(this).text() == pages_arr[i])
							{
								add_page = false;
							}
						}
						if(add_page)
						{
							$('#pages_hide').val($('#pages_hide').val()+$(this).text()+'\n');
						}
						else
						{
							alert('You have already added that page!');
						}
					});
				});
			}
			else
			{
				$('#'+selector).hide();
				var ul = 'pages_ul_2_'+options_arr[i];
				var li = '<li>No URLs found</li>';
				$('#'+ul).html(li);
			}
		}	
	});
	$('.pages_legend_2').filter(function(index){
		var actual_id = this.id.substr(15);
		var selector = 'pages_legend_2_'+actual_id;
		$('#'+selector).mouseover(function(){
			$('body').css('cursor','pointer');
		});
		$('#'+selector).mouseout(function(){
			$('body').css('cursor','auto');
		});
		$('#'+selector).click(function(){
			if($('#'+selector).siblings().length > 0)
			{
				$('#'+selector).siblings().toggle('fast');	
			}
		});
	});	
}
//ajax function to refresh captcha
function ajaxTemplates()
{
	$('#templates').change(function(index){
		var template_id = $(this).val();
		var ajax_url = base_url+'ajax/getRegionBlocks/'+template_id;
		var template = $.ajax({
			type: "GET",
			//cache: false,
			async: false,
			url: ajax_url,
			data: '',
			success: function(){
			}
		});
		$('#template_manager').html(template.responseText);
		enable_drag_and_drop();
	});
	$('#save_template').click(function(index){
		if($('#template_name').length > 0)
		{
			var template_name = $('#template_name').html();
			if(confirm('Are you sure you want to save the '+template_name+' template?'))
			{
				var url_string = pullRegionsBlocks();
				saveRegionsBlocks(url_string);
				var now = new Date();
				var hour = now.getHours();
				hour = (hour<=9) ? '0'+hour : hour;
				var minute = now.getMinutes();
				minute = (minute<=9) ? '0'+minute : minute;
				var second = now.getSeconds();
				second = (second<=9) ? '0'+second : second;
				$('#help_text').html(template_name+' template saved! Server Time: '+hour+':'+minute+':'+second);
			}
		}
		else
		{
			alert('Please select a template first.');
		}
	});
}
function saveRegionsBlocks(url_string)
{
	var ajax_url = base_url+'ajax/saveRegionBlocks/'+url_string;
	var template = $.ajax({
		type: "GET",
		//cache: false,
		async: false,
		url: ajax_url,
		data: '',
		success: function(){
		}
	});
}
function pullRegionsBlocks()
{
	var template_id_string = $('.overall_template').attr('id');
	var template_id = template_id_string.substr(17);
	var url_string = '';
	//header
	var header_blocks_arr = new Array();
	$('#region_header .droppable').children().each(function(){
		if(this.id.substr(0,6)=='block_')
		{
			header_blocks_arr.push(this.id.substr(6));
			return this.id;
		}
	}).get();
	//sidebar_left
	var sidebar_left_blocks_arr = new Array();
	$('#region_left .droppable').children().each(function(){
		if(this.id.substr(0,6)=='block_')
		{
			sidebar_left_blocks_arr.push(this.id.substr(6));
			return this.id;
		}
	}).get();
	//main_top
	var main_top_blocks_arr = new Array();
	$('#region_main_header .droppable').children().each(function(){
		if(this.id.substr(0,6)=='block_')
		{
			main_top_blocks_arr.push(this.id.substr(6));
			return this.id;
		}
	}).get();
	//main_bottom
	var main_bottom_blocks_arr = new Array();
	$('#region_main_footer .droppable').children().each(function(){
		if(this.id.substr(0,6)=='block_')
		{
			main_bottom_blocks_arr.push(this.id.substr(6));
			return this.id;
		}
	}).get();
	//sidebar_right
	var sidebar_right_blocks_arr = new Array();
	$('#region_right .droppable').children().each(function(){
		if(this.id.substr(0,6)=='block_')
		{
			sidebar_right_blocks_arr.push(this.id.substr(6));
			return this.id;
		}
	}).get();
	//footer
	var footer_blocks_arr = new Array();
	$('#region_footer .droppable').children().each(function(){
		if(this.id.substr(0,6)=='block_')
		{
			footer_blocks_arr.push(this.id.substr(6));
			return this.id;
		}
	}).get();
	//block_html
	var html_blocks_arr = new Array();
	$('#block_staging_html').children().each(function(){
		if(this.id.substr(0,6)=='block_')
		{
			html_blocks_arr.push(this.id.substr(6));
			return this.id;
		}
	}).get();
	//alert('html: '+html_blocks_arr);
	//block_php
	var php_blocks_arr = new Array();
	$('#block_staging_php').children().each(function(){
		if(this.id.substr(0,6)=='block_')
		{
			php_blocks_arr.push(this.id.substr(6));
			return this.id;
		}
	}).get();
	//alert('php: '+php_blocks_arr);
	for(var i = 0; i < header_blocks_arr.length; i++)
	{
		url_string = url_string+'_'+template_id+'-1-'+header_blocks_arr[i]+'-'+i;	
	}
	for(var i = 0; i < sidebar_left_blocks_arr.length; i++)
	{
		url_string = url_string+'_'+template_id+'-2-'+sidebar_left_blocks_arr[i]+'-'+i;	
	}
	for(var i = 0; i < main_top_blocks_arr.length; i++)
	{
		url_string = url_string+'_'+template_id+'-3-'+main_top_blocks_arr[i]+'-'+i;	
	}
	for(var i = 0; i < main_bottom_blocks_arr.length; i++)
	{
		url_string = url_string+'_'+template_id+'-4-'+main_bottom_blocks_arr[i]+'-'+i;	
	}
	for(var i = 0; i < sidebar_right_blocks_arr.length; i++)
	{
		url_string = url_string+'_'+template_id+'-5-'+sidebar_right_blocks_arr[i]+'-'+i;	
	}
	for(var i = 0; i < footer_blocks_arr.length; i++)
	{
		url_string = url_string+'_'+template_id+'-6-'+footer_blocks_arr[i]+'-'+i;	
	}
	for(var i = 0; i < html_blocks_arr.length; i++)
	{
		url_string = url_string+'_'+template_id+'-0-'+html_blocks_arr[i]+'-'+i;	
	}
	for(var i = 0; i < php_blocks_arr.length; i++)
	{
		url_string = url_string+'_'+template_id+'-0-'+php_blocks_arr[i]+'-'+i;	
	}
	//format here is template_id-region_id-block_id-block_weight
	return url_string;
}
function enable_drag_and_drop(){
/*
	$('.draggable').draggable({
		helper: 'clone',
		opacity: .30,
	});
*/
	$('.draggable').mouseover(function(index){
		$('body').css('cursor','move');
		$(this).css('background-position','5px 5px');
	});
	$('.draggable').mouseout(function(index){
		$('body').css('cursor','auto');
		$(this).css('background-position','5px -14px');
	});
	$('.droppable').sortable({
		connectWith: '.droppable',
		placeholder: 'block_placeholder',
		tolerance: 'pointer'
	});
	$('.droppable').disableSelection();
/*
	$('.droppable').droppable({
		tolerance: 'pointer',
		drop: function(event, ui){
			var dragEl = $(ui.draggable);
			var dropEl = $(this);
			var tmp_width = dropEl.width();
			//take care of padding and border width
			tmp_width = tmp_width-27;
			dragEl.css('width',tmp_width+'px');
			dragEl.appendTo($(dropEl));	
			dragEl.css('opacity','1.0');
		}
	});
*/
}
function ObjectPosition(obj) 
{
	var curleft = 0;
	var curtop = 0;
	if (obj.offsetParent) 
	{
		do 
		{
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		} 
		while (obj = obj.offsetParent);
	}
	return [curleft,curtop];
}
function update_seo_meter()
{
	var main_keyword,page_title,meta_keywords,meta_description,h1_title,body;
	var score,score_percent,seo1,seo2,seo3,seo4;
	score = 0;
	main_keyword = $.trim($('#main_keyword').text());	
	score_percent = $('#score_percent');	
	page_title = $('#page_title').val();
	//alert(page_title);
	meta_keywords = $('#meta_keywords').val();
	meta_description = $('#meta_description').val();
	h1_title = $('#h1_title').val();
	body = tinyMCE.editors['page_body'].getContent();
	//alert(body);
	var foundPageTitle = page_title.search(main_keyword);
	var foundMetaKeywords = meta_keywords.search(main_keyword);
	var foundMetaDescription = meta_description.search(main_keyword);
	var foundH1Title = h1_title.search(main_keyword);
	var foundBody = body.search(main_keyword);
	//is the keyword found in the page_title
		//.35
	//is the keyword found in the meta_keywords
		//.10
	//is the keyword found in the meta_description
		//.10
	//is the keyword found in the h1_title
		//.20
	//is the keyword found in the body
		//.15
	var seo_text = $('#seo_meter_text');
	seo1 = $('#seo_meter div:nth(0)');
	seo2 = $('#seo_meter div:nth(1)');
	seo3 = $('#seo_meter div:nth(2)');
	seo4 = $('#seo_meter div:nth(3)');
	//score = .78;
	//alert(page_title);
	if(foundPageTitle!=-1)
	{
		score += .35;
	}
	if(foundMetaKeywords!=-1)
	{
		score += .15;
	}
	if(foundMetaDescription!=-1)
	{
		score += .15;
	}
	if(foundH1Title!=-1)
	{
		score += .20;
	}
	if(foundBody!=-1)
	{
		score += .15;
	}
	score_percent.html(parseFloat(score*100).toFixed(2)+'%');
	//alert(score);
	//poor
	var cutoff2 = .50;
	//fair
	var cutoff3 = .70;
	//good
	var cutoff4 = .90;
	//excellent
	if(score < cutoff2)
	{
		//#f00 is red
		seo1.css('background','#f00');
		seo1.css('border','solid 1px #f00');
		seo2.css('background','none');
		seo2.css('border','none');
		seo3.css('background','none');
		seo3.css('border','none');
		seo4.css('background','none');
		seo4.css('border','none');
		seo_text.html('Poor');
	}
	else if(score < cutoff3)
	{
		//#f90 is orange
		seo1.css('background','#f90');
		seo2.css('background','#f90');
		seo1.css('border','solid 1px #f90');
		seo2.css('border','solid 1px #f90');
		seo3.css('background','none');
		seo3.css('border','none');
		seo4.css('background','none');
		seo4.css('border','none');
		seo_text.html('Fair');
	}
	else if(score < cutoff4)
	{
		//#ff0 is yellow
		seo1.css('background','#ff0');
		seo2.css('background','#ff0');
		seo3.css('background','#ff0');
		seo1.css('border','solid 1px #ff0');
		seo2.css('border','solid 1px #ff0');
		seo3.css('border','solid 1px #ff0');
		seo4.css('background','none');
		seo4.css('border','none');
		seo_text.html('Good');
	}
	else
	{
		//#0f0 is green
		seo1.css('background','#0f0');
		seo2.css('background','#0f0');
		seo3.css('background','#0f0');
		seo4.css('background','#0f0');
		seo1.css('border','solid 1px #0f0');
		seo2.css('border','solid 1px #0f0');
		seo3.css('border','solid 1px #0f0');
		seo4.css('border','solid 1px #0f0');
		seo_text.html('Excellent');
	} 
}
function control_blog_toolbar()
{
	var toolbar = '#blog_toolbar';
	if($('#content_type').val() == 2)
	{
		$(toolbar).fadeIn('slow');	
		$('.draggable').draggable({
			//opacity: '.3',
		});
		$('.draggable').mousedown(function(index){
			$('.draggable').css('opacity','.3');
		});
		$('.draggable').mouseup(function(index){
			var dragEl = $(this);
			var page_width = $(document).width();
			var leftOffset = page_width-250;
			var offsets = ObjectPosition(this);	
			$('.draggable').css('opacity','1.0');
			$('.draggable').css('position','fixed');
			$('.draggable').css('top',offsets[1]+'px');
			$('.draggable').css('left',offsets[0]+'px');
		});
		$('.draggable').mouseover(function(index){
			$('body').css('cursor','move');
			//$(this).css('background-position','5px 5px');
		});
		$('.draggable').mouseout(function(index){
			$('body').css('cursor','auto');
			//$(this).css('background-position','5px -14px');
		});
		$('#h1_title').keyup(function(index){
			update_seo_meter();
		});
		$('#page_title').keyup(function(index){
			update_seo_meter();
		});
		$('#body').keyup(function(index){
			update_seo_meter();
		});
		$('#meta_keywords').keyup(function(index){
			update_seo_meter();
		});
		$('#meta_description').keyup(function(index){
			update_seo_meter();
		});
	}
	$('#content_type').change(function(index){
		if($(this).val() == 2)
		{
			$(toolbar).fadeIn('slow');	
			$('.draggable').draggable({
				//opacity: '.3',
			});
			$('.draggable').mousedown(function(index){
				$('.draggable').css('opacity','.3');
			});
			$('.draggable').mouseup(function(index){
				var dragEl = $(this);
				var page_width = $(document).width();
				var leftOffset = page_width-250;
				var offsets = ObjectPosition(this);	
				$('.draggable').css('opacity','1.0');
				$('.draggable').css('position','fixed');
				$('.draggable').css('top',offsets[1]+'px');
				$('.draggable').css('left',offsets[0]+'px');
			});
			$('.draggable').mouseover(function(index){
				$('body').css('cursor','move');
				//$(this).css('background-position','5px 5px');
			});
			$('.draggable').mouseout(function(index){
				$('body').css('cursor','auto');
				//$(this).css('background-position','5px -14px');
			});
			$('#h1_title').keyup(function(index){
				update_seo_meter();
			});
			$('#page_title').keyup(function(index){
				update_seo_meter();
			});
			$('#body').keyup(function(index){
				update_seo_meter();
			});
			$('#meta_keywords').keyup(function(index){
				update_seo_meter();
			});
			$('#meta_description').keyup(function(index){
				update_seo_meter();
			});
		}
		else
		{
			$(toolbar).fadeOut('slow');	
		}
	});
}
function initialize_date()
{
	var tmpDate = new Date();
	var tmpCurrYear = tmpDate.getFullYear();
	var tmpOldestYear = tmpCurrYear-100;
	$(function() {
		$('#birth_date').datepicker({
			yearRange: tmpOldestYear+':'+tmpCurrYear,
			minDate:'-100Y',
			maxDate:'',
			changeMonth: true,
			changeYear: true
		});
	});
}

function update_sortables()
{
	$(function() {
		$("#sortable1").sortable({
			connectWith: '.connected_sortable',
			placeholder: 'ui-state-highlight',
			handle: '.column-handle',
			delay: '200',
			cursor: 'move',
			axis: 'y',
			tolerance: 'pointer',
			stop: function(event, ui){
				var final_result = new Array();
				var result = $('#sortable1').sortable('toArray');
				for (var i = 0; i < result.length; i++){
					if (result[i] != null && result[i] != 'undefined' && result[i] != ''){
						var tmp_id = result[i];
						//alert(tmp_id);
						var element = $('#'+tmp_id);
						if (element.hasClass('page-sorted')){
							continue;
						}
						var tmp_array = new Array();
						tmp_array = result[i].split('-');
						for (var ii = 0; ii < tmp_array.length; ii++){
							if (tmp_array[ii] != null && tmp_array[ii] != 'undefined' && tmp_array[ii] != '' && tmp_array[ii] != 'keyword' && tmp_array[ii] != 'id'){
								final_result.push(tmp_array[ii]);	
							}
						}
					}
				}
				//alert(final_result);
				if (final_result.length > 0){
					ajaxTickerOrder(final_result);
				}
				else{
					final_result = null;
					ajaxTickerOrder(final_result);
				}
			}
		}).disableSelection();
		$("#sortable2").sortable({
			connectWith: '.connected_sortable',
			placeholder: 'ui-state-highlight',
			handle: '.column-handle',
			delay: '200',
			cursor: 'move',
			axis: 'y',
			tolerance: 'pointer',
		}).disableSelection();
	});
	$('.column-jumper').click(function(){
		var attr_id = $(this).attr('id');
		var tmp_parent = $(this).parent().parent().attr('id');
		var parent_length = tmp_parent.length;
		var list = tmp_parent[parent_length-1];
		var jumper = 1;
		switch (list){
			case '1':
				jumper = '2';
				var tmp_row = $(this).parent();
				var new_list = 'sortable'+jumper;
				$('#sortable2 li:eq(1)').before(tmp_row);
				break;
			case '2':
				jumper = '1';
				var tmp_row = $(this).parent();
				var new_list = 'sortable'+jumper;
				$('#'+new_list).append(tmp_row);
				break;
			default:
				jumper = '2';
				alert('Problem: Default jump to Available Keywords!');
				var tmp_row = $(this).parent();
				var new_list = 'sortable'+jumper;
				$('#sortable2 li:eq(1)').before(tmp_row);
				break;
		}
		if ($('#sortable1').children().length > 1){
			var final_result = new Array();
			$('#sortable1').children().map(function(){
				var tmp_name = $(this).attr('id');
				if (tmp_name != null && tmp_name != 'undefined' && tmp_name != ''){
					var tmp_id = parseInt(tmp_name.substring(11));
					if (!isNaN(tmp_id)){
						final_result.push(tmp_id);
					}
				} 
			});	
			ajaxTickerOrder(final_result);
		}
		else{
			var final_result = null;
			ajaxTickerOrder(final_result);
		}
	});
	$('.confirm-exact-edit').click(function(){
		var attr_id = $(this).attr('id');
		var id_array = new Array();
		id_array = attr_id.split('-');
		var i_var = id_array.length;
		var option = id_array[i_var-2];
		var final_attr_id = id_array[i_var-1];

		var edit_el = $('#confirm-edit-exact-'+option+'-'+final_attr_id);
		var ok_el = $('#confirm-ok-exact-'+option+'-'+final_attr_id);
		var cancel_el = $('#confirm-cancel-exact-'+option+'-'+final_attr_id);

		edit_el.addClass('hide');
		ok_el.removeClass('hide');
		cancel_el.removeClass('hide');

		var tmp_element = $('#column-traffic-exact-'+option+'-'+final_attr_id);
		var tmp_html = tmp_element.html();
		tmp_element.html('<input class="confirm-input" id="confirm-input-'+option+'-'+final_attr_id+'" type="text" value="'+tmp_html+'" /><div id="previous-traffic-'+option+'-'+final_attr_id+'" class="hide">'+tmp_html+'</div>');
	});
	$('.confirm-exact-ok').click(function(){
		var attr_id = $(this).attr('id');
		var id_array = new Array();
		id_array = attr_id.split('-');
		var i_var = id_array.length;
		var option = id_array[i_var-2];
		var final_attr_id = id_array[i_var-1];

		var edit_el = $('#confirm-edit-exact-'+option+'-'+final_attr_id);
		var ok_el = $('#confirm-ok-exact-'+option+'-'+final_attr_id);
		var cancel_el = $('#confirm-cancel-exact-'+option+'-'+final_attr_id);

		edit_el.removeClass('hide');
		ok_el.addClass('hide');
		cancel_el.addClass('hide');

		var previous_entry = $('#previous-traffic-'+option+'-'+final_attr_id).html();
		var new_entry = $('#confirm-input-'+option+'-'+final_attr_id).val();
		new_entry = new_entry.replace(/\,/g, '');
		/*var new_entry = $('#confirm-input-'+option+'-'+final_attr_id).val().replace().(/\,/g, '')*/;
		var tmp_element = $('#column-traffic-exact-'+option+'-'+final_attr_id);
		tmp_element.html('');
		tmp_element.html(new_entry);

		var final_result = '';
		var keyword_id = $('#keyword-id-'+option+'-'+final_attr_id).html();
		if (previous_entry != new_entry){
			final_result = keyword_id+'-'+new_entry;
			if (isNaN(parseInt(new_entry))){
				final_result = null;
			}
		}
		else{
			final_result = null;
		}
		ajaxTickerTraffic(final_result);
	});
	$('.confirm-exact-cancel').click(function(){
		var attr_id = $(this).attr('id');
		var id_array = new Array();
		id_array = attr_id.split('-');
		var i_var = id_array.length;
		var option = id_array[i_var-2];
		var final_attr_id = id_array[i_var-1];

		var edit_el = $('#confirm-edit-exact-'+option+'-'+final_attr_id);
		var ok_el = $('#confirm-ok-exact-'+option+'-'+final_attr_id);
		var cancel_el = $('#confirm-cancel-exact-'+option+'-'+final_attr_id);

		alert('Canceled!');
		final_result = null;
		ajaxTickerTraffic(final_result);

		edit_el.removeClass('hide');
		ok_el.addClass('hide');
		cancel_el.addClass('hide');

		var previous_entry = $('#previous-traffic-'+option+'-'+final_attr_id).html();
		var tmp_element = $('#column-traffic-exact-'+option+'-'+final_attr_id);
		tmp_element.html('');
		tmp_element.html(previous_entry);
	});
}

function ajaxTickerOrder(final_result){
	var sent_result = '';
	if (final_result != null){
		for (var i = 0; i < final_result.length; i++){
			if (i != 0){
				sent_result = sent_result+'-';
			}
			sent_result = sent_result+final_result[i];
		}
	}
	else{
		sent_result = '0';
	}
	var ajax_url = base_url+'ajax/updateTickerOrder/'+sent_result;
	var savedData = $.ajax({
		type: "GET",
		//cache: false,
		async: false,
		url: ajax_url,
		data: '',
		success: function(){
		}
	});
	var info = savedData.responseText;
	var current_time = getTickerTime();
	var current_day = getTickerDay();
	updateStatusBar('Ticker Order Updated on '+current_day+' at '+current_time);
}

function ajaxTickerTraffic(final_result){
	var sent_result = '';
	if (final_result != null){
		sent_result = final_result;
		var ajax_url = base_url+'ajax/updateTickerTraffic/'+sent_result;
		var savedData = $.ajax({
			type: "GET",
			//cache: false,
			async: false,
			url: ajax_url,
			data: '',
			success: function(){
			}
		});
		var info = savedData.responseText;
		var current_time = getTickerTime();
		var current_day = getTickerDay();
		updateStatusBar('Ticker Traffic Updated on '+current_day+' at '+current_time+' for \''+info+'\'');
	}
	else{
		sent_result = '0';
		var current_time = getTickerTime();
		var current_day = getTickerDay();
		updateStatusBar('Ticker Traffic Update <span class="underline">Canceled</span> on '+current_day+' at '+current_time);
	}
}

function getTickerDay(){
	var dater = new Date();
	var tmp_day = dater.getDay();
	var final_day = '';
	switch(tmp_day){
		case 0:
			final_day = 'Sun';	
			break;
		case 1:
			final_day = 'Mon';	
			break;
		case 2:
			final_day = 'Tue';	
			break;
		case 3:
			final_day = 'Wed';	
			break;
		case 4:
			final_day = 'Thu';	
			break;
		case 5:
			final_day = 'Fri';	
			break;
		case 6:
			final_day = 'Sat';	
			break;
		default:
			final_day = '(Error, day could not be determined!)';	
			break;
	}
	return final_day;
}

function getTickerTime(){
        var time_array = new Array();
        var now = new Date();
        var h = now.getHours();
	var ap = '';
	if (h > 12){
		ap = 'pm';
	}
	else{
		ap = 'am';
	}
        var m = now.getMinutes();
        var s = now.getSeconds();
        var ms = now.getMilliseconds();
        h = checkTickerTime(h, 'hour');
        m = checkTickerTime(m, 'reg');
        s = checkTickerTime(s, 'reg');
        ms = checkTickerTime(ms, 'mil');
        var current_time = h+':'+m+' '+ap+' (and '+s+' seconds)';
        return current_time;
}

function checkTickerTime(i, type){
        switch (type)
        {
                case 'hour':
                        if (i>12)
                        {
                                i = i-12;
                        }
                        if (i < 10)
                        {
                                i = "0" + i;
                        }
                        if (i == '00')
                        {
                                 i = '12';
                        }
                        break;
                case 'reg':
                        if (i<10)
                        {
                                i = "0" + i;
                        }
                        break;
                case 'mil':
                        if (i<100 && i > 10)
                        {
                                i="0" + i;
                        }
                        else if (i<10)
                        {
                                i="00"+i;
                        }
                        break;
        }
        return i;
}

function updateStatusBar(message){
	$('#status-bar').html(message);
}

function getCities(){
	$('#state').change(function(){
		var state_code = $('#state').val();
		var ajax_url = base_url+'ajax/getCities/'+state_code;
		var cities = $.ajax({
			type: "GET",
			//cache: false,
			async: false,
			url: ajax_url,
			data: '',
			success: function(){
			}
		});
		var city_select = cities.responseText;
		$('#city-holder').html(city_select);
	});
}

//instantiated by jquery.ready function --> '$(document).ready(function(){});' at top of page, calls functions as needed after the page is loaded
function init()
{
	//for any admin page that needs delete confirmations set
	if($('.deleter').length > 0)
	{
		setDeleteConfirmations();
	}
	//for any page that has a tinymce class on it
	if($(".tinymce").length > 0)
	{
		$(".tinymce").tinymce();
	}
	//if the page is the manage content page
	if($(".page_vadmin_content").length > 0)
	{
		if($(".info_icon").length > 0)
		{
			update_content();
		}
	}
	if($(".page_vadmin_ticker").length > 0)
	{
		update_sortables();
	}
	//if the page is the admin dashboard
	if($(".page_admin").length > 0)
	{
		update_dashboard();
	}
	if($(".page_vadmin_blocks_add").length > 0 || $(".page_vadmin_blocks_edit").length > 0)
	{
		update_available_pages();
		update_available_pages2();
	}
	//for any page that has a machine_name on it
	if($("#machine_name").length > 0)
	{
		strip_dashes();
	}
	if($(".page_contact").length > 0 || $(".blog").length > 0)
	{
		button_refresh();
		getCities();
	}
	if($(".page_white_paper_how_to_value_seo").length > 0 || $(".blog").length > 0)
	{
		button_refresh();
		getCities();
	}
	if($("#captcha").length > 0)
	{
		button_refresh();
	}
	if($(".page_vadmin_regions").length > 0)
	{
		ajaxTemplates();
	}
	if($(".page_vadmin_bios_add").length > 0 || $(".page_vadmin_bios_edit").length > 0)
	{
		initialize_date();
	}
}
