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" />').appendTo(form);
		submit.click();
	} else {
	}
	
	return false;
}

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,
		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);
	
	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 ($(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) { 
							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) {							
							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]);
		}
		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(/\?/)) {
			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.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();
}



