/* Language Swither */
/* version 1.0 by Nicholas Ursa
   for 3H Communications
   April 17, 2007 
*/

sw_log("---Language Switcher v1.0----------------------");   
sw_log("browser="+sw_getBrowserLanguage())
sw_log("cookie="+sw_getStoredLanguage())

var sw_cookieName="langPref";
var sw_browserLanguage="";
var sw_indexPageName="index.html";
var sw_pageLocation=document.location.href;
var sw_protocol=sw_pageLocation.split("://")[0];
var sw_notProtocol=sw_pageLocation.split("://")[1];
var sw_rawPathArray=sw_notProtocol.split("/");
var sw_domain=sw_rawPathArray[0];
var sw_pageLanguage="en";
var sw_pathArray=[];
sw_log(sw_pageLocation);
sw_log(sw_protocol);
sw_log(sw_notProtocol);
sw_log(sw_rawPathArray);
sw_log(sw_domain);
sw_log(sw_pageLanguage);



if (sw_pageLocation.indexOf("/fr/")!=-1){
	sw_pageLanguage="fr";
	sw_rawPathArray.splice(0,2);
	
} else {
	sw_pageLanguage="en";
	sw_rawPathArray.shift(0,1);

}
sw_pathArray=sw_rawPathArray
sw_log(sw_pathArray);

var sw_pageName=sw_rawPathArray[sw_rawPathArray.length-1];
if (sw_pageName==""){
	sw_pageName=sw_indexPageName;
}

var sw_frPage=sw_protocol+"://"+sw_domain+"/fr/"+sw_pathArray.join("/");
var sw_enPage=sw_protocol+"://"+sw_domain+"/"+sw_pathArray.join("/");

sw_log("Potential French Page: '" + sw_frPage +"'");
sw_log("Potential English Page: '" + sw_enPage +"'");


// this fucnction sets the site language.. immediately after this 
// the document is reloaded and the new cookie should kick in.


function sw_log(message){
	 /*
	 if(console){
	 
		console.log(message);	
	 }
	 */
}

function sw_setAndGoEn(){
	sw_log("sw_setAndGoEn()");
	sw_setSiteLanguage("en");
	sw_redirectTo(sw_enPage);
	return sw_enPage;
}

function sw_setAndGoFr(){
	sw_log("sw_setAndGoFr()");
	sw_setSiteLanguage("fr");
	sw_redirectTo(sw_frPage);
	return sw_frPage;
}

function sw_setSiteLanguage(sw_newLanguage){
	// what happens if there's a cookie already there ?
	sw_createCookie(sw_cookieName,sw_newLanguage,365);
	sw_log("setting cookie: "+sw_newLanguage);
}

function sw_resetLanguage(){
	sw_log("erasing cookie, will go with browser defaults next time.");
	sw_eraseCookie(sw_cookieName);
}

// set cookie
// document.cookie = 'ppkcookie1=testcookie; expires=Thu, 2 Aug 2001 20:47:11 UTC; path=/'

function sw_getBrowserLanguage(){
	// note that this is very flawed... it doesn't check accept-language which is what it should
	// that can only be done server side.
	var language=navigator.language ? navigator.language : navigator.browserLanguage;
	var sw_browserLanguage=language.substring(0,2);
	sw_browserLanguage = sw_browserLanguage.toLowerCase();
	return sw_browserLanguage;
}

function sw_getStoredLanguage(){
	var storedLang=	sw_readCookie(sw_cookieName);
	if (storedLang=="en") return "en";
	if (storedLang=="fr") return "fr";
	return null;
}

function sw_redirectTo(goToLocation){
	// alert("redirecting to... "+goToLocation);
	document.location.href=goToLocation;
}

/* generic cookie functions */
function sw_createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
		sw_log("creating cookie: "+name+"-"+value);
}

function sw_readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function sw_eraseCookie(name) {
	sw_createCookie(name,"",-1);
}



/*
var sw_languageToUse;
var sw_storedLanguage = sw_getStoredLanguage();


if(sw_storedLanguage==null){		
	sw_log("There is no stored language yet... getting browser's.")
	// we have no cookie, so we will redirect/
	// ONLY in the case where the site language doesn't match the browser
	// language
		sw_languageToUse=sw_getBrowserLanguage();
		sw_log("Using '"+sw_languageToUse+"' gotten from browser settings");
		
} else {
	// we have a cookie, so we redirect to whatever the cookie is set to

	sw_log("Getting stored language.")
		sw_languageToUse=sw_getStoredLanguage();
		sw_log("Using '"+sw_languageToUse+"' gotten from cookie settings");

}


if (sw_languageToUse!=sw_pageLanguage){
	// if there's a mismatch then we need to switch
	// for en->fr this means adding in a /fr
	// for fr->en this means taking it away
	if(sw_languageToUse=="fr"){
		sw_log("switching to french");
		sw_redirectTo(sw_frPage);
		
	} else {
		sw_log("switching to english");
		sw_redirectTo(sw_enPage);
		
	}
	
} else {
		sw_log("language matches....")
	
}
*/
