//---------------- Manager functions
//--------------------------------------
function send_email(href_url, form_id) {
	$.get(href_url, $('#'+form_id).serialize(), function(data) {
		if(data.status) {
			widget_close();
		}
		else {

		}
	}, 'json');

	return false;
}

function email_widget(href_url, email, strings) {
	var content =
		'<form action="" method="GET" id="email_form" onsubmit="return send_email(\''+href_url+'\', \'email_form\');">' +
		'<input type="hidden" value="send-email" name="action">' +
		'<table cellpadding="0" cellspacing="0">' +

			'<tr><td><label for="address">'+strings.email+'</label></td><td><input type="text" name="address" id="address" value="'+email+'"></td></tr>'+
			'<tr><td><label for="subject">'+strings.subject+'</label></td><td><input type="text" name="subject" id="subject" value="'+strings.contact_from_odyssey+'"></td></tr>'+
			'<tr><td class="v_top"><label for="mail_body">'+strings.email_body+'</label></td><td><textarea rows="4" cols="80" name="mail_body" id="mail_body"></textarea></td></tr>' +
			'<tr><td></td><td><input type="submit" value="'+strings.send_email+'"></td></tr>' +
		'</table>' +
		'</form>';

  	var widget_background = '<div id="widget_background"></div>';
	var widget_box   = 	'<div id="widget">';
	widget_box		+=		'<center>';
	widget_box		+= 			'<div class="widget_outer_transparent_container"></div>';
	widget_box		+=			'<div class="widget_outer_container">';
	widget_box  	+=		 		'<div class="widget_close"><img src="'+href_url+'include/widgets/images/dialog-x.png" alt="" onclick="widget_close()"></div>';
	widget_box  	+= 				'<div class="widget_container_top"><div class="drag_handle"></div></div>';
	widget_box  	+= 				'<div class="widget_container">';
	widget_box  	+= 					'<div class="widget_inner_container">';
	widget_box		+=						'<div class="widget_content">';
	widget_box		+=							content;
	widget_box		+=						'</div>';
	widget_box  	+= 					'</div>';
	widget_box  	+= 				'</div>';
	widget_box  	+= 				'<div class="widget_container_bottom"></div>';
	widget_box		+=			'</div>';
	widget_box		+=		'</center>';
	widget_box  	+= 	'</div>';

	$('body').append(widget_background);
	$('body').append(widget_box);

	/* ## */

	$('#widget_background').height($(document).height());
	$('#widget').height($(document).height());
	$('#widget .widget_outer_transparent_container').height($('#widget .widget_outer_container').height());
	var widget_position_top = (($(window).height()/2) - $('#widget .widget_outer_container').height()/2) + $(window).scrollTop();
	$('#widget .widget_outer_transparent_container').css({top:widget_position_top});
	$('#widget .widget_outer_container').css({top:widget_position_top});
	$('#widget .widget_outer_container').draggable({handle:'.drag_handle'});

	$('#widget_background').css('opacity',0.5); /* If this opacity is not set, then in IE the fade-in starts from 100% and the goes transparent */
	$('#widget').hide();
	$('#widget_background').fadeIn('fast',function() {
		$('#widget').fadeIn('fast');
	});

}

function widget_close() {
	//$('#widget').hide('slide',{'direction':'left'},500,function() {
	$('#widget').fadeOut('fast',function() {
		//$('#widget_background').hide('slide',{'direction':'right'},500,function() {
		$('#widget_background').fadeOut('fast',function() {
			$('#widget_background').remove();
			$('#widget').remove();
		});
	});
}

//adds new item to items list
function add_item(href_url, container, button) {
	if (typeof add_item.num_of_items == 'undefined') {
		add_item.num_of_items = 1;
	}

	//We fetch the products only if add_item.select_box is not set, i.e. we do it only once
	if (typeof add_item.select_box == 'undefined') {
		$.post(href_url, {'action':'get-products'}, function(data) {
			add_item.select_box = build_products_menu(data);
			push_item(container, button, add_item.select_box);
		}, 'json');
	}
	else {
		push_item(container, button, add_item.select_box);
	}
}

//this function removes button from container, adds cont to container and then adds button again.
//Effectively - pushes a new cont in items list
function push_item(container, button, cont) {
	var temp = $('#'+button).clone(true);
	$('#'+button).remove();
	$('#'+container).append(cont.replace('product_select', 'product_select'+add_item.num_of_items));
	$('#notes_col').append('<input type="text" class="long_inp" name="notes'+add_item.num_of_items+'" id="notes'+add_item.num_of_items+'"><div class="v_spacer clear_both"></div>');

	if (add_item.num_of_items < 4) {
		$('#'+container).append(temp);
	}


	add_item.num_of_items++;
}

//This function generates the select tag using the products received
function build_products_menu(products_info) {
	var cont = '<div>';
	cont +=		'<select name="product_select" id="product_select" class="product_select long_inp">';
	cont +=		'<option value=""></option>';

	build_products_menu.arr_reordered = [];
	build_products_menu.order = [];
	/*build_products_menu.order['209359'] = 0;
	build_products_menu.order['209363'] = 1;
	build_products_menu.order['210469'] = 2;
	build_products_menu.order['209455'] = 3;
	build_products_menu.order['209365'] = 4;
	build_products_menu.order['210521'] = 5;*/

	$.each(products_info.products, function(i, product){
		build_products_menu.arr_reordered[i] = product;
	});


	$.each(build_products_menu.arr_reordered, function(i, product){
		cont += '<optgroup label="' + product.title + '">';
		if (product.attributes) {
			$.each(product.attributes[0].options, function(j, option){
				cont += '<option value="'+product.doc_id+ ' ' + option.option_enc + '">' + option.option + '</option>';
			});
		}
		else {
			cont += '<option value="'+product.doc_id+'">' + product.title + '</option>';
		}

		cont += '</optgroup>';
	});

	cont +=		'</select>';
	cont +=	'</div>';
	cont +=	'<div class="v_spacer clear_both"></div>';

	return cont;
}

