
var nextMainMenuElement = 1;
function animateMainMenu ()
{
	var elements = new Array ('dziennik_li', 'wallet_li', 'contacts_li');
	
	$('#'+elements[nextMainMenuElement]+' a').click();
}


function setShowAfterSubmit(val)
{
	$('#show_after_submit').val(val);	
	$('#show_after_submit2').val(val);
}

function fromFolderToContacts ( contactId )
{
	var data = { 
			id : contactId
    };
	
	$.get("/user/addressbook/ajaximportcontact", data,
			  function(data){
				if (data == 1){
					createNewTimed('Kontrahent został dodany do Twoich kontaktów.');
				}
				else{
					createNewStickyFail('Nie udało się zaimportować kontaktu!');
				}
			    
			  });
}

function showFindUserTab ( type )
	{
		var elements = new Array('map_column', 'list_column');
		
		for (i=0; i<elements.length; i++)
		{
			if ( type == elements[i])
			{
				$('#'+elements[i]).attr('style', 'display: block;');
			}
			else
			{
				$('#'+elements[i]).attr('style', 'display: none;');
			}
		}
		
	}

function daysInMonth(month, year) 
{
    return new Date(year, month, 0).getDate();
}


function clearLoginField (field)
{
	if ( field.value == 'E-mail' )
	{
		field.value='';
	}
}

function clearPasswordField (field)
{
	if ( field.value == 'pass' )
	{
		field.value='';
	}
}

function gridSaveTranche (response)
{
	if ( response.responseText == 1)
	{
		createNewTimed('Zmiany zostały zapisane', 3);
		return true;
	}
	else
	{
		createNewStickyFail('Nie udało się zapisać zmiań!');
		return false;
	}
}

function gridSaveCategory (response)
{	
	if ( response.responseText == 1)
	{
		createNewTimed('Zmiany zostały zapisane', 3);
		return true;
	}
	else
	{
		createNewStickyFail('Data rozpoczęcia nie może być mniejsza od daty zakończenia!');
		return false;
	}
}


function picasaPhotoCheck (checkbox)
{
	
	if ($('#'+checkbox).is(':checked'))
	{
		$('#'+checkbox).attr('checked', false);
	}
	else
	{
		$('#'+checkbox).attr('checked', true);
	}
	
	

}

function mainPageBoxSwitcher ( onId)
{
	$('#ul_contents > li').removeClass('active');
	$('.wrapperTabs .tabContent').hide();
	
	$('#'+onId).css('display', 'block');
	$('#'+onId+'_li').addClass('active');
	//document.getElementById(onId+'_li').className = 'active';
	/*
	var max = offArray.length;
	for( i=0; i<max; i++ )
	{
		$('#'+offArray[i]).css('display', 'none');
		$('#'+offArray[i]+'_li').removeClass('active');
		
	}
	*/
	
}

function switchSidebarBoxes ( onId, offId )
{
	$('#'+onId).css('display', 'block');
	$('#'+offId).css('display', 'none');
	
	$('#'+offId+'_li').removeClass('active');
	$('#'+onId+'_li').addClass('active');
}

function reloadGood2Know( id, active )
{	
	if ( active == null )
	{
		active = 'warto-wiedziec';
	}
	
	$('#'+id).parent().load('/main/ajax/goodtoknow/active/'+active);
}

function adminCloseAccount (url)
{
	var where_to=confirm("Czy chcesz usunć wybrane konto?");
			
	if (where_to== true)
	 {
	   window.location=url;
	 }

}

function invitationAccept ( accept, contact_id )
{
	var post_data = { 
			accept : accept,
			contact : contact_id
	};
	
	$.post( "/community/user/updateinvitation/", post_data, function(json){ 
		
		if ( json.error == 0 ){
			createNewTimed(json.msg);
		}else {
			createNewStickyFail(json.msg);
		}
		
		/*
		 * refresh gridow
		 */
		$("#invitations_grid_list2").clearGridData(true);
		$("#invitations_grid_list2").trigger("reloadGrid");
		
		$("#friends_grid_list").clearGridData(true);
		$("#friends_grid_list").trigger("reloadGrid");
		
	}, "json");
	
}

function inviteFriend ( uid )
{
	var post_data = { 
			uid : uid	
	};
	
	$.post( "/community/user/addfriend/", post_data, function(json){ 
		if ( json.status == 1 ){
			createNewTimed(json.msg);
			$("#inviteFriendBtn").html('Czeka na akceptację');
		}
		else{
			createNewStickyFail(json.msg);
		}
		
	}, "json");

			  
}

function shareCalendar ( id )
{
	$("#"+id).css('display', 'block');
}

function sharePhoto ( id )
{
	$("#"+id).css('display', 'block');
}

function gridDeleteFile (file_id, grid_id)
{
	var answer= confirm("Czy napewno chcesz usunąć dokument?");
	 
	if (answer== true)
	{
		jQuery('#'+grid_id).delRowData(file_id);
		ajaxDeleteFile(file_id);
	}
}

function ajaxDeleteFile ( file_id )
{
	advAJAX.get({
	    url: "/main/admin/ajaxdeletefile/id/"+file_id,
	    timeout : 5000,
	    onTimeout : function() 
	    	{ 
	    		//dialogcontent.innerHTML = "Connection timed out.";
	    	},
	    retry: 1,
	    
	    onRetry : function() 
	    	{ 
	    		//dialogcontent.innerHTML = "Retry connection...";
	    	},
	   
	    onSuccess : function(obj) 
	    	{ 
	    	}, 
	    onError : function(obj) 
	    	{ 	
       			return '';
	    	}
		});	
}


function gridDeleteFaq ( faq_id, grid_id )
{

	var answer= confirm("Czy napewno chcesz usunąć wiersz");
	 
	if (answer== true)
	{
		jQuery('#'+grid_id).delRowData(faq_id);
		ajaxDeleteFaq(faq_id);
	}
}

function ajaxDeleteFaq ( faq_id )
{
	advAJAX.get({
	    url: "/main/admin/ajaxdeletefaq/id/"+faq_id,
	    timeout : 5000,
	    onTimeout : function() 
	    	{ 
	    		//dialogcontent.innerHTML = "Connection timed out.";
	    	},
	    retry: 1,
	    
	    onRetry : function() 
	    	{ 
	    		//dialogcontent.innerHTML = "Retry connection...";
	    	},
	   
	    onSuccess : function(obj) 
	    	{ 
	    	}, 
	    onError : function(obj) 
	    	{ 	
       			return '';
	    	}
		});	
}

