function importScript(url){
    var tag = document.createElement("script");
    tag.type="text/javascript";
    tag.src = url;
    document.head.appendChild(tag);
}

function sendPrompt(options) {
    options = $.extend({
	name: 'string',
	method: 'post',
	type: 'noAjax',
	allowEmptyValue: false
    }, options);
    if ((string = prompt(options.title, '')) || options.allowEmptyValue) {
    } else {
	return false;
    }
    if (options.type == 'noAjax') {
	var form=$('<form>').appendTo('body');
	$input=$('<input type="hidden" name="'+options.name+'" value="'+string+'" />').appendTo(form);
	form.attr('method', options.method);
	form.attr('action', options.url);
	submit = $('<input type="submit" style="visibility: hidden;" />').appendTo(form);
	submit.click();
    } else {
    }
	
    return false;
}

function datePicker(x) {
    
    $(x).datepicker({
	dateFormat: 'yy-mm-dd', 
	monthNames: ['január','február','március','április','május','június','július','augusztus','szeptember','október','november','december'],
	firstDay: 1, 
	navigationAsDateFormat: true,
	changeYear: true,
	dayNamesMin: ['V', 'H', 'K', 'Sz', 'Cs', 'P', 'Sz'],
	dayNamesMin: ['Va', 'Hé', 'Ke', 'Sze', 'Csü', 'Pé', 'Szo']
    });    
}

function rgb2hex(rgb) {
    if (  rgb.search("rgb") == -1 ) {
	return rgb;
    } else {
	rgb = rgb.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+))?\)$/);
	function hex(x) {
	    return ("0" + parseInt(x).toString(16)).slice(-2);
	}
	return "#" + hex(rgb[1]) + hex(rgb[2]) + hex(rgb[3]); 
    }
}

var uniqueIdCounter = 0;
function generateUniqueId() {
    uniqueIdCounter++;
    return 'UID__'+uniqueIdCounter;
}

function placeholder(options) {
    if (navigator.userAgent.toLowerCase().indexOf('chrome') > -1 || navigator.userAgent.toLowerCase().indexOf('firefox/4.0')) return;
    options = jQuery.extend({
	color: '#ccc'
    }, options);
		
    function hidePlaceholderText(input) {
	if ($(input).get(0).tagName.toLowerCase() == 'span') {
	    $(input).css({
		display: 'none'
	    });
	    $('#'+$(input).attr('inputId')).focus();
	} else {
	    $('#'+$(input).attr('placeholderTextId')).css({
		display: 'none'
	    });	
	}
    }
	
    function showPlaceholderText(input) {
	if ($(input).val() == '') {
	    $('#'+$(input).attr('placeholderTextId')).css({
		display: 'block'
	    });
	}
    }
	
    var textInputs = $('input');
    $(textInputs).each(function() {
	var input = $(this);
	if (input.attr('placeholder') && !input.attr('placeholderTextId')) {	//ha az input-nak van placeholder attributuma
	    var placeholderTextId = generateUniqueId();
	    input.attr('placeholderTextId', placeholderTextId);
	    placeholderText = $('<span>'+input.attr('placeholder')+'</span>').insertBefore(input);
	    if (input.attr('id')) {
		inputId = input.attr('id');
	    } else {
		inputId = generateUniqueId();			
		input.attr('id', inputId);	
	    }
	    placeholderText.attr('inputId', inputId );
	    placeholderText.attr('id', placeholderTextId);
	    placeholderText.css({
		color: options.color,
		position: 'absolute',
		'z-index': 9000,
		'padding-top': input.css('padding-top'),
		'padding-left': input.css('padding-left'),
		'margin-left': input.css('margin-left'),
		'margin-top': input.css('margin-top')
	    });
			
	    input.focus(function() {
		hidePlaceholderText(this)
		});
	    input.focusout(function() {
		showPlaceholderText(this)
		});
	    placeholderText.click(function() {
		hidePlaceholderText(this)
		});
			
	    //			if (input.val() || $('#'+inputId+':focus').length != 0) {
	    input.blur();
	    if (input.val()) {
		placeholderText.css({
		    display: 'none'
		});
	    }
	}

    });	
}



