/*
  $Id: general.js,v 1.3 2003/02/10 22:30:55 hpdl Exp $

  osCommerce, Open Source E-Commerce Solutions
  http://www.oscommerce.com

  Copyright (c) 2003 osCommerce

  Released under the GNU General Public License
*/

function SetFocus(TargetFormName) {
  var target = 0;
  if (TargetFormName != "") {
    for (i=0; i<document.forms.length; i++) {
      if (document.forms[i].name == TargetFormName) {
        target = i;
        break;
      }
    }
  }

  var TargetForm = document.forms[target];
    
  for (i=0; i<TargetForm.length; i++) {
    if ( (TargetForm.elements[i].type != "image") && (TargetForm.elements[i].type != "hidden") && (TargetForm.elements[i].type != "reset") && (TargetForm.elements[i].type != "submit") ) {
      TargetForm.elements[i].focus();

      if ( (TargetForm.elements[i].type == "text") || (TargetForm.elements[i].type == "password") ) {
        TargetForm.elements[i].select();
      }

      break;
    }
  }
}

function RemoveFormatString(TargetElement, FormatString) {
  if (TargetElement.value == FormatString) {
    TargetElement.value = "";
  }

  TargetElement.select();
}

function CheckDateRange(from, to) {
  if (Date.parse(from.value) <= Date.parse(to.value)) {
    return true;
  } else {
    return false;
  }
}

function IsValidDate(DateToCheck, FormatString) {
  var strDateToCheck;
  var strDateToCheckArray;
  var strFormatArray;
  var strFormatString;
  var strDay;
  var strMonth;
  var strYear;
  var intday;
  var intMonth;
  var intYear;
  var intDateSeparatorIdx = -1;
  var intFormatSeparatorIdx = -1;
  var strSeparatorArray = new Array("-"," ","/",".");
  var strMonthArray = new Array("jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec");
  var intDaysArray = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

  strDateToCheck = DateToCheck.toLowerCase();
  strFormatString = FormatString.toLowerCase();
  
  if (strDateToCheck.length != strFormatString.length) {
    return false;
  }

  for (i=0; i<strSeparatorArray.length; i++) {
    if (strFormatString.indexOf(strSeparatorArray[i]) != -1) {
      intFormatSeparatorIdx = i;
      break;
    }
  }

  for (i=0; i<strSeparatorArray.length; i++) {
    if (strDateToCheck.indexOf(strSeparatorArray[i]) != -1) {
      intDateSeparatorIdx = i;
      break;
    }
  }

  if (intDateSeparatorIdx != intFormatSeparatorIdx) {
    return false;
  }

  if (intDateSeparatorIdx != -1) {
    strFormatArray = strFormatString.split(strSeparatorArray[intFormatSeparatorIdx]);
    if (strFormatArray.length != 3) {
      return false;
    }

    strDateToCheckArray = strDateToCheck.split(strSeparatorArray[intDateSeparatorIdx]);
    if (strDateToCheckArray.length != 3) {
      return false;
    }

    for (i=0; i<strFormatArray.length; i++) {
      if (strFormatArray[i] == 'mm' || strFormatArray[i] == 'mmm') {
        strMonth = strDateToCheckArray[i];
      }

      if (strFormatArray[i] == 'dd') {
        strDay = strDateToCheckArray[i];
      }

      if (strFormatArray[i] == 'yyyy') {
        strYear = strDateToCheckArray[i];
      }
    }
  } else {
    if (FormatString.length > 7) {
      if (strFormatString.indexOf('mmm') == -1) {
        strMonth = strDateToCheck.substring(strFormatString.indexOf('mm'), 2);
      } else {
        strMonth = strDateToCheck.substring(strFormatString.indexOf('mmm'), 3);
      }

      strDay = strDateToCheck.substring(strFormatString.indexOf('dd'), 2);
      strYear = strDateToCheck.substring(strFormatString.indexOf('yyyy'), 2);
    } else {
      return false;
    }
  }

  if (strYear.length != 4) {
    return false;
  }

  intday = parseInt(strDay, 10);
  if (isNaN(intday)) {
    return false;
  }
  if (intday < 1) {
    return false;
  }

  intMonth = parseInt(strMonth, 10);
  if (isNaN(intMonth)) {
    for (i=0; i<strMonthArray.length; i++) {
      if (strMonth == strMonthArray[i]) {
        intMonth = i+1;
        break;
      }
    }
    if (isNaN(intMonth)) {
      return false;
    }
  }
  if (intMonth > 12 || intMonth < 1) {
    return false;
  }

  intYear = parseInt(strYear, 10);
  if (isNaN(intYear)) {
    return false;
  }
  if (IsLeapYear(intYear) == true) {
    intDaysArray[1] = 29;
  }

  if (intday > intDaysArray[intMonth - 1]) {
    return false;
  }
  
  return true;
}