function toggleDiarySummary ( id, chartId )
{
	$("#"+chartId).css('overflow', 'hidden');
	$("#"+id).slideToggle("slow", function () {
		$("#"+chartId).css('overflow', 'auto');
	});
}

function slideDown ( id )
{
	$("#"+id).slideToggle("slow");
}


function load_prev_tasks ( category_select_id, task_select_id )
{
	var task_select = document.getElementById(task_select_id);
	var category_select = document.getElementById(category_select_id);
	
	if ( category_select.value > 0 )
	{
		advAJAX.get({
		    url: "/tasks/index/ajaxgettasks/id/"+category_select.value,
		    timeout : 5000,
		    onTimeout : function() 
		    	{ 
		    		//dialogcontent.innerHTML = "Connection timed out.";
		    	},
		    retry: 1,
		    
		    onRetry : function() 
		    	{ 
		    		//dialogcontent.innerHTML = "Retry connection...";
		    	},
		   
		    onSuccess : function(obj) 
		    	{ 
		    		var answerObj = JSON.decode(obj.responseText);
		    		
		    		if ( task_select.hasChildNodes() )
	    			{   
	    				while ( task_select.childNodes.length >= 3 )
	    				{
	    					task_select.removeChild( task_select.lastChild );       
	    				} 
	    			}
		    		
		    		for (i=0; i<answerObj.length; i++)
		    		{
		    			var option = document.createElement('option');
		    			option.text = answerObj[i].task_title;
		    			option.value = answerObj[i].task_id;
		    			
		    			task_select.appendChild(option);
		    		}
		    		
		    	}, 
		    onError : function(obj) 
		    	{ 	
	       			return '';
		    	}
			});	
	}
	
	
}

function show_notify_date ( chckbox, el_id )
{
	element = document.getElementById(el_id);
	chckbox = document.getElementById(chckbox);
	
	if ( chckbox )
	{
		if ( element )
		{
			if ( chckbox.checked == true )
			{
				element.style.display = 'inline';
			}
			else
			{
				element.style.display = 'none';
			}
		}
		
	}
}


function add_expense_error_helper( id, error, cell )
{
	var error_tr = document.getElementById(id+'_tr_error');
	var input_tr = document.getElementById(id+'_tr');
	
	var label = document.createElement('label');
	var td1 = document.createElement('td');
	var td2 = document.createElement('td');
	
	label.className = 'formError';
	td1.innerHTML = '&nbsp';
	
	if ( input_tr )
	{
		if ( input_tr.cells )
		{
			if ( error )
			{
				input_tr.cells[cell].style.color = "#ff0000";
			}
			else
			{
				input_tr.cells[cell].style.color = "#000000";
			}
			
		}
	}
	
	if ( error_tr )
	{
		try
		{
			error_tr.innerHTML = '';
		}
		catch ( e )
		{
			if ( error_tr.hasChildNodes() )
			{
			    while ( error_tr.childNodes.length >= 1 )
			    {
			    	error_tr.removeChild( error_tr.firstChild );       
			    } 
			}

		}
		
		if ( error )
		{
			label.innerHTML = error;
			td2.appendChild (label);
			
			error_tr.appendChild(td1);
			error_tr.appendChild(td2);
		}
		
	}
	
}



function clear_expenses_error( id, cell )
{
	var error_tr = document.getElementById(id+'_tr_error');
	var input_tr = document.getElementById(id+'_tr');
	
	
	if ( input_tr )
	{
		if ( input_tr.cells )
		{
			input_tr.cells[cell].style.color = "#000000";
			
		}
	}
	
	if ( error_tr )
	{
		try
		{
			error_tr.innerHTML = '';
		}
		catch ( e )
		{
			if ( error_tr.hasChildNodes() )
			{
				while ( error_tr.childNodes.length >= 1 )
				{
				   error_tr.removeChild( error_tr.firstChild );       
				} 
			}

		}
	}
}

function reload_grid ()
{
	$("#expenses_grid_list").trigger("reloadGrid");
}


function add_expense_ajax ()
{
	form = document.getElementById('tasks_forms_taskForm');
	
	advAJAX.submit(form, 
			{
				timeout : 10000,
				ajax_submit: 1, 
				disableForm : false,
				onSuccess : function(obj) 
				{ 
					
					var answerObj = JSON.decode(obj.responseText);
					if ( answerObj.valid == 1 )
					{	
						clear_expenses_error('expense_pay_date', 0);
						clear_expenses_error('expense_paid_date', 0);
						clear_expenses_error('expense_amount', 0);
						clear_expenses_error('expense_paid', 0);
						clear_expenses_error('expense_notify_date', 1);
						
						//var amount = answerObj.data.expense_pay_date;
						//var date = answerObj.data.expense_amount;
						//var notify_date = answerObj.data.expense_notify_date;
						//var is_paid = answerObj.data.expense_is_paid;
						
						//add_source_to_table_list (   date, amount, notify_date, is_paid );
						createNewTimed('Płatność została dodana.');
						reload_grid();
					}
					else
					{
						createNewStickyFail('Płatność nie została dodana!');
						
						add_expense_error_helper('expense_pay_date', answerObj.data.expense_pay_date, 0);
						add_expense_error_helper('expense_paid_date', answerObj.data.expense_paid_date, 0);
						add_expense_error_helper('expense_amount', answerObj.data.expense_amount, 0);
						add_expense_error_helper('expense_paid', answerObj.data.expense_paid, 0);
						add_expense_error_helper('expense_notify_date', answerObj.data.expense_notify_date, 1);
						
						//add_financial_source_error_helper('founding_source_name', answerObj.data.expense_pay_date);
					}
					
				},
				onError : function(obj) 
				{ 
					//alert("Error: " + obj.status); 
				}
			}
	); 
}


