/*try { document.execCommand("BackgroundImageCache", false, true);}
catch(err) { }
*/
function _trim(s)
{
  return _rtrim(_ltrim(s));
}

function _ltrim(s)
{
  return s.replace(/^\s+/, ''); 
}

function _rtrim(s)
{
  return s.replace(/\s+$/, ''); 
}

function checkNumber(id)
{
  if (document.getElementById('quantity' + id).value.match(/^[0-9]+$/i)) return true;
  else
  {
    document.getElementById('quantity' + id).focus();
    alert('Введите количество');
  }
  return false;
}

function checkSearch()
{
  if (document.getElementById('ProductTitle').value.length < 3)
  {
    alert('Длина поискового запроса должна быть не менее 3 символов.')
    document.getElementById('ProductTitle').focus();
    return false;
  }
  if (document.getElementById('ProductTitle').value.length > 32)
  {
    alert('Длина поискового запроса должна быть не более 32 символов.')
    document.getElementById('ProductTitle').focus();
    return false;
  }
  return true;
}

function checkCatalogSearch()
{
  if (document.getElementById('pt').value.length < 3)
  {
    alert('Длина поискового запроса должна быть не менее 3 символов.')
    document.getElementById('pt').focus();
    return false;
  }
  if (document.getElementById('pt').value.length > 32)
  {
    alert('Длина поискового запроса должна быть не более 32 символов.')
    document.getElementById('pt').focus();
    return false;
  }
  return true;
}

function openwnd(url, target, param, wnd , default_param)
{
  default_param = 'width=800,height=640,top=20,left=20,screenY=20,screenX=20,menubar,scrollbars,toolbar=0,status=0';
  param = (param) ? ','+param : '';
  param =  default_param + param;
  wnd=open( url, target, param );
  wnd.focus();
  return wnd;
}

function tableruler(tblClassName)
{
  if (!tblClassName) tblClassName = 'ruler';
  if (document.getElementById && document.createTextNode)
  {
    var tables=document.getElementsByTagName('table');
    for (var i=0;i<tables.length;i++)
    {
      if(tables[i].className==tblClassName)
      {
        var trs=tables[i].getElementsByTagName('tr');
        for(var j=0;j<trs.length;j++)
        {
          trs[j].onmouseover=function(){this.className='ruled';return false}
          trs[j].onmouseout=function(){this.className='';return false}
        }
      }
    }
  }
}


function toggleBlock(id, btn)
{
  var block = document.getElementById(id);
  if (document.getElementById(id).style.display == 'none')
  {
    new Effect.SlideDown(block);
  }
  else
  {
    new Effect.SlideUp(block);
  }
  return false;
}

function expandBlock(id, btn)
{
  var block = document.getElementById(id);
  if (document.getElementById(id).style.display == 'none')
  {
    new Effect.SlideDown(block);
  }
  return false;
}

function showAll()
{
  expandBlock('secretariat');
  expandBlock('sales_department');
  expandBlock('it_department');
  expandBlock('tech_department');
  expandBlock('complekt_department');
  expandBlock('logist_department');
  expandBlock('buhgalt_department');
  expandBlock('juridical_department');
}

function viewImage(src)
{
 prevImg = new Image();
 prevImg.src = src;
 

 w = prevImg.width;
 h = prevImg.height;

 viewer = window.open(src, "PREV", "width=" + w + ",height=" + h + 
 "toolbar=no,status=no,scrollbars=no,menubar=no,resizable=no");
   
 viewer.document.body.style.padding = 0;
 viewer.document.body.style.margin = 0;
 viewer.document.body.style.textAlign = "center";
 
 viewer.resizeTo(w+10,h+30);
 
 viewer.focus();
 
 return false;
}

//Добавить событие на onload
function addLoadEvent(func) { 
	var oldonload = window.onload; 
	if (typeof window.onload != 'function') { 
	    window.onload = func; 
	} else { 
		window.onload = function() { 
			if (oldonload) { 
				oldonload(); 
			} 
			func(); 
	    } 
	} 
}

function addObjectOnClickEvent(obj,func) { 
	var oldonclick = obj.onclick; 
	if (typeof obj.onclick != 'function') { 
	    obj.onclick = func; 
	} else { 
		obj.onclick = function() { 
			if (oldonclick) { 
				oldonclick(); 
			} 
			func(); 
			return false;
	    } 
	} 
}

function addObjectOnChangeEvent(obj,func) { 
	var oldonchange = obj.onchange; 
	if (typeof obj.onchange != 'function') { 
	    obj.onchange = func; 
	} else { 
		obj.onchange = function() { 
			if (oldonchange) { 
				oldonchange(); 
			} 
			func(); 
	    } 
	} 
}

