 /**
 * Comprueba que se haya introducido login y password
 */
function checkLogin(user, password)
{
	var emptyUser  = user.value.trim().length == 0;
	var emptyPass  = password.value.trim().length == 0;

	if (emptyUser && emptyPass) {
		writeInnerMsg('avisoLogin', _TEXTS_JS['EMPTY_LOGINPASS']);
	} else if (emptyUser) {
		writeInnerMsg('avisoLogin', _TEXTS_JS['EMPTY_LOGIN']);
	} else if (emptyPass) {
		writeInnerMsg('avisoLogin', _TEXTS_JS['EMPTY_PASS']);
	} else {
		return true;
	}

	return false;
}

/**
 * Comprueba que se hayan introducido los campos obligatorios
 * para el registro
 */
function checkRegister(form)
{
	if (form.user.value.length            == 0 ||
		form.password.value.length        == 0 ||
		form.repassword.value.length      == 0 ||
		form.email.value.length           == 0 ||
		form.country.selectedIndex        == 0 ||
		form.day.selectedIndex            == 0 ||
		form.month.selectedIndex          == 0 ||
		form.year.selectedIndex           == 0 ||
        form.captchaWritten.value.length  == 0 ||
		typeof getRadioValue('gender')    == 'undefined'
		) {
		writeInnerMsg('msgArea', _TEXTS_JS['EMPTY_FIELDS']);
	} else if (!isValidLogin(form.user.value)) {
		writeInnerMsg('msgArea', _TEXTS_JS['INVALID_LOGIN_FORMAT']);
	} else if (!isAvailableLogin(form.user.value)) {
		writeInnerMsg('msgArea', _TEXTS_JS['INVALID_USER']);
	} else if (!isValidMailFormat(form.email.value)) {
		writeInnerMsg('msgArea', _TEXTS_JS['INVALID_MAIL_FOMAT']);
	} else if (form.password.value != form.repassword.value) {
		writeInnerMsg('msgArea', _TEXTS_JS['MISMATCH_PASSWORDS']);
    } else if (!form.conditions.checked) {
		writeInnerMsg('msgArea', _TEXTS_JS['CONDITIONS']);
	} else {
		return true;
	}

	return false;
}

/**
 * Comprueba que se hayan introducido los campos obligatorios
 * para actualizar el perfil
 */
function checkProfile(form)
{
	if (form.password.value.length        == 0 ||
		form.repassword.value.length      == 0 ||
		form.email.value.length           == 0 ||
		form.country.selectedIndex        == 0 ||
		form.day.selectedIndex            == 0 ||
		form.month.selectedIndex          == 0 ||
		form.year.selectedIndex           == 0 ||
		typeof getRadioValue('gender')    == 'undefined'
		) {
		writeInnerMsg('msgArea', _TEXTS_JS['EMPTY_FIELDS_PROFILE']);
	} else if (!isValidMailFormat(form.email.value)) {
		writeInnerMsg('msgArea', _TEXTS_JS['INVALID_MAIL_FOMAT']);
	} else if (form.password.value != form.repassword.value) {
		writeInnerMsg('msgArea', _TEXTS_JS['MISMATCH_PASSWORDS']);
	} else {
		return true;
	}

	return false;
}

/**
 * Devuelve cierto si el login está compuesto únicamente por caracteres alfanuméricos
 * o el carácter '-'
 */
function isValidLogin(login)
{
	re = /^[-a-zA-Z0-9]+$/;

	return re.test(login);
}

/**
 * Comprueba que que el formato de mail introducido sea el correcto
 */
function checkMail(email)
{
	if (!isValidMailFormat(email.value)) {
		writeInnerMsg('msgArea', _TEXTS_JS['INVALID_MAIL_FOMAT']);
	} else {
		return true;
	}

	return false;
}

/**
 * Cuando se cambia de país del select de paises, vacía los selects
 * de provincias y poblaciones y rellena el select de provincias.
 */
function changeCountry(country)
{
	removeSelectOptions('state');
	removeSelectOptions('city');

	if (country.selectedIndex != 0) {
		var options = {
			method:	'POST',
			url: '/remote-php/getStates.php',
			queryVars: {iso: country.value},
			responseType: 'json',
			handler: addSelectOptions,
			handlerVars: ['state'],
			showLoading: true,
			debug: true
		};

		ajaxSendRequest(options);
	}
}

/**
 * Cuando se cambia de país del select de paises para videos, vacía los selects
 * de provincias y poblaciones y rellena el select de provincias.
 */
