<!--
// 07.10.2009. Severin V.A.
// Altair_1987@mail.ru
// BugFix func: isMandatory [Îòñåâ íåíóæíûõ ôîðì]
// BugFix func: isMandatory [Ôîêóñ íà ñïðÿòàííîì ýë-òå] v-2
// BugFix func: ValidateDate [Îòñåâ íåíóæíûõ ôîðì]

var NS4=document.layers?true:false;
var opera=window.opera?true:false;
var RB=0;
var CLICKED=0;

function SetReferrer() {
document.cookie="REFERRER="+document.location.href+"; path=/";
};

function SingleDelete(idfunc,idtable,text) {
	if (confirm(text)) {
		document.location.href="listmake?"+idfunc+"&"+idtable;
	} 
}

function DeleteRows(delete_warning) {
var count_checked=0;
var count_all=0;
var span=[];
var inner;
var todel='';
	if (! confirm(delete_warning)) return false;

	for (var i=0; i < document.forms[0].elements.length;i++) {
		var e=document.forms[0].elements[i];
		if (e.type=='checkbox' && e.value=='DOCDEL') {
			++count_all;
			if (e.checked==true) {
			span[e.name]=get_div('row_'+e.name);
			++count_checked;
			}
		}
	}

	if (count_checked) {
		for (var j in span) {
		span[j].innerHTML='<input type=hidden name='+j+' value="DOCDEL">';
		todel+=j+'=';
		}
	todel=todel.replace(/=$/,'');
	}

	inner=get_div('uploaded').innerHTML.replace(/(FALSE)/,'$1='+todel);
	get_div('uploaded').innerHTML=inner;

	if (count_all==count_checked)
	get_div('del_button').style.visibility='hidden';
}

function RbSet() { RB=1; }

function UploaderPopup(idform,idtable,first_time,mode){
var props='dependent=yes';
	if (!document.all) {
        props+=',width=430,height=250';
		props+=',screenX=400,screenY=200';
	} else {
        props+=',width=300,height=250';
		props+=',left=400,top=200';
	}
	if (! mode) {
	mode=0;
	}
var UWin=window.open('/cgi-bin/user/uploader?'+mode+'&'+idform+'&'+idtable+'&'+first_time,'Uploader',props);
UWin.focus();
}

function CommentPopup(tablename,idtable,idcomm,mode) {
var props='dependent=yes';
	if (!document.all) {
		if (mode=='DELETE')
        	props+=',width=430,height=250';
        else
        	props+=',width=630,height=250';
        
		props+=',screenX=400,screenY=200';
	} else {
		if (mode=='DELETE')
        	props+=',width=300,height=250';
        else
        	props+=',width=500,height=250';
        	
		props+=',left=400,top=200';
	}
	
var UWin=window.open('/cgi-bin/user/commpopup?'+tablename+'&'+idtable+'&'+idcomm+'&'+mode,'Comment',props);
UWin.focus();
}


function get_div (name){
		return NS4?document.layers[name]:
		  document.getElementById?document.getElementById(name):
		    document.all[name];
}

function CheckFileFormat(e) { //ÓÅÊÞÁÓ ÎÅ ÉÓÐÏÌØÚÕÅÔÓÑ
	if (!e.value || e.value.replace(/\s/g, '')=='') return true;

	var text=document.forms[0].elements[e.name+'_text'].value;
	var exists=document.forms[0].elements[e.name+'_exists'] ?
			document.forms[0].elements[e.name+'_exists'].value:false;
	var iLastIndex = e.value.lastIndexOf('.', e.value.length - 1);
	var sFileExtension = e.value.substr(iLastIndex + 1);
	if (sFileExtension!='doc') {
	  alert(text);
	  return false;
	} else {
		if (exists && !confirm(exists)) return false;
		else return true;
	}
}

function CleanDocCheckboxes() {
	for (var i=0; i < document.forms[0].elements.length; i++) {
	var e=document.forms[0].elements[i];
		if (e.type=="checkbox" && e.value=="DOCDEL") 
		{
			e.checked=false;
		}
	}
}

