
var digits = "0123456789";
var floatDigits = "0123456789.,";
var ajaxURL = "http://www.immomig.ch/immobilier/pages/queryAjax.php";
var isCaptchar;

<!-- Soumission d'un formulaire !-->
function submitForm(form){
    if (document.getElementById && document.getElementById(form) != null){
        formId = document.getElementById(form);
        formId.submit();
    }
}

<!-- V�rification des formulaires !-->
<!-- Les champs qui doivent �tre v�rifi�s doivent avoir un attribut "id" dont la valeur vaut "required" !!! !-->
function checkForm(form){

    var num_elements = form.elements.length;
    var error = false;
    var focused = false;
	
    // Parcours du formulaire � la recherche de champs obligatoires et vides:
    for(var i = 0; i < num_elements ; i++){
        if(form.elements[i].id == "required" || form.elements[i].id == "required_hidden"){
            if(form.elements[i].value == ""){
                error = true;
                form.elements[i].className = "text_obligatory";
                if(!focused){
                    form.elements[i].focus();
                    focused = true;
                }
            }else form.elements[i].className = "text";
        }
    }

    // Alerte en cas d'erreur:
    if(error){
        alert("You must fill out the red fields.");
        return false;
    }else if(form.name == 'ask'){
    	return checkPrices(form);
    }else{
        // Validit� de l'e-mail, des mots de passe, des conditions:

       return (checkCaptcha(form) && checkEmail(form) && checkUrl(form) && checkPassword(form) && checkConditions(form) && checkUsernamePassword(form) && checkMinLength(form));
    }
}

<!-- V�rification online !-->
function checkMinLength(form){
    if(form.username.value.length< 5){
        alert('Your username must have at least 5 characters.');
        return false;
    }
    if(form.password.value.length<= 5){
        alert('Your password must have at least 5 characters.');
        return false;
    }
    return true;
}

function checkUsernamePassword(form){
    if(form.password.value == form.username.value){
        alert('The password and the username must be different for security reasons.');
        return false;
    }
    return true;
}
<!-- Obsol�te? !-->
function checkOnline(form){
    var radio = form.elements['object[online]']; // arrrghh....
    if(!radio[0].checked && !radio[1].checked){
        alert('Please specify if you want to publish your ad immediately!');
        return false;
    }
}

<!-- V�rification fichier image !-->
function checkFile(form){
    if(form.userfile.value == ''){
        alert('To insert a picture, click on \"Browse...\" and select the appropriate file!');
        return false;
    }
    // Sinon, soumission du formulaire:
    form.img_upload.value = true;
    form.submit();

}
<!-- V�rification lien -->
function checkPano(form){
	if(!checkLink(form.link.value)){
		alert('This link is not valid. Please try again.');
		return false;
	}
	if(form.title.value ==''){
		alert('Your panoramic view must have a title.');
		return false
	}
	form.submit();
}

function checkLink(link){
	if(link.toLowerCase().substr(0,7) == 'http://'){
		if(link.length>=12){
			if(link.indexOf('.', 0) != -1){
				return true;
			}else{
				return false;
			}
		}else{
			return false;
		}
	}else{
		return false;
	}
}
<!-- V�rification des mots de passe !-->
function checkPassword(form){

    if(form.password && form.password_confirm){
        if(form.password.value != form.password_confirm.value){
            form.password.className = "text_obligatory";
            form.password_confirm.className = "text_obligatory";
            form.password.focus();
            alert("Password and password confirmation should match.");
            return false;
        }else{
            form.password.className = "text";
            form.password_confirm.className = "text";
            return true;
        }
    }
}
<!-- V�rification de l'email !-->
function checkEmail(form){
    if(form.email && form.email.id != 'hidden' && form.email.value != ''){
        validRegExp = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
        strEmail = form.email.value;

        if (!validRegExp.test(strEmail)) {
            form.email.className = "text_obligatory";
            form.email.focus();
            alert('A valid e-mail address is required!');
            return false;
        }else{
            form.email.className = "text";
        }
    }
    return true;
}

<!-- V�rification de l'url !-->
function checkUrl(form){
    if(form.url != null && form.url.id != 'hidden' && form.url.value != ''){
        validRegExp = /^\s*(?:https?:\/\/)([-a-zA-Z0-9]+\.)+([-a-zA-Z0-9]+)(?:\/.*)?/;
        strUrl = form.url.value;

        if (!validRegExp.test(strUrl)) {
            form.url.className = "text_obligatory";
            form.url.focus();
            alert('Please check the URL format for the website! \\nExample:\\nhttp://www.immomig.ch');
            return false;
        }else{
            form.url.className = "text";
        }
    }
    return true;
}

<!-- Condtions g�n�rales !-->
function checkConditions(form){
    if(form.conditions != null && !form.conditions.checked){
        alert('You have to read and accept the general conditions!');
        return false;
    }
    return true;
}

