/* Quand est-ce que microsoft supportera le DOM corectement ? */
function hasAttribute(attribute) {
    var has=this.getAttribute(attribute);
    return (has==null) ? false : true;
}

function validateGetValueOf(o) {
    var value="";
    if(typeof(o)=="object") {
        switch(o.type) {
            case "select":
                var i=o.options.SelectedIndex;
            value=(i!=-1) ? o.options[i].value : "";
            break;
            case "chackbox":
            case "radio":
            case "input":
            case "textarea":
            case "file":
            default:
                return o.value;
        }
    }
    return value;
}

function validate(hidealert) {
    try {
        var argv = validate.arguments;
        var argc = argv.length;
        var str = "";
        var form_id = "";
        var min_reqs=max_reqs=null;
        if(!document.getElementsByTagName) {
            alert("Sorry! Your browser does not support the W3C HTML DOM!");
            return false;
        }
        if(argc == 2) form_id = argv[1];
        var forms = document.getElementsByTagName('form');
		
        for(var f=0; f<forms.length;f++) {
            if(form_id != '' && form_id != forms[f].id) continue;
            var e=forms[f].elements;
            for(var i = 0; i < e.length; i++) {			                      		
                if(!e[i].hasAttribute) e[i].hasAttribute=hasAttribute;
                if(!e[i].hasAttribute('pattern')) continue;
                var pattern = new RegExp(e[i].getAttribute('pattern'));
                var value = validateGetValueOf(e[i]);
                if (pattern != '/null/') {
                    var offendingChar = value.match(pattern);
                    if(offendingChar == null) {
                        str+= (e[i].hasAttribute('errorMsg')) ?
                            e[i].getAttribute('errorMsg') + "\n" :
                            "Parse error in form ! --"+e[i].name+"\n";
						e[i].className='inputError';    
                        continue;
                    }
                    min_reqs= (e[i].hasAttribute('min')) ? e[i].getAttribute('min') : "";
                    max_reqs= (e[i].hasAttribute('max')) ? e[i].getAttribute('max') : "";
                    if(typeof(e[min_reqs])=="object")
                        min_reqs=validateGetValueOf(e[min_reqs]);
                    if(typeof(e[max_reqs])=="object")
                        min_reqs=validateGetValueOf(e[max_reqs]);
                    if(min_reqs!="") min_reqs=parseFloat(min_reqs);
                    if(max_reqs!="") max_reqs=parseFloat(max_reqs);
                    if ((min_reqs!="" && value < min_reqs) || (max_reqs!="" && value > max_reqs)) {
                        str+= (e[i].hasAttribute('MinMaxerrorMsg')) ?
                            e[i].getAttribute('MinMaxerrorMsg') + "\n" :
                            "Parse error in form : "+e[i].name +": "+min_reqs+"<="+value+"<="+max_reqs+"\n";
						e[i].className='inputError';    
                    } else {
						e[i].className='inputError';    
                        //if(label) $(label).removeClass('error');
                        //if(e[i].getAttribute('type') != 'checkbox') e[i].className='inputValid';
                    }
                }
            }
        }
		if(jQuery('#agence').attr('disabled'))
			var agence = '0';
		else
			var agence = '1';
		if(jQuery('#agence').val() == '0' && agence == '1')
			str+= 'veuillez choisir une agence \n';

		var offendingCharEmail, offendingCharTel, offendingCharMessage;
		if(e['email']) {
			var pattern = new RegExp(e['email'].getAttribute('pattern'));
			var value = validateGetValueOf(e['email']);
			var offendingCharEmail = value.match(pattern);
		}
		if(e['tel_fixe']) {
			var pattern = new RegExp(e['tel_fixe'].getAttribute('pattern'));
			var value = validateGetValueOf(e['tel_fixe']);
			var offendingCharTel = value.match(pattern);
		}
		if(e['message']) {
			var pattern = new RegExp(e['message'].getAttribute('pattern'));
			var value = validateGetValueOf(e['message']);
			var offendingCharMessage = value.match(pattern);
		}
		if (value == 'Message*') offendingCharMessage = null;

		if ((offendingCharEmail != null || offendingCharTel != null) && offendingCharMessage != null && jQuery('#contact')){
			str = '';
		}
        if (str != "" && str!=null) {
            if (hidealert == 1) {
                return false;
            } else {
                alert(str);
               return false;
            }
        } else {
            if(argc == 3 && argv[0].toLowerCase() == 'checkpass') {
                if(checkPass(argv[1], argv[2]) == false) {
                    document.getElementById(argv[1]).className = 'inputError';
                    document.getElementById(argv[2]).className = 'inputError';
                    alert("Merci de saisir les deux même mots de passe");
                    return false;
                }
            }
            return true;
        }
    } catch(err) {alert('ici '+err); }
}

