<?php
	function checkBrowser($input) {
		$browsers = "mozilla msie gecko firefox ";
		$browsers.= "konqueror safari netscape navigator ";
		$browsers.= "opera mosaic lynx amaya omniweb";

		$browsers = explode(" ", $browsers);

		$userAgent = strToLower( $_SERVER['HTTP_USER_AGENT']);

		$l = strlen($userAgent);
		for ($i=0; $i<count($browsers); $i++){
			$browser = $browsers[$i];
			$n = stristr($userAgent, $browser);
			if(strlen($n)>0){
				$version = "";
				$navigator = $browser;
				$j=strpos($userAgent, $navigator)+$n+strlen($navigator)+1;
				for (; $j<=$l; $j++){
					$s = substr ($userAgent, $j, 1);
					if (is_numeric($version.$s))
						$version .= $s;
					else
						break;
				}
			}
		}

		$platform = '';
		if (strpos($userAgent, 'linux')) {
			$platform = 'linux';
		}
		else if (strpos($userAgent, 'macintosh') || strpos($userAgent, 'mac platform x')) {
			$platform = 'mac';
		}
		else if (strpos($userAgent, 'windows') || strpos($userAgent, 'win32')) {
			$platform = 'windows';
		}

		if ($input==true) {
			return array(
			"browser"      => $navigator,
			"version"      => $version,
			"platform"     => $platform,
			"userAgent"    => $userAgent);
		}else{
			return "$navigator $version";
		}
	}

	function currentURL() {
		$_SERVER["HTTPS"] = empty($_SERVER["HTTPS"])?'':$_SERVER["HTTPS"];
		$pageURL = 'http';
		if ($_SERVER["HTTPS"] == "on")
		{
			$pageURL .= "s";
		}
		$pageURL .= "://";
		if ($_SERVER["SERVER_PORT"] != "80") 
		{
			$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
		}
		else
		{
			$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
		}
		return $pageURL;
	}

	function checkstr($inputstr){
		if (empty($inputstr)){
			return '-';
		}
		return $inputstr;
	}
	
	function gettemplate($templatename){
		global $db;
		$theme = '';
		$html='';
		if (file_exists("template/".$templatename.".php")){
			include "template/".$templatename.".php";
			
			$theme = parsingcode(addslashes($html));
		}
		return $theme;
	}

	function parsingcode($theme){
		$theme = preg_replace("/<if criteria=\\\\\"(.*)\\\\\">/U","\".(($1)?(\"",$theme);
		$theme = preg_replace("/<else>/","\"):(\"",$theme);
		$theme = preg_replace("/<\/if>/","\")).\"",$theme);
		$theme = preg_replace("/<\/endif>/","\"):(\"\")).\"",$theme);

		$theme = preg_replace("/\\\\\'/","'",$theme);

		return $theme;
	}

	function redirecting($url){
		header("Location: ".$url);
		exit();
	}
	
	function validateemail($email){
		if(!filter_var($email, FILTER_VALIDATE_EMAIL)) {
			return false;
		}
		else{
			return true;
		}	
	}

	function formatnumber($number,$thsep,$decsep){
		$separator = $thsep;
		if (strpos($number,'.')){
			$decimals = substr($number,strpos($number,'.')+1);
			$number = substr($number,0,strpos($number,'.'));
		}
		if (strlen($number) > 3) {
			$mod = strlen($number) % 3;
			$output = ($mod > 0 ? (substr($number,0,$mod)) : '');
			for ($i=0 ; $i < floor(strlen($number) / 3); $i++) {
				if (($mod == 0) && ($i == 0))
					$output .= substr($number,$mod + 3 * $i, 3);
				else
					$output .= $separator.substr($number,$mod + 3 * $i, 3);
			}
			if (!empty($decimals))
				$output .= $decsep.$decimals;
			return $output;
		}
		else{
			if (!empty($decimals))
				$number .= $decsep.$decimals;
			return $number;
		}
	}
	
	function togglenumber($strnumber,$mode){
		global $general;
		
		if ($mode == 'print'){
			$strnumber = str_replace('.','*',$strnumber);
			$strnumber = str_replace(',','.',$strnumber);
			$strnumber = str_replace('*',',',$strnumber);
		}
		else if ($mode == 'calculate'){
			if ($general['numberformat'] == 'Indonesia'){
				$strnumber = str_replace('.','',$strnumber);
				$strnumber = str_replace(',','.',$strnumber);
			}
			else{
				$strnumber = str_replace(',','',$strnumber);
			}
		}
		return $strnumber;
	}
	
	function checkdecimal($strnumber){
		if (strstr($strnumber,'.')){
			$behinddecimal = substr($strnumber,strpos($strnumber,'.')+1);
			$isdec = false;
			for ($i = 0; $i < strlen($behinddecimal); $i++){
				if ($behinddecimal[$i] != '0'){
					$isdec = true;
					break;
				}
			}
			if ($isdec){
				$strnumber = rtrim(rtrim($strnumber, '0'), '.');
			}
			else{
				$strnumber = str_replace('.'.$behinddecimal,'',$strnumber);
			}
		}
		return $strnumber;
	}

	function generatepagelinkgeneral($page,$totalrow,$totalshown,$url,$elementid,$loadingid){
		$counts = ceil($totalrow/$totalshown);
		if ($counts > 1){
			if (!strstr($url,'?'))
				$url .= '?page=';
			else
				$url .= '&page=';

			/* $pagelink = '<b>Page '.$page.' of '.$counts.'</b>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;'; */
			$pagelink = '';
			if (empty($elementid)){
				$navp = '<a href="'.$url.($page-1).'" title="Previous" class="pagenavs">&lt;</a>&nbsp;&nbsp;';
				$navn = '<a href="'.$url.($page+1).'" title="Next" class="pagenavs">&gt;</a>';
				$navfirst = '<a href="'.$url.'1" title="First" class="pagenavs">&lt;&lt;</a>&nbsp;&nbsp;';
				$navlast = '&nbsp;&nbsp;<a href="'.$url.$counts.'" title="Last" class="pagenavs">&gt;&gt;</a>';
			}
			else{
				$navp = '<a href="javascript:void(generalajax(\''.$url.($page-1).'\',\''.$elementid.'\',\''.$loadingid.'\',0,0))">Previous</a>&nbsp;&nbsp;&nbsp;';
				$navn = '<a href="javascript:void(generalajax(\''.$url.($page+1).'\',\''.$elementid.'\',\''.$loadingid.'\',0,0))">Next</a>';
				$navfirst = '<a href="javascript:void(generalajax(\''.$url.'1\',\''.$elementid.'\',\''.$loadingid.'\',0,0))">First</a>&nbsp;&nbsp;&nbsp;';
				$navlast = '&nbsp;&nbsp;&nbsp;<a href="javascript:void(generalajax(\''.$url.$counts.'\',\''.$elementid.'\',\''.$loadingid.'\',0,0))">Last</a>';
			}
			if ($page == 1){
				$navp = '';
				$navfirst = '';
			}
			else if ($page == $counts){
				$navn = '';
				$navlast = '';
			}

			$pagelink .= $navfirst;
			$pagelink .= $navp;
			$left = $page - 3;
			$right = $page + 3;
			if ($left<1)
			{
				$right += abs($left)+1;
				$left=1;
			}
			if ($right>$counts)
			{
				$left += ($counts-$right);
				if ($left<1)
					$left=1;
				$right=$counts;
			}
			if ($left > 1){
				$pagelink .= '...&nbsp;&nbsp;';
			}
			for ($l = $left; $l <= $right; $l++)
			{
				if ($l == $page){
					$pagelink .= '<span class="activepagenavs">'.$l.'</span>';
				}
				else{
					if (empty($elementid)){
						$pagelink .= '<a href="'.$url.$l.'" class="pagenavs">'.$l.'</a>';
					}
					else{
						$pagelink .= '
							<a href="javascript:void(generalajax(\''.$url.$l.'\',\''.$elementid.'\',\''.$loadingid.'\',0,0))"><b>'.$l.'</b></a>&nbsp;&nbsp;&nbsp;
						';
					}
				}
				
				if ($l < $right || ($l == $right && !empty($navlast))){
					$pagelink .= '&nbsp;&nbsp;';
				}
			}
			if ($right < $counts){
				$pagelink .= '...&nbsp;&nbsp;';
			}
			$pagelink .= $navn;
			$pagelink .= $navlast;
		}
		else if ($counts == 1){
			/* $pagelink = '<b>Page '.$page.' of '.$counts.'</b>'; */
			$pagelink = '';
		}
		else{
			$pagelink = '';
		}

		return $pagelink;
	}

	function generatepagelink($page,$totalrow,$totalshown,$url,$elementid,$loadingid){
		$counts = ceil($totalrow/$totalshown);
		if ($counts > 1){

			/*if (!strstr($url,'?'))
				$url .= '?page=';
			else
				$url .= '&page=';*/
			$url .= '/';

			/* $pagelink = '<b>Page '.$page.' of '.$counts.'</b>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;'; */
			$pagelink = '';
			if (empty($elementid)){
				$navp = '<a href="'.$url.($page-1).'" title="Previous" class="pagenavs">&lt;</a>&nbsp;&nbsp;';
				$navn = '<a href="'.$url.($page+1).'" title="Next" class="pagenavs">&gt;</a>';
				$navfirst = '<a href="'.$url.'1" title="First" class="pagenavs">&lt;&lt;</a>&nbsp;&nbsp;';
				$navlast = '&nbsp;&nbsp;<a href="'.$url.$counts.'" title="Last" class="pagenavs">&gt;&gt;</a>';
			}
			else{
				$navp = '<a href="javascript:void(generalajax(\''.$url.($page-1).'\',\''.$elementid.'\',\''.$loadingid.'\',0,0))">Previous</a>&nbsp;&nbsp;&nbsp;';
				$navn = '<a href="javascript:void(generalajax(\''.$url.($page+1).'\',\''.$elementid.'\',\''.$loadingid.'\',0,0))">Next</a>';
				$navfirst = '<a href="javascript:void(generalajax(\''.$url.'1\',\''.$elementid.'\',\''.$loadingid.'\',0,0))">First</a>&nbsp;&nbsp;&nbsp;';
				$navlast = '&nbsp;&nbsp;&nbsp;<a href="javascript:void(generalajax(\''.$url.$counts.'\',\''.$elementid.'\',\''.$loadingid.'\',0,0))">Last</a>';
			}
			if ($page == 1){
				$navp = '';
				$navfirst = '';
			}
			else if ($page == $counts){
				$navn = '';
				$navlast = '';
			}

			$pagelink .= $navfirst;
			$pagelink .= $navp;
			$left = $page - 3;
			$right = $page + 3;
			if ($left<1)
			{
				$right += abs($left)+1;
				$left=1;
			}
			if ($right>$counts)
			{
				$left += ($counts-$right);
				if ($left<1)
					$left=1;
				$right=$counts;
			}
			if ($left > 1){
				$pagelink .= '...&nbsp;&nbsp;';
			}
			for ($l = $left; $l <= $right; $l++)
			{
				if ($l == $page){
					$pagelink .= '<span class="activepagenavs">'.$l.'</span>';
				}
				else{
					if (empty($elementid)){
						$pagelink .= '<a href="'.$url.$l.'" class="pagenavs">'.$l.'</a>';
					}
					else{
						$pagelink .= '
							<a href="javascript:void(generalajax(\''.$url.$l.'\',\''.$elementid.'\',\''.$loadingid.'\',0,0))"><b>'.$l.'</b></a>
						';
					}
				}
				
				if ($l < $right || ($l == $right && !empty($navlast))){
					$pagelink .= '&nbsp;&nbsp;';
				}
			}
			if ($right < $counts){
				$pagelink .= '...&nbsp;&nbsp;';
			}
			$pagelink .= $navn;
			$pagelink .= $navlast;
		}
		else if ($counts == 1){
			/* $pagelink = '<b>Page '.$page.' of '.$counts.'</b>'; */
			$pagelink = '';
		}
		else{
			$pagelink = '';
		}

		return $pagelink;
	}

	function _getip($var)
	{
		global $REMOTE_ADDR, $HTTP_X_FORWARDED_FOR, $HTTP_X_FORWARDED, $HTTP_FORWARDED_FOR, $HTTP_FORWARDED, $HTTP_VIA, $HTTP_X_COMING_FROM, $HTTP_COMING_FROM, $HTTP_SERVER_VARS, $HTTP_ENV_VARS;
		global ${$var};
		if (empty(${$var}))
		{
			if (!empty($_SERVER) && isset($_SERVER[$var])) ${$var} = $_SERVER[$var];
			else if (!empty($_ENV) && isset($_ENV[$var]))	${$var} = $_ENV[$var];
			else if (!empty($HTTP_SERVER_VARS) && isset($HTTP_SERVER_VARS[$var]))	${$var} = $HTTP_SERVER_VARS[$var];
			else if (!empty($HTTP_ENV_VARS) && isset($HTTP_ENV_VARS[$var]))	${$var} = $HTTP_ENV_VARS[$var];
			else if (@getenv($var))	${$var} = getenv($var);
		}
	}

	function ip2int($ip)
	{
	  $a = explode(".", $ip);
	  return $a[0] * 256 * 256 * 256+$a[1] * 256 * 256+$a[2] * 256+$a[3];
	}

	function ip()
	{
		global $REMOTE_ADDR, $HTTP_X_FORWARDED_FOR, $HTTP_X_FORWARDED, $HTTP_FORWARDED_FOR, $HTTP_FORWARDED, $HTTP_VIA, $HTTP_X_COMING_FROM, $HTTP_COMING_FROM, $HTTP_SERVER_VARS, $HTTP_ENV_VARS;
		_getip('REMOTE_ADDR');
		_getip('HTTP_X_FORWARDED_FOR');
		_getip('HTTP_X_FORWARDED');
		_getip('HTTP_FORWARDED_FOR');
		_getip('HTTP_FORWARDED');
		_getip('HTTP_VIA');
		_getip('HTTP_X_COMING_FROM');
		_getip('HTTP_COMING_FROM');
		if (!empty($REMOTE_ADDR))	$direct_ip = $REMOTE_ADDR;
		$proxy_ip = '';
		if (!empty($HTTP_X_FORWARDED_FOR)) $proxy_ip = $HTTP_X_FORWARDED_FOR;
		else if (!empty($HTTP_X_FORWARDED))	$proxy_ip = $HTTP_X_FORWARDED;
		else if (!empty($HTTP_FORWARDED_FOR))	$proxy_ip = $HTTP_FORWARDED_FOR;
		else if (!empty($HTTP_FORWARDED))	$proxy_ip = $HTTP_FORWARDED;
		else if (!empty($HTTP_VIA))	$proxy_ip = $HTTP_VIA;
		else if (!empty($HTTP_X_COMING_FROM))	$proxy_ip = $HTTP_X_COMING_FROM;
		else if (!empty($HTTP_COMING_FROM))	$proxy_ip = $HTTP_COMING_FROM;

		if (empty($proxy_ip)){
			return $direct_ip;
		}
		else
		{
			return $direct_ip;
			/* $is_ip = ereg('^([0-9]{1,3}\.){3,3}[0-9]{1,3}',$proxy_ip,$regs);
			if ($is_ip && (count($regs) > 0))	return $regs[0];
			else return '0.0.0.0'; */
		}
	}

	function getIP(){
		//return ip2int(ip());
		return ip();
	}
	
	function handlepage($p,$totalp){
		if ($p == 'last' || $p > $totalp){
			$page = $totalp;
		}
		else if (empty($p) || $p < 1){
			$page = 1;
		}
		else{
			$page = $p;
		}
		
		if (empty($page)){
			$page = 1;
		}
		
		return $page;
	}
	
	function prepareHTML($html){
		$html = addslashes($html);
	   	$html = preg_replace("/\\\\\'/","'",$html);
		return $html;
	}
	
	function getSession($id){
		session_start();
		return $_SESSION[$id];
	}
	
	function checkexist($uniq,$field,$table,$condition = ''){
		global $db;
		$dbcheck = $db->fetch_one("SELECT ".$field." FROM ".$table." WHERE ".$field."='".$uniq."'".$condition);
		if (sizeof($dbcheck) > 0)
			return true;
		else
			return false;
	}

	function multisort($array, $sort_by, $key1, $key2=NULL, $key3=NULL, $key4=NULL, $key5=NULL, $key6=NULL, $key7=NULL, $key8=NULL, $key9=NULL, $key10=NULL, $key11=NULL, $key12=NULL, $key13=NULL){
		// sort by ?
		foreach ($array as $pos =>  $val)
			$tmp_array[$pos] = strtolower($val[$sort_by]);
		asort($tmp_array);
	   
		// display however you want
		foreach ($tmp_array as $pos =>  $val){
			$return_array[$pos][$sort_by] = $array[$pos][$sort_by];
			$return_array[$pos][$key1] = $array[$pos][$key1];
			if (isset($key2)){
				$return_array[$pos][$key2] = $array[$pos][$key2];
				}
			if (isset($key3)){
				$return_array[$pos][$key3] = $array[$pos][$key3];
				}
			if (isset($key4)){
				$return_array[$pos][$key4] = $array[$pos][$key4];
				}
			if (isset($key5)){
				$return_array[$pos][$key5] = $array[$pos][$key5];
				}
			if (isset($key6)){
				$return_array[$pos][$key6] = $array[$pos][$key6];
				}
			if (isset($key7)){
				$return_array[$pos][$key7] = $array[$pos][$key7];
				}
			if (isset($key8)){
				$return_array[$pos][$key8] = $array[$pos][$key8];
				}
			if (isset($key9)){
				$return_array[$pos][$key9] = $array[$pos][$key9];
				}
			if (isset($key10)){
				$return_array[$pos][$key10] = $array[$pos][$key10];
				}
			if (isset($key11)){
				$return_array[$pos][$key11] = $array[$pos][$key11];
				}
			if (isset($key12)){
				$return_array[$pos][$key12] = $array[$pos][$key12];
				}
			if (isset($key13)){
				$return_array[$pos][$key13] = $array[$pos][$key13];
				}
		}
		return $return_array;
    }

	function getlastid($table,$field,$condition=''){
		global $db;
		if (!empty($condition)){
			$condition = ' WHERE '.$condition;
		}
		$dbs = $db->query("SELECT ".$field." FROM ".$table.$condition." ORDER BY ".$field." ASC");
		$count = @mysql_num_rows($dbs);
		$lastid = 1;
		if ($count > 0)
		{
			$dataq = @mysql_result($dbs,$count-1,0);
			$lastid = $dataq+1;
		}
		return $lastid;
	}
	
	function reorder($table,$field,$prkey,$condition=''){
		global $db;
		if (!empty($condition)){
			$condition = ' WHERE '.$condition;
		}
		$dbs = $db->fetch_all("SELECT * FROM ".$table.$condition." ORDER BY ".$field." ASC");
		if (sizeof($dbs) > 0){
			$i = 1;
			foreach ($dbs as $rs){
				$db->query("UPDATE ".$table." SET ".$field."=".$i." WHERE ".$prkey."='".$rs[$prkey]."'");
				$i++;
			}
		}
	}

	function encrypt($text){
		$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
		$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
		return trim(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, 'a82ksk1203ksdwqopdf2383k42l3', $text, MCRYPT_MODE_ECB, $iv)));
	}
	
    function decrypt($text){
        return trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, 'a82ksk1203ksdwqopdf2383k42l3', base64_decode($text), MCRYPT_MODE_ECB, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND)));
    }

	function resizeimage($maxwidth,$maxheight,$width,$height){
		$sizes = array("w" => 0, "h" => 0);
		if ($width > 0 && $height > 0){
			if ($width <= $maxwidth && $height <= $maxheight){
				$sizes['w'] = $width;
				$sizes['h'] = $height;
			}
			else{
				$percentw = $maxwidth/$width;
				$percenth = $maxheight/$height;
				if ($percentw > $percenth){
					$percent = $percenth;
					$rszwhat = 'height';
				}
				else{
					$percent = $percentw;
					$rszwhat = 'width';
				}
				$newwidth = $width * $percent;
				$newheight = $height * $percent;
				
				$sizes['w'] = $newwidth;
				$sizes['h'] = $newheight;
			}
		}
		return $sizes;
	}
	
	function roundnumberadmin($input,$roundingseparator,$roundingtype){
		if ($roundingseparator == 0){
			return round($input);
 		}		
		else{
			$rslength = strlen(strval(floor($roundingseparator)));
			$basicrounding = pow(10,$rslength);
			$result = floor($input/$basicrounding);
			$remaining = $input % $basicrounding;
			$temp = 0;
			$temp2 = 0;
			switch ($roundingtype){
				case 'floor' : 
					for ($a = 0; $a <= floor($basicrounding/$roundingseparator); $a++){
						$temp2 = $roundingseparator * $a;
						if ($temp2 >= $remaining){					
							break;
						}
						$temp = $roundingseparator * $a;
					}
					break;
				case 'ceil' : 
					for ($a = 0; $a <= floor($basicrounding/$roundingseparator); $a++){
						$temp = $roundingseparator * $a;
						if ($temp >= $remaining){					
							break;
						}
					}
					break;
				default : 
					for ($a = 0; $a <= floor($basicrounding/$roundingseparator); $a++){
						$temp2 = $roundingseparator * $a;
						if ($temp2 >= $remaining){					
							break;
						}
						$temp = $roundingseparator * $a;
					}
					$upperbound = $temp2 - $remaining;
					$lowerbound = $remaining - $temp;
					if ($upperbound <= $lowerbound){
						$temp = $temp2;
					}
					break;
			}
			$numbers = $result * $basicrounding + $temp;
 			return $numbers;
		}
	}
	
	function textInURL($text){
		$text = trim($text);
		$text = preg_replace("/[^a-zA-Z0-9 \-]+/", "", $text);
		$text = strtolower($text);
		$text = str_replace(" ","-",$text);
		
		return $text;
	}
	
	function checkFormValue($key, $default = '')
	{
		if (array_key_exists($key, $_GET))
		{
			return($_GET[$key]);
		}
		if (array_key_exists($key, $_POST))
		{
			return($_POST[$key]);
		}
		return $default;
	}
	
	function isFormKeyExists($key)
	{
		if (array_key_exists($key, $_GET) || array_key_exists($key, $_POST))
		{
			return(TRUE);
		}
		return(FALSE);
	}
	
	function checkArrayValue($key, $array, $default = '')
	{
		if (array_key_exists($key, $array))
		{
			return($array[$key]);
		}
		return($default);
	}
	
	function getFilenameAndExtension($path){
		$ext = pathinfo($path, PATHINFO_EXTENSION);

		return array(basename($path, ".".$ext),$ext);
	}
	
	function imageCopyMergeAlpha($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h, $pct){
		if (!isset($pct)){ 
			return false; 
		} 
		/* $pct /= 100;
		$w = imagesx( $src_im ); 
		$h = imagesy( $src_im ); 
		imagesavealpha( $src_im, true ); 
		imagealphablending( $src_im, true ); 
		$minalpha = 127; 
		for( $x = 0; $x < $w; $x++ ) 
		for( $y = 0; $y < $h; $y++ ){ 
			$alpha = ( imagecolorat( $src_im, $x, $y ) >> 24 ) & 0xFF; 
			if( $alpha < $minalpha ){ 
				$minalpha = $alpha; 
			} 
		} 
		for( $x = 0; $x < $w; $x++ ){
			for( $y = 0; $y < $h; $y++ ){ 
				$colorxy = imagecolorat($src_im,$x,$y);
				$alpha = ( $colorxy >> 24 ) & 0xFF;
				if( $minalpha !== 127 ){
					$alpha = 127 + 127 * $pct * ( $alpha - 127 ) / ( 127 - $minalpha );
				}
				else{
					$alpha += 127 * $pct; 
				}
				$alphacolorxy = imagecolorallocatealpha( $src_im, ( $colorxy >> 16 ) & 0xFF, ( $colorxy >> 8 ) & 0xFF, $colorxy & 0xFF, $alpha ); 
				if( !imagesetpixel( $src_im, $x, $y, $alphacolorxy ) ){ 
					return false; 
				} 
			} 
		} */
		imagecopy($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h); 
	}
	
	function resizeImageP($image,$percent,$width,$height,$newwidth,$newheight){
		$image_dest = @imagecreatetruecolor($newwidth, $newheight);

		$transparencyIndex = imagecolortransparent($image);
		$transparencyColor = array('red' => 0, 'green' => 0, 'blue' => 0);
		
		if ($transparencyIndex == 0) {
			$transparencyColor = imagecolorsforindex($image, $transparencyIndex);
		}
		
		$transparencyIndex = imagecolorallocate($image_dest, $transparencyColor['red'], $transparencyColor['green'], $transparencyColor['blue']);
		imagesavealpha($image_dest, true);
		imagealphablending($image_dest, false);
		imagefill($image_dest, 0, 0, $transparencyIndex);
		imagecolortransparent($image_dest, $transparencyIndex);

		imagecopyresampled($image_dest, $image, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
			
		return $image_dest;
	}
	
	function newgeneratepagelink($page,$counts){
		$pagelink = '';
		if ($counts > 1){
			$navp = '<a class="pagenavs" href="javascript:ajaxfromcookie('.($page-1).')" title="Halaman Sebelumnya">&lt;</a>&nbsp;';
			$navn = '<a class="pagenavs" href="javascript:ajaxfromcookie('.($page+1).')" title="Halaman Selanjutnya">&gt;</a>';
			$navfirst = '<a class="pagenavs" href="javascript:ajaxfromcookie(1)" title="Halaman Pertama">&lt;&lt;</a>&nbsp;&nbsp;';
			$navlast = '&nbsp;&nbsp;<a class="pagenavs" href="javascript:ajaxfromcookie('.($counts).')" title="Halaman Terakhir">&gt;&gt;</a>';
			if ($page == 1){
				$navp = '';
				$navfirst = '';
			}
			else if ($page == $counts){
				$navn = '';
				$navlast = '';
			}

			$pagelink .= $navfirst;
			$pagelink .= $navp;
			$left = $page-5;
			$right = $page+5;
			if ($left<1)
			{
				$right += abs($left)+1;
				$left=1;
			}
			if ($right>$counts)
			{
				$left += ($counts-$right);
				if ($left<1)
					$left=1;
				$right=$counts;
			}
			if ($left > 1)
				$pagelink .= '...&nbsp;';
			for ($l = $left; $l <= $right; $l++)
			{
				if ($l==$page)
					$pagelink .= '
						<span class="activepagenavs">'.$l.'</span>&nbsp;
					';
				else{
					$pagelink .= '
						<a class="pagenavs" href="javascript:ajaxfromcookie('.$l.')""><b>'.$l.'</b></a>&nbsp;
					';					
				}
			}
			if ($right < $counts)
				$pagelink .= '... &nbsp;&nbsp;';
			$pagelink .= $navn;
			$pagelink .= $navlast;
			
			$pagelink = '&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;'.$pagelink;
		}
		else{
			$pagelink = '';
		}

		return $pagelink;
	}
    
	function downloadfile($content,$filename){
		header("Pragma: public");
		header("Expires: 0");
		header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
		header("Content-Type: application/force-download");
		header("Content-Type: application/octet-stream");
		header("Content-Type: application/download");
		header("Content-Disposition: attachment;filename=".$filename);
		header("Content-Transfer-Encoding: binary");
		echo $content;
		exit;
	}
	
	function downloadZipFile($filelocation){
        header("Pragma: public");
        header("Expires: 0");
        header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
        header("Cache-Control: private", false);
        header("Content-Type: application/zip");
        header("Content-Disposition: attachment; filename=".basename($filelocation).";" );
        header("Content-Transfer-Encoding: binary");
        header("Content-Length: ".filesize($filelocation));
        readfile($filelocation);
	}
	
	function checkDir($dirs){
		if (!is_dir($dirs)){
			mkdir($dirs);
		}
	}
	
	function checkImageSource($source,$directory){
		$defaultreturn = '';
		if ($directory == 'products/'){
			$defaultreturn = 'images/no_image_available.gif';
		}
		if (empty($source)){
			return $defaultreturn;
		}
		else{
			if (file_exists($directory.$source)){
				return $directory.$source;
			}
			else{
				return $defaultreturn;
			}
		}
	}
?>