var tinyMCEmode = false;
var doLoadForm = false;

function doLoad(path,arr,elm){
	if (!path) return;
	/*tinyMCEmode = false;*/
	// Создаем новый объект JSHttpRequest.
	var req = new Subsys_JsHttpRequest_Js();
	// Код, АВТОМАТИЧЕСКИ вызываемый при окончании загрузки.
	req.onreadystatechange = function() {
	    if (req.readyState == 4) {
			if (req.responseJS) {
	      		// Записываем в <div> или в другой элемент результат работы.
				if (!elm || elm=='none' || !$(elm)) elm = 'result';
	          	//new Element.show(elm);
				if (doLoadForm) {
					$(elm).value = req.responseJS.wf_main;
					doLoadForm = false;
				} else $(elm).innerHTML = req.responseJS.wf_main;
				if (req.responseJS.message) alert(req.responseJS.message);
				if (tinyMCEmode == true) tinyMCE.updateContent(elm);
	      	}
	       	// Отладочная информация
	      	if (req.responseText.length > 0) {
				//new Element.show('debug');
			    //$('debug').innerHTML = req.responseText;
				alert(req.responseText);        
	      	}
	    }
	}
	// Разрешаем кэширование (чтобы при одинаковых запросах не обращаться к серверу несколько раз).
	req.caching = false;
	// Подготавливаем объект.
	req.open('POST', path, true);
	// Посылаем данные запроса (задаются в виде хэша): req.send({ q:query, test:303 });
	req.send(arr);
}

function popUp(path,arr){
	if (!arr) var arr = {};
	if (!arr['updatetext']){
		tinyMCEmode = false;
		tinyMCE.execCommand('mceRemoveControl',false,'text');
	}
	/*new Element.update('popUpContent','');
	new Effect.Opacity('body',{
			duration: 0.1,
			transition: Effect.Transitions.linear,
			from: 1.0,
			to: 0.5
		});*/
	new Element.show('popUpShell');
	// Создаем новый объект JSHttpRequest.
	var req = new Subsys_JsHttpRequest_Js();
	// Код, АВТОМАТИЧЕСКИ вызываемый при окончании загрузки.
	req.onreadystatechange = function() {
		if (req.readyState == 4) {
			if (req.responseJS) {
	    		// Записываем в <div> результат работы.
				$('popUpContent').innerHTML = req.responseJS.wf_main;
        		$('popUpTitle').innerHTML = req.responseJS.iface_title;
				/*if (tinyMCEmode==true) {
					var script = document.createElement('script');
					script.type = "text/javascript";
					script.src = "/editor/tiny_mce_gzip.php";
					var head = document.getElementsByTagName('head')[0];
					head.insertBefore(script,$('scljs'));
					
					var script = document.createElement('script');
					script.type = "text/javascript";
					script.src = "/editor/pwe_config.js";
					head.insertBefore(script,$('jsjs'));
				}*/
	    	}
	    	// Отладочная информация
			if (req.responseText.length > 0){
				//new Element.show('popUpDebug');
				//$('popUpDebug').innerHTML = req.responseText;
				alert(req.responseText);
			}
	  	}
	}
	// Разрешаем кэширование (чтобы при одинаковых запросах не обращаться к серверу несколько раз).
	req.caching = false;
	// Подготавливаем объект.
	req.open('POST', path, true);
	req.send(arr);
}

function popUpClose(id){
	tinyMCEmode = false;
	tinyMCE.execCommand('mceRemoveControl',false,'text');	
	/*popupDrag.destroy();
	new Effect.Opacity('body',{ duration: 0.1,transition: Effect.Transitions.linear,from: 0.5, to: 1.0 });*/
	new Element.hide('popUpShell');
	/*new Element.update('popUpContent','');*/	
}

function formElements2Hash(formElements){
    var hash = new Object();
    for (var i=0; i<formElements.length; i++){
    	if (isArray(formElements[i])) formElements2Hash(formElements[i]);
		else {
			if (!formElements[i].name) continue;
      		hash[formElements[i].name] = formElements[i].value;
			//alert(formElements[i].name + "=" + formElements[i].value);
		}
    }
    return hash;
}

function isArray(a) {
    return isObject(a) && a.constructor == Array;
}
function isFunction(a) {
    return typeof a == 'function';
}
function isObject(a) {
    return (a && typeof a == 'object') || isFunction(a);
}

function new_win(w,h,n)	{
	if (!n) n="new_window";	
 	w1=window.open("",n,"resizable=yes, menubar=no, status=yes, scrollbars=yes, width="+w+", height="+h);
	w1.focus();
}

function feedback(){
	document.location.href='mail'+'to:'+'dap'+'@'+'parapet'+'.'+'ru';
}

/* дерево */
var cImg = new Image();
cImg.src = '/pic/plus.gif';
var eImg = new Image();
eImg.src = '/pic/minus.gif';	
var ssel = false;
	
function toggleState(node) {
	var node;
  if(ssel) resetAll(node);
  doToggle(node);
}

