function menu_hover_show( class_name, obj ) {
    if(document.getElementById(obj)) {
        var e = document.getElementById(obj);
        e.className = class_name + 'Hover';
    }
}

function menu_hover_hide( class_name, obj ) {
    if(document.getElementById(obj)) {
        var e = document.getElementById(obj);
        e.className = class_name;
    }
}

function box_select(box, group){
    var ajax = new sack();
    ajax.requestFile = 'index.php?box=' + box + '&group=' + group + '&source=' + group;
    ajax.method = 'GET';
    ajax.element = box + '_body';
    ajax.runAJAX();

}

function box_select2(box, url){
    var ajax = new sack();
    ajax.requestFile = url;
    ajax.method = 'GET';
    ajax.element = box + '_body';
    ajax.runAJAX();
}


function ajax_edit(obj, id, box){

   var ajax = new sack();
   
   if(document.getElementById('textarea'+id)){
        var desc  = document.getElementById('textarea'+id);
        ajax.setVar('description', desc.value); 
   }

   if(document.getElementById('select'+id)){
        var desc  = document.getElementById('select'+id);
        ajax.setVar('grade', desc.value); 
   }

   ajax.requestFile = 'index.php?box=' + box + '&id=' + id;
   ajax.method = 'POST';
   ajax.element = obj;
   ajax.runAJAX();

}



function tabs(parent, obj, action){

    var el = document.getElementById("div_" + obj);
   	var ar = document.getElementById(parent).getElementsByTagName("div");
    var cont = document.getElementById(parent + "_body");
    
    for (var i=0; i<ar.length; i++){
        if(ar[i].classname != 'ignore' && ar[i].className == "divTabActive") ar[i].className = "divTabNormal";
        if(ar[i].classname != 'ignore' && ar[i].className == "divTabActive_1") ar[i].className = "divTabNormal_1";
        if(ar[i].classname != 'ignore' && ar[i].className == "divTabUsersActive") ar[i].className = "divTabUsersNormal";
    }

        if(el.className == "divTabNormal") el.className = "divTabActive";
        if(el.className == "divTabNormal_1") el.className = "divTabActive_1";
        if(el.className == "divTabUsersNormal") el.className = "divTabUsersActive";


    if(cont.style.display == 'none') cont.style.display = "block";


    var ajax = new sack();

    ajax.requestFile = 'index.php?' + action;
	ajax.method = 'GET';
    ajax.element = parent + '_body';
    
    if(document.getElementById(parent + "_tabProgress")) {
   	    var bo1 = document.getElementById(parent + "_items");
        bo1.style.display = 'none';
   	    var bo = document.getElementById(parent + "_tabProgress");
        bo.style.display = 'block';
    }
 
    ajax.runAJAX();

}




function tabs_static(parent, obj){

    var tab    = document.getElementById(obj + "_tab");
    var body   = document.getElementById(obj + "_body");
   	var tabs   = document.getElementById(parent + "Tabs").getElementsByTagName("div");
   	var bodies = document.getElementById(parent + "Bodies").getElementsByTagName("div");
    
    for (var i=0; i < tabs.length; i++){
        if(tabs[i].classname != 'ignore' && tabs[i].className == "divTabActive")   tabs[i].className = "divTabNormal";
        if(tabs[i].classname != 'ignore' && tabs[i].className == "divTabActive_1") tabs[i].className = "divTabNormal_1";
    }
    
    if(tab.className == "divTabNormal")   tab.className = "divTabActive";
    if(tab.className == "divTabNormal_1") tab.className = "divTabActive_1";

    for (var i=0; i < bodies.length; i++){
        if(bodies[i].classname != 'ignore'){
            if(bodies[i].style.display){
                if(bodies[i].id == obj + "_body") bodies[i].style.display = "block";
                else bodies[i].style.display = "none";
            }
        }
    }


}

function whenLoading__(){
    clearTimeout(ajax_timer);
    var func = 'whenLoading_()';
    ajax_timer = setTimeout(func, 300);
}

function whenLoading(){
    if(document.getElementById('progress')) {
        var p = document.getElementById('progress');
        p.style.visibility = 'visible';
    }
}

function whenCompleted(){
    if(document.getElementById('progress')) {
        var p = document.getElementById('progress'); 
        p.style.visibility = 'hidden';
    }
}

