
/*********************************
 * PEM EFFECTS @ 2008
 *********************************/
var zeSelects = new Array();
var zeFlashs  = new Array();

var BgOpacity = 60;
var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();

var myBrowser = BrowserDetect.browser;
var myBrowserVersion = BrowserDetect.version;

/*********************************************
*   FONCTION loadPageContent()
**********************************************/
var loadPageContent = function ( PageContent, MyDiv, ActionType ){

  // on appelle l'ajax
  var zeUrl = ASSurl + '?ActionType='+ActionType;


  if ( arguments.length == 4 ){
    var zeFormName = arguments[3];
    var query = GetFormData( zeFormName );
    zeUrl += '&'+query;
  }

  zeUrl += '&PageContent='+PageContent;

  if ( MyDiv == '' ) MyDiv = 'modal_popup';
//  alert( zeUrl + '\n' + MyDiv );
  AjaxRequest( zeUrl, MyDiv );
}


/*********************************************
*   FONCTION hideModalPopup()
**********************************************/
function hideModalPopup(){

  var zePopup = document.getElementById('modal_popup');
  var zeModal = document.getElementById('modal_bg');

  hideMe( zeModal );
  hideMe( zePopup );
/*  fadeElement( 'modal_bg' );*/

  // nous rétablissons la page
  enableSelectsAndFlashs();

}


/*********************************************
*   FONCTION showModal()
**********************************************/
function showModal( zePopup ){

  // nous nettoyons la page
  disableSelectsAndFlashs();

  var myel = document.getElementById( 'modal_bg' );
  myel.style.display="block";
  // en fonction du navigateur, la transparence n'est pas gérée de la même façon

  if ( myBrowser == 'Safari' || myBrowser == 'Konqueror' ){
    myel.style.opacity = ( BgOpacity / 100 );
    myel.style.KhtmlOpacity = (BgOpacity / 100);
  }else{
    if( myBrowser == 'Explorer' ){
      myel.style.filter = "alpha(opacity=" + BgOpacity + ")";
    }else{
      myel.style.MozOpacity = ( BgOpacity / 100 );
      myel.style.opacity = ( BgOpacity / 100 );
    }
  }

	array_page_size = getPageSize();
	array_page_scroll = getPageScroll();

  myel.style.width  = array_page_size[0]+'px';
	myel.style.height = array_page_size[1]+'px';

  zePopup.style.visibility = 'hidden';
  zePopup.style.display = 'block';
/*
  alert( zePopup.style.height );
  alert( zePopup.offsetHeight );
*/
  setTimeout( 'calcPopupPos( \'' + zePopup.id + '\', \'' + array_page_size[0] + '\', \'' + array_page_size[3] + '\', \'' + array_page_scroll[1] + '\' )', 80 );
//  calcPos( zePopup, array_page_size, array_page_scroll );
}


/*********************************************
*   FONCTION calcPopupPos()
**********************************************/
function calcPopupPos( zePopupId, array_page_size0, array_page_size3, array_page_scroll ){

  var zePopup = document.getElementById( zePopupId );

	var middleHeight = ( ( array_page_size3 * 1 ) / 2 ) - ((zePopup.offsetHeight * 1)/1.8);
//  alert( ( ( array_page_size3 * 1 ) / 2 ) +'\n'+ middleHeight +'\n'+ array_page_scroll + '\n'+ ((zePopup.offsetHeight * 1)/1.5) );
  var zeTop   = ( ( array_page_scroll * 1 ) + ( middleHeight * 1 ) );
//  alert( array_page_scroll + ' + ' + middleHeight );
	var zeLeft  = ( ( array_page_size0 * 1 ) / 2 - ( ( zePopup.offsetWidth * 1 ) / 2 ) );
	zePopup.style.top  = zeTop   + 'px';// 200 pour la marge top
	zePopup.style.left = zeLeft  + 'px';
  zePopup.style.visibility = 'visible';

}


/*********************************************
*   FONCTION checkAddAddressForm()
**********************************************/
function checkAddAddressForm(){

  if ( document.getElementById('gender_m').checked == false && document.getElementById('gender_f').checked == false ){
    alert( 'La civilité doit être renseignée' );
    return false;
  }

  if ( document.getElementById('firstname').value == "" ){
    alert( 'Le prénom doit être renseigné' );
    return false;
  }

  if ( document.getElementById('lastname').value == "" ){
    alert( 'Le nom doit être renseigné' );
    return false;
  }

  if ( document.getElementById('street_address').value == "" ){
    alert( 'L\'adresse doit être renseignée' );
    return false;
  }

  if ( document.getElementById('postcode').value == "" ){
    alert( 'Le code postal doit être renseigné' );
    return false;
  }

  if ( document.getElementById('city').value == "" ){
    alert( 'La ville doit être renseignée' );
    return false;
  }

  if ( document.getElementById('country').options[document.getElementById('country').selectedIndex].value == "" ){
    alert( 'Le pays doit être renseigné' );
    return false;
  }

  document.getElementById('checkout_address').submit();

}