function update_shipping(field, value) {
	if(typeof shipping_different.different == 'undefined') {
		shipping_different.different = false;
	}
	if(shipping_different.different) return;

	$('#'+field).val(value);
}

function shipping_different(check){
	if (typeof shipping_different.different == 'undefined') {
		shipping_different.different = false;
	}
	else if(check != null){
		shipping_different.different = $('#' + check).is(':checked');
	}

	if(shipping_different.different) {
		$('#shipping_name').attr('disabled', '');
		$('#shipping_name').val('');
		$('#shipping_address').attr('disabled', '');
		$('#shipping_address').val('');
		$('#shipping_city').attr('disabled', '');
		$('#shipping_city').val('');
		$('#shipping_zip').attr('disabled', '');
		$('#shipping_zip').val('');
	} else {
		$('#shipping_name').attr('disabled', 'disabled');
		$('#shipping_name').val($('#first_name').val() + " " + $('#last_name').val());
		$('#shipping_address').attr('disabled', 'disabled');
		$('#shipping_address').val($('#user_address').val());
		$('#shipping_city').attr('disabled', 'disabled');
		$('#shipping_city').val($('#user_city').val());
		$('#shipping_zip').attr('disabled', 'disabled');
		$('#shipping_zip').val($('#user_zip').val());
	}
}

function delete_deal_comfirm(href_url, id, index, parent, name, strings, deleter) {
	var html_cont = '<div class="delete_confirm notes" id="delete_confirm'+id+'" style="display:none">';
	html_cont += 		'<div class="n_title">'+strings.are_you_sure +' '+name+'?</div>';
	html_cont += 		'<span class="delete_button clicking_place" onclick="delete_deal(\''+href_url+'\','+id+','+index+','+deleter+')">'+strings.delete_+'</span> <span class="arrow">&rsaquo;</span>&nbsp;&nbsp;&nbsp;&nbsp;';
	html_cont += 		'<span class="cancel_button clicking_place" onclick="toggle_element(\'#delete_confirm'+id+'\')">'+strings.cancel+'</span> <span class="arrow">&rsaquo;</span>';
	html_cont += '</div>';
	$('#delete_confirm'+id).remove();
	$(parent).append(html_cont);
	$('#delete_confirm'+id).slideDown(300);
}

function delete_deal(href_url, id, index, deleter) {
	$.post(href_url+'?action=delete-deal', {'id': id, 'index':index, 'deleter' : deleter}, function(data) {
		if(data.status) {
			$('#details_'+id+'__'+index).slideUp(200);
			$('#values_'+id+'__'+index).slideUp(200);
			$('#spacer_'+id+'__'+index).slideUp(200);
			
			$('#log_'+index).slideUp(200);
			location.reload(true);
		}
		else {
			alert(data.errors.operations[0].error);
		}
	}, 'json');
}

function cancel_renewal_confirm(href_url, id, so_id, parent, index, strings) {
	var html_cont = '';
	html_cont += '<div class="errors" style="display:none" id="delete_errors'+id+'"></div>'
	html_cont += '<div class="delete_confirm notes" id="delete_confirm'+id+'" style="display:none">';
	html_cont += 		'<div class="n_title">'+strings.are_you_sure_renewal+'?</div>';
	html_cont += 		'<span class="delete_button clicking_place" id="confirm_cancel_renewal'+id+'" onclick="cancel_renewal(\''+href_url+'\','+id+','+so_id+', '+index+')">'+strings.delete_+'</span> <span class="arrow">&rsaquo;</span>&nbsp;&nbsp;&nbsp;&nbsp;';
	html_cont += 		'<span class="cancel_button clicking_place" id="cancel_cancel_renewal'+id+'" onclick="toggle_element(\'#delete_confirm'+id+'\')">'+strings.cancel+'</span> <span class="arrow">&rsaquo;</span>';
	html_cont += '</div>';
	html_cont += '<div style="display:none" id="loader_d"><img src="'+href_url+'/images/global/loader_16x16.gif" alt=""></div>';
	$('#delete_confirm'+id).remove();
	$(parent).append(html_cont);
	$('#delete_confirm'+id).slideDown(300);
}

function cancel_renewal(href_url, id, so_id, index) {
	cancel_renewal.href_url = href_url;
	cancel_renewal.id = id;
	cancel_renewal.so_id = so_id;
	cancel_renewal.index = index;
	$('#confirm_cancel_renewal'+id).unbind();
	$('#cancel_cancel_renewal'+id).unbind();
	$('#confirm_cancel_renewal'+id).removeClass('clicking_place');
	$('#cancel_cancel_renewal'+id).removeClass('clicking_place');
	$('#loader_d').css('display', 'block');

	$.post(href_url+'?action=cancel-renewal', {'id': id, 'so_id':so_id}, function(data) {
		if(data.status) {
			history.go(0);
		}
		else {
			$('#delete_errors'+cancel_renewal.id).html(data.errors);
			$('#confirm_cancel_renewal'+cancel_renewal.id).click(function() {
				cancel_renewal(cancel_renewal.href_url, cancel_renewal.id, cancel_renewal.so_id, cancel_renewal.index);
			});
			$('#cancel_cancel_renewal'+cancel_renewal.id).click(function() {
				toggle_element('#delete_confirm'+cancel_renewal.id);
			});
			$('#confirm_cancel_renewal'+id).addClass('clicking_place');
			$('#cancel_cancel_renewal'+id).addClass('clicking_place');
		}
	}, 'json');
}

function toggle_details(element) {
	if($(element).is(':hidden')) {
		$(element).slideDown(300);
	} else {
		$(element).slideUp(300);
	}
}

