/*
  $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 launch(URL, newName, newFeatures, orgName)
{
  var remote = open(URL, newName, newFeatures);
  if (remote.opener == null)
    remote.opener = window;
  remote.name = orgName;
  return remote;
}

function openWindow(url, w, h, wname) {
  var remote = window.open(url, ( wname == '' ? 'popupWindow' : wname ),'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,copyhistory=no,width=' + w + ',height=' + h + ',screenX=150,screenY=150,top=100,left=100')
	if ( remote != null ) remote.focus();
}

function isValidNumber(e)
{
	if (navigator.appName == 'Netscape')
		kCode = e.which;
	else
		kCode = e.keyCode;
	return (kCode == 27 || kCode == 13 || kCode == 0 || kCode == 8 || (kCode > 47 && kCode < 58));
}

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 countdown_clock(index, duration, format) {
//I chose a div as the container for the timer, but
//it can be an input tag inside a form, or anything
//who's displayed content can be changed through
//client-side scripting.
	html_code = '<div id="countdown_' + index + '"></div>';
	document.write(html_code);
	countdown(index, duration, format);
}

function countdown(index, temp_restant, format)
{
	if(temp_restant < 0) {
		window.location.href = window.location.href;
		temp_restant = 0;
		return;
	}
	switch(format)
	{
		case 0:
		    //The simplest way to display the time left.
		    document.all.countdown.innerHTML = temp_restant + ' s';
		    break;
		case 1:
		    //More datailed.
		    Time_Left = temp_restant;
		    days = Math.floor(Time_Left / (60 * 60 * 24));
		    Time_Left %= (60 * 60 * 24);
		    hours = Math.floor(Time_Left / (60 * 60));
		    Time_Left %= (60 * 60);
		    minutes = Math.floor(Time_Left / 60);
		    seconds = Time_Left;
		    seconds %= 60;

		    dps = 's'; hps = 's'; mps = 's'; sps = 's';
		    //ps is short for plural suffix.
		    if(days == 1) dps ='';
		    if(hours == 1) hps ='';
		    if(minutes == 1) mps ='';
		    if(seconds == 1) sps ='';

		    //document.all.countdown.innerHTML = days + ' jours' + dps + ' ';
		    eval('document.getElementById(\'countdown_' + index + '\').innerHTML = (days > 0?days + \' jour'+ dps +' \':\'\');');
		    eval('document.getElementById(\'countdown_' + index + '\').innerHTML += (hours < 10?\'0\' + hours:hours) + \'h \';');
		    eval('document.getElementById(\'countdown_' + index + '\').innerHTML += (minutes < 10?\'0\' + minutes:minutes) + \'m \'');
		    eval('document.getElementById(\'countdown_' + index + '\').innerHTML += (seconds < 10?\'0\' + seconds:seconds) + \'s\'');
		    //eval('document.all.countdown_' + index + '.innerHTML') += (seconds < 10?'0' + seconds:seconds);
		    break;
		default: 
		    document.getElementById('countdown_').innerHTML = temp_restant + ' s';
	}
     
//Recursive call, keeps the clock ticking.
	setTimeout('countdown(' + index + ',' + (temp_restant - 1) + ',' + format + ');', 1000);
}

var dis_i = '';
var dis_j = '';
var cache = false;

function ag(i,j) {
	if (j!='') {document.getElementById(j).style.display='block';}
	if (i != dis_i && j != dis_j && dis_j != ''){document.getElementById(dis_j).style.display='none';}
	dis_i = i;
	dis_j = j;
}
function b(j) {
	j.className = 'n1';
	setTimeout('if(cache){document.getElementById('+j+').style.display=\'none\';}',1000);
}
function hg(i) {i.className = 'n1';}
function keep(val, val2, sfam) {
	if(val2 == 2) {
		document.getElementById('fam' + val).style.backgroundColor=document.getElementById('fam' + val).style.color=document.getElementById('menu').style.color;
		//document.getElementById('fam' + val).style.color="#FFFFFF";
	} else {
		if (document.getElementById('fam' + val).className != 'n1_selected') {
			document.getElementById('fam' + val).style.backgroundColor="#23579E";
			//document.getElementById('fam' + val).style.color="#FFFFFF";
		}
	}
}
function undo(val) {
	if (document.getElementById('fam' + val).className != 'n1_selected') {
		//document.getElementById('fam' + val).style.backgroundColor='#FFFFFF';
		document.getElementById('fam' + val).style.color=document.getElementById('menu').style.color;
	}
}

function demarche(page) { window.open(page,'demarche','width=400,height=400,toolbar=false,scrollbars=false');	}
function calculette(page) { window.open(page,'calculette','width=600,height=495,toolbar=false,scrollbars=false');	}
function refresh1eurocom($url) {
	document.getElementById('1euroFrame').innerHTML = "<iframe width='290' height='40' scrolling='no' style='border-width: 0px' frameborder=0 src='"+$url+"'></iframe>";
  return false;
}