/*********************************************
*   FONCTION disableSelectsAndFlashs()
**********************************************/
function disableSelectsAndFlashs(){

  var i = 0;
  var j = 0;

  var tempArr = new Array();

  // nous récupérons tous les selects
  var zeSels = document.getElementsByTagName( 'SELECT' );
  for ( i = 0; i < zeSels.length; i++ ){
//    alert( zeSels[i].name );
    if ( zeSels[i].style.display != 'none' ){
      if ( zeSels[i].style.display == '' ) zeSels[i].style.display = 'block';
      tempArr['num']    = i;
      tempArr['style']  = zeSels[i].style.display;
      zeSelects[j] = Aclone(tempArr);
      zeSels[i].style.display = 'none';
      j++;
    }
  }

  // nous récupérons tous les flash
  var zeFlas = document.getElementsByTagName( 'OBJECT' );
  j = 0;
  for ( var i = 0; i < zeFlas.length; i++ ){
    if ( zeFlas[i].style.display != 'none' ){
      tempArr['num']    = i;
      tempArr['style']  = zeFlas[i].style.display;
      zeFlashs[j] = Aclone(tempArr);
      zeFlas[i].style.display = 'none';
      j++;
    }
  }

}

function Oclone(MyObject){
	var o = new Object(); 
	for (var property in MyObject) {
		o[property] = typeof (MyObject[property]) == 'object' ? MyObject[property].clone() : MyObject[property];
	} 
	return o;	
}
function Aclone(MyArray){
	var a = new Array(); 
	for (var property in MyArray) {
		a[property] = typeof (MyArray[property]) == 'object' ? MyArray[property].clone() : MyArray[property];
	} 
	return a;	
}


/*********************************************
*   FONCTION enableSelectsAndFlashs()
**********************************************/
function enableSelectsAndFlashs(){

  var i = 0;
  var tempArr = new Array();

  // nous récupérons tous les selects
  var zeSels = document.getElementsByTagName( 'SELECT' );
  for ( i = 0; i < zeSelects.length; i++ ){
    tempArr = zeSelects[i];
//    alert( zeSelects[i]['num'] + '\n' + zeSels[zeSelects[i]['num']].name + '\n' + tempArr["num"] );
    zeSels[zeSelects[i]['num']].style.display = zeSelects[i]['style'];
  }

  // nous récupérons tous les flashs
  var zeFlas = document.getElementsByTagName( 'OBJECT' );
  for ( i = 0; i < zeFlashs.length; i++ ){
    zeFlas[zeFlashs[i]['num']].style.display = zeFlashs[i]['style'];
  }

}

/*********************************************
*   FONCTION GetFormData( zeFormName )
**********************************************/
function GetFormData( zeFormName ) {

  var theform = document.getElementById( zeFormName );
  var els = theform.elements;
  var len = els.length;
  var queryString = "";

  this.addField =
    function(name,value,text) {
      if (queryString.length>0) {
        queryString += "&";
      }
	  queryString += escape(name) + "=" + escape(value);//encodeURIComponent
    };
  for (var i=0; i<len; i++) {
    var el = els[i];
    if (!el.disabled) {
      switch(el.type) {
        case 'text': case 'password': case 'hidden': case 'textarea':
		  this.addField(el.name,el.value,el.text);
          break;
        case 'select-one':
          if (el.selectedIndex>=0) {
            this.addField(el.name,el.options[el.selectedIndex].value);
          }
          break;
        case 'select-multiple':
          for (var j=0; j<el.options.length; j++) {
            if (el.options[j].selected) {
              this.addField(el.name,el.options[j].value);
            }
          }
          break;
        case 'checkbox': case 'radio':
          if (el.checked) {
            this.addField(el.name,el.value);
          }
          break;
      }
    }
  }
  //alert('queryString='+queryString);
  delete theform;
  delete els;
  delete len;

  return queryString;
}

//Object.prototype.clone = function () {var o = new Object(); for (var property in this) {o[property] = typeof (this[property]) == 'object' ? this[property].clone() : this[property]} return o}
//Array.prototype.clone = function () {var a = new Array(); for (var property in this) {a[property] = typeof (this[property]) == 'object' ? this[property].clone() : this[property]} return a}

function refreshCartBox(){

  var zeCartBox = document.getElementById('box_spcCart');
  if ( zeCartBox != null && zeCartBox != 'undefined' ){
    // animation de la box qui va dans le panier plus refresh du panier
    zeCartBox.innerHTML           = '<img src="images/design/loading.gif" style="vertical-align:middle;"/>';
    loadPageContent( 'includes/boxes/shopping_cart.php', 'box_spcCart', 'loadpage&glob=cart|new_products_id_in_cart|currencies' );
//    zeCartBox.style = oldStyle;
    hideModalPopup();
  }else{
    hideModalPopup();
  }

}