function validate__user_form(href_url, node, strings){
	$('#submit_button').attr('disabled', 'disabled');
	validate__user_form.href_url = href_url;
	$('#shipping_name').css('backgroundColor', '#FFF');
	
	if($('#shipping_name').val() == '') {
		$('#shipping_name').css('backgroundColor', '#FAA');
		$('#submit_button').removeAttr('disabled');
		return false;
	}
	
	var field_error = form_fields_validation(node);
	if (false) {
		$('#submit_button').removeAttr('disabled');
		var errors_cont = '<div id="client_side_errors" class="errors">';
        errors_cont += '<div class="e_title">'+strings.errors_found+'</div>';
        errors_cont += '<div id="error__general">'+strings.fields_not_filled+'</div>';
        errors_cont += '</div>';

		$('#errors').html(errors_cont);

		return false;
	}
	else {
		$('input[name^=shipping]').attr('disabled', '');
		$.post(href_url+'?action=save_user', $('#user_form').serialize(), function(data) {
			if(data.status) {
				if(!data.total_products) {
					location.href = href_url+'my-account?show_user='+data.id+'&show_user_index=all';
				}
				else {
					validate__user_form.id = data.id;
					validate__user_form.transaction_status = data.transaction_status;
					validate__user_form.action = 'add-voucher-code';

					gts('he', data.total_cost, data.user_name, data.description, data.user_email, data.id, data.transaction_status, function(data) {
						$.post(validate__user_form.href_url,
						{
							'action':validate__user_form.action,
							'id':validate__user_form.id,
							'voucher':data.shva_voucher_code,
							'trans_status':validate__user_form.transaction_status,
							'invoice_link':data.invoice_link,
							'standing_order_id':(data.standing_order_id == undefined ? 0 : data.standing_order_id),
							'so_ids_serialized':data.so_ids_serialized	//data.so_ids is supposed to be an array, needs checking
						},
						function(data) {
							if(data.status) {
								//console.log(data);
							}
						});
					});
				}
				return false;
			}
			else {
				$('#submit_button').removeAttr('disabled');
				var errors_cont = '<div id="server_side_errors" class="errors">';
		        errors_cont += '<div class="e_title">'+strings.errors_found+'</div>';
				if(data.errors)
		        	errors_cont += '<div id="error__general">'+data.errors.email+'</div>';
		        errors_cont += '</div>';
				$('#errors').html(errors_cont);
				if (!shipping_different.different) {
					$('input[name^=shipping]').attr({disabled: 'disabled'});
				}

				return false;
			}
		}, 'json');

		return false;
	}
}

// /* Obsolete */
// This function is available only on deals which didn't go through
/*
function resubmit_deal(undone_deal_form) {

	resubmit_deal.id = $('#'+undone_deal_form + ' #ud_id').val();
	resubmit_deal.transaction_status = $('#'+undone_deal_form + ' #ud_transaction').val();
	resubmit_deal.index = $('#'+undone_deal_form + ' #ud_index').val();
	resubmit_deal.action = 'add-voucher-code';

	gts('he', $('#'+undone_deal_form + ' #ud_cost').val(), $('#'+undone_deal_form + ' #ud_name').val(), $('#'+undone_deal_form + ' #ud_email').val(), resubmit_deal.id, resubmit_deal.transaction_status, function(data) {
		$.post(resubmit_deal.href_url,
		{
			'action':resubmit_deal.action,
			'id':resubmit_deal.id,
			'voucher':data.shva_voucher_code,
			'trans_status':resubmit_deal.transaction_status,
			'invoice_link':data.invoice_link,
			'standing_order_id':(data.standing_order_id == undefined ? 0 : data.standing_order_id),
			'so_ids_serialized':data.so_ids_serialized,
			'index':resubmit_deal.index
		},
		function(data) {
			if(data.status) {
				//console.log(data);
			}
		});
	});
}
*/

function update_deal_info(href_url, num, uid) {
	$('#loader_'+num).show();
	$('.inp_to_dis').attr('disabled', 'disabled');

	$.get(href_url,
		{
			'action':'update-deal-info',
			'user_id':uid,
			'deal_num':num,
			'log_name':$('#log_name_'+num).val(),
			'log_address':$('#log_address_'+num).val(),
			'log_city':$('#log_city_'+num).val(),
			'log_zip':$('#log_zip_'+num).val(),
			'log_phone':$('#log_phone_'+num).val()
		},

		function(data) {
			if(data.status == 'OK') {

			}
			$('#loader_'+num).hide();
			$('.inp_to_dis').removeAttr('disabled');
		}, 'json'
	);
	return false;
}


