function ge(id) {
        return document.getElementById(id);
}

function autoComplite() {
        var liObj = getElementsByClass('autoCompl');
        
         for (i = 0; i < liObj.length; i++) {
                
                liObj.onmouseover = function() {
                        this.className = 'autoCompl_on';
                }
                
                liObj.onmouseout = function() {
                        this.className = 'autoCompl';
                }
                
         }
}


function getElementsByClass(searchClass,node,tag) {
        var classElements = new Array();
        if ( node == null )
                node = document;
        if ( tag == null )
               tag = '*';
        var els = node.getElementsByTagName(tag);
        var elsLen = els.length;
        
        var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
        for (i = 0, j = 0; i < elsLen; i++) {
               if ( pattern.test(els[i].className) ) {
                    classElements[j] = els[i];
                   j++;
              }
        }
        return classElements;
}


function findPos(obj)
{
        var curleft = curtop = 0;
        if (obj.offsetParent) {
                curleft = obj.offsetLeft
                curtop = obj.offsetTop
                while (obj = obj.offsetParent) {
                        curleft += obj.offsetLeft
                        curtop += obj.offsetTop
                }
        }
        return [curleft,curtop];
}


function showHidtory(objt,id,div) {
        
        HifID = id;
        jopa = false;
        
        var coord = findPos(ge(div)); // находим координаты картинки

        ge(id).style.left = coord[0] - 120 + 'px';
        ge(id).style.top = coord[1] + 16+ 'px';
        ge(id).style.display = 'block';
}

function ShowHide(id) {
        if (ge(id).style.display == 'none') {
                ge(id).style.display = '';
        }
        
        else{
                ge(id).style.display = 'none';
        }
}

function show(id) { ge(id).style.display = '';}   
function hide(id) { ge(id).style.display = 'none';}

function showinline(id){ ge(id).style.display = 'inline';}   

function visShow(id) {ge(id).style.visibility = 'visible'}
function visHide(id) {ge(id).style.visibility = 'hidden'}


function set_title_for_telerik_drop_obj(id){
    var obj = ge(id);
    var td = ge(id + "_TitleCell" );
    var w = td.scrollWidth;  
    var title = ge(id + "_title_html");
    td.innerHTML =  title.innerHTML;
    w = td.scrollWidth - w; 
    if(w>0){
       obj.SetSize(obj.scrollWidth + w,null);
    }
}



function windowLights() {
        var wDiv = document.body.getElementsByTagName('td');        
        for (var i=0;i<wDiv.length;i++) {
                if (wDiv[i].className == 'RadDockableObjectTitle') {
                        wDiv[i].onmouseover = function() {
                                this.style.background = '#ccc';
                        }
                        wDiv[i].onmouseout = function() {
                                this.style.background = 'white';
                        }
                }
        }
}



function cheker(target,boxName) {
        var allBox = document.getElementsByTagName('INPUT');
        
        for (var i=0;i<allBox.length;i++) {
                if (allBox[i].name == boxName) {
                        allBox[i].checked = target.checked;
                }
        }
        
}
/**MastaBasta FUNCTION**/


function getElementsByClassNameEdv(classname, node)  {
    if(!node) node = document.getElementsByTagName("body")[0];
    var a = [];
    var re = new RegExp('\\b' + classname + '\\b');
    var els = node.getElementsByTagName("*");
    for(var i=0,j=els.length; i<j; i++)
        if(re.test(els[i].className))a.push(els[i]);
    return a;
}
                 
function searchOnfocus(obj,defText) {
        if(typeof(defText) == "undefined") defText='search...'
        obj.style.color = 'black'
        obj.style.background = '#eeffde';
        if(obj.value == defText) obj.value = ''
}

function searchOnblur(obj,text) {
        if(!text) text='search...'
        obj.style.color = '#c3c3c3'
        obj.style.background = 'white';
        obj.value = text;
}


function OrderTabSwitcher(num, hfID) {
        var oTabs = getElementsByClassNameEdv('OrderTabs');
        var oMenus = ge('orMenu').getElementsByTagName('SPAN');        
        
        for(i=0; i<oTabs.length ; i++){        
                oTabs[i].style.display="none";
        }

        for(i=0; i<oMenus.length ; i++){        
                oMenus[i].className ="";
        }
        
        oTabs[num].style.display="";
        oMenus[num].className = "rightTableMenu_checked";

        if(hfID != null && ge(hfID) != null) ge(hfID).value = num;
}


