/***************************************
// @author: Alfred Dagenais <adwebmaster@gmail.com>
// @copyright: Alfred Dagenais
***************************************/

function highlight(field) {
  field.focus();
  field.select();
};

function URLDecode (encodedString) {
	var output = encodedString;
	var binVal, thisString;
	var myregexp = /(%[^%]{2})/;
	while ((match = myregexp.exec(output)) != null
             && match.length > 1
             && match[1] != '') {
		binVal = parseInt(match[1].substr(1),16);
		thisString = String.fromCharCode(binVal);
		output = output.replace(match[1], thisString);
	}
	return output;
};

function URLEncode (clearString) {
	var output = '';
	var x = 0;
	clearString = clearString.toString();
	var regex = /(^[a-zA-Z0-9_.]*)/;
	while (x < clearString.length) {
		var match = regex.exec(clearString.substr(x));
		if (match != null && match.length > 1 && match[1] != '') {
			output += match[1];
			x += match[1].length;
		} else {
			if (clearString[x] == ' '){
				output += '+';
			}else {
				var charCode = clearString.charCodeAt(x);
				var hexVal = charCode.toString(16);
				output += '%' + hexVal.toUpperCase();
			}
			x++;
		}
	}
	return output;
};


function createXHR() {
    var request = false;
        try {
            request = new ActiveXObject('Msxml2.XMLHTTP');
        }
        catch (err2) {
            try {
                request = new ActiveXObject('Microsoft.XMLHTTP');
            }
            catch (err3) {
		try {
			request = new XMLHttpRequest();
		}
		catch (err1) 
		{
			request = false;
		}
            }
        }
    return request;
};

function IsNumeric(inputVal) {
     if (isNaN(parseFloat(inputVal))) {
          return false;
     }
     return true
};


var scrCountdownImg = '';
var publishCounterInProgress = false;
function publishCounter(){
	var erreur = false;
	
	ElementId('insertCode').style.display = 'none';
	ElementId('loader').style.display = 'block';
	
	if(!erreur && !publishCounterInProgress){
		//Si il n'y a pas d'erreur niveau JS on continu
		
		content = 'elreq='+URLEncode(scrCountdownImg)+
			'&submited=send' +
			'&secure_action=' + secure_action;		
		var xhr = createXHR();
		xhr.onreadystatechange=function(){ 
			if(xhr.readyState == 4){
				var response = xhr.responseText;
				resNum = IsNumeric(response);
				if(resNum == false){
					alert(xhr.responseText);
					ElementId('loader').style.display = 'none';
				}else{
					var d = new Date();
					distImg = '/img/' + response + '.jpg';
					
					//Print result
					var resultXhtml = '<a href="'+ serverName +'" onclick="window.open(this.href,\'_blank\');return false;" title="'+ countdown_alt_img +'"><img src="'+ serverName + distImg + '" alt="'+ countdown_alt_img +'" /></a>';
					ElementId('resultXhtml').value = resultXhtml;
					
					var resultHtml = '<a href="'+ serverName +'" target="_blank" title="'+ countdown_alt_img +'"><img src="'+ serverName + distImg + '" alt="'+ countdown_alt_img +'" /></a>';
					ElementId('resultHtml').value = resultHtml;
					
					var resultForum1 = '[url='+ serverName +'][img]'+ serverName + distImg + '[/img][/url]';
					ElementId('resultForum1').value = resultForum1;
					
					var resultForum2 = '[URL='+ serverName +'][IMG]'+ serverName + distImg + '[/IMG][/URL]';
					ElementId('resultForum2').value = resultForum2;
					
					var resultURL = '' + serverName + distImg + '';
					ElementId('resultURL').value = resultURL;
					
					ElementId('loader').style.display = 'none';
					ElementId('insertCode').style.display = 'block';
					
					ElementId('imgTest').src = '/img_r/' + response + '.jpg' + "/recalcul/" + d.getTime();
					
					publishCounterInProgress = false;
				}
			}
		};
		
		xhr.open("POST", '/home/get_id_image', true);
		xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		xhr.send(content);
		publishCounterInProgress = true;
	}
	
};

function ElementId(el){
	return document.getElementById(el);
};

