var sel, pid, qmd, bg, wnd, box, cont, boxcell, svbtn, cancelled, cllr, gjs;

function qu_hide() {
	box.style.display = "none";
	if (wnd) wnd.style.display = "none";
  bg.style.display = "none";
  cancelled = true;
  return false;
}
function qu_show(id, md, cf) { 
	bg = document.getElementById("qubg");
	wnd = document.getElementById("modalDialog");
	box = document.getElementById("modalBox");
	cont = document.getElementById("qtdfld");
	boxcell = document.getElementById("cellBox");
	
	w=h=woff=hof=0;
	if (window.innerWidth && !window.opera) {
		w = window.innerWidth - 19;
		h = navigator.userAgent.toLowerCase().indexOf('chrome') > -1 ? document.body.scrollHeight: window.innerHeight + window.scrollMaxY;
		woff = window.innerHeight/2 + window.scrollY;
		hof = 11;
	} else if (document.body && document.body.offsetWidth) {
		w = document.body.offsetWidth - 21;
		h = document.body.scrollHeight;
		woff = document.body.offsetHeight/2 + document.body.scrollTop;
	}	
	if (w && h && woff) {
		bg.style.width = w+'px';
		bg.style.height = h+'px';
		wnd.style.top = woff + 'px';
		box.style.top = woff + 'px';
	}
	bg.style.display = "block";
	if (!cf) {
	    boxcell.innerHTML = '<span style="font-size:12px"><br>Вы собираетесь разместить цитату из этого сообщения в <a href="http://forum.sibmama.ru/viewforum.php?f=141">&quot;Цитатник&quot;</a> - специальный раздел форума, где собраны наиболее интересные и оригинальные высказывания сибмам и сибпап.<br>Пожалуйста, цитируйте только то, что будет интересно читать не только вам, но и другим участникам форума. Для личного пользования, пожалуйста, используйте <a href="http://forum.sibmama.ru/viewtopic.php?p=1858599#1858599">Закладки</a>.</span> <br><br><a href="#" onClick="qu_show('+id+','+md+',1);return false;">Продолжить</a>&nbsp;&nbsp;&nbsp;<a href="#" onClick="return qu_hide()">Прервать</a>';
	    box.style.display = "block";
	    return false;
	}
	boxcell.innerHTML = 'Загрузка сообщения, подождите пожалуйста <img src="images/smiles/cook2.gif" width="32" height="32" />';
	box.style.display = "block"; 
	var req = new JsHttpRequest();
	req.onreadystatechange = function() {
      if (req.readyState == 4 && !cancelled) {
      		if (req.responseJS) {
      			if (req.responseJS.q) {
      				box.style.display = "none";
      				cont.innerHTML = req.responseJS.q;
      				document.getElementById('selcon').innerHTML = req.responseJS.cats;
      				bg.style.display = "block";
      				wnd.style.display = "block";
   						document.getElementById('qtdfld').style.height = (wnd.offsetHeight - document.getElementById('qthd').offsetHeight - document.getElementById('qthd2').offsetHeight - 17) + 'px';
   						if (hof) document.getElementById('qtdfld').style.width = (wnd.offsetWidth - hof )+'px';
      			} else if (req.responseJS.error) {
      				boxcell.innerHTML = req.responseJS.error;
      			} else {
      				boxcell.innerHTML = 'Общая ошибка';
      			}
      		} else {
      			boxcell.innerHTML = 'Общая ошибка';
      		}
      }
  }
  cancelled = false;
  req.open('GET', 'quotes_handler.php', true);
  pid = id;
  qmd = md;
  req.send( { pid:id, sid:document.jumpbox.sid.value, md:md } );
}
function qu_save() {
	if (sel.text) {
		ret = sel.text;
	} else if (sel.getRangeAt) { //W3C code
		if (sel.isCollapsed) {
			ran = document.createRange();
		} else {
			ran = sel.getRangeAt(0);
		}
		if (ran.startContainer.parentNode != cont || ran.collapsed) 
			ran.setStartBefore(cont); 
		if (ran.endContainer.parentNode != cont || ran.collapsed)
			ran.setEndAfter(cont); 
		ret = ran.toString();
	} else {
		// IE code
		ran = sel;
		ranE = sel.duplicate();
		ranE.moveToElementText(cont);
		sa=ea=sb=eb=false;
		if (ran.compareEndPoints('StartToStart', ranE) < 0) sa = true;
		if (ran.compareEndPoints('EndToStart', ranE) < 0)   ea = true;
		if (ran.compareEndPoints('StartToEnd', ranE) > 0)   sb = true;
		if (ran.compareEndPoints('EndToEnd', ranE) > 0)     eb = true;
		
		if (ea) {
			ran.setEndPoint('EndToEnd', ranE);
			ran.setEndPoint('StartToStart', ranE);
		} else if (sb) {
			ran.setEndPoint('StartToStart', ranE);
			ran.setEndPoint('EndToEnd', ranE);
		} else {
			if (sa) ran.setEndPoint('StartToStart', ranE);
			if (eb) ran.setEndPoint('EndToEnd', ranE);
		}
		ret = ran.text;
	}
  var req = new JsHttpRequest();
  req.onreadystatechange = function() {
      if (req.readyState == 4 && !cancelled) {
      		if (req.responseJS) {
      			if (req.responseJS.error) {
      				boxcell.innerHTML = req.responseJS.error;
      			} else if (req.responseJS.q) {
      				boxcell.innerHTML = req.responseJS.q;
      			} else {
      				boxcell.innerHTML = 'Общая ошибка(1)';
      			}
      		} else {
      			boxcell.innerHTML = 'Общая ошибка(2)';
      		}
      }
  }
  cancelled = false;
  req.open('POST', 'quotes_handler.php', true);
  req.send( { pid:pid, msg:ret, sid:document.jumpbox.sid.value, cat:document.getElementById('qsel').value, md:qmd } );
	wnd.style.display = "none";
	boxcell.innerHTML = 'Размещение цитаты, подождите пожалуйста <img src="images/smiles/cook2.gif" width="32" height="32" />';
	box.style.display = "block"; 
}
function getSel(e) {
	if (document.selection) { 
		sel = document.selection.createRange();
	} else if (window.getSelection) {
		sel = window.getSelection();
	}
}

