
/* global function */

function include_js(url, id) {
	var nbr_att = arguments.length;
	var js_elem = document.createElement("script");
	js_elem.setAttribute("type", "text/javascript");
	js_elem.setAttribute("src", url);
	js_elem.setAttribute("id", id);
	var head = document.getElementsByTagName("head")[0];
	head.appendChild(js_elem);
}

var onloader = {}
function onloadStack()
{
	for (toload in onloader)
	{
		eval(toload);
	}
}

function getUrl(url) {
	var id = Math.floor(Math.random()*9999999);
	include_js(url, id);
}

var $ = function(ref)
{
	try {
		var elem = document.getElementById(ref);
		if (elem.id == ref) return elem;
	}
	catch(e) {}
	try {
		var elem = document.getElementsByName(ref);
		elem = elem[0];
		if (elem.name == ref) return elem;
	}
	catch(e) {}
	try {
		var elem = document.getElementsByTagName(ref);
		elem = elem[0];
		if (elem.tagName == ref || elem.tagName == ref.toUpperCase()) return elem;
	}
	catch(e) {}
	return null;
}

/* menu top fct */

function menu_switch(elem, val)
{
	if (val == true) elem.className = "menu_top_hover";
	else elem.className = elem.oldclass;
}

function set_menu_switch()
{
	var menu = $("menu_list");
	var menu_item = menu.getElementsByTagName("div");
	for (var i = 0; menu_item[i]; i++)
	{
		var elem = menu_item[i];
		elem.onmouseover = function () { menu_switch(this, true); };
		elem.onmouseout = function () { menu_switch(this, false); };
		elem.oldclass = elem.className;
	}
}

/* star system */

function move_star(elem, size)
{
	try
	{
		var tomove = elem.getElementsByTagName("div")[1];
		tomove.style.width = size+"px";
	}
	catch (e) {}
}

function reset_star(elem)
{
	try
	{
		var tomove = elem.getElementsByTagName("div")[1];
		tomove.style.width = tomove.savedwidth;
	}
	catch (e) {}
}

function click_star(elem, step)
{
	try
	{
		var toclick = elem.getElementsByTagName("div")[0];
		toclick.innerHTML = "";
		elem.onmouseout = function () { };
		getUrl(elem.getAttribute("url")+step);
	}
	catch (e) {}
}

function init_star(elem)
{
	try
	{
		var toclick = elem.getElementsByTagName("div")[0];
		var tostar = elem.getElementsByTagName("div")[1];
		toclick.innerHTML = "";
		tostar.savedwidth = tostar.style.width;
		for (var i = 0; i < 5; i++)
		{
			var newelem = document.createElement("li");
			newelem.overstate = ((i+1)*20);
			newelem.clickstate = (i+1);
			newelem.onmouseover = function () { move_star(this.parentNode.parentNode, this.overstate); };
			newelem.onclick = function () { click_star(this.parentNode.parentNode, this.clickstate); };
			toclick.appendChild(newelem);
		}
		elem.onmouseover = function () { };
		elem.onmouseout = function () { reset_star(this); };
	}
	catch (e) {}
}

/* promo while */

function inc_promo()
{
	promo_step++;
	if (promo_max <= promo_step) promo_step = 0;
	swap_promo(promo_step);
}

function sub_promo()
{
	promo_step--;
	if (promo_step < 0) promo_step = promo_max-1;
	swap_promo(promo_step);
}

function random_promo()
{
	promo_step = Math.floor(promo_max*Math.random());
	swap_promo(promo_step);
}

function swap_promo(inc)
{
	clearInterval(promo_intercal);
	promo_intercal = setInterval(random_promo, 10000);
	var elem = promo_list[inc];
	$("promo_url").href = elem["url"];
	$("promo_title").innerHTML = elem["title"];
	$("promo_image").src = elem["image"];
	$("promo_pourcent").innerHTML = elem["pourcent"];
	$("promo_prix").innerHTML = elem["prix_promo"];
	$("promo_source").src = elem["old_source"];
}

