function round_like_php(val,precision)
{
	 return parseFloat(parseFloat(val).toFixed(precision));
}

function explode_php(delimiter,string,limit){var emptyArray={0:''};if(arguments.length<2||typeof arguments[0]=='undefined'||typeof arguments[1]=='undefined'){return null}if(delimiter===''||delimiter===false||delimiter===null){return false}if(typeof delimiter=='function'||typeof delimiter=='object'||typeof string=='function'||typeof string=='object'){return emptyArray}if(delimiter===true){delimiter='1'}if(!limit){return string.toString().split(delimiter.toString())}else{var splitted=string.toString().split(delimiter.toString());var partA=splitted.splice(0,limit-1);var partB=splitted.join(delimiter.toString());partA.push(partB);return partA}}

function ceil_php(value){return Math.ceil(value)}

function substr_php(f_string,f_start,f_length){f_string+='';if(f_start<0){f_start+=f_string.length}if(f_length==undefined){f_length=f_string.length}else if(f_length<0){f_length+=f_string.length}else{f_length+=f_start}if(f_length<f_start){f_length=f_start}return f_string.substring(f_start,f_length)}

function strlen_php(string){return(string+'').length}

function strpos_php(haystack,needle,offset){var i=(haystack+'').indexOf(needle,offset);return i===-1?false:i}

function round_php(val,precision){return parseFloat(parseFloat(val).toFixed(precision))}

function CurrencyMax(currency)
{
	switch(currency)
	{
		case"WMZ":return 50;break;
		case"WMU":return 250;break;
		case"WMR":return 1500;break;
		default: return false;
	}
}

function wmtcc(summ)
{
	if(summ==0)
		return summ;
	return summ*0.008;
}

function wtc(summ)
{
	if(summ==0)
		return summ;
	return ceil_php((0.008*summ)*100)/100;
}

function FractionPart(value)
{
	value=""+value;
	var pn=value.substring(value.indexOf("."),value.length);
	return pn;
}

function FractionUp(value)
{
	//alert('summa ='+value);
	var vint=parseInt(value);
	var pn=value-vint;
	//alert('a');
	if(FractionPart(parseFloat(value))[0]!=".")
	{
		return value;
	}
	//alert('b');
	pn=round_php(pn,2);
	if(pn==1)
	{
		return vint+1;
	}
	var cop=substr_php(pn,0,4);
	var tri=substr_php(pn,3,1);
	//alert('c');
	if(tri == '')
	{
		return value;
	}
	//alert('cop ='+cop+'; tri ='+tri+'');
	if(tri==5)
	{	
		return parseFloat(vint)+parseFloat(cop);
	}
	else if(tri==0)
	{
		return parseFloat(vint)+0.05;
	}
	else
	{
		if(tri>4)
		{
			cop=round_php(cop,1);
		}
		else
		{
			//alert('tri = '+tri);
			cop=substr_php(pn,0,3)+"5";
		}
	}
	return parseFloat(vint)+parseFloat(cop);
}

/*
function FractionUp(value)
{
	return round_like_php(value,2);
	
	var vint=parseInt(value);
	var pn=value-vint;
	if(FractionPart(parseFloat(value))[0]!=".")
		return value;
	pn = round_php(pn,2);
	var cop=substr_php(pn,0,4);
	var tri=substr_php(pn,3,1);	
	if(tri==5)
	{	
	
	}
	else
	{
		if(tri>4)
			cop=round_php(cop,1);
		else
			cop=substr_php(pn,0,3)+"5";
	}
	var res = parseFloat(vint)+parseFloat(cop);
	return res;
}
*/

function FractionDown(value)
{
	var vint=parseInt(value);
	//prompt('vint=',vint);
	pn=value-vint;
	//prompt('pn=',pn);
	if(FractionPart(parseFloat(value))[0]!=".")
	return value;
	pn = round_php(pn,2);
	var cop=substr_php(pn,0,4);
	//prompt('cop=',cop);
	var tri=substr_php(pn,3,1);
	//prompt('tri=',tri);
	if(tri>5)
	{
		//prompt('substr pn=',substr_php(pn,0,3));
		cop=substr_php(pn,0,3)+"5";
		//prompt('cop=',cop);
	}
	else
	{
		if(tri<5)
		{
			//prompt('substr cop=',substr_php(cop,0,3));
			cop=substr_php(cop,0,3);
			//prompt('cop=',cop);
		}
	}
	var res = parseFloat(vint)+parseFloat(cop);
	//prompt('res=',res);
	return res;
}

function FractionZero(value)
{
	var vint=parseInt(value);
	var pn=value-vint;
	if(FractionPart(parseFloat(value))[0]!=".")
		return value;
	pn = round_php(pn,2);
	var cop=substr_php(value,2,4);
	if(strlen_php(cop)>1)
		return value;
	return value+"0";
}