function IsLeapYear(intYear) {
  if (intYear % 100 == 0) {
    if (intYear % 400 == 0) {
      return true;
    }
  } else {
    if ((intYear % 4) == 0) {
      return true;
    }
  }

  return false;
}

function debug_listing(div_id)
{
	if(document.getElementById(div_id).style.display=='none')
	{
		document.getElementById(div_id).style.display='block';
	}
	else
	{
		document.getElementById(div_id).style.display='none';
	}
}

function affiche_pad_center(url, label, img)
{
	document.getElementById('pad_center').innerHTML = "<a href='"+url+"' title='"+label+"'><img src='"+img+"' alt='"+label+"' title='"+label+"' border='0'/></a>";
}

function affiche_tag_image(img, lien)
{
	document.getElementById('tag_image').src = img;
	document.getElementById('tag_link').href = lien;
}

function show_div(div_id)
{
	document.getElementById(div_id).style.display='block';
}

function hide_div(div_id)
{
	document.getElementById(div_id).style.display='none';
}

/*==== Focus sur les fields ====*/
function GetFocus(field) {
	if (field.value==field.title) {field.value=''}
}

/*==== Blur sur les fields ====*/
function GetBlur (field) {
	if (field.value=='') {
		field.value=field.title;
	} 
}

//SSMENU
function activeButton(id_button, color)
{
	document.getElementById(id_button).className= color+' active'+color;
}
function disactiveButton(id_button, color)
{
	document.getElementById(id_button).className= color;
}
function hideSubMenu(id_ssmenu)
{
	document.getElementById(id_ssmenu).style.display= "none";
}
function showSubMenu(id_ssmenu)
{
	document.getElementById(id_ssmenu).style.display= "block";
}

//Scroll les marques
var timerMarquesDuree = 7000;
function scrollMarques(sens)
{
	var scroller = document.getElementById('viewer');
	var current_x = document.getElementById('current_x').value;
	current_x = parseInt(current_x);
  var cible_x = scroller.offsetLeft;
  var cible_y = scroller.offsetTop;
	
	var pas = 211;
	
  if(sens=="next" && current_x < 840)
  {
  	cible_x = current_x+pas;
  }
  if(sens=="prev")
  {
  	if(current_x > 2)
  	{
  		cible_x = current_x-pas;
  	}
	  if(current_x == 2)
	  {
	  	cible_x = 846;
	  }
  }

	var scrolling = new Fx.Scroll(scroller,
	{
		duration: 400,
		onComplete: function()
		{
			//alert(cible_x);
			document.getElementById('current_x').value = cible_x;
			clearInterval(timerMarques);
			timerMarques =  setInterval("scrollMarques('next')", timerMarquesDuree);
		}
	} );

	scrolling.scrollTo(cible_x, cible_y);
}