//---------------- Filter search functions
//--------------------------------------
function submit_filter_form(href_url, str, offset, length, names_container) {
	if (typeof submit_filter_form.curr_page == 'undefined') {
        submit_filter_form.curr_page = 0;
    }

	$.get(href_url, {'action':side_action, 'query':str, 'offset':offset, 'length':length}, function(data) {
		var content = '';
		$.each(data.authors, function(i, val) {
			content += '<div class="name_in_list"><a href="'+href_url+val.doc_id+'">'+val.name+'</a></div>';
		});

		$(names_container).html(content);

		var paging_cont = '';
		if(data.total > elements_per_page) {
			$('#paging').css('display', 'block');
			$('#paging_pages').html(' ');

			var pages = Math.ceil(data.total/elements_per_page);
			submit_filter_form.curr_page = Math.ceil(offset/elements_per_page);

			$('#prev_page').unbind();
			$('#prev_page').bind('click', function() {
				submit_filter_form(href_url, str, (submit_filter_form.curr_page-1 < 0 ? 0 : submit_filter_form.curr_page-1)*elements_per_page, elements_per_page, names_container);
			});

			$('#next_page').unbind();
			$('#next_page').bind('click', function() {
				submit_filter_form(href_url, str, (submit_filter_form.curr_page+1 > pages-1 ? pages-1 : submit_filter_form.curr_page+1)*elements_per_page, elements_per_page, names_container);
			});

			if(pages > 5) {
				if(submit_filter_form.curr_page == 0) {
					paging_cont = '<span class="current" id="page0">1</span>';
					paging_cont += ' <span class="regular clicking_place" id="page1" onclick="submit_filter_form(href_url, str, 1*elements_per_page, elements_per_page, names_container);">2</span>';
					paging_cont += ' <span class="regular">..</span>';
					paging_cont += ' <span class="regular clicking_place" id="page'+(pages-1)+'" onclick="submit_filter_form(href_url, str, '+(pages-1)+'*elements_per_page, elements_per_page, names_container);">'+pages+'</span>';
				}
				else if(submit_filter_form.curr_page == 1) {
					paging_cont = '<span class="regular clicking_place" id="page0" onclick="submit_filter_form(href_url, str, 0*elements_per_page, elements_per_page, names_container);">1</span>';
					paging_cont += ' <span class="current" id="page1">2</span>';
					paging_cont += ' <span class="regular">..</span>';
					paging_cont += ' <span class="regular clicking_place" id="page'+(pages-1)+'" onclick="submit_filter_form(href_url, str, '+(pages-1)+'*elements_per_page, elements_per_page, names_container);">'+pages+'</span>';
				}
				else if(submit_filter_form.curr_page == pages -2) {
					paging_cont = '<span class="regular clicking_place" id="page0" onclick="submit_filter_form(href_url, str, 0*elements_per_page, elements_per_page, names_container);">1</span>';
					paging_cont += ' <span class="regular">..</span>';
					paging_cont += ' <span class="current" id="page'+(pages-2)+'">'+(pages-1)+'</span>';
					paging_cont += ' <span class="regular clicking_place" id="page'+(pages-1)+'" onclick="submit_filter_form(href_url, str, '+(pages-1)+'*elements_per_page, elements_per_page, names_container);">'+pages+'</span>';
				}
				else if(submit_filter_form.curr_page == pages -1) {
					paging_cont = '<span class="regular clicking_place" id="page0" onclick="submit_filter_form(href_url, str, 0*elements_per_page, elements_per_page, names_container);">1</span>';
					paging_cont += ' <span class="regular">..</span>';
					paging_cont += ' <span class="regular clicking_place" id="page'+(pages-2)+'" onclick="submit_filter_form(href_url, str, '+(pages-2)+'*elements_per_page, elements_per_page, names_container);">'+(pages-1)+'</span>';
					paging_cont += ' <span class="current" id="page'+(pages-1)+'">'+pages+'</span>';
				}
				else {
					paging_cont = '<span class="regular clicking_place" id="page0" onclick="submit_filter_form(href_url, str, 0*elements_per_page, elements_per_page, names_container);">1</span>';
					paging_cont += ' <span class="regular">..</span>';
					paging_cont += ' <span class="current" id="page'+(submit_filter_form.curr_page)+'">'+(submit_filter_form.curr_page+1)+'</span>';
					paging_cont += ' <span class="regular">..</span>';
					paging_cont += ' <span class="regular clicking_place" id="page'+(pages-1)+'" onclick="submit_filter_form(href_url, str, '+(pages-1)+'*elements_per_page, elements_per_page, names_container);">'+pages+'</span>';
				}
				
				$('#paging_pages').append(paging_cont);
			}
			else {
				for(var i = 0; i < pages; i++) {
					var is_curr = (i == submit_filter_form.curr_page ? true : false);
					var this_id = 'page' +i;
					paging_cont = ' <span class="'+(is_curr ? 'current' : 'regular clicking_place') +'" id="'+this_id+'">'+(1+i)+'</span> ';

					$('#paging_pages').append(paging_cont);
					$('#'+this_id).bind('click', {id:i}, function(event) {
						submit_filter_form(href_url, str, event.data.id*elements_per_page, elements_per_page, names_container);
					});
				}
			}
		}
		else {
			$('#paging').css('display', 'none');
		}

	}, 'json');

	return false;
}

