// Search form scripts

function isQuotable(txt) {
  return (txt!=null && txt.indexOf(' ')>0 && txt.substr(0,4)!='Все ');
}

function properlyQuoted(txt,phrase) {
  var state=(txt.charAt(0)=='"' && txt.charAt(txt.length-1)=='"');
  if(phrase) phrase=true; else phrase=false; // can be undefined
  if(phrase==state) return txt;
  if(phrase) {
    if(txt.indexOf('"')>=0) return txt;
    else return '"'+txt+'"';
  } else return txt.substring(1,txt.length-1);
}

function onChangeSelect() {
  var sel=document.main.s.options[document.main.s.selectedIndex].value;
  if(sel!=null && sel!='') {
    /*
    var txt=properlyQuoted(document.main.search.value,false);
    var selall=(sel==null || sel.substr(0,4)=='Все ');
    var txtall=(txt==null || txt.substr(0,4)=='Все ');
    if(selall || txtall) txt='';
    txt += ((txt=='')?'':' ') + sel;
    */
    var txt=sel;
    if(txt=='') txt='Что ищем';
    if(isQuotable(txt))
      txt=properlyQuoted(txt,document.main.p.checked);
    document.main.search.value=txt;
  }
  document.main.s.selectedIndex=0;
  document.main.search.focus();
}

function onClickCheckbox(phrase) {
  var txt=document.main.search.value;
  if(isQuotable(txt)) {
    document.main.search.value=properlyQuoted(txt,phrase);
  }
}

function switchToSecureMode() { // prepare form for submit over SSL 
  var form=document.main;
  form.action=SECUREURL;
}

function hideFormShowProgress() { // switch to progress view while authorizing
  var regform=document.getElementById('regform');
  var progress=document.getElementById('progress');
  if(regform!=null && progress!=null) {
    regform.style.display="none";
    progress.style.display="block";
  } 
}

function expandQueue(onoff) { // switch to progress view while authorizing
  var qmid=document.getElementById('id_queue_mid');
  var qsub=document.getElementById('id_queue_sub');
  var qexp=document.getElementById('id_queue_expand');
  var qctr=document.getElementById('id_queue_contract');
  if(qmid!=null && qsub!=null && qexp!=null && qctr!=null) {
    if(onoff) {
      qmid.style.display="block";
      qsub.style.display="none";
      qexp.style.display="none";
      qctr.style.display="inline";
    } else {
      qmid.style.display="none";
      qsub.style.display="block";
      qexp.style.display="inline";
      qctr.style.display="none";
    }
  }
}  

function submitMainForm(setpostvar) {
  if(setpostvar!=null) {
    var spv=document.getElementById('var');
    if(spv!=null) spv.value=setpostvar;
  } 
  var form=document.main;
  form.submit();
  return false;
}

function submitMainFormOverSSL(suffix) {
  var form=document.main;
  form.action=SECUREURL;
  if(suffix) form.action+='?'+suffix;
  form.submit();
}

function submitMainFormViaGET() {
  var form=document.main;
  form.method='get';
  form.submit();
  return false;
}

function selectAllCheckboxes(parentId,flag) {
  //alert('@@@selectAllCheckboxes '+typeof(parentId));
  var parent=(typeof(parentId)=='string')?document.getElementById(parentId):parentId;
  //alert('@@@selectAllCheckboxes parentId='+parentId+' parent='+parent);
  if(parent==null) return;
  var a=parent.getElementsByTagName('input');
  if(a==null) return;
  //alert('@@@selectAllCheckboxes a.length='+a.length);
  for (var i = 0; i < a.length; i++) {
    if(a[i].type!='checkbox') continue;
    a[i].checked=flag;
  }
}

function setLanguage(lang) { 
  var en=document.getElementsByName('lang_en');
  var ru=document.getElementsByName('lang_ru');
  if(lang=='ru') {
    if(en) {
      for(var i=0; i<en.length; i++) {
        en[i].style.display="none";
      }
    }
    if(ru) {
      for(var i=0; i<ru.length; i++) {
        ru[i].style.display="block";
      }
    }
  } else if(lang=='en') {
    if(en) {
      for(var i=0; i<en.length; i++) {
        en[i].style.display="block";
      }
    }
    if(ru) {
      for(var i=0; i<ru.length; i++) {
        ru[i].style.display="none";
      }
    }
  }
  setCookie('language',lang,365);
}

function showOptional(onoff,name) {
  var opt=document.getElementsByName(name);
  if(onoff) {
    for(var i=0; i<opt.length; i++) {
      opt[i].style.display="block";
    }
  } else {
    for(var i=0; i<opt.length; i++) {
      opt[i].style.display="none";
    }
  }
}