function add_expense_in_edit_ajax ()
{
	form = document.getElementById('tasks_forms_taskForm');
	
	advAJAX.submit(form, 
			{
				timeout : 4000,
				ajax_submit: 1, 
				disableForm : false,
				onSuccess : function(obj) 
				{ 
					var answerObj = JSON.decode(obj.responseText);
					
					if ( answerObj.valid == 1 )
					{
						clear_expenses_error('expense_pay_date', 0);
						clear_expenses_error('expense_amount', 0);
						clear_expenses_error('expense_notify_date', 1);
						clear_expenses_error('expense_paid', 0);
						clear_expenses_error('expense_notify_date', 1);
						
						createNewTimed('Płatność została dodana.');
						reload_grid();
						
						//var id = answerObj.data.expense_id;
						//var amount = answerObj.data.expense_pay_date;
						//var date = answerObj.data.expense_amount;
						//var notify_date = answerObj.data.expense_notify_date;
						//var is_paid = answerObj.data.expense_is_paid;
						
						//add_source_to_table_list (   date, amount, notify_date, is_paid );
						//add_source_to_table_list_in_edit( id, date, amount, notify_date, is_paid );
					}
					else
					{
						createNewStickyFail('Płatność nie została dodana!');
						
						add_expense_error_helper('expense_pay_date', answerObj.data.expense_pay_date, 0);
						add_expense_error_helper('expense_amount', answerObj.data.expense_amount, 0);
						add_expense_error_helper('expense_notify_date', answerObj.data.expense_notify_date, 1);
						add_expense_error_helper('expense_paid', answerObj.data.expense_paid, 0);
						add_expense_error_helper('expense_notify_date', answerObj.data.expense_notify_date, 1);
						
						//add_financial_source_error_helper('founding_source_name', answerObj.data.expense_pay_date);
					}
					
				},
				onError : function(obj) 
				{ 
					//alert("Error: " + obj.status); 
				}
			}
	); 
}


function add_source_to_table_list (  amount, date, notify_date, is_paid )
{
	var table = document.getElementById('expenses_table_list');
	
	if ( table )
	{
		table.style.display = 'table';
		
		var tr = document.createElement('tr');
		var td1 = document.createElement('td');
		var td2 = document.createElement('td');
		var td3 = document.createElement('td');
		var td4 = document.createElement('td');
		var td5 = document.createElement('td');
		var td6 = document.createElement('td');
		
		
		//1.setAttribute('valign',  'top');
		tr.id = 'expenses_table_list_tr_'+table.rows.length;
		
		td1.setAttribute('align', 'right');
		td2.setAttribute('align', 'right');
		td3.setAttribute('align', 'right');
		td4.setAttribute('align', 'right');
		td5.setAttribute('align', 'center');
		td6.setAttribute('align', 'center');
		
		td1.innerHTML = '<b>'+(table.rows.length)+'.</b>';
		
		//td2.setAttribute('valign',  'top');
		
		if ( is_paid == 1)
		{
			is_paid = 'tak';
		}
		else
		{
			is_paid = 'nie';
		}
		
		td2.innerHTML = amount+' zł';
		td3.innerHTML = date;
		td4.innerHTML = notify_date;
		td5.innerHTML = is_paid;
		//td6.innerHTML = '<a href="#" onClick="delete_financial_source(this.parentNode.parentNode.rowIndex); return false;">[usuń]</a>';
		td6.innerHTML = '<a href="#" onClick="delete_expense('+(table.rows.length-1)+'); return false;">[usuń]</a>';
		
		
		
		tr.appendChild(td1);
		tr.appendChild(td2);
		tr.appendChild(td3);
		tr.appendChild(td4);
		tr.appendChild(td5);
		tr.appendChild(td6);
		
		table.tBodies[0].appendChild(tr);
	}
}


function add_source_to_table_list_in_edit (  expense_id, amount, date, notify_date, is_paid )
{
	var table = document.getElementById('expenses_table_list');
	
	if ( table )
	{
		table.style.display = 'table';
		
		var tr = document.createElement('tr');
		var td1 = document.createElement('td');
		var td2 = document.createElement('td');
		var td3 = document.createElement('td');
		var td4 = document.createElement('td');
		var td5 = document.createElement('td');
		var td6 = document.createElement('td');
		
		
		//1.setAttribute('valign',  'top');
		tr.id = 'expenses_table_list_tr_'+table.rows.length;
		
		td1.setAttribute('align', 'right');
		td2.setAttribute('align', 'right');
		td3.setAttribute('align', 'right');
		td4.setAttribute('align', 'right');
		td5.setAttribute('align', 'center');
		td6.setAttribute('align', 'center');
		
		td1.innerHTML = '<b>'+(table.rows.length)+'.</b>';
		
		//td2.setAttribute('valign',  'top');
		
		if ( is_paid == 1)
		{
			is_paid = 'tak';
		}
		else
		{
			is_paid = 'nie';
		}
		
		td2.innerHTML = amount+' zł';
		td3.innerHTML = date;
		td4.innerHTML = notify_date;
		td5.innerHTML = is_paid;
		//td6.innerHTML = '<a href="#" onClick="delete_financial_source(this.parentNode.parentNode.rowIndex); return false;">[usuń]</a>';
		td6.innerHTML = '<a href="#" onClick="delete_expense_in_edit('+expense_id+', '+(table.rows.length-1)+'); return false;">[usuń]</a>';
		
		
		
		tr.appendChild(td1);
		tr.appendChild(td2);
		tr.appendChild(td3);
		tr.appendChild(td4);
		tr.appendChild(td5);
		tr.appendChild(td6);
		
		table.tBodies[0].appendChild(tr);
	}
}



function delete_expense( nr )
{
	table = document.getElementById('expenses_table_list');
	
	if ( table )
	{
		try
		{
			table.tBodies[0].deleteRow(nr);
			ajax_delete_expense(nr);
			
			if ( table.tBodies[0].hasChildNodes() )
			{
				
				j = 1;
				for ( i=0; i<table.tBodies[0].childNodes.length; i++ )
				{
					if ( table.tBodies[0].childNodes[i].cells )
					{
						table.tBodies[0].childNodes[i].cells[0].innerHTML = '<b>'+(j)+'.</b>';
						table.tBodies[0].childNodes[i].cells[5].innerHTML = '<a href="#" onClick="delete_expense('+(j-1)+'); return false;">[usuń]</a>';
						j++;
					}
				}
			}
			
		}
		catch ( e ) 
		{
		}
	}
}