function IsMandatory(){
    var mandats = new Array();
    var dateformat = arguments[0];
    var active_x_switch = arguments[1];
    var message = arguments[2];
    var found = 0;
    //var select_one=/^select\-one$/i;
    //var select_multi=/^select\-multiple$/i;
    var datefield = /DATE/;
    var combo = /select/i;
    var activex = /^RESUME$|^DESCRIPTION$/;
    document.cookie = "REFERRER=" + document.location.href + "; path=/";
    
    if (RB) { //ÎÅ ÂÕÄÅÍ ÎÉÞÅÇÏ ÄÅÌÁÔØ ÅÓÌÉ ×ÙÚ×ÁÎ ÒÅÚÀÍÅ ÓÔÒÏÉÔÅÌØ
        if (!opera && document.all) {
            if (active_x_switch == 1) 
                ae_onSubmit();
        }
        return true;
    }
    
    for (j = 3; j < arguments.length; j += 2) { //creating hash
        mandats[unescape(arguments[j])] = arguments[j + 1];
    }
    
    
    var CheckingForm; // Îòñåèâàåì ôîðìó äëÿ ïðîâåðêè
    for (var i = 0; i < document.forms.length; i++) {
        if ((document.forms[i].className != "login-form1") || (document.forms.length == 1)) {
            CheckingForm = document.forms[i];
            break;
        }
    }
    
    for (var i = 0; i < CheckingForm.elements.length; i++) {
        var e = CheckingForm.elements[i];
        var s;
        var a_e;
        
        //ÐÒÏ×ÅÒÉÍ ÆÏÒÍÁÔ ÄÁÔÙ ÅÓÌÉ ÐÏÌÅ × ÎÁÚ×ÁÎÉÉ ÓÏÄÅÒÖÉÔ DATE
        if (datefield.test(e.name)) 
            if (!ValidateDate(dateformat, e.name, CheckingForm)) 
                found = 1;
        
        if (message == "") 
            continue; //ÎÅÔ ÏÂÑÚÁÔÅÌØÎÙÈ ÐÏÌÅÊ ÐÒÏÐÕÓÔÉÍ
        if (!mandats[e.name]) 
            continue; //ÎÏÒÍÁÌØÎÏÅ ÐÏÌÅ ÐÒÏÐÕÓÔÉÍ
        if (combo.test(e.type)) {
            if (e.selectedIndex < 0) 
                s = new String();
            else 
                s = new String(e.options[e.selectedIndex].value);
        }
        else 
            if (e.type == "checkbox") 
                s = new String(e.checked ? "1" : "");
            else {
                if (active_x_switch == 1 && activex.test(e.name)) {
                    if (!opera && document.all) {
                        a_e = DHTMLSafe.DOM.body;
                        s = new String(a_e.innerHTML);
                        s = s.replace(/^<P>&nbsp;<\/P>$/, '');
                    }
                    else 
                        s = new String(e.value);
                }
                else 
                    s = new String(e.value);
            }
        
        if (s.replace(/\s+/, '') == "") {
            if (mandats[e.name] == "\r") {
                alert(message);
            }
            else {
                alert("'" + mandats[e.name] + "' " + message);
            }
            
            if (active_x_switch == 1 && activex.test(e.name)) {
                if (!opera && document.all) {
                    DHTMLSafe.focus();
                    a_e.focus();
                }
                else {
                    try {
                        if (e.type == "hidden") {
                            if (e.nextSibling) 
                                if (e.nextSibling.type == "button") {
                                    e.nextSibling.focus();
                                }
                        }
                        else {
                            e.focus();
                        }
                    }
                    finally {
                        // nothing...
                    }
                }
                
            }
            else {
                try {
                    if (e.type == "hidden") {
                        if (e.nextSibling) 
                            if (e.nextSibling.type == "button") {
                                e.nextSibling.focus();
                            }
                    }
                    else {
                        e.focus();
                    }
                }
                finally {
                    // nothing...
                }
            }
            
            found = 1;
            break;
        }
    }
    if (found == 1) 
        return false;
    
    if (!opera && document.all) {
        if (active_x_switch == 1) 
            ae_onSubmit();
    }
    
    if (CLICKED >= 1) 
        return false; //Lariska zadolbala!!!
    ++CLICKED;
}


