jQuery.ajaxSetup({
	type: "POST"
});
var pickerOptsCalendar = {
	dateFormat: "yy-mm-dd",
	firstDay: 1,
	dayNamesMin: ["Do", "Lu", "Ma", "Mi", "Ju", "Vi", "Sa"],
	monthNames: ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"],
	monthNamesShort: ["Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"],
	changeMonth: true,
	changeYear: true
};
/**
 * Función que ejecuta un llamado para mostrar un pedido, lo que viene esta en HTML
 *
 * @param {String} direccion Direccion a la que se apunta
 * @param {String} data Datos del form
 * @param {Function} after Funcion que se ejecutará después
 */
function ajaxFW_normal(direccion, data, after) {
	jQuery.ajax({
		url: direccion,
		data: data,
		success: function(html) {
			jQuery('#content').hide('fast',
				function() {
					jQuery('#content').html(html);
					after();
					jQuery('input.date').datepicker(pickerOptsCalendar);
					file_uploads();
					decorate_tables();
				}
			).show('fast', function(){}
			);
		}
	});
}



/**
 * Función para activar las descargas via Flash
 */
function file_uploads() {
	jQuery('.file_upload').each(
	function() {
		id_button = jQuery(this).attr('id');
		button = jQuery(this);
		//guardamos info en el title
		title = jQuery(this).attr('title');
		jQuery(this).attr('title','');
		// TODO Cambiar esto por el parser de json, no me funcionó :S
		eval('var info_upload='+title);
		//info_upload = json_parse(asdf.toString());
		new qq.FileUploader({
			element: document.getElementById(id_button),
			action: base_url+info_upload.url_upload,
			allowedExtensions: ['jpg','jpeg','gif','png'],
			multiple: false,
			//name: 'Filedata',
			params: {'uploader_id':id_button},
			//autoSubmit: true,
			responseType: "json",
			onSubmit: function(id, fileName){},
			onProgress: function(id, fileName, loaded, total){},
			onComplete: function(id, fileName, responseJSON){
				if (responseJSON.success == true) {
					jQuery('#'+responseJSON.id).html();
					father = jQuery('#' + responseJSON.id).parent();
					father.find('input[name="'+info_upload.field_id+'"]').val(responseJSON.file_real_name);
					father.find('#imagen_subida').remove();
					father.append('<img id="imagen_subida" src="'+responseJSON.file_real_name+'" width="200"/>');
				}
			},
			onCancel: function(id, fileName){}
		});
	});
}

/**
 * Función de que hace un pedido, lo que viene esta en formato JSON
 *
 * @param {String} direccion
 * @param {String} data
 * @param {Function} after
 * @param {Object} form
 */
function ajaxFW(direccion, data, after, form)
{
	jQuery.ajax({
		url: direccion,
		data: data,
		success: function(html) {
			jQuery('#' + form).hide('fast', function() {
				jQuery("#error_" + form).hide('fast').empty();
				a = JSON.parse(html);
				if (a.errores == 'no') {
					if(a.keep_form == true){
						jQuery("#error_" + form).removeClass('ui-state-error').html('<span class="ui-icon ui-icon-check" style="float: left; margin-right: 0.3em;"></span>' + a.resultado).show('fast', function() {});
						if(jQuery("#" + form+' input[name="id"]').length){
							jQuery("#" + form+' input[name="id"]').val(a.id);
						} else {
							jQuery("#" + form).append('<input type="hidden" val="'+a.id+'" name="id"/>');
						}
					} else {
						if(!jQuery("#" + form).hasClass('ui-state-error')) {jQuery("#" + form).removeClass('ui-state-error')}
						jQuery("#" + form).html(a.resultado);
					}
				} else {
					jQuery("#error_" + form).html('<span class="ui-icon ui-icon-alert" style="float: left; margin-right: 0.3em;"></span>' + a.errores).show('fast', function() {});
				}
			}).show('fast', function() {
				after();
			});
		}
	});
}