function tabs_ajaxed(parent, obj, action){
    
    tabs_static(parent, obj);
    var body   = document.getElementById(obj + "_body");
    var body_status   = document.getElementById(obj + "_body_status");
    if(body_status.value == 1) {    
        body_status.value = 1;
        var ajax = new sack();
        ajax.requestFile = "index.php?" + action;
        ajax.method = 'GET';
        ajax.element = obj + "_body";    
        ajax.runAJAX();
    }

}









function actions(parent, obj, action, action_2){

   	var ar = document.getElementById(parent).getElementsByTagName("div");
    for (var i=0; i<ar.length; i++){
        if(ar[i].classname != 'ignore' && ar[i].className == "divTabActive") ar[i].className = "divTabNormal";
        if(ar[i].classname != 'ignore' && ar[i].className == "divTabActive_1") ar[i].className = "divTabNormal_1";
    }

    var el = document.getElementById(parent);

    var img = document.getElementById(parent + "_img");
    if(el.disabled == false) {
        img.src = '/Gui/default/images/i_max.gif';
        img.title = 'Развернуть';
        el.disabled = true;
        var ajax = new sack();
        ajax.requestFile = 'index.php?' + action;
	    ajax.method = 'GET';
        ajax.element = parent + '_body';
	    ajax.runAJAX();
    } else {
        img.src = '/Gui/default/images/i_min.gif';
        img.title = 'Свернуть';
        el.disabled = false;
        tabs(parent, obj, action_2)
    }

}



function closeDiv(obj){

    var el = document.getElementById(obj);
    if(el.style.visibility == "visible") el.style.visibility = "hidden";
}

function selectItem(obj){

    var el_select = document.getElementById(obj + "_select");
    var el_id = document.getElementById(obj + "_id");
    var el_text = document.getElementById(obj + "_text");

    var opt = el_select.options;
    for (var i=0; i<opt.length; i++){
       if(opt[i].value == el_select.value) var item = i;
    }

//    el_id.value = el_select.options[item].value;
//    el_text.value = el_select.options[item].name;
    el_text.value = el_select.options[item].text;


    var el = document.getElementById(obj);
    if(el.style.visibility == "visible") el.style.visibility = "hidden";
}

function openNewWindow( sWindowName, iWidth, iHeight ){


  	var iRealWidth = iWidth ? iWidth : 600
  	var iRealHeight = iHeight ? iHeight : screen.height - 300
  
  	var iLeft = Math.round( (screen.width-iRealWidth)/2 )
  	var iTop =  Math.round( (screen.height-iRealHeight)/2 ) - 35
  
  	var sWindowOptions = 'status=no,menubar=no,toolbar=no'
  	sWindowOptions += ',resizable=no,scrollbars=no,location=no'
  	sWindowOptions += ',width='  + iRealWidth
  	sWindowOptions += ',height=' + iRealHeight
  	sWindowOptions += ',left='   + iLeft
  	sWindowOptions += ',top='    + iTop
  
  	var win = window.open( '', sWindowName, sWindowOptions )
  	win.focus()
  
  	return win
}

function notValidEmail( str ){
  mailRE = new RegExp( );
  mailRE.compile( '^[._a-z0-9-]+@[.a-z0-9-]+[.]{1}[a-z]{2,4}$', 'gi' );
  return !(mailRE.test( str.value ));
}

function checkSubscribeForm(form)
{
  if( notValidEmail( form.email_text ) ){
      alert( 'Введите Email!' );
      return false;
  }
  return true;
}

function checkEmail(obj) { 

    var eml = document.getElementById(obj);      
    if( notValidEmail( eml ) ){ 
        alert( 'Введите Email!' ); 
        return false;   
    } else {   
        return true;
    }
}

function getTimeString()
{
  var now = new Date();
  var day = now.getDate();
  var hours = now.getHours();
  var minutes = now.getMinutes();
  var seconds = now.getSeconds()
  var timeValue = "" + ((hours < 10) ? "0" : "") + hours 
  timeValue += ((minutes < 10) ? ":0" : ":") + minutes
  timeValue += ((seconds < 10) ? ":0" : ":") + seconds
  return timeValue;
}

function getDateString()
{
  var now = new Date();
  var day_arr = new Array("воскресенье"
                         ,"понедельник"
			 ,"вторник"
			 ,"среда"
			 ,"четверг"
			 ,"пятница"
			 ,"суббота"
	                 )
  var month_arr = new Array("января"
                           ,"февраля"
                           ,"марта"
                           ,"апреля"
                           ,"мая"
                           ,"июня"
                           ,"июля"
                           ,"августа"
                           ,"сентября"
                           ,"октября"
                           ,"ноября"
                           ,"декабря"
		           )
  var weekday = day_arr[now.getDay()]  
  var month = month_arr[now.getMonth()]
  var day = now.getDate();
  var dateValue =  day + " " + month + ", " + weekday
  return dateValue
}