function ValidateDate(DATE,field, inCheckingForm) {
	var CheckingForm; // Îòñåèâàåì ôîðìó äëÿ ïðîâåðêè
	if (inCheckingForm) {
		CheckingForm=inCheckingForm
	}
	else {
		for (var i = 0; i < document.forms.length; i++) {
			if ((document.forms[i].className != "login-form1") || (document.forms.length == 1)) {
				CheckingForm = document.forms[i];
				break;
			}
		}
	}
	
var obj=CheckingForm.elements[field];
var s=new String(obj.value);
s=s.replace(/\s+/g,'');
var wrong=/^\d+[\-\.\:]\d+/;
var mon=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
var d; var m; var y;
var message='';
var ok=true;
	if (s=="") return true;

	if (!DATE) alert('Date format is not defined!');

	if (DATE == 1) {
	s.match(/^(\d{1,2})[\-\.\:](\d{1,2})[\-\.\:]?(\d{1,4})?$/);
	d = RegExp.$1; m = RegExp.$2; y = RegExp.$3;
	message+="dd-mm-yyyy";
        } else if (DATE == 2) {
	s.match(/^(\d{1,2})[\-\.\:](\d{1,2})[\-\.\:]?(\d{1,4})?$/);
	m = RegExp.$1; d = RegExp.$2; y = RegExp.$3;
	message+="mm-dd-yyyy";
        } else if (DATE == 3) {
	s.match(/^(\d{1,4})?[\-\.\:]?(\d{1,2})[\-\.\:](\d{1,2})$/);
	y = RegExp.$1; m = RegExp.$2; d = RegExp.$3;
	message+="yyyy-mm-dd";
        } else if (DATE == 4) {
	s.match(/^(\d{1,4})?[\-\.\:]?(\d{1,2})[\-\.\:](\d{1,2})$/);
	y = RegExp.$1; d = RegExp.$2; m = RegExp.$3;
	message+="yyyy-dd-mm";
       	}

	if (wrong.test(s)==false) ok=false;
	if (m > 12) ok=false;

	if ((y%4)==0) //leap year
	mon[1]=29;

var i=m.replace(/^0/,'');

	if (d > mon[i-1]) ok=false;
	if (y > 10000) ok=false;

	if (ok==false) {
	alert(message);
	obj.focus();
	obj.select();
	return false;
	}
return true;
}

function IsUpdateSetCookie() {
	for (var i=0; i < document.forms[0].elements.length; i++) {
	var type=document.forms[0].elements[i].type;
		if (type=="text" || type=="textarea") {
		obj=document.forms[0].elements[i]
			if (obj.value && obj.size > 3 && obj.name.indexOf("DATE")==-1) {
			//alert(obj.name);
			var newCookie = "UPDATE=1; path=/";
			document.cookie = newCookie;
			break;
			}
		}
	}

}


function ResetFields()
{
	for (var i=0; i < document.forms[0].elements.length; i++) {
	var type=document.forms[0].elements[i].type;
		if (type=="text" || type=="textarea") {
		document.forms[0].elements[i].value="";
		}
	}
}

function CheckNull()
{
var pattern;
var how=new RegExp("admin");
	if (how.exec(window.location))
	 pattern=new RegExp("^del", "i");
	else
	 pattern=new RegExp("^[0-9]+");

	for (var i=0; i<document.forms[0].length; i++) {
		var elem = document.forms[0].elements[i];
		if (elem.type!="checkbox") continue;

		if (elem.checked && pattern.exec(elem.name))
		{
		  return 1;
		}
	}
return 0;
}

function DeleteConfirm(text)
{
document.cookie="REFERRER="+document.location.href+"; path=/";
	if (CheckNull() > 0) {
	return(DeleteCore(text));
	} else {
	return false;
	}
}

function DeleteCore(text)
{
	if (confirm(text)) {
	return(FindMarked);
	} else {
	return false;
	}
}

function FindMarked(mark, text)
{
document.cookie="REFERRER="+document.location.href+"; path=/";
	
	if (mark == 1) {
	return(DeleteCore(text));
	}
}