/**
 * Espera a que otros submit (HOLD ó FILE) acaben
 * 
 * @param {String} nombre_funcion Nombre de la función
 * @param {String} form_id ID del form
 */
var t;
function waitOtherSubmit(nombre_funcion, form_id) {
	var countHold = 0;
	jQuery("#" + form_id + " input.hold").each(function(){
		countHold += 1
	});
	var countStop = 0;
	if (countStop > 0) {
		return false;
	}
	//si la cuenta es mayor a 1, entonces reejecutamos la accion
	if (countHold > 0) {
		t = setTimeout(nombre_funcion + "('" + form_id + "')", 500);
		return false;
	} else {
		return true;
	}
}
/**
 *
 * @param {String} nombre_funcion Nombre de la función
 * @param {String} tr_id ID del TR
 * @param {String} id
 */
function waitOther(nombre_funcion, tr_id, id) {
	//contamos los form's que siguen en hold ya que debemos esperarlos
	var countHold = 0;
	jQuery("#" + tr_id + " input.hold").each(function() {
		countHold += 1
	});
	//si se para por un error al subir un archivo (IMPLEMENTAR!!!) entonces para todo
	if (jQuery("#" + tr_id).hasClass('stop_it')) {
		return false;
	}
	if (countHold > 0) { //si la cuenta es mayor a 1, entonces reejecutamos la accion
		t = setTimeout(nombre_funcion + "('" + tr_id + "','" + id + "')", 500);
		return false;
	} else {
		return true;
	}
}

function ajaxFWTable(direccion, data, after, form){
	jQuery.ajax({
		url: direccion,
		data: data,
		success: function(html) {
			jQuery("#error_" + form).remove();
			a = JSON.parse(html);
			if (a.errores == 'no') {
				jQuery("#" + form).html(a.resultado);
			} else {
				celdas = 0;
				jQuery('#' + form + ' td').each(function() {
					celdas++;
				});
				er = '';
				jQuery("#" + form).before('<tr id="error_' + form + '"><td colspan="' + celdas + '">' + er + a.errores + '</td></tr>');
			}
			after();
		}
	});
}

function getHash() {
	var hash = window.location.hash;
	return hash.substring(1); // remove #
}

function stripHTML(oldString) {
	var newString = "";
	var inTag = false;
	for (var i = 0; i < oldString.length; i++) {
		if (oldString.charAt(i) == '<') 
			inTag = true;
		if (oldString.charAt(i) == '>') {
			if (oldString.charAt(i + 1) == "<") {
			//dont do anything
			} else {
				inTag = false;
				i++;
			}
		}
		if (!inTag) 
			newString += oldString.charAt(i);
	}
	return newString;
}

function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
}

function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function fw_cessil_cancel() {
	window.location = base_url;
}

function bloquear() {
	myDiv = document.createElement("div");
	myDiv.id = 'blocky';
	jQuery(myDiv).addClass("bloque_negro");
	html = '<div style="margin:220px auto;padding:10px;background:white;width:120px;">'
	html += '<img src="/capacitacion/cursos/images/loadinfo.net.gif"/> Cargando ...';
	html += '</div>'
	myDiv.innerHTML = html;
	jQuery(myDiv).hide();
	jQuery("body").append(myDiv);
	jQuery(myDiv).fadeIn("fast");
}
function desbloquear() {
	jQuery("#blocky").fadeOut('fast',function(){
		jQuery("#blocky").remove();
	});
}

var tablas = new Array();
var gaiSelected =  new Array();

