function toggleValue(itm, val, pass) {
	if ($(itm).val() == val) {
		$(itm).val('');
	}
	if (!pass) {
		$(itm).blur(function() {
			if ($(itm).val() == '') {
				$(itm).val(val);
			}
		});
	} else {
		$(itm).blur(function() {
			if($(itm).val() == '') {
				$(itm).val(val).hide();
				$('#' + $(itm).attr('id') + '_mask').show();
			}
		});
	}
}

function reformatPassword(id) {
	$('#' + id).after('<input type="text" value="' + $('#' + id).val() +
		'" class="' + $('#' + id).attr('class') + '" id="' + $('#' + id).attr('id') +
		'_mask' + '" \/>');
	$('#' + id + '_mask').focus(function() {
		$(this).hide();
		$('#' + id).show().focus();
	});
	$('#' + id).hide();
}

function confirmAction(id, question, yesText, noText, token, offsetx, offsety, resultCallback) {
	if(typeof offsetx == 'undefined' || offsetx == null) {
		offsetx = -300;
	}
	if(typeof offsety == 'undefined' || offsety == null) {
		offsety = 0;
	}
	if($(id).attr('id')) {
		idrand = $(id).attr('id') + '_form';
	} else {
		idrand = 'confirmID_' + Math.ceil(Math.random() * 100000);
		$(id).attr('id', idrand);
		idrand += '_form';
	}
	$('.confirmBlock').hide();
	if(!$('#' + idrand).length) {
		$('body').append('<div class="confirmBlock" id="' + idrand + '"><div class="confirmBlock_h">' +
		'<form action="' + $(id).attr('href') + '" method="post">' +
		'<input type="hidden" name="token" value="' + token + '" \/>' +
		'<div class="confirmBlock_q">' + question + '<\/div>' +
		'<div class="confirmBlock_btns"><span class="confirmBlock_btns_y">' +
		'<input type="submit" name="yesBtn" value="' + yesText +'" \/><\/span>' +
		'<span class="confirmBlock_btns_n"><input type="button" name="noBtn" value="' + noText +
		'" id="' + idrand + '_no" \/><\/span><\/div>' + '</form><\/div><\/div>');
		$('#' + idrand).css({position: 'absolute', zIndex: 10000, left: ($(id).offset().left + offsetx) +
			'px', top: ($(id).offset().top + offsety) + 'px', display: 'block'});
		$('#' + idrand + '_no').click(function() {
			$('#' + idrand).hide();
			if (typeof resultCallback != 'undefined') {
				resultCallback(false);
			}
		});
	} else {
		$('#' + idrand).show();
	}
	return false;
}

function redirectOnChange(itm, url) {
	_type = $(itm).find('option:selected').attr('value');
	if(_type) {
		window.location = url + _type;
	}
	return false;
}

function handleBank(init) {
	id = $('#bankName option:selected').attr('value');
	if(id != 'custom') {
		$('#bankName_custom_inp_h').hide();
		$('#bankName_custom_inp_h input').attr('value', '');
		if(id) {
			$('#bankId').val(id.toString());
			$('#bankCode').val(banks[id.toString()]).attr('disabled', true).addClass('vero_disabled_default');
		} else {
			if(!init) {
				$('#bankCode').val('');
			}
			$('#bankCode').attr('disabled', false).removeClass('vero_disabled_default');
		}
	} else {
		$('#bankName_custom_inp_h').show();
		if(!init) {
			$('#bankCode').val('');
			$('#bankId').val('');
		}
		$('#bankCode').attr('disabled', false).removeClass('vero_disabled_default');
	}
}

function triggerRightsFilter() {
	window.location = window.location + ((window.location.href.indexOf('?') == -1) ? '?' : '&') +
		'filter=' + $('#filter option:selected').attr('value');
	return false;
}

function markSpecificTalbeRows(itm, rowsToMark, markClass, hoverClass) {
	rows = $(itm).find('tr');
	for(var i = 0; i < rowsToMark.length; i++) {
		$(rows[rowsToMark[i]]).addClass(markClass);
		$(rows[rowsToMark[i]]).mouseover(function() {
			$(this).addClass(hoverClass);
		});
		$(rows[rowsToMark[i]]).mouseout(function() {
			$(this).removeClass(hoverClass);
		});
	}
}

