function checkEnter(type, e){ //e is event object passed from function invocation
	var characterCode; //literal character code will be stored in this variable
	if(e && e.which){ //if which property of event object is supported (NN4)
		e = e;
		characterCode = e.which; //character code is contained in NN4's which property
	}
	else{
		e = e;
		characterCode = e.keyCode; //character code is contained in IE's keyCode property
	}
	if(characterCode == 13){ //if generated character code is equal to ascii 13 (if enter key)
	    if (type == "search") {
	        checkSearch();
	    } else if (type == "contribute") {
	        contributeRedirect();
	    } else if (type == "contribute_bottom") {
	        contributeRedirect("contribute_bottom");
	    } else if (type == "submit_site") {
	        __doPostBack('ctl00$se_design1_body$lbnSubmit', '');
	    }
		return false;
	}else{
		return true;
	}
}

function getAddy(e,u){
	location.href = 'mailto:' + e + '@' + u;
}

function changeTextFocus(id, defaultTxt){
	if(id == "contribute"){
		if(document.getElementById(id).value == defaultTxt || document.getElementById(id).value == "Thank you!" || document.getElementById(id).value == "Please enter a valid url, includes protocol"){
			document.getElementById(id).value = "";
		}
	}else{
		if(document.getElementById(id).value == defaultTxt){
			document.getElementById(id).value = "";
		}
	}
}

function changeTextBlur(id, defaultTxt){
	if(document.getElementById(id).value == ""){
		document.getElementById(id).value = defaultTxt;
	}
}

function resetHome(){
	StartFloat();
	resetFeedback();
	document.getElementById('search').focus();
}

function resetResult(){
	StartFloat();
	resetFeedback();
 
	var keyword = getQuerystring("zqz");
	document.getElementById('search').focus();
	
	document.getElementById("search").style.color = "#333333";
	document.getElementById("search_bottom").style.color = "#333333";
	// Url Decode
	keyword = UrlDecode(keyword);
	
	document.getElementById("search").value = keyword;
	document.getElementById("search_bottom").value = keyword;
}

function resetResultEnd() {
	setCheckedValue(document.forms['aspnetForm'].elements['lv'], document.getElementById('ctl00_se_design1_body_hiddenLv').value);
	setCheckedValue(document.forms['aspnetForm'].elements['lv_bottom'], document.getElementById('ctl00_se_design1_body_hiddenLv').value);
    //setCheckedValue(document.forms['aspnetForm'].elements['lv'], getQuerystring("zlvz"));
}

function checkSearch() {
	field = 'search';
	var keyword = document.getElementById(field).value;
	if (!isFilled(keyword, "")) {
		document.getElementById(field).focus();
		document.getElementById(field).value = "";
		return false;
	}
	var lv = getCheckedValue(document.forms['aspnetForm'].elements['lv']);

	// Mars please check
	var folderPath = "";
	var curUrl = window.location.href;
	//alert(curUrl);
	//alert(curUrl.indexOf("/se/"));
	if (curUrl.indexOf("/se/") == -1) {
		folderPath = "se/";
	}

	
	window.location.href = folderPath + "result.aspx?zqz=" + UrlEncode(keyword) + "&zlvz=" + lv;
	return false;
}

function changeKeywordSearch(field){
	if(field == 'top'){
		document.getElementById("search_bottom").value = document.getElementById("search").value;
	}else{
		document.getElementById("search").value = document.getElementById("search_bottom").value;
	}
}

function changeRadio(field, button){
	var radio;
	if(field == 'top'){
		radio = "lv_bottom";
	}else{
		radio = "lv";
	}
	document.getElementById(radio+button).checked = true;
}

function contributeRedirect(field) {
	if( typeof(field) == 'undefined' ){
		field = 'contribute';
	}
	var keyword = document.getElementById(field).value;
	if(!isFilled(keyword, "Add your link to our engine") || !isFilled(keyword, "Thank you!") || !isFilled(keyword, "Please enter a valid url, includes protocol"))
	{
		document.getElementById(field).focus();
		document.getElementById(field).value = "";
		return;
	}else{
		if(isValidURL(keyword)){
			addUrl(keyword);
			document.getElementById(field).value = "Thank you!";
		}else{
			document.getElementById(field).value = "Please enter a valid url, includes protocol";
		}
		//window.location.href = "addUrl.aspx?zurlz=" + keyword;
		
		document.getElementById(field).style.color = "#067aca";
		document.getElementById(field).blur();
		return;
	}
}

function getQuerystring(key, default_)
{
  if (default_==null) default_=""; 
  key = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regex = new RegExp("[\\?&]"+key+"=([^&#]*)");
  var qs = regex.exec(window.location.href);
  if(qs == null)
    return default_;
  else
    return qs[1];
} 

function setDisclaimerLinkOnExtPage() {
	var url = getQuerystring("zurlz");
	document.getElementById("disclaimerOrigLink1").href = url;
	document.getElementById("disclaimerOrigLink2").href = url;
}

function hideStar(){
	document.getElementById("header_nav_post").style.top = "0px";
	document.getElementById("header_star").style.display = "none";
}

function showStar(){
	document.getElementById("header_nav_post").style.top = "-2px";
	document.getElementById("header_star").style.display = "block";
}


function UrlEncode(value) {
	var unencoded = value;
	value = escape(unencoded);
	return value;
}
function UrlDecode(value) {
	var encoded = value;
	value = unescape(encoded.replace(/\+/g, " "));
	return value;
}

function isValidURL(url) {
	var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
	return regexp.test(url);
}

// return the value of the radio button that is checked
// return an empty string if none are checked, or
// there are no radio buttons
function getCheckedValue(radioObj) {
	if (!radioObj)
		return "";
	var radioLength = radioObj.length;
	if (radioLength == undefined)
		if (radioObj.checked)
		return radioObj.value;
	else
		return "";
	for (var i = 0; i < radioLength; i++) {
		if (radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}

// set the radio button with the given value as being checked
// do nothing if there are no radio buttons
// if the given value does not exist, all the radio buttons
// are reset to unchecked
function setCheckedValue(radioObj, newValue) {
	if (!radioObj)
		return;
	var radioLength = radioObj.length;
	if (radioLength == undefined) {
		radioObj.checked = (radioObj.value == newValue.toString());
		return;
	}
	for (var i = 0; i < radioLength; i++) {
		radioObj[i].checked = false;
		if (radioObj[i].value == newValue.toString()) {
			radioObj[i].checked = true;
		}
	}
}