function decorate_tables(){

	jQuery(".boton_a").each(
		function(){
			jQuery(this).button({
				icons: {
					 primary: jQuery(this).attr('rel')
				}
		  })
		}
	)
		
	jQuery('.tablesorter').each(
		function() {
			var id = new String (this.id);
			//Para que no podamos ordernar por la última columna (Accion)
			//Ni tampoco la primera
			var columnas = new Array();
			for(i=1;i<jQuery(this).find('th').length-1;i++){
				columnas[i] = null
			}
			columnas[jQuery(this).find('th').length-1] = {
				"bSortable": false
			};
			/*columnas[0] = {
				"bSortable": false
			};*/
			gaiSelected[id] = new Array();
			tablas['tabla_'+id] = jQuery('#' + id).dataTable({
				"oLanguage": {
					"sLengthMenu": "Mostrar _MENU_ filas por página",
					"sZeroRecords": "No hay entradas",
					"sInfo": "_START_ - _END_ de _TOTAL_ filas",
					"sInfoEmtpy": "Mostrando 0 - 0 de 0 filas",
					"sInfoFiltered": "(filtered from _MAX_ total records)",
					"sSearch": "Buscar en todos los campos: ",
					'oPaginate': {
						'sFirst': "Primero",
						'sPrevious': "Anterior",
						'sNext': "Siguiente",
						'sLast': "Último"
					}
				},
				"sPaginationType": "full_numbers",
				"bJQueryUI": true,
				"bProcessing": true,
				//"bServerSide": true,
				//"sAjaxSource": "/welcome_1/more_rows",
				"aoColumns": columnas,
				'iDisplayLength':15,
				'iDisplayEnd':15,
				"fnRowCallback": function( nRow, aData, iDisplayIndex ) {
					/*if ( jQuery.inArray(aData[0], gaiSelected[id] ) != -1 ) {
						jQuery(nRow).addClass('row_selected');
					}*/
					//console.log(aData);
					//console.log(iDisplayIndex);
					return nRow;
				}
			});
			jQuery('#'+id +' tbody tr input[type="checkbox"]').live('click', function () {
				var tr = jQuery(this).parent().parent().get(0);
				var aData = tablas['tabla_'+id].fnGetData( tr );
				var iId = aData[0];

				if ( jQuery.inArray(iId, gaiSelected[id] ) == -1 ){
					gaiSelected[id] [gaiSelected[id] .length++] = iId;
				}
				else
				{
					gaiSelected[id]  = jQuery.grep(gaiSelected[id] , function(value) {
						return value != iId;
					} );
				}

				jQuery(this).parent().parent().toggleClass('row_selected');
			} );


		}
		);
}


function fnGetSelected( oTableLocal ){
	var aReturn = new Array();
	var aTrs = oTableLocal.fnGetNodes();

	for ( var i=0 ; i<aTrs.length ; i++ )
	{
		if ( jQuery(aTrs[i]).hasClass('row_selected') )
		{
			aReturn.push( aTrs[i] );
		}
	}
	return aReturn;
}

/*Para que no se agolpe la búsqueda*/
var count = 0;
function busqueda_por_columna(tabla_name,oInput,index){
	count = count+1;
	setTimeout("busqueda_por_columna_go("+count+",'"+tabla_name+"','"+oInput.value+"',"+index+")",500);
}

function busqueda_por_columna_go(currCount,tabla_name,sValue,index){
	if(currCount == count)	{
		count = 0;
		tablas[tabla_name].fnFilter( sValue, index);
	}
}

function borrar_filas_usuario(key_tabla){
	var anSelected = fnGetSelected( tablas[key_tabla] );
	console.log(anSelected);
}

function IsNumeric(input)
{
   return (input - 0) == input && input.length > 0;
}


function getUrlVars(){
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}
function getUrlVarsHash(){
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('#') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}

tiny_mce_options = {
				script_url : base_url+'js/tiny_mce/tiny_mce.js',
				theme : "advanced",
				plugins : "table",
				theme_advanced_buttons1 : ",bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,formatselect,forecolor,backcolor,",
				theme_advanced_buttons2 : ",paste,pastetext,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code",
				theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid",
				theme_advanced_toolbar_location : "top",
				theme_advanced_toolbar_align : "left",
				theme_advanced_statusbar_location : "bottom",
				theme_advanced_resizing : true,
				relative_urls : false,
				//remove_script_host : false,
				//document_base_url : "http://nuevaempresa.com.bo/",
				convert_urls : false
				
	 }
	 
	 
	 
