function addDefaultComp(handler, title, resource, properties) {
   showLoading(true);
   title = title || '';
   resource = resource || '';
   properties = properties || '';
   addComp('vCol1', {'handler':handler, 'title':title, 'resource':resource, 'properties':properties}); 
}

var addFunctions = [
['Youtube','youtubeComp','','',''],
['Imtv','imtvComp','','',''],
['GVideo','googlevideoComp','','',''],
['Metacafe','rssComp','','http://www.metacafe.com/rss/new_videos.rss',''],
['FunpHot','funpComp','','hot&stars=3',''],
['FunpRecent','funpComp','','star',''],
['TagAll','tagcloudComp','','',''],
['TagDay','tagcloudComp','','','{"ltime":1440}'],
['TagWeek','tagcloudComp','','','{"ltime":10080}'],
['NewUser','new8usersComp','新朋友','',''],
['HotUser','hot8usersComp','推推王','',''],
['Track','trackComp','追蹤討論文章','','{"all":0}'],
['GSearch','googleComp','Google','',''],
['Flickr','flickrComp','Flickr','',''],
['Weather','weatherComp','天氣','',''],
['Gabbly','gabblyComp','Gabbly','',''],
['Technorati','keySearchComp','','',''],
['Udn','paperComp','','','{"source":"udn"}'],
['Apple','paperComp','','','{"source":"apple"}'],
['Chinatimes','paperComp','','','{"source":"chinatimes"}'],
['Libertytimes','paperComp','','','{"source":"libertytimes"}'],
['Bnext','paperComp','','','{"source":"bnext"}'],
['Engadget','paperComp','','','{"source":"engadget"}'],
['Miolife','paperComp','','','{"source":"miolife"}'],
['Commonwealth','paperComp','','','{"source":"cw"}'],
['CardU','paperComp','','','{"source":"cardu"}'],
['CNet','paperComp','','','{"source":"cnet"}'],
['ZDNet','paperComp','','','{"source":"zdnet"}']
];

for (var i=0; i<addFunctions.length; ++i) {
   eval('function add'+addFunctions[i][0]+'() {addDefaultComp('+
   '\''+addFunctions[i][1]+'\','+
   '\''+addFunctions[i][2]+'\','+
   '\''+addFunctions[i][3]+'\','+
   '\''+addFunctions[i][4]+'\''+
   ');}');
}

function addCustomRss(url) {
   if (url.length == 0) return;
   addDefaultComp('rssComp', '', url.replace(/^(h?ttp:\/\/?)?([^#]*)(#.*)?/, 'http://$2'), '');
}

function radarFunp(key) {
   if (key.length == 0) return;
   addDefaultComp('funpComp', '', 'star&tag='+encodeURIComponent(key), '');
}

function radarBlog(key,src) {
   if (key.length == 0) return;
   addDefaultComp('keySearchComp', '', '', 
   '{"provider":"'+src+'","key":"'+key.stripTags()+'"}');
}

function radarNews(key,src) {
   if (key.length == 0) return;
   switch (src) {
   case 'google': addDefaultComp('keySearchComp', '', '', '{"provider":"gnews","key":"'+key.stripTags()+'"}'); break;
   case 'yam': addDefaultComp('keySearchComp', '', '', '{"provider":"yam","key":"'+key.stripTags()+'"}'); break;
   }
}

function radarVideo(key,src) {
   if (key.length == 0) return;
   switch (src) {
   case 'google': addDefaultComp('googlevideoComp', '', '', '{"selection":1, "key":"'+key.stripTags()+'"}'); break;
   case 'youtube': addDefaultComp('youtubeComp', '', '', '{"selection":1, "key":"'+key.stripTags()+'"}'); break;
   }
}

function radarImage(key) {
   if (key.length == 0) return;
   addDefaultComp('flickrComp', 'Flickr:'+key.stripTags(), key.stripTags(), 
   '{"selection":2}');
}

var radarComp_type = 'funp';
function radarComp_select(type) {
   if (radarComp_type == type) return;
   Element.removeClassName('radarComp_'+radarComp_type+'_li', 'active');
   Element.addClassName('radarComp_'+type+'_li', 'active');
   Element.hide('radarComp_'+radarComp_type+'_options');
   Element.show('radarComp_'+type+'_options');
   radarComp_type = type;
}

function radarComp_submit() {
   if ($F('radarComp_text').length == 0) return;
   switch (radarComp_type) {
   case 'funp': radarFunp($F('radarComp_text')); break;
   case 'blog': radarBlog($F('radarComp_text'), $F('radarComp_blog_options')); break;
   case 'news': radarNews($F('radarComp_text'), $F('radarComp_news_options')); break;
   case 'video': radarVideo($F('radarComp_text'), $F('radarComp_video_options')); break;
   case 'image': radarImage($F('radarComp_text')); break;
   case 'rss': addCustomRss($F('radarComp_text')); break;
   }
}
