var running;

/*Common*/
var enableDebug = false;

function debug(que, reset) {
    if(!enableDebug) return false;
    var debug = document.getElementById('debug');
    if(!debug){
        debug = document.createElement('pre');
        debug.setAttribute('id', 'debug');
        debug.setAttribute('style', 'wdith: 85%; text-align: center; margin: 3px auto%; background: #eee; max-height: 100px; overflow: auto')
        debug.style.maxHeight = '100px';
        debug.style.overflow = 'auto';
        document.body.insertBefore(debug, document.body.firstChild);
    }
    if(reset == true) debug.innerHTML = que;
    else debug.innerHTML = que + '<br />' + debug.innerHTML;
    return true;
}

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;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

function change_form(el){
	settings = new Array();

	settings['google'] = new Array();
	settings['google']['method'] = 'get';
	settings['google']['action'] = 'http://www.google.com/search';
	settings['google']['name'] = 'q';
	settings['google']['image'] = 'forum/styles/codez4mac/imageset/home/google.png';

	settings['msn'] = new Array();
	settings['msn']['method'] = 'get';
	settings['msn']['action'] = 'http://search.msn.com/results.aspx';
	settings['msn']['name'] = 'q';
	settings['msn']['image'] = 'forum/styles/codez4mac/imageset/home/msn.png';

	settings['yahoo'] = new Array();
	settings['yahoo']['method'] = 'get';
	settings['yahoo']['action'] = 'http://search.yahoo.com/search';
	settings['yahoo']['name'] = 'p';
	settings['yahoo']['image'] = 'forum/styles/codez4mac/imageset/home/yahoo.png';
	
	settings['ask'] = new Array();
	settings['ask']['method'] = 'get';
	settings['ask']['action'] = 'http://www.ask.com/web';
	settings['ask']['name'] = 'q';
	settings['ask']['image'] = 'forum/styles/codez4mac/imageset/home/ask.png';	

	settings['clusty'] = new Array();
	settings['clusty']['method'] = 'get';
	settings['clusty']['action'] = 'http://clusty.com/search';
	settings['clusty']['name'] = 'query';
	settings['clusty']['image'] = 'forum/styles/codez4mac/imageset/home/clusty.png';

	settings['c4m'] = new Array();
	settings['c4m']['method'] = 'post';
	settings['c4m']['action'] = 'forum/search.php';
	settings['c4m']['name'] = 'keywords';
	settings['c4m']['image'] = 'forum/styles/codez4mac/imageset/home/codez4mac.png';
	
	engine = el.name;

	if(!settings[engine]) return false;
	form = $('widesearch');
	img = $('searchimg');
	input = $('searchinput');
	
	form.method = settings[engine]['method'];
	form.action = settings[engine]['action'];
	input.name = settings[engine]['name'];
	img.src = settings[engine]['image'];
	
	eraseCookie('hvs_search');
	createCookie('hvs_search', engine, 15);
}
/*Common*/

function get_rss(url){
	if(running){
		alert('Please Wait until the feed finishes loading.')
		return false;
	}
	running = true;
/* 	ul = $('hvs_rss_list'); */
	ul = $('HVS_container').getElementsByTagName('ul')[0];
	if(ul){
		ul.parentNode.removeChild(ul);
/*
		new Effect.DropOut(ul, {
			'queue': 'end', 
			afterFinish: function(){
				ul.parentNode.removeChild(ul);
			},
			'duration': 0.1
		});

*/	}
	img = new Element('img', {'src': '/hvs/loading.gif', 'style': 'border: none; padding-top: 15%; margin-left: 45%; display: none'});
	$('HVS_container').appendChild(img);
	img.style.display = 'block';
/*
	new Effect.Appear(img, {'queue': "end",
			'duration': 0.1});

*/	debug(url, true);
/* 	debug(url.match('http://www.codez4mac.com/hvs/')); */
	if(url.search('^http://www.codez4mac.com/hvs/') == -1)
		url2='/hvs/get_rss.php?url='+url;
	else
		url2=url;
	debug(url2);
	ajax = new Ajax.Request(
		url2,
		{
			onSuccess: function(res){rss_loaded(res, img, url)},
			onFailure: rss_error
		}
	);
	debug(ajax);
}

