function clearCheck(name) {
    var list = document.getElementsByName(name);
    
    for(var i=0; i<list.length; i++)
        if (list[i].checked) list[i].checked = false;
}

function SwitchDiv(obj, div_id, type, link_css_after, link_css_before) {
    eval(type + 'Obj(\''+div_id+'\')');
    var new_type = type == 'show' ? 'hide' : 'show';
    
    obj.onclick=function() {
        SwitchDiv(obj, div_id, new_type, link_css_after, link_css_before);
    }
    obj.className = obj.className == link_css_after ? link_css_before : link_css_after;
}

var checkMail=null;
function CheckMail(param) {
    if (checkMail) clearTimeout(checkMail);
    AjaxRequests.loadGetRequestAndExecute('/_sender.php?show=check_mail&'+param);
    checkMail = setTimeout("CheckMail('"+param+"');", 30000);
}

function MailAddMessages(new_row) {
    for (var j=0;j<new_row.length;j++) {
        var tr = document.createElement('tr');
        for (var i=0;i<3;i++) {
            var td = document.createElement('td');
            if (new_row[j][i]) td.innerHTML = new_row[j][i];
            tr.appendChild(td);
        }                             
        $('active_chat_end').parentNode.insertBefore(tr, $('active_chat_end'));
    }                                    
}

function ubbc(tArea, open, end) {
    var isIE = (document.all)? true : false,
        open = (open)? open : "",
        end = (end)? end : "";
        
    if(isIE){
        tArea.focus();
        var curSelect = document.selection.createRange();
        if(arguments[2]){
            curSelect.text = open + arguments[2] + "]" + curSelect.text + end;
        } else {
            curSelect.text = open + curSelect.text + end;
        }
    } else if(!isIE && typeof tArea.selectionStart != "undefined"){
        var selStart = tArea.value.substr(0, tArea.selectionStart);
        var selEnd = tArea.value.substr(tArea.selectionEnd, tArea.value.length);
        var curSelection = tArea.value.replace(selStart, '').replace(selEnd, '');
        if(arguments[2]){
            tArea.value = selStart + open + arguments[2] + "]" + curSelection + end + selEnd;
        } else {
            tArea.value = selStart + open + curSelection + end + selEnd;
        }
    } else {
        tArea.value += (arguments[2])? open + arguments[2] + "]" + end : open + end;
    }
}


var keyMap = Array(),
    ctrlPressed = null;
keyMap[13] = submitMessage;
function addListener(a,b,c,d){if(a.addEventListener){a.addEventListener(b,c,d);return true;}else if(a.attachEvent){var e=a.attachEvent("on"+b,c);return e;}else{alert("Handler could not be attached");}}

function bind(a,b,c,d){return window.addListener(a,b,function(){d.apply(c,arguments)});}
function handleKeystroke(evt) {
    // Grab the cross browser event
    if( !evt ) evt = window.event;
    // Character code of key pressed
    var asc = !evt.keyCode ? (!evt.which ? evt.charCode : evt.which) : evt.keyCode;
    if (ctrlPressed) {
        for (var i in this) {
            if (asc == i) {
                this[i](evt);
                break;
            }
        }
    }
    if (asc==17) ctrlPressed=true;
}

function handleCtrl(evt) {
    // Grab the cross browser event
    if( !evt ) evt = window.event;
    // Character code of key pressed
    var asc = !evt.keyCode ? (!evt.which ? evt.charCode : evt.which) : evt.keyCode;
    if (asc==17) ctrlPressed=false;
}

function submitMessage(evt) {
    if (!$('send_message_form').submited) {
        $('send_message_form').submited = true;
        $('send_message_form').submit();
    }
}

function setCaretTo(obj, pos) { 
    if(obj.createTextRange) { 
        var range = obj.createTextRange(); 
        range.move("character", pos); 
        range.select(); 
    } else if(obj.selectionStart) { 
        obj.focus(); 
        obj.setSelectionRange(pos, pos); 
    } 
} 

function focusElement(el) {
    if (el && typeof(el) != 'undefined') {
        if (el.focus) el.focus();
        if (document.all)
            setCaretTo(el,el.value.length+1);
    }
}

var scroll_timer = null;
function scrollText(parent_id, scroll_id) {
    var parent_obj = $(parent_id),
        scroll_obj = $(scroll_id),
        width = parent_obj.offsetWidth;
    
    scroll_obj.style.left = scroll_obj.style.left != '' ? scroll_obj.style.left : -(width/2)+'px';

    if (parseInt(scroll_obj.style.left)<=width) {
        if (scroll_timer) clearTimeout(scroll_timer);
        scroll_obj.style.left=parseInt(scroll_obj.style.left)+10+'px';
        scroll_timer = setTimeout('scrollText(\''+parent_id+'\',\''+scroll_id+'\')',100);
    }
}

function setScrollEvents(parent_id, scroll_id) {
    var parent_obj = $(parent_id),
        scroll_obj = $(scroll_id);
    
    parent_obj.onmouseover = function() { if (scroll_timer) clearTimeout(scroll_timer); if (checkMail) clearTimeout(checkMail); };
    parent_obj.onmouseout = function() { scroll_timer = setTimeout('scrollText(\''+parent_id+'\',\''+scroll_id+'\')',100); checkMail = setTimeout("CheckMail();", 30000); };
    scrollText(parent_id, scroll_id);
}