//Scroll Pad-home
var timerHomeDuree = 6000;
function scrollPadHome(id_cible, onAction)
{
	var cible = 'home_img'+id_cible;
	document.getElementById(cible).style.visibility = "hidden";
	document.getElementById(cible).style.zIndex = 1000;
	
	if(onAction=="click")
	{
		resetScrollPadHome();
	}
			
	var FxAlphaHome = new Fx.Style(cible, 'opacity', {
		duration:600,
		wait:false,
		onComplete: function()
		{
			document.getElementById('home_current_img').value = id_cible;

			//Desactive le pictos
			var pad_ids = document.getElementById('home_all_img').value;
			var home_ids = pad_ids.split("-");
			if(pad_ids!="")
			{
				for(i=1; i<home_ids.length; i++)
				{
					document.getElementById('home_pic'+home_ids[i]).src="images/pad_home_btn.gif";
				}
			}
			
			//Active le current pitco
			document.getElementById('home_pic'+id_cible).src="images/pad_home_btn_on.gif";
			
			clearInterval(timerHome);
			timerHome = setInterval("InitScrollPadHome('notfirst')", timerHomeDuree);
		}
	} );
	
	FxAlphaHome.start(0,1);
	
/*
	var cible = 'home_img'+id_cible;
	var scroller = document.getElementById('viewer-home');
	var scrolling = new Fx.Scroll(scroller,
	{
		duration: 600,
		onComplete: function()
		{
			document.getElementById('home_current_img').value = id_cible;
						
			clearInterval(timerHome);
			timerHome = setInterval("InitScrollPadHome()", timerHomeDuree);
		}
	} );

	scrolling.toElement(cible);
*/
}

function InitScrollPadHome(first)
{
	//Converti la chaine en array
	var pad_ids = document.getElementById('home_all_img').value;
	var home_ids = pad_ids.split("-");
	
	var home_current_img = document.getElementById('home_current_img').value;

	var z_index = 100;
	
	if(pad_ids!="")
	{
		for(i=1; i<home_ids.length; i++)
		{
			document.getElementById('home_img'+home_ids[i]).style.zIndex = z_index-i;
			document.getElementById('home_img'+home_ids[i]).style.visibility = 'hidden';
		}
		
		for(i=1; i<home_ids.length; i++)
		{
			if(home_ids[i]==home_current_img)
			{
				if(first=='first')
				{
					scrollPadHome(home_ids[i]);
				}
				if(first=='notfirst')
				{
					if(i < home_ids.length-1)
					{
						scrollPadHome(home_ids[i+1]);
					}
					if(i == home_ids.length-1)
					{
						scrollPadHome(home_ids[1]);	
					}
				}
			}
		}
	}

}

//Reinitialise toutes IMG
function resetScrollPadHome()
{
	//Converti la chaine en array
	var pad_ids = document.getElementById('home_all_img').value;
	var home_ids = pad_ids.split("-");
	
	var z_index = 100;
	
	if(pad_ids!="")
	{
		for(i=1; i<home_ids.length; i++)
		{
			document.getElementById('home_img'+home_ids[i]).style.zIndex = z_index-i;
			document.getElementById('home_img'+home_ids[i]).style.visibility = 'hidden';
		}
	}
}

//Scroll les marques
function scrollMustHave(sens)
{
	var scroller = document.getElementById('viewer-must');
	var current_x = document.getElementById('must_current_x').value;
	current_x = parseInt(current_x);
	
	var all_pas = document.getElementById('must_all').value;
	all_pas = parseInt(all_pas);
	all_pas = (all_pas-1);
  var cible_x = scroller.offsetLeft;
  var cible_y = scroller.offsetTop;
	
	//var pas = 683;
	var pas = 741;
	
	var new_current_x = current_x;
	
  if(sens=="next")
  {
  	if(current_x < all_pas)
  	{
  		new_current_x++;
			cible_x = new_current_x*pas;
		}
  	if(current_x == all_pas)
  	{
			cible_x = 0;
			new_current_x = 0;
		}
  }
  
  if(sens=="prev")
  {
  	if((current_x) > 0)
  	{
  		new_current_x--;
  		cible_x = new_current_x*pas;
  	}
	  if(current_x == 0)
	  {
	  	cible_x = all_pas*pas;
	  	new_current_x = all_pas;
	  }
  }

	var scrolling = new Fx.Scroll(scroller,
	{
		duration: 800,
		onComplete: function()
		{
			document.getElementById('must_current_x').value = new_current_x;
		}
	} );

	scrolling.scrollTo(cible_x, cible_y);
}

