var Cookie = {
  set: function(name, value, daysToExpire) {
    var expire = '';
    if (daysToExpire != undefined) {
      var d = new Date();
      d.setTime(d.getTime() + (86400000 * parseFloat(daysToExpire)));
      expire = '; expires=' + d.toGMTString();
    }
    return (document.cookie = escape(name) + '=' + escape(value || '') + expire);
  },
  get: function(name) {
    var cookie = document.cookie.match(new RegExp('(^|;)\\s*' + escape(name) + '=([^;\\s]*)'));
    return (cookie ? unescape(cookie[2]) : null);
  },
  del: function(name) {
    var cookie = Cookie.get(name) || true;
    Cookie.set(name, '', -1);
    return cookie;
  },
  isEnabled: function() {
    if (typeof navigator.cookieEnabled == 'boolean') {
      return navigator.cookieEnabled;
    }
    Cookie.set('_test', '1');
    return (Cookie.del('_test') === '1');
  },
  exists: function(q){
  	return Cookie.get(q) != null ;
  }
};

function $(q){
	if(typeof q=="string"){
		if(document.getElementById)return document.getElementById(q);
		else if(document.all)return document.all[q];
		else if(document.layers)return document.layers[q];
	}else return q;
}

if(Cookie.isEnabled()){
	if(!Cookie.exists('iAlreadyWasHere')){
		Cookie.set('iAlreadyWasHere',1);
		Cookie.set('local','EU');
		Cookie.set('remember_engine',1);
	}
}


function initOptions(){
	// local
	var field=$('continente');
	var cook=Cookie.get('local');
	for(var i=0;i<field.options.length;i++){
		if(field.options[i].value==cook){
			field.options.selectedIndex=i;
			break;
		}
	}
	opt('local',cook);
	
	// remenber_engine
}

function opt(k,v){
	switch(k){
		case"local":
			Cookie.set(k,v);
			var a=document.links;
			if(v=="EU"){
				for(var i=0;i<a.length;i++){
					a[i].href=a[i].href.replace(/www\.worldofwarcraft\.com/,"www.wow-europe.com");
					a[i].href=a[i].href.replace(/www\.wowarmory\.com/,"eu.wowarmory.com");
				}
			}else{
				for(var i=0;i<a.length;i++){
					a[i].href=a[i].href.replace(/www\.wow-europe\.com/,"www.worldofwarcraft.com");
					a[i].href=a[i].href.replace(/eu\.wowarmory\.com/,"www.wowarmory.com");
				}
			}
			break;
	}
}

function rememberMe(q){
	
}

function help(q){
	var m="";
	switch(q){
		case"db":
			m+='(*) A green border around a search engine button means that if you search by pressing "Enter" WoWSearch will use that search engine.\n';
			m+='(*) You can make multiple search separating names with ";".\n';
			m+='(*) If you make a multiple search of quest with names starting with "[00]" you don\'t need the ";" separator.\n';
			m+='(*) If in the search are present both ";" and "[00]", only ";" counts.';
			alert(m);
		break;
		case"addons":
			m+='(*) A green border around a search engine button means that if you search by pressing "Enter" WoWSearch will use that search engine.\n';
			m+='(*) You can use multiple search separating names with ";".';
			alert(m);
		break;
		case"armory":
			m+='(*) A green border around a search engine button means that if you search by pressing "Enter" WoWSearch will use that search engine.\n';
			m+='(*) You can use multiple search separating names with ";".';
			alert(m);
		break;
	}
}

iWas="db";
iWasInput="searchInput";
function switchTo(q){
	$(iWas+"-tab").className="tab";
	$(iWas+"-content").style.display="none";
	
	$(q+"-tab").className="tab sel";
	$(q+"-content").style.display="block";
	
	switch(q){
		case"db":
			newInput="searchInput";
			$(newInput).focus();
			$(newInput).value=$(iWasInput).value;
			iWasInput=newInput;
		break;
		case"armory":
			newInput="searchQuery";
			$(newInput).focus();
			$(newInput).value=$(iWasInput).value;
			iWasInput=newInput;
		break;
		case"addons":
			newInput="searchModsInput";
			$(newInput).focus();
			$(newInput).value=$(iWasInput).value;
			iWasInput=newInput;
		break;
		case"tools":
			
		break;
		case"links":
			
		break;
		case"options":
			
		break;
	}
	iWas=q;
}