function get_hndl(id) {
	switch (id) {
	case 1:
		return 'report_handler.php';
	case 2: 
		return 'bkmrk_handler.php';
	case 3: 
		return 'pmsubj_handler.php';
	case 4: 
		return 'cat_handler.php';
	case 5: 
		return 'ttitle_handler.php';
	case 6: 
		return 'abk_handler.php';
	case 7: 
		return 'club_handler.php';
	default:
		return 'quotes_handler.php';
	}
}

function rate_quote(pid, v, hndlr, txt){
	bg = document.getElementById("qubg");
	box = document.getElementById("modalBox");
	boxcell = document.getElementById("cellBox");
	
	w=h=woff=hof=0;
	if (window.innerWidth && !window.opera) {
		w = window.innerWidth - 19;
		h = navigator.userAgent.toLowerCase().indexOf('chrome') > -1 ? document.body.scrollHeight: window.innerHeight + window.scrollMaxY;
		woff = window.innerHeight/2 + window.scrollY;
		hof = 11;
	} else if (document.body && document.body.offsetWidth) {
		w = document.body.offsetWidth - 21;
		h = document.body.scrollHeight;
		woff = document.body.offsetHeight/2 + document.body.scrollTop;
	}	
	if (w && h && woff) {
		bg.style.width = w+'px';
		bg.style.height = h+'px';
		box.style.top = woff + 'px';
	}
  bg.style.display = "block";
  boxcell.innerHTML = 'Обработка, подождите пожалуйста <img src="images/smiles/cook2.gif" width="32" height="32" />';
  box.style.display = "block"; 
  var req = new JsHttpRequest();
  req.onreadystatechange = function() {
      if (req.readyState == 4 && !cancelled) {
      		if (req.responseJS) {
      			if (req.responseJS.q) {
      				boxcell.innerHTML = req.responseJS.q;
      			} else if (req.responseJS.error) {
      				boxcell.innerHTML = req.responseJS.error;
      			} else {
      				boxcell.innerHTML = 'Общая ошибка';
      			}
      		} else {
      			boxcell.innerHTML = 'Общая ошибка';
      		}
      		if (req.responseJS.gjs) gjs=req.responseJS.gjs;
      }
  }
  cancelled = false;
  req.open('POST', get_hndl(hndlr), true);
  req.send( { pid:pid, v:v, sid:document.jumpbox.sid.value, txt:txt?txt:0} );
  return false;
}