function delete_expense_in_edit( expense_id, nr )
{
	table = document.getElementById('expenses_table_list');
	
	if ( table )
	{
		try
		{
			table.tBodies[0].deleteRow(nr);
			ajax_delete_task_expense( expense_id);
			
			if ( table.tBodies[0].hasChildNodes() )
			{
				
				j = 1;
				for ( i=0; i<table.tBodies[0].childNodes.length; i++ )
				{
					if ( table.tBodies[0].childNodes[i].cells )
					{
						table.tBodies[0].childNodes[i].cells[0].innerHTML = '<b>'+(j)+'.</b>';
						//table.tBodies[0].childNodes[i].cells[5].innerHTML = '<a href="#" onClick="delete_expense('+(j-1)+'); return false;">[usuń]</a>';
						table.tBodies[0].childNodes[i].cells[5].innerHTML = '<a href="#" onClick="delete_expense_in_edit('+expense_id+', '+(j-1)+'); return false;">[usuń]</a>';
						
						
						j++;
					}
				}
			}
			
		}
		catch ( e ) 
		{
		}
	}
}


function ajax_delete_task_expense (  expense_id )
{
	advAJAX.get({
	    url: "/tasks/index/ajaxdeletetaskexpense/expense_id/"+expense_id,
	    timeout : 5000,
	    onTimeout : function() 
	    	{ 
	    		//dialogcontent.innerHTML = "Connection timed out.";
	    	},
	    retry: 1,
	    
	    onRetry : function() 
	    	{ 
	    		//dialogcontent.innerHTML = "Retry connection...";
	    	},
	   
	    onSuccess : function(obj) 
	    	{ 
	    		//var categories = eval('(' + obj.responseText + ')');
	    		reload_grid();
	    		
	    	}, 
	    onError : function(obj) 
	    	{ 	
       			return '';
	    	}
		});	
}


function ajax_delete_expense ( row )
{
	advAJAX.get({
	    url: "/tasks/index/ajaxdeleteexpense/id/"+row,
	    timeout : 5000,
	    onTimeout : function() 
	    	{ 
	    		//dialogcontent.innerHTML = "Connection timed out.";
	    	},
	    retry: 1,
	    
	    onRetry : function() 
	    	{ 
	    		//dialogcontent.innerHTML = "Retry connection...";
	    	},
	   
	    onSuccess : function(obj) 
	    	{ 
	    		//var categories = eval('(' + obj.responseText + ')');
	    		reload_grid();
	    		
	    	}, 
	    onError : function(obj) 
	    	{ 	
       			return '';
	    	}
		});	
}

function add_new_expert_fields ( chckbox )
{
	var expert_chck_box = document.getElementById('expert_type-expert');
	
	if ( chckbox.checked == true )
	{
		if ( expert_chck_box )
		{
			if ( expert_chck_box.checked == true )
			{
				try
				{
					$("#add_new_expert_tr").attr("style", "display:table-row");
					$("#add_new_company_tr").attr("style", "display:none");
				}
				catch (e){alert(document.getElementById('add_new_company_tr').style.display);}	
			}
			else
			{
				
				try
				{
					$("#add_new_expert_tr").attr("style", "display:none");
					$("#add_new_company_tr").attr("style", "display:table-row");
				}
				catch (e){alert(e);}	
			}
		}
	}
	else
	{
		try
		{
			$("#add_new_expert_tr").attr("style", "display:none");
			$("#add_new_company_tr").attr("style", "display:none");
		}
		catch (e){}	
		
	}
}


function switch_experts ()
{
	var radio_company = document.getElementById('expert_type-company');
	var chckbox = document.getElementById('add_new_expert');
	
	if ( radio_company )
	{
		if ( radio_company.checked == false )
		{
			show_element = document.getElementById('experts_select');
			hide_element = document.getElementById('companies_select');
		}
		else
		{
			show_element = document.getElementById('companies_select');
			hide_element = document.getElementById('experts_select');
		}
		
	}
	
	if ( show_element != null )
	{
		if ( hide_element )
		{	
			show_element.style.display = 'inline';
			hide_element.style.display = 'none';
			
			add_new_expert_fields(chckbox);
		}
	}
}



function load_dual_box ()
{
	$('#charts_dual_box').css('display', 'block');
	$('#chart_box').css('display', 'none');
	$('#gantt_box').css('display', 'none');
}

function load_bigger_chart()
{
	$('#charts_dual_box').css('display', 'none');
	$('#gantt_box').css('display', 'none');
	
	/*$.getScript("/user/diary/ajaxgetchart/w/645/h/300/div/chartcontainer_big/")*/
	
	$('#chart_box').css('display', 'block');
		
}

function load_bigger_gantt()
{
	$('#charts_dual_box').css('display', 'none');
	$('#gantt_box').css('display', 'block');
}

function showTabBottom ( tab )
{
    var tabs = new Array('box_photos', 'box_albums');
    
	for (i=0; i<tabs.length; i++)
	{
		if ( tabs[i] == tab )
		{
			$('#'+tabs[i]).css('display', 'block');
		}
		else
		{
			$('#'+tabs[i]).css('display', 'none');
		}
	}
 }




function showTab ( tab )
{
	var tabs = new Array('box_tasks', 'box_notes', 'box_contacts');

	
	for (i=0; i<tabs.length; i++)
	{
		if ( tabs[i] == tab )
		{	
			 $('#'+tabs[i]).addClass('active');
			 $('#'+tabs[i]).css('display', 'block');
		}
		else
		{
			$('#'+tabs[i]).removeClass('active');
			$('#'+tabs[i]).css('display', 'none');
		}
	}
}

function load_album_box (uid)
{
	$("#box_albums").load("/main/ajax/profilealbums/limit/5/uid/"+uid);		
}

function load_photo_box ()
{
	$("#box_photos").load("/photos/index/ajaxlastphotos/limit/16");
}
 
