var ajax;
Function.prototype.bind = function(object) {
  var __method = this;
  return function() {
    return __method.apply(object, arguments);
  }
};

String.prototype.trim = function () {
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
}

function getTarget(x){
    return x.target || x.srcElement;
} 
function expandFolder(elm){	alert('as');$.ajax({
	url:'./?md=categories&action=getSub&id='+elm,
	type:'GET',
	dataType:'text',
	success: function (data, textStatus){		alert(data);	}
});
/*$.ajax('./?md=categories&action=getSub&id='+elm, {}, function(data){
           $('#example-3').html('');
           $(xml).find('note').each(function(){       // заполняем DOM элемент данными из XML
               $('#example-3').append('To: '   + $(this).find('to').text() + '<br/>')
                              .append('From: ' + $(this).find('from').text() + '<br/>')
                              .append('<b>'    + $(this).find('heading').text() + '</b><br/>')
                              .append(           $(this).find('body').text() + '<br/>');
           });
       }, 'xml');*/	}
function print(objct){
	var win = window.open('','','width=800,height=600,location=0,status=0,scrollbars=1,resizable=1');
	win.document.open("text/html");
	win.document.write('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html><head><link rel="stylesheet" href="'+server_root+'/c/print.css?r=1952" type="text/css" /></head><body>');
	win.document.write(obj(objct).innerHTML);
	win.document.write('</body></html>');
	win.document.close();
	win.print();

}


function displayNotice(ico, title, str){
	showBusyLayer('eForm');
	var frm=obj('ajaxForm');            
	if (ico) obj('efI').className=obj('efI').className.replace(/ .+ico$/i,' '+ico);
	obj('efT').innerHTML=title;
	var prnt;
	prnt=obj('efC');		
	frm.innerHTML=str;
	eSize=getElementSize('ajaxForm');
	h=((eSize[1]+60)>700?700:(eSize[1]));
	obj('efT').style.visibility="visible";
	obj('efT').style.display="block";
	prnt.style.height=h+'px';
	frm.style.height=h+'px';
	/*prnt.style['marginLeft']='-'+Math.floor(prnt.clientWidth/2)+'px';
	prnt.style['marginTop']='-'+Math.floor(h/2)+'px';*/
	ShowModalWindow('eForm',true);
}

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 selectInput(obj){	if (obj.name=="categoryId" || obj.name=="articleId"){		document.getElementById("menu_link").disabled=((obj.value==0||document.getElementById("menu_link").value!='')?false:true);
		document.getElementById("menu_link").className=((obj.value==0||document.getElementById("menu_link").value!='')?"w100":"w100 disabled");
	} else {
		document.getElementById("articleId").disabled=(obj.value==""?false:true);
		document.getElementById("categoryId").disabled=(obj.value==""?false:true);
		document.getElementById("articleId").className=(obj.value==""?"w100":"w100 disabled");
		document.getElementById("categoryId").className=(obj.value==""?"w100":"w100 disabled");
	}
}

function updateTestTime(objct,id){
	if (objct==null || objct==undefined){
		ajaxSend([['id',id]],'index.php?mode=ajax&md=cources&action=updateTestTime','POST','updateTestTime',id);
	} else {
		ajax=eval(objct);   
		obj('elapsedTime').innerHTML=ajax.responseText;
	}
}

function updateTestTimeJs(t,id){
	t-=0.5;
	obj('elapsedTimeId').className='error';
	obj('timeSpan').innerHTML=(t>0?Math.floor(t):0)+'c.';
	if (t<0){
		obj('sbm').disabled=true;
		obj('mdData').submit();
	} else {		
		setTimeout('updateTestTimeJs('+t+',"{$ID}")',500)
	}
}

function stopEvent(event){
	if (event.preventDefault) event.preventDefault(); else event.returnValue=false; return false;
}

function checkNooneSelected(objct){
	var frm=obj(objct);
	var ret=false;
	for (i=0;i<frm.elements.length;i++) if (frm.elements[i].getAttribute('type')=='checkbox') ret=ret || frm.elements[i].checked;
	return !ret;
}