//Положение курсора
function defPosition(event) {
    var x = y = 0;
    if (document.attachEvent != null) { // Internet Explorer & Opera
        x = window.event.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);
        y = window.event.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
    } else if (!document.attachEvent && document.addEventListener) { // Gecko
        x = event.clientX + window.scrollX;
        y = event.clientY + window.scrollY;
    } else {
        // Do nothing
    }
    return {x:x, y:y};
}

/*ЗАЩИТА EMAIL ОТ СПАМ СКАНЕРОВ*/
var ids = new Array();

function nospam_email(nick,host){
id=get_id(nick+host,0);
result="<div><div style='position:relative; z-index:1;' id='email"+id+"' onmouseover=\"show_email_panel('"+id+"',event);\" onmouseout=\"hide_email_panel('"+id+"',event);\">"+nick+"<img src='/themes/original/img/new/sdog.gif' width='10px' height='10px' />"+host+"</div>";
result+="<div id='"+id+"' onmouseover=\"show_email_panel('"+id+"',event);\" onmouseout=\"hide_email_panel('"+id+"',event);\" style='visibility:hidden; position:absolute; background-color:#f5f5f5; padding:2px 0px 2px 0px; border:1px solid black;  width:200px; height:55px; z-index:50'>";
result+="<div style='font-weight:bold; padding:0px 5px 5px 5px;'>";
result+=nick+"<img src='/themes/original/img/new/sdog.gif' width='10px' height='10px' />"+host;
result+="</div>";
result+="<div onmouseover='this.style.backgroundColor=\"#919191\";' onmouseout='this.style.backgroundColor=\"#f5f5f5\";' style='border-bottom:0px solid black; padding:0px 5px 2px 5px; cursor:pointer' onclick=\"document.location.replace('mai'+'lto'+':'+'"+nick+"'+'@'+'"+host+"');\">";
result+=" - Отправить при помощи Outlook";
result+="</div>";
result+="<div onmouseover=' this.style.backgroundColor=\"#919191\";' onmouseout='this.style.backgroundColor=\"#f5f5f5\";' style='position:relative; width:190px; height:15px;padding:0px 5px 2px 5px;' id='clipboard_btn"+id+"'>";
result+=" - Скопировать email";
result+="</div>";
result+="</div></div>";
ids[ids.length]=[nick,host,id];
return result;
}

function get_id(id,i){
if (document.getElementById(id)){
	i++;
	id=get_id(id+"_"+i,i);
} 

return id;
}

function nospam_email_simple(nick,host){
var result="";
result+="<div><a href=\"javascript:document.location.replace('mai'+'lto'+':'+'"+nick+"'+'@'+'"+host+"');\">"+nick+"<img src='/themes/original/img/new/sdog.gif' width='10px' height='10px' />"+host+"</a></div>";
return result;
}

var showing_panel;

function show_email_panel(id,event){
var panel = $(id);
if (panel.style.visibility!='visible'){
	if  (showing_panel)	{
		showing_panel.style.visibility='hidden';
		$("clipboard_btn"+showing_panel.id+"flash").style.visibility='hidden';
	}
	showing_panel=panel;
	panel.style.visibility='visible';
	$("clipboard_btn"+id+"flash").style.visibility='visible';
	var panel_with_email = $('email'+id);
	panel.style.top=panel_with_email.offsetTop-15+"px";
	panel.style.left=panel_with_email.offsetLeft+75+"px";
}
}

function get_offsetTop(obj){
var top = 0;
while (obj) {
	top += obj.offsetTop;
	obj = obj.offsetParent;
}
return top;
}

function get_offsetLeft(obj){
var left = 0;
while (obj) {
	left += obj.offsetLeft;
	obj = obj.offsetParent;
}
return left;
}

function hide_email_panel(id,event){
var panel = $(id);
if (defPosition(event).y>get_offsetTop(panel)&&defPosition(event).y<(get_offsetTop(panel)+55)
	&&defPosition(event).x>get_offsetLeft(panel)&&defPosition(event).x<(get_offsetLeft(panel)+200)) {return false;}
panel = $('email'+id);
if (defPosition(event).y>get_offsetTop(panel)&&defPosition(event).y<(get_offsetTop(panel)+15)
	&&defPosition(event).x>get_offsetLeft(panel)&&defPosition(event).x<(get_offsetLeft(panel)+100)) { return false;}
//alert("y - "+defPosition(event).y);
//alert("top - "+get_offsetTop(panel));
$(id).style.visibility='hidden';
$("clipboard_btn"+id+"flash").style.visibility='hidden';
}

var clip;	
function $(id) { return document.getElementById(id); }

		
function init(){

	for (var i=0;i<ids.length;i++){
	
		clip = new ZeroClipboard.Client('clipboard_btn'+ids[i][2],ids[i][0]+'@'+ids[i][1]);

		clip.setHandCursor(true);

		clip.addEventListener('mouseOver', my_mouse_over);
	}
}