function show_div_form ( div_id )
{
		var divs = new Array('pwd_div', 'desc_div', 'display_name_div', 'display_avatar_div');
		var h3 = new Array('Zmień hasło', 'Ustaw swój opis', 'Zmień nazwę ekranową', 'Wgraj nowy awatar (128x128)');
		var th_h3_desc = document.getElementById('th_h3_desc');
		
		for (i=0; i<divs.length; i++)
		{
			var element = document.getElementById( divs[i] );

			if ( element )
			{
				if ( div_id == divs[i] )
				{
					element.style.display = 'inline';

					if (th_h3_desc)
					{	
						th_h3_desc.innerHTML = h3[i];
					}
				}
				else
				{
					element.style.display = 'none';
				}
			}
					
		}
}


var achtungBaseSuccess = {
        timeout: 8,
        className: 'achtungSuccess',
        icon: 'ui-icon-check'
};



function createNewWaitIcon( msg, timeout )
{
	if ( timeout == null )
	{
		timeout = 0;
	}
	
    var achtung = $.achtung({
        className: 'achtungWait',
        icon: 'wait-icon',
        timeout: timeout,
        disableClose: true,
        message: msg
    });
    
    return achtung;
}

function createNewStickyFail( msg )
{
    $.achtung({
    	className: 'achtungFail',
    	icon: 'error-icon',
        timeout: 0,
        message: 'UWAGA: '+msg
    });
    
}


function createNewTimed( msg, timeout )
{
	if ( timeout == null )
	{
		timeout = 6;
	}
	
    var achtung = $.achtung(achtungBaseSuccess, {
    	timeout: timeout,
    	message: msg
    });
    
    return achtung;
}

function ajax_invite_friend (email_field_id)
{
	var email = $('#'+email_field_id).val();
	
	var post_data = { 
			email : email
    };
	
	$.get("/user/account/ajaxinvite/", post_data,
			  function(data)
			  {
			    //$('#'+div_id).html(data);
				createNewTimed(data, 6);
			  });

}



function picasa_import_photos (form_id, gallery_url)
{
	createNewWaitIcon("Proszę czekać. Trwa importowanie zdjęć.");
	
	$('#'+form_id).ajaxForm(function() { 
        //alert("Zdjęcia zostały zaimportowane!");
		closeAll();
		createNewTimed('Zdjęcia zostały zaimportowane! Aby je obejrzeć, proszę przejść do swojej <a href="'+gallery_url+'">Galerii</a>', 10);
    }); 
}

function picasa_import_album (  album_id )
{
	var post_data = { 
			aid : album_id	
			};
	
	createNewWaitIcon ('Proszę czekać. Trwa wczytywanie zdjęć.');
	$.get("/photos/picasa/ajaximportalbum/", post_data,
			  function(data)
			  {
				closeAll();
			    $('#picasa_photos_div').html(data);
				$('#picasa_photos_div').css('display', 'block');
				
			  });
}

function closeAll()
{
    $('.achtung').achtung('close');
}


function display ( element_id, display )
{
	if ( display == null )
	{
		display = 'inline';
	}
	
	$('#'+element_id).css('display', display);
}

function big_spinner ( element_id, display )
{
	if ( display != null )
	{
		$('#'+element_id).css('display', display);
	}
	
	$('#'+element_id).html('<div align="center" valign="middle"><img src="/img/spinner_big.gif" title="wczytywanie danych" alt="wczytywanie danych"></div>');
}



function show_picassa_form ( id )
{
	$('#'+id).css('display', 'block');
	$('#btn_picasa').css('display', 'none');
}

function load_note_preview ( note_id )
{
	var post_data = { id : note_id};
	
	$.get("/notes/index/ajaxgetnote/", post_data,
			  function(data)
			  {
			    $('#note_preview_inner_div').html(data);
				$('#note_preview_div').css('display', 'block');
				
			  });
}


function tooltip ( elementId, msg, positionX, positionY, wdh )
{   
	
	if ( positionX == null )
	{
		positionX = 'right';
	}
	
	if ( positionY == null )
	{
		positionY = 'top';
	}
	
	if ( wdh == null )
	{
		wdh = 150;
	}
	
	var left = false;
	var right = true;
	if ( positionX == 'left' )
	{
		left = true;
		right = false;
	}
	
	/*$('#'+elementId).aToolTip({  
		clickIt: false,
		fixed: false,
		inSpeed: 400, 
		outSpeed: 100,
		tipContent: '', 
		toolTipClass: 'pretty',
		xOffset: 5,
		yOffset: 5
		});*/
	
	$('#'+elementId).tooltip({ 
	    track: true, 
	    delay: 0, 
	    showURL: false,
	    extraClass: "pretty",
	    //opacity: 0.8,
	    fixPNG: true,
	    showBody: " - ", 
	    fade: 50,
	    positionLeft: left,
	    positionRight: right,
	    positionTop: true
	});
		
	/*
		$('#'+elementId).bt({
			fill: '#FFF',
		    cornerRadius: 10,
		    strokeWidth: 0,
		    shadow: true,
		    shadowOffsetX: 3,
		    shadowOffsetY: 3,
		    shadowBlur: 8,
		    animate: true,
		    width: wdh,
		    //cssStyles: {color: 'white', fontWeight: 'bold', width: 'auto'},
		    shadowColor: 'rgba(0,0,0,.9)',
		    shadowOverlap: false,
		    noShadowOpts: {strokeStyle: '#999', strokeWidth: 2},
		    positions: [positionX, positionY]	  
		});
	*/
	
	
	
}


function delete_photo(url)
{
	 var where_to= confirm("Czy napewno chcesz usunąć to zdjęcie?");
	 
	 if (where_to== true)
	 {
	   window.location=url;
	 }
}




function ajax_privacy_profile_settings ()
{
	
	  var profile = $('input[name=default_access_type]:checked').val();
	
	  $.getJSON("/user/account/ajaxdefaultprivacy",{id: profile}, dates);
	  
	  function dates(response)
	  {
		  if ( response.status == 1 )
		  {
			  var max = response.data.length;
			  
			  
			  for ( i=0; i<max; i++ )
			  {
				  var role_id = response.data[i].privacy_role_id;
				  var resource_id = response.data[i].privacy_resource_id;
				  
				  var id = 'user_settings_'+role_id+'_'+resource_id;
				  
				  $('#'+id).attr('checked', true);
			  }
		  }
	  }


}