function showTime()
{
  var clock = "<span class=clockstyle>" + getTimeString() + "</span>";
      
  var oDynClock;
  if ( document.getElementById )
    oDynClock = document.getElementById("dynclock");
  else if ( document.layers )
    oDynClock = document.layers["dynclock"];
  else if ( document.all )
    oDynClock = document.all.item("dynclock");
  
  // changing a "span" or "div" dynamically.
  if ( oDynClock )
  {
    if ( oDynClock.innerHTML )
    {
      oDynClock.innerHTML = clock;
    }
    else
    {
      oDynClock.document.write( clock );
      oDynClock.document.close();
    }
   
    setTimeout( "showTime()", 100 ); 
  }
}

function showDate()
{
  var date = "<span class=clockstyle>" + getDateString() + "</span>";
      
  var oCal;
  if ( document.getElementById )
    oCal = document.getElementById("calendar");
  else if ( document.layers )
    oCal = document.layers["calendar"];
  else if ( document.all )
    oCal = document.all.item("calendar");
  
  // changing a "span" or "div" dynamically.
  if ( oCal )
  {
    if ( oCal.innerHTML )
    {
      oCal.innerHTML = date;
    }
    else
    {
      oCal.document.write( date );
      oCal.document.close();
    }
   
    setTimeout( "showTime()", 100 ); 
  }
}


function showdiv(parent, obj, class_){

    var el = document.getElementById(obj);
    var ar = document.getElementById(parent).getElementsByTagName("div");

    var ct = document.getElementById("b"+obj);
    var ar_ct = document.getElementById("game_info").getElementsByTagName("div");

    for (var i=0; i<ar.length; i++){
       if(ar[i].className == class_+"Hover") ar[i].className = class_;
    }
    
    for (var i=0; i<ar_ct.length; i++){
        ar_ct[i].className = "gamesHidden";
    }
   
    el.className = class_ + "Hover";
    ct.className = "gamesVisible";
}


function showHide(obj, pan, class_name){

    var el = document.getElementById(obj);
    var pl = document.getElementById(pan);

    if(el.style.display == "block") {
        el.style.display = "none";
        pl.className = class_name + "Hide";
    } else {
        el.style.display = "block";
        pl.className = class_name + "Show"
    }

}

function absShowHide(obj, bw, bh){
    var el = document.getElementById(obj);
    if(el.style.visibility == "hidden") {
      absCentring(el, bw, bh);
//        el.style.left = "-140px";
//        el.style.top  = "-140px";
        el.style.visibility = "visible";
    } else {
        el.style.visibility = "hidden";
    }
}

function absCentring(obj, bw, bh)
{	
    dd=document;
    ww=window;
    w=dd.body.clientWidth;
    h=dd.body.clientHeight;
	var iLeft = Math.round( (w-bw)/2 ) - 50;
	var iTop =  Math.round( (h-bh)/2 ) - 100;
    obj.style.left = iLeft + "px";
    obj.style.top = iTop + "px";
}




function poll_(){
   
   var ajax = new sack();
   ajax.unsetVarAlls();

   var form  = document.getElementById('poll');
   var poll  = form.poll_id;
   var vote  = form.poll;

   for (var i=0; i < vote.length; i++){
       if (vote[i].checked) {        
           ajax.setVar('vote', vote[i].value); 
       }
   }
   
   ajax.setVar('poll_id', poll.value); 
   ajax.requestFile = 'index.php?block=poll&box=poll';
   ajax.method = 'POST';
   ajax.element = 'poll_body';
   ajax.runAJAX();

}

function ajax_ratings(obj, sr){
   
   var ajax = new sack();
   ajax.unsetVarAlls();
   var form  = document.getElementById('rating');
   var poll  = form.rating_id;
   
   if(obj = 'vote') {
       var vote  = form.elements;
       for (var i=0; i < vote.length; i++){   
           if (vote[i].checked) {
               ajax.setVar(vote[i].name, vote[i].value); 
           }
       }
   }
   ajax.setVar('rating_id', poll.value); 
   ajax.requestFile = 'index.php?block=rating&box=rating&sr=' + sr;
   ajax.method = 'POST';
   ajax.element = 'ratings_body';
   ajax.runAJAX();

}