function my_mouse_over(client) {
    clip.setText(clip.clipText);
}
/*****************/

/*ОТПРАВКА ФОРМЫ РАССЫЛКИ*/
function newsletter_add_email(){
//error=document.getElementById("error_newsletter");
var email = document.getElementById("NewsletterEmailEmail").value;
if (!check_email(email)) {  //view.js
	alert('Введен неверный email');
	//error.innerHTML="<font style='color:red; font-size:9px'>Введен не верный email</font>";
	return;
}
//error.innerHTML="Ваш Email:";
document.getElementById('newsletter_form').submit();
} 
/*****************/

/*НАЖАТИЕ ENTER НА ФОРМЕ*/
function checkEnter(e,id_form){ //e is event object passed from function invocation
var characterCode; // literal character code will be stored in this variable

if(e && e.which){ //if which property of event object is supported (NN4)
e = e;
characterCode = e.which; //character code is contained in NN4's which property
}
else{
e = event;
characterCode = e.keyCode; //character code is contained in IE's keyCode property
}

if(characterCode == 13){ //if generated character code is equal to ascii 13 (if enter key)
document.getElementById(id_form).submit(); //submit the form
return false ;
}
else{
return true ;
}

}

function isPressEnter(e){ //e is event object passed from function invocation
var characterCode; // literal character code will be stored in this variable

if(e && e.which){ //if which property of event object is supported (NN4)
e = e;
characterCode = e.which; //character code is contained in NN4's which property
}
else{
e = event;
characterCode = e.keyCode; //character code is contained in IE's keyCode property
}

if(characterCode == 13){ //if generated character code is equal to ascii 13 (if enter key)
return true ;
}
else{
return false ;
}

}
/*****************/


/*НАЖАТИЕ ENTER*/
function isCheckEnter(e){ //e is event object passed from function invocation
var characterCode; // literal character code will be stored in this variable

if(e && e.which){ //if which property of event object is supported (NN4)
e = e;
characterCode = e.which; //character code is contained in NN4's which property
}
else{
e = event;
characterCode = e.keyCode; //character code is contained in IE's keyCode property
}

if(characterCode == 13)
	return true ;
else
	return false ;
}
/*****************/


/******************/
function open_window_pos(a){
myWindow=window.open(a.href,'','width=800,height=575,top=10,left=10, resizable=yes,scrollbars=yes');
myWindow.focus();
return false;
}

function open_window(href,param){
if (param=="") param = 'width=990,height=590,top=10,left=10, resizable=no,scrollbars=no';
myWindow=window.open(href,'',param);
myWindow.focus();
return false;
}

function redirect(url){
	window.location.href=url;
}

function registerEventsInputs(){
	if ($(idFormConfirmExit)){
		inputs=$(idFormConfirmExit).getElementsByTagName("input");
		for (i=0;i<inputs.length;i++){
			if (inputs[i].type=="text"||inputs[i].type=="hidden"||inputs[i].type=="textarea"){
				addObjectOnChangeEvent(inputs[i],IsEdited);
			}
		}
		inputs=$(idFormConfirmExit).getElementsByTagName("textarea");
		for (i=0;i<inputs.length;i++){
			addObjectOnChangeEvent(inputs[i],IsEdited);
		}
	}
}
function registerEventsHrefs(){
	hrefs=document.getElementsByTagName("a");
	for (i=0;i<hrefs.length;i++){
		if (hrefs[i].name!="no_exit_event"){
			addObjectOnClickEvent(hrefs[i],ConfirmExit);
		}
	}
}

function registerSetNameTinyMce(){
if ($('tinymce_area_a')){
		hrefs=$('tinymce_area_a').getElementsByTagName("a");
		for (i=0;i<hrefs.length;i++){
			hrefs[i].writeAttribute("name", "no_exit_event");	
		}
	}
}

idFormConfirmExit = "";
edited_document_form = false;
function IsEdited(){
	edited_document_form = true;
}

function ConfirmExit(){
if (edited_document_form){
	if (window.confirm('При переходе на другую страницу несохраненные данные могут быть потеряны! Подтверждаете переход?')){
		redirect(this.href);
		return false;
	} 
} else {
	redirect(this.href);
	return false;
}
return false;
}