function submit_filter_form_article(href_url, str, offset, length, names_container) {
	if ( typeof submit_filter_form_article.curr_page == 'undefined' ) {
        submit_filter_form_article.curr_page = 0;
    }

	$.get(href_url, {'action':side_action, 'query':str, 'offset':offset, 'length':length}, function(data) {
		var content = '';
		var pages = Math.ceil(data.total/elements_per_page);
		submit_filter_form_article.curr_page = Math.ceil(offset/elements_per_page);

		$.each(data.articles, function(j, val) {
			var article_num = elements_per_page*submit_filter_form_article.curr_page + j + 1;

			content += '<div class="article '+ (val.open ? 'open' : 'closed') +'">';
			content += '<div class="name"><span class="num">'+ (article_num < 10 ? '0' : '')+article_num+'.</span> <a href="'+val.doc_id+'" title="'+val.title+'">'+val.title+'</a></div>';
			content += '<div class="snippet">'+ BY + ' ' + val.author+'</div>';
			content += '</div>';
		});

		$(names_container).html(content);

		var paging_cont = '';
		if(data.total > elements_per_page) {
			$('#paging').css('display', 'block');
			$('#paging_pages').html(' ');

			$('#prev_page').unbind();
			$('#prev_page').bind('click', function() {
				submit_filter_form_article(href_url, str, (submit_filter_form_article.curr_page-1 < 0 ? 0 : submit_filter_form_article.curr_page-1)*elements_per_page, elements_per_page, names_container);
			});

			$('#next_page').unbind();
			$('#next_page').bind('click', function() {
				submit_filter_form_article(href_url, str, (submit_filter_form_article.curr_page+1 > pages-1 ? pages-1 : submit_filter_form_article.curr_page+1)*elements_per_page, elements_per_page, names_container);
			});
			
			if(pages > 5) {
				if(submit_filter_form_article.curr_page == 0) {
					paging_cont = '<span class="current" id="page0">1</span>';
					paging_cont += ' <span class="regular clicking_place" id="page1" onclick="submit_filter_form(href_url, str, 1*elements_per_page, elements_per_page, names_container);">2</span>';
					paging_cont += ' <span class="regular">..</span>';
					paging_cont += ' <span class="regular clicking_place" id="page'+(pages-1)+'" onclick="submit_filter_form(href_url, str, '+(pages-1)+'*elements_per_page, elements_per_page, names_container);">'+pages+'</span>';
				}
				else if(submit_filter_form_article.curr_page == 1) {
					paging_cont = '<span class="regular clicking_place" id="page0" onclick="submit_filter_form(href_url, str, 0*elements_per_page, elements_per_page, names_container);">1</span>';
					paging_cont += ' <span class="current" id="page1">2</span>';
					paging_cont += ' <span class="regular">..</span>';
					paging_cont += ' <span class="regular clicking_place" id="page'+(pages-1)+'" onclick="submit_filter_form(href_url, str, '+(pages-1)+'*elements_per_page, elements_per_page, names_container);">'+pages+'</span>';
				}
				else if(submit_filter_form_article.curr_page == pages -2) {
					paging_cont = '<span class="regular clicking_place" id="page0" onclick="submit_filter_form(href_url, str, 0*elements_per_page, elements_per_page, names_container);">1</span>';
					paging_cont += ' <span class="regular">..</span>';
					paging_cont += ' <span class="current" id="page'+(pages-2)+'">'+(pages-1)+'</span>';
					paging_cont += ' <span class="regular clicking_place" id="page'+(pages-1)+'" onclick="submit_filter_form(href_url, str, '+(pages-1)+'*elements_per_page, elements_per_page, names_container);">'+pages+'</span>';
				}
				else if(submit_filter_form_article.curr_page == pages -1) {
					paging_cont = '<span class="regular clicking_place" id="page0" onclick="submit_filter_form(href_url, str, 0*elements_per_page, elements_per_page, names_container);">1</span>';
					paging_cont += ' <span class="regular">..</span>';
					paging_cont += ' <span class="regular clicking_place" id="page'+(pages-2)+'" onclick="submit_filter_form(href_url, str, '+(pages-2)+'*elements_per_page, elements_per_page, names_container);">'+(pages-1)+'</span>';
					paging_cont += ' <span class="current" id="page'+(pages-1)+'">'+pages+'</span>';
				}
				else {
					paging_cont = '<span class="regular clicking_place" id="page0" onclick="submit_filter_form(href_url, str, 0*elements_per_page, elements_per_page, names_container);">1</span>';
					paging_cont += ' <span class="regular">..</span>';
					paging_cont += ' <span class="current" id="page'+(submit_filter_form_article.curr_page)+'">'+(submit_filter_form_article.curr_page+1)+'</span>';
					paging_cont += ' <span class="regular">..</span>';
					paging_cont += ' <span class="regular clicking_place" id="page'+(pages-1)+'" onclick="submit_filter_form(href_url, str, '+(pages-1)+'*elements_per_page, elements_per_page, names_container);">'+pages+'</span>';
				}
				
				$('#paging_pages').append(paging_cont);
			}
			else {
				for(var i = 0; i < pages; i++) {
					var is_curr = (i == submit_filter_form_article.curr_page ? true : false);
					var this_id = 'page' +i;
					paging_cont = ' <span class="'+(is_curr ? 'current' : 'regular clicking_place') +'" id="'+this_id+'">'+(1+i)+'</span> ';

					$('#paging_pages').append(paging_cont);
					$('#'+this_id).bind('click', {id:i}, function(event) {
						submit_filter_form_article(href_url, str, event.data.id*elements_per_page, elements_per_page, names_container);
					});
			}
			}
		}
		else {
			$('#paging').css('display', 'none');
		}

	}, 'json');

	return false;
}

//---------------- Discussions search functions
//--------------------------------------
function check_discussion_search_form(form) {
	for(var i=0; i < form.elements.length; i++) {
		if(form.elements[i].id == '') continue;

		var jqid = "#"+form.elements[i].id;
		if($(jqid).is('input')) {
			if($(jqid).is('.black_text')) {
				return nullify_greys(form);
			}
		}
		else if(form.elements[i].value != "") {
			return nullify_greys(form);
		}
	}

	return false;
}


//---------------- Discussion center functions
//--------------------------------------
function toggle_element(element, arrow) {
	if($(element).is(':hidden')) {
		$(element).slideDown(300);
		if(arrow != null && $(arrow) != null) {
			$(arrow).html('&#9660;');
		}
	} else {
		$(element).slideUp(300);
		if(arrow != null && $(arrow) != null) {
			$(arrow).html('<span class="crucial">&#9664;</span>');
		}
	}
}

//href_url - generated by the gyro function
//node - the form node
//strings - the $strings array from he_strings file
//discussion - if set to true will treat the talkback-add-process as if it is a discussion
function validate__talkback_form(href_url, node, strings, discussion, doc_name) {
	$('#submit_button').attr('disabled', 'disabled');
	var field_error = form_fields_validation(node);
	if(field_error) {
		$('#submit_button').removeAttr('disabled');
	} else {
		$('#user_db_name').val($('#user__name').val());

		var txt = $('#talkback_form').serialize();
		$.post(href_url+'talkback-post', txt, function(data) {
			$('#form_container').fadeOut(200, function() {
				setTimeout(function() {
					$('#form_container').html('<div class="cont"><div class="success">'+ (discussion ? strings.discussion_opened : strings.comment_added) +'</div></div>');
					$('#form_container').fadeIn(200);
				}, 200);
			});
			if(!discussion)
				generate_talkback_html(href_url, '#comments_d', data.saved, '#talkbacks_count', strings);
			else {
				generate_discussion_html(href_url, '#results_d', data.saved, strings, doc_name);
			}
		}, 'json');
	}
	$('#submit_button').removeAttr('disabled');
	return false;
}