function checkFormFill(objct){
	var frm=obj(objct);
	var check={};  
	for (var i=0;i<frm.elements.length;i++){
		if (frm.elements[i].tagName=='INPUT'){
			if (frm.elements[i].getAttribute('type')=='checkbox' || frm.elements[i].getAttribute('type')=='radio')
				check[frm.elements[i].getAttribute('qN')]=check[frm.elements[i].getAttribute('qN')]||frm.elements[i].checked;
			else if (frm.elements[i].getAttribute('type')=='text')
				check[frm.elements[i].getAttribute('qN')]=(frm.elements[i].value!=''?true:false);
		}
	}          
	var chk=true;                                 
	var ret=Array();
	for (i in check) {
		chk=chk&&check[i];
		if (check[i]==false) ret.push(i);
	} 
	if (chk) return chk; else return ret;
}

function setOptions(objct){
	var lines=objct.value.split(/\r\n\r\n|\n\n/);
	select=obj('mAnsw');
	for (var i=select.options.length-1;i>=0;i--){
		select.remove(i);
	}
	for (i=0;i<lines.length;i++){
		if (lines[i]=='') continue;
		var elOptNew = document.createElement('option');     
		elOptNew.text = lines[i].replace(/\r\n/g,"").replace(/\n/g,"").replace(/\r/g,"");
		elOptNew.value = i;
		try {
		  obj('mAnsw').add(elOptNew, null);
		} catch(ex) {
		  obj('mAnsw').add(elOptNew);
		}            
	}   
	if (objct.value!=''){ 
		obj('multiple').style.display='block';
		obj('single').style.display='none';
	} else {
		obj('multiple').style.display='none';
		obj('single').style.display='block';
	}
}

function loadForm(title,form,url,method,attr,ico){
	if (ico!=undefined) obj('efT').className=obj('efT').className.replace(/ .+ico$/i,' '+ico);
	var frm=obj(form);
	if (title!=null && title!=undefined){
		obj('ajaxFormTitle').innerHTML=title;
	}           
	var prnt;
	prnt=obj('eForm');
	if (attr && attr.length>0) for (i=0;i<attr.length;i++) {
		prnt.style[attr[i][0]]=attr[i][1]+'px';
	} else {                 
		//prnt.style['height']=(prnt.clientHeight-49)+'px';
	}

	ShowModalWindow('eForm',true);
	obj('ajax-loader').style.visibility="visible";
	obj('efT').style.visibility="visible";
	obj('efT').style.display="block";
	var data=new Array();
	if (frm){ 
		for (var i=0; i<frm.elements.length; i++) { 
			if (frm.elements[i].tagName!='SELECT' || !frm.elements[i].getAttribute('multiple'))
				data.push([frm.elements[i].getAttribute('name'),frm.elements[i].value.toString()]);
			else
				for (var j=0;j<frm.elements[i].options.length;j++){
					//alert(frm.elements[i].selectedIndex);
					//if (j==0) for (ss in frm.elements[i].options[j].attributes) /*if (typeof frm.elements[i].options[j][ss]!='function') */alert(ss+' '+frm.elements[i].options[j].attributes[ss]);
					if (frm.elements[i].options[j].selected==true) 
						data.push([frm.elements[i].getAttribute('name'),frm.elements[i].options[j].value.toString()]);
				}
		}
	}   
	frm=obj('ajaxForm');
	frm.style.visibility="hidden";
	frm.innerHTML='';
	ajax=ajaxSend(data,url,method,'updateFormContent','ajaxForm',ico);
}
function showHideAllSelect(tf){
	var elmts=document.getElementsByTagName('select');
	for (var i=0; i<elmts.length; i++) {
		elmts[i].style.visibility=(tf?'visible':'hidden');
	}
}