function popTalent(q){
	$("popTalent").style.display=(q)?"block":"none";
}

function na(){
	if(confirm("Your browser cannot use this search engine.\nIf you use the Firefox browser, this search engine works.\nDo you want download Firefox, the best browser of the web?"))window.open("http://www.getfirefox.com");
}

String.prototype.trim=function(){
	var i,start,end;
	for(i=0;i<this.length;i++){
		if( this.charAt(i)!="	" && this.charAt(i)!=" " && this.charAt(i)!="\r" && this.charAt(i)!="\n" ){
			start=i;
			break;
		}
	}
	if(typeof start!="undefined"){
		for(i=this.length-1;i>-1;i--){
			if( this.charAt(i)!="	" && this.charAt(i)!=" " && this.charAt(i)!="\r" && this.charAt(i)!="\n" ){
				end=i+1;
				break;
			}
		}
		return this.substring(start,end);
	}else return "";
}

function splitDB(q){
	var result = [];
	if( q.indexOf(";")!=-1 || q.indexOf("[")!=-1 ){
		var splits = q;
		var splits = splits.split("[").join("|");
		var splits = splits.split("]").join("|");
		var splits = splits.split(";").join("|");
		var splits = splits.split("|")
		for(var i=0;i<splits.length;i++){
			var part = splits[i].trim();
			if( isNaN(part.substring(0,1)) ){
				result[result.length] = part;
			}
		}
	}else{
		result[0] = q;
	}
	return result;
}

function getDBvalueSplitted(){
	var f=$('searchForm');
	var si=$('searchInput');
	return splitDB(String(si.value));
}


var defaults     = {db:"head",armory:"armory_character",addons:"curse"} ;
function setDefault(k,v){
	$(defaults[k]).src=$(defaults[k]).src.replace(/_ico_sel\.png/,"_ico.png");
	defaults[k]=v;
	$(v).src=$(v).src.replace(/\_ico.png/,"_ico_sel.png");
}
function callDefault(q){
	eval(defaults[q]+"()");
}

function alla(){
	setDefault("db","alla");
	var q=getDBvalueSplitted();
	for(var i=0;i<q.length;i++){
		window.open("http://wow.allakhazam.com/search.html?q="+q[i],"_blank");
	}
}
function thot(){
	setDefault("db","thot");
	var q=getDBvalueSplitted();
	for(var i=0;i<q.length;i++){
		window.open("http://www.thottbot.com/?s="+q[i],"_blank");
	}
}
function goblin(){
	setDefault("db","goblin");
	var q=getDBvalueSplitted();
	for(var i=0;i<q.length;i++){
		window.open("http://www.goblinworkshop.com/search2.html?s="+q[i],"_blank");
	}
}
function guru(){
	setDefault("db","guru");
	var q=getDBvalueSplitted();
	for(var i=0;i<q.length;i++){
		window.open("http://www.wowguru.com/db/search.php?q="+q[i],"_blank");
	}
}
function head(){
	setDefault("db","head");
	var q=getDBvalueSplitted();
	for(var i=0;i<q.length;i++){
		window.open("http://www.wowhead.com/?search="+q[i],"_blank");
	}
}
function wiki(){
	setDefault("db","wiki");
	var q=getDBvalueSplitted();
	for(var i=0;i<q.length;i++){
		window.open("http://www.google.com/custom?domains=wowwiki.com&sitesearch=wowwiki.com&sa=Search&client=pub-5713967283907580&forid=1&channel=6987656965&ie=UTF-8&oe=UTF-8&cof=GALT%3A%2346ABFF%3BGL%3A1%3BDIV%3A%23EEEEEE%3BVLC%3A4274FF%3BAH%3Acenter%3BBGC%3A333333%3BLBGC%3AFFFF99%3BALC%3A46ABFF%3BLC%3A46ABFF%3BT%3AEEEEEE%3BGFNT%3AAAAAAA%3BGIMP%3AAAAAAA%3BLH%3A100%3BLW%3A100%3BL%3Ahttp%3A%2F%2Fwww.wowwiki.com%2Fskins%2Fcommon%2Fimages%2Fwiki-100.jpg%3BS%3Ahttp%3A%2F%2Fwww.wowwiki.com%2F%3BLP%3A1%3BFORID%3A1%3B&hl=en&q="+q[i],"_blank");
	}
}
function armory_db(){
	setDefault("db","armory_db");
	var q=getDBvalueSplitted();
	for(var i=0;i<q.length;i++){
		window.open("http://"+((Cookie.get('local')=="EU")?"eu":"www")+".wowarmory.com/search.xml?searchType=all&searchQuery="+q[i],"_blank");
	}
}
function google(){
	setDefault("db","google");
/*
	var q=getDBvalueSplitted();
	for(var i=0;i<q.length;i++){
		window.open("http://www.google.it/search?q="+q[i],"_blank");
	}
*/
	var F=$("googleADSearch").getElementsByTagName("form")[0];
	F.q.value=$('searchInput').value;
	F.submit();
}