function changeCountry_video(country)
{
	removeSelectOptions('statev');
	removeSelectOptions('cityv');

	if (country.selectedIndex != 0) {
		var options = {
			method:	'POST',
			url: '/remote-php/getStates.php',
			queryVars: {iso: country.value},
			responseType: 'json',
			handler: addSelectOptions,
			handlerVars: ['statev'],
			showLoading: true,
			debug: true
		};

		ajaxSendRequest(options);
	}
}



/**
 * Cuando se cambia de provincia vacía el select de poblaciones y lo
 * rellena con las poblaciones que toca.
 */
function changeState(state, country)
{
	removeSelectOptions('city');

	if (state.selectedIndex != 0) {
		var options = {
			method:	'POST',
			url: '/remote-php/getCities.php',
			queryVars: {state_id: state.value, country_iso: country.value},
			responseType: 'json',
			handler: addSelectOptions,
			handlerVars: ['city'],
			showLoading: true,
			debug: true
		};

		ajaxSendRequest(options);
	}
}

/**
 * Cuando se cambia de provincia vacía el select de poblaciones y lo
 * rellena con las poblaciones que toca.
 */

function changeState_video(state, country)
{
	removeSelectOptions('cityv');

	if (state.selectedIndex != 0) {
		var options = {
			method:	'POST',
			url: '/remote-php/getCities.php',
			queryVars: {state_id: state.value, country_iso: country.value},
			responseType: 'json',
			handler: addSelectOptions,
			handlerVars: ['cityv'],
			showLoading: true,
			debug: true
		};

		ajaxSendRequest(options);
	}
}

/**
 * Determina si el login se encuentra en uso o no.
 */
function isAvailableLogin(user)
{
	var options = {
		method:	'POST',
		url: '/remote-php/isAvailableLogin.php',
		queryVars: {login: user},
		responseType: 'json',
		showLoading: true,
		async: false,
		debug: true
	};

	return ajaxSendRequest(options);
}

/**
 * Mantiene la tabla connected_users.
 */
function markAsAlive()
{
	var options = {
		method:	'POST',
		url: '/remote-php/markAsAlive.php',
		debug: true
	};

	ajaxSendRequest(options);
}

/**
 * Hace el toggle de las opciones del buscador de usuarios
 */
function toggleSearchOpts()
{
    if ($("#moreopts").is(':hidden')) {
        $("#showopts").val(1);
        $('#moreoptsa').html(_TEXTS_JS['OCULTAR_OPCIONES']);
        $("#moreopts").slideDown("slow");
    } else {
        $("#showopts").val(0);
        $('#moreoptsa').html(_TEXTS_JS['MAS_OPCIONES']);
        $("#moreopts").slideUp("slow");
    }
}

/**
 * Habilita o deshabilita el input del password para los videos protected
 */
function togglePasswordInput()
{
    if ($("input[@name='type']:checked").val() == 'protected') {
        $("#password").attr("disabled", "");
    } else {
        $("#password").attr("disabled", "disabled");
    }
}

/**
 * Hace el toggle del div cuyo id se pasa como argumento
 */
function toggleDiv(id)
{
    var div = '#' + id;

    if ($(div).is(':hidden')) {
        $(div).slideDown("slow");
    } else {
        $(div).slideUp("slow");
    }
}

/**
 * Comprueba que se haya introducido toda la información necesaria para proceder
 * a grabar un vídeo
 */
function checkVideoData()
{
    writeInnerMsg('msgArea', '');

    if ($("#title").val().trim() == '') {
        writeInnerMsg('msgArea', _TEXTS_JS['EMPTY_VIDEO_TITLE']);
    } else if ($("#tags").val().trim() == '') {
        writeInnerMsg('msgArea', _TEXTS_JS['EMPTY_VIDEO_TAGS']);
    } else if ($("input[@name='type']:checked").val() == 'protected' && $("#password").val().trim() == '') {
        writeInnerMsg('msgArea', _TEXTS_JS['EMPTY_VIDEO_PASS']);
    } else if ($("#description").val().trim() == '') {
        writeInnerMsg('msgArea', _TEXTS_JS['EMPTY_VIDEO_DESC']);
    } else {
        return true;
    }

	return false;
}

/**
 * Comprueba que se haya introducido el título antes de grabar un vídeo privado
 */
function checkVideoTitle()
{
    writeInnerMsg('msgArea', '');

    if ($("#title").val().trim() == '') {
        writeInnerMsg('msgArea', _TEXTS_JS['EMPTY_VIDEO_TITLE']);
    } else {
        return true;
    }

	return false;
}

