var hmt=3;
function AJAX_Sok(varname, textobjid, containerid)
{
	var webkit_version = userAgent.match(/applewebkit\/([0-9]+)/);

	if (AJAX_Compatible && !(is_saf && !(webkit_version[1] >= 412)))
	{
		this.textobj = fetch_object(textobjid);
        this.container = fetch_object(containerid);
		this.textobj.onfocus = function(e) { this.obj.active = true; };
		this.textobj.onblur  = function(e) { this.obj.active = false; };
		this.textobj.obj = this;


		this.varname = varname;
		this.fragment = '';
		this.doneforum = '';
		this.selected = 0;          
		this.menuopen = false;
		this.timeout = null;
		this.forum = new Array();
        this.forumcount = new Array();
        this.blog = new Array();
        this.blogcount = new Array();
        this.user = new Array();
        this.usercount = new Array();
        this.photo = new Array();
        this.photocount = new Array();
		this.amnenobjekt = new Array();
        this.amnenobjektcount = new Array();         
		this.xml_sender = null;
		this.active = false;       
		this.min_chars = 3;


		this.get_text = function()
		{

			this.fragment = new String(this.textobj.value);

			// trim away leading and trailing spaces from the fragment
			this.fragment = PHP.trim(this.fragment);
            if (this.fragment.length >= this.min_chars) window.location.hash= '#sokpar#' + escape(this.textobj.value);
            else window.location.hash='sokpar#';
		}


		this.set_text = function(i)
		{
			this.textobj.value = PHP.unhtmlspecialchars(this.forum[i]);

			this.textobj.focus();

			return false;
		}



		this.key_event_handler = function(evt)
		{
			evt = evt ? evt : window.event;
            
			// create the fragment
			this.get_text();

			if (this.fragment.length >= this.min_chars)
			{
				clearTimeout(this.timeout);
				this.timeout = setTimeout(this.varname + '.item_search();', 100);
			}
			else
			{
				this.table_hide();
			}
		}

		/**
		* Sends the fragment to search the database
		*/
		this.item_search = function()
		{
			if (this.active)
			{
				this.forum = new Array();

				if (!this.xml_sender)
				{
					this.xml_sender = new vB_AJAX_Handler(true);
				}
				this.xml_sender.onreadystatechange(this.onreadystatechange);
				this.xml_sender.send('/ajax_sok.php?do=search', 'do=search&q=' + escape(this.fragment));
			}
		}

		var me = this;

		/**
		* OnReadyStateChange callback. Uses a closure to keep state.
		* Remember to use 'me' instead of 'this' inside this function!
		*/
		this.onreadystatechange = function()
		{
			if (me.xml_sender.handler.readyState == 4 && me.xml_sender.handler.status == 200 && me.xml_sender.handler.responseXML)
			{

                me.forum=new Array(); me.blog=new Array(); me.user=new Array(); me.photo=new Array(); me.amnenobjekt=new Array();
				var forums = fetch_tags(me.xml_sender.handler.responseXML, 'thread');
                var forumscount = fetch_tags(me.xml_sender.handler.responseXML, 'forumcount');
                me.forumcount = me.xml_sender.fetch_data(forumscount[0]);
                for (i = 0; i < forums.length; i++)
				{
					me.forum[i] = me.xml_sender.fetch_data(forums[i]);
				}

                var blogs = fetch_tags(me.xml_sender.handler.responseXML, 'blog');
                var blogscount = fetch_tags(me.xml_sender.handler.responseXML, 'blogcount');
                me.blogcount = me.xml_sender.fetch_data(blogscount[0]);
                for (i = 0; i < blogs.length; i++)
				{
					me.blog[i] = me.xml_sender.fetch_data(blogs[i]);
				}

                var users = fetch_tags(me.xml_sender.handler.responseXML, 'user');
                var userscount = fetch_tags(me.xml_sender.handler.responseXML, 'usercount');
                me.usercount = me.xml_sender.fetch_data(userscount[0]);
                for (i = 0; i < users.length; i++)
				{
					me.user[i] = me.xml_sender.fetch_data(users[i]);
				}

                var photos = fetch_tags(me.xml_sender.handler.responseXML, 'photo');
                var photoscount = fetch_tags(me.xml_sender.handler.responseXML, 'photocount');
                me.photocount = me.xml_sender.fetch_data(photoscount[0]);
                for (i = 0; i < photos.length; i++)
				{
					me.photo[i] = me.xml_sender.fetch_data(photos[i]);
				}

                var amnenobjekts = fetch_tags(me.xml_sender.handler.responseXML, 'amnenobjekt');
                var amnenobjektscount = fetch_tags(me.xml_sender.handler.responseXML, 'amnenobjektcount');
                me.amnenobjektcount = me.xml_sender.fetch_data(amnenobjektscount[0]);
                for (i = 0; i < amnenobjekts.length; i++)
				{
					me.amnenobjekt[i] = me.xml_sender.fetch_data(amnenobjekts[i]);
				}
				
				//if (me.forum.length > 0)
				//fome.amnenobjekt_table_build();
				me.amnenobjekt_table_build();
				me.forum_table_build();
                me.blog_table_build();
                me.user_table_build();
                me.photo_table_build();
                me.table_show();

				me.xml_sender.handler.abort();
			}
		}

		
		
/**
		* Bygger ämnenobjekt-tabellen
		*/
		this.amnenobjekt_table_build = function()
		{
			var table = document.createElement('table');
			table.cellPadding = 2;
			table.cellSpacing = 1;
            table.width = '100%';
			table.border = 0;			
            if(this.amnenobjektcount==0){
                var td = table.insertRow(-1).insertCell(-1);
    			td.className = 'sokresultat_ingaresultat';
                td.innerHTML = 'Inga träffar.';
            }
            else {

                var td = table.insertRow(-1).insertCell(-1);
    			td.className = 'sokresultat_antal';
                td.innerHTML = this.amnenobjektcount;
            	var td = table.insertRow(-1).insertCell(-1);
            	td.innerHTML = '<div class="divider"/>';                
    			for (i in this.amnenobjekt)
    			{    			
    				    var td = table.insertRow(-1).insertCell(-1);
        				td.className = 'sokresultat';
                        var parts = this.amnenobjekt[i].split('|||||');
                        td.innerHTML = '<div style="background-image: url(http://www.hus.se/forum/images/icons/amnenobjekt_16.gif); background-repeat: no-repeat; position: relative; background-position: left center; padding-left: 19px;"><a href="' + parts[0] + '" onmouseover="ajax_popup(this, \'amnenobjekt\', ' + parts[1] + ')" onmouseout="ajax_popup_hide()">' + parts[2] + '</a> '+parts[3]+'</div>';
    			}
            }

            //var td = table.insertRow(-1).insertCell(-1);
            //td.innerHTML = '<div class="divider"/>';


            //var td = table.insertRow(-1).insertCell(-1);
    		//td.className = 'sokresultat_avancerad';
            //td.innerHTML = '<a href="http://www.hus.se/forum/search.php?query=' + PHP.urlencode(this.fragment) + '">Gå till avancerad forumsökning</a>';

            fetch_object('amnenobjektresultat').innerHTML='';
            fetch_object('amnenobjektresultat').appendChild(table);

		}		
		
		
		
		/**
		* Bygger forumtabellen
		*/
		this.forum_table_build = function()
		{
			var table = document.createElement('table');
			table.cellPadding = 2;
			table.cellSpacing = 1;
            table.width = '100%';
			table.border = 0;			
            if(this.forumcount==0){
                var td = table.insertRow(-1).insertCell(-1);
    			td.className = 'sokresultat_ingaresultat';
                td.innerHTML = 'Inga träffar.';
            }
            else {

                var td = table.insertRow(-1).insertCell(-1);
    			td.className = 'sokresultat_antal';
                td.innerHTML = this.forumcount;
            	var td = table.insertRow(-1).insertCell(-1);
            	td.innerHTML = '<div class="divider"/>';                
    			for (i in this.forum)
    			{
    				    var td = table.insertRow(-1).insertCell(-1);
        				td.className = 'sokresultat';
                        var parts = this.forum[i].split('|||||');
                        td.innerHTML = '<div style="background-image: url(http://www.hus.se/forum/images/icons/forum_16.gif); background-repeat: no-repeat; position: relative; background-position: left center; padding-left: 19px;"><a href="' + parts[0] + '" onmouseover="ajax_popup(this, \'forum\', ' + parts[1] + ')" onmouseout="ajax_popup_hide()">' + parts[2] + '</a></div>';
    			}
            }

            //var td = table.insertRow(-1).insertCell(-1);
            //td.innerHTML = '<div class="divider"/>';


            //var td = table.insertRow(-1).insertCell(-1);
    		//td.className = 'sokresultat_avancerad';
            //td.innerHTML = '<a href="http://www.hus.se/forum/search.php?query=' + PHP.urlencode(this.fragment) + '">Gå till avancerad forumsökning</a>';

            fetch_object('forumresultat').innerHTML='';
            fetch_object('forumresultat').appendChild(table);

		}

        this.blog_table_build = function()
		{
			var table = document.createElement('table');
			table.cellPadding = 2;
			table.cellSpacing = 1;
            table.width = '100%';
			table.border = 0;

            if(this.blogcount==0){
                var td = table.insertRow(-1).insertCell(-1);
    			td.className = 'sokresultat_ingaresultat';
                td.innerHTML = 'Inga träffar.';
            }
            else {
                var td = table.insertRow(-1).insertCell(-1);
    				td.className = 'sokresultat_antal';
                    td.innerHTML = this.blogcount;
            	var td = table.insertRow(-1).insertCell(-1);
            	td.innerHTML = '<div class="divider"/>';                
    			for (i in this.blog)
    			{
    				    var td = table.insertRow(-1).insertCell(-1);
        				td.className = 'sokresultat';
                        var parts = this.blog[i].split('|||||');
                        td.innerHTML = '<div style="background-image: url(http://www.hus.se/forum/images/icons/blogg_16.gif); background-repeat: no-repeat; position: relative; background-position: left center; padding-left: 19px;"><a href="' + parts[0] + '" onmouseover="ajax_popup(this, \'blog\', ' + parts[1] + ')" onmouseout="ajax_popup_hide()">' + parts[2] + '</a></div>';
    			}
            }

            //var td = table.insertRow(-1).insertCell(-1);
            //td.innerHTML = '<div class="divider"/>';            
            
             //var td = table.insertRow(-1).insertCell(-1);
    		//td.className = 'sokresultat_avancerad';
           // td.innerHTML = '<a href="http://www.hus.se/blogg/search.php">Gå till avancerad bloggsökning</a>';

            fetch_object('blogresultat').innerHTML='';
            fetch_object('blogresultat').appendChild(table);

		}

        this.user_table_build = function()
		{
			var table = document.createElement('table');
			table.cellPadding = 2;
			table.cellSpacing = 1;
            table.width = '100%';
			table.border = 0;

            if(this.usercount==0){
                var td = table.insertRow(-1).insertCell(-1);
    			td.className = 'sokresultat_ingaresultat';
                td.innerHTML = 'Inga träffar.';
            }
            else {
                var td = table.insertRow(-1).insertCell(-1);
    				td.className = 'sokresultat_antal';
                    td.innerHTML = this.usercount;
                var td = table.insertRow(-1).insertCell(-1);
            	td.innerHTML = '<div class="divider"/>'; 
    			for (i in this.user)
    			{
    				    var td = table.insertRow(-1).insertCell(-1);
        				td.className = 'sokresultat';
                        var parts = this.user[i].split('|||||');
                        td.innerHTML = '<div style="background-image: url(http://www.hus.se/forum/images/icons/anvandare_16.gif); background-repeat: no-repeat; position: relative; background-position: left center; padding-left: 19px;"><a href="' + parts[0] + '" onmouseover="ajax_popup(this, \'user\', ' + parts[1] + ')" onmouseout="ajax_popup_hide()">' + parts[2] + '</a></div>';
    			}
            }

            //var td = table.insertRow(-1).insertCell(-1);
            //td.innerHTML = '<div class="divider"/>';            
            
             //var td = table.insertRow(-1).insertCell(-1);
    		//td.className = 'sokresultat_avancerad';
            //td.innerHTML = '<a href="http://www.hus.se/forum/memberlist.php?do=search">Gå till avancerad medlemssökning</a>';

            fetch_object('userresultat').innerHTML='';
            fetch_object('userresultat').appendChild(table);

		}

        this.photo_table_build = function()
		{
			var table = document.createElement('table');
			table.cellPadding = 2;
			table.cellSpacing = 1;
            table.width = '100%';
			table.border = 0;

            if(this.photocount==0){
                var td = table.insertRow(-1).insertCell(-1);
    			td.className = 'sokresultat_ingaresultat';
                td.innerHTML = 'Inga träffar.';
            }
            else {
                var td = table.insertRow(-1).insertCell(-1);
    				td.className = 'sokresultat_antal';
                    td.innerHTML = this.photocount;
            	var td = table.insertRow(-1).insertCell(-1);
            	td.innerHTML = '<div class="divider"/>'; 
    			for (i in this.photo)
    			{
    				    var td = table.insertRow(-1).insertCell(-1);
        				td.className = 'sokresultat';
                        var parts = this.photo[i].split('|||||');
                        td.innerHTML = '<div style="background-image: url(http://www.hus.se/forum/images/icons/galleri_16.gif); background-repeat: no-repeat; position: relative; background-position: left center; padding-left: 19px;"><a href="' + parts[0] + '" onmouseover="ajax_popup(this, \'photo\', ' + parts[1] + ')" onmouseout="ajax_popup_hide()">' + parts[2] + '</a></div>';
    			}
            }

            //var td = table.insertRow(-1).insertCell(-1);
            //td.innerHTML = '<div class="divider"/>';            
            
            //var td = table.insertRow(-1).insertCell(-1);
    		//td.className = 'sokresultat_avancerad';
           // td.innerHTML = '<a href="http://www.hus.se/galleri/search.php">Gå till avancerad fotosökning</a>';

            fetch_object('photoresultat').innerHTML='';
            fetch_object('photoresultat').appendChild(table);

		}


		/**
		* Shows the tables
		*/
		this.table_show = function()
		{
			fetch_object('resultat_container').style.display='block';
            if (typeof handle1 != 'undefined') sliderfix();
		}

		/**
		* Hides the menu
		*/
		this.table_hide = function()
		{
				fetch_object('resultat_container').style.display='none';
                if (typeof handle1 != 'undefined') sliderfix();
		}

		this.textobj.onkeyup = function(e) { return this.obj.key_event_handler(e); };
        var hash = window.location.hash;
        var hashsplit = hash.split('#');
        if(hashsplit[1]=='sokpar') {
            //fetch_object('ajaxsok').value=unescape(hashsplit[2]);
            fetch_object('ajaxsok').value=unescape(hashsplit[2]);

            this.get_text();
			if (this.fragment.length >= this.min_chars)
			{
                this.active=true;
				clearTimeout(this.timeout);
				this.timeout = setTimeout(this.varname + '.item_search();', 100);
			}
        }

	}
}