function trim(s) {
    while (s.substring(0,1) == ' ') { s = s.substring(1,s.length); }
    while (s.substring(s.length-1,s.length) == ' ') { s = s.substring(0,s.length-1); }
    return s;
}


function checkPattern(field_id, pattern) {

    if(!document.getElementById(field_id)) { return false; }
    var patterns = new Array();
    patterns['mail']    = /^(.+)@(.+)(\..+)$/;
    patterns['url_xml'] = /^((((ht|f)tp(s?)\:\/)?(\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([a-zA-Z0-9\-\.\?\,\'\/\\\+&%\$#_]*)?)){0,255})$/;
    patterns['lien']    = /^((((ht|f)tp(s?)\:\/)?(\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([a-zA-Z0-9\-\.\?\,\'\/\\\+&%\$#_]*)?)){0,255})$/;
    patterns['code_postal'] = /^(\d){2,5}$/;
    if(!patterns[pattern]) return true;
    var matched = document.getElementById(field_id).value.match(patterns[pattern]);
    return matched ? true : false;
}

function resetVal(elem_id, defVal) { if(document.getElementById(elem_id).value == defVal) document.getElementById(elem_id).value = ''; }
function restoreVal(elem_id, defVal) { if(document.getElementById(elem_id).value == '') document.getElementById(elem_id).value = defVal; }

function checkCP() {
	msg_err = 'Veuillez saisir un code postal valide';
	if(trim(jQuery('#search').val()) != '') {
		noCP = false;
		if(checkPattern('search', 'code_postal')) {
			noCP = false;
		} else {
			noCP = true;
		}
		if(noCP) { alert(msg_err); }
		return !noCP;
	}
	alert(msg_err);
	return false;
}

function tagerimSyndic(){
	if(document.getElementById('tagerim_syndic_2').checked){
		jQuery("#agence_syndic").removeAttr("disabled");
		jQuery("#agence").attr("disabled", "disabled");
	} else {
		jQuery("#agence_syndic").attr("disabled", "disabled");
		jQuery("#agence").removeAttr("disabled");
	}
}

function quick_search(){
	if(!checkCP())
		return false;
	
	if(jQuery("#achat").attr('checked')){
		var $action = jQuery("#action_vente").val();
		jQuery("#search_bien").attr('action',$action);
	}else{
		var $action = jQuery("#action_location").val();
		jQuery("#search_bien").attr('action',$action);
	}
}

window.onload = function() {
	var flash_banniere = jQuery("#pathFlash").val();
    var so = new SWFObject(flash_banniere, "sotester", "515", "85", "7", "");
	so.addParam("wmode", "opaque");
	so.write("header_flash");
	
	var flash_diapo = jQuery("#flash_diapo").val();
    var so = new SWFObject("/flash_diapo/slideshow.swf", "swf_diapo", "227", "97", "0", "");
	so.addParam("flashvars", "urlDiapo=/flash_diapo/xml/"+flash_diapo+".xml");
	so.addParam("wmode", "opaque");
	so.addParam("bgcolor", "#000000");
	so.write("img_bandeau");
	//tracking();
}