function submit_article_talkback(href_url, node, article) {
	$('#submit_button').attr('disabled', 'disabled');
	$('.talkback_form').find('*').removeClass('errors');
	submit_article_talkback.saved = false;
	if($('#talkback__name').val() == '' || $('#talkback__content').val() == '') {		
		if($('#talkback__name').val() == '') $('#talkback__name').addClass('errors');
		if($('#talkback__content').val() == '') $('#talkback__content').addClass('errors');
	}
	else {
		var txt = $(node).serializeArray();
		$.post(href_url+'talkback-post', txt, function(data) {
			setTimeout("window.location.href= '"+href_url+article+"'",500);
		}, 'json');
	}
	$('#submit_button').removeAttr('disabled');
	return false;
	
}

function generate_discussion_html(href_url, container, tb_id, strings, doc_name) {
	$.get(href_url, {'action':'get-talkback', 'id':tb_id},
		function(data) {
			var element_id = 'new_discussion';
			var base = '<div class="v_spacer"></div>';
			base += '<div class="discussion" id="'+element_id+'" style="display:none"></div>';
			$(container).html(base + $(container).html());

			var str = '';
			str += 	'<div class="cont">';
			str += 		'<div class="title"><a href="'+href_url+doc_name+'?talkback='+data.doc_id+'">'+data.title+'</a></div>';
			str += 		'<div class="date">'+data.date+'</div>';
			str += 		'<div class="writer_name">'+data.user_name+'</div>';
			str += 		'<div class="text">'+data.content.substring(0, 100)+ (data.content.length > 100 ? '...' :'')+'</div>';
			str += 	'</div>';

			$('#'+element_id).html(str);
			$('#'+element_id).slideDown(400);
		},
		'json'
	);
}

function generate_talkback_html(href_url, container, tb_id, num_element, strings){
	$.get(href_url, {'action':'get-talkback', 'id':tb_id},
		function(data) {
			var num = $(num_element).val();
			var element_id = 'comment_'+num;
			var base = '<div class="v_spacer"></div>';
			base += '<div class="' +(num == 0 ? 'dotted_bg' : 'light_bg')+ '" id="'+element_id+'" style="display:none"></div>';
			$(container).html($(container).html() + base);

			var str = '';
			str += 	'<div class="comment">';
			str += 		'<div class="">';
			str += 			'<div class="title">';
			str += 				'<div class="num">'+ (num==0 ? strings.main_comment : (num < 10 ? '0'+num : num )) + '. ' +(num ? data.title : '')+'</div>';
			str += 				'<div class="writer_name">'+ data.user_name +' <span class="crucial">&#9664;</span></div>';
			str += 				'<div class="date">'+data.date+'</div>';
			str += 			'</div>';
			str += 			'<div class="text">'+data.content+'</div>';
			str += 		'</div></div>';

			$('#'+element_id).html(str);
			$('#'+element_id).slideDown(400);
			$(num_element).val($(num_element).val()+1);
			$('#nums').html(num);
		},
		'json'
	);
}


//---------------- Articles search functions
//--------------------------------------
function check_article_search_form(form) {
	for(var i=0; i < form.elements.length; i++) {
		if(form.elements[i].id == '') continue;

		var jqid = "#"+form.elements[i].id;
		if($(jqid).is('input')) {
			if($(jqid).is('.black_text')) {
				return nullify_greys(form);
			}
		}
		else if(form.elements[i].value != "") {
			return nullify_greys(form);
		}
	}

	return false;
}

//sets grey inputs to empty
function nullify_greys(form) {
	for(var i=0; i < form.elements.length; i++) {
		if(form.elements[i].id == '') continue;
		var jqid = '#'+form.elements[i].id;
		if($(jqid).is('input') && !$(jqid).is('.black_text')) {
			$(jqid).val('');
		}
	}

	return true;
}

//---------------- Authors search functions
//--------------------------------------
function check_search_form(form) {

	for (var i=0; i < form.elements.length; i++) {
		if(form.elements[i].id == 'free_search') {
				if($('#free_search').is('.black_text')) {
					return true;
				}
		}
		else if(form.elements[i].value != "") {
			//if there's no input in free_search - empty it'
			if(!$('#free_search').is('.black_text')) {
				$('#free_search').attr('value', '');
			}
			return true;
		}
	}
	return false;
}

function focus_field(field) {
	if($('#' + field).is('input')) {	//set text values etc
		if(!$('#' + field).is('.black_text')) {
			STR_CONTAINER = $('#' + field).attr('value');
			$('#' + field).removeClass().addClass('black_text');
			$('#' + field).attr('value', '');
		}
	}
}

function blur_field(field, ret_text) {
	if($('#' + field).is('input')) {	//set text values etc
		if($('#' + field).attr('value') == '') {
			$('#' + field).removeClass();
			$('#' + field).attr('value', ret_text);
		}
	}
}

////---------------- Homepage authors functions
//--------------------------------------

function show_authors_home(first) {
	if(first < 0) {
		currFirstAuthor = 0;
	}
	else {
		currFirstAuthor = first;
	}

	switch_authors_home(HREF, currFirstAuthor, AUTHORS);
}

function switch_authors_home(href_url, offset, length) {
	$('#button_left').removeClass().addClass('greyed_left');
	$('#button_right').removeClass().addClass('greyed_right');
	$('#button_left').unbind('click');
	$('#button_right').unbind('click');

	$.get(href_url, {'action':'get-authors', 'offset':offset, 'length':length},

		function(data) {
			currFirstAuthor = data.offset;

			if(!data.last) {
				$('#button_left').removeClass().addClass('clicking_place');
				$('#button_left').bind('click', function() {
					show_authors_home((currFirstAuthor + AUTHORS));
				});
			}

			if(currFirstAuthor > 0) {
				$('#button_right').removeClass().addClass('clicking_place');
				$('#button_right').bind('click', function() {
					show_authors_home((currFirstAuthor - AUTHORS));
				});
			}

			$.each(data.authors, function(i, val) {
				switch_author_home(i, val.img, val.fname + ' ' + val.lname, val.link);
			}
			);
		},
		'json'
	);
}