function generateUserName(target_id, name_id, surname_id) {
	fname = $('#' + name_id).attr('value').toLowerCase().replace(/\./g, '');
	pos = fname.indexOf(' ');
	if(pos != -1) {
		fname = fname.substr(0, pos);
	}
	lname = $('#' + surname_id).attr('value').toLowerCase().replace(/\./g, '');
	pos = lname.indexOf(' ');
	if(pos != -1) {
		lname = lname.substr(0, pos);
	}
	val = '';
	if(fname) {
		val += fname;
	}
	if(lname) {
		val += ((val) ? '.' : '') + lname;
	}
	val = val.substr(0, 30);
	$('#' + target_id).attr('value', val);
}

function generateParnerName(target_id, name_id, surname_id) {
	val = '';
	if($('#' + surname_id).attr('value')) {
		val += $('#' + surname_id).attr('value');
	}
	if($('#' + name_id).attr('value')) {
		val += ((val.length) ? ' ' : '') + $('#' + name_id).attr('value');
	}
	val = val.substr(0, 100);
	$('#' + target_id).attr('value', val);
}

function handlePartnerPopup(formId) {
	$('#partner_block_header_view_close').click(function() {
		$('#partner_block_header_view').remove();
	});
	$('#' + formId + ' #cancelButton').click(function() {
		$('#partner_block_header_view').remove();
		return false;
	});
	$('#' + formId).submit(function(e) {
		e.preventDefault();
		p = new Array();
		$('#' + formId + ' input').each(function() {
			if($(this).attr('type') == 'checkbox') {
				if($(this).attr('checked')) {
					p.push({name: $(this).attr('name'), value: $(this).attr('value')});
				}
			} else {
				p.push({name: $(this).attr('name'), value: $(this).attr('value')});
			}
		});
		$('#' + formId + ' select').each(function() {
			p.push({name: $(this).attr('name'), value: $(this).find('option:selected').attr('value')});
		});
		$('#' + formId + ' textarea').each(function() {
			p.push({name: $(this).attr('name'), value: $(this).attr('value')});
		});
		$.post($(this).attr('action'), p, function(html) {
			_top = $('#partner_block_header_view').css('top');
			_left = $('#partner_block_header_view').css('left');
			$('#partner_block_header_view').remove();
			$('body').append(html);
			$('#partner_block_header_view').css({top: _top, left: _left});
		});
		return false;
	});
}

/**
 * Handels popup main actions Close, Submit, Cancel
 * Remove innerBlock from mainBlock then opens
 *
 * @author Liutauras Rickus
 * @param formId
 * @param innerBlock
 * @param mainBlock
 * @return
 */
function handlePhonesPopup(formId, innerBlock, mainBlock) {
	// Set position center
	if( !($.browser.msie && $.browser.version < 7)) {
		$('#'+innerBlock).center(true);
		$('#'+mainBlock).css({zIndex: '1000'});
	}

	$('#partner_block_header_view_close').click(function() {
		$('#'+innerBlock).remove();
	});
	$('#' + formId + ' #cancelButton').click(function() {
		$('#'+innerBlock).remove();
	});
	$('#' + formId).submit(function() {
		p = new Array();
		$('#' + formId + ' input').each(function() {
			if($(this).attr('type') == 'checkbox') {
				if($(this).attr('checked')) {
					p.push({name: $(this).attr('name'), value: $(this).attr('value')});
				}
			} else {
				p.push({name: $(this).attr('name'), value: $(this).attr('value')});
			}
		});
		$('#' + formId + ' select').each(function() {
			p.push({name: $(this).attr('name'), value: $(this).find('option:selected').attr('value')});
		});
		$('#' + formId + ' textarea').each(function() {
			p.push({name: $(this).attr('name'), value: $(this).attr('value')});
		});
		$.post($(this).attr('action'), p, function(html) {
			$('#'+innerBlock).remove();
			$('#'+mainBlock).append(html);
		});
		return false;
	});
}

function markDuplicateTalbeRows(rowsToMark) {
	rows = $(_duplicateTableRows);
	for(var i = 0; i < rowsToMark.length; i++) {
		for(var j = 0; j < rowsToMark[i].length; j++) {
			row = $(rows[rowsToMark[i][j]]);
			if(!row.attr('id')) {
				row.attr('id', 'bankDuplicate_' + i + '_' + j);
			}
			for(var k = 0; k < rowsToMark[i].length; k++) {
				id = row.attr('id');
				if (typeof _duplicateListRows[id] == 'undefined') {
					_duplicateListRows[id] = new Array();
				}
				_duplicateListRows[row.attr('id')].push($(rows[rowsToMark[i][k]]));
			}
			row.mouseover(function() {
				id = $(this).attr('id');
				rows = _duplicateTableRows;
				for (var m = 0; m < _duplicateListRows[id].length; m++) {
					$(_duplicateListRows[id][m]).addClass(_duplicateHoverClass);
				}
			});
			row.mouseout(function() {
				id = $(this).attr('id');
				rows = _duplicateTableRows;
				for (var m = 0; m < _duplicateListRows[id].length; m++) {
					$(_duplicateListRows[id][m]).removeClass(_duplicateHoverClass);
				}
			});
		}
	}
}