function ajax_session_del_tranche_from_financial_source ( tranche_id, source_id )
{
	var post_data = { 
			source_id : source_id,
			tranche_id: tranche_id
   };
	
	$.post("/user/account/ajaxdeltranchefromsource/", post_data, function(json){ 
		if ( json.deleted == 1 )
		{
			/*
			 * refresh grida
			 */
			$("#wallet_grid_list").clearGridData(true);
			$("#wallet_grid_list").trigger("reloadGrid");
			
		}
		
	}, "json");
}


function ajax_session_del_financial_source ( source_id )
{
	var post_data = { 
			source_id : source_id
   };
	
	$.post("/user/account/ajaxdelsource/", post_data, function(json){ 
		if ( json.deleted == 1 )
		{
			/*
			 * refresh grida
			 */
			$("#wallet_grid_list").clearGridData(true);
			$("#wallet_grid_list").trigger("reloadGrid");
			createNewTimed('Źródło zostało usunięte.');
		}
		else
		{
			
		}
		
	}, "json");
}


function ajax_session_add_financial_source ()
{
	var is_tranche = 0;
	var is_paid = 0;
	
	if ( $('#founding_source_is_paid').attr('checked') )
	{
		is_paid = 1;
	}
	
	if ( $('#founding_source_is_tranche').attr('checked') )
	{
		is_tranche = 1;
	}
	
	var post_data = { 
			founding_source_name : $('#founding_source_name').val(),
			founding_source_amount: $('#founding_source_amount').val(),
			founding_source_date: $('#founding_source_date').val(),
			founding_source_is_paid: is_paid,
			founding_source_is_tranche: is_tranche,
			founding_source_note: $('#founding_source_note').val(),
   };
	
	$.post("/user/account/ajaxaddsource/", post_data, function(json){ 
		if ( json.is_valid == 0 )
		{
			$('#financial_source_form_div').html(json.data);
			createNewStickyFail('Źródło finansowania nie zostało dodane!');
		}
		else if ( json.is_valid == -1 )
		{
			createNewStickyFail('Kwota całkowita nie jest równa sumie kwot transz!');
		}
		else
		{
			$('#financial_source_form_div').html(json.data);
			
			$('#founding_source_name').val('');
	   		$('#founding_source_amount').val('');
	   		$('#founding_source_date').val('');
	   		$('#founding_source_note').val('');
	   		$('#founding_source_is_paid').attr('checked', false);
	   		$('#founding_source_is_tranche').attr('checked', false);//.attr('style', 'display: none;');
	   		
			/*
			 * refresh grida
			 */
			$("#wallet_grid_list").trigger("reloadGrid");
			$("#tranche_form_row").attr('style', 'display: none;');
			$("#tranche_list_row").attr('style', 'display: none;');
			
			createNewTimed('Źródło zostało dodane.');
		}
		
	}, "json");
}

function ajax_session_del_tranche ( tranche_id )
{
	var post_data = { 
			tranche_id : tranche_id
   };
	
	$.post("/user/wallet/ajaxdeltranche/", post_data, function(json){ 
		if ( json.deleted == 1 )
		{
			/*
			 * refresh grida
			 */
			$("#tranches_grid_list").trigger("reloadGrid");
			createNewTimed('Transza została usunięta.');
		}
		
	}, "json");
}


function ajax_session_add_tranche (normal)
{
	var is_paid = 0;
	var notify = 0;
	
	if ( $('#tranche_id_paid').attr('checked') )
	{
		is_paid = 1;
	}
	
	if ( $('#tranche_notify').attr('checked') )
	{
		notify = 1;
	}
	
	var post_data = { 
			tranche_amount : $('#tranche_amount').val(),
	   		tranche_date: $('#tranche_date').val(),
	   		tranche_notify: notify,
	   		tranche_notify_date: $('#tranche_notify_date').val(),
	   		tranche_id_paid: is_paid,
	   		tranche_note: $('#tranche_note').val()
   };
	
	if ( normal == true)
	{
		post_data['normal'] = true;
	}
	
	$.post("/user/wallet/ajaxaddtranche/", post_data, function(json){ 
		if ( json.is_valid == 0 )
		{
			$('#tranche_form_row').html(json.data);
			createNewStickyFail('Transza nie została dodana!');
		}
		else
		{
			$('#tranche_form_row').html(json.data);
			
			$('#tranche_amount').val('');
	   		$('#tranche_date').val('');
	   		$('#tranche_note').val('');
	   		$('#tranche_notify').attr('checked', false);
	   		$('#tranche_id_paid').attr('checked', false);
	   		//$('#tranche_notify_date').attr('style', 'display: none;');
	   		$('#tranche_notify_date').hide();
	   		
			/*
			 * refresh grida
			 */
			$("#tranches_grid_list").trigger("reloadGrid");
			createNewTimed('Transza została dodana.');
		}
		
	}, "json");
	

}