function MarkAll()
{
	for (i=0; i<=document.forms[0].length-1; i++) {
		if (document.forms[0].ALL.checked) {
		document.forms[0].elements[i].checked = true;
		} else {
		document.forms[0].elements[i].checked = false;
		}
	}
}

function SecChild(idsec, sum)
{
var s = eval("document.forms[0].DELSEC_"+idsec);
var f;
	for (i=1; i<=sum; i++) {
	f = eval("document.forms[0].DELFIELD_"+idsec+"_"+i);
	Checkup(s, f);
	}

}

function SecRB()
{
var idsec = arguments[0];
var sum = arguments[1];
var ssum_array = arguments[2];
var s = eval("document.forms[0].DELSEC_"+idsec);
var f;
	
	if (ssum_array < 1) {
		for (i=1; i<=sum; i++) {
		f = eval("document.forms[0].DELFIELD_"+idsec+"_"+i+"_"+i);
		Checkup(s, f);
		}
	} else {  
		for (var k=2; k <arguments.length; k++) {
			for (j=0, i=1; i <= sum; i++, j++) {
				if (j > arguments[k]) {
				j = 0;
				}
			f = eval("document.forms[0].DELFIELD_"+idsec+"_"+i+"_"+j);
			Checkup(s, f);
			} //for loop
		}
	
	}
}

function Checkup(s, f)
{
	if (s.checked) {
	f.checked = true;
	} else {
	f.checked = false;
	}
}

function SubSecRB(idsec, ssum, i)
{
var s = eval("document.forms[0].DELFIELD_"+idsec+"_"+i+"_0");
	for (j=1, n = i+1; j<=ssum; j++, n++) {
	var f = eval("document.forms[0].DELFIELD_"+idsec+"_"+n+"_"+j);
	Checkup(s, f);
	}
}


function Exclaim(text)
{
alert(text)
return false;
}

function ShowTime()
{
	var now = new Date();
	hrs = now.getHours();
	min = now.getMinutes();
	sec = now.getSeconds();
	s = ""+hrs;
	s+= ((min < 10) ? ":0" : ":") + min;
	s+= ((sec < 10) ? ":0" : ":") + sec;
	document.forms[0].HASTIME.value = s;
	id = setTimeout("ShowTime()", 1000);
	//return s;
}


function isInteger(s)
{
  var i;
  var ss=new String(s);
  var digits = '0123456789';
  for(i=0;i<ss.length;i++)
    if(digits.indexOf(ss.charAt(i))==-1) return (false);
  return (true);
}

function confirmLink(confirmMsg)  
{ 
if (confirmMsg == '') {
  return true;  
}
var is_confirmed = confirm(confirmMsg); 
if (is_confirmed) { 
theLink.href += '&is_js_confirmed=1'; 
} 
return is_confirmed;  
}

function validate_passscore(msg) {
// éÓÐÏÌØÚÕÅÔÓÑ × ÆÏÒÍÅ ËÏÎÓÔÒÕËÔÏÒÁ ÜÔÁÐÏ× ÏÔÂÏÒÁ
  if (document.MyForm.elements['ISPASSSCORE'].checked && document.MyForm.elements['PASSSCORE'].value == '') {
  	document.MyForm.elements['PASSSCORE'].focus();
    alert(msg);
    return false;
  }
  return true;
}



// ajax/photo tools
// 20.03.2011 A.S.Matveev

function moveInputOverTarget(element, formId) {

	var pos = getElPosition(element);
	var form = getEl(formId);
	form.style.top = pos.top - 5 + 'px';
	form.style.left = pos.left - 180 + 'px';
}

function movePointerOverTarget(event, form) {
	event = event || e;
	var mousePos = getMouseXY(event);
	var trigger = getEl(form.id + '_TRIGGER');
	var w = trigger.style.width.split('px')[0]/1;
	var h = trigger.style.height.split('px')[0]/1;
	var pos = getElPosition(trigger);

	if (mousePos.x < pos.left || mousePos.y < pos.top || mousePos.x > pos.left + w || mousePos.y > pos.top + h) {
		form.style.top = '-100px';
		form.style.left = '0px';
	}
}