function ajax_polls(obj, sr){
   
   var ajax = new sack();
   ajax.unsetVarAlls();
   var form  = document.getElementById('poll');
   var poll  = form.poll_id;
   
   if(obj = 'vote') {
       var vote  = form.poll;
       for (var i=0; i < vote.length; i++){   
           if (vote[i].checked) {
               ajax.setVar(vote[i].name, vote[i].value); 
           }
       }
   }
       
   ajax.setVar('poll_id', poll.value); 
   ajax.requestFile = 'index.php?block=poll&box=poll&sr=' + sr;
   ajax.method = 'POST';
   ajax.element = 'polls_body';
   ajax.runAJAX();

}


function popupWindow( sUri, iWidth, iHeight )
{
		var sWindowName = 'win' + Math.floor( Math.random()*1000 );
		var iRealWidth = iWidth ? iWidth : 600;
		var iRealHeight = iHeight ? iHeight : screen.height - 300;
	
		var iLeft = Math.round( (screen.width-iRealWidth)/2 );
		var iTop =  Math.round( (screen.height-iRealHeight)/2 ) - 35;
	
		var sWindowOptions = 'status=no,menubar=no,toolbar=no';
		sWindowOptions += ',resizable=yes,scrollbars=yes,location=no';
		sWindowOptions += ',width='  + iRealWidth;
		sWindowOptions += ',height=' + iRealHeight;
		sWindowOptions += ',left='   + iLeft;
		sWindowOptions += ',top='    + iTop;
	
		var win = window.open( sUri, sWindowName, sWindowOptions );
		win.focus();
		
		return win;
}


function ajax_main(action){
    var ajax = new sack();
    ajax.requestFile = action;
    ajax.method = 'GET';
    ajax.element = 'AJAX_MAIN';
    ajax.onLoading = whenLoading;
    ajax.onCompletion = whenCompleted;
    ajax.runAJAX();
}

function ajax_post_main(action, id){
   
   var form = document.getElementById('form');
   var save = document.getElementById('save');
 
   var radio_switch_FCK  = (form.type && form.type[1] && form.type[1].checked);
   var hidden_switch_FCK = form.show_FCK;
   var is_FCK = radio_switch_FCK || hidden_switch_FCK;

   if(is_FCK) {
       var oEditor = FCKeditorAPI.GetInstance('FCK') ;
       form.description.value = oEditor.GetXHTML(true);
   }

   var items = form.elements;
   var ar = "";

   var ajax = new sack();
   ajax.unsetVarAlls();
   for (var i=0; i<items.length; i++){
      if(items[i].id && items[i].id == items[i].name + "_multi") {
         if(items[i].options) {
            for (var k=0; k<items[i].options.length; k++){
               if(items[i].options[k].selected) {
                  ajax.setVar(items[i].name + "[" + items[i].options[k].value +"]", items[i].options[k].value);
               }
            }
         }
      } else {
          if(items[i].name) {
              if(items[i].type == 'radio' && items[i].checked) ajax.setVar(items[i].name, items[i].value);
              else if(items[i].type == 'checkbox' && items[i].checked) ajax.setVar(items[i].name, items[i].value);
              else if(items[i].type != 'radio' && items[i].type != 'checkbox') ajax.setVar(items[i].name, items[i].value);              
          }
      }
   }

   save.disabled = true;
   save.value = "Подождите...";

   ajax.setVar('action', id);
   ajax.requestFile = action;

   ajax.method = 'POST';
   ajax.element = 'AJAX_MAIN';

   ajax.onLoading = whenLoading;
   ajax.onCompletion = whenCompleted;

   ajax.runAJAX();

}

function ajax_post_2(action, sub, id)
{
   if(document.f.title_1) {
      title_len = document.f.title_1.value.length;

      if (sub != 'items' && title_len == 0) {
         alert('Не заполнено обязательное поле \'Заголовок\'.');
         return 0;
      }
   }
   ajax_post_main(action, id);
}


function ajax_operate_single(action, element, post)
{
   var ajax = new sack();
   if (!confirm('Выполнить действие?')) return;

   ajax.setVar('action', post);
   ajax.setVar('ID', element);
   ajax.requestFile = action;
   ajax.method = 'POST';
   ajax.element = 'AJAX_MAIN';
   ajax.runAJAX();
}

