<?php
/*******************************************************
  Coppermine 1.5.x Plugin - Full Sized Pop-Up Images
  ******************************************************
  Copyright (c) 2009-2010 Joe Carver 
  ******************************************************
			Version 1.0 - 08 June 2010 
  *******************************************************/
  
require_once('include/init.inc.php');
if (!defined('IN_COPPERMINE')) 
{
    die('Not in Coppermine...');
}

// Add a filter for the image pop-up
$thisplugin->add_filter('fullsize_html','big_style_pop_up');

// Display the full size image
function big_style_pop_up()
{
    global $CONFIG, $THEME_DIR, $FORBIDDEN_SET, $LINEBREAK, $pid;
    global $lang_errors, $lang_fullsize_popup, $lang_charset;

    $superCage = Inspekt::makeSuperCage();

    if (!USER_ID && $CONFIG['allow_unlogged_access'] <= 2) {
        printf($lang_errors['login_needed'],'','','','');
        die();
    } elseif (USER_ID && USER_ACCESS_LEVEL <= 2) {
        printf($lang_errors['access_intermediate_only'],'','','','');
        die();
    }
    if ($superCage->get->keyExists('picfile')) {
        if (!GALLERY_ADMIN_MODE) {
            cpg_die(ERROR, $lang_errors['access_denied'], __FILE__, __LINE__);
        }
        //$picfile = $_GET['picfile'];
        //$picfile = $superCage->get->getPath('picfile'); // doesn't work with HTML entities
        $matches = $superCage->get->getMatched('picfile', '/^[0-9A-Za-z\/_.-]+$/');
        $picfile = $matches[0];
        $picname = $CONFIG['fullpath'] . $picfile;
        $imagesize = @getimagesize($picname);
        $imagedata = array('name' => $picfile, 'path' => path2url($picname), 'geometry' => $imagesize[3]);
    } elseif ($pid) {
        $sql = "SELECT filepath, filename, url_prefix, pwidth, pheight FROM {$CONFIG['TABLE_PICTURES']} AS p " . "WHERE pid='$pid' $FORBIDDEN_SET";
        $result = cpg_db_query($sql);
        if (!mysql_num_rows($result)) {
            cpg_die(ERROR, $lang_errors['non_exist_ap'], __FILE__, __LINE__);
        }
        $row = mysql_fetch_assoc($result);
        $pic_url = get_pic_url($row, 'fullsize');
	    $geom = 'width="' . $row['pwidth'] . '" height="' . $row['pheight'] . '"';	        	
		$imagedata = array('name' => $row['filename'], 'path' => $pic_url, 'geometry' => $geom);
    }
    if ((!USER_ID && $CONFIG['allow_unlogged_access'] <= 2) || (USER_ID && USER_ACCESS_LEVEL <= 2)) {
        // adjust the size of the window if we don't have to catter for a full-size pop-up, but only a text message
        $row['pwidth'] = 200;
        $row['pheight'] = 100;
    }

	
    $charset = ($CONFIG['charset'] == 'language file' ? $lang_charset : $CONFIG['charset']);
    $fullsize_html = <<<EOT
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
    <head>
        <meta http-equiv="content-type" content="text/html; charset=$charset" />
        <title>{$CONFIG['gallery_name']}: {$lang_fullsize_popup['click_to_close']}</title>
        <style type="text/css">
            body { margin: 0; padding: 0; background-color: gray; }
            img { margin:0; padding:0; border:0; }
            #content { margin:0 auto; padding:0; border:0; width:{$ie_width}px; height:{$ie_height}px;}
            table { border:0; width:{$ie_width}px; height:{$ie_height}px; border-collapse:collapse}
            td { vertical-align: middle; text-align:center; }
        </style>
    </head>
    <body style="margin:0px; padding:0px; background-color: gray;">
<!-- ValueClick Media 728x90 LEADERBOARD CODE for Kristin Cavallari Daily -->
<script src="http://cdn.fastclick.net/js/adcodes/pubcode.min.js"></script><script type="text/javascript">document.write('<scr' + 'ipt type="text/javascript">(function () {try{VCM.media.render({sid:66524,media_type:5,version:"1.2"});} catch(e){document.write(\'<scr\' + \'ipt type="text/javascript" src="http://media.fastclick.net/w/get.media?sid=66524&tp=5&d=j&t=n&exc=1"></scr\' + \'ipt>\');}}());</scr' + 'ipt>');</script><noscript><a href="http://media.fastclick.net/w/click.here?sid=66524&m=1&c=1" target="_blank"><img src="http://media.fastclick.net/w/get.media?sid=66524&tp=5&d=s&c=1&vcm_acv=1.2" width=728 height=90 border=1></a></noscript>
<!-- ValueClick Media 728x90 LEADERBOARD CODE for Kristin Cavallari Daily -->
EOT;
    if ($CONFIG['transparent_overlay'] == 1) {
        $fullsize_html .= <<<EOT
        <table cellpadding="0" cellspacing="0" align="center" style="padding:0px;">
            <tr>

EOT;
        $fullsize_html .=  '<td align="center" valign="middle" background="' . htmlspecialchars($imagedata['path']) . '" ' . $imagedata['geometry'] . ' class="image">';
        $fullsize_html .=  '<div id="content">';
        $fullsize_html .=  '<a href="javascript: window.close()" style="border:none"><img src="images/image.gif?id='
                . floor(rand()*1000+rand())
                . '&amp;fullsize=yes" '
                . $imagedata['geometry']
                . ' alt="'
                . htmlspecialchars($imagedata['name'])
                . '" title="'
                . htmlspecialchars($imagedata['name'])
                . $LINEBREAK . $lang_fullsize_popup['click_to_close']
                . '" /></a><br />' . $LINEBREAK;
        $fullsize_html .=  <<<EOT
                    </div>
                </td>
            </tr>
        </table>

EOT;
    } else {
        $fullsize_html .=  '        <div id="content">'.$LINEBREAK;
        $fullsize_html .=  '<a href="javascript: window.close()"><img src="'
        . htmlspecialchars($imagedata['path']) . '" '
        . $imagedata['geometry']
        . 'id="fullsize_image" alt="'
        . htmlspecialchars($imagedata['name'])
        . '" title="'
        . htmlspecialchars($imagedata['name'])
        . $LINEBREAK . $lang_fullsize_popup['click_to_close']
        . '" /></a><br />' . $LINEBREAK
        . '        </div>'.$LINEBREAK;
    }
    $fullsize_html .= <<<EOT
<!-- ValueClick Media 728x90 LEADERBOARD CODE for Kristin Cavallari Daily -->
<script src="http://cdn.fastclick.net/js/adcodes/pubcode.min.js"></script><script type="text/javascript">document.write('<scr' + 'ipt type="text/javascript">(function () {try{VCM.media.render({sid:66524,media_type:5,version:"1.2"});} catch(e){document.write(\'<scr\' + \'ipt type="text/javascript" src="http://media.fastclick.net/w/get.media?sid=66524&tp=5&d=j&t=n&exc=1"></scr\' + \'ipt>\');}}());</scr' + 'ipt>');</script><noscript><a href="http://media.fastclick.net/w/click.here?sid=66524&m=1&c=1" target="_blank"><img src="http://media.fastclick.net/w/get.media?sid=66524&tp=5&d=s&c=1&vcm_acv=1.2" width=728 height=90 border=1></a></noscript>
<!-- ValueClick Media 728x90 LEADERBOARD CODE for Kristin Cavallari Daily -->
  </body>
</html>

EOT;

 
    return $fullsize_html;
}

	// Add a Filter for IE only!!!
		$client_details = cpg_determine_client();
    // Get the details of user browser, IP, OS, etc
  		$browser = $client_details['browser'];
		$users_browser_array = array('IE8', 'IE7', 'IE6');
	    if (in_array($browser, $users_browser_array) == TRUE) {
	    $thisplugin->add_filter('html_image_reduced','ie_pop_up');	
	    function ie_pop_up()
	    {
		    global $CONFIG, $CURRENT_PIC_DATA, $CURRENT_ALBUM_DATA, $USER, $LINEBREAK;
            global $album, $lang_date, $template_display_media;
            global $lang_display_image_php, $lang_picinfo, $lang_common, $lang_errors;	
	// Variables to increase window size to compensate for IE adding scrollbars
        	$add_winsizeX = 15;	
        	$add_winsizeY = 20;	
        	//$winsizeX = $CURRENT_PIC_DATA['pwidth'] + ($CONFIG['fullsize_padding_x'] + $add_winsizeX);  //the +'s are the mysterious FF and IE paddings
        	$winsizeX = $CURRENT_PIC_DATA['pwidth'] + ($CONFIG['fullsize_padding_x'] + $add_winsizeX);  //the +'s are the mysterious FF and IE paddings
			If ($winsizeX < 728) {
				$winsizeX = 728 + ($CONFIG['fullsize_padding_x'] + $add_winsizeX);
			}
            //$winsizeY = $CURRENT_PIC_DATA['pheight'] + ($CONFIG['fullsize_padding_y'] + $add_winsizeY);               
            $winsizeY = $CURRENT_PIC_DATA['pheight'] + ($CONFIG['fullsize_padding_y'] + $add_winsizeY) + 180;               
			$pid = $CURRENT_PIC_DATA['pid'];
		    $pic_title = '';
        if ($CURRENT_PIC_DATA['title'] != '') {
            $pic_title .= $CURRENT_PIC_DATA['title'] . $LINEBREAK;
        }
	    $image_size = array();
        list($image_size['width'], $image_size['height'], , $image_size['geom']) = cpg_getimagesize(urldecode($picture_url));
	
	// The weird comparision is because only picture_width is stored
        if ($CONFIG['thumb_use']=='ht' && $CURRENT_PIC_DATA['pheight'] > $CONFIG['picture_width'] ) {
            $condition = true;
        } elseif ($CONFIG['thumb_use']=='wd' && $CURRENT_PIC_DATA['pwidth'] > $CONFIG['picture_width']) {
           $condition = true;
        } elseif ($CONFIG['thumb_use']=='any' && max($CURRENT_PIC_DATA['pwidth'], $CURRENT_PIC_DATA['pheight']) > $CONFIG['picture_width']) {
            $condition = true;
            //thumb cropping
        } elseif ($CONFIG['thumb_use']=='ex' && max($CURRENT_PIC_DATA['pwidth'], $CURRENT_PIC_DATA['pheight']) > $CONFIG['picture_width']) {
            $condition = true;
        } else {
            $condition = false;
       }

        if ($CONFIG['make_intermediate'] && $condition ) {
            $picture_url = get_pic_url($CURRENT_PIC_DATA, 'normal');
        } else {
            $picture_url = get_pic_url($CURRENT_PIC_DATA, 'fullsize');
        }
	
					 $pic_html_href_close = '</a>' . $LINEBREAK;
					if (!USER_ID && $CONFIG['allow_unlogged_access'] <= 2) {
                    if ($CONFIG['allow_user_registration'] == 0) {
                        $pic_html = $pic_html_href_close = '';
                    } else {
                        $pic_html = '<a href="javascript:;" onclick="alert(\''.sprintf($lang_errors['login_needed'],'','','','').'\');">';
                    }
                } elseif (USER_ID && USER_ACCESS_LEVEL <= 2) {
                    $pic_html = '<a href="javascript:;" onclick="alert(\''.sprintf($lang_errors['access_intermediate_only'],'','','','').'\');">';
                } else {
                    $pic_html = "<a href=\"javascript:;\" onclick=\"MM_openBrWindow('displayimage.php?pid=$pid&amp;fullsize=1','" . uniqid(rand()) . "','scrollbars=yes,toolbar=no,status=no,resizable=yes,width=$winsizeX,height=$winsizeY')\">";
                }
                $pic_title = $lang_display_image_php['view_fs'] . $LINEBREAK . '==============' . $LINEBREAK . $pic_title;
                $pic_html .= "<img src=\"" . $picture_url . "\" {$image_size['geom']} class=\"image\" border=\"0\" alt=\"{$lang_display_image_php['view_fs']}\" /><br />";
                $pic_html .= $pic_html_href_close;
				
				return $pic_html;           
			   }
			   }				
				
//  For reference only - this is what was removed from the standard pop-up image page code
//        <script type="text/javascript" src="js/jquery-1.3.2.js"></script>
//        <script type="text/javascript" src="js/jquery.dimensions.pack.js"></script>
//        <script type="text/javascript" src="js/displayimage.fullsize.js"></script>

?>