fact_to = {'freelance':{},'company':{}};
search_words_on_to = null;
tag_words_on_to = null;
trigger_fact = function(fact) {
    var tmp = fact.split('_');
    var type=tmp[0];
    var id=tmp[2];
    if (fact_to[type][id]==null) {
        fact_to[type][id] = setTimeout("show_fact('"+fact+"')",500);
    }
}
cancel_fact = function(fact) {
    var tmp = fact.split('_');
    var type=tmp[0];
    var id=tmp[2];
    if (fact_to[type][id]) {
        clearTimeout(fact_to[type][id]);
        fact_to[type][id] = null;
    }
}
show_fact = function(fact) {
    var tmp = fact.split('_');
    var type=tmp[0];
    var id=tmp[2];
    var color='orange';
    if (type=='freelance') { color='green'; }
    var fact_elt = $(fact);
    var fact_title = $(fact+'_title');
    if (fact_elt && !fact_elt.visible()) {
        fact_elt.show();
        fact_title.toggleClassName(color)
    }
    else { return; }
    var facts = $$('div.'+type+'_fact');
    var len = facts.length;
    for (var i=0; i<len; i++) {
        if (facts[i].visible() && facts[i].id != fact_elt.id) {
            $(facts[i].id+'_title').toggleClassName(color);
            facts[i].hide();
        }
    }
}

limitText = function(elt,counter,limit) {
   if (elt.value.length > limit) {
       elt.value = elt.value.substring(0,limit);
   } else {
       counter.innerHTML = limit - elt.value.length;
   }
}

showErr = function(elt_name) {
    var elt = $(elt_name+'_err');
    if (!elt.visible()) elt.show();
}

hideErr = function(elt_name) {
    var elt = $(elt_name+'_err');
    if (elt.visible()) elt.hide();
}

no_missing_fields = function() {
    var pass = true;
    var required = $$('input.required');
    for (i=0; i<required.length; i++) {
        if (required[i].name.indexOf('config_')==-1) {
            var err_elt = $(required[i].name+'_err');
        } else {
            var err_elt = $(required[i].name.substr(7,required[i].name.length-7)+'_err');
        }
        var ok =(required[i].value!='');
        if (!ok) pass=false;
        if (!ok && !err_elt.visible()) {
            err_elt.show();
        } else if (ok && err_elt.visible()) {
            err_elt.hide();
        }
    }
    return pass;
}

function user_echeck(str) {
    var at="@";
    var dot=".";
    var lat=str.indexOf(at);
    var lstr=str.length;
    var ldot=str.indexOf(dot);
    if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr) return false;
    if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr) return false;
    if (str.indexOf(at,(lat+1))!=-1) return false;
    if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot) return false;
    if (str.indexOf(dot,(lat+2))==-1) return false;
    return true;
}

function user_validateEmail(emailID){
    if ((emailID.value==null)||(emailID.value=="")){
        showErr(emailID.name);
        return false;
    }
    if (user_echeck(emailID.value)==false){
        showErr(emailID.name);
        return false;
    }
    hideErr(emailID.name);
    return true
}

action_recommendToFriends = function() {
    var inputs = $$('input.input_box');
    for (i=0; i<inputs.length; i++) { $(inputs[i].name+'_err').hide(); }
    var elt = $('recommendForm');
    var name = elt['sender_name'].value;
    var email1 = elt['email1'].value;
    var email2 = elt['email2'].value;
    var email3 = elt['email3'].value;
    var captcha = elt['captcha'].value;
    var pass=true;
    if (!no_missing_fields()) pass=false;
    if (!user_validateEmail(elt['email1'])) pass=false;
    if (email2!='' && !user_validateEmail(elt['email2'])) pass=false;
    if (email3!='' && !user_validateEmail(elt['email3'])) pass=false;
    if (pass) { document.recommendForm.submit(); }
}

action_sendContactMessage = function() {
    var inputs = $$('input.input_box');
    for (i=0; i<inputs.length; i++) { $(inputs[i].name+'_err').hide(); }
    var elt = $('contactForm');
    var name = elt['sender_name'].value;
    var email1 = elt['email'].value;
    var email2 = elt['subject'].value;
    var captcha = elt['captcha'].value;
    var pass=true;
    if (!no_missing_fields()) pass=false;
    if (!user_validateEmail(elt['email'])) pass=false;
    if (pass) { document.contactForm.submit(); }
}

