$(document).ready(function(){

	$("#error_form").hide();

	window.status = 'Vorwaerts Gmbh Reporting';

	$("#toggle_filter").toggle(function(){
		$("#filter_table").show();
	},function(){
		$("#filter_table").hide();
	});

	$("#error_reporting").toggle(function(){
		$("#error_form").show();
	},function(){
		$("#error_form").hide();
	});

	$(".close_panel").click(function(){
		$(this).parents(".panel").hide();
	});

	// Filter Table Results
	$("form.filter").submit(function(){
		$(this).children("fieldset").addClass("loading")
		$(this).contents().find(".submit").hide();
		var filterType = $(this).contents().find("#filtertype").attr("checked");
		if(!filterType)
		{
			var pattern = new RegExp(escape(jQuery.trim($(this).contents().find("#filterby").val())), "i");
		}
		else
		{
			var pattern = new RegExp('^'+escape(jQuery.trim($(this).contents().find("#filterby").val()))+'$');
		}
		var filterClass = $(this).contents().find("#filtercolumn").val();
		var filterTable = $("#filtertable").val();
		var tmp_val = "";
		$("#"+filterTable).contents().find(".ranking").each(function(){
			tmp_val = escape($(this).find("."+filterClass).text());
			if(tmp_val.match(pattern))
			{
				$(this).show();
			}
			else
			{
				$(this).hide();
			}
		});
		$(this).contents().find(".submit").show();
		$(this).children("fieldset").removeClass("loading");
		return false;
	});

	// Show form to add new site
	$("#add_site_show").click(function(){
		$(this).parents("li").hide();
		$("#add_site_hide").parents("li").show();
	});

	$("#add_site_hide").click(function(){
		$(this).parents("li").hide();
		$("#add_site_show").parents("li").show();
	});
	
	// Process form to add new site
	$("#add_site_form").live("submit", function(event) {
		var title = $("#title_field").val();
		var domain = $("#domain_field").val();
		var url = "inc/add_site.inc.php?domain="+domain+"&name="+title;
		$.ajax({
			type: "GET",
			data: "",
			dataType: "html",
			url: url,
			success: function(data){
				if(data > 0)
				{
					window.location="dashboard.php?site="+domain;
				}
			}
		});
		event.preventDefault();
	});

	// Process form to save user profile
	$("#edit_user_details").live("submit", function(event) {
		var arg = $(this).serialize();

		var url = $(this).attr("action");

		$.ajax({
			type: "POST",
			data: arg,
			dataType: "html",
			url: url,
			success: function(data){
				if(data)
				{
					success('Profil erfolgreich aktualisiert. ('+data+' )');
				}
				else
				{
					failure('Es wurden keine aktualisierten Daten eingegeben.');
				}
			}
		});
		event.preventDefault();
	});

	// Process form to add new keywords
	$("#add_keywords_form").live("submit", function(event) {
		$("#add_keywords_form .submit").hide();
		
		var updateallkeywords = '';	
		if($('#updateallkeywords').is(':checked')) {
			updateallkeywords = '&updateallkeywords=1'
		}
	
		var keys = $("#custom-keywords").val();	
		var url = $(this).attr("action");
		$.ajax({
			type: "POST",
			data: "custom-keywords="+keys+updateallkeywords,
			dataType: "html",
			url: url,
			success: function(data){
				if(data)
				{
					$("#custom-keywords").val(data);
				}
			},
			complete: function(){
				$("#add_keywords_form label").hide();
				$("#updateallkeywords").hide();
			}
		});
		event.preventDefault();
	});

	// Dashboard Ranking Distribution Graph Cycle
	$("#ranking_distribution .cycle").cycle({ 
	    fx: 'scrollHorz',
	    next: '#next_ranking',
	    prev: '#prev_ranking',
	    timeout: 0
	});

	// Ranking Cycle
	$(".rankings").cycle({ 
	    fx: 'scrollHorz',
	    next: '.next',
	    prev: '.prev',
	    timeout: 0
	});

	// screenshot Cycle
	$("#favorite_screenshots .carea").cycle({ 
	    fx: 'scrollHorz',
	    next: '#next_thumb',
	    prev: '#prev_thumb',
	    timeout: 0,
	    sync: 1
	});


	// Load Live Search Result
	$(".load").click(function(){
		var url = $(this).attr("href");
		$(this).parents(".preview").addClass("loading");
		$.ajax({
			type: "GET",
			data: "",
			dataType: "html",
			url: url,
			success: function(data){
				$("a[href='"+url+"']").parents(".preview").html(data).removeClass("loading");
			}
		});
		return false;
	});

	// Toggle Site Favorite
	$(".make_primary").click(function(){
		var tmp = $(this);
		var url = $(this).attr('href');
		$.ajax({
			type: "GET",
			data: "",
			dataType: "html",
			url: url,
			success: function(data){
				if(data == 'fav')
				{
					tmp.addClass("fav");
					success('Set for dashboard view.  ');
				}
				if(data == 'unfav')
				{
					tmp.removeClass("fav");
					success('Unset for dashboard view. ');
				}
			}
		});
		return(false);
	});


	// Ranking Live Check
	$("#live_ranking_form").submit(function(){
		$("#live_ranking_results .area").addClass("loading");

		var keys = $("#keywords").val();
		var domains = $("#domains").val();
		var limit = $("#limit").val();
		var market = $("#market").val();

		var url = "google_check.php?keywords=" + keys + "&domains=" + domains + "&limit=" + limit + "&market=" + market;

		$("#live_ranking_results .area").empty();

		$.ajax({
			type: "GET",
			data: "",
			dataType: "html",
			url: url,
			success: function(data){
				if(data.substr(0,5) == "ERROR")
				{
					failure();
				}
				else
				{
					$("#live_ranking_results .area").html(data).removeClass("loading");
				}
			}
		});
		return false;
	});

	// Reload Live Check History Entry
	$("#live_check_history .entry").click(function(){
		$("#keywords").val($(this).children("span.keyword").text());
		$("#domains").val($(this).children("span.domain").text());

		var position = $(this).children('span.position').text();
		$("#limit option[value="+position+"]").attr("selected", true);

		var market = $(this).children('span.market').text();
		$("#market option[value="+market+"]").attr("selected", true);

		$("#live_ranking_form").trigger("submit");
	});

	// Handle toggle_container
	$('.toggle_container .toggle_button a')
	.toggle(function(){
		var box = "#"+$(this).attr("rev");
		$(box).fadeIn("fast");
	},function(){
		var box = "#"+$(this).attr("rev");
		$(box).fadeOut("fast");
	});

	$('.show_table').toggle(function(){
		$(this).parents(".ranking_page").children(".output_table").fadeIn('slow');
		$(this).html("Hide Ranking Details");
	},function(){
		$(this).parents(".ranking_page").children(".output_table").fadeOut('slow');
		$(this).html("Show Ranking Details");
	});
		
	// Site Chooser
	$('#market_nav #close').click(function(){
		displayMenu();
	});	

	$('#market_nav .menu').click(function(){
		displayMenu();
	});	

	$("body").click(function(e) { //hides Site Chooser when clicking outside the menu
		var target = $(e.target);    
		
		if(target.parents("#market_nav").length == 0) {
			$('#market_nav').children("li").not(".current").fadeOut('fast');
			$('#market_nav').addClass('closed').fadeIn('slow');
		}
	});	

	// Save Site Details
	$('.site_edit').editable('inc/save_site.inc.php', { 
		type      : 'text',
		cancel    : 'Canmenumcel',
		submit    : 'OK',
		indicator : '<img src="../imges/indicator.gif">',
		tooltip   : 'Click to edit...',
		cssclass  : 'text',
		callback : function(value, settings) {
			success("Site details saved! ");
	}});

	// Delete Excluded Path
	$('#excluded_paths .delete').live('click',function(){
		var id = $(this).parents('tr').attr('id');
		if(!id)
		{
			failure();
		}
		else
		{
			$.ajax({
				type: "POST",
				data: "id="+id,
				dataType: "text",
				url: "inc/delete_exclude_path.inc.php",
				success: function(data){
					if(data == 'Success')
					{
						success();
						$("#"+id).remove();
					}
					else
					{
						failure();
					}
				}
			});
		}
	});

	// Modify Excluded Path
	$('.path_edit').editable('inc/save_exclude_path.inc.php', { 
		type      : 'text',
		cancel    : 'Cancel',
		submit    : 'OK',
		indicator : '<img src="../imges/indicator.gif">',
		tooltip   : 'Click to edit...',
		cssclass  : 'text',
		callback : function(value, settings) {
			success();
	}});

	// Save New Excluded Path #add_excluded_path
	$('#add_excluded_path .submit').click(function(){
		var siteId = $("#site_id").val();
		var path = $("#new_path").val();

		if(path == '' & path == 'http://')
		{
			$("#new_path").addClass("error");
		}
		else
		{
			$.ajax({
				type: "POST",
				data: "site_id="+siteId+"&path="+path,
				dataType: "text",
				url: "inc/add_exclude_path.inc.php",
				success: function(data){
					$("#excluded_paths table tbody").append('<tr id="' + data + '"><td><a id="id_' + data + '" class="path_edit path">' + path + '</a></td><td><a class="delete" href="#">Delete</a></td></tr>');
					$("#new_path").val("");
					success();
				}
			});
		}
		return false;
	});

	// Ranking Filter
	$('.filter a').click(function(){
		var tmp = $(this).attr("class");
		var myArray = tmp.split('_');
		if($('.'+myArray[1]).hasClass('closed'))
		{
			$('.'+myArray[1]).removeClass('closed').fadeIn();
		}
		else
		{
			$('.'+myArray[1]).addClass('closed').fadeOut();
		}
	});

});

// Notify Data Save
function success(details)
{
	if(details)
	{
		var msg = details;
	}
	else
	{
		var msg = "Thank you, our settings were updated!";
	}

	$.notifyBar({
    	html: msg,
    	delay: 2000,
    	animationSpeed: "normal",
    	close: true
	});
}

// Notify Error
function failure(details)
{
	if(details)
	{
		var msg = details;
	}
	else
	{
		var msg = "Sadly an error occured while or request was executed. Please reload the page and try again.";
	}
	$.notifyBar({
    	html: msg,
    	delay: 3000,
    	animationSpeed: "normal",
    	close: true
	});
}

// Get GET Variables
function getUrlVars()
{
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}

// show/hide menu
function displayMenu()
{
	if($('#market_nav').hasClass('closed'))
	{
		$('#market_nav').children("li").fadeIn('fast');
		$("#add_site_hide").parents("li").hide();
		$('#market_nav').removeClass('closed');
	}
	else
	{
		$('#market_nav').children("li").not(".current").fadeOut('fast');
		$('#market_nav').addClass('closed');
	}
}