/**
 * Muestra el reproductor con el vídeo que le pasamos como parámetro, dentro
 * del div especificado
 */
function showPlayer_OLD(videocode, divId)
{
	var flashvars = {
		config: "/swf/player/config.php?v=" + videocode
	};

	var params = {
		quality: "high",
		bgcolor: "#000000",
		width: "500",
		height: "356",
		align: "middle",
		wmode: "transparent",
		allowFullScreen: "true",
		allowScriptAccess: "sameDomain",
		type: "application/x-shockwave-flash",
		pluginspage: "http://www.macromedia.com/go/getflashplayer"
	};

	swfobject.embedSWF("/swf/player/flvplayer.swf", divId, "500", "356", "9.0.0", "/swf/player/expressInstall.swf", flashvars, params);
}

/**
 * Muestra el reproductor con el vídeo que le pasamos como parámetro, dentro
 * del div especificado
 */
function showPlayer(videocode, divId)
{
	var flashvars = {
		config: "/swf/player/config.php?v=" + videocode,
		type: "video",
		file: "http://www.yograbo.com/swf/player/getVideo.php?v=" + videocode,
	    image: "/thumbs/" + videocode + "_2.jpg"
	};

	var params = {
		quality: "high",
		bgcolor: "#000000",
		width: "500",
		height: "356",
		align: "middle",
		wmode: "transparent",
		allowFullScreen: "true",
		allowScriptAccess: "sameDomain",
		type: "application/x-shockwave-flash",
		pluginspage: "http://www.macromedia.com/go/getflashplayer"
	};

	swfobject.embedSWF("/swf/player/jwplayer.swf", divId, "500", "356", "9.0.0", "/swf/player/expressInstall.swf", flashvars, params);

}


/**
 * Muestra el reproductor con el vídeo que le pasamos como parámetro, dentro
 * del div especificado
 */
function showLivePlayer(url, divId)
{

	var flashvars = {
		logo: "/images/logo-player-live.png",
		type: "video",
		file: url,
		autostart: "true"
	};

	var params = {
		quality: "high",
		bgcolor: "#000000",
		width: "500",
		height: "356",
		align: "middle",
		wmode: "transparent",
		allowFullScreen: "true",
		allowScriptAccess: "sameDomain",
		type: "application/x-shockwave-flash",
		pluginspage: "http://www.macromedia.com/go/getflashplayer"
	};

	swfobject.embedSWF("/swf/player/jwplayer.swf", divId, "500", "356", "9.0.0", "/swf/player/expressInstall.swf", flashvars, params);

}


/**
 * Muestra el reproductor con el vídeo que le pasamos como parámetro, dentro
 * del div especificado
 */
function showLiveChat(id, user, divId)
{

	var flashvars = {
		idvideo: id,
		iduser: user
	};

	var params = {
		quality: "high",
		bgcolor: "#000000",
		width: "300",
		height: "300",
		align: "middle",
		wmode: "transparent",
		allowFullScreen: "true",
		allowScriptAccess: "sameDomain",
		type: "application/x-shockwave-flash",
		pluginspage: "http://www.macromedia.com/go/getflashplayer"
	};

	swfobject.embedSWF("/swf/player/yograbolivechat10.swf", divId, "300", "300", "9.0.0", "/swf/player/expressInstall.swf", flashvars, params);

}

/**
 * Muestra el grabador para el vídeo que le pasamos como parámetro, dentro
 * del div especificado
 */
function showRecorder(videocode, divId)
{
	var params = {
		quality: "high",
		bgcolor: "#ffffff",
		width: "400",
		height: "340",
		align: "middle",
		wmode: "transparent",
		allowFullScreen: "true",
		allowScriptAccess: "sameDomain",
		type: "application/x-shockwave-flash",
		pluginspage: "http://www.macromedia.com/go/getflashplayer"
	};

	swfobject.embedSWF("/swf/recorder/flvrecorder.swf?filename=" + videocode, divId, "400", "340", "9.0.0", "/swf/player/expressInstall.swf", false, params);
}

/**
 * Comprueba que se haya introducido una contraseña
 */
function checkPassword()
{
    writeInnerMsg('msgArea', '');

    if ($("#videopasswd").val().trim() == '') {
        writeInnerMsg('msgArea', _TEXTS_JS['EMPTY_VIDEO_PASS']);
    } else {
        return true;
    }

	return false;
}

/**
 * Funciones para el paginado AJAX de amigos
 */