function addCourcesRow(objct){
	var frm=obj('ajaxForm');
	/*frm.style.height="";
	frm.parentNode.height="";*/
	var newNode=objct.parentNode.parentNode.cloneNode(true);
	if (newNode.childNodes.length>2) if (newNode.childNodes[Math.floor(newNode.childNodes.length/2)].childNodes.length-2>=0)
		newNode.childNodes[Math.floor(newNode.childNodes.length/2)].childNodes[newNode.childNodes[Math.floor(newNode.childNodes.length/2)].childNodes.length-2].value='';
	objct.parentNode.parentNode.parentNode.appendChild(newNode);
	objct.parentNode.removeChild(objct);
	prnt=obj('eForm');
	prnt.style.height='auto';
	var h;h=((frm.offsetHeight+55)>700?700:(frm.offsetHeight+55));
	if (h>=700) frm.style.height="645px"; else frm.style.height="";
	//prnt.style.height=h+'px';
	prnt.style['marginTop']='-'+Math.floor(prnt.clientHeight/2)+'px';
	frm.scrollTop = frm.scrollHeight;
}

function updateFormContent(objct,form,ico){
	ajax=eval(objct);
	var frm=obj(form);
	if (ico!=undefined && ico!='undefined') obj('efT').className=obj('efT').className.replace(/ .+ico$/i,' '+ico);
	var prnt;
	prnt=obj('eForm');
	frm.style.height="";
	prnt.height="";	
	frm.innerHTML=ajax.responseText;
	prnt.style.height='auto';
	var t=obj('efT').style.top;
	var h;h=((frm.clientHeight+55)>700?700:(frm.clientHeight+55));
	if (h==700) frm.style.height="645px"; else frm.style.height="";
	//prnt.style.height=h+'px';
	
	ShowModalWindow('eForm',true);
	obj('ajax-loader').style.visibility="visible";	
	
	obj('ajax-loader').style.visibility="hidden";
	obj('efT').style.visibility=prnt.style.visibility;
	frm.style.visibility=prnt.style.visibility;
	obj('efT').style.display="block";
	obj('efT').style.top='-21px';
	obj('efT').style.left='0px';
	obj('efT').style.marginTop='0px';
}

function showBusyInner(elmt){
	showHideAllSelect(false);
	if (obj("black_overlayInner")!=undefined){
		obj("black_overlayInner").style.height=(obj("black_overlayInner").parentNode.offsetHeight-45)+'px';
		obj("black_overlayInner").style.visibility="visible";
	}
	if (elmt) obj(elmt).style.visibility="visible";	
}

function closeEditForm(objct,form){
	showHideAllSelect(true);
	if (objct!=null && objct!=undefined && form!=null && form!=undefined && form!='undefined'){ 
		ajax=eval(objct);
		var elmt=obj(form);  
		elmt.innerHTML=ajax.responseText;
	} 
	if (obj('innerPage')!=undefined && obj('innerPage').getAttribute('needReload')==1){
		obj('innerPage').setAttribute('needReload',0);
		obj("black_overlay").style.visibility="hidden";
		if (obj("black_overlayInner")!=undefined){
			obj("black_overlayInner").style.height=(obj("black_overlayInner").parentNode.offsetHeight-45)+'px';
			obj("black_overlayInner").style.visibility="visible";
		}
		obj("eForm").style.visibility="hidden";
		obj("efT").style.visibility="hidden";	
		obj("ajaxForm").innerHTML='';
		obj("ajax-loader").style.visibility="hidden";
		showBusyInner();
		var frm=obj('mdData');
		var data=new Array();
		if (frm){ 
			for (var i=0; i<frm.elements.length; i++) { 
				data.push([frm.elements[i].getAttribute('name'),frm.elements[i].value.toString()]);
			}
		}     
		ajax=ajaxSend(data,'/index.php','POST','closeEditForm','innerPage');
		return true;
	} else {
		obj("black_overlay").style.visibility="hidden";
		if (obj("black_overlayInner")!=undefined){
			obj("black_overlayInner").style.visibility="hidden";
		}
		obj("eForm").style.visibility="hidden";
		obj("ajaxForm").innerHTML='';
		obj("ajax-loader").style.visibility="hidden";
		obj("efT").style.visibility="hidden";
	}
}