/*==== Tips pour product listing ====*/
fromLeft=10;
fromTop=10;

function checkBrowser()
{
	this.ver=navigator.appVersion
	this.dom=document.getElementById?1:0
	this.ie5=(this.ver.indexOf("MSIE 5")>-1 & this.dom)?1:0;
	this.ie4=(document.all & !this.dom)?1:0;
	this.ns5=(this.dom & parseInt(this.ver) >= 5) ?1:0;
	this.ns4=(document.layers & !this.dom)?1:0;
	this.bw=(this.ie5 || this.ie4 || this.ns4 || this.ns5)
	return this
}

bw=new checkBrowser()

function tipInit(tipId)
{
	var divTip = document.getElementById('divTip'+tipId).style.display = "block";
	
	oTip=new makeTipObj('divTip'+tipId);
	scrolled=bw.ns4 || bw.ns5?"window.pageYOffset":"document.body.scrollTop"
	
	if(navigator.appName.substring(0,3) == "Net")
		document.captureEvents(Event.MOUSEMOVE);
	document.onmousemove = move;
}
function tipInitHome(tipId)
{
	var divTip = document.getElementById('divTip'+tipId).style.display = "block";
	
	oTip=new makeTipObj('divTip'+tipId);
	scrolled=bw.ns4 || bw.ns5?"window.pageYOffset":"document.body.scrollTop"
	
	if(navigator.appName.substring(0,3) == "Net")
		document.captureEvents(Event.MOUSEMOVE);
	document.onmousemove = moveHome;
}
function makeTipObj(obj,nest)
{
	nest=(!nest) ? '':'document.'+nest+'.'
	    this.css=bw.dom? document.getElementById(obj).style:bw.ie4?document.all[obj].style:bw.ns4?eval(nest+"document.layers." +obj):0;
	this.moveIt=b_moveIt;
	return this
}

function b_moveIt(x,y)
{
	this.x=x;
	this.y=y;
	this.css.left=this.x;
	this.css.top=this.y
}

function move(e)
{		
	x = (navigator.appName.substring(0,3) == "Net") ? e.pageX : event.x+document.body.scrollLeft;
	y = (navigator.appName.substring(0,3) == "Net") ? e.pageY : event.y+document.body.scrollTop;
	
	//Hack Firefox
	if(navigator.appName.substring(0,3) == "Net")
	{
		if(navigator.platform.substring(0,3) == "Mac")
		{
			//x = x-350;
			x = x-240;
		}
		else
		{
			x = x-240;
		}
	}
	
	x = x+fromLeft+"px";
	y = y+fromTop+"px";
	
	oTip.moveIt(x,y);
}

function moveHome(e)
{		
	x = (navigator.appName.substring(0,3) == "Net") ? e.pageX : event.x+document.body.scrollLeft;
	y = (navigator.appName.substring(0,3) == "Net") ? e.pageY : event.y+document.body.scrollTop;
	
	//Hack Firefox
	if(navigator.appName.substring(0,3) == "Net")
	{
		if(navigator.platform.substring(0,3) == "Mac")
		{
			//x = x-350;
			x = x-240;
			y = y-180;
		}
		else
		{
			x = x-250;
			y = y-180;
		}
	}
	
	x = x+fromLeft+"px";
	y = y+fromTop+"px";
	
	oTip.moveIt(x,y);
}

function tipOff(tipId)
{
	document.getElementById('divTip'+tipId).style.display = "none";
}


//Product info onglets details
function showProdDetail(pad, lk)
{
	//Cache les pads
	document.getElementById('det_desc').style.display="none";
	document.getElementById('det_livraison').style.display="none";
	document.getElementById('det_retours').style.display="none";
	
	//Desactive les onglets
	document.getElementById('lk_det_desc').className="";
	document.getElementById('lk_det_livraison').className="";
	document.getElementById('lk_det_retours').className="";
	
	//Montre le pad actif + active l'onglet choisi
	document.getElementById(pad).style.display="block";
	lk.className="active";
}