function OrderTabSwitcherNew(num, hfID, clientID) {
        var oTabs = getElementsByClassNameEdv(clientID+'_OrderTabs');
        var oMenus = ge(clientID+'_orMenu').getElementsByTagName('SPAN');
        
        for(i=0; i<oTabs.length ; i++){        
                oTabs[i].style.display="none";
        }

        for(i=0; i<oMenus.length ; i++){        
                oMenus[i].className = oMenus[i].attributes["realclass"].value;
        }
                
        oTabs[num].style.display="";        
        oMenus[num].className = "active ";

        if(hfID != null && ge(hfID) != null) ge(hfID).value = num;
}


function addingPiece() {
        var newDIV = document.createElement('div');
        newDIV.innerHTML =  ge('mainPiece').innerHTML;
        ge('mainPiece_add').appendChild(newDIV);
}

function addingList(text, block) {
        var newDIV = document.createElement('div');
        newDIV.innerHTML =  ge(text).innerHTML;
        ge(block).appendChild(newDIV);
}


function addCharLeftForLength(str, char, length)
{
 s='';
 for(i=str.length; i < length; i++) s +=char;
 return s + str;
}
function createRequestObject()
{
    if (window.XMLHttpRequest) {
        try {
            return new XMLHttpRequest();
        } catch (e){}
    } else if (window.ActiveXObject) {
        try {
            return new ActiveXObject('Msxml2.XMLHTTP');
        } catch (e){}
        try {
            return new ActiveXObject('Microsoft.XMLHTTP');
        } catch (e){}
    }
    return null;
}

function HTTPSend(functionName,param) {
  var xmlDoc = createRequestObject();
  if (xmlDoc) {
    param = param.replace(/\n/g,'%0A');    
    xmlDoc.open( "GET", ApplicationUrl + "webservice.asmx/"+functionName+"?"+param, true );
    xmlDoc.send( null );
  } else {
      alert("Браузер не поддерживает AJAX");
  }
}

function ShowHideWidget(divID, widgetID, pageID,apendixID,color) {
  if (ge(divID).style.display == 'none') {
    ge(divID).style.display = '';
    apendix = ge(apendixID);
    if(apendix != null) apendix.className = 'apendix_' +color;
    HTTPSend('ShowHideWidget','PageID='+pageID+'&WidgetID='+widgetID+'&Show=true');
  }else{
    ge(divID).style.display = 'none';
    apendix = ge(apendixID);
    if(apendix != null) apendix.className = '';
    HTTPSend('ShowHideWidget','PageID='+pageID+'&WidgetID='+widgetID+'&Show=false');
  }
}

function ShowHideInformer(divID, InformerName) {
  if (ge(divID).style.display == 'none') {
    ge(divID).style.display = '';
    btnid = divID.replace(/informDiv/g, "btnUp"); 
    ge(btnid).style.display = '';
    btnid = divID.replace(/informDiv/g, "btnDown"); 
    ge(btnid).style.display = 'none';

    HTTPSend('ShowHideInformer','InformerName='+InformerName+'&Show=true');
  }else{
    ge(divID).style.display = 'none';
    btnid = divID.replace(/informDiv/g, "btnUp"); 
    ge(btnid).style.display = 'none';
    btnid = divID.replace(/informDiv/g, "btnDown"); 
    ge(btnid).style.display = '';

    HTTPSend('ShowHideInformer','InformerName='+InformerName+'&Show=false');
  }
}

function createXMLObject()
{
  if (document.implementation && document.implementation.createDocument)
  {
    return document.implementation.createDocument("", "", null);
  }
  else if (window.ActiveXObject)
  {
    return new ActiveXObject("Microsoft.XMLDOM");
  }
  else
  {
    alert("Your browser can't handle this script");
    return;
  }
}