var ajaxpopxml = '';
function ajax_popup(hoverobj, sektion, popid)
{
    ajaxpopxml = new vB_AJAX_Handler(true);
	ajaxpopxml.onreadystatechange(ajax_popup_create);
	ajaxpopxml.send('/ajax_sok.php?do=popup', 'do=popup&sektion=' + sektion + '&id=' + popid);
    var popobj = fetch_object('ajax_popup');
    var pos = fetch_offset(hoverobj)
    popobj.style.top = (pos['top'] + 15) + 'px';
    popobj.style.left = pos['left'] + 'px';
    //popobj.parentNode.removeChild(popobj);
    //hoverobj.appendChild(popobj);
    //alert(popobj.parentNode.innerHTML);
}


function ajax_popup_hide(){
    var popobj = fetch_object('ajax_popup');
    var frameobj = fetch_object('bugfixframe');
    popobj.style.display='none';
    frameobj.style.display='none';
    frameobj.style.top = '-1000px';
    popobj.style.top = '-10000px';
    popobj.style.left = '-10000px';
}


function ajax_popup_create(){
    if (ajaxpopxml.handler.readyState == 4 && ajaxpopxml.handler.status == 200 && ajaxpopxml.handler.responseXML){
        var popobj = fetch_object('ajax_popup');
        var frameobj = fetch_object('bugfixframe');

        var contents = fetch_tags(ajaxpopxml.handler.responseXML, 'popupcontents');
        var content = ajaxpopxml.fetch_data(contents[0]);

        popobj.innerHTML = content;
        popobj.style.display='block';
        var pos = fetch_offset(popobj);
        frameobj.style.top = pos['top'] + 3 + 'px';
        frameobj.style.left = pos['left'] + 'px';
        frameobj.style.width= popobj.offsetWidth + "px";
        frameobj.style.height= popobj.offsetHeight - 3 + "px";
        frameobj.style.display='block';
    }
}