/********************************debut fonctions AJAX********************************/
function ajax_products_listing(sess_id, num_page)
{
		
	var postUrl = 'ajax_products_listing.php';
	var current_list = $('current_list_id').value;
	var type_order = $('type_order').value;
	var data = 'osCsid='+sess_id+'&page='+num_page+'&type_order='+type_order+'&pid_listing='+current_list;
	
	var zone_a_charger = $('ajax_div_products_listing');

	// Ajax Loader
	zone_a_charger.innerHTML = '<div class="ajax-loader" align="center"><img src="images/ajax-loader.gif" alt=""/></div>';
		
	var onSuccess = function (t)
	{		
		//alert(t);
		var el = zone_a_charger;
		el.style.display = "block";
		el.innerHTML = t;
		scrollWindow('content');
	}
		
	var myAjax = new Ajax(postUrl, {method:'post', data: data, onSuccess: onSuccess});
	myAjax.request();	
	
}

function ajax_change_order(sess_id, order_field, order_value)
{
	$('type_order').value = order_field+"|"+order_value;
	ajax_products_listing(sess_id, '1')
}


function ajax_similar_products(sess_id, pid, cid, color_id, taille_id)
{
	var postUrl = 'ajax_similar_products.php';

	var data = 'osCsid='+sess_id+'&current_pid='+pid+'&current_cid='+cid+'&current_color_id='+color_id+'&current_taille_id='+taille_id;
	
	var zone_a_charger = $('ajax_div_similar_products');

	// Ajax Loader
	zone_a_charger.innerHTML = '<div class="ajax-loader" align="center"><img src="images/ajax-loader.gif" alt=""/></div>';
		
	var onSuccess = function (t)
	{		
		//alert(t);
		var el = zone_a_charger;
		el.style.display = "block";
		el.innerHTML = t;
	}
		
	var myAjax = new Ajax(postUrl, {method:'post', data: data, onSuccess: onSuccess});
	myAjax.request();		
}

function ajax_modif_panier(sess_id,action)
{
	var postUrl = 'ajax_modif_panier.php';
	var products_id = $('products_id').value;
	var opt_id = $('products_opt_id').value;
	var opt_valid = $('products_opt_valid').value;
	
	var data = 'osCsid='+sess_id+'&action='+action+'&products_id='+products_id+'&opt_id='+opt_id+'&opt_valid='+opt_valid;
	
	var zone_a_charger = $('ajax_shopping_cart_center');

	// Ajax Loader
	zone_a_charger.innerHTML = '<div class="ajax-loader" align="center"><img src="images/ajax-loader.gif" alt=""/></div>';
		
	var onSuccess = function (t)
	{		
		ajax_reload_panier(sess_id);
		var el = zone_a_charger;
		el.style.display = "block";
		el.innerHTML = t;
	}
		
	var myAjax = new Ajax(postUrl, {method:'post', data: data, onSuccess: onSuccess, evalScripts: true});
	myAjax.request();		
}

//Effet transition alpha
function alphaPanierCenter(div, divContener)
{
	var FxAlpha = new Fx.Style(div, 'opacity', {
		duration:400,
		wait:false,
		onComplete: function()
		{
			clearInterval(timerPanier);
			$(divContener).style.display="none";
		}
	} );
	
	FxAlpha.start(1,0);
}

function centrerPad(pad)
{
	//Check la hauteur du scroll
	var hauteur = (document.documentElement && document.documentElement.scrollTop) || window.pageYOffset || self.pageYOffset || document.body.scrollTop;
	if(document.getElementById(pad))
		document.getElementById(pad).style.top = hauteur+"px";
}

//RollOver Top panier
function showTopCart() {
	document.getElementById('cart_top_detail').style.display = "block";
	document.getElementById('lk_cart_top_detail').className = "active";
}
function hideTopCart() {
	document.getElementById('cart_top_detail').style.display = "none";
	document.getElementById('lk_cart_top_detail').className = "";
}