//Meta tags start
function metaDataAddNewTag(Id)
{
  function processReqChange()
  {
      // только при состоянии "complete"
      if (xmlDoc.readyState == 4) {
          // для статуса "OK"
          if (xmlDoc.status == 200) 
          {
            xml = xmlDoc.responseXML;
            try{
              tagID = xml.childNodes[0].getElementsByTagName('ID')[0].textContent;
              tagName = xml.childNodes[0].getElementsByTagName('Name')[0].textContent;
              tagGroupID = xml.childNodes[0].getElementsByTagName('GroupID')[0].textContent;
            }catch (e){ alert('Bad responseXML.' + e.description );}

            var oLi = document.createElement('li');
            oLi.id = tagID;
            oLi.innerHTML = tagName;
            oLi.className = 'meta_dataMark';
            ge('meta_ul_group'+tagGroupID).appendChild(oLi);                
            oLi.onclick = function() {
                    if(this.className == 'meta_dataMark')  {
                      this.className = '';
                      ge('metaDataUL').removeChild(ge(this.id+'_meta'));
                    }
                    else {
                      this.className = 'meta_dataMark';
                      var newLi = document.createElement('li');
                      newLi.id = this.id+'_meta';
                      newLi.innerHTML = this.innerHTML;
                      ge('metaDataUL').appendChild(newLi);
                    } 
            }
            var newLi = document.createElement('li');
            newLi.id = oLi.id+'_meta';
            newLi.innerHTML = oLi.innerHTML;
            ge('metaDataUL').appendChild(newLi);           

          } else 
              alert("Не удалось получить данные:\n" + xmlDoc.statusText);          
      }
  }
  
  var xmlDoc = createRequestObject();
  if (xmlDoc) {        
    xmlDoc.onreadystatechange = processReqChange;
    tagName = ge('meta_tb_group'+Id).value; 
    xmlDoc.open( "GET", ApplicationUrl + "webservice.asmx/createTag?tagName="+tagName+"&groupID="+Id, true );
    xmlDoc.send( null );
  } else {
      alert("Браузер не поддерживает AJAX");
  }
}         


function metaDataSendTags(docID)
{
  tags =  ge('metaDataUL').getElementsByTagName('LI');
  tagText ='';                
  for(i=0; i< tags.length; i++)
    tagText += tags[i].id + ",";          
  HTTPSend('metaDataSendTags','docID='+docID+'&tags='+tagText);
}

function metaDataAdding() {                
  var Lilki = ge('metd_data').getElementsByTagName('LI');  
  l =  Lilki.length;
  for(i=0; i< l; i++){
    oLi = Lilki[i];                
    oLi.onclick = function() {
          if(this.className == 'meta_dataMark')  {
                  this.className = '';
                  ge('metaDataUL').removeChild(ge(this.id+'_meta'));
          }
          else {
                  this.className = 'meta_dataMark';
                  var newLi = document.createElement('li');
                  newLi.id = this.id+'_meta';
                  newLi.innerHTML = this.innerHTML;
                  newLi.tagID = this.id;
                  ge('metaDataUL').appendChild(newLi);
          } 
    }                
    if(oLi.className == 'meta_dataMark'){
        var newLi = document.createElement('li');
        newLi.id = oLi.id+'_meta';
        newLi.innerHTML = oLi.innerHTML;
        newLi.tagID = oLi.id;
        ge('metaDataUL').appendChild(newLi);
    }
  }
}

//Meta tags end

function getElementsByClassNameTag(searchClass,tag)
{
        var classElements = new Array();
        
        if (tag == null)
        {
                tag = '*';
        }
        var els = document.getElementsByTagName(tag);
        var elsLen = els.length;
        var pattern = new RegExp("(^|\\s)" + searchClass + "(\\s|$)");
        for (var i = 0, j = 0; i < elsLen; i++)
        {
                if (pattern.test(els[i].className))
                {
                        classElements[j] = els[i];
                        j++;
                }
        }
        return classElements;
}


function backgroundOnmouseover() {
        var lines = getElementsByClassNameTag('line_grey','TR');
        for(var i=0;i<lines.length;i++) {
                lines[i].onmouseover = function() {this.className = 'line_green goodLine'}
                lines[i].onmouseout = function() {this.className = 'line_grey goodLine'}
        }
        
        var lines = getElementsByClassNameTag('line_white','TR');
        for(var i=0;i<lines.length;i++) {
                lines[i].onmouseover = function() {this.className = 'line_green goodLine'}
                lines[i].onmouseout = function() {this.className = 'line_white goodLine'}
        }

        var lines = getElementsByClassNameTag('line_greenTolb','TR');
        for(var i=0;i<lines.length;i++) {
                lines[i].onmouseover = function() {this.className = 'line_lightbrown goodLine'}
                lines[i].onmouseout = function() {this.className = 'line_greenTolb goodLine'}
        }
        var lines = getElementsByClassNameTag('line_whiteTolb','TR');
        for(var i=0;i<lines.length;i++) {
                lines[i].onmouseover = function() {this.className = 'line_lightbrown goodLine'}
                lines[i].onmouseout = function() {this.className = 'line_whiteTolb goodLine'}
        }

        var lines = getElementsByClassNameTag('h1_title','DIV');
        for(var i=0;i<lines.length;i++) {
                lines[i].onmouseover = function() {this.className = 'line_yellow'}
                lines[i].onmouseout = function() {this.className = 'h1_title'}
        }  
        
        var lines = getElementsByClassNameTag('describe_zone color_lightgrey','DIV');
        for(var i=0;i<lines.length;i++) {
                lines[i].onmouseover = function() {this.className = 'describe_zone_selected'}
                lines[i].onmouseout = function() {this.className = 'describe_zone color_lightgrey'}
        }                
}