function switch_author_home(index, image_url, name, url) {
	//$('#debug').html('Index: '+index+' Val: '+image_url + ' Name: ' + name + ', curr_f: ' + currFirstAuthor);

	$('#author_name'+index).html('<a href="'+url +'">'+name+'</a> <span class="crucial">&#9664;</span>');
	$('#author_img'+index).attr('src', image_url);

	/*$('#author_name'+index).fadeOut(200, function() {
		setTimeout(function() {
			$('#author_name'+index).html('<a href="'+url +'">'+name+'</a> <span class="crucial">&#9664;</span>');
			$('#author_name'+index).fadeIn(200);
		}, 100);
	});
	$('#author_img'+index).fadeOut(200, function() {
		$('#author_img'+index).attr('src', image_url);
		setTimeout(function() {
			$('#author_img'+index).fadeIn(200);
		}, 100);
	});*/
}

//---------------- Authors page functions
//---------------------------------------

function show_authors(first, debug) {
	currFirstAuthor = first;
	
	if (first < 0) {
		currFirstAuthor = 0;
	}

	switch_authors(HREF, currFirstAuthor, AUTHORS, debug);
}

function switch_authors(href_url, offset, length, debug){
	$('#arrow_left').removeClass().addClass('greyed_left');
	$('#arrow_right').removeClass().addClass('greyed_right');
	$('#arrow_left').unbind('click');
	$('#arrow_right').unbind('click');

	$.get(href_url, {'action':'get-authors', 'offset':offset, 'length':length},

		function(data) {
			currFirstAuthor = data.offset;

			if(!data.last) {
				$('#arrow_left').removeClass().addClass('clicking_place');
				$('#arrow_left').bind('click', function() {
					show_authors(currFirstAuthor + AUTHORS);
				});
			}

			if(currFirstAuthor > 0) {
				$('#arrow_right').removeClass().addClass('clicking_place');
				$('#arrow_right').bind('click', function() {
					show_authors(currFirstAuthor - AUTHORS);
				});
			}

			//$('#debug').html("first: " + data.first + ", last: " + data.last + ", currFirst: " + offset);

			$.each(data.authors, function(i, val) {
				authors[i] = val.id;
				switch_author(i, val.img, (val.fname + ' ' + val.lname), val.link, val.id);

				/*setTimeout(
					function() {
						switch_author(i, val.img, (val.fname + ' ' + val.lname), val.link, val.id);
					}, i*100
				);*/

				if(selectedId == -1 && i == toPick) {
					pickAuthor(toPick);
				}
			});
		},
		'json'
	);
}

function switch_author(index, image_url, name, url, id) {
	//alert(index +" "+ image_url +" "+  name +" "+  url +" "+  id)
	$('#author_title'+index).html(name);
	$('#author_img'+index).attr('src', image_url);
	if(id == selectedId) {
		$('#author_div'+index).removeClass().addClass('sel_author author');
	}
	else {
		$('#author_div'+index).removeClass().addClass('author clicking_place');
	}

	/*$('#author_div'+index).fadeOut(200, function() {
		$('#author_title'+index).html(name);
		$('#author_img'+index).attr('src', image_url);

		if(id == selectedId) {
			$('#author_div'+index).removeClass().addClass('sel_author author');
		}
		else {
			$('#author_div'+index).removeClass().addClass('author clicking_place');
		}

		setTimeout(function() {
			$('#author_div'+index).fadeIn(200);
		}, 100);
	});*/
}

//Picks and shows an issue from the selection bar
function pickAuthor(num) {
	$('.author').removeClass('sel_author').addClass('clicking_place');
	$('#author_div' + num).removeClass().addClass('author sel_author');

	$('.author').unbind('click');
	for (i = 0; i < AUTHORS; i++) {
		if (i != num) {
			$('#author_div' + i).bind('click', function(){
				pickAuthor(i);
			});
		}
	}

	selectedAuthor = num;
	selectedId = authors[num];

	$.get(HREF, {'action':'get-author-infos', 'id':selectedId},
		function(data) {
			$('#author_name_a').html((data.user_title == null ? '' : data.user_title)+ ' ' + data.f_name + ' ' + data.l_name);
			$('#about').html(data.about == null ? '' : data.about);
			$('#education').html(data.education == null ? '' : data.education);
			$('#work').html(data.work == null ? '' : data.work);

			if (data.website != null) {
				$('#web_box_d').removeClass().addClass('box');
				$('#to_writer_page').removeClass().addClass('to_writer_page clicking_place');
				$('#to_writer_page').bind('click', function() {
					window.open(data.website);
				});
				//$('#web_a').attr('href', data.website);
			}
			else {
				$('#web_box_d').removeClass().addClass('box disabled_by_opacity');
				$('#to_writer_page').unbind();
				$('#to_writer_page').removeClass().addClass('to_writer_page');
				//$('#web_a').attr('href', '');
			}
			$('#big_pic').attr('src', data.big_img);
			var str = '';
			$.each(data.articles, function(i, val){
				//if (i < 8)
					str += '<div class="article" style="height:auto;padding:0 0 10px 0"><div class="name"><span class="num">0' + (i + 1) + '. </span><a href="' + val.link + '">' + val.title + '</a> <span class="crucial">&#9664;</span></div>' + (val.issue_title ? '<div class="snippet">' + val.issue_title + ' | ' + val.issue_date + '</div>' : '') + '</div>';
			});
			$('#articles_links').html(str);
			$('#author_name_b').html((data.user_title == null ? '' : data.user_title) + ' ' + data.f_name + ' ' + data.l_name);

			/*$('#cont_div').fadeOut(200, function() {
				$('#author_name_a').html((data.user_title == null ? '' : data.user_title)+ ' ' + data.f_name + ' ' + data.l_name);
				$('#about').html(data.about == null ? '' : data.about);
				$('#education').html(data.education == null ? '' : data.education);
				$('#work').html(data.work == null ? '' : data.work);

				if (data.website != null) {
					$('#web_box_d').removeClass().addClass('box');
					$('#to_writer_page').removeClass().addClass('to_writer_page clicking_place');
					$('#to_writer_page').bind('click', function() {
						window.open(data.website);
					});
					//$('#web_a').attr('href', data.website);
				}
				else {
					$('#web_box_d').removeClass().addClass('box disabled_by_opacity');
					$('#to_writer_page').unbind();
					$('#to_writer_page').removeClass().addClass('to_writer_page');
					//$('#web_a').attr('href', '');
				}

				$('#big_pic').fadeOut(200,  function() {
					$('#big_pic').attr('src', data.big_img);

					$('#articles_d').fadeOut(200, function(){
						var str = '';
						$.each(data.articles, function(i, val){
							//if (i < 8)
								str += '<div class="article" style="height:auto;padding:0 0 10px 0"><div class="name"><span class="num">0' + (i + 1) + '. </span><a href="' + val.link + '">' + val.title + '</a> <span class="crucial">&#9664;</span></div>' + (val.issue_title ? '<div class="snippet">' + val.issue_title + ' | ' + val.issue_date + '</div>' : '') + '</div>';
						});
						$('#articles_links').html(str);
						$('#author_name_b').html((data.user_title == null ? '' : data.user_title) + ' ' + data.f_name + ' ' + data.l_name);
						setTimeout(function() {
							$('#cont_div').fadeIn(200);
							$('#big_pic').fadeIn(200);
							$('#articles_d').fadeIn(200);
						}, 100);
					});
				});
			});*/

		},
		'json'
	);
}