function reloadImg(){
	var img = ElementId('resultImage');
	var demain=new Date();
	var date_jour = demain.getDate();
	var date_mois = demain.getMonth() + 1;
	var date_annee = demain.getFullYear();
	var date_heure = demain.getHours();
	var date_minute = demain.getMinutes();
	var date_seconde = demain.getSeconds();
	
	var texte_perso_jour = '';
	var texte_perso_dodo = '';
	
	var form = document.forms['form_personalization'];
	var elsUrl = new Array();
	
	var dim = form.elements['d'].value.split('-');
	var img_w = dim[0];
	var img_h = dim[1];
		
	img.style.display = 'none';

	for(i=0;i<form.length;i++){
		var elF = form.elements[i];
		
		if(!elF.name || elF.name == ''){
			continue;
		}
		
		var elValue = new Array();
			elValue.push(elF.name);
			elValue.push(elF.value);
		
		/******************/
		/* Cherche la date*/
		if(elF.name == 'date_jour'){
			date_jour = elF.value;
			continue;
		}
		if(elF.name == 'date_mois'){
			date_mois = elF.value;
			continue;
		}
		if(elF.name == 'date_annee'){
			date_annee = elF.value;
			continue;
		}
		if(elF.name == 'date_heure'){
			date_heure = elF.value;
			continue;
		}
		if(elF.name == 'date_minute'){
			date_minute = elF.value;
			continue;
		}
		if(elF.name == 'date_seconde'){
			date_seconde = elF.value;
			continue;
		}
		if(elF.name == 'text_perso_jour'){
			texte_perso_jour = elF.value;
			continue;
		}
		if(elF.name == 'text_perso_dodo'){
			texte_perso_dodo = elF.value;
			continue;
		}
		/******************/
		
		if(elF.type == 'radio'){
			if(elF.checked){
				elsUrl.push(elValue);
			}
		}else{
			elsUrl.push(elValue);
		}
	}
	
	var result = '';
	for(var i=0;i<elsUrl.length;i++){
		
		if(elsUrl[i][1] == '[perso_jour]'){
			elsUrl[i][1] = '_-_jour_-_' + texte_perso_jour;
		}
		
		if(elsUrl[i][1] == '[perso_dodo]'){
			elsUrl[i][1] = '_-_dodo_-_' + texte_perso_dodo;
		}
		
		elsUrl[i][1] = elsUrl[i][1].replace(new RegExp("\n","g"), '[br]');
			
		elsUrl[i][1] = elements_replacement(elsUrl[i][1]);
		
		/////////////
		elsUrl[i][1] = elsUrl[i][1].replace(new RegExp('à',"g"), 'a');
		elsUrl[i][1] = elsUrl[i][1].replace(new RegExp('À',"g"), 'A');
		elsUrl[i][1] = elsUrl[i][1].replace(new RegExp('â',"g"), 'a');
		elsUrl[i][1] = elsUrl[i][1].replace(new RegExp('Â',"g"), 'A');
		elsUrl[i][1] = elsUrl[i][1].replace(new RegExp('ä',"g"), 'a');
		elsUrl[i][1] = elsUrl[i][1].replace(new RegExp('Ä',"g"), 'A');
		elsUrl[i][1] = elsUrl[i][1].replace(new RegExp('æ',"g"), 'a');
		elsUrl[i][1] = elsUrl[i][1].replace(new RegExp('Æ',"g"), 'A');
		elsUrl[i][1] = elsUrl[i][1].replace(new RegExp('ç',"g"), 'c');
		elsUrl[i][1] = elsUrl[i][1].replace(new RegExp('Ç',"g"), 'C');
		elsUrl[i][1] = elsUrl[i][1].replace(new RegExp('é',"g"), 'e');
		elsUrl[i][1] = elsUrl[i][1].replace(new RegExp('É',"g"), 'E');
		elsUrl[i][1] = elsUrl[i][1].replace(new RegExp('è',"g"), 'e');
		elsUrl[i][1] = elsUrl[i][1].replace(new RegExp('È',"g"), 'E');
		elsUrl[i][1] = elsUrl[i][1].replace(new RegExp('ê',"g"), 'e');
		elsUrl[i][1] = elsUrl[i][1].replace(new RegExp('Ê',"g"), 'E');
		elsUrl[i][1] = elsUrl[i][1].replace(new RegExp('ë',"g"), 'e');
		elsUrl[i][1] = elsUrl[i][1].replace(new RegExp('Ë',"g"), 'E');
		elsUrl[i][1] = elsUrl[i][1].replace(new RegExp('î',"g"), 'i');
		elsUrl[i][1] = elsUrl[i][1].replace(new RegExp('Î',"g"), 'I');
		elsUrl[i][1] = elsUrl[i][1].replace(new RegExp('ï',"g"), 'i');
		elsUrl[i][1] = elsUrl[i][1].replace(new RegExp('Ï',"g"), 'I');
		elsUrl[i][1] = elsUrl[i][1].replace(new RegExp('ô',"g"), 'o');
		elsUrl[i][1] = elsUrl[i][1].replace(new RegExp('Ô',"g"), 'O');
		elsUrl[i][1] = elsUrl[i][1].replace(new RegExp('œ',"g"), 'o');
		elsUrl[i][1] = elsUrl[i][1].replace(new RegExp('Œ',"g"), 'O');
		elsUrl[i][1] = elsUrl[i][1].replace(new RegExp('ù',"g"), 'u');
		elsUrl[i][1] = elsUrl[i][1].replace(new RegExp('Ù',"g"), 'U');
		elsUrl[i][1] = elsUrl[i][1].replace(new RegExp('û',"g"), 'u');
		elsUrl[i][1] = elsUrl[i][1].replace(new RegExp('Û',"g"), 'U');
		elsUrl[i][1] = elsUrl[i][1].replace(new RegExp('ü',"g"), 'u');
		elsUrl[i][1] = elsUrl[i][1].replace(new RegExp('Ü',"g"), 'U');
		elsUrl[i][1] = elsUrl[i][1].replace(new RegExp('Ö',"g"), 'O');
		elsUrl[i][1] = elsUrl[i][1].replace(new RegExp('ö',"g"), 'o');
		/////////////

		result += '' + encodeURIComponent(elsUrl[i][1]) + '/';
	}
	
	var imgTime = new Date();
		imgTime.setDate(date_jour);
		imgTime.setMonth((date_mois - 1));
		imgTime.setFullYear(date_annee);
		imgTime.setHours(date_heure);
		imgTime.setMinutes(date_minute);
		imgTime.setSeconds(date_seconde);
		imgTime = imgTime.getTime() + ( 24 * 3600 * 1000);
		imgTime = Math.floor(imgTime / 1000);
	
	scrCountdownImg = result + imgTime;
	
	var linkImg = '/im/' + result + '' + imgTime + '.jpg';
	var imgSrc = linkImg + '?' + 'adw_action=personalization_page';
	img.src = imgSrc;
	img.style.display = 'inline';
	
	ElementId('resultImagePositionner').src = imgSrc;
	tjs_setTimeoutRelImg = setTimeout("posInitImg()",100);
}