action_sendInvitation = function() {
    var inputs = $$('input.input_box');
    for (i=0; i<inputs.length; i++) { $(inputs[i].name+'_err').hide(); }
	hideErr('message');
    var elt = $('invitationForm');
    var pass=true;
    if (!no_missing_fields()) pass=false;
    if (document.invitationForm.message.value=='') {
		showErr('message');
		pass=false;
	}
    if (pass) { document.invitationForm.submit(); }
}

action_proposeService = function() {
    var inputs = $$('input.input_box');
    for (i=0; i<inputs.length; i++) { $(inputs[i].name+'_err').hide(); }
	hideErr('message');
    var elt = $('proposalForm');
    var pass=true;
    if (!no_missing_fields()) pass=false;
    if (document.proposalForm.message.value=='') {
		showErr('message');
		pass=false;
	}
    if (pass) { document.proposalForm.submit(); }
}

action_sendProposal = function() {
    var inputs = $$('input.input_box');
    for (i=0; i<inputs.length; i++) { $(inputs[i].name+'_err').hide(); }
	hideErr('message');
    var elt = $('proposalForm');
    var pass=true;
    if (!no_missing_fields()) pass=false;
    if (document.proposalForm.message.value=='') {
		showErr('message');
		pass=false;
	}
    if (pass) { document.proposalForm.submit(); }
}

action_sendRecommendation = function() {
    var inputs = $$('input.input_box');
    for (i=0; i<inputs.length; i++) { $(inputs[i].name+'_err').hide(); }
	hideErr('project');
	hideErr('relation');
	hideErr('message');
    var elt = $('recommendationForm');
    var pass=true;
    if (!no_missing_fields()) pass=false;
    if (document.recommendationForm.project.value=='') { showErr('project'); pass=false; }
    if (document.recommendationForm.relation.value=='') { showErr('relation'); pass=false; }
    if (document.recommendationForm.message.value=='') { showErr('message'); pass=false; }
    if (pass) { document.recommendationForm.submit(); }
}

action_sendRating = function() {
    var inputs = $$('input.input_box');
    for (i=0; i<inputs.length; i++) { $(inputs[i].name+'_err').hide(); }
	hideErr('rating1');
	hideErr('rating2');
	hideErr('rating3');
    var elt = $('evaluateForm');
    var pass=true;
    if (!no_missing_fields()) pass=false;
    if (document.evaluateForm.rating1.value=='0') { showErr('rating1'); pass=false; }
    if (document.evaluateForm.rating2.value=='0') { showErr('rating2'); pass=false; }
    if (document.evaluateForm.rating3.value=='0') { showErr('rating3'); pass=false; }
    if (pass) { document.evaluateForm.submit(); }
}

action_applyJob = function() {
    var inputs = $$('input.input_box');
    for (i=0; i<inputs.length; i++) { $(inputs[i].name+'_err').hide(); }
	hideErr('message');
    var elt = $('jobForm');
    var message = elt['message'].value;
    var pass=true;
    if (!no_missing_fields()) pass=false;
    if (document.jobForm.message.value=='') {
		showErr('message');
		pass=false;
	}
    if (pass) { document.jobForm.submit(); }
}

action_sendReferal = function() {
    var inputs = $$('input.input_box');
    for (i=0; i<inputs.length; i++) { $(inputs[i].name+'_err').hide(); }
	hideErr('message');
    var elt = $('referForm');
    var type = elt['type'].value;
    var first_name = elt['first_name'].value;
    var last_name = elt['last_name'].value;
    var email = elt['email'].value;
    var pass=true;
    if (!no_missing_fields()) pass=false;
    if (!user_validateEmail(elt['email'])) pass=false;
    if (document.referForm.typecompany.checked &&
		document.referForm.company.value=='') {
		showErr('company');
		pass=false;
	}
    if (document.referForm.message.value=='') {
		showErr('message');
		pass=false;
	}
    if (pass) { document.referForm.submit(); }
}

action_nextMassReferal = function() {
    var inputs = $$('input.input_box');
    for (i=0; i<inputs.length; i++) { $(inputs[i].name+'_err').hide(); }
	hideErr('message');
    var elt = $('massReferForm');
    var pass=true;
    if (!no_missing_fields()) pass=false;
    if (document.massReferForm.contacts.value=='') {
		showErr('contacts');
		pass=false;
	}
    if (document.massReferForm.message.value=='') {
		showErr('message');
		pass=false;
	}
    if (pass) { document.massReferForm.submit(); }
}