function checkCompl(form, compl, tf){
	var frm=obj(form);
	if (frm){
		for (var i=0; i<frm.elements.length; i++) if (frm.elements[i].type=='checkbox' && frm.elements[i].getAttribute('complexity')==compl)
			frm.elements[i].checked=tf;
	} 
	trySelectAll(form);
}

function trySelectCompexity(form, compl){
	var aSel=true;
	var frm=obj(form);
	if (frm){
		for (var i=0; i<frm.elements.length; i++) if (frm.elements[i].type=='checkbox' && frm.elements[i].getAttribute('complexity')==compl)
			aSel=aSel&&frm.elements[i].checked;
	}
	obj('checkCompexity'+compl).checked=aSel;
	trySelectAll(form);
}
function trySelectAll(form){
	var aSel=true;
	var frm=obj(form);
	alert(frm.elements);
	if (frm){
		for (var i=0; i<frm.elements.length; i++) if (frm.elements[i].type=='checkbox' && frm.elements[i].getAttribute('complChecker')==1)
			aSel=aSel&&frm.elements[i].checked;
	}
	obj('checkAll').checked=aSel;
}
   
function form2array(form){
	var frm=obj(form);        
	var data=new Array();
	if (frm){ 
		for (var i=0; i<frm.elements.length; i++) { 
			if (frm.elements[i].type!='checkbox' && (frm.elements[i].tagName!='SELECT' || !frm.elements[i].getAttribute('multiple')))
				data.push([frm.elements[i].getAttribute('name'),frm.elements[i].value.toString()]);
			else if (frm.elements[i].type=='checkbox'){
				if (frm.elements[i].checked) data.push([frm.elements[i].getAttribute('name'),frm.elements[i].value.toString()]);
			 } else
				for (var j=0;j<frm.elements[i].options.length;j++)
					if (frm.elements[i].options[j].selected==true) 
						data.push([frm.elements[i].getAttribute('name')+"[]",frm.elements[i].options[j].value.toString()]);
		}
	}
	return data;
}

function form2string(form){
	var frm=obj(form);        
	var data=new String();
	if (frm){ 
		for (var i=0; i<frm.elements.length; i++) { 
			if (frm.elements[i].type!='checkbox' && (frm.elements[i].tagName!='SELECT' || !frm.elements[i].getAttribute('multiple')))
				data+=encodeURIComponent(frm.elements[i].getAttribute('name'))+'='+encodeURIComponent(frm.elements[i].value.toString())+'&';
			else if (frm.elements[i].type=='checkbox'){                                                                         
				if (frm.elements[i].checked) data+=encodeURIComponent(frm.elements[i].getAttribute('name'))+'='+encodeURIComponent(frm.elements[i].value.toString())+'&';
			 } else
				for (var j=0;j<frm.elements[i].options.length;j++)
					if (frm.elements[i].options[j].selected==true) 
						data+=encodeURIComponent(frm.elements[i].getAttribute('name')+'['+j+']')+'='+encodeURIComponent(frm.elements[i].options[j].value.toString())+'&';
		}
	}
	return data;
}

function serialize(arr){
	;
}

function showBusyLayer(elmt){
	showHideAllSelect(false);
	obj("black_overlay").style.visibility="visible";
	if (elmt) obj(elmt).style.visibility="visible";  
}

function setLoading(to){
	document.getElementById(to).innerHTML='<img src="/i/loading.gif" height=19>';
}

function launchJavascript(responseText) {
  var ScriptFragment = '(?:<script.*?>)((\r\n|.)*?)(?:</script>)';
  var match    = new RegExp(ScriptFragment, 'img');
  var scripts  = responseText.match(match);
    if(scripts) {
        var js = '';
        for(var s = 0; s < scripts.length; s++) {
            var match = new RegExp(ScriptFragment, 'im');
            js += scripts[s].match(match)[1];
        }                
        eval(js); 
    }
}

