// 1pixel
document.defaultCharset="iso-8859-1";
$(window).load(function() {
});
$(document).ready(function() {
	$('.hide').hide();
	$('.ui-1px-button, .ui-1px-button-no-text').hover(
		function() { $(this).addClass('ui-state-hover'); }, 
		function() { $(this).removeClass('ui-state-hover'); }
	);
	/* 
	$('#tabs').tabs({
		select: function(event, ui) {
		},
		show: function(event, ui) {
			
		}
	});
	//tab!='' ? $('#tabs').tabs( 'select' , tab ) : '';
	$(".fake-tab").click(function() {
		document.location.href=$(this).attr('href');
	});
	*/
	$("#user_login").click(function() {
		PXL_login();
	});
	$("#user_register").click(function() {
		PXL_register();
	});
	$(".aClose").click(function() {
		var c=$(this).attr('rel');
		$('#'+c).fadeOut("fast");
	});
	$('form').submit(function() {
		return false;
	});
	$(".aModal").click(function() {
		var action=$(this).attr('rel');
		switch(action) {
			case 'add_image':
				PXL_addImage();
				break;
			case 'mod_image':
				PXL_modifyImage();
				break;
			case 'pub_image':
				PXL_publishImage();
				break;
			case 'view_image':
				PXL_viewImage();
				break;
			case 'friends':
				PXL_friends($(this));
				break;
			case 'addFriend':
				PXL_addFriend($(this));
				break;
			// user
			case 'login':
				PXL_login();
				break;
			case 'logout':
				PXL_logout();
				break;
			case 'register':
				PXL_register();
				break;
			case 'rules':
				PXL_viewRules();
				break;
			case 'prizes':
				PXL_viewPrizes();
				break;
			case 'profile':
				PXL_profile();
				break;
			case 'forgot-password':
				PXL_forgotPassword();
				break;
			case 'search':
				PXL_search();
				break;
		}
	});
	$(".aRotateImage").click(function() {
		var degree=$(this).attr('rel');
		PXL_rotateImage(degree);
	});
	$("#aSaveThumb").click(function() {
		PXL_saveThumb();
	});
	$("#aCreateThumb").click(function() {
		PXL_createThumb();
	});
	$("#aSaveImgInfos").click(function() {
		PXL_saveImgInfos();
	});
	PXL_ajaxOnChangeInit();
	PXL_rating('form.rating :radio.star');
	//$('form.rating').rating();
	PXL_fixAllButtonWidth();
	PXL_carouselImgThumbs();
	PXL_checkImgHash();
	PXL_scrollToPhotos();
	
	var oDialog={};
	var jcrop_api={};
});
function PXL_baseURL(lang) {
	return '/'+lang+'/concours-photo/';
}
function PXL_domainURL() {
	var sub=document.location.href.indexOf('dev2')!=-1 ? 'dev2' : 'www';
	return 'http://'+sub+'.vacancestmr.com';
}
function PXL_gotoURL(k,lang) {
	var u=PXL_domainURL()+PXL_baseURL(lang)+k;
	document.location.href=u;
}
function PXL_reload() {
	document.location.reload();
}
function PXL_scrollToPhotos() {
	var u=document.location.href;
	if(u.indexOf('photos')!=-1) 
		$.scrollTo("#main_content",800);
}
function PXL_checkImgHash() {
	if(window.location.href.indexOf('#')!=-1) {
		var u=window.location.href.split('#');
		window.location.href=u[1];
	}
}
function PXL_carouselImgThumbs() {
	//$('#next_previous_nav').infiniteCarousel();
	
	if ($('#next_previous_nav .jCarouselLite').length>0) {
		var c = 6;
		var min_items = 3;
		if (c >= min_items) {
			$('#next_previous_nav .jCarouselLite').jCarouselLite({
				//start: 1,
				mouseWheel: true,
				btnNext: "#next",
				btnPrev: "#prev",
				easing: "expoinout",
				speed: 500
			});
		}
	}
	PXL_initAjaxImg();
}
function PXL_initAjaxImg() {
	$('.aAjaxImg').click(function() {
		return PXL_updateAjaxImg($(this));
	});
}
function PXL_updateAjaxImg(obj) {
	var lang=$('#lang').val();
	var u=document.location.href;
	var imgHref=obj.attr('href');
	var newImgPath=obj.children('img').attr('src').replace(/thumbs/,'large');
	var sTitle=obj.attr('title');
	//alert(PXL_baseURL(lang)+'get/breadcrumbs/');
	$.get(PXL_baseURL(lang)+'get/breadcrumbs/',
		{
			lang:lang,
			href:imgHref
		},
		function(data) {
			$('#breadcrumbs').html(data);
		}
	);
	// set title
	PXL_changePageTitle(sTitle);
	$('#imgTitle').html(sTitle);
	// image + comment
	$('#large_img').attr('src',newImgPath);
	$('#user-comment-text').html(obj.children('img').attr('alt'));
	// photo_id (int)
	var imgId=imgHref.split('__');
	imgId=imgId[1];
	// shareits
	$('#shareit-facebook').attr('href','http://www.facebook.com/share.php?u='+imgHref);
	$('#shareit-friends').attr('title',imgHref);
	// rating
	PXL_loadPhotoRating(imgId,lang);
	// url (hash)
	var newu=PXL_baseURL(lang)+'photos/#/'+imgHref;
	window.location.hash=imgHref;
	return false;
}
function PXL_changePageTitle(sTitle) {
	document.title = sTitle;
}
function PXL_ajaxOnChangeInit() {
	$(".ajaxReload").change(function() {
		PXL_ajaxReload($(this));
	});
}
function PXL_appName(sLang) {
	switch(sLang) {
		case 'fr':
		default:
			return 'concours-photo';
			break;
	}
}
function PXL_setCookie(sCookieName,sCookieValue) {
	var options = { path: '/', expires: 30 };
	
	// set cookie by number of days
	$.cookie(sCookieName, sCookieValue, options);
}
function PXL_getCookie(sCookieName) {
	return $.cookie(sCookieName);
}
function PXL_fixAllButtonWidth() {
	
}
function PXL_search() {
	var els=PXL_oGetFormData('#search_form');
	PXL_setCookie('search_sort',els.search_sort);
	document.location.href=PXL_baseURL(els.lang)+'photos/'+els.search_destination;
}
function PXL_oGetFormData(f) {
	var els={};
	$('input, select, textarea',f).each(function(){
		var sName = $(this).attr('name');
		var sValue = PXL_sGetVal($(this));
		els[sName] = sValue;
	});
	//debug(els);
	return els;
}
function PXL_sGetVal(el) {
	var n=el.attr('name');
	var v="";
	var type=el.attr('type');
	switch(type) {
		case "checkbox":
		case "radio":
			if(el.is(':checked')) v=el.val();
		break;
		default:
			v=el.val();
		break;
	}
	//v=encodeURI(v);
	return PXL_numericEntities(v);
}
String.prototype.charRefToUnicode = function() {
	return this.replace(
		/&#(([0-9]{1,7})|(x[0-9a-f]{1,6}));?/gi,
		function(match, p1, p2, p3, offset, s) {
			return String.fromCharCode(p2 || ("0" + p3));
		}
	);
}
function PXL_numericEntities(v) {
	return v.replace(/([^\x01-\x7E])/g,function(word){return'&#'+word.charCodeAt(0)+ ';';});
}
function PXL_unicodeEntities(v) {
	return v.replace(/([^\x01-\x7E])/g,function(word){return'\\u0'+word.charCodeAt(0)+ ';';});
}
function PXL_loading(k,obj) {
	switch(k) {
		case 'show':			
			$("#loading").css({
				'position'	:	'absolute',
				'top'		:	obj.position().top+'px',
				'left'		:	obj.position().left+obj.width()+10+'px'
				}
			).fadeIn("fast");
			break;
		case 'hide':
			$("#loading").fadeOut("fast");
			break;
	}
}
function PXL_ajaxReload(obj) {
	var sName = obj.attr('name');
	var sValue = PXL_sGetVal(obj);
	var sLang = obj.attr('lang');
	var u='/'+sLang+'/'+PXL_appName(sLang)+'/destinations-regions-hotels/';
	els={
		lang:sLang,
		type:sName,
		id:sValue
	};
	PXL_loading('show',obj);
	$.post(u,els,function(xml) {
		//alert(xml);
		PXL_loading('hide')
		var error = $(xml).find('error').text();
		var field = $(xml).find('field').text();
		var success = $(xml).find('success').text();
		if (error != "") {
			if (field) {
				$("#" + field).addClass('ui-state-error').focus();
			}
			PXL_onError($(xml).find('error_key').text());
			alert(error);
			return true;
		}
		else {
			// success
			if(success!="") {
				$('#'+field).html(''+success+'');
				PXL_ajaxOnChangeInit();
			}
		}
	});
	
}
function PXL_ie6() {
	return ($.browser.msie && $.browser.version=="6.0") ? true : false;
}
function PXL_isIE() {
	return ($.browser.msie) ? true : false;
}
function PXL_captchaReload() {
	var u='url(/fr/concours-photo/captcha/?sid=' + Math.random() + '&amp;lang=fr)';
	$('#captcha_image').css('background-image',u);
	return false
}
/* image ctrl */
function PXL_createThumb() {
	$("#mod_image_c").show();
	$.scrollTo("#image_ctrl_c",800);
	$('#thumb_img').attr('src',$('#large_img').attr('src'));
	$(".aThumbsLink").toggle();
	jcrop_api=PXL_initJcrop('#large_img');
}
function PXL_saveThumb() {
	$('#thumb_mask').html($("#imagectrl_spinner").html());
	//$("#imagectrl_spinner").show();
	var lang=$('#lang').val();
	var u='/'+lang+'/concours-photo/imagectrl/';
	var els = PXL_oGetFormData($("#user_image_form"));
	//var s='';for(p in els) s+=p+' : '+els[p];alert(s);
	els.action='crop';
	$.post(u,els,function(data) {
		//alert(data);
		PXL_assignImgData(data);
		$(".aThumbsLink").toggle();
		jcrop_api.destroy();
		var image = $("#email"),
		allFields = $([]).add(image);
		PXL_dialog({
			bgiframe: true,
			width: 300,
			height: 160,
			modal: true,
			buttons: (lang == 'fr' ? {
				'OK': function(){
					$(this).dialog('close');
				}
			} : {})
		}, $("#dialog").html('<h3 class="modal-title">Sauvegard&eacute;</h3>L\'apper&ccedil;u a &eacute;t&eacute; mis &agrave; jour.'), allFields);
		//PXL_reload();
	});
}
/* Jcrop */
function PXL_initJcrop(box) {
	var imgW=$(box).attr('width');
	var imgH=$(box).attr('height');
	var jc=$.Jcrop(box,{
		boxWidth: imgW,
		boxHeight: imgH,
		onChange: PXL_showPreview,
		onSelect: PXL_updateCoords,
		aspectRatio: 1
	});
	jc.setSelect(PXL_getRandom(jc));
	jc.animateTo(PXL_getRandom(jc));
	//var s=jc.Selection();
	//PXL_showPreview(s.update());
	//jcrop_api.setSelect([0,0,160,160]);
	return jc;
};
function PXL_showPreview(coords) {
	//var s='';for(p in coords) s+=p+' : '+coords[p];alert(s);
	var thumbSquare=180;
	
	var rx = thumbSquare / coords.w;
	var ry = thumbSquare / coords.h;
	rx=rx=='Infinity' ? 10 : rx;
	ry=ry=='Infinity' ? 10 : ry;
	
	$('#thumb_img').css({
		width: (parseInt(rx * coords.boxWidth)) + 'px',
		height: (parseInt(ry * coords.boxHeight)) + 'px',
		marginLeft: '-' + (parseInt(rx * coords.x)) + 'px',
		marginTop: '-' + (parseInt(ry * coords.y)) + 'px'
	});
	PXL_updateCoords(coords);
}
function PXL_updateCoords(c) {
	$('#thumb_x').val(c.x);
	$('#thumb_y').val(c.y);
	$('#thumb_w').val(c.w);
	$('#thumb_h').val(c.h);
};
function PXL_getRandom(jcrop_api) {
	var dim = jcrop_api.getBounds();
	return [
		Math.round(Math.random() * dim[0]),
		Math.round(Math.random() * dim[1]),
		Math.round(Math.random() * dim[0]),
		Math.round(Math.random() * dim[1])
	];
};
/* Jcrop /> */
function PXL_rotateImage(degree) {
	$("#imagectrl_spinner").show();
	var lang=$('#lang').val();
	var u='/'+lang+'/concours-photo/imagectrl/';
	var els={
		action:'rotate',
		degree:degree,
		w:630,
		h:630
	};
	$.post(u,els,function(data) {
		PXL_assignImgData(data);
		$("#imagectrl_spinner").hide();
	});
}
function PXL_assignImgData(data) {
	var a = data.split(',');
	a[0] += '?' + parseInt(Math.random() * 1000000);
	$("#large_img").attr({
		src: a[0].replace(/thumbs/, 'large'),
		width: a[1],
		height: a[2]
	});
	var td = PXL_getThumbDims();
	$("#thumb_mask").children("img").fadeOut("slow",function() {
		//$(this).attr('src',a[0].replace(/large/, 'thumbs'));
		//$(this).attr('width',td.w);
		//$(this).attr('height',td.h);
		$(this).parent("div").html('<img src="'+a[0].replace(/large/, 'thumbs')+'" width="'+td.w+'" height="'+td.h+'" id="thumb_img" />');
		$(this).children("img").fadeIn("fast");
	});
	
	//$("#thumb_img").width(td.w).height(td.h);
	//alert($('#thumb_img').attr('width'));
}
function PXL_getThumbDims() {
	return {
		w: '180',
		h: '180'
	};
}
function PXL_onUpload(lang,f,obj) {
	//var s='';for(p in obj) s+=p+' : '+obj[p];$('body').html(s);
	if ($('#certify').is(':checked')) {
		ajaxUpload(f, $("#upload_url").val(), 'upload_area', $("#upload_msg").val(), $("#upload_err_msg").val());
		$("#filename").attr('disabled',true);
	}
	else 
		return alert(($('#certify_error').val()).charRefToUnicode());
}
function PXL_afterUpload(data) {
	$("#filename").attr('disabled',false);
	if (data.indexOf('success') != -1) {
		PXL_assignImgData(data);
		oDialog.dialog('close');
		$("a[rel=mod_image]").show();
		PXL_gotoURL('participer',$('#lang').val());
	}
}
function PXL_viewImage() {
	var image = $("#email"),
		allFields = $([]).add(image);
	var w=$("#large_img").attr('width') + 50;
	var h=$("#large_img").attr('height') + 120;
	var lang=$('#lang').val();
	PXL_dialog({
		bgiframe: true,
		width: w,
		height: h,
		modal: true,
		title: '',
		buttons: 
		(lang=='fr' ? {
			'Fermer': function(){
				$(this).dialog('close');
			}
		}
		:
			{
		})
	},
	$("#view_image_c"),
	allFields);
}
function PXL_addImage() {
	var image = $("#email"),
		allFields = $([]).add(image);
	var lang=$('#lang').val();
	//alert('/'+lang+'/'+PXL_appName()+'/logged/');
	$.post('/'+lang+'/'+PXL_appName()+'/logged/',{},function(data) {
		if (data == '1') {
			PXL_dialog({
				bgiframe: true,
				width: 400,
				height: 320,
				modal: true,
				buttons: (lang == 'fr' ? {
					'Confirmer l\'image': function(){
						PXL_onUpload(lang, $("#image_upload_form")[0], $(this))
					},
					'Annuler': function(){
						$(this).dialog('close');
					}
				} : {})
			}, $("#add_image_c"), allFields);
		}
		else PXL_gotoURL('participer',lang);
	})
}
function PXL_modifyImage() {
	$("#mod_image_c").show();
	$(".aThumbsLink:first").show();
	//$("a[rel=mod_image]").hide();
	$.scrollTo("#mod_image_c",800);
	/*
	var image = $("#email"),
		allFields = $([]).add(image);
	var lang=$('#lang').val();
	PXL_dialog({
		bgiframe: true,
		width: 350,
		height: 280,
		modal: true,
		title: $("#image_upload").children("h3:first").hide().text(),
		buttons: 
		(lang=='fr' ? {
			'Transfert': function(){
				PXL_onUpload(lang,$("#image_upload_form")[0],$(this))
			},
			'Annuler': function(){
				$(this).dialog('close');
			}
		}
		:
			{
		})
	},
	$("#mod_image_c"),
	allFields);*/
}
function PXL_publishImage(){
	var lang=$('#lang').val(), allFields=$([]);
	$.post(
		$("#imginfos_form").attr('action'),
		PXL_oGetFormData($("#imginfos_form")),
		function(xml) {
			//alert(xml);
			var success=$(xml).find('success').text();
			var error=$(xml).find('error').text();
			if (error=="") {
				PXL_dialog({
					bgiframe: true,
					width: 400,
					height: 180,
					modal: true,
					title: PXL_icon('info')+$('#publish_div').find(".modal-title").hide().text(),
					buttons: (lang == 'fr' ? {
						'Publier': function(){
							PXL_onPublish(lang);
						},
						'Annuler': function(){
							$(this).dialog('close');
						}
					} : {})
				}, $("#publish_div"), allFields);
			}
			else {
				$("#mod_image_c").show();
				$("#imginfos_title").focus();
				$.scrollTo("#imginfos_form",800,function() {
					alert(error);
				});
			}
		}
	);
}
function PXL_onPublish(lang) {
	var u='/'+lang+'/concours-photo/publish/';
	$.post(u,{},function(xml) {
		var success=$(xml).find('success').text();
		var lang=$(xml).find('lang').text();
		PXL_info(success,lang,'PXL_reload');
	});
}
function PXL_saveImgInfos() {
	var title = $("#imginfos_title"),
		allFields = $([]).add(title);
	allFields.removeClass('ui-state-error');
	//alert($("#saveimgtext_title").val());
	//var lang=$('#lang').val();
	//alert(bValid);
	//var u='/'+lang+'/concours-photo/saveimgtext/';
	//var els = PXL_oGetFormData($("#saveimgtext_form"));
	//els.lang=lang;
	//PXL_post("#imginfos_form");
	
	$.post(
		$("#imginfos_form").attr('action'),
		PXL_oGetFormData($("#imginfos_form")),
		function(xml) {
			//alert(xml);
			var success=$(xml).find('success').text();
			var error=$(xml).find('error').text();
			var lang=$(xml).find('lang').text();
			if (error=="") {
				if(success!="") PXL_info(success,lang,'');
			}
			else {
				$("#mod_image_c").show();
				$("#imginfos_title").focus();
				$.scrollTo("#imginfos_form",800,function() {
					alert(error);
				});
			}
		}
	);
}
/* image ctrl /> */
/* form validation */
function PXL_updateTips(t) {
	var tips = $("#validateTips");
	tips.text(t).effect("highlight",{},1500);
}
function PXL_checkLength(o,n,min,max) {
	if ( o.val().length > max || o.val().length < min ) {
		o.addClass('ui-state-error');
		PXL_updateTips("Length of " + n + " must be between "+min+" and "+max+".");
		return false;
	} else {
		return true;
	}
}
function PXL_checkRegexp(o,regexp,n) {

	if ( !( regexp.test( o.val() ) ) ) {
		o.addClass('ui-state-error');
		PXL_updateTips(n);
		return false;
	} else {
		return true;
	}
}
function PXL_compareStrings(s1, s2) {
	return (s1==s2 ? true : false);
}
/* form validation /> */