function validateLanguageListSubmit(itm, msg) {
	_default = 0;
	_active = new Array();
	itm.find('input').each(function() {
		if($(this).attr('checked')) {
			if($(this).attr('name') == 'lang_default') {
				_default = $(this).attr('value');
			} else {
				if($(this).attr('name') == 'lang_active[]') {
					_active[$(this).attr('value')] = true;
				}
			}
		}
	});
	if(typeof _active[_default] != 'undefined') {
		return true;
	}
	_err = itm.parent().find('#index_form_error');
	$('div.general_success_block').remove();
	if(!_err.length) {
		itm.before('<div id="index_form_error" class="index_form_error">' + msg + '<\/div>');
	}
	return false;
}

function performLogin() {
	$('#loginButton').replaceWith('<input type="hidden" name="' + $('#loginButton').attr('name') +
		'" value="' + $('#loginButton').attr('value') + '" id="loginButton" \/>');
	$('#login').submit();
	return false;
}

function languageConfirm(text) {
	var agree = confirm(text);
	if(agree == true) {
		return true;
	} else {
		window.location = window.location;
	}
	return false;
}

function handleIEIssues() {
	if($.browser.version < 7) {
		$('#login #username_inp').css('padding-bottom', (parseInt($('#login #username_inp').css('padding-bottom')) - 2) + 'px');
	}
}

function deactiveGenerationControls(itm, fname) {
	$(itm).append('<input type="hidden" name="' + fname + '" value="1" \/>');
}

function timedRedirect(url, time) {
	window.setTimeout(function() {
		window.location = url;
	}, time);
}

/**
 * Drow select from ajax request
 * @author Liutauras Rickus
 *
 * @param partner_id
 * @param url
 * @param select_id
 * @param alltext
 * @return void
 */
function retrieveSelect(id, url, select_id, alltext) {
	jQuery.post(
		url ,
		{ filter_id: id},
		function(data) {
			proccess_select(eval(data), select_id, alltext);
		}
	);
}

/**
 * Drow select options from json array struct ('id' , 'name')
 * @author Liutauras Rickus
 *
 * @param data
 * @param select_id
 * @param alltext
 * @return void
 */
function proccess_select(data, select_id, alltext){
    var services = $("#"+select_id);
    $("#"+select_id+" > option").remove();

    if (alltext!= null) {
    	services.append(new Option(alltext, ""));
    }

    if (data != null) {
		$(data).each(function(i, o) {
			services.append(new Option(o.name, o.id));
		});
    }
}

/**
 * Draws a default warning window near the element that calls it
 *
 * @version 1.0
 * @author Robertas Leikus
 * @param {Object}|{String} inId - Element identifier
 * @param {String} inText - Message to show
 * @param {int} offsetx [optional] - Window offset X
 * @param {int} offsety [optional] - Window offset Y
 * @return bool
 */
function drawWarning(inId, inText, offsetx, offsety) {
	if(typeof inId == 'object') {
		inId = $(inId);
	} else {
		inId = $('#' + inId);
	}
	if(typeof offsetx == 'undefined') {
		offsetx = -300;
	}
	if(typeof offsety == 'undefined') {
		offsety = 0;
	}
	if(inId.attr('id')) {
		idrand = inId.attr('id') + '_warn';
	} else {
		idrand = 'warningID_' + Math.ceil(Math.random() * 100000);
		inId.attr('id', idrand);
		idrand += '_warn';
	}
	$('.warningBlock').hide();
	if(!$('#' + idrand).length) {
		$('body').append('<div class="warningBlock" id="' + idrand + '"><div class="warningBlock_h">' +
		'<div class="warningBlock_close"><a href="javascript:void(0);" onclick="$(this).parent().parent().parent().hide();">X<\/a><\/div>' + inText + '<\/div><\/div>');
		$('#' + idrand).css({position: 'absolute', zIndex: 10000, left: (inId.offset().left + offsetx) +
			'px', top: (inId.offset().top + offsety) + 'px', display: 'block'});
	} else {
		$('#' + idrand).show();
	}
	return false;
}