function getChecked(suffix) {
  var result=new Array(2);
  result[0]=0;
  result[1]='Не выбрано';
  var a=document.getElementsByTagName('input');
  if(a==null) return resilt;
  var nameprefix='cb'+suffix;
  var nameprefixlen=nameprefix.length;
  //alert('nameprefix='+nameprefix+' nameprefixlen='+nameprefixlen);
  for (var i = 0; i < a.length; i++) {
    if(a[i].type!='checkbox') continue;
    if(!a[i].checked) continue;
    var n=a[i].name;
    if(n.substring(0,nameprefixlen)!=nameprefix) continue;
    result[0]=n.substring(nameprefixlen);
    result[1]=a[i].alt;
    break;
  }  
  return result;
}

function insertChecked(name) {
  var e=document.getElementById(name);
  if(e==null) return;
  var p='m';
  var a=getChecked(p);
  if(a==null || !a[0]) {
    p='p';
    a=getChecked(p);
    if(a==null || !a[1]) return;
  }
  var value='';
  if(p=='m') {
    value=' #m '+a[0]+' '+a[1]+'## ';
  } else {
    //p=a[1].indexOf(' ');
    //var first=(p<0)?'':a[1].substr(0,p);
    //var last=(p<0)?a[1]:a[1].substr(p+1);
    //var display=first+'&nbsp;<b>'+last+'</b>';
    value=' #p '+a[1]+'## ';
  }
  replaceSelection(e,value);
  e.focus();
}

function fillMovieLinkSelf(link) {
  if(link==null) return;
  var a=getChecked('m');
  //alert('a[0]='+a[0]+' a[1]='+a[1]);
  if(a==null || !a[0]) return;
  link.href=link.href.replace(/MOVIEID/,a[0]);
  link.innerHTML=a[1];
  var hidden=document.getElementById('mid_forumedit');
  if(hidden!=null) hidden.value=a[0];
  link.onclick=null;
}

function fillPersonLinkSelf(link) {
  if(link==null) return;
  var a=getChecked('p');
  //alert('a[0]='+a[0]+' a[1]='+a[1]);
  if(a==null || !a[1]) return;
  link.href=link.href.replace(/ACTORNAME/,a[1]);
  link.innerHTML=a[1];
  var hidden=document.getElementById('pid_forumedit');
  if(hidden!=null) hidden.value=a[1];
  link.onclick=null;
}

function textLonger(id,len) {
  var ctl=document.getElementById(id);
  if(!ctl) return false;
  if(!ctl.value) return false;
  if(ctl.value.length<len) return false;
  return true;
}

function arrayIntersect(a1,a2,numeric) { // arrays assumed sorted in numeric or string ascending order
  if(a1==null || a2==null) return null;
  if(a2.length<a1.length) {var c=a2; a2=a1; a1=c; c=null;}
  var ret=new Array(), jstart=0;
  for(var i=0; i<a1.length; i++) {
    var v1=a1[i];
    if( (numeric && (a2[a2.length-1]-0)<(v1-0)) || (!numeric && a2[a2.length-1]<v1) )
      break; // no more matches possible
    for(var j=jstart; j<a2.length; j++) {
      if(a2[j]==v1)
        ret.push(v1);
      if( (numeric && (a2[j]-0)>=(v1-0)) || (!numeric && a2[j]>=v1) ) {
        jstart=j;
        break;
      }
    }
  }
  return ret;
}

function listIntersect(l1,l2,separator,numeric,returnarray) {
  if(l1==null || l2==null) return null;
  var a=arrayIntersect(l1.split(separator),l2.split(separator),numeric);
  if(returnarray) return a;
  else return a.join(separator);
}

function setCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function clearCookie(name) {
	setCookie(name,"",-1);
}

function getCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0; i < ca.length; i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function searchFromClipboard() {
  if(clipboardData) {
    var txt=clipboardData.getData('Text');
    txt=trim(txt);
    if(txt==null || txt.length<1 || txt.length>100) return;
    var quote=(document.main.p_ru.checked || document.main.p_en.checked)?'"':'';
    document.main.search.value=quote+txt+quote;
    submitMainFormViaGET();
  }
}

function trim(str) {
  if(str==null) return null;
  return str.replace(/^\s+/,'').replace(/\s+$/,'');
}

var timer=0;
var timerId=-1;
function startTimer(time) {
  if(timerId<0) {
    timer=time;
    var e=document.getElementById('timer');
    if(e!=null && timer>=0)
      e.value=Math.floor(timer/60)+':'+((timer%60<10)?'0':'')+(timer%60);
    timerId=setInterval("updateTimer()",5000);
  }
}
function updateTimer() {
  timer-=5;
  var e=document.getElementById('timer');
  if(e!=null && timer>=0)
    e.value=Math.floor(timer/60)+':'+((timer%60<10)?'0':'')+(timer%60);
  if(timer<=0) {
    clearInterval(timerId);
  }
}