function setFormChecked(form,check){
	var obj=document.forms[form];
	for (i=0; i<obj.elements.length;i++ )
	{
		if(obj.elements[i].type=='checkbox'){
			obj.elements[i].checked=check;
		}
	}
}

function setfirmtype(id){
  for (i=1;i<=5 ;i++ )
  {
	  obj=document.getElementById('firm_type'+i);
	  obj.style.display='none';
  }

  if(id==undefined || id=='') {
	  document.getElementById('firm_type1').style.display='block';
	  document.getElementById('firm_type1').disabled=true;
	  document.getElementById('company').disabled=true;
	  document.getElementById('company').className='disabled';
	   document.getElementById('firm_type1').className='disabled';
  } else {
	  document.getElementById('firm_type'+id).style.display='block';
	  document.getElementById('firm_type'+id).disabled=false;
	  document.getElementById('company').disabled=false;
	  document.getElementById('company').className='';
	  document.getElementById('firm_type'+id).className='';
  }
}

var ns6=document.getElementById&&!document.all;
var docLayers = (document.layers) ? true:false;

function hideHelp(e){
    element=document.all?e.srcElement:e.target;
  document.getElementById("div"+element.name).style.visibility="hidden";
}

function setHelpPos(e){    element=document.all?e.srcElement:e.target;
    name="div"+element.name;
    document.getElementById(name).style.visibility="visible";
    X = getMouseXPos(e);
    Y = getMouseYPos(e);
    document.getElementById(name).style.top=Y;
    document.getElementById(name).style.left=X;
}

function getMouseXPos(e) {
  if (document.layers||ns6) {
    return parseInt(e.pageX+15)
  } else {
    return (parseInt(event.clientX+15) + parseInt(document.body.scrollLeft))
  }
}
function getMouseYPos(e) {
  if (document.layers||ns6) {
    return parseInt(e.pageY)
  } else {
    return (parseInt(event.clientY) + parseInt(document.body.scrollTop))
  }
}

function ajaxCancel(obj){
	obj.abort();
}

function ChangeCarType(val,form){
	if (2==1) {
		for (i=0;i<document.forms['cct_form'].elements.length ;i++ )
		{
			alert(document.forms['cct_form'].elements[i].name+'='+document.forms['cct_form'].elements[i].value);
		}
	}
	ajax=ajaxSend('',server_root+'?md=accounts&action=addauto&mode=ajax&id='+val,'GET','ChangeCarTypeHTML');
}

function ChangeCarTypeHTML(obj){
	ajax=eval(obj);
	alert(ajax.responseText);
	document.getElementById('car_content').innerHTML=ajax.responseText;
	delete ajax;
}
function updateContainer(objct,container){
	ajax=eval(objct);
	var elmt=obj(container); 
	elmt.innerHTML=ajax.responseText;
}
function ajaxSend(data,url,method,func,add,icon){
	if (ajax!=undefined) ajax.abort();
	ajax=ajaxInit(); 
	var PD='';
	for (i = 0; i < data.length; i++) PD += encodeURIComponent(data[i][0])+"="+encodeURIComponent(data[i][1])+'&';
	PD+="dt_rand=" + new Date().getTime();
	if (url.search(/\?/)!=-1) url+='&'; else url+='?';
	url+="dt_rand=" + new Date().getTime();
	ajax.open(method, url, true);
	if (method=='POST') {
		/*ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		ajax.setRequestHeader("Content-length", params.length);
		ajax.setRequestHeader("Connection", "close");*/

		ajax.setRequestHeader("Method", "POST HTTP/1.1");
		ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	}                    
	ajax.onreadystatechange = function() {
		if (ajax.readyState != 4) return; 
		else if (ajax.status==200) {			if (typeof func=='function') func();
			else if (eval('window.'+func)!=undefined) {
				eval(func+"('ajax','"+add+"','"+icon+"');");
			}                 
			try {
				launchJavascript(ajax.responseText);
			} catch (e){}
		}
	}      
	ajax.send(PD);
	return ajax;
}

