Your IP : 172.28.240.42


Current Path : /var/www/html/clients/e-nkama.ru/e-nkama_bitrix/bitrix/modules/bitrix.gossite/
Upload File :
Current File : /var/www/html/clients/e-nkama.ru/e-nkama_bitrix/bitrix/modules/bitrix.gossite/include.php

<?
require_once($_SERVER["DOCUMENT_ROOT"].'/bitrix/modules/main/start.php');
require_once($_SERVER["DOCUMENT_ROOT"].'/bitrix/modules/bitrix.gossite/lang/ru/include.php');
if (!class_exists('CGossiteMail')) {
	require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/bitrix.gossite/tools/SendMailAttachments.php');
}

if (!class_exists('Mobile_Detect')) {
	if (file_exists($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/bitrix.gossite/tools/Mobile_Detect.php'))
		require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/bitrix.gossite/tools/Mobile_Detect.php');
}

global $MESS;
if (!function_exists('MCSaveLog')) {
	function MCSaveLog($Str)
	{
		$file = $_SERVER['DOCUMENT_ROOT'] . '/log.php';
		$Str = print_r($Str, true);
		$Str = $Str . "\n";
		if (!$handle = fopen($file, 'a')) {
		}
		if (fwrite($handle, $Str) === FALSE) {
		}
	}
}
if (!function_exists('MCShowLog')) {
	function MCShowLog()
	{
		$arg_list = func_get_args();
		echo '<pre>';
		foreach ($arg_list as $arg){
			print_r($arg);
			echo '<br>------------------------------------<br>';
		}
		echo '</pre>';
	}
}
if (!class_exists('GossiteTools')) {
	class GossiteTools{
		static function GeneratePassword($length) 
		{
			$symbolBase = array('a', 'b', 'c', 'd', 'e', 'f',
				'g', 'h', 'i', 'j', 'k', 'l',
				'm', 'n', 'o', 'p', 'r', 's',
				't', 'u', 'v', 'x', 'y', 'z',
				'A', 'B', 'C', 'D', 'E', 'F',
				'G', 'H', 'I', 'J', 'K', 'L',
				'M', 'N', 'O', 'P', 'R', 'S',
				'T', 'U', 'V', 'X', 'Y', 'Z',
				'1', '2', '3', '4', '5', '6',
				'7', '8', '9', '0');
			$password = '';
			$symbolBaseLength = count($symbolBase);
			for ($i = 0; $i < $length; $i++) {
				$symbolIndex = rand(0, $symbolBaseLength - 1);
				$password .= $symbolBase[$symbolIndex];
			}
			return $password;
		}
	}
}
	
if (!class_exists('GossiteEvents')) {
	class GossiteEvents{
		function gossiteOnEndBufferContent(&$content)
		{
			$alreadyInstalled=COption::GetOptionString('bitrix.gossite', "mobile_installed", "", SITE_ID);
			if($alreadyInstalled=="Y")
			{
				$content = preg_replace('#<meta id="bx_mobile_viewport" name="viewport" content="(.+)">#U', '<meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no">', $content);
			}
		}
		
		function OnCreatePanel()
		{
			if($GLOBALS["USER"]->IsAdmin() && COption::GetOptionString("main", "wizard_solution", "", SITE_ID) == "gossite")
			{
				$GLOBALS['APPLICATION']->AddPanelButton(array(
				   'HREF'=>"/bitrix/admin/wizard_install.php?lang=ru&wizardName=bitrix:government&wizardSiteID=".SITE_ID."&".bitrix_sessid_get(),
				   'ID'=>'gosportal',
				   'ICON' => 'bx-panel-site-wizard-icon',
				   'ALT'=>GetMessage('GOSSITE_BUTTON_COMMON_TITLE'),
					'TEXT'=>GetMessage('GOSSITE_BUTTON_COMMON_TEXT'),
				   'MAIN_SORT'=>'1025',
				   'SORT'=>20,
				   'TYPE' => 'BIG'));
			}
			global $APPLICATION;
			$page = $APPLICATION->GetCurPage();
			$checkType='';
			if (isset($_COOKIE['siteType'])) $checkType=$_COOKIE['siteType'];
			$detect = new Mobile_Detect();
			if ($checkType!=='original'&&$checkType!=='special'){
				if ($detect->isMobile() && ($detect->isTablet() && !$detect->isiOS()))
					$checkType='pda';
			}
			if ($page==SITE_DIR || $page==SITE_DIR."index.php"){
				if (COption::GetOptionString('bitrix.gossite', 'installed',"N", SITE_ID)==='Y'){
					if ($checkType=='pda'){
	//					LocalRedirect("/index_mobile.php");
					}
					elseif ($checkType=='special')
						LocalRedirect(SITE_DIR."index_contrast.php");
				}
			}
			elseif ($page==SITE_DIR."index_contrast.php"){
				if ($checkType=='pda'){
	//				LocalRedirect("/index_mobile.php");
				}
				elseif ($checkType=='original')
					LocalRedirect(SITE_DIR."index.php");
			}
			elseif ($page==SITE_DIR."index_mobile.php"){
				if ($checkType=='special')
					LocalRedirect(SITE_DIR."index_contrast.php");
				elseif ($checkType=='original')
					LocalRedirect(SITE_DIR."index.php");
			}
		}
		function OnProlog()
		{
			if($GLOBALS['USER']->IsAdmin())
			{
				unset($GLOBALS['APPLICATION']->arPanelButtons['portal_wizard']);
			}
		}
		function DetectMobile(){
			global $APPLICATION;
			$checkType='';
			if (isset ($_GET['type'])){
				if ($_GET['type']=='pda' || $_GET['type']=='special' || $_GET['type']=='original')
					$checkType = $_GET['type'];
			}
			else{
				if (isset($_COOKIE['siteType']))
					$checkType=$_COOKIE['siteType'];
			}

			$page = $APPLICATION->GetCurPage();

			$detect = new Mobile_Detect();
			if ($checkType!=='original'&&$checkType!=='special'){
				if ($detect->isMobile() && !$detect->isTablet())
					$checkType='pda';
			}
			setcookie('siteType', $checkType, time()+3600*24*30,'/');
			define('siteType',$checkType);
			if ($page==SITE_DIR || $page==SITE_DIR."index.php"){
				if (COption::GetOptionString('bitrix.gossite', 'installed',"N", SITE_ID)==='Y'){
					if ($checkType=='pda'){
	//					LocalRedirect("/index_mobile.php");
					}
					elseif ($checkType=='special')
						LocalRedirect(SITE_DIR."index_contrast.php");
				}
			}
			elseif ($page==SITE_DIR."index_contrast.php"){
				if ($checkType=='pda'){
	//				LocalRedirect("/index_mobile.php");
				}
				elseif ($checkType=='original')
					LocalRedirect(SITE_DIR."index.php");
			}
			elseif ($page==SITE_DIR."index_mobile.php"){
				if ($checkType=='special')
					LocalRedirect(SITE_DIR."index_contrast.php");
				elseif ($checkType=='original')
					LocalRedirect(SITE_DIR."index.php");
			}
		}

		function gossiteOnAfterResultAdd($WEB_FORM_ID, $RESULT_ID)
		{
			global $USER;
			$gossiteFORM_ID = COption::GetOptionString('bitrix.gossite', "internet_reception_form_id", "", SITE_ID);
			$gossiteFORM_EMAIL = COption::GetOptionString('bitrix.gossite', "internet_reception_form_email", "", SITE_ID);
			$gossiteSUPPORT_STATUSE = COption::GetOptionString('bitrix.gossite', "internet_reception_support_statuse", "", SITE_ID);
			
			$gossiteFORM_REQ_ID = COption::GetOptionString('bitrix.gossite', "request_information_form_id", "", SITE_ID);
			$gossiteFORM_REQ_EMAIL = COption::GetOptionString('bitrix.gossite', "request_information_form_email", "", SITE_ID);
			$gossiteREQ_SUPPORT_STATUSE = COption::GetOptionString('bitrix.gossite', "request_information_support_statuse", "", SITE_ID);
			
		
			if (($WEB_FORM_ID == $gossiteFORM_ID)||($WEB_FORM_ID == $gossiteFORM_REQ_ID))
			{
				CForm::GetResultAnswerArray(
						$WEB_FORM_ID, 
						$arrColumns, 
						$arrAnswers, 
						$arrAnswersVarname, 
						array("RESULT_ID" => $RESULT_ID
					)
				);
				CFormResult::GetDataByID(
					$RESULT_ID,
					array('STATUS_ID'),
					$a1,
					$a2
				);
				if ($WEB_FORM_ID == $gossiteFORM_ID) {
					$mailField = array_shift($arrAnswers[$RESULT_ID][$gossiteFORM_EMAIL]);
				}
				else {
					$mailField=array_shift($arrAnswers[$RESULT_ID][$gossiteFORM_REQ_EMAIL]);
				}
				$email = $mailField['USER_TEXT'];

				if($email)
				{
					$user_info=array();
					if ($USER->IsAuthorized()) 
					{			
						$user_id = $USER->GetID();	
						$user_info = $USER->GetByID($user_id);
						$user_info = $user_info->Fetch();		
					}
					else
					{
						$filter = array("ACTIVE"=>"Y","EMAIL"=>$email);
						$dbUser = $USER->GetList(($by="id"), ($order="desc"), $filter);
						if ($arUser = $dbUser->Fetch()) 
						{
							$user_id = $arUser['ID'];	
							$user_info = $arUser;
						}
					}			
					$arEventFields = array("DATETIME" => ConvertTimeStamp(time(), "FULL", "ru"));
					$arSupFields=array();
					$arFixedFieldsEvent=array("NAME", "TEXT", "TYPE", "ADDRESS", "PHONE", "EMAIL");
					$arFixedFieldsSup=array("EMAIL", "TYPE", "TITLE");
					foreach($arrAnswersVarname[$RESULT_ID] as $fieldCode=>$arAnswers)
					{
						foreach($arAnswers as $answer)
						{
							if(!in_array($fieldCode, $arFixedFieldsEvent))
							{
								$arEventFields["TEXT"].=$answer['TITLE'].": ";
								if($answer['FIELD_TYPE']=="file")
								{
									$arFile = CFile::GetFileArray($answer['USER_FILE_ID']);
									$arEventFields["TEXT"].='http://'.str_replace(' ','%20',$_SERVER['SERVER_NAME'].$arFile["SRC"]);
								}
								else
								{
									if($answer['ANSWER_TEXT'] && !$answer['USER_TEXT'])
										$arEventFields["TEXT"].=$answer['ANSWER_TEXT'];
									else
										$arEventFields["TEXT"].=$answer['USER_TEXT'];
								}
								$arEventFields["TEXT"].="\r\n\r\n";
							}
							else
							{
								if($answer['ANSWER_TEXT'] && !$answer['USER_TEXT'])
									$arEventFields[$fieldCode].=$answer['ANSWER_TEXT'];
								else
									$arEventFields[$fieldCode].=$answer['USER_TEXT'];
							}
							
							if(!in_array($fieldCode, $arFixedFieldsSup))
							{
								$arSupFields["MESSAGE"].=$answer['TITLE'].": ";
								if($answer['FIELD_TYPE']=="file")
								{
									$arFile = CFile::GetFileArray($answer['USER_FILE_ID']);
									$arSupFields["MESSAGE"].='http://'.str_replace(' ','%20',$_SERVER['SERVER_NAME'].$arFile["SRC"]);
								}
								else
								{							
									if($answer['ANSWER_TEXT'] && !$answer['USER_TEXT'])
										$arSupFields["MESSAGE"].=$answer['ANSWER_TEXT'];
									else
										$arSupFields["MESSAGE"].=$answer['USER_TEXT'];							
								}
								$arSupFields["MESSAGE"].="\r\n\r\n";
							}
							else
							{
								if($answer['ANSWER_TEXT'] && !$answer['USER_TEXT'])
									$arSupFields[$fieldCode].=$answer['ANSWER_TEXT'];
								else
									$arSupFields[$fieldCode].=$answer['USER_TEXT'];
							}
													
						}				
					}
					if(CModule::IncludeModule("support"))
					{
						if ($WEB_FORM_ID == $gossiteFORM_ID) {
							$msg_title = GetMessage('appeal_to').$arSupFields['TITLE'];
							$STATUS_ID = $gossiteSUPPORT_STATUSE;
							$CATEGORY_SID = "appeal";
						}
						else {
							$msg_title = GetMessage('request_to').$arSupFields['TITLE'];
							$STATUS_ID = $gossiteREQ_SUPPORT_STATUSE;
							$CATEGORY_SID = "request";
						}
						$arFields = array(
							"OWNER_USER_ID" => $user_id,
							"OWNER_SID"  => $email,
							"SOURCE_SID"  => "email",
							"MESSAGE_AUTHOR_SID"  => $email,
							"MESSAGE_SOURCE_SID"  => "email",
							"TITLE"  => $msg_title,
							"MESSAGE" => $arSupFields['MESSAGE'],
							"STATUS_ID" => $STATUS_ID,
							"CATEGORY_SID" => $CATEGORY_SID,
							"UF_FORM_RESULT" => $RESULT_ID
							);
						$TICKET_ID="";
						$RESPONSIBLE_USER_ID = COption::GetOptionString('support','DEFAULT_RESPONSIBLE_ID',0);
						if (intval($RESPONSIBLE_USER_ID)!=0) {
							$arFields['RESPONSIBLE_USER_ID'] = $RESPONSIBLE_USER_ID;
						}
						$NEW_TICKET_ID = CTicket::Set($arFields, $MESSAGE_ID, $TICKET_ID, "N");
						if ($NEW_TICKET_ID) 
						{
							$arEventFields["ID"] = $NEW_TICKET_ID;
							CEvent::Send("TICKET_NEW_FOR_EXCHANGE", SITE_ID, $arEventFields);
						}
					}
				}
			}		
		}
		
	// Îáðàáîò÷èêè ñîáûòèÿ âûçûâàþòñÿ ïåðåä äîáàâëåíèåì íîâîãî ðåçóëüòàòà âåá-ôîðìû.
	// Ìîæåò áûòü èñïîëüçîâàíî äëÿ êàêèõ-ëèáî äîïîëíèòåëüíûõ ïðîâåðîê èëè èçìåíåíèÿ çíà÷åíèÿ ïîëåé ðåçóëüòàòà âåá-ôîðìû. 
	// Âîçâðàò îáðàáîò÷èêîì êàêèõ-ëèáî çíà÷åíèé íå ïðåäïîëàãàåòñÿ. 
	// Îøèáêè íóæíî âîçâðàùàòü ïîñðåäñòâîì $APPLICATION->ThrowException().

	// WEB_FORM_ID - ID âåá-ôîðìû.
	// arFields - Ìàññèâ ïîëåé ðåçóëüòàòà äëÿ çàïèñè â ÁÄ.
	// arrVALUES - Ìàññèâ çíà÷åíèé îòâåòîâ ðåçóëüòàòà âåá-ôîðìû.

		function gossiteOnBeforeResultAdd($WEB_FORM_ID, $arFields, $arrVALUES)
		{
			global $APPLICATION;
			global $USER;
			$gossiteFORM_ID = COption::GetOptionString('bitrix.gossite', "internet_reception_form_id", "", SITE_ID);
			$gossiteFORM_EMAIL = COption::GetOptionString('bitrix.gossite', "internet_reception_form_email", "", SITE_ID);
			$gossiteFORM_USER_REGISTER = COption::GetOptionString('bitrix.gossite', "internet_reception_register_user", "", SITE_ID);

			$gossiteFORM_REQ_ID = COption::GetOptionString('bitrix.gossite', "request_information_form_id", "", SITE_ID);
			$gossiteFORM_REQ_EMAIL = COption::GetOptionString('bitrix.gossite', "request_information_form_email", "", SITE_ID);
			$gossiteFORM_REQ_USER_REGISTER = COption::GetOptionString('bitrix.gossite', "internet_reception_register_user", "", SITE_ID);


			if (($WEB_FORM_ID == $gossiteFORM_ID  && $gossiteFORM_EMAIL)||($WEB_FORM_ID == $gossiteFORM_REQ_ID  && $gossiteFORM_REQ_EMAIL))
			{
				if (!$USER->IsAuthorized()) {
					$register=false;
					$email='';
					if ($gossiteFORM_USER_REGISTER=="Y" && $WEB_FORM_ID == $gossiteFORM_ID) {
						$register=true;
						$email=$arrVALUES['form_email_'.$gossiteFORM_EMAIL];
					} elseif ($gossiteFORM_REQ_USER_REGISTER=="Y" && $WEB_FORM_ID == $gossiteFORM_REQ_ID) {
						$register=true;
						$email=$arrVALUES['form_email_'.$gossiteFORM_REQ_EMAIL];
					}
					if ($register) {
						$filter = array("ACTIVE"=>"Y","EMAIL"=>$email);
						$dbUser = $USER->GetList(($by="id"), ($order="desc"), $filter);
						if(empty($email))
							$APPLICATION->ThrowException(GetMessage('EMAIL_EMPTY_ERROR'));

						if ($arUser = $dbUser->Fetch())
							$APPLICATION->ThrowException(GetMessage('EMAIL_EXIST_ERROR'));

						$password = GossiteTools::GeneratePassword(8); //ãåíåðàöèÿ ïàðîëÿ

						//ïîëå Èìÿ
						$rsField = CFormField::GetBySID('NAME');
						$arField = $rsField->Fetch();
						$fio = 'form_'.$arField['TITLE_TYPE'].'_'.$arField['ID'];

						$can_send = $USER->Register($email, "",  $arrVALUES[$fio], $password, $password, $email);


						if ($can_send)
						{
							CUser::SendUserInfo($USER->GetID(), SITE_ID, "");
							$USER->Logout();
						}
						else
						{
							$APPLICATION->ThrowException(GetMessage('USER_REGISTER_ERROR'));
						}
					}
				}
			}
		}

		function gossiteGetObjectMapCoords (&$arFields) {
			/** @todo: Need optimization*/
			if (array_key_exists('IBLOCK_ID',$arFields)) {
				$rsIB = CIBlock::GetByID($arFields['IBLOCK_ID']);
				$arIB = $rsIB->GetNext();
				$SITE_ID = $arIB['LID'];
			} else {
				$SITE_ID = SITE_ID;
			}
			$current_objects_ib = array(
				COption::GetOptionString('bitrix.gossite', "objects_ib", 0, $SITE_ID),
				COption::GetOptionString('bitrix.gossite', "routes_ib", 0, $SITE_ID),
				COption::GetOptionString('bitrix.gossite', "events_ib", 0, $SITE_ID),
			);

			if (in_array($arFields['IBLOCK_ID'],$current_objects_ib)) {
				if ($arFields['IBLOCK_ID']==$current_objects_ib[0]) {
					$ADDRESS = COption::GetOptionString('bitrix.gossite', "objects_address", 0, $SITE_ID);
					$LAT = COption::GetOptionString('bitrix.gossite', "objects_lat", 0, $SITE_ID);
					$LNG = COption::GetOptionString('bitrix.gossite', "objects_lng", 0, $SITE_ID);
				} elseif ($arFields['IBLOCK_ID']==$current_objects_ib[1]) {
					$ADDRESS = COption::GetOptionString('bitrix.gossite', "routes_address", 0, $SITE_ID);
					$LAT = COption::GetOptionString('bitrix.gossite', "routes_lat", 0, $SITE_ID);
					$LNG = COption::GetOptionString('bitrix.gossite', "routes_lng", 0, $SITE_ID);
				}
				else {
					$ADDRESS = COption::GetOptionString('bitrix.gossite', "events_address", 0, $SITE_ID);
					$LAT = COption::GetOptionString('bitrix.gossite', "events_lat", 0, $SITE_ID);
					$LNG = COption::GetOptionString('bitrix.gossite', "events_lng", 0, $SITE_ID);
				}

				if ($LAT==0 || $LNG==0 || $ADDRESS==0)
					return;

				$rsSites = CSite::GetByID('s1');
				$arSite = $rsSites->Fetch();
				$charset = $arSite['CHARSET'];

				$address =	current($arFields['PROPERTY_VALUES'][$ADDRESS]);
				$address = $address['VALUE'];
				if (!empty($address)) {
					if(ToLower($charset)=="windows-1251")
					{
						$address=iconv('windows-1251', 'UTF-8', $address);
					}
					$geocode = simplexml_load_file('http://maps.googleapis.com/maps/api/geocode/xml?address='.urlencode($address).'&sensor=false');
					$lat=$geocode->result->geometry->location->lat;
					$lon=$geocode->result->geometry->location->lng;
					if(ToLower($charset)=="windows-1251")
					{
						$lat=iconv('UTF-8', 'windows-1251', $lat);
						$lon=iconv('UTF-8', 'windows-1251', $lon);
					}
					$arFields['PROPERTY_VALUES'][$LAT] = array(array('VALUE'=>$lat));
					$arFields['PROPERTY_VALUES'][$LNG] = array(array('VALUE'=>$lon));
				}
			}
		}
	}

	class CGovernment {
	  static $Regions = false;
	  static $RegionCapitals = false;
	  
	  function InitNames() { 
		if (CGovernment::$Regions == false){
			CGovernment::$Regions = array();
			$arRegionsID = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,53,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,79,82,83,86,87,89);
			foreach($arRegionsID as $regionID){
				CGovernment::$Regions[$regionID] = GetMessage('gossite_region_'.$regionID);
			}
		}
		  
		if (CGovernment::$RegionCapitals == false){
			CGovernment::$RegionCapitals = array();
			$arCapitalsID = array(77,78,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,53,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,79,82,83,86,87,89);
			foreach($arCapitalsID as $capitalID){
				CGovernment::$RegionCapitals[$capitalID] = GetMessage('gossite_city_'.$capitalID);
			}
		}
	  }
	  
	  function RegionExists($region) {
		return isset(self::$Regions[$region]);
	  }
	  
	  function GetRegionName($region) {
		return self::$Regions[$region];
	  }

	  function ScanCoats($dirName, $siteId) {
		  if (!file_exists($_SERVER['DOCUMENT_ROOT'] . $dirName)) return;
		$coatDir = dir($_SERVER['DOCUMENT_ROOT'] . $dirName);
		while (false !== ($entry = $coatDir->read())) {
			if (substr($entry, -4) == '.png') {
			  ?>
			  <div style="height:108px;width:88px;float:left;padding:4px;text-align:center;">
				<a href="#" onclick="return setCoat('<?echo $dirName ?><?echo $entry ?>','<?=$siteId?>');"><img src="<?echo $dirName ?><?echo $entry ?>"<?if ($nameArray !== null){?>  width="48" height="56"<?}?> style="border:0;" /></a><br/>
				<small><? echo $entry ?></small>
				<?
			  ?>
			  </div>
			  <?
			}
		}
		$coatDir->close();  
	  }
	  
	  function showCoats($dirName, $nameArray = null, $siteID) {
		if ($nameArray  == 'city') {
		  $nameArray = CGovernment::$RegionCapitals;
		  asort($nameArray);
		}
		elseif ($nameArray  == 'region') {
		  $nameArray = CGovernment::$Regions;
		  asort($nameArray);
		}
		
		foreach ($nameArray as $code => $name) {
		  if (file_exists($_SERVER['DOCUMENT_ROOT'] . $dirName . $code . '.png')) {
			?>
			<div style="height:108px;width:88px;float:left;padding:4px;text-align:center;">
			  <a href="#" onclick="return setCoat('<?echo $dirName ?><?echo $code ?>.png','<?=$siteID?>');"><img src="<?echo $dirName ?><?echo $code ?>.png" width="48" height="56" style="border:0;" /></a><br/>
			  <small><? echo $name ?></small>
			</div>
			<?
		  }
		}
	  }

		function InitImage($imageID, $imageWidth, $imageHeight = 0, $type = BX_RESIZE_IMAGE_PROPORTIONAL)
		{
			$imageFile = false;
			$imageImg = "";

			if(($imageWidth = intval($imageWidth)) <= 0) $imageWidth = 100;
			if(($imageHeight = intval($imageHeight)) <= 0) $imageHeight = $imageWidth;

			$imageID = intval($imageID);

			if($imageID > 0)
			{
				$imageFile = CFile::GetFileArray($imageID);
				if ($imageFile !== false)
				{
					$arFileTmp = CFile::ResizeImageGet(
						$imageFile,
						array("width" => $imageWidth, "height" => $imageHeight),
						$type,
						false
					);
					$imageImg = CFile::ShowImage($arFileTmp["src"], $imageWidth, $imageHeight, "border=0", "");
				}
			}

			return array("FILE" => $imageFile, "CACHE" => $arFileTmp, "IMG" => $imageImg);
		}

		public static function PhpToJSObject($arData, $bWS = false, $bSkipTilda = false)
		{
			static $aSearch = array("\r", "\n");

			if(is_array($arData))
			{
				$i = -1;
				$j = -1;
				if (!empty($arData))
				{
					foreach($arData as $j => $temp)
					{
						$i++;
						if ($j !== $i)
							break;
					}
				}

				if($j === $i)
				{
					foreach($arData as $key => $value)
					{
						if(is_numeric($value))
						{

								$arData[$key] = $value;
						}
						elseif(is_string($value))
						{
							if(preg_match("#['\"\\n\\r<\\\\\x80]#", $value))
								$arData[$key] = "'".CUtil::JSEscape($value)."'";
							else
								$arData[$key] = "'".$value."'";
						}
						elseif(is_bool($value))
						{
							if($value === true)
								$arData[$key] = 'true';
							else
								$arData[$key] = 'false';
						}
						elseif(is_array($value))
						{
							$arData[$key] = CGovernment::PhpToJSObject($value, $bWS, $bSkipTilda);
						}
						else
						{
							if(preg_match("#['\"\\n\\r<\\\\\x80]#", $value))
								$arData[$key] = "'".CUtil::JSEscape($value)."'";
							else
								$arData[$key] = "'".$value."'";
						}
					}
					return '['.implode(',', $arData).']';
				}

				$sWS = ','.($bWS ? "\n" : '');
				$res = ($bWS ? "\n" : '').'{';
				$first = true;
				foreach($arData as $key => $value)
				{
					if ($bSkipTilda && substr($key, 0, 1) == '~')
						continue;

					if($first)
						$first = false;
					else
						$res .= $sWS;

					if(preg_match("#['\"\\n\\r<\\\\\x80]#", $key))
						$res .= "'".str_replace($aSearch, '', CUtil::JSEscape($key))."':";
					else
						$res .= "'".$key."':";

					if(is_numeric($value))
					{

						$res .= $value;
					}
					elseif(is_string($value))
					{
						if(preg_match("#['\"\\n\\r<\\\\\x80]#", $value))
							$res .= "'".CUtil::JSEscape($value)."'";
						else
							$res .= "'".$value."'";
					}
					elseif(is_bool($value))
					{
						if($value === true)
							$res .= 'true';
						else
							$res .= 'false';
					}
					elseif(is_array($value))
					{
						$res .= CGovernment::PhpToJSObject($value, $bWS, $bSkipTilda);
					}
					else
					{
						if(preg_match("#['\"\\n\\r<\\\\\x80]#", $value))
							$res .= "'".CUtil::JSEscape($value)."'";
						else
							$res .= "'".$value."'";
					}
				}
				$res .= ($bWS ? "\n" : '').'}';

				return $res;
			}
			elseif(is_bool($arData))
			{
				if($arData === true)
					return 'true';
				else
					return 'false';
			}
			else
			{
				if(preg_match("#['\"\\n\\r<\\\\\x80]#", $arData))
					return "'".CUtil::JSEscape($arData)."'";
				else
					return "'".$arData."'";
			}
		}
	}
}
?>