<!-- V�rification 'prix de' et 'prix �' !-->
function checkPrices(form){
    if(form.price_from && form.price_to){
        // Suppression de guillemets:
        var price_from = Number(form.price_from.value.replace(/'/g, ""));
        var price_to = Number(form.price_to.value.replace(/'/g, ""));
        //alert(price_from);
        //alert(price_to);
        if(price_from && price_to){
            if(price_from > price_to){
                alert('Please check the values in the \"Price\" fields!');
                return false;
            }
        }
    }
}

<!-- Verification of captcha !-->
function checkCaptcha(form){
	var captcha = form.captcha.value;
	if (form.captcha.name == "captcha_contact") {
		page = "contact";
	} else {
		page = "recommend";
	}

	var url = ajaxURL+"?q="+captcha+"&action=validateCaptcha&page="+page;
	
	$.ajax({
        url: url,
        async: false,
        success: function(msg)
        {
           if (msg == "true") {
           		isCaptchar = true;
           } else {
               isCaptchar = false;
               $('#captcha').attr('class', 'text_obligatory');
               $('#captcha').focus();
               alert('Please enter the security code!');
           }
           
        }
    });
    
    return isCaptchar;
}

<!-- Redirection !-->
function redirect(option, url){
    var name = option.name;
    var value = option.options[option.selectedIndex].value;
    var new_location = url + "&" + name + "=" + value;
    //alert(new_location);
    window.location.replace(new_location);
}

<!-- Remplacement de la page actuelle !-->
function replace(url){
    document.location.replace(url);
}


<!-- PopUp !-->
function popUp(url, title, w, h) {
    if(isNaN(w)){
        w = '400';
    }
    if(isNaN(h)){
        h = '500';
    }
    window.open(url, 'Window', 'width=' + w + ', height=' + h + ', toolbar=no, scrollbars=no, resizable=yes');
    //return false;
}

<!-- Afficher un �l�ment !-->
function displayElement(id){
    if (document.getElementById && document.getElementById(id) != null){
        document.getElementById(id).style.visibility='visible';
        document.getElementById(id).style.display='block';
    }
}

<!-- Cacher un �l�ment !-->
function hideElement(id){
    if (document.getElementById && document.getElementById(id) != null){
        document.getElementById(id).style.visibility='hidden';
        document.getElementById(id).style.display='none';
    }
}
<!-- Rendre un �l�ment obligatoire > FAUX : tous les �lements cach�s !-->
function setRequired(form){
    var num_elements = form.elements.length;
    for(var i = 0; i < num_elements ; i++){
        //alert(form.elements[i].name + form.elements[i].id);
        if(form.elements[i].id == "hidden"){
            form.elements[i].id = "required_hidden";
        }
    }
}
<!-- Rendre un �l�ment non-obligatoire > FAUX : tous les �lements cach�s !-->
function setHidden(form){
    var num_elements = form.elements.length;
    for(var i = 0; i < num_elements ; i++){
        if(form.elements[i].id == "required_hidden"){
            form.elements[i].id = "hidden";
        }
    }
}

<!-- Remplacer le contenu d'un �l�ment !-->
function setString(id, string){
    if (document.getElementById && document.getElementById(id) != null){
        document.getElementById(id).innerHTML=string;
    }
}

<!-- Cette fonction permet de d�sactiver le champ "price" si on s�lectionne l'option "Sur demande" !-->
function on_demand(form) {
   if (form.price_on_demand.checked == true){
      form.price_on_demand.value="1";
      // Effacement de la valeur du champ prix:
      form.elements['object[price]'].value="";
      // Le champ prix n'est plus obligatoire:
      form.elements['object[price]'].id="not_required";
      form.elements['object[price]'].className = "text"
   }else {
      form.price_on_demand.value="0";
      form.elements['object[price]'].id="required";
    }
    //alert(form.elements['object[price]'].id);
}

<!-- Valeur num�rique !-->
function checkNumeric(input){
    var string = stripChars(new String(input.value),new String(digits)).valueOf();
    //alert(string);
    input.value = string;
}

<!-- Valeur flottante !-->
function checkFloat(input){
    var string = stripChars(new String(input.value),new String(floatDigits)).valueOf();
    //alert(string);
    input.value = string;
}

<!-- Formatage automatique du prix !-->
function checkPriceFormat(input){
    var valoare = input.value;
    var sir = stripChars(new String(valoare),new String(digits)).valueOf();
    sirrev = sir.split("").reverse();
    var arfin = new Array();
    for (i=0;i < sirrev.length;i++){
        if (i > 0 && i%3==0){
            arfin[i] = sirrev[i]+"'";
        }
        else {
            arfin[i] = sirrev[i];
        }
    }
    sirfin = arfin.reverse().join("");
    input.value = sirfin;
}

<!-- Supprime les caract�res ind�sirables !-->
function stripChars(s, bag){
    var i;
    var returnString = "";
    for (i = 0; i < s.length; i++){
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) != -1) returnString += c;
    }
    return returnString;
}




<!-- Toutes les fonctions pour la mise en forme de texte -->
function storeCaret(selec, textareaname)
{
    var isMozilla = (navigator.userAgent.toLowerCase().indexOf('gecko')!=-1) ? true : false;
    var regexp = new RegExp("[\r]","gi");
    if (isMozilla)
    {
    // Si on est sur Mozilla

        oField = document.forms['object_data'].elements[textareaname];

        objectValue = oField.value;

        deb = oField.selectionStart;
        fin = oField.selectionEnd;

        objectValueDeb = objectValue.substring( 0 , oField.selectionStart );
        objectValueFin = objectValue.substring( oField.selectionEnd , oField.textLength );
        objectSelected = objectValue.substring( oField.selectionStart ,oField.selectionEnd );

    //  alert("Debut:'"+objectValueDeb+"' ("+deb+")\nFin:'"+objectValueFin+"' ("+fin+")\n\nSelectionn�:'"+objectSelected+"'("+(fin-deb)+")");

        oField.value = objectValueDeb + "[" + selec + "]" + objectSelected + "[/" + selec + "]" + objectValueFin;
        oField.selectionStart = strlen(objectValueDeb);
        oField.selectionEnd = strlen(objectValueDeb + "[" + selec + "]" + objectSelected + "[/" + selec + "]");
        oField.focus();
        oField.setSelectionRange(
            objectValueDeb.length + selec.length + 2,
            objectValueDeb.length + selec.length + 2);
    }
    else
    {
    // Si on est sur IE

        oField = document.forms['object_data'].elements[textareaname];
        var str = document.selection.createRange().text;

        if (str.length>0)
        {
        // Si on a selectionn� du texte
            var sel = document.selection.createRange();
            sel.text = "[" + selec + "]" + str + "[/" + selec + "]";
            sel.collapse();
            sel.select();
        }
        else
        {
            oField.focus(oField.caretPos);
        //  alert(oField.caretPos+"\n"+oField.value.length+"\n")
            oField.focus(oField.value.length);
            oField.caretPos = document.selection.createRange().duplicate();

            var bidon = "%~%";
            var orig = oField.value;
            oField.caretPos.text = bidon;
            var i = oField.value.search(bidon);
            oField.value = orig.substr(0,i) + "[" + selec + "][/" + selec + "]" + orig.substr(i, oField.value.length);
            var r = 0;
            for(n = 0; n < i; n++)
            {if(regexp.test(oField.value.substr(n,2)) == true){r++;}};
            pos = i + 2 + selec.length - r;
            //placer(document.forms['news'].elements['newst'], pos);
            var r = oField.createTextRange();
            r.moveStart('character', pos);
            r.collapse();
            r.select();

        }
    }
}
function checkCountry(idCountry){
    if(idCountry==187){
        $("#canton_tr").css("display", "table-row");
    }else{
        $("#canton_id").val("all");
        $("#canton_tr").css("display", "none");
    }
}

function setImageBox()
{
    $('.imagebox').lightBox(
	   {
	  	   imageLoading:			'/immobilier/js/lib/jqlightbox/images/lightbox-ico-loading.gif',
	       imageBtnPrev:			'/immobilier/js/lib/jqlightbox/images/lightbox-btn-prev.gif',
	       imageBtnNext:			'/immobilier/js/lib/jqlightbox/images/lightbox-btn-next.gif',
	       imageBtnClose:			'/immobilier/js/lib/jqlightbox/images/lightbox-btn-close.gif',
	       imageBlank:				'/immobilier/js/lib/jqlightbox/images/lightbox-blank.gif',
	       txtImage:                '',
	       txtOf:                   '/'
	   }
	);
}

$(document).ready(function() {
	setImageBox();
	
	
	if($('div').hasClass('scroll_checklist_hide')){
		$('.scroll_checklist_button').toggle(function(){
			$(".scroll_checklist_hide", $(this).parent()).slideDown();
			$(this).parent().addClass('scroll_checklist_open');
			multiIndex++;
			$(this).parent().css({zIndex:60+multiIndex});
		},function(){
			$(".scroll_checklist_hide", $(this).parent()).slideUp(function(){
				$(this).parent().removeClass('scroll_checklist_open');
				$(this).parent().css({zIndex:"1"});
			});
		});
	}
}); 

function lightboxTrigger()
{
	$('#pic_' + idZoom).trigger('click');
} 

function sendData(type, url, data, sfunc)
    {
    $.ajax({
        type: type,
        url: url,
        data: data,
        //dataType: 'data',
        success: function(msg)
        {
            if (sfunc != null) {
            	sfunc(msg);
            } else {
           		return false;
            }
        },
        error: function()
        {}
    });
} 