function toggleGroup(str){
	var arr = str.split(',');
	for(var i = 0; i < arr.length; i++){
		toggleState(arr[i]);
	}
}
	
function doToggle(node, reset) {
  var n;
	var node;
  var n = document.getElementById(node);
	if (n){
  	/*m = document.getElementById(ode);*/
    if(!reset) reset = "inline";
    n.style.display = (n.style.display!='none'?'none':reset);
  	/*m.style.background = (n.style.display=="inline"?'url(/pic/d2/item1_abg.gif)':'url(/pic/d2/item1_bg.gif)');*/
  	document.images[node+'Img'].src = (n.style.display=="inline"?eImg.src:cImg.src);
	}
}
	
function resetAll(node) {
  var node;
  var n;
  var nIdx = getIdx(node);
  /*var d = document.getElementsByTagName("img");*/
  var n = document.getElementById(node);
	if (n){
    if(n.style.display=="none") {
    	for(var i=0; i<d.length; i++)
    		if(d[i].onclick) {
    			node = d[i].onclick.toString();
    			node = node.substr(node.lastIndexOf("(")+2);
    			node = node.substr(0, node.lastIndexOf(")")-1);
    			if(getIdx(node)==nIdx) doToggle(node, "none");
    		}
    }
	}
}
	
function getIdx(node) {
  var i = 0;
  var n = document.getElementById(node);
  if(n)
  	while(n.parentNode) {
  		n = n.parentNode;
  		i++;
  	}	
  return i;
}

function checkCart(href){
  var span = null;
  if (navigator.appName == 'Microsoft Internet Explorer'){
  	span = document.getElementById('js').appendChild(document.createElement("SPAN"));
  } else {
	  span = document.body.appendChild(document.createElement("SPAN"));  
  }
  span.style.display = 'none';
  span.innerHTML = 'Text for stupid IE.<s'+'cript></' + 'script>';
  var scr = span.getElementsByTagName("script")[0];
  scr.language = "JavaScript";  
  if (scr.setAttribute) scr.setAttribute('src', href); else scr.src = href;
}

function checkPosInCart(arr){
	for (var k in arr){
		parent.document.getElementById('c'+k).innerHTML = '<div class="cQ"><a href="/cart/">'+arr[k]+'</a></div>';
    /*<img src="/pic/check.gif" width="16" height="16" hspace="6" border="0" alt="отложено" />*/
  }
}

pY = 0;
pX = 0;

function showPosition(e) {
    /*alert("Your mouse is at " + pX + " x " + pY);*/
    pX = Event.pointerX(e);
    pY = Event.pointerY(e);
}

function a2cD(id){
	var id;
  var a2c = $('a2c');
  if (a2c.style.display == 'none' || a2c.style.display == ''){
  	a2c.style.display = 'block';
  	a2c.style.top = pY +'px';
	  a2c.style.left = (pX-170) + 'px';
		document.add2cart.id.value = id;
    document.a2cForm.quant.focus();
  } else {
  	a2c.style.display = 'none';
  }
  /*alert("Your mouse is at " + pX + " x " + pY);
  document.add2cart.id.value = id;
  document.add2cart.submit();*/
}

function a2cSubmit(quant){
  $('a2c').style.display = 'none';
  document.add2cart.quant.value = quant;
  document.add2cart.submit();
  return false;
}

function toogleMCE(ID) {
    try {
        if(tinyMCEmode==true) {
            tinyMCE.execCommand('mceRemoveControl',false,ID);
			//tinyMCE.removeMCEControl(tinyMCE.getEditorId(ID));
            tinyMCEmode = false;
        } else {
			TinyMCE.idCounter = 0;
			var inst = tinyMCE.getInstanceById(ID);
			if (inst){
				
            }
			tinyMCE.execCommand('mceAddControl',false,ID);
			//tinyMCE.addMCEControl(document.getElementById(ID), ID);
            tinyMCEmode = true;
        }
    } catch(e) {
        //error handling
		alert('Ошибка при попытке переключения режима редактора.\n tinyMCEmode='+tinyMCEmode+'\n TinyMCE.idCounter='+TinyMCE.idCounter+'\nInstance='+tinyMCE.getInstanceById(ID)+'\n'+e);
    }
}

function submitWarn(id){
	if ($(id)) $(id).style.border = '2px solid red';
}
function submitWarnCB(inst){
	if ($('submit')) $('submit').style.border = '2px solid red';
}

function showPrompt(path,x,y){
	alert(x+'x'+y);
}

function preview2(state){
	var arr1 = {1:'text', 2:'serv_iface', 3:'preview_button', 4:'submit'};
	var arr2 = {1:'preview_in_popUp', 2:'back_button'};
	switch(state){
		case "on":
			for (var k in arr1)
				if ($(arr1[k])) Element.hide(arr1[k]);
			for (var k in arr2)
				if ($(arr2[k])) Element.show(arr2[k]);				
			break;
		case "off":
			for (var k in arr1)
				if ($(arr1[k])) Element.show(arr1[k]);
			for (var k in arr2)
				if ($(arr2[k])) Element.hide(arr2[k]);		
			break;
	}	
}