/* list */

var arrCheckList = {};
var dataCat = new Array();
var base = "/comparajax";
var basecat = base + "/" + "format";
var basetag = base + "/" + "type";
var basecattag1 = basecat;
var basecattag2 = "type";
var basesort = "trie";
var basetouse = "";
var match = "";
var basematch = "rechercher";

var urlaj = "";
var tosendaj = false;

function switchCheckCat(elem, all) {
	var cat = elem.value;
	enableAllTags();
	$('form_cat_selected').innerHTML = "";
	$("img_cat_title").innerHTML = "";
	arrCheckList["cat"] = 0;
	if (all == false)
	{
		disableAllTags();
		var tags = dataCat[cat]['tags'];
		var img = dataCat[cat]['img'];
		$("img_cat_title").innerHTML = img;
		addWord(elem, "cat");
		for (i=0; i<tags.length; i++) 
		{
			try { 
				var tag = $('tag_check_'+tags[i]);
				var div = $('tag_div_'+tags[i]);
				tag.checked = true;
				tag.disabled = "";
				div.style.display = "";
				addWord(tag, "tag");
			} catch (e) { }
		}
	}
	else
	{
		$('form_cat_selected').innerHTML = "<div><a href='javascript:void(0)' onclick='resetForm();' title='Réinitialiser les critères de recherche'>Toutes les categories</a></div>";
	}
	if (arrCheckList["cat"] == 0 && arrCheckList["tag"] == 0) $('list_title').style.display = "none";
	else $('list_title').style.display = "";
	compileUrl();
}

function switchCheck(elem, id) {
	var list = $(id).getElementsByTagName("input");
	var spl = elem.id.split("_check_");
	var idset = spl[0]+"_check_"+spl[1];
	var nm = spl[0];

	if (elem.checked) 
	{
		try { 
			if (spl[1] != "*")
			{
				addWord(elem, nm);
			}
			else arrCheckList[nm] = 0;
		} catch (e) {}
		uncheckAll(list, spl[0]);
	}
	else
	{
		try { 
			if (spl[1] != "*")
			{
				arrCheckList[nm]--;
			}
			else arrCheckList[nm] = 0;
			var newelem = document.createElement("div");
			newelem.appendChild($(nm+"_check_"+elem.value+"_check_elem")); 
			try { 
				$(idset).checked = false;
			} catch (e) {}
			var countL = $('form_'+nm+'_selected').getElementsByTagName("div");
			if (countL.length == 0) {
				var listInput = $("form_"+nm+"_all").getElementsByTagName("input");
				var imp = listInput[0];
				imp.checked = true;
			}
		} catch (e) {}
	}
	if (arrCheckList["cat"] == 0 && arrCheckList["tag"] == 0) $('list_title').style.display = "none";
	else $('list_title').style.display = "";	
	
	compileUrl();
}

function compileUrl()
{
	if (tosendaj)
	{
		var list = $("list_title").getElementsByTagName("input");
		var c = list.length;
		basetouse = "";
		var catName = "";
		for (var i = 0; i < c; i++)
		{
			if (list[i].name == "cat") catName = list[i].value;
			else 
			{
				if (basetouse != "") basetouse += "|";
				basetouse += list[i].value;
			}
		}
		
		var list = $("form_sort_list").getElementsByTagName("input");
		var c = list.length;
		var addsort = "";
		for (var i = 0; i < c; i++)
		{
			if (list[i].checked && list[i].value != "*") addsort = basesort + "/" + list[i].value + "/";
		}
		
		var matchadd = addsort + "page/1";
		if (match != "")
		{
			matchadd = basematch + "/" + match + "/" + addsort + "page/1";
		}
		
		if (catName != "") 
		{
			if (basetouse != "") urlaj = basecattag1 + "/" + catName + "/" + basecattag2 + "/" + basetouse + "/" + matchadd;
			else urlaj = basecat + "/" + catName + "/" + matchadd;
		}
		else 
		{
			if (basetouse != "") urlaj = basetag + "/" + basetouse + "/" + matchadd;
			else urlaj = base + "/" + matchadd;
		}
		getUrl(urlaj);
		//window.status = urlaj;
	}
}

