//var macro = new Object();
function macro(){
	var mc = this;
	var id;
	var video;
	var web;
	var blog;
	var news;
	var local;
	var localPlace;
	var initialPhrase;
	var searcherControl
	var searcherState;
	var linkTarget;
	this.cse;
}
function web(enable, value){
	this.enable = enable;
	this.tag = value;
	this.setEnable = setEnable;
	this.setValue = setValue;
}
function news(enable, value){
	this.enable = enable;
	this.tag = value;
	this.setEnable = setEnable;
	this.setValue = setValue;
}
function blog(enable, value){
	this.enable = enable;
	this.tag = value;
	this.setEnable = setEnable;
	this.setValue = setValue;
}

function setEnable(val){
	this.enable.checked = val;
	if(val){
		//alert(val);
		this.tag.disabled = false;
	}
	else{
		this.tag.disabled = true;
	}
	reload_macro_text();
}

function setValue(val){
	this.tag.value = val;
	reload_macro_text();
}

addLoadEvent(gajax_init);

function gajax_init(){
	
	new macro();
	macro.id = $('googleajaxsearch_id');
	macro.video = $('googleajaxsearch_searcher_video');
	macro.web = $('googleajaxsearch_searcher_web');
	macro.blog = $('googleajaxsearch_searcher_blog');
	macro.news = $('googleajaxsearch_searcher_news');
	macro.local = $('googleajaxsearch_searcher_local');
	macro.localPlace = $('googleajaxsearch_local_place');
	macro.initialPhrase = $('googleajaxsearch_phrase');
	macro.searcherControl = $('searcher_control_mode');
	macro.searcherState = $('searcher_default_state');
	macro.linkTarget = $('searcher_link_target');
	macro.cse = new Object();
	macro.cse.web = new web($('enable_cse_web'),$('cse_web'));
	macro.cse.news = new news($('enable_cse_news'),$('cse_news'));
	macro.cse.blog = new blog($('enable_cse_blog'),$('cse_blog'));
	macro.newsOrder=$('searcher_news_order');
	macro.blogOrder=$('searcher_blog_order');
	$('macro_text').value = gajax_to_macro(macro);
}

function gajax_to_macro(obj){
	
	var id = obj.id.value != '' ? '|resultid=' + obj.id.value : '';
	var video = obj.video.checked ? '|searcher=video' : '';
	var web = obj.web.checked ? '|searcher=web' : '';
	var blog = obj.blog.checked ? '|searcher=blog' : '';
	var news = obj.news.checked ? '|searcher=news' : '';
	var local = obj.local.checked ? '|searcher=local' : '';
	var place = obj.localPlace.value != '' ? '|place=' + obj.localPlace.value : '';
	var initialsearch = obj.initialPhrase.value != '' ? '|initialsearch=' + obj.initialPhrase.value : '';
	
	var control = new String('|mode=');
	switch(obj.searcherControl.value){
		case '0':
			control += 'linear';
			break;
		case '1':
			control += 'tabbed';
			break;
	}
	
	var bsorder=new String('|bsorder=');
	switch(obj.blogOrder.value){
		case '0':
			bsorder += 'relevance';
			break;
		case '1':
			bsorder += 'date';
			break;
	}
	
	var nsorder=new String('|nsorder=');
	switch(obj.newsOrder.value){
		case '0':
			nsorder += 'relevance';
			break;
		case '1':
			nsorder += 'date';
			break;
	}
	
	var state = new String('|state=');
	switch(obj.searcherState.value){
		case '0':
			state += 'open';
			break;
		case '1':
			state += 'closed';
			break;
		case '2':
			state += 'partial';
			break;
	}
	var target = new String('|target=');
	switch(obj.linkTarget.value){
		case '0':
			target +='blank';
			break;
		case '1':
			target +='self';
			break;
		case '2':
			target += 'top';
			break;
		case '3':
			target += 'parent';
			break;
	}
	var cseWeb = '';
	if(obj.cse.web.enable.checked){
		if(obj.cse.web.tag.value){
			cseWeb = '|cseWeb=' + obj.cse.web.tag.value;
		}
	}
	var cseNews = '';
	if(obj.cse.news.enable.checked){
		if(obj.cse.news.tag.value){
			cseNews = '|cseNews=' + obj.cse.news.tag.value;
		}
	}
	var cseBlog = '';
	if(obj.cse.blog.enable.checked){
		if(obj.cse.blog.tag.value){
			cseBlog = '|cseBlog=' + obj.cse.blog.tag.value;
		}
	}
	return '[googleajaxsearch' + id + video + web + blog + news + local + place + initialsearch + control + state + target + cseWeb + cseNews + cseBlog + bsorder + nsorder +']';
}

function reload_macro_text(){
	$('macro_text').value = gajax_to_macro(macro);
}

function set_googleajaxsearch_id(text){
	macro.id.value = text;
	reload_macro_text();
}

function set_googleajaxsearch_video(bool){
	macro.video.checked = bool;
	reload_macro_text();
}

function set_googleajaxsearch_web(val){
	macro.web.checked = val;
	reload_macro_text();
}

function set_googleajaxsearch_blog(val){
	macro.blog.checked = val;
	reload_macro_text();
}

function set_googleajaxsearch_news(val){
	macro.news.checked = val;
	reload_macro_text();
}

function set_googleajaxsearch_local(val){
	macro.local.checked = val;
	reload_macro_text();
}

function set_googleajaxsearch_local_place(text){
	macro.localPlace.value = text;
	reload_macro_text();
}

function set_googleajaxsearch_phrase(text){
	macro.initialPhrase.value = text;
	reload_macro_text();
}

function set_googleajaxsearch_control(val){
	macro.searcherControl.value = val;
	reload_macro_text();
}

function set_googleajaxsearch_default_state(val){
	macro.searcherState.value = val;
	reload_macro_text();
}

function set_googleajacsearch_link_target(val){
	macro.linkTarget.value = val;
	reload_macro_text();
}

function set_googleajaxsearch_enable_cse(val){
	macro.enableCse.checked = val;
	reload_macro_text();
}

function set_googleajaxsearch_cse(val){
	macro.cse.value = val;
	reload_macro_text();
}

function set_order_blog_result(val)
{
	macro.blogOrder.value=val;
	reload_macro_text();	
}

function set_order_news_result(val)
{
	macro.newsOrder.value=val;
	reload_macro_text();
}
