// javascript document

F.main(function() {
	var $ = jQuery;	
	
	var define = {
		EL_INPUTBOX : $('#searchbar .inputbox'),
		EL_SEARCHFORM : $('#frmsearch'),
		EL_SEARCHTYPE : $('#searchtype'),
		EL_SEARCHKEY : $('#q'),
		EL_BAIDUFORM : $('#baidusearch'),
		EL_BAIDUKEY : $('#baiduwd'),
		EL_FILECHECK : $('#filecheck'),
		EL_SAFEBROWSE : $('#safebrowse'),
		//EL_SAFEBROWSEKEY : $('#url2browse'),
		//EL_SAFEBROWSEFORM : $('#frmsafebrowse'),
		
		ERROR_TIPS : '输入的关键字非法',
		URL_INVALID_TIPS : '输入的网址非法'
	};
	
	F.extend(define, SEARCH_DEFINE);
	
	define.ACTION = 'http://${SUBDOMAIN}.' +define.DOMAIN + define.EL_SEARCHFORM.attr('action');

	$('#logo a').attr('href', 'http://www.' + define.DOMAIN);
	
	// init tabs
	var searchTabs = $('#searchbar ul li');
	var defaultValue = define.EL_SEARCHKEY.val();
	var query = F.parseQuery(location.href);

	searchTabs.each(function() {
		var tab = $(this);
		
		tab.click(function() {
			var _tab = $(this);
			var type = 	_tab.attr('id').toUpperCase();		
			searchTabs.attr('class', '');
			searchTabs.attr('clicked', 'false');
			
			_tab.attr('class', 'act');
			_tab.attr('clicked', 'true');
			
			define.EL_SEARCHTYPE.val(define['ST_' + type]);			
			if (query.searchtype == type.toLowerCase()) {
				define.EL_SEARCHKEY.val(unescape(decodeURI(query.q)));
			} else {
				define.EL_SEARCHKEY.val(define['TIPS_' + type]);
			};
			
			if (type.toLowerCase() == 'url') {
				define.EL_SAFEBROWSE.show();
			} else {
				define.EL_SAFEBROWSE.hide();
			};
			
			if (type.toLowerCase() == 'file') {
				define.EL_FILECHECK.show();
			} else {
				define.EL_FILECHECK.hide();				
			};
					
			define.EL_SEARCHFORM.attr('action', define.ACTION.replace('${SUBDOMAIN}', define['ST_' + type]));
		}).mouseover(function() {
			$(this).attr('class', 'act');
		}).mouseout(function() {
			if ($(this).attr('clicked') != 'true') {
				$(this).attr('class', '');
			};
		});
		
		if (tab.hasClass('act')) {
			tab.click();
		};
		
		if (defaultValue) {
			define.EL_SEARCHKEY.val(defaultValue);
		};
	});
	
	// init form
	define.EL_SEARCHKEY.focus(function() {
		define.EL_INPUTBOX.removeClass('error');	
		var el = $(this);
		var val = el.val();
		if (val == define['TIPS_' + define.EL_SEARCHTYPE.val().toUpperCase()] ||
			val == define.ERROR_TIPS || val == define.URL_INVALID_TIPS) {
			el.val('');
		} else {
			el.select();
		};
	}).blur(function() {
		var el = $(this);
		if (el.val() == '') {
			if (query.searchtype == define.EL_SEARCHTYPE.val()) {
				el.val(query.q);
			} else {
				el.val(define['TIPS_' + define.EL_SEARCHTYPE.val().toUpperCase()]);
			}
		};
	});
	
	var checkAvaliable = function(keyVal) {
		if (keyVal == define['TIPS_' + define.EL_SEARCHTYPE.val().toUpperCase()] ||
			keyVal == define.ERROR_TIPS || keyVal == define.URL_INVALID_TIPS) {
			define.EL_INPUTBOX.addClass('error');
			define.EL_SEARCHKEY.val(define.ERROR_TIPS);			
			return false;
		} if (/^\s*$/.test(keyVal)){
			define.EL_INPUTBOX.addClass('error');
			define.EL_SEARCHKEY.val(define.ERROR_TIPS);
			return false;
		} else {
			return true;
		};
	};
	
	var openSafeBrowser = function(url) {
		var cw = document.documentElement.clientWidth;			
		var ch = document.documentElement.clientHeight;		
		var sw = screen.width;			
		var sh = screen.height;
		var browserUrl = 'http://www.pc120.com/safeproxy/p/';
		
		var featurse = 'width=' + cw +', height=' + ch + ', top=0, left=0, toolbar=no, menubar=no, scrollbars=no, resizeble=yes, location=no, status=no';
		var win = window.open(browserUrl, 'safebrowser', featurse, true);
	};
	
	//init safe browser
	define.EL_SAFEBROWSE.click(function() {
		openSafeBrowser('');
		/*
		var keyVal = define.EL_SEARCHKEY.val();
		if (checkAvaliable(keyVal)) {
			if (new RegExp(define.URL_PATTERN,'i').test(keyVal)) {
				//define.EL_SAFEBROWSEKEY.val(keyVal);
				openSafeBrowser(keyVal);
			} else {
				define.EL_INPUTBOX.addClass('error');
				define.EL_SEARCHKEY.val(define.URL_INVALID_TIPS);
			};
		} else {
			define.EL_SEARCHKEY.val(define.URL_INVALID_TIPS);
		};
		*/
	});
	
	define.EL_SEARCHFORM.submit(function(event) {
		var keyVal = define.EL_SEARCHKEY.val();
		if (checkAvaliable(keyVal)) {
			if (define.EL_SEARCHTYPE.val() == 'news') {
				define.EL_BAIDUKEY.val(define.EL_SEARCHKEY.val());
				define.EL_BAIDUFORM.submit();
				return false;
			};
			keyVal = keyVal.replace(/^\s*/, '').replace(/\s*$/, '');
			define.EL_SEARCHKEY.val(keyVal);
			return true;
		} else {
			return false;
		};
	});		
});