function addWord(elem, nm) {
	arrCheckList[nm]++;
	var targ = $('form_'+nm+'_selected');
	var newelem = document.createElement("div");
	
	if (nm == "tag") newelem.innerHTML = '<input type="hidden" name="tag" value="'+elem.value+'" /><img title="Supprimer '+elem.title+'" onclick="switchCheck(this.parentNode, \'form_'+nm+'_all\')" src="/public/Images/picnull.gif" width="10" height="10" /><a href="javascript:void(0)" title="Supprimer '+elem.title+'">'+elem.title+'</a> ';
	else if (nm == "cat") newelem.innerHTML = '<input type="hidden" name="cat" value="'+elem.value+'" /><img title="Supprimer '+elem.title+'" onclick="switchCheckCat(this.parentNode, true)" src="/public/Images/picnull.gif" width="10" height="10" /><a href="javascript:void(0)" title="Supprimer '+elem.title+'">'+elem.title+'</a> ';
	
	newelem.id = nm+"_check_"+elem.value+"_check_elem";
	newelem.value = elem.value;
	//if (nm == "tag") newelem.onclick = function () { switchCheck(newelem, "form_"+nm+"_all"); };
	//else if (nm == "cat") newelem.onclick = function () { switchCheckCat(newelem, true); };
	$('form_'+nm+'_selected').appendChild(newelem);
}

function disableAllTags()
{
	var list = $("form_tag_all").getElementsByTagName("input");
	for (i=0; i<list.length; i++) 
	{
		list[i].checked = false;
	}
	var list = $("form_tag_list").getElementsByTagName("input");
	var listdiv = $("form_tag_list").getElementsByTagName("div");
	var newelem = document.createElement("span");
	for (i=0; i<list.length; i++) 
	{
		list[i].checked = false;
		list[i].disabled = "disabled";
		listdiv[i].style.display = "none";
		try { newelem.appendChild($("tag_check_"+list[i].value+"_check_elem")); } catch (e) {}
	}
} 

function enableAllTags()
{
	var list = $("form_tag_list").getElementsByTagName("input");
	var listdiv = $("form_tag_list").getElementsByTagName("div");
	var newelem = document.createElement("span");
	for (i=0; i<list.length; i++) 
	{
		list[i].disabled = "";
		listdiv[i].style.display = "";
	}
} 

function uncheckAll(list, type)
{
	var newelem = document.createElement("span");
	for (i=0; i<list.length; i++) 
	{
		list[i].checked = false;
		try { newelem.appendChild($(type+"_check_"+list[i].value+"_check_elem")); } catch (e) {}
	}
} 

/* cookies */

function SetCookie (name, value) {
	var argv=SetCookie.arguments;
	var argc=SetCookie.arguments.length;
	var expires=(argc > 2) ? argv[2] : null;
	var path=(argc > 3) ? argv[3] : null;
	var domain=(argc > 4) ? argv[4] : null;
	var secure=(argc > 5) ? argv[5] : false;
	document.cookie=name+"="+escape(value)+
	((expires==null) ? "" : ("; expires="+expires.toGMTString()))+
	((path==null) ? "" : ("; path="+path))+
	((domain==null) ? "" : ("; domain="+domain))+
	((secure==true) ? "; secure" : "");
}
function getCookieVal(offset) {
	var endstr=document.cookie.indexOf (";", offset);
	if (endstr==-1) endstr=document.cookie.length;
	return unescape(document.cookie.substring(offset, endstr));
}
function GetCookie (name) {
	var arg=name+"=";
	var alen=arg.length;
	var clen=document.cookie.length;
	var i=0;
	while (i<clen) {
		var j=i+alen;
		if (document.cookie.substring(i, j)==arg) return getCookieVal (j);
		i=document.cookie.indexOf(" ",i)+1;
		if (i==0) break;
	}
	return null;
}

