1<?php
2	class switchpanel_case_serial{
3		public static function getSvg( $oCase, $iX, $iY, $opt ){
4			$sSvg = '';
5			if( isset( $oCase[ 'options' ][ 'link' ] ) ){
6				$sSvg .= '<a xlink:href="'.$oCase[ 'options' ][ 'link' ].'" target="'.( isset( $oCase[ 'options' ][ 'target' ] ) ? $oCase[ 'options' ][ 'target' ] : $opt[ 'target' ] ).'" style="text-decoration:none">';
7			}
8			if( isset( $oCase[ 'options' ][ 'text' ] ) ){
9				$sLabel = str_replace( "\\", "\\'", isset( $oCase[ 'label' ] ) ? $oCase[ 'label' ] : '' );
10				$sTitle = str_replace( "\\", "\\'", isset( $oCase[ 'title' ] ) ? $oCase[ 'title' ] : '' );
11				$sText = str_replace( "\\", "\\'", $oCase[ 'options' ][ 'text' ] );
12				$sLink = str_replace( "\\", "\\'", isset( $oCase[ 'options' ][ 'link' ] ) ? $oCase[ 'options' ][ 'link' ] : '' );
13				if( isset( $oCase[ 'options' ][ 'textlink' ] ) ){
14					$sLink = str_replace( "\\", "\\'", $oCase[ 'options' ][ 'textlink' ] );
15				}
16				$sSvg .= '<g onmousemove="window.oSwitchPanel.showToolTip(evt, \''.$sLabel.'\', \''.$sTitle.'\', \''.$sText.'\', \''.$sLink.'\')" onmouseout="window.oSwitchPanel.hideToolTip()">';
17			}
18
19			// Case color
20			$sColor = $opt[ 'color' ];
21			if( isset( $oCase[ 'options' ][ 'color' ] ) ){
22				$sColor = $oCase[ 'options' ][ 'color' ];
23			}
24
25			// Label background color
26			$sLabelBgColor = $opt[ 'labelBgColor' ];
27			if( isset( $oCase[ 'options' ][ 'labelBgColor' ] ) ){
28				$sLabelBgColor = $oCase[ 'options' ][ 'labelBgColor' ];
29			}
30
31			// Label text color
32			$sLabelTxtColor = $opt[ 'labelTxtColor' ];
33			if( isset( $oCase[ 'options' ][ 'labelTxtColor' ] ) ){
34				$sLabelTxtColor = $oCase[ 'options' ][ 'labelTxtColor' ];
35			}
36
37
38			$sSvg .= '<rect x="'.$iX.'" y="'.$iY.'" width="'.$opt[ 'elementWidth' ].'" height="'.$opt[ 'elementHeight' ].'" fill="'.$sColor.'"/>
39				<rect x="'.$iX.'" y="'.$iY.'" width="'.$opt[ 'elementWidth' ].'" height="'.( $opt[ 'elementHeight' ] / 2.65 ).'" stroke-width="'.( $opt[ 'elementWidth' ] / 30 ).'" stroke="#000000" fill="'.$sLabelBgColor.'" ry="1.5" rx="1.5"/>
40				<text x="'.( $iX + ( $opt[ 'elementWidth' ] / 2 ) ).'" y="'.( $iY + ( $opt[ 'elementHeight' ] / 3.6 ) ).'" style="font-weight:bold;" text-anchor="middle" font-family="sans-serif" font-size="'.( $opt[ 'elementWidth' ] * 0.27 ).'" fill="'.$sLabelTxtColor.'">'.$oCase[ 'label' ].'</text>
41				<path d="M'.( $iX + ( $opt[ 'elementWidth' ] / 6 ) ).','.( $iY + ( $opt[ 'elementHeight' ] / 1.9 ) ).' C'.( $iX + ( $opt[ 'elementWidth' ] ) ).','.( $iY + ( $opt[ 'elementHeight' ] / 1.9 ) ).' '.( $iX  ).','.( $iY + ( $opt[ 'elementHeight' ] / 1.25 ) ).' '.( $iX + ( $opt[ 'elementWidth' ] / 1.56 ) ).','.( $iY + ( $opt[ 'elementHeight' ] / 1.25 ) ).'" stroke="#3AC96F" fill="transparent"/>
42				<path d="M'.( $iX + ( $opt[ 'elementWidth' ] / 6 ) ).','.( $iY + ( $opt[ 'elementHeight' ] / 1.8 ) ).' C'.( $iX + ( $opt[ 'elementWidth' ] ) ).','.( $iY + ( $opt[ 'elementHeight' ] / 1.8 ) ).' '.( $iX  ).','.( $iY + ( $opt[ 'elementHeight' ] / 1.20 ) ).' '.( $iX + ( $opt[ 'elementWidth' ] / 1.56 ) ).','.( $iY + ( $opt[ 'elementHeight' ] / 1.20 ) ).'" stroke="#26964F" fill="transparent"/>
43				<path d="M'.( $iX + ( $opt[ 'elementWidth' ] / 6 ) ).','.( $iY + ( $opt[ 'elementHeight' ] / 1.7 ) ).' C'.( $iX + ( $opt[ 'elementWidth' ] ) ).','.( $iY + ( $opt[ 'elementHeight' ] / 1.7 ) ).' '.( $iX  ).','.( $iY + ( $opt[ 'elementHeight' ] / 1.15 ) ).' '.( $iX + ( $opt[ 'elementWidth' ] / 1.56 ) ).','.( $iY + ( $opt[ 'elementHeight' ] / 1.15 ) ).'" stroke="#156934" fill="transparent"/>
44				<rect x="'.( $iX + ( $opt[ 'elementWidth' ] / 8 ) ).'" y="'.( $iY + ( $opt[ 'elementHeight' ] / 2 ) ).'" width="'.( $opt[ 'elementWidth' ] / 4 ).'" height="'.( $opt[ 'elementHeight' ] / 5 ).'" fill="#276921" ry="1.5" rx="1.5"/>
45				<rect x="'.( $iX + ( $opt[ 'elementWidth' ] / 1.56 ) ).'" y="'.( $iY + ( $opt[ 'elementHeight' ] / 1.37 ) ).'" width="'.( $opt[ 'elementWidth' ] / 4 ).'" height="'.( $opt[ 'elementHeight' ] / 5 ).'" fill="#276921" ry="1.5" rx="1.5"/>';
46
47			if( isset( $oCase[ 'title' ] ) ){
48				$sSvg .= '<text x="'.( $iX + ( $opt[ 'elementWidth' ] / 2 ) ).'" y="'.( $iY + ( $opt[ 'elementHeight' ] / 1.25 ) ).'" text-anchor="middle" font-family="sans-serif" font-size="'.( $opt[ 'elementWidth' ] * 0.3 ).'" fill="#ffffff">'.$oCase[ 'title' ].'</text>';
49			}
50			if( isset( $oCase[ 'options' ][ 'text' ] ) ){
51				$sSvg .= '</g>';
52			}
53			if( isset( $oCase[ 'options' ][ 'link' ] ) ){
54				$sSvg .= '</a>';
55			}
56
57			return $sSvg;
58		}
59	}
60