function getStyle( element, cssRule ) {
  if( document.defaultView && document.defaultView.getComputedStyle ) {
    var value = document.defaultView.getComputedStyle( element, '' ).getPropertyValue( cssRule.replace( /[A-Z]/g,
        function( match, char ){ 
            return "-" + char.toLowerCase(); 
        }
      ) 
    );
  }
  else if ( element.currentStyle ) var value = element.currentStyle[ cssRule ];
  else                             var value = false;
    return value;
}

function findPosXDR(obj){
    var curleft = 0;
    
    if(obj.offsetParent)
        while(obj) {
            curleft += obj.offsetLeft;
            if (getStyle(obj, 'position') == 'relative') {
                //alert(obj.className+' ; '+obj.tagName);
                return curleft;
            }
            
            obj = obj.offsetParent;
        }
    else if(obj.x)
        curleft += obj.x;
    
    return curleft;
}

//намира Y позицията на обекта
function findPosYDR(obj){
    var curtop = 0;
    
    if(obj.offsetParent)
        while(obj) {
            curtop += obj.offsetTop;
            if (getStyle(obj, 'position') == 'relative') {
                return curtop;
            }
            
            
            obj = obj.offsetParent;
        }
    else if(obj.y)
        curtop += obj.y;
        
    return curtop;
}
function CopySelect(select) {
	var new_ = document.createElement('select'),
		cont = document.createElement('div');
	
	for(var i=0; i<select.options.length; i++) {
		new_.options[new_.options.length] = new Option(select.options[i].text, select.options[i].value);
	}
	new_.className = select.className;
	new_.name = select.name;
	new_.selectedIndex = select.selectedIndex;
	
	cont.id = select.id+Math.random();
	cont.appendChild(new_);
	
	var a = document.createElement('a');
	
	a.href = '#del';
	a.select_id = cont.id;
	a.onclick = function () {
		$(this.select_id).parentNode.removeChild($(this.select_id));
	}
	a.appendChild(document.createTextNode(' - '));
	cont.appendChild(a);
	
	select.parentNode.appendChild(cont);
}
function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  
  if( typeof( window.pageYOffset ) == 'number' ) {
	//Netscape
	scrOfY = window.pageYOffset;
	scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
	//DOM
	scrOfY = document.body.scrollTop;
	scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
	//IE6
	scrOfY = document.documentElement.scrollTop;
	scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfX, scrOfY ];
}
function getWindowSize() {
  var myWidth = 0, myHeight = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth;
    myHeight = window.innerHeight-16;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
  }
  return [ myWidth, myHeight ];
}

var vote_timeout=null;
function SetVoteTimeout(obj_id) {
    if (vote_timeout) clearTimeout(vote_timeout);
    vote_timeout = setTimeout('ShowVote($(\''+obj_id+'\'));', 30000);
}
function ShowVote(obj) {
    var pageOffset = getScrollXY(),
        wsize = getWindowSize(),
        rel_x = findPosXDR($('main_frame')),
        rel_y = findPosYDR($('main_frame')),
        left = Math.round((wsize[0] - obj.clientWidth)/2) - rel_x,
        top = Math.round((wsize[1] - obj.clientHeight)/2) - rel_y;
    
    obj.style.top=top+pageOffset[1]+'px';
    obj.style.left=left+pageOffset[0]+'px';
    
    showObj(obj);
    
    if (vote_timeout) clearTimeout(vote_timeout);
    vote_timeout = setTimeout('ShowVote($(\''+obj.id+'\'));', 100);
}
function Vote(obj_id) {
    if (vote_timeout) clearTimeout(vote_timeout);
    hideObj(obj_id);
    if (zXmlHttp.isSupported())
        AjaxRequests.loadGetRequestAndExecute('/_sender.php?show=vote');
    else location.href=urlCleanup(location.href, new Array('voted'))+'&voted';
}
function CancelVote(min,obj_id) {
    if (vote_timeout) clearTimeout(vote_timeout);
    hideObj(obj_id);
    if (zXmlHttp.isSupported())
        AjaxRequests.loadGetRequestAndExecute('/_sender.php?show=set_reminder&time='+min);
    else location.href=urlCleanup(location.href, new Array('set_reminder'))+'&set_reminder';
}
/* MATCHMAKER */
function SaveField(what, field, value, func) {
	AjaxRequests.loadGetRequestAndExecute('/_sender.php?show='+what+'&'+field+'='+value, func);
}
function RemoveField(what, field, value, func) {
	AjaxRequests.loadGetRequestAndExecute('/_sender.php?show='+what+'_remove&'+field+'='+value, func);
}
function ShowAnswers(obj, q_id) {
	AjaxRequests.loadGetRequestAndExecute('/_sender.php?show=show_answers&question_id='+q_id);
	obj.onclick= function () {
		ShowHideAnswers('question_'+q_id, this, 'hide');
	}
}
function ShowHideAnswers(q_id, link, what) {
	switch(what) {
		case 'show':{
			$(q_id).style.display='block';
			link.onclick= function () {
				ShowHideAnswers(q_id, this, 'hide');
			}
			break;
		}
		default: case 'hide':{
			$(q_id).style.display='none';
			link.onclick= function () {
				ShowHideAnswers(q_id, this, 'show');
			}
			break;
		}
	}
}