function chk_date(objName) {
var strDate;
var strDateArray;
var strDay;
var strMonth;
var strYear;
var intday;
var intMonth;
var intYear;
var booFound = false;
var datefield = objName;
var strSeparatorArray = new Array("-"," ","/",".");
var intElementNr;
var err = 0;

	strDate = datefield.value;	
	if (strDate.length < 1) {
		return true;
	}	
	if (strDate.length != 10) {
		return false;
	}	
	for (intElementNr = 0; intElementNr < strSeparatorArray.length; intElementNr++) {
		if (strDate.indexOf(strSeparatorArray[intElementNr]) != -1) {
			strDateArray = strDate.split(strSeparatorArray[intElementNr]);
			if (strDateArray.length != 3) {
				err = 1; 
				return false;
			}
			else {
				strDay = strDateArray[0];
				strMonth = strDateArray[1];
				strYear = strDateArray[2];
			}
			booFound = true;
		}
	}	
	if (booFound == false) {
		return false;
	}			
	intday = parseInt(strDay, 10);
	if (isNaN(intday)) {
		err = 2; 
		return false;
	}
	intMonth = parseInt(strMonth, 10);
	if (isNaN(intMonth)) {				
		err = 3; 
		return false;		
	}
	intYear = parseInt(strYear, 10);
	if (isNaN(intYear)) {
		err = 4; 
		return false;
	}
	if (intYear < 2000) {
		err = 4;
		return false;
	}
	if (intMonth>12 || intMonth<1) {
		err = 5; 
		return false;
	}
	if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 1)) {
		err = 6; 
		return false;
	}
	if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intday > 30 || intday < 1)) {
		err = 7;
		return false;
	}
	if (intMonth == 2) {
		if (intday < 1) {
			err = 8;
			return false;
		}
		if (LeapYear(intYear) == true) {
			if (intday > 29) {
				err = 9;
				return false;
			}
		}
		else {
			if (intday > 28) {
				err = 10;
				return false;
			}
		}
	}
	return true;
}

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

function test_date(obj_name, msgInvalidDate)
{		
	if (!chk_date(obj_name))
	{
		alert(msgInvalidDate);
		obj_name.focus();
		return false;
	}						
	return true;
}

function SubmitPageNrChange()
{
	var pageTo = 0;
	var intPageTo = 0;
	var maxPageNr = 0;
	var intMaxPageNr = 0;
	var isNumber = true
	
	//alert('nveau pageTo:' + document.forms['pagination'].elements['quickPagination'].value);
	
	
	if (document.forms['pagination'].elements['fastPagination'])
	{
		pageTo = document.forms['pagination'].elements['fastPagination'].value;
	}
	
	if (document.getElementById('maxPageNr'))
	{
		maxPageNr = document.getElementById('maxPageNr').value;
	}
	//alert('pageTo: ' + pageTo);
	//alert('pageMax: ' + maxPageNr);
	
	if (IsNumeric(pageTo))
	{
		intPageTo = parseInt(pageTo);
		intMaxPageNr = parseInt(maxPageNr);
		
		if((intPageTo > 0) && (pageTo.length > 0) && (intPageTo <= intMaxPageNr))
		{
			document.getElementById('pagePagination').value = pageTo;
			document.getElementById('pagination').submit();
			
			return false;
		}
		else
		{
			document.getElementById('fastPagination').value = '';
			return false;
		}
	}
	else
	{
		document.getElementById('fastPagination').value = '';
		return false;
	}
}

function IsNumeric(sText)
{
   var ValidChars = "0123456789";
   var IsNumber=true;
   var Char;
 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
}

function PageNrOnChange(event)
{
	var keyCode;          
    if (navigator.appName == "Microsoft Internet Explorer"){
        keyCode = window.event.keyCode;
    }
    else{
        keyCode = event.which;
    }
    
    if(keyCode == 13) {
        if (!SubmitPageNrChange())
        {
        	//document.getElementById('fastPagination').value = '';
        }
        return false;
    }

}