function getPageSizeWithScroll(){
        if (window.innerHeight && window.scrollMaxY) {
        yWithScroll = window.innerHeight + window.scrollMaxY;}
        else if (document.body.scrollHeight > document.body.offsetHeight){
        yWithScroll = document.body.scrollHeight;} else {yWithScroll = document.body.offsetHeight;}

        return yWithScroll;
}

function calendarHandlePro(id) {
        //for single cell
        var cells = getElementsByClass('calendarCell');
        
        for (var i=0; i < cells.length;i++) {
                
                cells[i].style.cursor = 'pointer';
                cells[i].onclick = function() {
                        if (this.className == 'calendarCell') 
                                {
                                this.className = 'calendarCell yellowCell'
                                this.getElementsByTagName('INPUT')[0].checked = true;
                                }
                        else {
                                this.className=this.className.replace(" yellowCell", "");
                                this.getElementsByTagName('INPUT')[0].checked = false;
                        }
                        
                        
                }
        }
        
        
        //for hole row
        var rows = getElementsByClass('calendarHeader_sellPre');
        
        for (var i=0; i < rows.length;i++) {
                
                rows[i].style.cursor = 'pointer';
                rows[i].onclick = function() {
                        if (this.className == 'calendarHeader_sellPre') 
                                {
                                this.className = 'calendarHeader_sellPre checkedOK'
                                getChecked(this,true)
                                }
                        else {
                                this.className=this.className.replace(" checkedOK", "");
                                getChecked(this,false)
                        }
                        
                        
                }
        }
        
        //for hole column
        var col = ge('calendarHeaderID').getElementsByTagName('TD');
        
        for (var i=0; i < col.length;i++) {
                
                col[i].style.cursor = 'pointer';
                col[i].onclick = function() { 
                        if (this.className == 'calendarHeaderIDHeader') 
                                {
                                this.className = 'calendarHeaderIDHeader checkedOK'
                                getCol(this,true,col.length,this.getAttribute('rel'));
                                }
                        else {
                                this.className=this.className.replace(" checkedOK", "");
                                getCol(this,false,col.length,this.getAttribute('rel'));
                        }
                }
        }
        
        
        function getCol(obj,stat,num,cc) {
        
                cc = parseInt(cc);
                for (var i=0; i < rows.length;i++) {
                        cells[cc].getElementsByTagName('INPUT')[0].checked = stat;      
                        
                        if (stat) {cells[cc].className = 'calendarCell yellowCell';}
                        else  {cells[cc].className= cells[cc].className.replace(" yellowCell", "");};
                        
                        cc = cc+(num-1);
                }
        }
        
        
        function getChecked(obj,stat) { 
                var boxz = obj.parentNode.getElementsByTagName('INPUT');
                
                for (ii=0; ii < boxz.length;ii++) {
                        if( boxz[ii].type == "checkbox"){
                                boxz[ii].checked = stat;
                                if (stat) boxz[ii].parentNode.className = 'calendarCell yellowCell'
                                else  boxz[ii].parentNode.className= boxz[ii].parentNode.className.replace(" yellowCell", "");
                        }
                        
                }
        }

}
function setDuretion(start,finish,validated){
//start='09:28';
//finish= '20:28';
  if(validated === true && start>finish) return ''; 
  var Tstart = start.split(':',2);
  var Tfinish = finish.split(':',2);      
  if (parseInt(Tstart[0])== 0) Tstart[0] = Tstart[0].substr(1,1)
  if (parseInt(Tfinish[0])== 0) Tfinish[0] = Tfinish[0].substr(1,1)       
  var HoleMinuteinterval = (parseInt(Tfinish[0])*60 + parseInt(Tfinish[1])) - (parseInt(Tstart[0])*60 + parseInt(Tstart[1]));
  var HoursINT = Math.floor(HoleMinuteinterval/60)
  var MinuteINT = HoleMinuteinterval - (HoursINT*60);     
  return addCharLeftForLength(HoursINT+"",'0',2) + ':' +addCharLeftForLength(MinuteINT+"",'0',2);
}

function CheckUnCheck(id)
{
  if(ge(id).checked) 
    ge(id).checked = false;
  else
    ge(id).checked = true;
}
