<?php
/**
 * Lightens/darkens a given colour (hex format), returning the altered colour in hex format.7
 * @param str $hex Colour as hexadecimal (with or without hash);
 * @percent float $percent Decimal ( 0.2 = lighten by 20%(), -0.4 = darken by 40%() )
 * @return str Lightened/Darkend colour as hexadecimal (with hash);
 * 
 * @package Postmagthemes
 * @subpackage queens_magazine_blog
 */ 
function queens_magazine_blog_color_luminance( $hex, $percent ) {
    // validate hex string
    if ( $hex == null ) {
        $hex = __('#b29700','queens-magazine-blog');
    }
    $hex = preg_replace( '/[^0-9a-f]/i', '', $hex );
    $new_hex = '#';
    if ( strlen( $hex ) < 6 ) {
        $hex = $hex[0] . $hex[0] . $hex[1] . $hex[1] . $hex[2] . $hex[2];
    }
    
    // convert to decimal and change luminosity
    for ( $i = 0; $i < 3; $i++) {
        $dec = hexdec( substr( $hex, $i * 2, 2 ) );
        $dec = min( max( 0, (int) ($dec + $dec * $percent) ), 255 ); 
        $new_hex .= str_pad( dechex( $dec ), 2, '0', STR_PAD_LEFT );
    }		
    return $new_hex;
} 