function verifyDomain(url) {
	return url.indexOf(domain_name);
}

function languageBarWriter(n, session_num) {
	var otherLanguage = (n+1)%2;
	var otherSession = 0;
	
		if (session_num != 0 && session[otherLanguage][session_num].indexOf(pageholder) == -1)
			otherSession = session_num;
			
		var url_string = window.location.href;
		url_string = url_string.replace(lang[n],lang[otherLanguage]);
		
		if (session_num == 0){
			var domain_loc = url_string.indexOf(domain_name);
			url_string = url_string.substr(0, domain_loc) + domain_name;
		}else {
			url_string = url_string.replace(session[n][session_num], session[otherLanguage][session_num]);
		}
	
		document.write('<a href="' + url_string + '"><img src="http://en.ewangenius.com/files/theme/' + lang[otherLanguage] + '.png" title="' + lang_name[otherLanguage] + '" alt="' + lang_name[otherLanguage] + '" /></a>');
}

function BlogLanWriter(n){

var otherLanguage = (n+1)%2;
var otherSession = 0;

	var selfURL = getURL();
	var str=location.href;
	var symbols="";
	// when index.html?lang=
	if (str.indexOf('?lang=')>0){
		symbols = '?';
	}
	else{

		if (str.indexOf('?')>0){
			symbols = '&';
		}
		else
			symbols ='?';
		
	}
	
	document.write('<a href="' + selfURL + symbols+'lang=' + lang[otherLanguage] +'"><img src="http://en.ewangenius.com/files/theme/' + lang[otherLanguage] + '.png" title="' + lang_name[otherLanguage] + '" alt="' + lang_name[otherLanguage] + '" /></a>');

}

function getLanguage(url) {
	if (verifyDomain(url) == -1) {
		return -1;
	}
	var langIndex = -1;
	for ( var i = 0; i < num_of_lang; i++ ){
		langIndex = url.indexOf(lang[i] + "." + domain_name);
		if (langIndex != -1 )
			return i;
	}
	
	return -1;
}

function getSession(url) {		
	var i = getLanguage(url);
	if (i == -1)
		return -1;
	
	var sessionIndex = -1;
	for ( var j = 0; j < num_of_session; j++ ){
		sessionIndex = url.indexOf(session[i][j]);
		if (sessionIndex != -1 )
			return j;
	}
	
	return 0; // it could be the home
}


/*
 * functions to set, store and retrieve cookies
 * cookies about language options
 * Part of the code comes from w3school.com
 * http://www.w3schools.com/JS/js_cookies.asp
 */

// eg. setCookie (language, 'en', 30);


function setCookie(c_name,value,expiredays)
{
	var exdate=new Date();
	exdate.setDate(exdate.getDate()+expiredays);
	document.cookie=c_name+ "=" +escape(value)+	((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
}

function getCookie(c_name)
{
	if (document.cookie.length>0)
	{
		c_start=document.cookie.indexOf(c_name + "=");
		if (c_start!=-1)
		{ 
			c_start=c_start + c_name.length+1; 
			c_end=document.cookie.indexOf(";",c_start);
			if (c_end==-1) c_end=document.cookie.length;
			return unescape(document.cookie.substring(c_start,c_end));
		} 
	}
	return "";
}

function checkCookie(){
	lang_str = getCookie('language');
	if (lang_str == null || lang_str == ""){
		setCookie('language', "", 30);
		return "";
	}
	else{
		return lang_str;
	}
}


/*
 * function to determine the right language.
 */
 
 function getURL(){
 	var str=location.href;
 	var x=str.indexOf("lang=");
 	
 	var string = "";
 	
 	if (x>0)
 		string = str.substr(0,x-1);
 	else
 		string = str;
 	
 	return string;
 }
 
 
 function setLanguage(string){
	if (string == "" || string == null)
		return checkCookie();
	else{
		setCookie('language', string, 30);
		return string;
	}
}

function languagedisplay(language){
	var lang = new Array;
	lang[0]="zh";
	lang[1]="en";
	var x=0;
	var i=0;
	for (x=0; x<2; x++){
		if (lang[x]==language)	{
			changecss('.'+lang[x]+'-icon','display','none');
			changecss('.'+lang[x],'display','block');
		}
		else{
			changecss('.'+lang[x]+'-icon','display','block');
			changecss('.'+lang[x],'display','none');
			i++;
		}
	}
	// if none of the languages is available.
	if (i==2){
		changecss('.en','display','block');
		setCookie('language', "en", 30);
		//alert("Your language setting: \""+language+"\" is not available. Pages will be displayed in English.");
	}
}