function ajax_popup_update(){
    var popobj = fetch_object('ajax_popup');
    var frameobj = fetch_object('bugfixframe');
    var pos = fetch_offset(popobj);
    frameobj.style.top = pos['top'] + 3 + 'px';
    frameobj.style.left = pos['left'] + 'px';
    frameobj.style.width= popobj.offsetWidth + "px";
    frameobj.style.height= popobj.offsetHeight - 3 + "px";
    frameobj.style.display='block';
}

var visadmeny = 0;

function showmenu(id, obj){
    var menuobj = fetch_object('undermeny' + id);
    var pos = fetch_offset(obj);
    var leftpx = pos['left'];
    var toppx = pos['top'] + obj.offsetHeight;
    menuobj.style.top = toppx - 13 + 'px';
    menuobj.style.left = leftpx + 'px';
    menuobj.style.display = 'block';
    //menuobj.style.width = menuobj.parentNode.childNodes[0].childNodes[0].offsetWidth + 15 + 'px';
    visadmeny = id;
}


function showmenu_v2(id, obj){
	//clearTimeout("hidemenu2(" + id + ")");
    var menuobj = fetch_object('undermeny' + id);
    var pos = fetch_offset(obj);
    var leftpx = pos['left'];
    var toppx = pos['top'] + obj.offsetHeight;
    menuobj.style.top = toppx - 8 + 'px';
    menuobj.style.left = leftpx + 'px';
    menuobj.style.display = 'block';
    //menuobj.style.width = menuobj.parentNode.childNodes[0].childNodes[0].offsetWidth + 15 + 'px';
    visadmeny = id;
}