function ConfirmExitUrl(url){
if (edited_document_form){
	if (window.confirm('При переходе на другую страницу несохраненные данные могут быть потеряны! Подтверждаете переход?')){
		redirect(url);
		return false;
	} 
} else {
	redirect(url);
	return false;
}
return false;
}
/*
- Задаем id формы, которая будет проверятся и в конце страницы вызываем AddConfirmExit('ID формы');
- всем ссылкам на странице, которые не будут проверятся задаем name=no_exit_event;
- всем кнопкам ведущим, на другие страницы на onclick задаем событие ConfirmExitUrl(url)
- весь javascript изменяющий каким либо образом содержимое формы сопровождаем edited_document_form = true;
*/
function AddConfirmExit(id_form_conf){
	edited_document_form = false;
	idFormConfirmExit = id_form_conf;
	
	addLoadEvent(registerSetNameTinyMce);
	addLoadEvent(registerEventsInputs);
	addLoadEvent(registerEventsHrefs);
}

/*Валидация входящей документации*/
function check_save_letter(){
	
	if (_trim($('IncomingLetterTitle').value)==''&&$('IncomingLetterTitle').disabled==false) {alert('Введите тему письма.');  return false;}
	if ($('IncomingLetterTitleSelect').selectedIndex==0&&$('IncomingLetterTitleSelect').disabled==false) {alert('Выберите тему письма.');  return false;}
	
	if (_trim($('account_id').value)=='') {alert('Не выбран контрагент.');  return false;}
	if (_trim($('reference_number_contr').value)=='') {alert('Не выбран исх. номер контрагента.');  return false;}
	if(!$('IncomingLetterOldFile'))
		if (_trim($('IncomingLetterFile').value)=='') {alert('Не выбран файл для загрузки.');  return false;}

}

function check_save_contract(){
	if (_trim($('account_id').value)=='') {alert('Не выбран контрагент.');  return false;}
	if (_trim($('employee_id').value)=='') {alert('Не выбран сотрдник, которому передан договор.');  return false;}
	if (_trim($('reference_number_contr').value)=='') {alert('Не выбран исх. номер контрагента.');  return false;}
	if(!$('IncomingContractOldFile'))
		if (_trim($('IncomingContractFile').value)=='') {alert('Не выбран файл для загрузки.');  return false;}

}

function check_save_claim(){
	if (_trim($('account_id').value)=='') {alert('Не выбран контрагент.');  return false;}
	if (_trim($('invoice_id').value)=='') {alert('Не выбран счет.');  return false;}
	if (_trim($('executive_claims_id').value)=='') {alert('Не выбран исполнитель претензии.');  return false;}
	if (_trim($('employee_id').value)=='') {alert('Не выбран сотрдник, которому передана претензия.');  return false;}
	if (_trim($('reference_number_contr').value)=='') {alert('Не выбран исх. номер контрагента.');  return false;}
	if(!$('IncomingClaimOldFile'))
		if (_trim($('IncomingClaimFile').value)=='') {alert('Не выбран файл для загрузки.');  return false;}

}

function check_save_personnel(){
	if (_trim($('PersonnelName').value)=='') {alert('Заполните ФИО.');  return false;}
	if (_trim($('PersonnelFunction').value)=='') {alert('Заполните должность.');  return false;}
}

var sel_text_search = '';
function select_text_search(_){
    var code = event.keyCode;
    sel_text_search += String.fromCharCode(code);
    for(var i = 0; i < _.options.length; i++)
        if(_.options[i].text.search(sel_text_search) > -1)
            _.options[i].selected = true;
}

function smartOptionFinder(oSelect, oEvent) {
	var sKeyCode = oEvent.keyCode;
	var sToChar = String.fromCharCode(sKeyCode);
	//if(sKeyCode >47 && sKeyCode<91){
		var sNow = new Date().getTime();
		if (oSelect.getAttribute("finder") == null) {
			oSelect.setAttribute("finder", sToChar.toUpperCase())
			oSelect.setAttribute("timer", sNow)
		} else if( sNow > parseInt(oSelect.getAttribute("timer"))+2500) { //Rest all;
			oSelect.setAttribute("finder", sToChar.toUpperCase())
			oSelect.setAttribute("timer", sNow) //reset timer;
		} else {
			oSelect.setAttribute("finder", oSelect.getAttribute("finder")+sToChar.toUpperCase())
			oSelect.setAttribute("timer", sNow); //update timer;
		}
		var sFinder =  oSelect.getAttribute("finder");
		var arrOpt = oSelect.options
		var iLen = arrOpt.length
		for (var i = 0; i < iLen ; i++) {
			sTest  = arrOpt[i].text;
			if (sTest.toUpperCase().indexOf(sFinder) == 0) {
				arrOpt[i].selected = true;
				break;
			}
		}
		event.returnValue = false;
	//} else{
		//Not a digit;
	//}
}
//onchange=”showLocalImage(this.value)”
function preview_uploaded_file(imgname) {
imgname = imgname.replace(/\\/g,"/");
imgname = imgname.replace(/\'/g,"\\'");
content = "<img src=\"" + String(imgname) + "\" border=\"0\" height=\"150\" weight=\"150\">";
$("imagepreview_order").innerHTML=content;
}