/**
 * TextArea max field length limiter
 *
 * @version 1.1 - 2010-01-12 11:50
 * @author Robertas Leikus
 * @param {Object}|{String} inId - Element identifier
 * @param {Int} inLimit - Max input length
 */
function maxLengthLimiter(inId, inLimit) {
	// Add the key press event
	if(typeof inId == 'object') {
		inId = $(inId);
	} else {
		inId = $('#' + inId);
	}
	$(inId).keypress(function(e) {
		//Get the event object (for IE)
		var ob = e || event;
		//Get the code of key pressed
		var keyCode = ob.keyCode;
		//Check if it has a selected text
		var hasSelection = document.selection ? document.selection.createRange().text.length > 0 : this.selectionStart != this.selectionEnd;
		//return false if can't write more
		return !($(this).val().length >= inLimit && (keyCode > 50 || keyCode == 32 || keyCode == 0 || keyCode == 13) && !ob.ctrlKey && !ob.altKey && !hasSelection);
	});
	//Add the key up event
	$(inId).keyup(function() {
		//If the keypress fail and allow write more text that required, this event will remove it
		if($(this).val().length > inLimit) {
			inId.val(inId.val().substr(0, inLimit));
		}
	});
}

function addFieldSetSpacerForIE(origin) {
	if(typeof origin == 'undefined') {
		_arr = $('fieldset legend');
	} else {
		_arr = $('#' + origin + ' fieldset legend')
	}
	_arr.each(function() {
		if(!$(this).parent().find('div.fieldset_sp').length) {
			$(this).after('<div class="fieldset_sp"><!-- --><\/a>');
		}
	});
}

var bank_change_fnc = function(){
    var value = $(this).val();
    var custom = $('#bankName_custom-label, #bankName_custom-element');
    var code = $('#bank_code');
    var code_block = $('#bank_code-label, #bank_code-element');

    if (value == 'custom') {
        custom.show();
        code_block.show();
        code.attr('readonly', false).removeClass('vero_disabled_default');
        //val('')
    } else if ( value == '' ){
        custom.hide();
        code_block.hide();
        code.attr('readonly', false).removeClass('vero_disabled_default');
        //val('')
    } else {
        code.val($.bank_codes[value]).attr('readonly',true).addClass('vero_disabled_default');
        custom.hide();
        code_block.show();
    }
}

/**
 * Mistinis objektukas dirbti su senderiais :)
 */