///////////////////////////////////////////////////////////////////////
var tjs_delai=20;
var tjs_max=20;
var tjs_mode=1; // 0 - calque toujours en haut de page / 1 - calque en bas
var tjs_setTimeout = null;
var tjs_setTimeoutRelImg = null;
var tjs_hauteur=0;
var tjs_firstInit = true;
//Init Var for Navigator
var agt = navigator.userAgent.toLowerCase();
var is_ie = (agt.indexOf("msie")!= -1 && document.all && agt.indexOf("opera") == -1);
var is_ie6 = is_ie && (agt.indexOf("msie 6") != -1);
	
function Start() {
	MoveLayer("imgPositionner",GetTop("imgPositionner"));
	tjs_setTimeout = setTimeout("Start()",tjs_delai);
};

function MoveLayer(nom,top) {
	if (document.getElementById) { //IE5 et NS6
		document.getElementById(nom).style.top=top+'px';
	}
	if ((document.all)&&(!document.getElementById)) { //IE4 seul
		document.all[nom].style.top=top;
	}
	if (document.layers) { //NS4.X seul
		document.layers[nom].top=top;
	}
};

function findPosition(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		do {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		} while (obj = obj.offsetParent);
	}
	return [curleft,curtop];
};

function GetTop(nom) {
	var el = document.getElementById(nom);
	avail = (is_ie ? document.documentElement.clientHeight : window.innerHeight);
	wintop = parseInt((is_ie ? document.documentElement.scrollTop : window.pageYOffset));
	
	pos = findPosition(el);
	pos = pos[1];
	
	posStopC = findPosition(ElementId('resultImageContainer'));
	posStopC = posStopC[1];
	
	if(pos > posStopC){
		pos = posStopC;
		el.style.visibility = 'hidden';
	}else{
		el.style.visibility = 'visible';
	}
	
	// Partie 2 : Traitement de la position
	if (tjs_mode==0) { // toujours en haut
		var delta=Math.ceil((pos-wintop)/3);
		if (delta>tjs_max) {delta=tjs_max;}
		if (delta<-1*tjs_max) {delta=-1*tjs_max;}
		var top=pos-delta;
	}
	if (tjs_mode==1) {// toujours en bas
		var delta=Math.ceil((pos-(wintop+avail-tjs_hauteur)));
		if (delta>tjs_max) {delta=tjs_max;}
		if (delta<-1*tjs_max) {delta=-1*tjs_max;}
		var top=pos-delta;
	}
	return top;
};