function hidemenu(id){
    visadmeny=0;
    //alert(hmt);
    hmt = setTimeout("hidemenu2(" + id + ")", 20);
    //alert("hidemenu2(" + id + ")");
}

function hidemenu2 (id) {
    if(visadmeny!=id){
        var menuobj = fetch_object('undermeny' + id);
        menuobj.style.left = '-200px';
        menuobj.style.display = 'none';
    }
}

function fetch_offset (obj)
{
    var left_offset = obj.offsetLeft;
    var top_offset = obj.offsetTop;

    while ((obj = obj.offsetParent) != null)
    {
        left_offset += obj.offsetLeft;
        top_offset += obj.offsetTop;
    }

    return { 'left' : left_offset, 'top' : top_offset };
};

function addEvent(elm, evType, fn, useCapture) {
    if (elm.addEventListener) {
        elm.addEventListener(evType, fn, useCapture);
        return true;
    }
    else if (elm.attachEvent) {
        var r = elm.attachEvent('on' + evType, fn);
        return r;
    }
    else {
        elm['on' + evType] = fn;
    }
}

addEvent(window,'load',mainheader,false);
//addEvent(window,'load',flashfix,false);

function mainheader(){
    var usermeny = domLib_getElementsByClass('user_meny');
    if(usermeny.length>0){
        var headers = domLib_getElementsByClass('main_header');
        //for(i=0; i<headers.length; i++){
            if(headers.length>0) headers[0].style.borderTop='0 solid #000';
        //}
    }
}