//---------------- Archive page functions
//---------------------------------------

function show_issues(first) {
	if(first < 0) {
		currFirstIssue = 0;
	}
	else {
		currFirstIssue = first;
	}

	switch_issues(HREF, currFirstIssue, ISSUES);
}

function switch_issues(href_url, offset, length){
	//alert("hello: " + href_url + ", " + offset + ", " + length);
	$('#arrow_left').removeClass().addClass('greyed_left');
	$('#arrow_right').removeClass().addClass('greyed_right');
	$('#arrow_left').unbind('click');
	$('#arrow_right').unbind('click');

	$.get(href_url, {'action':'get-issues', 'offset':offset, 'length':length},

		function(data) {
			currFirstIssue = data.offset;

			if(!data.last) {
				$('#arrow_left').removeClass().addClass('clicking_place');
				$('#arrow_left').bind('click', function() {
					show_issues((currFirstIssue + ISSUES));
				});
			}

			if(currFirstIssue > 0) {
				$('#arrow_right').removeClass().addClass('clicking_place');
				$('#arrow_right').bind('click', function() {
					show_issues((currFirstIssue - ISSUES));
				});
			}

			$.each(data.issues, function(i, val) {
				issues[i] = val.id;
				switch_issue(i, val.archive_thumb, val.number, val.link, val.id);
				if(selectedId == -1 && i == toPick) {
					pickIssue(toPick);
				}

			}
			);
		},
		'json'
	);
}

function switch_issue(index, image_url, number, url, id) {
	$('#issue_title'+index).html(STR_ISSUE + ' '  + (number < 10 ? '0' : '') + number);
	$('#issue_img'+index).attr('src', image_url);

	if(id == selectedId) {
		$('#issue_div'+index).removeClass().addClass('sel_issue issue');
	}
	else {
		$('#issue_div'+index).removeClass().addClass('issue clicking_place');
	}
}

//Picks and shows an issue from the selection bar
function pickIssue(num) {
	$('.issue').removeClass('sel_issue').addClass('clicking_place');
	$('#issue_div' + num).removeClass().addClass('issue sel_issue');

	$('.issue').unbind('click');
	for (i = 0; i < ISSUES; i++) {
		if (i != num) {
			$('#issue_div' + i).bind('click', function(){
				pickIssue(i);
			});
		}
	}

	selectedIssue = num;
	selectedId = issues[num];

	$.get(HREF, {'action':'get-issue-infos', 'id':selectedId},
		function(data) {
			$('#issue_pic').attr('src', data.archive_pic);

			$('#issue_title').html('<span class="orange">' + data.title + '</span>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;' + data.heb_date);
			$('#short_description').html(data.short_description);

			var str = '';
			$.each(data.articles, function(i, val) {
				var article_subclass = !val.open ? ' closed' : '';
				str += '<div class="article_title'+article_subclass+'"><a href="'+val.link+'">'+val.title +'</a> <span class="crucial"></span></div>' +
				'<div class="author_name">מאת '+ (val.author_title == null ? '' : val.author_title) + ' ' + val.author_name+ '</div>';
			});
			$('#articles_list').html(str);

			str = '';
			$.each(data.columns, function(i, val) {
			    var column_subclass = !val.open ? ' closed' : '';
				str += '<div class="article_title'+column_subclass+'"><a href="'+val.link+'">'+val.title +'</a> <span class="crucial"></span></div>' +
				'<div class="author_name">מאת '+ (val.author_title == null ? '' : val.author_title) + ' ' + val.author_name+ '</div>';
			});
			$('#columns_list').html(str);
		},
		'json'
	);
}


function show_side_issues(offset, length) {
	$.get(HREF, {'action':'get-issues', 'offset':offset, 'length':length, 'dontpad':true},
		function(data) {

		}
	);
}

/* bdug */
function logg(val){
	if(window.console && console.log) {
		console.log(val);
	}
}

function globals() {

}

/* ## */

var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-17595083-1']);
_gaq.push(['_trackPageview']);

(function() {
var ga = document.createElement('script');ga.type = 'text/javascript';ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(ga);
})();