function fullSizeWindow( sUri )
{
    var sWindowName = 'win' + Math.floor( Math.random()*1000 );
    var iRealWidth = screen.width - 20;
    var iRealHeight = screen.height - 70;
    
    var iLeft = Math.round( (screen.width-iRealWidth)/2 );
    var iTop =  10;

    var sWindowOptions = 'status=no,menubar=no,toolbar=no';
		sWindowOptions += ',resizable=yes,scrollbars=yes,location=no';
		sWindowOptions += ',width='  + iRealWidth;
		sWindowOptions += ',height=' + iRealHeight;
		sWindowOptions += ',left='   + iLeft;
		sWindowOptions += ',top='    + iTop;
                
    var win = window.open( sUri, sWindowName, sWindowOptions );
    win.focus();
    
    return win;
}


function download_stats(filename)
{
    var ajax = new sack();
    ajax.setVar('filename', filename);
    ajax.requestFile = '/download_stats.php';
    ajax.method = 'POST';
    ajax.runAJAX();
}

var stars_timer = '';

function clearStars(path, grade)
{
  //clearStars_(path, grade);

  clearTimeout(stars_timer);
  var func = 'clearStars_("' + path + '",' + grade + ')';
  stars_timer = setTimeout(func, 0);
}

function clearStars_(path, grade)
{
    var ar = document.getElementById('grade').getElementsByTagName("img");
    for (var i=0; i < grade; i++){
      ar[i].src = path + 'icn_star_full.gif';
    }
    for (var i=grade; i < ar.length; i++){
      ar[i].src = path + 'icn_star_empty.gif';
    }
}

function showStars(path, grade)
{
  
    clearTimeout(stars_timer);
    
    var full = path  + 'icn_star_full.gif';
    var empty = path + 'icn_star_empty.gif';

    var ar = document.getElementById('grade').getElementsByTagName("img");
    for (var i=0; i < grade; i++){
       if(ar[i].src != full) ar[i].src = full;
    }
    for (var i=grade; i < ar.length; i++){
      ar[i].src = path + 'icn_star_empty.gif';
    }
}

function setStars(target, field, value, grade)
{
   clearTimeout(stars_timer);

   var ajax = new sack();
   ajax.unsetVarAlls();
   
   ajax.setVar('target', target); 
   ajax.setVar('field',  field); 
   ajax.setVar('value',  value); 
   ajax.setVar('grade',  grade); 

   ajax.requestFile = 'index.php?block=grade&box=grade';
   ajax.method = 'POST';
   ajax.element = 'grade';
   ajax.runAJAX();


}



function sms_country(code)
{
    var ar = document.getElementById('country');
    ar.value = '+' + code;
    
}

function scaleDoc(obj, small, large){
    var sc = document.getElementById(obj);
    dd=document;
    ww=window;
    w=dd.body.clientWidth;
    if(w < 1100) sc.className = small;
    else sc.className = large;
}

function ajax_submit(div_id, form_id, action)
{

   var form = document.getElementById(form_id);
   var items = form.elements;
   var ar = "";

   var ajax = new sack();
   ajax.unsetVarAlls();
   for (var i=0; i<items.length; i++){
      if(items[i].id && items[i].id == items[i].name + "_multi") {
         if(items[i].options) {
            for (var k=0; k<items[i].options.length; k++){
               if(items[i].options[k].selected) {
                  ajax.setVar(items[i].name + "[" + items[i].options[k].value +"]", items[i].options[k].value);
               }
            }
         }
      } else {  
         if(items[i].id == "IGNORE") { 
            if (items[i].checked) {
                ajax.setVar(items[i].name, items[i].value);
            }
         } else {
            if(items[i].name) {
                ajax.setVar(items[i].name, items[i].value);
            }
        }
      }
   }

//   document.f.save.disabled = true;
//   document.f.save.value = "Подождите...";
      

//   form.submit_.value="Подождите...";
//   form.submit_.disabled="TRUE";

   ajax.requestFile = action;
   ajax.method = 'POST';
   ajax.element = div_id;
   ajax.runAJAX();

}

function ajax_folders(action, element, post){


    var form = document.getElementById('grid_form');
    var items = form.elements;
    var empty = true;

    var ajax = new sack();
    ajax.unsetVarAlls();
    
    for (var i=0; i<items.length; i++) {
      if(items[i].checked == true) {
        ajax.setVar(items[i].name, items[i].value); 
        empty = false;
      }
   }

   if(empty == true) {
      alert('Не выделено ни одного элемена списка.');
      return ;
   }

   if (!confirm('Выполнить действие?')) return;
    ajax.setVar('folders_id', form.folders_id.value);
    ajax.setVar('action', post);
    ajax.requestFile = action;
    ajax.method = 'POST';
    ajax.element = element;
    ajax.onLoading = whenLoading;
    ajax.onCompletion = whenCompleted;
    ajax.runAJAX();
}