function ajax_reload_panier(sess_id)
{
	var postUrl = 'ajax_reload_panier.php';
	
	var data = 'osCsid='+sess_id;
	
	var zone_a_charger = $('ajax_header_panier');

	// Ajax Loader
	zone_a_charger.innerHTML = '<div class="ajax-loader" align="center"><img src="images/ajax-loader.gif" alt=""/></div>';
		
	var onSuccess = function (t)
	{		
		var el = zone_a_charger;
		el.style.display = "block";
		el.innerHTML = t;
	}
		
	var myAjax = new Ajax(postUrl, {method:'post', data: data, onSuccess: onSuccess});
	myAjax.request();		
}

/******************************** fin fonctions AJAX ********************************/

function prod_change_taille(opt_id, opt_valid, alt)
{
	//Ecrit les valeurs courantes dans le hidden
	$('products_opt_id').value = opt_id;
	$('products_opt_valid').value = opt_valid;
	
	//desactive toutes les tailles
	if(document.getElementById('taille_1'))
	{
		document.getElementById('taille_1').className="";
	}
	if(document.getElementById('taille_2'))
	{
		document.getElementById('taille_2').className="";
	}
	if(document.getElementById('taille_3'))
	{
		document.getElementById('taille_3').className="";
	}
	if(document.getElementById('taille_4'))
	{
		document.getElementById('taille_4').className="";
	}
	if(document.getElementById('taille_5'))
	{
		document.getElementById('taille_5').className="";
	}
	if(document.getElementById('taille_6'))
	{
		document.getElementById('taille_6').className="";
	}
	
	//Active le taille choisi
	document.getElementById('taille_'+opt_valid).className="active";
	
	//Affiche le libellé des stocks restants
	document.getElementById('label_stock').innerHTML = alt;
}


function check_taille(formulaire)
{
	if( ($('products_opt_id').value=="0") || ($('products_opt_valid').value=="0") )
	{
		alert("Veuillez choisir une taille !");
	}
	else
	{
		eval('document.'+formulaire+'.submit();');
	}
}

//Scroll la fenetre
function scrollWindow(cible)
{
	var scrollWindow = new Fx.Scroll(window).toElement(cible);
}

//Div FAQ visible
function toggleDivVisible (div)
{
	div  = (document.layers) ? document.layers[div] : document.getElementById(div);
	if (div.style.display=='block') div.style.display='none'; 
	else div.style.display='block';
}

//Scroll Pad Viewed products
function scrollPad(padCible, btn) {

	var myPad = document.getElementById('tab-viewed');
	var cible = document.getElementById(padCible);
	
	//Récupère les coordonnées x y
	var cible_x = cible.offsetLeft;
	var cible_y = myPad.offsetTop;

	var scrolling = new Fx.Scroll(myPad,
	{
		duration: 600,
		onComplete: function()
		{

		}
	} );

	scrolling.toElement(cible);
	/*
	scrolling.scrollTo(cible_x, false).chain(function () {
			scrolling.scrollTo(cible_x, cible_y);
		});	
	*/
	if(btn=='left')
	{
		document.getElementById('btn-viewed-right').style.display = "block";
		document.getElementById('btn-viewed-left').style.display = "none";
	}
	if(btn=='right')
	{
		document.getElementById('btn-viewed-right').style.display = "none";
		document.getElementById('btn-viewed-left').style.display = "block";
	}
}

//Scroll Pad Suggest products
function scrollPadSuggest(padCible, btn) {

	var myPad = document.getElementById('tab-suggest');
	var cible = document.getElementById(padCible);
	
	//Récupère les coordonnées x y
	var cible_x = cible.offsetLeft;
	var cible_y = myPad.offsetTop;

	var scrolling_suggest = new Fx.Scroll(myPad,
	{
		duration: 600,
		onComplete: function()
		{

		}
	} );

	scrolling_suggest.toElement(cible);
	/*
	scrolling.scrollTo(cible_x, false).chain(function () {
			scrolling.scrollTo(cible_x, cible_y);
		});	
	*/
	if(btn=='left')
	{
		document.getElementById('btn-suggest-right').style.display = "block";
		document.getElementById('btn-suggest-left').style.display = "none";
	}
	if(btn=='right')
	{
		document.getElementById('btn-suggest-right').style.display = "none";
		document.getElementById('btn-suggest-left').style.display = "block";
	}
}