function Cent(value)
{
	var strpos=strpos_php(value,".");
	if(strpos!=false)
	{
		value=substr_php(value,0,strpos+3);
		return value;
	}
	else return value;
}
/*
function strlen( mixed_var ) {
   return mixed_var.length;
   }

// Преобразует строку в нижний регистр
function strtolower( mixed_var ) {
   return mixed_var.toLowerCase();
   }

// Преобразует строку в верхний регистр
function strtoupper( mixed_var ) {
   return mixed_var.toUpperCase();
   }

// Преобразует строку в массив
function str_split( mixed_var, mixed_num ) {
   // Выходной массив
   var result = new Array();
   // Если порядок разбиений равен 1, тогда в цикле просто
   // переписываем в массив символ в указанной позиции
   if( mixed_num == 1 ) {
      for(var i = 0; i < mixed_var.length; i++) {
         result.push( mixed_var.charAt(i) );
         }
      }
   // Если порядок разбиений больше единицы, тогда в цикле просто
   // вырезаем кусок строки слева, помещаем в массив и обрезаем
   // исходную строку, в соответствии с порядком деления
   if( mixed_num > 1 ) {
      while(mixed_var.length > 0) {
         // Вырезаем слева кусок
         var mix_var = mixed_var.substring( 0, mixed_num );
         // Записываем в массив
         result.push(mix_var);
         // Обрезаем исходную строку
         mixed_var = mixed_var.substr(mixed_num);
         }
      }
   // Если порядок деления меньше единицы, тогда всю строку пишем
   // в первый элемент массива
   if( mixed_num < 1 ) {
      result[0] = mixed_var;
      }
   // На выходе получим массив из подстрок исходной строки, к примеру для строки "qwerty"
   // и порядка разделения "2" получим массив -> [qw, er, ty]
   return result;
   }

// Переворачивает строку
function strrev( mixed_var ) {
   // Переменная, получает значение результата оборота строки
   var result = "";
   // Если длина строки не равна нулю
   if( mixed_var.length != 0 ) {
      // В переменную результата пишем результат через
      // посимвольную конкатенацию
      for(var i = mixed_var.length - 1; i >= 0; i--) {
         result += mixed_var.charAt(i);
         }
      }
   // Возвращаем результат
   return result;
   }

// Возвращает повторяющуюся строку
function str_repeat( mixed_var, mixed_num ) {
   // Переменная, получает значение результата конкатенации строки
   var result = "";
   // Если количество повторений больше единицы
   if( mixed_num >= 1 ) {
      for(var i = 0; i < mixed_num; i++) {
         result += mixed_var;
         }
      }
   // Возвращаем результат
   return result;
   }

// Возвращает ASCII код символа
function ord( mixed_var ) {
   // Переменная, получает ASCII-значение первого символа строки
   var result = "";
   // Получение скан-кода
   if(mixed_var.length != 0) {
      result = mixed_var.charCodeAt(0);
      }
   // Если пришёл пустой символ строки, тогда выдаём просто ошибку
   if(result == "") {
      result = "None";
      }
   // Возвращаем результат
   return result;
   }

// возвращает символ находящийся на позиции pos от начала слова. Аналог $string{pos}
function letter_posion(string , position) {
   return string.charAt(position);
   }

// Возвращает символ / строку по указанному uniкоду
function un_ord( unicode [, unicode2, unicode3, ...] ) {
   return unicode.fromCharCode (unicode);
   }

// Возвращает позицию первого вхождения подстроки needle в строку haystack.
// аналог strstr
// аналог strpos
function strpos( haystack, needle [, offset] ) {
   if(offset) offset = offset ;
   else offset = 0 ;
   return haystack.indexOf(needle, offset);
   }

// аналог strrpos
// Возвращает позицию первого вхождения подстроки needle в строку haystack.
function strRpos( haystack, needle [, offset] ) {
   if(offset) offset = offset ;
   else offset = 0 ;
   return haystack.lastindexOf(needle, offset);
   }

// Возвращает массив строк, полученных разбиением строки string с использованием
// separator в качестве разделителя.
// аналог explode
function explode(separator, string [, limit]) {
   return string.split (seperator , limit);
   }

// Аналог join на Javascript
// Аналог implode на Javascript
function implode(array, separator) {
   return array.join(separator);
   }

function trim(str) {
   str = str.replace(/(^ *)|( *$)/,"");
   reurn str;
   }
function rtrim(str) {
   str = str.replace(/( *$)/,"");
   reurn str;
   }
function ltrim(str) {
   str = str.replace(/(^ *)/,"");
   reurn str;
   }

function wordwrap (str [, width [, break [, cut]]] ) {
   // Аналог wordwrap на javascript
   // wordwrap javascript analog
   // str = string // текст
   // width = next line after x chars // разбивать тест каждые x символов
   // break = string used to split string (< br>) // Символ разбивания строки
   // cut = cut words or wrap after space // разрезать слово по середине или только после слова
   // Аргументы width и break необязательны и по умолчанию равны 75 и '<br/>' соответственно.
   // Выставляем значения по умолчанию.
   // Defining default values
   w = 75;
   b = "<br/>";
   c = False;
   if(width) w = width;
   if(break) b = break;
   if(cut) c = 1;
   if(!str) return false;
   if(str.length < w) return str;
   var strarr = new Array();
   var count = Math.ceil(str.length / w) ;
   if(c) {
      for(i = 0; i < count; i++) {
         strarr[i] = str.substr(i * w, w);
         }
      }
   else {
      var i = 0;
      while(str.length > 0) {
         var forward = str.indexOf(" ", (w - 1));
         if(forward ==- 1) forward = 0;
         else forward = forward - 10;
         strarr[i] = str.substr(0, w + forward);
         str = str.substr(w + forward);
         i++;
         }
      strarr[i - 2] = strarr[i - 2] + strarr[i - 1];
      strarr[i - 1] = "";
      }
   var wrapped_str = strarr.join(b);
   if(!c) wrapped_str = wrapped_str.substr( 0 , (wrapped_str.length - b.length) );
   return wrapped_str;
   }

function parse_str(str [, arr]) {
   // Аналог parse_str на Javascript
   var request = str;
   if(request.indexOf('&') !=- 1) {
      var GET = request.split('&');
      var arr = new Array();
      for(i = 0; i < arr.length; i++) {
         var cur = arr[i].split('=');
         arr[cur[0]] = cur[1];
         }
      }
   }
*/