/*  v1.1.0, 14:00:00 31 jul 2007 Liang @YOUJOB

	Action Add and Replace Div 
	ParentNode Name must be 'dragdropDiv'
	Need prototype and scriptaculous

	addTags(actionAdd)
	@param Num actonAdd (0:no Alert; 1:Alert All Tags)
*/


function chksafe(temp){ 
	temp=temp.replace(/\#/g,"");
	temp=temp.replace(/\;/g,""); 
	temp=temp.replace(/\,/g,""); 
	temp=temp.replace(/\'/g,"");
	temp=temp.replace(/\"/g,"");
	temp=temp.replace(/\&/g,"");
	temp=temp.replace(/\=/g,"");    
	temp=temp.replace(/\</g,"");    
	temp=temp.replace(/\>/g,"");    
	temp=temp.replace(/\%/g,"");    
	return temp;
}


function refreshTo(url){	
	document.location.href=url;
}

function alertDiv(title,contenu,pox,poy,ow,oh){
		var o=document.createElement("div")
		o.className="alertDiv";
		o.id="alertDiv";
		document.body.appendChild(o);
		o.style.position = "absolute";
		o.style.left = pox.toString()+"px";
		o.style.top = poy.toString()+"px";
		o.style.width = ow.toString+"px";
		o.style.height = oh.toString+"px";
		o.style.zindex = 100;
		o.innerHTML="<div style='border-style:solid;border-width:1px;border-color:#AAAAAA'><div style='float:left;back;background:#CCCCCC;width:193px'>"+title+"</div><font style='background:#CCCCCC;cursor:pointer' onclick='alertClose(this);'>x</font><div style='clear:both;height:80px'>"+contenu+"</div></div>";
		
}

function alertClose(obj){
	var o=obj.parentNode.parentNode;
	document.body.removeChild(o);
}

function IsValidEmail(email){
	if(email.length!=0){
		chkedemail = chksafe(email);
		if (chkedemail != email ||
			email.charAt(0)=="." ||
			email.charAt(0)=="@"||
			email.indexOf('@', 0) == -1 ||
			email.indexOf('.', 0) == -1 ||
			email.lastIndexOf("@") ==email.length-1 ||
			email.lastIndexOf(".")==email.length-1)
			{
//			alert("L'Email est invalide");
			if($('email')){$('email').focus()};
			return false;
			}
		else {
			arrA = email.split("@");
			arrP = email.split(".");
			if (arrA.length != 2 || arrA[1].length < (arrP[arrP.length-1].length+2)){
//				alert("L'Email est invalide");
				if($('email')){$('email').focus()};
				return false;
				}
			}
		}
	else
	{
//		alert("L'Email est invalide");
		if($('email')){$('email').focus()};
		return false;
	}
	return '1';
}



function mousePosition(ev){
	if(ev.pageX || ev.pageY){
		return {x:ev.pageX, y:ev.pageY};
	}
	return {
		x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,
		y:ev.clientY + document.body.scrollTop - document.body.clientTop
	};
} 

// FileUpload required

/**
 *	File : Begin Upload
*/
// this variable is VERY important !
var finished = false;
var idForm = 0;
//start functions 
/**
* you have to pass an uniq id in param
* @see lauchUpload function in the same page but this function use behaviour
*/
function beginUpload(sid,id) {
	//define vars
	idForm = id;
	var uform = $('formUpload'+idForm);
	var udivform = $('divFormUpload'+idForm);
	fileToUpload = 'fileToUpload' + idForm;
	var type = $F('typeFileUpload' + idForm);
	if ($(fileToUpload).value=="") {
		return; //no file, no upload
	}
    // set error message at blank
	$('errorMsg'+idForm).innerHTML = '';
	//redefine where the form post goes
	uform.action = '/cgi-bin/upload.cgi?sid='+sid+'&maxsize=524288000';
	uform.submit();
	//ajax magic
	var espaceup = $('progressbar'+idForm);
	var upb = $('progressouter'+idForm);
    if(upb) {
        //make appear the progress bar
        udivform.style.display = 'none';
        espaceup.style.display = 'block';
    }
	uploadUpdater = new Ajax.PeriodicalUpdater('','/upload/index', {'frequency' : 1,
		'encoding':'UTF-8',
	    'method': 'post',
		'parameters': 'progress=' + sid + "&type=" + type,
		'onSuccess' : updateProgress,
		'onFailure' : updateProgress
		});
}

function beginUpload2(sid,id) {
    //define vars
    idForm = id;
    var uform = $('formUpload'+idForm);
    var udivform = $('divFormUpload'+idForm);
    fileToUpload = 'fileToUpload' + idForm;
    var type = $F('typeFileUpload' + idForm);
    if ($(fileToUpload).value=="") {
        return; //no file, no upload
    }
    // set error message at blank
    $('errorMsg'+idForm).innerHTML = '';
    //redefine where the form post goes
    uform.action = '/cgi-bin/upload.cgi?sid='+sid+'&maxsize=524288000';
    uform.submit();
    //ajax magic
    var espaceup = $('progressbar'+idForm);
    var upb = $('progressouter'+idForm);
    if(upb) {
        //make appear the progress bar
        udivform.style.display = 'none';
        espaceup.style.display = 'block';
    }
    uploadUpdater = new Ajax.PeriodicalUpdater('','/upload/index', {'frequency' : 1,
        'encoding':'UTF-8',
        'method': 'post',
        'parameters': 'progress=' + sid + "&type=" + type,
        'onSuccess' : updateProgress2,
        //'onFailure'  : tester,    
        //'onComplete'  : tester
        'onFailure' : updateProgress2
        });
}

function tester(transport){
                var response = transport.responseText;
                alert('BBBBB');
                alert('response = '+response);
             
    }
/**
 *	FileUpload : update progress bar
 * this is the function call by ajax updater
*/
function updateProgress(req) {
	if (finished) return;
	var pb = $('progressinner'+idForm);
	var pbText = $('pbtext'+idForm);
	var upb = $('progressouter'+idForm);
	//we expect a number
	var percent = parseInt(req.responseText);
	//not a number... so that's FINISHED or else ...
	if (isNaN(percent)) {
		finished = true;
		uploadUpdater.stop();
		if (req.responseText.indexOf("FINISHED") > -1) {
			if(upb) {
			    pb.style.width = "0%";
    			pbText.innerHTML = "100%";
			} 
			//setTimeout('endProgress()', 2000);
			//$('errorMsg'+idForm).innerHTML= 'Fichier reçu';
			//return;
		} else {
		    if(upb) {
    		    pb.style.width="0%";
    		    pbText.innerHTML = "100%";
		    }
		}
		//$('errorMsg'+idForm).innerHTML= req.responseText;
		setTimeout('endProgress()', 2000);
	} else {
	    if(upb) {
    		// is a percentage in response so show it to the user
    		if(!percent) percent = 0;
    		if(percent > 100) percent = 100;
    		showPercent = 100 - percent;
    		pb.style.width = ""+showPercent+"%";
    		pbText.innerHTML = ""+percent+"%";
	    }
	}
}

function updateProgress2(req) {
    if (finished) return;
    var pb = $('progressinner'+idForm);
    var pbText = $('pbtext'+idForm);
    var upb = $('progressouter'+idForm);
    //we expect a number
    var percent = parseInt(req.responseText);
    //not a number... so that's FINISHED or else ...
    if (isNaN(percent)) {
        finished = true;
        uploadUpdater.stop();
        if (req.responseText.indexOf("FINISHED") > -1) {
            if(upb) {
                pb.style.width = "0%";
                pbText.innerHTML = "100%";
            } 
            //setTimeout('endProgress()', 2000);
            //$('errorMsg'+idForm).innerHTML= 'Fichier reçu';
            //return;
        } else {
            if(upb) {
                pb.style.width="0%";
                pbText.innerHTML = "100%";
            }
        }
        //$('errorMsg'+idForm).innerHTML= req.responseText;
        setTimeout('endProgress2()', 2000);
    } else {
        if(upb) {
            // is a percentage in response so show it to the user
            if(!percent) percent = 0;
            if(percent > 100) percent = 100;
            showPercent = 100 - percent;
            pb.style.width = ""+showPercent+"%";
            pbText.innerHTML = ""+percent+"%";
        }
    }
}

/**
* File : at the end of upload param id
*/
function endProgress() {
    var espaceup = $('progressbar'+idForm);
	var udivform = $('divFormUpload'+idForm);
	var upb = $('progressouter'+idForm);
    if(upb) {
       udivform.style.display = 'block';
	   espaceup.style.display = 'none';
	} 
	// hide progress bar and show form
	//var udivform = $('divFormUpload'+idForm);
	//var upb = $('progressouter'+idForm);
	//udivform.style.display = 'block';
	//upb.style.display = 'none';
	// reset error message
	//$('errorMsg'+idForm).innerHTML = '';
	//reset form
	//var uform = $('formUpload'+idForm);
	//uform.reset();
	// show the initial bar
	//var pb = $('progressinner'+idForm);
	//pb.style.width = "100%";
	finished = false;
	var sendType = $('typeFileUpload'+idForm).value;
	var gotoDiv = 'divFormUploadContent' + idForm;
	new Ajax.Updater(gotoDiv, '/upload/ajax', 
	{method     : 'post',
	 parameters : 'type=' + sendType,
	 onComplete	: function() {Behaviour.apply(Youjob.rules);}}
	);
	var addcv = $('divAddCv'+idForm);
	var udivformcontent = $('divFormUploadContent'+idForm);
	if(addcv) {
	    udivformcontent.style.display = 'block';
	}
	var addpicto = $('divAddPicto');
	var url = $('divRedirectUrl');
	if(url){
	    window.location.href = url.value;
	}else if(addpicto){
    	new Ajax.Updater('divAddPicto', '/upload/updatePicto', 
    	{method     : 'post',
    	 onComplete	: function() {Behaviour.apply(Youjob.rules);}}
    	);	    
	}
	if(sendType == 'EmailTpl'){
		location=location;
	}
	
	//Behaviour.apply(Youjob.rules);
}

function endProgress2() {
    var espaceup = $('progressbar'+idForm);
    var udivform = $('divFormUpload'+idForm);
    var upb = $('progressouter'+idForm);
    if(upb) {
       udivform.style.display = 'block';
       espaceup.style.display = 'none';
    } 
    // hide progress bar and show form
    //var udivform = $('divFormUpload'+idForm);
    //var upb = $('progressouter'+idForm);
    //udivform.style.display = 'block';
    //upb.style.display = 'none';
    // reset error message
    //$('errorMsg'+idForm).innerHTML = '';
    //reset form
    //var uform = $('formUpload'+idForm);
    //uform.reset();
    // show the initial bar
    //var pb = $('progressinner'+idForm);
    //pb.style.width = "100%";
    finished = false;
    var sendType = $('typeFileUpload'+idForm).value;
    var gotoDiv = 'divFormUploadContent' + idForm;
    new Ajax.Updater(gotoDiv, '/upload/ajax', 
    {method     : 'post',
     parameters : 'type=' + sendType,
     onSuccess  : refreshCv,
     onComplete : function() {Behaviour.apply(Youjob.rules);}}
    );
    var addcv = $('divAddCv'+idForm);
    var udivformcontent = $('divFormUploadContent'+idForm);
    if(addcv) {
        udivformcontent.style.display = 'block';
    }
    var addpicto = $('divAddPicto');
    if(addpicto){
        new Ajax.Updater('divAddPicto', '/upload/updatePicto', 
        {method     : 'post',
         onComplete : function() {Behaviour.apply(Youjob.rules);}}
        );      
    } 
    //Behaviour.apply(Youjob.rules);
}

function refreshCv(transport){
                var response = transport.responseText || "no response text";
                sendType2 = 'CvCandidature2';
                new Ajax.Updater('cvpapier', '/upload/ajax', 
                {method     : 'post',
                 parameters : 'type=' + sendType2,
                 onSuccess  : refreshBouton,
                 //onSuccess  : document.location.reload(),
                 //onFailure  : alert('echec2'),
                 onComplete : function() {Behaviour.apply(Youjob.rules);}}
                );    
             
    }
function refreshBouton(transport){
                var response = transport.responseText || "no response text";
                sendType3 = 'bouton';
                new Ajax.Updater('bouton', '/upload/ajax', 
                {method     : 'post',
                 parameters : 'type=' + sendType3,
                 //onSuccess  : refreshBouton,
                 //onSuccess  : document.location.reload(),
                 //onFailure  : alert('echec2'),
                 onComplete : function() {Behaviour.apply(Youjob.rules);}}
                );    
             
    }

// end FileUpload Required
/*
END
*/