
//utf8 handling
function encode_utf8(s)
{
	return unescape(encodeURIComponent(s));
}

function decode_utf8(s)
{
	return decodeURIComponent(escape(s));	
}


function utf_8_decode (sin)
{
function octet_count (c)
{
var octet_counts = [
/* c0 */ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
/* d0 */ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
/* e0 */ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
/* f0 */ 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 0, 0
];

return c < 128 ? 1 :
c < 192 ? 0 : octet_counts [(c&255)-192];
}

var octet0_masks = [ 0x00,0x7f,0x1f,0x0f,0x07,0x03,0x01 ];
var sout = "";
var add;
for (var si = 0; si < sin.length; si += add) {
var c = sin.charCodeAt(si);
add = octet_count(c);
if (si+add <= sin.length) {
var u = c & octet0_masks[add];
var ci;
for (ci = 1; (ci < add) && ((sin.charCodeAt(si+ci)&0xc0) == 0x80);
ci++)
u = (u<<6) | (sin.charCodeAt(si+ci) & 0x3f);
if (ci == add) {
sout += String.fromCharCode (u);
} else {
// Invalid UTF-8 sequence. Should probably throw() instead.
sout += "\ufffd"; // Replacement character.
add = 1;
}
} else {
// Invalid UTF-8 sequence. Should probably throw() instead.
sout += "\ufffd"; // Replacement character.
add = 1;
}
}

return sout;
}


// Popup de info de objetos
$j(function () {
  $j('.bubbleInfo').each(function () {
    // options
    var distance = 10; //5
    var time = 250;
    var hideDelay = 500; //100

    var hideDelayTimer = 10;

    // tracker
    var beingShown = false;
    var shown = false;
    
    var trigger = $j('.trigger', this);
    var popup = $j('.popup', this).css('opacity', 0);

    // set the mouseover and mouseout on both element
    $j([trigger.get(0), popup.get(0)]).mouseover(function () {
      // stops the hide event if we move from the trigger to the popup element
      if (hideDelayTimer) clearTimeout(hideDelayTimer);

      // don't trigger the animation again if we're being shown, or already visible
      if (beingShown || shown) {
        return;
      } else {
        beingShown = true;

        // reset position of popup box
        popup.css({
/*
			 top: -100,
          left: -33,
*/
		  top:41,
		  left:315,
          display: 'block' // brings the popup back in to view
        })

        // (we're using chaining on the popup) now animate it's opacity and position
        .animate({
          top: '-=' + distance + 'px',
          opacity: 1
        }, time, 'swing', function() {
          // once the animation is complete, set the tracker variables
          beingShown = false;
          shown = true;
        });
      }
    }).mouseout(function () {
      // reset the timer if we get fired again - avoids double animations
      if (hideDelayTimer) clearTimeout(hideDelayTimer);
      
      // store the timer so that it can be cleared in the mouseover if required
      hideDelayTimer = setTimeout(function () {
        hideDelayTimer = null;
        popup.animate({
          top: '-=' + distance + 'px',
          opacity: 0
        }, time, 'swing', function () {
          // once the animate is complete, set the tracker variables
          shown = false;
          // hide the popup entirely after the effect (opacity alone doesn't do the job)
          popup.css('display', 'none');
        });
      }, hideDelay);
    });
  });

	//Drag&Drop
		//Defino draggables
	$j(".draggable").draggable({ handle: ".drag", helper: "clone", opacity: 0.40 });
	
		//Droppables
	var objetoID; //id del objeto que se draggea
	var columna; //col-idColumna, definida en la clase del draggable y en el id del droppable
	var template=$j('#template').val();
	var reinstancia='';
	//var idxNota='';
	
	$j('div[@id^="col-"]').each(function() {
		columnaID=$j(this).attr("id");
		if(columnaID.length>0){ acceptClass="."+columnaID; }else{ 	acceptClass=false; }
		$j(this).droppable({
			 accept: acceptClass,
			 activeClass: "droppable-active", 
			 hoverClass : "droppable-hover",
			 drop: function(ev, ui) {
				 col=$j(this).attr("id");
				 col=col.substr(4);
				 
				 objetoID=$j(ui.draggable).attr("id");
				 objetoID=objetoID.substr(6);
				
				 if(isNaN(objetoID)){ 
						objetoID=objetoID.substr(2); 
						reinstancia='&reinstancia=true';
				}
				 
				 $j.ajax({ type: "GET", url: "admin/adminbar/insertarObjeto.php", data: "objetoId="+objetoID+"&template="+template+"&columna="+col+reinstancia,
					success: function(msg){
						if(isNaN(msg)){
							alert("Error al insertar el objeto "+msg);
						}else{
							window.location.href="index.php?p="+template+"#objeto_"+msg; location.reload(true);
						}
					}
				 });
			 } 
		});
	});
	
	/* ------------------------------- */
	/* ----- CAMBIO TAMAÑO TEXTO ----- */
	/* ------------------------------- */
  // Increase Font Size
  $j("#mas").click(function(){
    var currentFontSize = $j("#intNota p").css('font-size');
	 var currentFontSizeH2 = $j("h2#tituloNota").css('font-size');
    var currentFontSizeNum = parseFloat(currentFontSize, 10);
	 var currentFontSizeNumH2 = parseFloat(currentFontSizeH2, 10);
    var newFontSize = currentFontSizeNum+2;
	 var newFontSizeH2 = currentFontSizeNumH2+2;
    $j("#intNota p").css('font-size', newFontSize);
	 $j("#intNota strong").css('font-size', newFontSize);
	 $j("#intNota span").css('font-size', newFontSize);
	 $j("h2#tituloNota").css('font-size', newFontSizeH2);
    return false;
  });
  // Decrease Font Size
  $j("#menos").click(function(){
    var currentFontSize = $j("#intNota p").css('font-size');
    var currentFontSizeNum = parseFloat(currentFontSize, 10);
    var newFontSize = currentFontSizeNum-2;
	 var currentFontSizeH2 = $j("h2#tituloNota").css('font-size');
    var currentFontSizeNumH2 = parseFloat(currentFontSizeH2, 10);
    var newFontSizeH2 = currentFontSizeNumH2-2;
    $j("h2#tituloNota").css('font-size', newFontSizeH2);
	 $j("#intNota p").css('font-size', newFontSize);
	 $j("#intNota strong").css('font-size', newFontSize);
	 $j("#intNota span").css('font-size', newFontSize);
    return false;
  });
  

}); //cierre function jquery onload