action_sendMassReferal = function() {
    var inputs = $$('input.input_box');
    for (i=0; i<inputs.length; i++) { $(inputs[i].name+'_err').hide(); }
	hideErr('message');
    var elt = $('massReferForm');
    var pass=true;
    if (!no_missing_fields()) pass=false;
    if (document.massReferForm.message.value=='') {
		showErr('message');
		pass=false;
	}
    if (pass) { document.massReferForm.submit(); }
}

action_manageAlerts = function() {
	document.alertsForm.process.value='manage';
	document.alertsForm.submit();
}

action_deleteAlert = function(id) {
	document.alertsForm.process.value='delete';
	document.alertsForm.selected_item.value=id;
	document.alertsForm.submit();
}

action_postJob = function() {
    var inputs = $$('input.input_box');
    for (i=0; i<inputs.length; i++) { $(inputs[i].name+'_err').hide(); }
	hideErr('rate_unit');
	hideErr('duration_unit');
	hideErr('description');
    var elt = $('jobForm');
    var techno = elt['techno'].value;
    var rate = elt['rate'].value;
    var skills = elt['skills'].value;
    var title = elt['title'].value;
    var pass=true;
    if (!no_missing_fields()) pass=false;
    if ((document.jobForm.rate.value=='') && (document.jobForm.rate_unit.value!='')) {
		showErr('rate');
		pass=false;
	}
    if ((document.jobForm.rate.value!='') && (document.jobForm.rate_unit.value=='')) {
		showErr('rate_unit');
		pass=false;
	}
    if ((document.jobForm.duration.value=='') && (document.jobForm.duration_unit.value!='')) {
		showErr('duration');
		pass=false;
	}
    if ((document.jobForm.duration.value!='') && (document.jobForm.duration_unit.value=='')) {
		showErr('duration_unit');
		pass=false;
	}
    if (document.jobForm.description.value=='') {
		showErr('description');
		pass=false;
	}
    if (pass) { document.jobForm.submit(); }
}

sword_select = function(elt_name) {
    $('search_query').value=$(elt_name).innerHTML;
    search_hide_words();
    search_fbc();
}

search_fbc = function(new_search,ctx) {
    var rank=$('search_rank').value;
    var q=$('search_query').value;
    var page=$('search_page').value;
    if (new_search) { rank = 'relevancy/desc'; page='0'; }
    if (q=='' && new_search) { rank=''; }
    var filters=$('search_filters').value;
    var select_ctx=$('search_context');
    if (!ctx) { ctx=select_ctx.options[select_ctx.selectedIndex].value;}
    else if (ctx=='member' || ctx=='company') { filters=''; rank=''; }
    var loc='/search/'+ctx+'/'+page+'+q='+q+'&rank='+rank+'&filters='+filters;
    window.location=loc;
}

search_filter = function() {
    var filters = $$('select.search_filter');
    var filter_list = '';
    var tmp='';
    var filter_name='';
    var separator = '';
    if (filters.length>0) {
        for (var i=0; i<filters.length; i++) {
            tmp=filters[i].name.split('_');
            filter_name=tmp[1];
            tmp=filters[i].options[filters[i].selectedIndex].value;
            if (tmp!='') {
                filter_list += separator+filter_name+'-'+tmp;
                separator='|';
            }
        }
    }
    $('search_filters').value=filter_list;
    search_fbc(true);
}

search_hide_words = function() { $('search_words').hide(); }
search_show_words = function() {
    var q=$('search_query').value;
    if (q.length>0) {
        new Ajax.Request('/ajax/search_words+q='+q,{
            method:'get',
            onSuccess: function(transport) {
                    $('search_words').update(transport.responseText);
                    $('search_words').show();
                }
            });
    } else search_hide_words();
}

search_move = function(dir) {
    var words = $$('tr.sword');
    var index=0;
    for (i=0; i<words.length; i++) {
        if (words[i].hasClassName('selected')) {
            index=i;
            if (dir=='down') {
                words[index++].toggleClassName('selected');
            } else {
                words[index--].toggleClassName('selected');
            }
        }
    }
    words[index].toggleClassName('selected');
    $('search_query').value=$('sword_'+index).innerHTML;
}

