	//##### PlugIn / hk-Gallery #####//
function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(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 eraseCookie(name) {
	createCookie(name,"",-1);
}


jQuery.noConflict();

function getSizeWH( $element, $attr ){
	var $return = 0;
	if( $attr.toLowerCase() == "width" ){
		$return += isNaN( parseFloat(jQuery( $element ).css("margin-left") ))  ? 0 : parseFloat( jQuery( $element ).css("margin-left") );
		$return += isNaN( parseFloat(jQuery( $element ).css("margin-right") )) ? 0 : parseFloat( jQuery( $element ).css("margin-right") );
		$return += isNaN( parseFloat(jQuery( $element ).css("border-left-width") ))  ? 0 : parseFloat( jQuery( $element ).css("border-left-width") );
		$return += isNaN( parseFloat(jQuery( $element ).css("border-right-width") )) ? 0 : parseFloat( jQuery( $element ).css("border-right-width") );
		$return += isNaN( parseFloat(jQuery( $element ).css("padding-left") ))  ? 0 : parseFloat( jQuery( $element ).css("padding-left") );
		$return += isNaN( parseFloat(jQuery( $element ).css("padding-right") )) ? 0 : parseFloat( jQuery( $element ).css("padding-right") );
		$return += parseFloat( jQuery( $element ).css("width") );
	}else{
		$return += isNaN( parseFloat(jQuery( $element ).css("margin-top") ))    ? 0 : parseFloat( jQuery( $element ).css("margin-top") );
		$return += isNaN( parseFloat(jQuery( $element ).css("margin-bottom") )) ? 0 : parseFloat( jQuery( $element ).css("margin-bottom") );
		$return += isNaN( parseFloat(jQuery( $element ).css("border-top-width") ))    ? 0 : parseFloat( jQuery( $element ).css("border-top-width") );
		$return += isNaN( parseFloat(jQuery( $element ).css("border-bottom-width") )) ? 0 : parseFloat( jQuery( $element ).css("border-bottom-width") );
		$return += isNaN( parseFloat(jQuery( $element ).css("padding-top") ))    ? 0 : parseFloat( jQuery( $element ).css("padding-top") );
		$return += isNaN( parseFloat(jQuery( $element ).css("padding-bottom") )) ? 0 : parseFloat( jQuery( $element ).css("padding-bottom") );
		$return += parseFloat( jQuery( $element ).css("height") );
	}
	return $return;
}

function Hk_Galery_List( $elemName, $xspace, $yspace ){  //alert( "Hk_Galery_List( "+ $elemName+", "+$xspace+", "+$yspace+" )" );
	//--- function events for buttons
	function Anime_byPage( $pageNum, $type ){ //alert( "Anime_pageNext("+ $vt_pageNum +")" );

		if( $gal_animate ) return; 
		$gal_animate = true;
		
		$type = ($type == "next") ? true : false;

		var $delayInc = 0;
		var $delay = 0;

		var $itemMax = ( $gal_itemsPerPage * $pageNum );
		var $indexMax = ( $type ) ? ( $itemMax + $gal_itemsPerPage ) : ( $itemMax + ($gal_itemsPerPage * 2 ) );
		$indexInit = ( $type ) ? ( $itemMax - $gal_itemsPerPage ) : $itemMax ; //alert( $type" : "+$indexInit+", "+$indexMax );

		$galery.find("li[class~='item']").each( function( index, element ){ 
			var $x_pos = $arr_x_pos[ index ] - ( $pageNum * $w_area );
			//--
			if( index >= $indexInit && index < $indexMax ){
				jQuery(this).delay( $delay ).stop().animate({ left:$x_pos }, $vel, $gal_easing, 
					function(){ if( index == $indexInit ){ $gal_animate = false; } } 
				);
			}else{
				jQuery(this).css("left",$x_pos+"px");
			}
			
			//--- move over item  to selected item
			if( jQuery(this).hasClass('selected') ){ //alert( jQuery(this).hasClass('selected') );
				$galery.find("li[class='over']").delay( $delay ).animate( { left:$x_pos }, $vel, $gal_easing );
			}
			$delay += $delayInc;
		});
		// move over element to selected item
		
	}
	
	var $galery = jQuery( $elemName );
	var $x_space = $xspace;
	var $y_space = $yspace;
	//get area sizes
	var $w_area = getSizeWH( $galery, "width");
	var $h_area = getSizeWH( $galery, "height"); //alert( "$h_area= "+$h_area);
	//get item sizes
	var $w_item = getSizeWH( $galery.find('li:first'), "width"); //alert( "$w_item= "+$w_item);
	var $h_item = getSizeWH( $galery.find('li:first'), "height");
	//-- get residuos
	var $col_res =  $w_area % ($w_item + $x_space) ; //alert( "$col_res= "+$col_res ); 
	var $row_res =  $h_area % ($h_item + $y_space) ; //alert( "$col_res= "+$col_res ); 
	//-- total itemPerCol & itemPerRow
	var $itemPerCol =  ($w_area - $col_res ) / ($w_item + $x_space); //alert( "$itemPerCol= "+$itemPerCol ); 
	var $itemPerRow =  ($h_area - $row_res ) / ($h_item + $y_space);
	//-- set new residuos
	$col_res = (($col_res % 2) > 0 ) ? ( ( $col_res - ($col_res % 2) ) / 2 ) : ( $col_res/2 ) ; //alert( "$col_res= "+$col_res ); 
	$col_res += (($x_space % 2) > 0 ) ? ( ( $x_space - ($x_space % 2) ) / 2 ) : ( $x_space/ 2) ; //alert( "$col_res= "+$col_res ); 
	$row_res = (($row_res % 2) > 0 ) ? ( ( $row_res - ($row_res % 2) ) / 2 ) : ( $row_res/2 ) ; //alert( "$row_res= "+$row_res ); 
	$row_res += (($y_space % 2) > 0 ) ? ( ( $y_space - ($y_space % 2) ) / 2 ): ( $y_space/ 2) ; //alert( "$row_res= "+$row_res ); 
	
	//-- var(s) for positions	
	var $x_posNew = $col_res;
	var $y_posNew = $row_res;
	var $x_pos = $x_posNew;
	var $y_pos = $y_posNew;
	var $arr_x_pos = new Array();
	var $arr_y_pos = null;
	var $selected = 0;
	//-- var(s) for increments
		//--- items per page
	var $gal_itemsPerPage = $itemPerCol * $itemPerRow;
		//-- incrmentos
	var $col_incr = 1;
	var $row_incr = 1;

	//--- set positions and efect
	var $gal_easing = "easeInOutQuad";
	var $gal_delayInc = 200;
	var $gal_delay = 400;
	//-- set new positions
	$galery.find("li[class~='item']").each( function( index ){ 
		if( index >= ( $itemPerCol * $col_incr ) ){
			$y_pos += $h_item + $y_space;
			if( $row_incr >= $itemPerRow ){
				$x_posNew += $w_area;
				$y_pos = $y_posNew;
				$row_incr = 1;
			}else{
				$row_incr++;
			}
			$x_pos = $x_posNew;
			$col_incr++;
		}
		//set properties in _x & _y
		jQuery( this ).css("left", $x_pos+"px" );
		jQuery( this ).css("top", $y_pos+"px" );
		//--- set x_pos into array
		$arr_x_pos.push( $x_pos );
		// set new position _x
		$x_pos += $w_item + $x_space;
		// over selected item
		if( jQuery(this).hasClass('selected') ){
			$selected = ( index >= $gal_itemsPerPage ) ? ( ( index - ( index % $gal_itemsPerPage ) ) / $gal_itemsPerPage ) : 0 ; //alert( "$selected = " + $selected );
		}
	});
	
	//-- pagination
	var $gal_itemsNum = parseFloat( $galery.find("li.item").length );
	var $page_res = $gal_itemsNum % $gal_itemsPerPage;
	var $pageTotal = ( $gal_itemsNum - $page_res ) / $gal_itemsPerPage;

	var $gal_pageCount = Math.ceil( $gal_itemsNum / $gal_itemsPerPage ); //alert( "$gal_pageCount="+$gal_pageCount ) ;
	var $gal_pageNum = 0;
	var $xpos = 0;
	var $vel = 600;
	var $gal_easing = "easeInOutQuad";
	var $gal_animate = false;
	var $gal_indexInit = 0;
	
	//--- button events
	jQuery('.pg_next').unbind('click');
	jQuery(".pg_next").click( function(){ 
		$gal_pageNum++;
		if( $gal_pageNum == 1 ) jQuery(".pg_prev").show();
		if( $gal_pageNum >= $gal_pageCount-1 ) jQuery(".pg_next").hide();
		if( $gal_pageNum >= $gal_pageCount) return;
		Anime_byPage( $gal_pageNum, "next" );
	});	
	jQuery('.pg_prev').unbind('click');
	jQuery(".pg_prev").click( function(){
		if( $gal_pageNum == 0 ) return;
		if( $gal_pageNum == $gal_pageCount-1 ) jQuery(".pg_next").show();
		$gal_pageNum--;
		if( $gal_pageNum == 0 ) jQuery(".pg_prev").hide();
		Anime_byPage( $gal_pageNum, "back");		
	});
	
	// move over element to selected item
	//alert( $galery.find("li[class~='selected']").css("top") ) ; 
	$galery.find("li[class='over']").animate( { opacity:0  }, 0 );
	$galery.find("li[class='over']").css("left",$galery.find("li[class~='selected']").css("left") );
	$galery.find("li[class='over']").css("top", parseFloat( $galery.find("li[class~='selected']").css("top") )  );
	$galery.find("li[class='over']").animate( { opacity:0.5 }, $vel, $gal_easing );
	
	//--- button properties
	jQuery(".pg_prev").hide();
	jQuery(".pg_next").hide();
	if( $gal_itemsNum > $gal_itemsPerPage ){
		jQuery(".pg_next").delay( $gal_delay ).show();
	}
	//move te gallery for the selected item
	if( $selected > 0 ){ 
		$gal_pageNum = $selected;
		jQuery(".pg_prev").show();
		if( $gal_pageNum >= $gal_pageCount-1 ) jQuery(".pg_next").hide();
		Anime_byPage( $gal_pageNum, "next" );
	}
}

function Gallery_Init($state){

	var $gal_name = ".gallery";
	var $gal_xspace = 5;
	var $gal_yspace = 5;
	
	function Hk_Galery_Open(){
		var $vt_h = parseFloat( jQuery("#gallery").css("height") ) + 300;
		jQuery("#gallery").css("height", $vt_h+"px");
		jQuery("#gallery").animate( { top:'-1px' }, 300 );
		
		var $vt_h = parseFloat( jQuery("#gallery .gallery").css("height") ) + 300;
		jQuery("#gallery .gallery").css("height", $vt_h+"px");
		jQuery("#gallery a.button").css("height", $vt_h+"px");
		jQuery("#gallery .gallery").animate( { 'height':$vt_h+"px"  }, 300 );
		
	}
	function Hk_Galery_Close(){
		var $vt_h = parseFloat( jQuery("#gallery").css("height") ) - 300;
		jQuery("#gallery").css("height", $vt_h+"px");
		jQuery("#gallery").animate( { top:'300px' }, 300 );
		
		var $vt_h = parseFloat( jQuery("#gallery .gallery").css("height") ) - 300;
		jQuery("#gallery .gallery").css("height", $vt_h+"px");
		jQuery("#gallery a.button").css("height", $vt_h+"px");
		jQuery("#gallery .gallery").animate( { 'height':$vt_h+"px"  }, 300 );
		
	}
	
	function hk_ButtonState( $search, $attrId ){ //alert( "hk_ButtonState( "+$search+", "+$attrId+" )" );
		jQuery( $search ).each( function(index, element){
			if( jQuery( element ).hasClass("active") ){
				jQuery( element ).removeClass("active");
			}else if( jQuery( element ).attr("Id") == $attrId ){
				jQuery( element ).addClass("active");
			};
		});
	}
	
	
	jQuery("#gallery .expand").toggle( 
		function(){ //alert( jQuery(this) );
			jQuery( this ).text("Cerrar listado -");
			//jQuery("#gallery .icon-views").show();
			Hk_Galery_Open();
			Hk_Galery_List( $gal_name, $gal_xspace, $gal_yspace );	
		}, function(){
			jQuery( this ).text("Expandir listado +");
			//jQuery("#gallery .icon-views").hide();
			Hk_Galery_Close();			
			Hk_Galery_List( $gal_name, $gal_xspace, $gal_yspace );
		}
		
	);
	
	
	function Class_AddRemove( $element, $newClass, $oldClass ){
	
		if( jQuery( $element ).hasClass( $oldClass ) ){
			jQuery( $element ).removeClass( $oldClass );
			jQuery( $element ).addClass( $newClass );
			return $newClass;
		}else{
			return $oldClass;
		}
	}
	
	//jQuery("#gallery .icon-views").hide();
	jQuery("#gallery #button-mosaic").click( function(){
		$vl_classActive = Class_AddRemove( "#gallery .gallery", jQuery(this).attr("class"),  $vl_classActive );
		createCookie('gallery',$vl_classActive,7);
		hk_ButtonState( ".icon-views a", jQuery(this).attr("Id") );
		Hk_Galery_List( $gal_name, $gal_xspace, $gal_yspace );
		//##### Tooltip / flowplayer #####//
		//jQuery(".tooltip").css("visibility", "visible");
	});
	
	jQuery("#gallery #button-detail").click( function(){
		$vl_classActive = Class_AddRemove( "#gallery .gallery", jQuery(this).attr("class"),  $vl_classActive );
		createCookie('gallery',$vl_classActive,7);
		hk_ButtonState( ".icon-views a", jQuery(this).attr("Id") );
		Hk_Galery_List( $gal_name, $gal_xspace, $gal_yspace );
		//##### Tooltip / flowplayer #####//
		//jQuery(".tooltip").css("visibility", "hidden");
	});
	
	jQuery("#gallery #button-list").click( function(){
		$vl_classActive = Class_AddRemove( "#gallery .gallery", jQuery(this).attr("class"),  $vl_classActive );
		createCookie('gallery',$vl_classActive,7);
		hk_ButtonState( ".icon-views a", jQuery(this).attr("Id") );
		Hk_Galery_List( $gal_name, $gal_xspace, $gal_yspace );
	});
	
	if( $state == "open" ){
		Hk_Galery_Open();
	}
	//---
	var $vl_classActive = 'mosaic';
	//--- Cookies : gallery option default
	//set cookies
	if( readCookie('gallery') == null ){
		createCookie('gallery','mosaic',7);
	}
	var $result = readCookie('gallery'); //alert($result);
	
	if( $vl_classActive !== $result  ){
		hk_ButtonState( ".icon-views a", "button-"+$result );
		$vl_classActive = Class_AddRemove( "#gallery .gallery", $result,  $vl_classActive );
	}

	Hk_Galery_List( $gal_name, $gal_xspace, $gal_yspace );

	//##### Tooltip / flowplayer #####//
	/*var $data = jQuery(".gallery img[title]").tooltip({ 
		effect: 'slide', delay:0, predelay:0
	});	*/
	// if the function argument is given to overlay,
	// it is assumed to be the onBeforeLoad event listener
	// if the function argument is given to overlay,
	// it is assumed to be the onBeforeLoad event listener
	/*jQuery("a[rel]").overlay({

		mask:{
			color: '#999',
			loadSpeed: 200,
			opacity: 0.7
		},
		onBeforeLoad: function() {
			//jQuery("#overlay").css("display","block");
			// grab wrapper element inside content
			var wrap = this.getOverlay().find(".contentWrap");

			// load the page specified in the trigger
			wrap.load(this.getTrigger().attr("href"));

		},
		closeOnClick: false
	});
	*/

};
//### PRETTYPHOTO ###//
function Pretty_Photo(){
	jQuery("a[rel^='prettyPhoto']").prettyPhoto({
		overlay_gallery: false,
		deeplinking:false, 
		social_tools:'',
		allow_resize: false,
		
		modal: true
	});
};

function guiaForm(){ //alert("guiaForm()");
	// contact form validation	
	// ---------------------------------------------------------------
	jQuery("#guiaForm").validate({	
		messages: {		
			password: "!"	
		},	
		submitHandler: function(form) {		
			// form is valid, submit it			
			ajaxSendForm(form, "#guiaForm", "guia-download.php");
			return false;
		}
	});
}

// ======================================================================
//
//	On document ready functions
//
// ======================================================================
jQuery(document).ready(function() {
	Pretty_Photo();
});

// ======================================================================
//	Proceses functions
// ======================================================================
// form submit
// -------------------------------------------------------------------     
function ajaxSendForm(theForm, $idForm, $file) { //alert( "ajaxSuscribe("+ theForm +", "+ $idForm +", "+ $file +")"); return; 
	jQuery($idForm+' button').hide();
	jQuery($idForm+' #loader').fadeIn();	

	var formData = jQuery(theForm).serialize(),
		$URL = jQuery( $idForm+' #URL').val() + $file,
		note = jQuery( $idForm+'-msg'),
		result;
	note.hide();
	//alert($URL); return;
	jQuery.ajax({
		type: "POST",
		url: $URL,
		data: formData,
		success: function(response) { //alert('response' + response);
			
			jQuery($idForm+' #loader').hide();
			var $data = response.split(',');
			if ( $data[0] == 1 ) { //alert('$data[0]='+$data[0]);
				jQuery(theForm).animate({opacity: 0},'fast',function(){ 
					jQuery(theForm).remove();
					note.html("<h3>"+$data[1]+"</h3><a href='"+ _RELPATH_ + $data[2]+"' target='_blank' >click aqui para descargar</a>");
					note.fadeIn();
				});
			}else{ //alert("else="+response);
				jQuery($idForm+' button').fadeIn();
				var i = setInterval(function() {
					if ( jQuery($idForm+' button').is(':visible') ) {
						result = response;
						note.html(result);
						note.fadeIn('slow');
						clearInterval(i);
					}
				}, 40);    
			 }
			 
		}
	});
	return false;
}