function Get_Cookie( check_name) {
	// first we'll split this cookie up into name/value pairs
	// note: document.cookie only returns name=value, not the other components
	var a_all_cookies = document.cookie.split( ';' );
	var a_temp_cookie = '';
	var cookie_name = '';
	var cookie_value = '';
	var b_cookie_found = false; // set boolean t/f default f
	
	for ( i = 0; i < a_all_cookies.length; i++ )
	{
		// now we'll split apart each name=value pair
		a_temp_cookie = a_all_cookies[i].split( '=' );
		
		
		// and trim left/right whitespace while we're at it
		cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');
	
		// if the extracted name matches passed check_name
		if ( cookie_name == check_name )
		{
			b_cookie_found = true;
			// we need to handle case where cookie has no value but exists (no = sign, that is):
			if ( a_temp_cookie.length > 1 )
			{
				//cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
				cookie_value = utf_8_decode(unescape(a_temp_cookie[1].replace(/^\s+|\s+$/g, ''))); //usamos esto para leer nombres en JP
			}
			// note that in cases where cookie is initialized but no value, null is returned
			return cookie_value;
			break;
		}
		a_temp_cookie = null;
		cookie_name = '';
	}
	if ( !b_cookie_found )
	{
		return null;
	}
}

function Set_Cookie(name,values,expires,path,domain,secure){

var today = new Date();
today.setTime( today.getTime() );

if ( expires )
{
expires = expires * 1000 * 60 * 60 * 24;
}
var expires_date = new Date( today.getTime() + (expires) );

document.cookie = name + "=" + escape(values) +
( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) + 
( ( path ) ? ";path=" + path : "" ) + 
( ( domain ) ? ";domain=" + domain : "" ) +
( ( secure ) ? ";secure" : "" );

}

function Del_Cookie(name){
	var expdate = new Date();
	expdate.setTime(expdate.getTime() - 1);
	document.cookie = name += "=; expires=" + expdate.toGMTString();	
}


/* ----------------------------------- */
/* ---------- IMPRIMIR NOTA ---------- */
/* ----------------------------------- */

function imprimirNota(){
	var iframe		= document.createElement('IFRAME');
	var doc			= null;
	var fontSize 	= $j("#intNota p").css('font-size');
	var fontSizeH2	= $j("h2#tituloNota").css('font-size');
	var cont			= "";
	
		cont += '<style type="text/css">';
		cont += '.imprimirNota *{ font-family: "Trebuchet MS", Tahoma, Arial, sans-serif; }';
		cont += '.imprimirNota { font-size:'+fontSize+';}';
		cont += '.imprimirNota h2{ font-size:'+fontSizeH2+';}';
		cont += '</style>';
		cont += '<div class="imprimirNota"><h2>'+$j('h2#tituloNota').html()+'</h2>'+$j('#intNota').html()+'</div>';
	
	$j(iframe).attr('style','position:absolute;width:0px;height:0px;left:-999px;top:-999px;');
	document.body.appendChild(iframe);
	doc=iframe.contentWindow.document;
	doc.write(cont);
	doc.close();
	iframe.contentWindow.focus();
	
	doc.write(cont);
	doc.close();
	iframe.contentWindow.focus();
	iframe.contentWindow.print();
	wait(1);
	document.body.removeChild(iframe);
}

	