/* completion */

function getTarget(evt) {
	if (!evt) var evt = ev;
	return (evt.target||evt.srcElement);
}

function getEvent(e) {
	return (e||window.event); 
}

function getKey(e) {
	var ch = "";
	var ach = "";
	
	var info = new Array();
	
	info['ctrl'] = false;
	info['alt'] = false;
	info['meta'] = false;
	info['shift'] = false;
	
	if (e.ctrlKey) 
	{
		if (ch.length) ch += "+";
		ch += "Ctrl";
		info['ctrl'] = true;
	}
	if (e.altKey) 
	{
		if (ch.length) ch += "+";
		ch += "Alt";
		info['alt'] = true;
	}
	if (e.shiftKey) 
	{
		if (ch.length) ch += "+";
		ch += "Shift";
		info['shift'] = true;
	}
	if (e.metaKey) 
	{
		if (ch.length) ch += "+";
		ch += "Meta";
		info['meta'] = true;
	}
	
	if (ch.length) ach = "+";
	
	switch(e.keyCode) {
		case   8: ch += ach+"Backspace" ; break
		case   9: ch += ach+"Tab" ; break
		case  13: ch += ach+"Return" ; break
		case  16: ch += "" ; break // shift
		case  17: ch += "" ; break // ctrl
		case  18: ch += "" ; break // alt
		case  19: ch += ach+"PauseAttn" ; break
		case  20: ch += ach+"SchiftLock" ; break
		case  27: ch += ach+"Echap" ; break
		case  32: ch += ach+"Space" ; break
		case  33: ch += ach+"SpeedTop" ; break
		case  34: ch += ach+"SpeedBottom" ; break
		case  35: ch += ach+"Fin" ; break
		case  36: ch += ach+"Home" ; break
		case  37: ch += ach+"ArrowLeft" ; break
		case  38: ch += ach+"ArrowTop" ; break
		case  39: ch += ach+"ArrowRight" ; break
		case  40: ch += ach+"ArrowBottom" ; break
		case  45: ch += ach+"Inser" ; break
		case  46: ch += ach+"Delete" ; break
		case  53: ch += ach+"BracketOpen" ; break
		case  91: ch += ach+"Start" ; break
		case  93: ch += ach+"Menu" ; break
		case 112: ch += ach+"F1" ; break
		case 113: ch += ach+"F2" ; break
		case 114: ch += ach+"F3" ; break
		case 115: ch += ach+"F4" ; break
		case 116: ch += ach+"F5" ; break
		case 117: ch += ach+"F6" ; break
		case 118: ch += ach+"F7" ; break
		case 119: ch += ach+"F8" ; break
		case 120: ch += ach+"F9" ; break
		case 121: ch += ach+"F10" ; break
		case 122: ch += ach+"F11" ; break
		case 123: ch += ach+"F12" ; break
		case 145: ch += ach+"NumLock" ; break
		case 145: ch += ach+"StopScroll" ; break
		case 219: ch += ach+"BracketClose" ; break
		case 222: ch += ach+"Scare" ; break
		case 226: ch += ach+"Dif" ; break
		default: 
			if (e.keyCode != 0)
				ch += ach+String.fromCharCode(e.keyCode);
	}
	info['key'] = e.keyCode;
	info['chr'] = String.fromCharCode(e.charCode);
	info['Accesskey'] = ch;
	return (info);
}

var filter = {};

function setFilter(key, val) {
	try {
		filter[key] = val;
	}
	catch (e) {}
}