var clientSenders = {
	deleteId: null,
	editData: null,
	bind: function() {

		$("#newSender").click(function(e){
			e.stopPropagation();
			e.preventDefault();
			clientSenders.new();
			return false;
		});

		
		$(".sender .edit").live('click', function(e){
			e.stopPropagation();
			e.preventDefault();
			var data = {
				'text': $(this).closest('div').find('.name').text(),
				'id': $(this).closest("div").find('input[name="sender_id"]').val(),
			};
			clientSenders.edit(data);
		});
		
		$(".sender .delete").live('click', function(e){
			e.stopPropagation();
			e.preventDefault();
			clientSenders.delete($(this).closest("div").find('input[name="sender_id"]').val());
		});
	},
    edit: function(data) {
		clientSenders.editData = data;
        this._callDialog('edit');
    },
    delete: function(deleteId) {
    	clientSenders.deleteId = deleteId;
        this._callDialog('delete');
    },
    new: function(data) {
        this._callDialog('new');
    },
    _makeRequest: function(method, data, dialog) {
    	var data2send = {'method': method, 'data': data};
    	showLoadingMask("body");
        $.ajax({
        	url: sendersBlock.actionUrl,
        	type: 'post',
        	data: data2send,
        	success: function(jsonData) {
        	removeLoadingMask('body');
	        	try 
				{ 
					data = jQuery.parseJSON(jsonData);
					if(data.success) {
						dialog.dialog('close');
						if(method == 'new') {
							clientSenders._addData(data.html);
						} else if( method == "delete") {
							clientSenders._removeData(data2send.data);
						} else if (method == "edit") {
							clientSenders._refreshData(data2send.data.text, data2send.data.id);
						}
					}
				} catch (e) {
					alert('We are having some problems');
				} 
        	}
        });
    },
    _addData: function(html) {
    	$("#sendersContent").append(html);
    },
    _removeData: function(id) {
    	$("#sender_data_"+id).remove();
    },
    _refreshData: function(text, id) {
    	$("#sender_data_"+id).find(".name").text(text);
    },
    // Kukli funkcija eilutes ilgiui tikrinti (siuntejui)
    _checkSize: function(line) {
    	if(line.length >= 4 && line.length <=11 ) {
    		return true;
    	} else {
    		return false;
    	}
    },
    _callDialog: function(view) {
    	var dialog = $('<div class="partner_block_itm sendersDialog"></div>');
    	var buttons = {};
    	// Butonu aprasymas
    	if(view == "edit" || view=="new") {
    		dialog.append('<span class="title">'+sendersBlock.sender+'</span>');
    		dialog.append('<input type="text" class="senderText" name="senderText">');
    		dialog.append('<span class="small">'+sendersBlock.senderLimit+'</span>');
    		if (view == "edit") {
    			dialog.find(".senderText").val(clientSenders.editData.text);
    		}
    		buttons[sendersBlock.buttons.save] = function() {
    			var line = $('input[name="senderText"]').val();
    			if(clientSenders._checkSize(line)) {
    				if(view == "edit") {
    					line = {
    						'text': line,
    						'id': clientSenders.editData.id
    					};
    				}
    				clientSenders._makeRequest(view, line, $(this));
    			} else {
    				alert(sendersBlock.alertBadSize);
    			}
    		};
    		buttons[sendersBlock.buttons.cancel] = function() {
    			$( this ).dialog( "close" );
    		};
    	} else if (view == "delete") {
    		dialog.append('<h3>'+sendersBlock.deleteConfirm+'</h3>');
    		buttons[sendersBlock.buttons.ok] = function() {
    			clientSenders._makeRequest(view, clientSenders.deleteId, $(this));
    		};
    		buttons[sendersBlock.buttons.no] = function() {
    			$( this ).dialog( "close" );
    		};
    	}
    	
    	var data = {
			'title': sendersBlock.titles[view],
			'resizable': false,
			'buttons': buttons
    	};
    	
    	dialog.dialog(data).bind( "dialogclose", function(event, ui) {
        	// Naikinam ikalcius kad nesidubliuotu
    		$(this).remove();
    	});
    }
};



function removeLoadingMask(selector){
    $(window).unbind('resize.loadingMask');
    $(selector).find('#mask').remove();
}

function showLoadingMask(selector) {

    removeLoadingMask(selector);
    var target = $(selector);

    target.append('<div id="mask"><img src="/images/loadingAnimation.gif" alt="Please wait..." /></div>');
    var mask = $('#mask');

    mask.css({
        'position': 'absolute',
        'z-index': '19000',
        'background-color': '#ccc',
        'filter': 'alpha(opacity=75)',
        'opacity': 0.75,
        '-moz-opacity' : 0.75,
        'text-align': 'center'
    });

    var borders = ['-moz-border-radius-topleft', '-moz-border-radius-topright', '-moz-border-radius-bottomleft', '-moz-border-radius-bottomright'];
    for(var b in borders){
        mask.css(borders[b], target.css(borders[b]));
    }

    _setLoadingMaskDimensions(target, mask);
    $(window).bind('resize.loadingMask', function() {
        _setLoadingMaskDimensions(target, mask);
    });
}

function _setLoadingMaskDimensions($target, $mask) {
    var inner = $target.css('position') == 'absolute';

    var targetWidth = $target.outerWidth();
    var targetHeight = $target.outerHeight();
    if($target.get(0).nodeName == 'BODY') {
        targetHeight = document.documentElement.scrollHeight;
    }

    $mask.css({
        left: (inner ? 0 : $target.position().left),
        top: (inner ? 0 : $target.position().top),
        width: targetWidth,
        height: targetHeight
    });

    
    var top = parseInt($target.height()/2);
    var img = $mask.find('img');
    if ($target.attr('tagName') == 'BODY') {
    	var originalTop = top;
    	$(window).scroll(function(){
    		img.css('margin-top', originalTop + $(window).scrollTop());
    	});
    	top = top + $(window).scrollTop();
    }
    img.css({
        'margin-top': top
        //  jei butu geras img :) margin-top tada reik dalint ish 4
        //'width' : parseInt(target.outerWidth()/2),
        //'height' : parseInt(target.outerHeight()/2)
    });
}
