/*
 * default.js
 * @author frukt
 */

function get_payment_method(){
	var elements = $$("#payment_method");
	var result = '';
	elements.each(function(item, key){
		if(item.checked){	result = item.value; }
	});
	return result;
}

function post_this_form(obj, set_edit){
	var form = obj.form;
 	form.action = "edit.php";
	form.submit();
}

function get_all_cookies(){
	var cookies = [];
	var _cookies = document.cookie.replace(/ /g, "").split(";");
	for(var i = 0; i < _cookies.length; i++){
		cookie = _cookies[i].split("=");
		cookies[i] = {name:cookie[0], value:cookie[1]};
	}
	return cookies;
}

function post_form(form_id, action){
	$(form_id).action.value = action;
	$(form_id).submit();
}

/*function check_row(row_id){
	var row = $(row_id);
	var check = row.getElementsByTagName('input')[0];
	if(check.checked){ row.addClass('selected'); }else{ row.removeClass('selected'); }
}*/

function check_all_rows(table, checked){
	var table = $(table);
	var elements = $$(table.getElementsByTagName('tr'));
	elements.each(function(item, index){
		if(item.id){
			var row = $(item.id);
			var check = row.getElementsByTagName('input')[0];
			check.checked = checked;
			if(checked){ row.addClass('selected'); }else{ row.removeClass('selected'); }
		}
	});
}

function sortable_table_page(id, page){
	var t = $(id);
	var _table;
	if(page == 'previous'){
		_table = Table.pagePrevious(t);
	}else if(page == 'next'){
		_table = Table.pageNext(t);
	}else{
		_table = Table.page(t, page);
	}
	
	var _current = _table.page+1;
	$$('.pagelink').removeClass('currentpage');
	$$('#sortable_page_'+_current).addClass('currentpage');
}

function show_client_list(obj){
	var object = $(obj);
	var list_obj = $('client_list');
	list_obj.injectBefore(obj);
	
	if(obj.value != "" || obj.value != "0"){
		var options = list_obj.options;
		$each(options, function(item, index){
			if(item.value == obj.value){
				item.setProperty('selected', 'selected');
			}
		});
	}
	
	list_obj.setStyle('display', 'block');
}

function hide_client_list(){
	$('client_list').setStyle('display', 'none');
}

function set_client_id(){
	var list_obj = $('client_list');
	var selected = list_obj.getValue();
	var parent = list_obj.getParent();
	var element = parent.getElementsByTagName('input')[0];
	element.value = selected;
}

var globalField = null;

var Default = (function(){	
	function _sortableTablePage(id, page){
		if(page == 'previous'){
			var table = Table.pagePrevious($(id).get(0));
		}else if(page == 'next'){
			var table = Table.pageNext($(id).get(0));
		}else{
			var table = Table.page($(id).get(0), page);
		}
		
		var current = table.page+1;
		$('.pagelink').removeClass('currentpage');
		$('#sortable_page_'+current).addClass('currentpage');
	}
	
	function _setfocus(valfield){
	  // save valfield in global variable so value retained when routine exits
	  globalField = valfield;
	  setTimeout('globalField.focus()', 100);
	}
	
	return {
		editSelected: function(id, obj){
			var selected = $('#'+id).val();
			if(!/^\d+$/.test(selected)){ return false; }
			var url = /\?/.test($(obj).attr('href')) ? $(obj).attr('href')+'&id='+selected : $(obj).attr('href')+'?id='+selected;
			avapopup(url, ''+Math.round(Math.random()*1000000), 725, 600, false);
		},
		deleteSelected: function(id, obj){
			var result = confirm('Olete kindel, et soovite seda objekti kustutada?');
			if(result === false){ return false; }

			var selected = $('#'+id).val();
			if(!/^\d+$/.test(selected)){ return false; }
			var url = /\?/.test($(obj).attr('href')) ? $(obj).attr('href')+'&id='+selected : $(obj).attr('href')+'?id='+selected;
			avapopup(url, ''+Math.round(Math.random()*1000000), 200, 200, false);
		},
		deleteObj: function(object){
			if(confirm('Olete kindel, et soovite seda objekti kustutada?')){
				avapopup($(object).attr('href'), null, 725, 625, false);
			}
		},
		sortableChangePage: function(id, page){ _sortableTablePage(id, page); },
		initRowHighlight: function(object){
			$('input[type=checkbox]', object).bind('click', function(){
				$(this).parent().parent().toggleClass('selected');
			})
		},
		execAction: function(action){
			$('input#action').val(action);
		},
		throwException: function(message, type){
			
		},
		showLoader: function(){ $('#loading').css('display', 'block'); },
		hideLoader: function(){ $('#loading').css('display', 'none'); },
		validate: function(target){
			var result = true;
			var focused = null;
			var elements = $(':input', target);
			jQuery.each(elements, function(key, elem){
				$(elem).removeClass('f_input_error');

				if(/^required$/.test($(elem).attr('rel')) && ($(elem).val() == null || $(elem).val().length < 1)){
					result = false;
					if(focused == null){ focused = elem; }
					$(elem).addClass('f_input_error');
				}
			});
			
			if(focused != null){ _setfocus(focused); }
			return result;
		},
		submit: function(target){
			var result = Default.validate(target);
			if(result === false){ return false; }
			$(target).get(0).submit();
		},
		selectAll: function(id){ $('input.checks', id).attr('checked', true).parent().parent().addClass('selected'); },
		selectNone: function(id){ $('input.checks', id).attr('checked', false).parent().parent().removeClass('selected'); },
		selectNotVerified: function(id){
			Default.selectNone(id);
			$('tr.regUnconfirmed input.checks', id).attr('checked', true).parent().parent().addClass('selected');
		},
		selectVerified: function(id){
			Default.selectNone(id);
			$('tr:not(tr.regUnconfirmed, tr.regQuitter) input.checks', id).attr('checked', true).parent().parent().addClass('selected');
		},
		selectQuitter: function(id){
			Default.selectNone(id);
			$('tr.regQuitter input.checks', id).attr('checked', true).parent().parent().addClass('selected');
		},
		selectToday: function(id){
			Default.selectNone(id);
			$('tr.verifiedToday input.checks', id).attr('checked', true).parent().parent().addClass('selected');
		},
		selectYesterday: function(id){
			Default.selectNone(id);
			$('tr.verifiedYesterday input.checks', id).attr('checked', true).parent().parent().addClass('selected');
		}
	}
})();