function ajaxInit(){
	var xmlHttp = null;
	if (window.XMLHttpRequest) xmlHttp = new XMLHttpRequest(); else if (window.ActiveXObject) xmlHttp = new ActiveXObject('MSXML2.XMLHTTP.3.0');
	return xmlHttp;
}

function GetToJS(){
	get = new String(window.location);
	x = get.indexOf('?');
	if(x!=-1)
	{
  		l = get.length;
  		get = get.substr(x+1, l-x);
  		l = get.split('&');
 		x = 0;
  		_GET_Count  = l.length;
		evl_str='var arr={';
		for (i=0;i<_GET_Count;i++){
			get = l[i].split('=');
			evl_str+=get[0]+':"'+get[1]+'"';
			if (i<_GET_Count-1) evl_str+=',';
		}
        evl_str+='}';
        eval(evl_str);
		return arr;
	}
}

function setupHint(elm,hint){ 
	document.write("<div class=\"helpdiv\" id=\"div_"+elm+"\">"+hint+"</div><a href=\"javascript:return false;\"><img src=\"i/inf.gif\" border=\"0\" width=\"14\" height=\"14\" onmouseout=\"hideHelp(event);\" onmousemove=\"setHelpPos(event)\" alt=\"\" name=\"_"+elm+"\"/></a>");
}

function obj(obj){ 
	ret=document.getElementById(obj);
	if (ret==null || ret==undefined) return document[obj];
	return ret;
}

function ShowModalWindow(form,show){
	frm=obj(form);
	//позиционируем по центру окна браузера и отображаем
	var c = getClientCenter();
	frm.style.left = (c[0]-frm.clientWidth/2)+'px';
	frm.style.top  = (c[1]-frm.clientHeight/2)+'px';
	frm.style.display='block';
	if(show) frm.style.display='block';
	else frm.style.display='none';
}
/* вспомогательные функции получения размеров */
// функция кроссбраузерного вычисления размеров документа 
function getElementSize(elm){
	return [
	obj(elm).scrollWidth > obj(elm).offsetWidth ? 
		obj(elm).scrollWidth : obj(elm).offsetWidth,
	obj(elm).scrollHeight > obj(elm).offsetHeight ? 
		obj(elm).scrollHeight : obj(elm).offsetHeight
	];
}
function getDocumentSize(){
	return [
	document.body.scrollWidth > document.body.offsetWidth ? 
		document.body.scrollWidth : document.body.offsetWidth,
	document.body.scrollHeight > document.body.offsetHeight ? 
		document.body.scrollHeight : document.body.offsetHeight
	];
}
// функция кроссбраузерного вычисления размеров рабочего окна браузера 
function getClientSize(){
	if(document.compatMode=='CSS1Compat')
		return [document.documentElement.clientWidth, document.documentElement.clientHeight];
	else
		return [document.body.clientWidth, document.body.clientHeight];
}
// функция кроссбраузерного вычисления значений скроллинга 
function getDocumentScroll(){
	return [
	self.pageXOffset || (document.documentElement && document.documentElement.scrollLeft) 
		|| (document.body && document.body.scrollLeft),
	self.pageYOffset || (document.documentElement && document.documentElement.scrollTop) 
		|| (document.body && document.body.scrollTop)
	];
}
// функция получения центра экрана
function getClientCenter(){
	var sizes = getClientSize();
	var scrl = getDocumentScroll();
	return [parseInt(sizes[0]/2)+scrl[0], parseInt(sizes[1]/2)+scrl[1]];
}
function disable(arg){
	if (arg.length>0)
	for (var i=0; i<arg.length; i++) obj(arg[i]).disabled=true;
}

var isIE=(navigator.appName.indexOf("Microsoft")!=-1)?1:0;
var isOpera=(navigator.appName.indexOf("Opera")!=-1)?1:0;

function createCookie(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 readCookie(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;
}