function getMouseXY (evt) {
  var IE = document.all ? true : false;
  var tempX,tempY;
  if (IE) {
    tempX = evt.clientX + document.body.scrollLeft
    tempY = evt.clientY + document.body.scrollTop
  } else {
    tempX = evt.pageX
    tempY = evt.pageY
  }
  if (tempX < 0) tempX = 0;
  if (tempY < 0) tempY = 0;

  return {x:tempX, y:tempY};
}

function getEl(id) {
	return document.getElementById(id);
}

function styleEl(element) {
	return getEl(element).style;
}

function showEl(element) {
	styleEl(element).display = 'block';
}

function hideEl(element) {
	styleEl(element).display = 'none';
}

var AFL = {
	frame : function(c) {
		var n = 'f' + Math.floor(Math.random() * 99999);
		var d = document.createElement('DIV');
		d.innerHTML = '<iframe style="display:none" src="about:blank" id="'+n+'" name="'+n+'" onload="AFL.loaded(\'' + c.inputField + '\',\'' + c.user_id + '\',\'' + n + '\')"></iframe>';
		document.body.appendChild(d);
		if (c && typeof(c.onComplete) == 'function') getEl(n).onComplete = c.onComplete;

		return n;
	},
	submit : function(f, c) {
		var name = AFL.frame(c);
		f.setAttribute('target', name);
		if (c && typeof(c.onStart) == 'function') return c.onStart();
		else return true;
	},
	loaded : function(inputField, user_id, id) {
		var i = getEl(id);
		var d;
		if (i.contentDocument) d = i.contentDocument;
		else if (i.contentWindow) d = i.contentWindow.document;
		else d = window.frames[id].document;
		if (d.location.href == "about:blank") return;
		if (typeof(i.onComplete) == 'function') i.onComplete(inputField, user_id, d.body.innerHTML);
	}
}

function upload_photo(name, form, id) {

    var res = AFL.submit(document.forms[form], {onStart: beforeOk, onComplete: callback, inputField: name, user_id: id});
    if (res) document.forms[form].submit();
}

function beforeOk() {
    showBusy();
    return true;
}

function callback(input, user_id, js) {
    hideBusy();
    if (eval(js)) return false;
}

function delete_photo() {
	var params = 'action=delete';
    	ajaxRequest({url:'/cgi-bin/user/upload_photo.pl', params:params});
}

// âîçâðàùàåò ïîçèöèþ ýëåìåíòà
function getElPosition(elem) {
  var offsetEl = (typeof(elem) == 'string') ? getEl(elem) : elem;
  var offsetLeft = 0;
  var offsetTop = 0;
  
  while(offsetEl) {
    offsetLeft += offsetEl.offsetLeft;
    offsetTop += offsetEl.offsetTop;
    offsetEl = offsetEl.offsetParent;
  }
  
  if (navigator.userAgent.indexOf("Mac") != -1 && typeof document.body.leftMargin != "undefined") {
    offsetLeft += document.body.leftMargin;
    offsetTop += document.body.topMargin;
  }
    
  return {left:offsetLeft , top:offsetTop}
}

function showBusy() {
  var pos = getElPosition('PHOTO_ID');
  var img = document.createElement("img");
  img.id = 'busy';
  img.style.position = 'absolute';
  img.src = '/spsys/busy.gif';
  img.style.top = pos.top+'px';
  img.style.left = pos.left+'px';
  document.body.appendChild(img);	
}

function hideBusy() {
  document.body.removeChild(getEl('busy'));
}



function ajaxRequest(data)
{  
	var aj = [];
	aj = initAjax();
	var ajax = aj[0];
	var ie = aj[1];
	data.params = data.params + '&is_ie=' + ie; 

	var ajaxHandler = function() {

		if(ajax.readyState == 4) {
			var html = ajax.responseText;
			
			var blocks = html.split('<js>');
			var count = blocks.length - 1;
			var content = blocks[count];
			
			count--;
			var arr = [];
			while (count > 0) {
			  arr.push(count);
			  count = count-2;
			}
			arr = arr.reverse();
			for (var i in arr) eval(blocks[arr[i]]);
			
			if (content && data.reply_id) getEl(data.reply_id).innerHTML = content;
			
			//if (content && data.reply_id) $('#'+data.reply_id).empty().prepend(content);
			
			if(data.busy) hideBusy();

			if (data.doAfter) {if (typeof(data.doAfter) == 'function') data.doAfter(); else eval(data.doAfter);}
		}

	}

	var sign = /\?/.test(data.url) ? '&' : '?';
	var url = data.url + sign + Math.random();
	var async = 1 - (data.sync || 0);
	
	if (data.busy) showBusy();
		
	ajax.open("POST", url, async);
	ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

	ajax.send(data.params);

	if (async) ajax.onreadystatechange = ajaxHandler;
	else ajaxHandler();
}