function callPHP(array) {
    if (typeof(array[0][0]) == 'object') array = array[0];

    var options = array[0];
	
    options = jQuery.extend({
	before: function(){},
	confirm: false,
	data: false,
	form: false,
	target: false,
	'statusbar': '#statusbar',
	'statusOnBegin': 'Kérés folyamatban...',
	'statusOnEnd': 'Kész',
	type: 'post',
	reEnableForm: false,
	disableForm: true,
	showLoader: true,
	success: function() {},
	insertionType: 'rewrite',
	error: function(d1,d2,d3) {
	    //$.prettyLoader.hide();
	    if (options.target) $(options.target).fadeTo(200, 1, function(){
		if ($.browser.msie)this.style.removeAttribute('filter');
	    });
	    //alert(d1.responseText);
	    closeLoader();
	}
    },options);
    if ($(options.statusbar)) {
	$(options.statusbar).html(options.statusOnBegin);
    }
    options.before();
    if ((options.confirm && confirm(options.confirm)) || options.confirm == false) {
	var newArgs = Array();
	for (var i = 1; i < array.length; i++) {
	    newArgs.push(array[i]);
	}
	var params = new Object;
	if (options.data) {
	    var o = options.data;
	    var p, v;
	    var a = Array();
	    for(p in o) {
		var b = Array();
		v = o[p];
		b.push(p);
		b.push(o[p]);
		params[p]=o[p];
	    }
	}
	if (options.form){

	    for (var i=0; i<options.form['0'].length; i++) {
		//				if (($(options.form['0'][i]).attr('type') == 'checkbox' && $(options.form['0'][i]).attr('checked') === false) || ($(options.form['0'][i]).attr('type') == 'radio' && $(options.form['0'][i]).attr('checked') === false)) {
		//					if ($(options.form['0'][i]).attr('ajaxMode') == 'true/false') {
		//						if ($(options.form['0'][i]).attr('checked') === false) {
		//							params[$(options.form['0'][i]).attr('name')] = 'false';
		//						} else {
		//							params[$(options.form['0'][i]).attr('name')] = 'true';
		//						}
		//					} else {
		////						if ($(options.form['0'][i]).attr('checked') === false) {
		////						    if ($(options.form['0'][i]).attr('name').indexOf('[]')) {
		////							
		////						    } else {
		////							
		////						    }
		////							params[$(options.form['0'][i]).attr('name')] = 'false';
		////						} else {
		////							params[$(options.form['0'][i]).attr('name')] = 'true';
		////						}
		//					    console.log(1);
		//					}
		//				} else {
		//					if ($(options.form['0'][i]).attr('ajaxMode') == 'true/false') {
		//						params[$(options.form['0'][i]).attr('name')] = 'true';
		//					} else {
		if (typeof($(options.form['0'][i]).attr('name')) != 'undefined') {
		    if ($(options.form['0'][i]).attr('name').indexOf('[]') != -1) {
			var name = $(options.form['0'][i]).attr('name').substring(0,$(options.form['0'][i]).attr('name').indexOf('[]'));

			var arr = params[name];
			if (typeof(arr) == 'undefined') var arr = new Array();


			if ($(options.form['0'][i]).attr('type') == 'checkbox' || $(options.form['0'][i]).attr('type') == 'radio') {
			    if ($(options.form['0'][i]).attr('type') == 'checkbox' && ($(options.form['0'][i]).attr('checked') === true) || $(options.form['0'][i]).attr('checked') === 'checked') {
				arr.push($(options.form['0'][i]).val());
			    }
			    if ($(options.form['0'][i]).attr('type') == 'radio' && $(options.form['0'][i]).attr('checked') === true) {
				arr.push($(options.form['0'][i]).val());
			    }
			} else {
			    arr.push($(options.form['0'][i]).val());
			}
			params[name] = arr;
		    } else {
			if ($(options.form['0'][i]).attr('type') == 'radio' || $(options.form['0'][i]).attr('type') == 'checkbox') {
			    if ($(options.form['0'][i]).attr('checked') === true || $(options.form['0'][i]).attr('checked') === 'checked') {
				params[$(options.form['0'][i]).attr('name')] = $(options.form['0'][i]).val();
			    }
			} else {
			    params[$(options.form['0'][i]).attr('name')] = $(options.form['0'][i]).val();
			}
		    }
		}
	    //					}
	    //				}
	    }
	    if (options.disableForm) disableFormElements(options.form[0]);
	}

//	console.log(1);
//	console.log(params);
//	console.log(1);
	if (options.target) $(options.target).fadeTo(200, 0.5);
	//$.prettyLoader.show(3000);
	params['PHPSESSID'] = getCookie('PHPSESSID');
	params['callPHP'] = true;
	if (options.showLoader) createLoader();
	if (options.url.search(/\?/)!=-1) {
	    options.url = options.url+'&_time='+Number(new Date())
	} else {
	    options.url = options.url+'?_time='+Number(new Date())
	}
	$.ajax({
	    url: options.url,
	    type: options.type,
	    data: params,
	    error: options.error,
	    success: function(data) {
		if (options.showLoader) closeLoader();
		//$.prettyLoader.hide();
		if (options.target) $(options.target).fadeTo(200, 1, function(){
		    if ($.browser.msie)this.style.removeAttribute('filter');
		});
		try{
		    var obj = Object;
		    if (data == '') data = '{}';
		    obj = $.parseJSON(data);
		    var m = jQuery.extend({
			message: false,
			type: 'information'
		    }, obj);
		    if (m.message) {
			alert(m.message);
		    }
		}catch(err){
		    obj = data;
		}
		if (options.form && options.reEnableForm) {
		    enableFormElements(options.form[0]);
		}
		if (typeof(obj) == 'xml') obj = obj.toString();
		options.success(obj);

		if ($(options.statusbar)) {
		    $(options.statusbar).html(options.statusOnEnd);
		    setTimeout(function() {$(options.statusbar).html('');}, 2000);
		}

		if (options.target) {
		    if (options.insertionType == 'append') {
			$(options.target).each(function(){
			    $(this).append(obj);
			});
		    } else { 
			$(options.target).each(function(){
			    $(this).html(obj);
			});
		    }  			
		//					createPicker();
		//					createPaginationTable();
		}
		if (newArgs.length) {
		    callPHP(newArgs);
		} else {
		    savePreviousAjaxRequest = true;
		}
		placeholder();
	    }
	});
    }
    return false;
}

function getCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
	var c = ca[i];
	while (c.charAt(0)==' ') c = c.substring(1,c.length);
	if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}


function disableFormElements(form){
    if (form.elements) for(i=0; i<form.elements.length; i++)
	form.elements[i].disabled = true;
}
function enableFormElements(form){
    if (form.elements) for(i=0; i<form.elements.length; i++)
	form.elements[i].disabled = false;
}

function createLoader() {
    if ($('#ui-loader').length == 0) {
	$('<div id="ui-loader"></div>').appendTo('body');
    }
}

function closeLoader() {
    $('#ui-loader').remove();
}


function redirect(options) {
    window.location.href = options.url;
}

Array.prototype.has=function(v){
    for (i=0; i<this.length; i++){
	if (this[i]==v) return true;
    }
    return false;
}
$.prototype.imagePreview=function(){
    $(this).bind('mousemove', function(e) {
	console.log(e.pageX);
	console.log(e.pageY);
    });
}

function addCommas(nStr)
{
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}

function resetForm(id) {
    $(':input','#'+id)
     .not(':button, :submit, :reset, :hidden')
     .val('')
     .removeAttr('checked')
     .removeAttr('selected');
}