search_keyPress = function(evt) {
	evt = (evt) ? evt : window.event;
    if (search_words_on_to) clearTimeout(search_words_on_to);
	if (evt.keyCode == 13) { // enter
        search_hide_words();
        search_fbc(true);
        return;
    } else if (evt.keyCode == 27) { // escape
        $('search_words').hide();
        return;
    } else if (evt.keyCode == 38) { // arrow up
        search_move('up');
        return;
    } else if (evt.keyCode == 40) { // arrow down
        search_move('down');
        return;
    } else {
        search_words_on_to = setTimeout("search_show_words()",500);
    }
}

action_getNewPassword = function() {
    var inputs = $$('input.input_box');
    for (i=0; i<inputs.length; i++) { $(inputs[i].name+'_err').hide(); }
    var elt = $('passwordForm');
    var email = elt['email'].value;
    var captcha = elt['captcha'].value;
    var pass=true;
    if (!no_missing_fields()) pass=false;
    if (!user_validateEmail(elt['email'])) pass=false;
    if (pass) { document.passwordForm.submit(); }
}

edit_in_place = function(name,process) {
    var elt = $(name);
    var span = $(name+'_span');
    var input = $(name+'_input');
    var edit = $(name+'_edit');
    var unit = $(name+'_unit');
    var fdate = $(name+'_date');
    if (process) {
        if (process=='apply') {
            var v = "";
            if (input) { v+=input.value+' '; }
            if (unit) { v+=unit.options[unit.selectedIndex].innerHTML; }
            if (fdate) { v+=' '+fdate.value; }
            v=v.replace(/\n/g,"<br/>");
            span.innerHTML=v;
        }
        edit.hide();
        elt.show();
    } else {
        elt.hide();
        edit.show();
        if (input) {
            input.select();
            input.focus();
        }
    }
}

textarea_keyPress = function(evt,name) {
	evt = (evt) ? evt : window.event;
    if (evt.keyCode == 27) { // escape
        edit_in_place(name,'cancel');
        return;
    }
}

input_keyPress = function(evt,name) {
	evt = (evt) ? evt : window.event;
	if (evt.keyCode == 13) { // enter
        var input = $(name+'_input');
        if (input && input.value=='') { edit_in_place(name,'cancel'); }
        else { edit_in_place(name,'apply'); }
    } else if (evt.keyCode == 27) { // escape
        edit_in_place(name,'cancel');
        return;
    }
}

tag_add = function(ns) {
    var input = $('tag_'+ns+'_input');
    var name = input.value;
    if (name.length==0) return false;
    var tags = $$('input.tag_'+ns);
    var res = $('job_'+ns);
    var tag_list = name;
    if (tags.length>0) {
        for (var i=0; i<tags.length; i++) {
            tag_list += '|'+tags[i].value;
        }
    }
    res.value = tag_list;
    tag_hide_words(ns);
    new Ajax.Request('/ajax/tag_list+tags='+tag_list+'&ns='+ns,{
        method:'get',
        onSuccess: function(transport) {
                $('tags_'+ns).update(transport.responseText);
                input.clear();
            }
        });
}

tag_remove = function(ns) {
    var tags = $$('input.tag_'+ns);
    var tags_length = tags.length;
    var res = $('job_'+ns);
    var tag_list = "";
    if (tags_length>0) {
        for (var i=0; i<tags_length; i++) {
            tag_list += tags[i].value;
            if (i!=(tags_length-1)) tag_list += "|";
        }
    }
    console.log(tag_list);
    res.value = tag_list;
}

tag_keyPress = function(evt,ns) {
	evt = (evt) ? evt : window.event;
    if (tag_words_on_to) clearTimeout(tag_words_on_to);
	if (evt.keyCode == 13) { // enter
        tag_hide_words(ns);
        tag_add(ns);
        return;
    } else if (evt.keyCode == 27) { // escape
        $(ns+'_selector').hide();
        return;
    } else if (evt.keyCode == 38) { // arrow up
        tag_move(ns,'up');
        return;
    } else if (evt.keyCode == 40) { // arrow down
        tag_move(ns,'down');
        return;
    } else {
        tag_words_on_to = setTimeout("tag_show_words('"+ns+"')",500);
    }
}