function initAjax() {
	var xmlHttp;
	var ie = 1;
	try {
	    xmlHttp = new XMLHttpRequest();
	    ie = 0;
	}
	catch (e) {
	    try {
		xmlHttp = new ActiveXObject('MSXML2.XMLHttp.5.0');
	    }
	    catch (e) {
		try {
		    xmlHttp = new ActiveXObject('MSXML2.XMLHttp.4.0');
		}
		catch (e) {
		    try {
			xmlHttp = new ActiveXObject('MSXML2.XMLHttp.3.0');
		    }
		    catch (e) {
			try {
			    xmlHttp = new ActiveXObject('MSXML2.XMLHttp');
			}
			catch (e) {
			    try {
				xmlHttp = new ActiveXObject('Microsoft.XMLHttp');
			    }
			    catch (e) {
				alert("Âàø áðàóçåð íå ïîääåðæèâàåò AJAX.");
				return false;
			    }
			}
		    }
		}
	    }
	}
	return [xmlHttp, ie];
}

function setStyle(obj,data) {
	if (typeof(obj) == 'string') obj = getEl(obj);
	for (var i in data) {
		obj.style[i] = data[i];	
	}
}

function getCenteredPosition(obj) {
	if (typeof(obj) == 'string') obj = getEl(obj);	
	var top, left;
	var h = window.innerHeight ? window.innerHeight : (document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.offsetHeight); 
	var w = window.innerWidth ? window.innerWidth : (document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.offsetWidth);
	var st = document.body.scrollTop ? document.body.scrollTop : document.documentElement.scrollTop;
	var sl = document.body.scrollLeft ? document.body.scrollLeft : document.documentElement.scrollLeft;
	top = (h - obj.style.height.match(/\d+/))/2 + st + 'px';
	left = (w - obj.style.width.match(/\d+/))/2 + sl + 'px';
      
	return {left:left, top:top};
}

function setOpacity(obj, opacity) {
	if (typeof(obj) == 'string') obj = getEl(obj);
	if (document.all) {
		opacity = opacity*100;
		obj.style.filter="progid:DXImageTransform.Microsoft.Alpha(opacity="+opacity+")";
	}
	else obj.style.opacity = opacity;
}

function showShadow() {
	
	var params = {top:0,left:0,backgroundColor:'#000000','zIndex':1, display: '', position:'absolute'};

	var div = document.createElement('div');
	div.id = 'shadow';
	setOpacity(div, 0.5);
	var h = document.height ? document.height : document.body.scrollHeight;
	var w = document.width ? document.width : document.body.scrollWidth;
	div.style.width = w+'px';
	div.style.height = h+'px';
	
	setStyle(div, params);
	
	document.body.appendChild(div);
}

function hideShadow(id) {
	id = id || 'shadow';
	document.body.removeChild(getEl(id));
}

function hideTemplate(id) {
	hideShadow();
	document.body.removeChild(getEl(id));
	document.body.removeChild(getEl(id+'IFrame'));
}


function showIFrameUnderDiv(div) {

	var iframe = document.createElement("iframe");
	iframe.id = div.id + 'IFrame';
	iframe.style.position = "absolute";
	iframe.style.width = div.offsetWidth;
	iframe.style.height = div.offsetHeight;
	iframe.style.top = div.style.top;
	iframe.style.left = div.style.left;
	iframe.style.zIndex = div.style.zIndex - 1;
	iframe.style.border="0";
	document.body.appendChild(iframe);
}

//-->