function PXL_keyListener(obj,callback,lang) {
	$(obj).keypress(function(e) {
		switch(e.keyCode) { 
			// User pressed "up" arrow
			case 38:
				navigate('up');
				break;
			// User pressed "down" arrow
			case 40:
				navigate('down');
				break;
			// User pressed "enter"
			case 13:
				eval(callback)(lang);
			default:
				
			break;
		}
	});
}
function PXL_post(f) {
	var els=PXL_oGetFormData(f);
	els.current_url=document.location.href;
	//debug(els);
	var u=$(f).attr('action');
	//alert(u);
	$.post(u,els,function(xml) {
		PXL_showResponse(xml);
	});
	/*
	var options = {
		//url:			u,
        beforeSubmit:	PXL_showRequest,	// pre-submit callback
        success:		PXL_showResponse	// post-submit callback
    };
    $(f).ajaxSubmit(options);
    return false; 
	*/
}
function PXL_error(xml) {
	//alert(xml);return true;
	//if(typeof fnct == 'undefined') fnct='Void';
		
	var error = $(xml).find('error').text();
	//var dump = $(xml).find('dump').text();alert(dump);return true;
	if (error != "") {
		var field = $(xml).find('field').text();
		if (field) {
			$("#" + field).addClass('ui-state-error').focus();
		}
		PXL_onError($(xml).find('error_key').text());
		alert(error);
		return true;
	}
	else {
		// success
		var success = $(xml).find('success').text();
		var lang = $(xml).find('lang').text();
		if(success!="") PXL_info(success,lang,'');
		else PXL_closeDialog();
	}
	return false;
}
function PXL_info(success,lang,fct) {
	PXL_closeDialog();
	var email = $("#email"),
		allFields = $([]).add(email);
	$('#dialog').html(success);//PXL_icon('check')+
	var h=$('#dialog').css('height',0).height()+130;
	PXL_dialog({
		bgiframe: true,
		width: 400,
		height: h,
		modal: true,
		title: PXL_icon('info')+$('#dialog').find(".modal-title").hide().text(),
		buttons: (lang == 'fr' ? {
			'OK': function(){
				PXL_closeDialog();
				(fct!='' ? eval(fct)() : '');
			}
		} : {
			
		})//,		close: (fct!='' ? eval(fct)() : '')
	},
	$('#dialog'),
	allFields);
}
function PXL_icon(icon) {
	var o='';
	switch(icon) {
		case 'info':
			o='<span class="ui-icon ui-icon-info" style="float: left; margin-right: 0.3em;"></span>';
			break;
		case 'check':
			o='<span class="ui-icon ui-icon-circle-check" style="margin: 0pt 7px 50px 0pt; float: left;"></span>';
			break;
	}
	return o;
}
function PXL_onError(error_key) {
	$('.error-key-'+error_key).show();
	/*
	switch(error_key) {
		case 'exists_email':
			$("#register_forgot_password").show();
			break;
	}*/
	return;
}
function PXL_showRequest(formData, jqForm, options) { 
    var queryString = $.param(formData);
	//alert('About to submit: \n\n' + queryString);
    return true; 
}
// post-submit callback 
function PXL_showResponse(xml, statusText, options)  {
	PXL_error(xml);
	/*
	if(!PXL_error(xml))
	PXL_closeDialog();//PXL_applyText("/inc/form/register_thx.php?lang="+(typeof $('#lang').val()!='undefined' ? $('#lang').val() : 'en'));
	else return false;*/
	return true;
}
function PXL_applyText(c) {
	//var page=c+'?lang='+(lang=='undefined' ? 'en' :lang);
	c='/fr/';
	$(".ajax_content").fadeOut("fast",function() {
		$(this).load(c).fadeIn("slow");
	});
}
function PXL_profile() {
	PXL_closeDialog();
	var email = $("#email"),
		password = $("#password"),
		allFields = $([]).add(email).add(password);
		
	var lang=$('#lang').val();
	$.post(PXL_baseURL(lang)+'profile/',{lang:lang},function(data) {
		PXL_dialog({
			bgiframe: true,
			width: 600,
			height: 400,
			modal: true,
			buttons: 
			(lang=='fr' ? {
				'Enregistrer': function(){
					PXL_onProfile()
				},
				'Annuler': function(){
					$(this).dialog('close');
				}
			}
			:
				{
			})
		},
		$("#dialog").html(data),
		allFields);
		PXL_keyListener("#profile_form",'PXL_onProfile',lang);
	});
	return false;
}
function PXL_onProfile() {
	var email = $("#profile_email"),
		password = $("#profile_password"),
		password_conf = $("#profile_password_conf"),
		fname = $("#profile_fname"),
		lname = $("#profile_lname"),
		allFields = $([]).add(email).add(password).add(password_conf).add(fname).add(lname);
	var bValid = true;
	allFields.removeClass('ui-state-error');
	PXL_post("#profile_form");
}
function PXL_register() {
	PXL_closeDialog();
	var email = $("#email"),
		password = $("#password"),
		allFields = $([]).add(email).add(password);
		
	var lang=$('#lang').val();
	PXL_dialog({
		bgiframe: true,
		width: 600,
		height: 450,
		modal: true,
		buttons: 
		(lang=='fr' ? {
			'Enregistrer': function(){
				PXL_onRegister()
			},
			'Annuler': function(){
				$(this).dialog('close');
			}
		}
		:
			{
		})
	},
	$("#register_cont"),
	allFields);
	PXL_keyListener("#register_form",'PXL_onRegister',lang);
	return false;
}
function PXL_onRegister() {
	var email = $("#register_email"),
		password = $("#register_password"),
		password_conf = $("#register_password_conf"),
		fname = $("#register_fname"),
		lname = $("#register_lname"),
		allFields = $([]).add(email).add(password).add(password_conf).add(fname).add(lname);
	var bValid = true;
	allFields.removeClass('ui-state-error');
	PXL_post("#register_form");
}
function PXL_onLogin(lang) {
	var email = $("#login_email"),
		password = $("#login_password"),
		allFields = $([]).add(email).add(password);
	allFields.removeClass('ui-state-error');
	var els = PXL_oGetFormData($("#login_form"));
	var u=$("#login_form").attr('action');
	//debug(els);
	$.post(u,els,function(xml) {
		//alert(xml);
		if (!PXL_error(xml)) {
			$("#login_form").dialog('close');
			PXL_reload();
		}
	});
	
	//PXL_post("#login_form");
}
function PXL_login() {
	PXL_closeDialog();
	
	var email = $("#email"),
		password = $("#password"),
		allFields = $([]).add(email).add(password);
		
	var lang=$('#lang').val();
	PXL_dialog({
		bgiframe: true,
		width: 400,
		height: 400,
		modal: true,
		buttons: 
		(lang=='fr' ? {
			'Connexion': function(){
				PXL_onLogin(lang)
			},
			'Annuler': function(){
				$(this).dialog('close');
			}
		}
		:
			{
		})
	},
	$("#login_cont"),
	allFields);
	PXL_keyListener("#login_form",'PXL_onLogin',lang);
	return false;
}
function PXL_onForgotPassword(lang) {
	var email = $("#forgot_password_email"),
		allFields = $([]).add(email);
	allFields.removeClass('ui-state-error');
	PXL_post("#forgot-password_form");
	/*
	var lang=$('#lang').val();
	var u='/'+lang+'/concours-photo/forgot-password/';
	var els = PXL_oGetFormData($("#forgot-password_form"));
	els.lang=lang;
	$.post(u,els,function(xml) {
		if (!PXL_error(xml)) {
			PXL_closeDialog();
			PXL_reload();
		}
	});*/
}
function PXL_forgotPassword() {
	PXL_closeDialog();
	
	var email = $("#email"),
		allFields = $([]).add(email);
		
	var lang=$('#lang').val();
	PXL_dialog({
		bgiframe: true,
		width: 400,
		height: 200,
		modal: true,
		buttons: 
		(lang=='fr' ? {
			'Envoyer': function(){
				PXL_onForgotPassword(lang)
			},
			'Annuler': function(){
				$(this).dialog('close');
			}
		}
		:
			{
		})
	},
	$("#forgot-password_cont"),
	allFields);
	PXL_keyListener("#forgot-password_form",'PXL_onForgotPassword',lang);
	return false;
}
function PXL_logout(){
	var lang=$('#lang').val();
	var u='/'+lang+'/concours-photo/logout/';
	$.post(u,{},function(xml) {
		PXL_gotoURL('participer',lang);
	});
}
function PXL_friends(obj) {
	img_link=obj.attr('title');
	img_title=$('#imgTitle').text();
	img_path=$('#large_img').attr('src');
	
	PXL_closeDialog();
	var email = $("#email"),
		password = $("#password"),
		allFields = $([]).add(email).add(password);
		
	var lang=$('#lang').val();
	$.post(PXL_baseURL(lang)+'friends/',{
		lang		:	lang,
		img_link	:	img_link,
		img_path	:	img_path,
		img_title	:	img_title
		},
		function(data){		
			if ($(data).find('error').attr('type') == 'not_logged_in') {
				PXL_login(lang);
				alert($(data).find('error').text());
			}
			else {
				PXL_dialog({
					bgiframe: true,
					width: 600,
					height: 650,
					modal: true,
					buttons: (lang == 'fr' ? {
						'Envoyer': function(){
							PXL_onFriends()
						},
						'Annuler': function(){
							$(this).dialog('close');
						}
					} : {})
				}, $("#dialog").html(data), allFields);
				PXL_keyListener("#friends_form", 'PXL_onFriends', lang);
			}
		}
	);
	return false;
}
function PXL_onFriends() {
	var email = $("#friends_user_email"),
		fname = $("#friends_user_fname"),
		lname = $("#friends_user_fname"),
		allFields = $([]).add(email).add(fname).add(lname);
	var bValid = true;
	$('.text').removeClass('ui-state-error');

	$.post(
		$('#friends_form').attr('action'),
		PXL_oGetFormData($('#friends_form')),
		function(xml) {
			//alert(xml);
			var error = $(xml).find('error').text();
			var lang = $(xml).find('lang').text();
			//var dump = $(xml).find('dump').text();alert(dump);return true;
			if (error != "") {
				var field = $(xml).find('field').text();
				//alert(field);
				if (field) {
					$("#" + field).addClass('ui-state-error').focus();
				}
				if($(xml).find('error').attr('type')=='not_logged_in') PXL_login(lang);
				else PXL_onError($(xml).find('error_key').text());
				alert(error);
				return true;
			}
			else {
				// success
				var success = $(xml).find('success').text();
				//alert(success);
				if (success != "") {
					if(PXL_closeDialog()) PXL_info(success, lang, '');
				}
			}
		}
	);
}
function PXL_friendAdd() {
	var h=$('#friends_content_fields').html();
	var num=$('#friends_num').val();
	var ids=$('#friends_fields_id').val();
	num++;
	ids+='{'+num+'},';
	$('#friends_fields_id').val(ids);
	$('#friends_num').val(num);
	h=h.replace(/{num}/g,num);
	$('#friends_content').append(h);
	//$.scrollTo("#friend_cont_"+num,800);
}
function PXL_friendDel(id) {
	$("#friend_cont_"+id).slideUp("slow",function() {
		$(this).remove();
	});
	var num=$('#friends_num').val();
	var ids=$('#friends_fields_id').val();
	var rem_id='{'+id+'}';
	ids=ids.replace(rem_id,'');
	$('#friends_fields_id').val(ids);
}
function PXL_viewRules() {
	PXL_closeDialog();
	var email = $("#email"),
		password = $("#password"),
		allFields = $([]).add(email).add(password);
		
	var lang=$('#lang').val();
	$.get(PXL_baseURL(lang)+'rules/',{lang:lang},function(data) {
		PXL_dialog({
			bgiframe: true,
			width: 800,
			height: 650,
			modal: true,
			buttons: 
			(lang=='fr' ? {/*
				'J\'accepte': function(){
					$(this).dialog('close');
				},*/
				'Fermer': function(){
					$(this).dialog('close');
				}
			}
			:
				{
			})
		},
		$("#dialog").html(data),
		allFields);
	});
	return false;
}
function PXL_modlinks() {
	$("a[rel^='modlog']").click(function() {
		var r=$(this).attr('rel');
		var a=r.split(':');
		var d=typeof a[1]!='undefined' ? a[1].split(';') : new Array(500,500);
		var u=$(this).attr('href');
		//alert(u+' - '+d[0]);
		$('#dialog').load(u,
			function() {
				PXL_dialog({
					modal: true,
					width: parseInt(d[0]),
					height: parseInt(d[1]),
					resizable: true,
					title: $(this).attr('title')
				},
				$(this));
			}
		);
		return false;
	});
}
function PXL_modurl() {
	$('.modurl').click(function() {
		var sUrl = $(this).attr('href');
		var sTitle = $(this).attr('title');
		var w = $(this).attr('width');
		var h = $(this).attr('height');
		var s=1;
		PXL_dialog({
				resizable: true,
				modal: true,
				width: w,
				height: h,
				title: sTitle,
				scrollUp:s
			},
			$('#dialog').html(PXL_f(sUrl,w,h,s)).hide(),
			false
		);
		return false;
	});
}
function PXL_f(u,w,h,s) {
	s=s==0 ? "no" : "yes";
	return '<iframe src="'+u+'" width="'+w+'" height="'+(s ? h-25 : h)+'" frameborder="0" id="modurl_f" scrolling="'+s+'"></iframe>';
}
function PXL_dialog(opt,obj,allFields) {
	//if (PXL_closeDialog()) {
		$('.hide').hide();
		if (PXL_isIE) $('#flashcontent').hide();
		var h = obj.html();
		if (typeof opt.title == 'undefined' || opt.title == '') 
			opt.title = obj.find(".modal-title").hide().text();
		opt.close = function(event, ui){
			allFields.val('').removeClass('ui-state-error');
			$('#flashcontent').show();
			$(this).dialog('destroy');
		};
		oDialog = obj.hide().dialog(opt).fadeIn("slow");
	//}
}
function PXL_closeDialog() {
	if(typeof oDialog!='undefined') oDialog.dialog('close');
	return true;
}
/* rating */
function PXL_rating(obj) {
	var lang=$('#lang').val();
	$(obj).rating({
		callback: function(rate, link){
			return PXL_doRating(rate,lang,$(this));
		} 
	});
}
function PXL_doRating(rate,lang,obj) {
	var u='/'+lang+'/concours-photo/rate/';
	
	//debug(obj);
	var els = PXL_oGetFormData(obj.parent('form'));
	els.lang=lang;
	els.rate=rate;
	//debug(els);
	var ret;
	$.post(u,els,function(xml) {
		var error = $(xml).find('error').text();
		if (error != "") {
			var error_type=$(xml).find('error').attr('type');
			if (error_type == 'not_logged_in') {
				PXL_login(lang);
				alert(error);
			}
			else 
				$('#rating-error').html(error);
			ret=false;
		}
		else {
			// success
			//var success = $(xml).find('success').text();
			PXL_loadPhotoRating(els.photo_id,lang);
			//$('#rate_count_'+els.photo_id).val(success);
			ret=true;
		}
	});
	return ret;
}
function PXL_loadPhotoRating(photo_id,lang) {
	var u='/'+lang+'/concours-photo/rating-form/';
	var els={
		photo_id:photo_id,
		lang:lang
	};
	$.post(u,els,function(data) {
		$('#rating-form').html(data);
		PXL_rating('form.rating :radio.star');
	});
	
}
/* rating /> */
function debug(obj) {
	var s='';
	for(var i in obj) s+=i+' : '+obj[i]+'\n';
	alert(s);
}
/* timer *
$("#spinner").oneTime(800, function() {
	$(this).fadeOut("fast", function() {	
		$("#info").hide();					
		$("table.answer tr:odd:not(th)").css("background-color","#FFFFFF");
		$("table.answer tr:even:not(th)").css("background-color","#f6f2b7");
		$("table.answer th").css({
			"background-color":"#FFFFFF",
			"padding":"15px 5px 15px 5px"
		});
		$("table.answer td:even").css({
			"width":"500px",
			"padding":"10px 5px 10px 5px",
			"border-right":"4px solid #FFFFFF"
		});
		$("span.currency, span.digit, span.percentage, span.months, span.static").css({
			"text-align":"right",
			"float":"right"
		});
		$("#brief_roi").fadeIn("fast", function() {
			$.scrollTo("#container_left",800);
		});
	});
}); // timer */