function save_bkmrk(id, type) {
  var req = new JsHttpRequest();
  req.onreadystatechange = function() {
      if (req.readyState == 4 && !cancelled) {
      		if (req.responseJS) {
      			if (req.responseJS.error) {
      				boxcell.innerHTML = req.responseJS.error;
      			} else if (req.responseJS.q) {
      				boxcell.innerHTML = req.responseJS.q;
      			} else {
      				boxcell.innerHTML = 'Общая ошибка(1)';
      			}
      		} else {
      			boxcell.innerHTML = 'Общая ошибка(2)';
      		}
      }
  }
  cancelled = false;
  req.open('POST', 'bkmrk_handler.php', true);
  req.send( { pid:id, v:type, sid:document.jumpbox.sid.value, bname:document.getElementById('bkmrk_name').value } );
	boxcell.innerHTML = 'Сохранение закладки, подождите пожалуйста <img src="images/smiles/cook2.gif" width="32" height="32" />';
	box.style.display = "block"; 

  return false;
}

function save_pm_subj(id) {
  var req = new JsHttpRequest();
  req.onreadystatechange = function() {
      if (req.readyState == 4 && !cancelled) {
      		if (req.responseJS) {
      			if (req.responseJS.error) {
      				boxcell.innerHTML = req.responseJS.error;
      			} else if (req.responseJS.q) {
      				boxcell.innerHTML = req.responseJS.q;
      			} else {
      				boxcell.innerHTML = 'Общая ошибка(1)';
      			}
      		} else {
      			boxcell.innerHTML = 'Общая ошибка(2)';
      		}
      }
  }
  cancelled = false;
  req.open('POST', 'pmsubj_handler.php', true);
  req.send( { pid:id, sid:document.jumpbox.sid.value, psubj:document.getElementById('pm_subj').value } );
	boxcell.innerHTML = 'Сохранение, подождите пожалуйста <img src="images/smiles/cook2.gif" width="32" height="32" />';
	box.style.display = "block"; 

  return false;
}

function save_post_subj(id) {
  var req = new JsHttpRequest();
  req.onreadystatechange = function() {
      if (req.readyState == 4 && !cancelled) {
      		if (req.responseJS) {
      			if (req.responseJS.error) {
      				boxcell.innerHTML = req.responseJS.error;
      			} else if (req.responseJS.q) {
      				boxcell.innerHTML = req.responseJS.q;
      			} else {
      				boxcell.innerHTML = 'Общая ошибка(1)';
      			}
      		} else {
      			boxcell.innerHTML = 'Общая ошибка(2)';
      		}
      }
  }
  cancelled = false;
  req.open('POST', 'ttitle_handler.php', true);
  req.send( { pid:id, sid:document.jumpbox.sid.value, psubj:document.getElementById('post_subj').value, pdesc:document.getElementById('post_desc').value } );
  boxcell.innerHTML = 'Сохранение, подождите пожалуйста <img src="images/smiles/cook2.gif" width="32" height="32" />';
  box.style.display = "block"; 

  return false;
}