function posInitImg(){
	
	window.clearTimeout(tjs_setTimeout);
	window.clearTimeout(tjs_setTimeoutRelImg);
	
	var el = ElementId('imgPositionner');
	tjs_hauteur = (is_ie ? el.offsetHeight : el.clientHeight);
	
	if(tjs_firstInit){
		var topping = (is_ie ? document.documentElement.clientHeight : window.innerHeight);
		
		el.style.top = topping + 'px';
		tjs_firstInit = false;
		
		el.style.visibility = 'visible';
	}
	
	Start();
}

if(window.addEventListener){
	window.addEventListener('load',posInitImg,false);
	window.addEventListener('resize',posInitImg,false);
}else if(window.attachEvent){
	window.attachEvent('onload',posInitImg);
	window.attachEvent('onresize',posInitImg);
}

///////////////////////////////////////////////////////////////////////



///////////////
var el = {};
el.selectedIndex = 0;
el.options = new Array();
el.options[0] = {};
el.options[0].value = '468-90';
actualiseThema(el);
ElementId('contColorPickerInput').value = '000000';
///////////////


//create a namespace object in the example namespace:
YAHOO.namespace("example.colorpicker")

//create a new object for this module:
YAHOO.example.colorpicker.inDialog = function() {

	//Some shortcuts to use in our example:
	var Event=YAHOO.util.Event,
		Dom=YAHOO.util.Dom,
		lang=YAHOO.lang;

	return {
	
		//In our initialization function, we'll create the dialog;
		//in its render event, we'll create our Color Picker instance.
        init: function() {

            // Instantiate the Dialog
            this.dialog = new YAHOO.widget.Dialog("yui-picker-panel", { 
				width : "330px",
				close: true,
				fixedcenter : true,
				visible : false, 
				constraintoviewport : false,
				buttons : [ { text:common_save, handler:this.handleSubmit, isDefault:true },
							{ text:common_cancel, handler:this.handleCancel } ]
             });
 
			// Once the Dialog renders, we want to create our Color Picker
			// instance.
            this.dialog.renderEvent.subscribe(function() {
				if (!this.picker) { //make sure that we haven't already created our Color Picker
				
					this.picker = new YAHOO.widget.ColorPicker("yui-picker", {
						container: this.dialog,
						images: {
							PICKER_THUMB: "/js/yui/build/colorpicker/assets/picker_thumb.png",
							HUE_THUMB: "/js/yui/build/colorpicker/assets/hue_thumb.png"
						},
						showcontrols: false, 
						showhexcontrols: false,
						showhsvcontrols: false,
						showhexsummary: false,
						showwebsafe: false
					});
					
					this.picker.setValue([0, 0, 0], false);

					//listen to rgbChange to be notified about new values
					this.picker.on("rgbChange", function(o) {
						
					});
				}
			});	
			
            this.dialog.validate = function() {
				return true;
            };

            this.dialog.callback = { success: this.handleSuccess, thisfailure: this.handleFailure };
            
            this.dialog.render();
			
            Event.on("contColorPickerLink", "click", this.dialog.show, this.dialog, true);

		},
		handleSubmit: function() {
			var hex = document.getElementById('yui-picker-hex').value;
			document.getElementById('contColorPicker').style.backgroundColor = '#' + hex;
			document.getElementById('contColorPickerInput').value = hex;
			this.hide();
			reloadImg();
		},

		handleCancel: function() {
			this.cancel();
		},
		handleSuccess: function(o) {
			this.hide();
		}
	};
}();

//The earliest safe moment to instantiate a Dialog (or any
//Container element is onDOMReady; we'll initialize then:
YAHOO.util.Event.onDOMReady(YAHOO.example.colorpicker.inDialog.init, YAHOO.example.colorpicker.inDialog, true);

reloadImg();