tag_hide_words = function(ns) { $(ns+'_selector').hide(); }
tag_show_words = function(ns) {
    var q=$('tag_'+ns+'_input').value;
    if (q.length>0) {
        new Ajax.Request('/ajax/search_'+ns+'+q='+q,{
            method:'get',
            onSuccess: function(transport) {
                    $(ns+'_selector').update(transport.responseText);
                    $(ns+'_selector').show();
                }
            });
    } else tag_hide_words(ns);
}

tag_move = function(ns,dir) {
    var words = $$('tr.'+ns);
    var index=0;
    for (i=0; i<words.length; i++) {
        if (words[i].hasClassName('selected')) {
            index=i;
            if (dir=='down') {
                words[index++].toggleClassName('selected');
            } else {
                words[index--].toggleClassName('selected');
            }
        }
    }
    words[index].toggleClassName('selected');
    $('tag_'+ns+'_input').value=$(ns+'_'+index).innerHTML;
}

techno_select = function(elt_name) {
    $('tag_techno_input').value=$(elt_name).innerHTML;
    tag_hide_words('techno');
    tag_add('techno');
}

skill_select = function(elt_name) {
    $('tag_skill_input').value=$(elt_name).innerHTML;
    tag_hide_words('skill');
    tag_add('skill');
}

check_disponibility = function() {
    elt = $('freelance_dispo_unit');
    availability = $('freelance_availability');
    dispo = elt.options[elt.selectedIndex].value;
    if (dispo=='I') { availability.show(); }
    else { availability.hide(); }
}

view_cv = function(cv_id,cv_key) {
    new Ajax.Request('/ajax/view_cv+id='+cv_id+'&key='+cv_key,{
        method:'get',
        onSuccess: function(transport) {
                $('please_wait').hide();
                if (transport.responseText.match("PROCESSING")) {
                    $('cv_processing').show();
                } else if (transport.responseText.match("ERROR")) {
                    $('cv_processing').hide();
                    $('cv_error').show();
                } else {
                    $('cv_processing').hide();
                    $('cv_error').hide();
                    $('scribd_viewer').update(transport.responseText);
                }
            }
        });
}


var effect = 1;
var time = 5000;
var current_image = 0;
var next_image = 1;
var rond = new Array();
var zone_text = new Array();
var img = new Array();
var turn = new Boolean();
function initGalerie() {
		turn = true;
		if(document.getElementsByClassName("img_newz")) {
		img = document.getElementsByClassName("img_newz");
		for(i=1; i < img.length; i++) {
			img[i].style.display = "none";
		}
	}
	if(document.getElementsByClassName("rond")) {
		rond = document.getElementsByClassName("rond");
	}
	if(document.getElementsByClassName("zone_text")) {
		zone_text = document.getElementsByClassName("zone_text");
		for(i=1; i < zone_text.length; i++) {
			zone_text[i].style.display = "none";
		}
	}
	document.getElementById("rond_"+(current_image+1)).className='rond_select';
	if(zone_text.length > 1) galerie(effect, time, current_image, next_image, rond, zone_text, img);
}

function galerie() {
	self.setTimeout("nextImage()",time);	
}

function nextImage() {
	if(turn)
	{
		zone_text[current_image].style.display = "none";
		new Effect.Fade(img[current_image]);
		new Effect.Appear(zone_text[next_image]);
		new Effect.Appear(img[next_image]);
		document.getElementById("rond_"+(current_image+1)).className='rond';
		document.getElementById("rond_"+(next_image+1)).className='rond_select';
		if(next_image == (zone_text.length-1)) {
			current_image = next_image;
			next_image = 0;
		} else {
			current_image = next_image;
			next_image++;
		}
		galerie();
	}
	else galerie();
}

function changeNews(rond) {
	turn = false;
	zone_text[current_image].style.display = "none";
	new Effect.Fade(img[current_image]);
	new Effect.Appear(zone_text[rond-1]);
	new Effect.Appear(img[rond-1]);
	document.getElementById("rond_"+(current_image+1)).className='rond';
	document.getElementById("rond_"+(rond)).className='rond_select';
	if((rond-1) == (zone_text.length-1)) {
		current_image = rond-1;
		next_image = 0;
	} else {
		current_image = rond-1;
		next_image = rond;
	}
	self.setTimeout("changeTurn()",time);
}

function changeTurn(){
	turn = true;
}