function save_abk() {
  var req = new JsHttpRequest();
  req.onreadystatechange = function() {
      if (req.readyState == 4 && !cancelled) {
      		if (req.responseJS) {
      			if (req.responseJS.error && !req.responseJS.al) {
      				boxcell.innerHTML = req.responseJS.error;
      			} else if (req.responseJS.q) {
      				boxcell.innerHTML = req.responseJS.q;
      				if (req.responseJS.al>0) alert(req.responseJS.error);
      			} else {
      				boxcell.innerHTML = 'Общая ошибка(1)';
      			}
      		} else {
      			boxcell.innerHTML = 'Общая ошибка(2)';
      		}
      }
  }
  cancelled = false;
  req.open('POST', 'abk_handler.php', true);
  req.send( { pid:document.getElementById('cont_id').value, sid:document.jumpbox.sid.value, cdata:{username:document.getElementById('username').value, disp:document.getElementById('disp').value, email:document.getElementById('email').value, phone:document.getElementById('phone').value, descr:document.getElementById('descr').value} } );
  boxcell.innerHTML = 'Сохранение, подождите пожалуйста <img src="images/smiles/cook2.gif" width="32" height="32" />';
  box.style.display = "block"; 

  return false;
}

function add_abk(txt) {
	document.forms['post'].username.value = txt;
	return qu_hide();
}

function mark_cell(c){
	while (cllr && (cllr.nodeName!="TD" && cllr.nodeName!="SPAN")) {cllr=cllr.parentNode}
	if (cllr) cllr.className = cllr.className.replace(/catted|ndtocat/g,'') + (c?' catted':'');
}

function subSelector(v,s){
	var ss=document.getElementById(s);
	var ss1=document.getElementById(s+'1');
	ss.options.length = 0;
	if (v>0) {
		ss.style.visibility='visible';
		ss1.style.visibility='visible';
		sel=gjs[v];
		for (var k in sel){
			var t = sel[k];
			ss.options[ss.options.length]=new Option(t,k);
		}
		ss.selectedIndex = 0;
	} else {
		ss.style.visibility='hidden';
		ss1.style.visibility='hidden';
	}
}
function swapCatDivs(){
	var chdiv=document.getElementById('chdiv');
	var rediv=document.getElementById('rediv');
	var ops, cls, op, cl;
	if (chdiv.src.match(/ip/)) {op=chdiv; cl=rediv}
	else {cl=chdiv; op=rediv};
	ops = op; cls=cl;
	while (ops && ops.nodeName!="DIV") {ops=ops.parentNode};
	while (cls && cls.nodeName!="DIV") {cls=cls.parentNode};
	ops.style.height = '';
	cls.style.height = '14px';
	op.src=op.src.replace(/ip\./,'im.');
	cl.src=cl.src.replace(/im\./,'ip.');
}

function hSubSel(e) {
	document.getElementById('newtheme').style.visibility=e.options.selectedIndex==1?'visible':'hidden';
	document.getElementById('shch').checked=gjs[0][e.value]&1?0:1;
}

function findVPos(el) {
  if( typeof( el.offsetParent ) != 'undefined' ) {
    for( var pos = 0; el; el = el.offsetParent ) pos += el.offsetTop;
    return pos;
  } else 
    return el.x;
}

function saveClubCard(uid) {
  var req = new JsHttpRequest();
  req.onreadystatechange = function() {
      if (req.readyState == 4 && !cancelled) {
      		if (req.responseJS) {
      			if (req.responseJS.error && !req.responseJS.al) {
      				boxcell.innerHTML = req.responseJS.error;
      			} else if (req.responseJS.q) {
      				boxcell.innerHTML = req.responseJS.q;
      				if (req.responseJS.q2) document.getElementById('card_view').innerHTML = req.responseJS.q2;
      				if (req.responseJS.al>0) alert(req.responseJS.error);
      			} else {
      				boxcell.innerHTML = 'Общая ошибка(10)';
      			}
      		} else {
      			boxcell.innerHTML = 'Общая ошибка(2)';
      		}
      }
  }
  cancelled = false;
  req.open('POST', 'club_handler.php', true);
  req.send( { pid:uid, sid:document.jumpbox.sid.value, nid:document.getElementById('new_num').value, v:document.getElementById('allsame').checked} );
  boxcell.innerHTML = 'Сохранение, подождите пожалуйста <img src="images/smiles/cook2.gif" width="32" height="32" />';
  box.style.display = "block"; 

  return false;
}

if (document.captureEvents) document.captureEvents(Event.MOUSEUP);
document.onmouseup = getSel;