function tolower(txt) {
	try {
		var str = new String(txt);
		return str.toLowerCase();
	}
	catch (e) {}
}

function completionClick(elem_id, godiv_id) { 
	try {
		var godiv = $(godiv_id);
		var elem = $(elem_id);
		var name = godiv.id.replace("result_", "");
		var sel = $(name);
		var input = $("search_"+name);

		$(name+"_"+elem.innerHTML).selected = "selected";
		$(name+"_tout").selected = "";
		godiv.innerHTML = "";
		godiv.style.visibility = "hidden";
		sel.style.visibility = "visible";
		input.value = "";
		if (typeof sel.onchange != "undefined") refreshFilter(sel);
	}
	catch (e) {}
}

var ev;

function completion(e) { 
	try {
		ev = getEvent(e);
		var elem = getTarget(ev);
		var info = getKey(ev); 
		var keypress = info['Accesskey'];
		var name = elem.name.replace("search_", "");
		var list = filter["list_"+name];
		var sel = $(name);
		
		switch(keypress)
		{
			default:
				if (elem.value != "")
				{
					var reg = new RegExp(tolower(elem.value));
					var i = 0;
					for (key in list)
					{
						if (i == 6) break;
						var resultat = reg.test(tolower(list[key]));
						if (resultat)
						{
							$(key).style.display = "";
						}
						else
						{
							$(key).style.display = "none";
						}
					}
				}
				else 
				{
					for (key in list)
					{
						$(key).style.display = "";
					}
				}
			break;
		}
	}
	catch (e) {}
}

/* avertissement */

function entrer() {
  document.getElementById("disclaimer").style.left=parseInt(-999999);
  document.getElementById("rideau").style.left=parseInt(-999999);
  SetCookie("avertissement",1,null,"/","keltoys.com");
}

function process_keypress(evt) {
  if(navigator.appName=='Microsoft Internet Explorer') {

    if(window.event.type == "keypress" && window.event.keyCode == 13) { entrer(); }

  }
  else {

    if(evt.type == "keypress" && evt.keyCode == 13) { entrer(); }

  }
}

document.onkeypress = process_keypress;

function visiter() {
	var avert = GetCookie("avertissement");
	if(avert != 1) {
	  document.getElementById("rideau").style.left=parseInt(0);
	  document.getElementById("disclaimer").style.left=parseInt(0);
	  document.getElementById("disclaimer").style.visibility = "visible";
	
	  if (navigator.appName=="Microsoft Internet Explorer") {
	    document.getElementById("rideau").style.width=document.body.offsetWidth-25;
	  } else {
	    document.getElementById("rideau").style.width=document.body.offsetWidth;
	  }
	  document.getElementById("rideau").style.height=document.body.offsetHeight - 4;
	
	}
	else {
	  document.getElementById("rideau").style.left=parseInt(-999999);
	  document.getElementById("disclaimer").style.left=parseInt(-999999);
	}
	document.getElementById("avert").style.left=parseInt((document.body.offsetWidth-document.getElementById("avert").offsetWidth)/2);
}

function getTrackingNumber(tag) {
	try {
		var url = window.location.href;	
		
		if (url.indexOf('?') != -1)
		{
			var urlsplit = url.split("?");
			var attr = urlsplit[1];
			var pos = attr.indexOf(tag+'=')+tag.length+1;
			var reste = attr.substr(pos);
			var restesplit = reste.split("&");
			var valret = restesplit[0];
			if (typeof valret != "undefined" && valret && valret != "") return valret;
		}
	}
	catch (e) {}
	return "keltoys";
}

try {
	if ($G["getcookie"]("trackingnumber") == null)
	{
		var nbJour = 30;
		var exp = new Date();
		exp.setTime(exp.getTime() + (nbJour*24*60*60*1000));
		$G["setcookie"]("trackingnumber", getTrackingNumber("trackingnumber"), exp);
	}
} catch (e) { }