/************************ MODS ************************/

function curse(){
	setDefault("addons","curse");
	var f=$('searchModsForm');
	var si=$('searchModsInput');
	var siv=String(si.value);
	if(siv.indexOf(";")!=-1){
		siv=siv.split(";");
	}else siv=[siv];
	var i,q;
	for(i=0;i<siv.length;i++){
		q=siv[i];
		window.open("http://wow.curse.com/downloads/wow-addons/SearchResults.aspx?q="+q);
	}
}

function wowinterface(){
	setDefault("addons","wowinterface");
	var f=$('searchModsForm');
	var si=$('searchModsInput');
	var siv=String(si.value);
	if(siv.indexOf(";")!=-1){
		siv=siv.split(";");
	}else siv=[siv];
	var i,q;
	for(i=0;i<siv.length;i++){
		q=siv[i];
		q=q.replace(/"/g,'&quot;');
		var o=window.open('about:blank')
		
		var t='<form action="http://www.wowinterface.com/downloads/search.php" method="post">';
		t+='<input type="hidden" name="search" value="'+q+'" />';
		t+='<input type="hidden" name="title" />';
		t+='<input type="hidden" name="description" />';
		t+='<input type="hidden" name="author" />';
		t+='<input type="hidden" name="action" value="search" />';
		t+='</form>';
		
		o.document.body.innerHTML=t;
		o.document.forms[0].submit();
	}
}

function wowwar(){
	setDefault("addons","wowwar");
	var f=$('searchModsForm');
	var si=$('searchModsInput');
	var siv=String(si.value);
	if(siv.indexOf(";")!=-1){
		siv=siv.split(";");
	}else siv=[siv];
	var i,q;
	for(i=0;i<siv.length;i++){
		q=siv[i];
		window.open("http://wowui.incgamers.com/?p=browse&submit=Search&s="+q,"_blank");
	}
}

function guru(){
	setDefault("addons","guru");
	var f=$('searchModsForm');
	var si=$('searchModsInput');
	var siv=String(si.value);
	if(siv.indexOf(";")!=-1){
		siv=siv.split(";");
	}else siv=[siv];
	var i,q;
	for(i=0;i<siv.length;i++){
		q=siv[i];
		window.open("http://www.wowguru.com/ui/search.php?name="+q,"_blank");
	}
}

function google_addons(){
	setDefault("addons","google_addons");
/*
	var f=$('searchModsForm');
	var si=$('searchModsInput');
	var siv=String(si.value);
	if(siv.indexOf(";")!=-1){
		siv=siv.split(";");
	}else siv=[siv];
	var i,q;
	for(i=0;i<siv.length;i++){
		q=siv[i];
		window.open("http://www.google.com/search?q="+q,"_blank");
	}
*/
	var F=$("googleADSearch").getElementsByTagName("form")[0];
	F.q.value=$('searchModsInput').value;
	F.submit();
}

/************************ ARMORY ************************/

function armory_all(){armory('all')};
function armory_items(){armory('items')};
function armory_character(){armory('character')};
function armory_guilds(){armory('guilds')};
function armory_arenateams(){armory('arenateams')};

function armory(st){
	setDefault("armory","armory_"+st);
	var f=$('searchArmoryForm');
	var si=$('searchQuery');
	var siv=String(si.value);
	if(siv.indexOf(";")!=-1){
		siv=siv.split(";");
	}else siv=[siv];
	var url="http://"+((Cookie.get('local')=="EU")?"eu":"www")+".wowarmory.com/search.xml";
	var i,q;
	for(i=0;i<siv.length;i++){
		q=siv[i];
		window.open(url+"?searchType="+st+"&searchQuery="+q);
	}
}