// Dynapresse connection
function initializeDynapresseLink(email, lang)
{
//	if (window.location.pathname.indexOf('nosLivres.html') != -1)
//	{
		// Getting the Dynapresse <a
		//alert('email : ' + email);
		//alert('lang: ' + lang);
		var dynapresseLink = document.getElementById('DynapresseLink');
		
		var jsCall = 'callDynapresseCorner(\'' + lang + '\',\'' + email + '\');'; 
		//alert('jscall: ' + jsCall);
		
		if (dynapresseLink != null)
		{
			// FF
			dynapresseLink.setAttribute('onclick', jsCall);
			dynapresseLink.attributes['onclick'].value = jsCall;
			
			// IE
			dynapresseLink.onclick = function(){callDynapresseCorner(lang, email);};
		}
//	}
}

function callDynapresseCorner(lang, email)
{
	var baseUrl;
	var browser = navigator.appName;
	
	// Temp (for tests)
	//if (email == 'ggr@cdi.ch' || email == 'pan@cdi.ch')
	//	email = '';
	// Temp (for tests)
	
	var notEncryptedParameters = 'utm_source=payot&utm_medium=';
	if (window.location.toString().indexOf('autresProduits') != -1)
		notEncryptedParameters += 'link_nosautresproduits';
    else
    	notEncryptedParameters += 'link_kiosque';
	notEncryptedParameters += '&utm_campaign=2009_09_22';

	if (lang == 'fr')
		baseUrl = 'http://www.dynapresse.ch/payot/corner-abonnement.aspx';
	else
		baseUrl = 'http://www.dynapresse.ch/payot/en/corner-abonnement.aspx';
	
	var emailParam;
	var timeParam;
	
	
	// email generation
	emailParam = 'em=' + email + '&';
	// email generation
	
	// time generation
	var time = new Date();
	
	var year = time.getYear();
	if(browser != "Microsoft Internet Explorer"){
		year = 1900 + year;
	}
	
	var month = time.getUTCMonth() + 1;
	month = month.toString();
	if (month.length == 1)
		month = '0' + month;
		
	var day = time.getUTCDate().toString();
	if (day.length == 1)
		day = '0' + day;
		
	var hour = time.getUTCHours().toString();
	if (hour.length == 1)
		hour = '0' + hour;
		
	var minute = time.getUTCMinutes().toString();
	if (minute.length == 1)
		minute = '0' + minute;
		
	var second = time.getUTCSeconds().toString();
	if (second.length == 1)
		second = '0' + second;
	timeParam = 'da=' + year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second;
	// time generation

	var finalUrl;
	//alert(email);
	if (email.length == 0){
		finalUrl = baseUrl + '?' + notEncryptedParameters;
	}
	else{
	 	finalUrl = baseUrl + '?' + notEncryptedParameters + '&sso=' + encode64(emailParam + timeParam);// +  getText(paramInBitArray);
	}
	
	//if (email = 'ggr@cdi.ch')
	//	alert(finalUrl);

	window.open(finalUrl);
}

// Base64 encoding
var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
function encode64(input) {
   var output = "";
   var chr1, chr2, chr3;
   var enc1, enc2, enc3, enc4;
   var i = 0;

   do {
      chr1 = input.charCodeAt(i++);
      chr2 = input.charCodeAt(i++);
      chr3 = input.charCodeAt(i++);

      enc1 = chr1 >> 2;
      enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
      enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
      enc4 = chr3 & 63;

      if (isNaN(chr2)) {
         enc3 = enc4 = 64;
      } else if (isNaN(chr3)) {
         enc4 = 64;
      }

      output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2) + 
         keyStr.charAt(enc3) + keyStr.charAt(enc4);
   } while (i < input.length);
   
   return output;
}