function random_color(format)
{
	 var rint = Math.round(0xffffff * Math.random());
	 switch(format)
	 {
	  case 'hex':
	   return ('#0' + rint.toString(16)).replace(/^#0([0-9a-f]{6})$/i, '#$1');
	  break;
	  
	  case 'rgb':
	   return 'rgb(' + (rint >> 16) + ',' + (rint >> 8 & 255) + ',' + (rint & 255) + ')';
	  break;
	  
	  default:
	   return rint;
	  break;
	 }
}


function switch_2_checkboxes ( id1, id2 )
{
	if ($('#'+id1).attr("checked") == true) 
    { 
		$('#'+id2).attr("checked", false); 
    }
	else
	{
		$('#'+id2).attr("checked", true);
	}
}


function switch_check ( checkbox_id )
{
	
	if ($('#'+checkbox_id).attr("checked") == true) 
    { 
		$('#'+checkbox_id).attr("checked", false); 
    }
	else
	{
		$('#'+checkbox_id).attr("checked", true); 
	}
	
}

function switch_disabled ( element_id )
{
	if ($('#'+element_id).attr("disabled") == false) 
    { 
		
		$('#'+element_id).attr("disabled", true);
    }
	else
	{
		$('#'+element_id).removeAttr("disabled");
	}
	
}


function switch_inline_display ( id )
{
	switch_display( id, 'inline' );
}

function switch_block_display ( id )
{
	switch_display( id, 'block' );
}

function switch_display ( id, type )
{
	var element = document.getElementById(id);
	
	if ( element )
	{
		if ( element.style.display == 'none' )
		{
			 element.style.display = type;
		}
		else
		{
			element.style.display = 'none';
		}
	}
}

function switch_elements_display ( id1, id2, dsp )
{
	var element1 = document.getElementById(id1);
	var element2 = document.getElementById(id2);
	
	if (dsp == null)
	{
		dsp = 'inline';
	}
	
	if ( element1 && element2 )
	{
		if ( element1.style.display == 'none' )
		{
			element1.style.display = dsp;
			element2.style.display = 'none';
		}
		else
		{
			element1.style.display = 'none';
			element2.style.display = dsp;
		}
	}
}

//create function, it expects 2 values.
function insertAfter(newElement,targetElement) 
{
	//target is what you want it to go after. Look for this elements parent.
	var parent = targetElement.parentNode;

	//if the parents lastchild is the targetElement...
	if(parent.lastchild == targetElement) 
	{
		//add the newElement after the target element.
		parent.appendChild(newElement);
	} 
	else 
	{
		// else the target has siblings, insert the new element between the target and it's next sibling.
		parent.insertBefore(newElement, targetElement.nextSibling);
	}
}




function update_usercategory_steprow ()
{
	target_hidden_edited_row_id = document.getElementById('hidden_edited_row_id');
	
	id = target_hidden_edited_row_id.value;
	
	form = document.getElementById('main_forms_constructionProfileForm');
	
	advAJAX.submit(form, 
			{
				timeout : 5000,
				ajax_submit: 1, 
				disableForm : false,
				onSuccess : function(obj) 
				{   
					var answerObj = JSON.decode(obj.responseText);
					
					div = document.getElementById('user_category_form_div');
					div2 = document.getElementById('outer_user_category_form_div');
					div.innerHTML = answerObj.form;
					
					label = document.getElementById( 'category_label_'+id);
					hidden = document.getElementById('category-'+id);
					
					start_date_hidden = document.getElementById('start_date_'+id);
					end_date_hidden = document.getElementById('end_date_'+id);
					
					target_input = document.getElementById('category_name');
					target_start_date_input = document.getElementById('category_start_date');
					target_end_date_input = document.getElementById('category_end_date');
					
					$('.date-pick').datepicker({ changeMonth: true,
        				changeYear: true,
        				showOn: 'both',
        			  	buttonImage: '/img/calendar.png' });
        			  
					
					if ( answerObj.valid == '1' )
					{	
						
						try
						{
							hidden.value = target_input.value;
							start_date_hidden.value = target_start_date_input.value;
							end_date_hidden.value = target_end_date_input.value;
							label.innerHTML = target_input.value;
							
							target_input.value = '';
							target_start_date_input.value = '';
							target_end_date_input.value = '';
							target_input.value = '';
							
							div.style.display = 'none';
							div2.style.display = 'none';
						}
						catch ( e )
						{
							//alert(e);
						}
					}
				},
				onError : function(obj) 
				{ 
					//alert("Error: " + obj.status); 
				}
			}
	); 
	
	
}


function edit_usercategory_steprow ( id )
{
	div = document.getElementById('user_category_form_div');
	div.style.display = 'block';
	
	div = document.getElementById('outer_user_category_form_div');
	div.style.display = 'block';
	
	
	label = document.getElementById( 'category_label_'+id);
	hidden = document.getElementById('category-'+id);
	
	start_date_hidden = document.getElementById('start_date_'+id);
	end_date_hidden = document.getElementById('end_date_'+id);
	
	target_input = document.getElementById('category_name');
	target_start_date_input = document.getElementById('category_start_date');
	target_end_date_input = document.getElementById('category_end_date');
	target_hidden_edited_row_id = document.getElementById('hidden_edited_row_id');
	
	try
	{
		target_hidden_edited_row_id.value = id;
		target_input.value = hidden.value;
		target_start_date_input.value = start_date_hidden.value;
		target_end_date_input.value = end_date_hidden.value;
		
		createNewTimed('Etap został wczytany do edycji.');
	}
	catch ( e )
	{
		//createNewStickyFail('Zmiany nie zostały zapisane!');
	}
	
}

function delete_table_row (table_id, i)
{
	$.get("/user/account/deletecategory/", { id: i+1 });
	
	var table = document.getElementById(table_id);
	table.deleteRow(i);
	
	createNewTimed('Etap został usuniety.');
}


/**
 * Dodaje etapy budowy do listy tworzonej przez uzytkownika
 * 
 * @param id
 * @param pid
 * @param min
 * @param txt
 * @return
 */
function add_user_category (id, pid, min, txt)
{
	element = document.getElementById(id);
	p_element = document.getElementById(pid);
	
	table = document.getElementById('c_categories');
	var value = '';
	
	if ( p_element.value.length > 0 )
	{
		value =  p_element.value;
	}
	else if ( element.value.length >= min )
	{
		value = element.value;
	}
	
	var id = table.tBodies[0].rows.length;
	$.get("/user/account/clearcategory", { category_name: value, category_id: id },
	function(data){
					
		value = data;
		if ( value.length >= min )
		{	
			var tr = document.createElement("tr");
			var td1 = document.createElement("td");
			var td2 = document.createElement("td");
			
			var start_date_hidden = document.createElement("input");
			start_date_hidden.type = "hidden";
			start_date_hidden.name = "start_date["+(table.tBodies[0].rows.length)+"]";
			start_date_hidden.id = 'start_date_'+(table.tBodies[0].rows.length);
			start_date_hidden.value = '';
			
			var end_date_hidden = document.createElement("input");
			end_date_hidden.type = "hidden";
			end_date_hidden.name = "end_date["+(table.tBodies[0].rows.length)+"]";
			end_date_hidden.id = 'end_date_'+(table.tBodies[0].rows.length);
			end_date_hidden.value = '';
			
			tr.setAttribute('onMouseOver', "this.style.cursor='pointer'; this.style.cursor='hand';");
			td2.setAttribute('align', 'right');
			
			var chkbx = document.createElement("input");
			chkbx.type = "hidden";
			chkbx.name = "category["+(table.tBodies[0].rows.length)+"]";
			//chkbx.checked = true;
			chkbx.value = value;
			
			var hidden = document.createElement("input");
			hidden.type = "hidden";
			hidden.name = "category["+(table.tBodies[0].rows.length)+"]";
			hidden.id = "category-"+(table.tBodies[0].rows.length);
			hidden.value = value;
			
			var label = document.createElement('label');
			label.id = 'category_label_'+table.tBodies[0].rows.length;
			label.innerHTML = value;
			label.setAttribute('onMouseOver', "this.style.cursor='pointer'; this.style.cursor='hand';");
			
			
			//td2.appendChild(hidden);
			td1.appendChild(hidden);
			td1.appendChild(start_date_hidden);
			td1.appendChild(end_date_hidden);
			td1.appendChild(label);
			td2.innerHTML = "(<a href=\"#\" onClick=\"edit_usercategory_steprow("+table.tBodies[0].rows.length+"); return false;\">edytuj</a>) &nbsp;(<a href=\"#\" onClick=\"delete_table_row('c_categories', this.parentNode.parentNode.rowIndex); return false;\">usuń</a>)";
			
			tr.appendChild(td1);
			tr.appendChild(td2);
			
			table.tBodies[0].appendChild(tr);
			
			var tableDnD = new TableDnD();
			tableDnD.init(table);
			
			if ( element.value.length >= min )
			{
				element.value = '';
			}
			
			createNewTimed('Etap został dodany do listy.');

		}		
		else
		{
			createNewStickyFail('Nazwa etapu jest za krótka!');
		}
	});
	
	
}


/**
 * dodaje kategorie do widoku kroku1
 * 
 * @param categories
 * @return
 */
function categories_into_view ( categories )
{
	table = document.getElementById('c_categories');
	
	try{
		table.tBodies[0].innerHTML = '';
	}
	catch (e){
		if ( table.tBodies[0].hasChildNodes() )
		{
			while ( table.tBodies[0].childNodes.length >= 1 )
			{
				table.tBodies[0].removeChild( table.tBodies[0].firstChild );       
			} 
		}
	}
	
	for ( i=0; i<categories.length; i++ )
	{
		var tr = document.createElement("tr");
		var td1 = document.createElement("td");
		var td2 = document.createElement("td");
		
		var hidden1 = document.createElement('input');
		var hidden2 = document.createElement('input');
		
		hidden1.type = 'hidden';
		hidden2.type = 'hidden';
		
		hidden1.name = 'start_date['+i+']';
		hidden2.name = 'end_date['+i+']';
		
		hidden1.id = 'start_date_'+i;
		hidden2.id = 'end_date_'+i;
		
		
		tr.setAttribute('onMouseOver', "this.style.cursor='pointer'; this.style.cursor='hand';");
		td2.setAttribute('align', 'center');
		
		
		
		var chkbx = document.createElement("input");
		chkbx.type = "hidden";
		chkbx.name = "category["+categories[i].category_id+"]";
		chkbx.id = "category-"+i;
		chkbx.checked = true;
		chkbx.value = 1;
		
		var hidden = document.createElement("input");
		hidden.type = "hidden";
		hidden.name = "category["+categories[i].category_id+"]";
		hidden.id = "category-"+i;
		hidden.value = categories[i].category_name;
		
		var label = document.createElement('label');
		label.setAttribute('onMouseOver', "this.style.cursor='pointer'; this.style.cursor='hand';");
		label.id='category_label_'+i;
		
		label.innerHTML = categories[i].category_name;
		
		//td2.innerHTML = "<a href=\"#\" onClick=\"delete_table_row('c_categories', this.parentNode.parentNode.rowIndex); return false;\">usuń</a></td>";
		td2.innerHTML = "(<a href=\"#\" onClick=\"edit_usercategory_steprow('"+i+"'); return false;\">edytuj</a>) &nbsp;(<a href=\"#\" onClick=\"delete_table_row('c_categories', this.parentNode.parentNode.rowIndex); return false;\">usuń</a>)";
		
		td1.appendChild(hidden1);
		td1.appendChild(hidden2);
		td1.appendChild(hidden);
		td1.appendChild(label);
		//td2.appendChild(hidden);
		
		tr.appendChild(td1);
		tr.appendChild(td2);
		
		
		table.tBodies[0].appendChild(tr);
	}
	
	var tableDnD = new TableDnD();
	tableDnD.init(table);
}
 
 
function get_categories (id, dir)
{
	advAJAX.get({
	    //url: "/user/account/ajaxcategories/pid/"+element.value, 
	    url: "/user/account/ajaxcategories/pid/"+id, 
	    timeout : 10000,
	    onTimeout : function() 
	    	{ 
	    		//dialogcontent.innerHTML = "Connection timed out.";
	    	},
	    retry: 1,
	    
	    onRetry : function() 
	    	{ 
	    		//dialogcontent.innerHTML = "Retry connection...";
	    	},
	   
	    onSuccess : function(obj) 
	    	{ 
	    		$(".hand").each(function(index) {
	    		    if ( $(this).attr('id') == 'profile_'+id )
	    		    {
	    		    	$(this).attr('src', $(this).attr('src').replace(/((s*)((\d+)\.png))/gi, "$3"));
	    		    }
	    		    else
	    		    {
	    		    	if ( $(this).attr('src').search(/(s\d+\.png)/gi) == -1 )
	    		    	{
	    		    		$(this).attr('src', $(this).attr('src').replace(/((s*)((\d+)\.png))/gi, "s$1"));
	    		    	}
	    		    	
	    		    }
	    		  });
	    		
	    		var categories = eval('(' + obj.responseText + ')');
	    		categories_into_view(categories);
	    		createNewTimed('Profil budowy został wczytany.');
	    		
	    	}, 
	    onError : function(obj) 
	    	{   	
				createNewStickyFail('Nie udało się załadować profilu budowy.');
       			return '';
	    	}
		});	
}


function isset(varname)
{
	  return(typeof(window[varname])!='undefined');
}

function includeJavaScript(filename)
{
	var body = document.getElementsByTagName('body').item(0);
	script = document.createElement('script');
	script.src = filename;
	script.type = 'text/javascript';
	body.appendChild(script)
}

function isArray(a) {return isObject(a) && a.constructor == Array;}
function isObject(a) {return (a && typeof a == 'object') || isFunction(a);}
function isFunction(a) {return typeof a == 'function';}