var fcpage = 1; // Friend Current Page: página actual seleccionada

/**
 * Página anterior
 */
function friendsPgDown()
{
    if (fcpage > 1) {
        $("#friendsContainer").load('/remote-php/getUserFriends.php', {page: --fcpage});
    }

    if (fcpage == 1) {
        $('#lnkPgDown').css({display: "none"});
        $('#pgDown').css({display: ""});
    }

    if (fcpage == friendsTotalPages - 1) {
        $('#pgUp').css({display: "none"});
        $('#lnkPgUp').css({display: ""});
    }
}

/**
 * Página siguiente
 */
function friendsPgUp()
{
    if (fcpage < friendsTotalPages) {
        $("#friendsContainer").load('/remote-php/getUserFriends.php', {page: ++fcpage});
    }

    if (fcpage == 2) {
        $('#pgDown').css({display: "none"});
        $('#lnkPgDown').css({display: ""});
    }

    if (fcpage == friendsTotalPages) {
        $('#pgUp').css({display: ""});
        $('#lnkPgUp').css({display: "none"});
    }
}

/**
 * Actualiza la fecha en el input al seleccionarla en el calendario
 */
function dateChanged(calendar){
    var d = calendar.date.getDate();
    var m = calendar.date.getMonth() + 1;
    var y = calendar.date.getFullYear();

    d = (d < 10) ? ("0" + d) : d;
    m = (m < 10) ? ("0" + m) : m;

    input = document.getElementById('selectedDate');
    input.value = y + '/' + m + '/' + d;
}

/**
 * Función que se llama mientras se crea el calendario
 * para desactivar las fechas pasadas
 */
function disableDate(date) {
    var now = new Date;

    var dayNow    = now.getDate();
    var monthNow  = now.getMonth() + 1;
    var yearNow   = now.getFullYear();
    var dayDate   = date.getDate();
    var monthDate = date.getMonth() + 1;
    var yearDate  = date.getFullYear();

    if (yearDate < yearNow) {
        return true;
    } else if (yearDate == yearNow && monthDate < monthNow) {
        return true;
    } else if (yearDate == yearNow && monthDate == monthNow && dayDate <= dayNow) {
        return true;
    } else {
        return false;
    }
}

/**
 * Comprueba que se haya introducido toda la información necesaria para proceder
 * a grabar un vídeo programado
 */
function checkScheduledData()
{
    writeInnerMsg('msgArea', '');

    if ($("#title").val().trim() == '') {
        writeInnerMsg('msgArea', _TEXTS_JS['EMPTY_VIDEO_TITLE']);
        $("#title").focus();
    } else if ($("#description").val().trim() == '') {
        writeInnerMsg('msgArea', _TEXTS_JS['EMPTY_VIDEO_DESC']);
        $("#description").focus();
	} else if ($("#email").val().trim() == '') {
        writeInnerMsg('msgArea', _TEXTS_JS['EMPTY_EMAIL']);
        $("#email").focus();
	} else if (!isValidMailFormat($("#email").val())) {
		writeInnerMsg('msgArea', _TEXTS_JS['INVALID_MAIL_FOMAT']);
		$("#email").focus();
	} else if ($("#emailrep").val().trim() == '') {
        writeInnerMsg('msgArea', _TEXTS_JS['EMPTY_EMAILREP']);
        $("#emailrep").focus();
	} else if (!isValidMailFormat($("#emailrep").val())) {
		writeInnerMsg('msgArea', _TEXTS_JS['INVALID_MAIL_FOMAT']);
		$("#emailrep").focus();
	} else if ($("#email").val() != $("#emailrep").val()) {
		writeInnerMsg('msgArea', _TEXTS_JS['MISMATCH_EMAILS']);
		$("#emailrep").focus();
	} else if ($("#selectedDate").val().trim() == '') {
        writeInnerMsg('msgArea', _TEXTS_JS['EMPTY_DATE']);
    } else {
        return true;
    }

	return false;
}

function Live_GetSendResult ( options )
{
		document.live_chat.message.value="";
}

function Live_SendMessage ( VideoId, VideoMsg ) {

		var options = {
			method:	'POST',
			url: '/remote-php/liveSendMessage.php',
			queryVars: {id: VideoId, msg: VideoMsg},
			responseType: 'text',
			handler: Live_GetSendResult,
			showLoading: false,
			debug: true
		};

		ajaxSendRequest(options);
		document.live_chat.history.value=document.live_chat.history.value + VideoMsg + "\n";

}