function rss_loaded(resp, img, url){
	    	img.parentNode.removeChild(img);
/*
	new Effect.Fade(img, {
	    'queue': 'end', 
	    afterFinish: function(){
	    	img.parentNode.removeChild(img);
	    },
			'duration': 0.1
	});

*/	xml = resp.responseXML;
	if(xml == null){
		debug(resp.responseText);
		return false;
	}
	parse_xml(xml);
	running = false;
	eraseCookie('hvs_feed');
	createCookie('hvs_feed', url, 15);
}

function rss_error(resp){
	debug('Error');
}

function parse_xml(xmlDoc){
	xmlitems = xmlDoc.getElementsByTagName('item');
	debug(xmlitems, true);
	ul = new Element('ul', {'style': 'display: none', 'id': 'hvs_rss_list'});
	xmltitles = xmlDoc.getElementsByTagName('title');
	maintitle = xmltitles[0].childNodes[0].nodeValue;
	li = new Element('li', {'class': 'hvs_title hvs_rssel'});
	li.update(maintitle);
	ul.appendChild(li);
	pa = new Element('a', {'href': 'javascript: show_description("all");'});
	pa.update(" < Show All >");
	li.appendChild(pa);

	for(i =0; i < xmlitems.length; i++){
		try{
			item = xmlitems[i];
		}catch(e){
			try{
				debug(item = xmlDoc.getElementsByTagName('item')[i].getElementsByTagName('title')[0].childNodes[0].nodeValue);
			}catch(e){
				debug(e.message);
			}
		}
		debug(item);
		title = false;
		link = false;
		description = false;
		for(e = 0; e < item.childNodes.length; e++){
			thisnode = item.childNodes[e];
			switch(thisnode.nodeName){
				case 'title':
					title = thisnode.childNodes[0].nodeValue;
				break;
				
				case 'link':
					link = thisnode.childNodes[0].nodeValue;
				break;

				case 'description':
					description = thisnode.childNodes[0].nodeValue;
				break;
			}
		}
		li = new Element('li', {'class': 'hvs_rssel'});
		pa = new Element('a', {'href': 'javascript: show_description('+i+');'});
		pa.update(title);
		
		a = new Element('a', {'href': 'http://killrefer.com/kill.php??='+link});
		img = new Element('img', {'src': 'forum/styles/codez4mac/imageset/home/link.png', 'class': 'exlink'});
		a.appendChild(img);
		li.appendChild(a);	
		
		li.appendChild(pa);
		p = new Element('p', {'id': 'element_'+i, 'style': 'display: none'});
		p.update(description+'. ');
		a = new Element('a', {'href': 'http://killrefer.com/kill.php??='+link});
		a.update('[link]');
		p.appendChild(a);	
		li.appendChild(p);
		ul.appendChild(li);
	}
	$('HVS_container').appendChild(ul);
	ul.style.display = 'block';
/*
	new Effect.BlindDown(ul, {'queue': 'end',
			'duration': 0.1,
			'afterFinish': function(){running = false}
			});

*/}

	function show_description(num){
		if(num == 'all'){
			$$('.hvs_rssel p').each(
				function(Element){
					if(Element.style.display == 'none')
						Element.show();
					else
						Element.hide();
				}
			);
		}else{
			el = $('element_'+num);
			debug(el);
			if(!el) return false;
			if(el.style.display == 'none')
				el.style.display = 'block';
			else
				el.style.display = 'none';
/*	 		Effect.toggle(el, 'blind', {'queue': 'end'}); */
		}
	}
	
	Event.observe(window, 'load', function() {
	rss = readCookie('hvs_feed');
	form = readCookie('hvs_search');
	if(form)
		change_form({'name': form});
		
	if(rss)
		get_rss(rss);
	else
		get_rss("http://www.codez4mac.com/hvs/c4mfeed.php");
});