function flashfix(){
    theObjects = document.getElementsByTagName("object");
    for (var f = 0; f < theObjects.length; f++) {
        theObjects[f].outerHTML = theObjects[f].outerHTML;
    }
}

function $() {
    var elements = new Array();
    for (var i = 0; i < arguments.length; i++) {
        var element = arguments[i];
        if (typeof element == 'string')
            element = document.getElementById(element);
        if (arguments.length == 1)
            return element;
        elements.push(element);
    }
    return elements;
}


function commitFlashObject(_obj, _container){
    _output=""
    _paramoutput=""
    _src=""
    _ver=""
    for(_cO in _obj){
        _output+=_cO+"=\""+_obj[_cO]+"\" "
        _paramoutput+="<param name="+_cO+" value=\""+_obj[_cO]+"\">";
        if(_cO=="movie")_src="src=\""+_obj[_cO]+"\"";
        if(_cO=="version")_ver=_obj[_cO];
    }
    if(_ver=="")_ver="8,0,0,0"
    ihtm="<object classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 codebase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version="+_ver+" "+_output+" align=\"middle\">\n"
    ihtm+=_paramoutput+"\n"
    ihtm+="<embed "+_src+" pluginspage=http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash type=application/x-shockwave-flash "+_output+">\n";
    ihtm+="</embed>\n";
    ihtm+="</object>\n";
    document.getElementById(_container).innerHTML=ihtm
}


