var obj = null;
var bustcachevar=1 //bust potential caching of external pages after initial request? (1=yes, 0=no)
var loadedobjects=""
var rootdomain="http://"+window.location.hostname+":8080"
var bustcacheparameter=""
var currentAddy = null;
/*
function loadobjs(){
if (!document.getElementById)
return
for (ivar=0; ivar<arguments.length; ivar++){
var file= arguments[ivar]
var fileref=""
if (loadedobjects.indexOf(file)==-1){ //Check to see if this object has not already been added to page before proceeding
	 if (file.indexOf(".js")!=-1){ //If object is a js file
	 fileref=document.createElement('script')
	 fileref.setAttribute("type","text/javascript");
	 fileref.setAttribute("src", file);
}
else if (file.indexOf(".css")!=-1){ //If object is a css file
fileref=document.createElement("link")
fileref.setAttribute("rel", "stylesheet");
fileref.setAttribute("type", "text/css");
fileref.setAttribute("href", file);
}
}
if ( fileref != "" )
{
// this script doesn't work, if needed, place it in the main front end view. !!
if (file.indexOf("scriptaculous.js") == -1)
{
	 document.getElementsByTagName("head").item(0).appendChild(fileref)
	 loadedobjects+=file+" " //Remember this object as being already added to page
}
}
}
}
*/
// params = (url, htmlElementId)
function com_jenkov_prizetags_ajaxLoadPage(){

    var args = com_jenkov_prizetags_ajaxLoadPage.arguments;

		_ajaxLoadPage(args[0],args[1]);
		//obj = new ObjAjaxJavascript(args[1]);
		//obj.execute();
		//we must wait a little delay for the div to be updated before to perform analyse.
		//setTimeout('obj.execute()',750);
}

function ObjAjaxJavascript(parameter)
{
  this.target  = parameter;
	this.execute = function()
		{
      var el = document.getElementById(this.target);
			if (el == null) el = window.parent.document.getElementById(this.target);
  		// Finding page script to load.
  		var reg0 = new RegExp('(\\s)+','gi');
  		var tmp = el.innerHTML.replace(reg0," ");

  		var reg = new RegExp('\\<script[^\\<]*(\\>\\<\\/script\\>|\\/\\>)','gi');
  		var result = tmp.match(reg);
  		if (result)
  		{
    		var reg2 = new RegExp('src=[\'"](.*)[\'"]');
    		for ( zebda = 0; zebda < result.length ;zebda++)
    		{
    			currentAddy = result[zebda].match(reg2);
				  loadobjs(currentAddy[1]);
    		}
    	}
 			// Eliminate script&css file to load.
			 tmp = tmp.replace(reg,"");
  		// Finding innerScript to execute.
			var token = "<script"
			var evalStr ='';
			var startSub = 0;
			var endSub = 0;
			while (tmp.indexOf(token) != -1)
			{
				tmp = tmp.substring(tmp.indexOf(token), tmp.length);
				token =">"
				if (tmp.indexOf(token) != -1 )
				    startSub = tmp.indexOf(token)+1;
				tmp = tmp.substring(tmp.indexOf(token)+1,tmp.length);
				token = "</script>"
				if (tmp.indexOf(token) != -1 );
				    endSub = tmp.indexOf(token)-1
            	if ( endSub != startSub)
				{
				    evalStr = tmp.substring(0,endSub);

					eval(evalStr);
				}
				token = "<script";
			}
		}
}

function ajax_post_form(target, form, action)
{
  new Ajax.Updater(target, action, {method:'post', encoding:'ISO-8859-1',  evalScripts:true, asynchronous:true, parameters:Form.serialize(form)});
}
function ajax_get_form(target, form, action)
{
  new Ajax.Updater(target, action, {method:'get', encoding:'ISO-8859-1', evalScripts:true, asynchronous:true, parameters:Form.serialize(form)});
}
function uploadFile(form, id)
{
  form.target = 'UploadTarget1';
}
// Retourne frai ou faux à une question
ajax_response = false;
function ajax_boolean_query(query_url, answer)
{
  
  parameters = 'answer='+answer;

  ajax_answer = new Ajax.Request(
    query_url,
    {
      asynchronous:false,
      method:'get',
      parameters:parameters,
      onSuccess:toutvabien
    }
    );
  

   return ajax_response;

}
function toutvabien(ajax_answer)
{

   if ('true' == ajax_answer.responseText) 
     ajax_response = true;
   else
     ajax_response = false;

}

function _ajaxLoadPage()
{
    var args = _ajaxLoadPage.arguments;
    new Ajax.Updater(args[1], args[0], {evalScripts:true});
     
    /*
    if (document.getElementById) {
        var x = (window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
    }
    if (x) {
        x.onreadystatechange = function()   {
            if (x.readyState == 4 && x.status == 200) {
                el = document.getElementById(args[1]);
		// Try to get from the parent page...
		if (el == null ) {
		  el = window.parent.document.getElementById(args[1]);
		}
                el.innerHTML = x.responseText;
		AJAX.Updater;
            }
            if (x.readyState == 4 && x.status != 200) {
                alert("error getting xml data via AJAX");
            }
        }
    }
    x.open("GET", args[0], true);
    x.send(null);
*/
}

// params  = (formElementId, url, htmlElementId, )
function com_jenkov_prizetags_ajaxSubmitForm(){
    var args = com_jenkov_prizetags_ajaxSubmitForm.arguments;
    if (document.getElementById) {
        var x = (window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
    }
    if (x) {
        x.onreadystatechange = function()   {
            if (x.readyState == 4 && x.status == 200) {
                el = document.getElementById(args[2]);
                el.innerHTML = x.responseText;
            }
            if (x.readyState == 4 && x.status != 200) {
                alert("error getting xml data via AJAX");
            }
        }
    }

    formObj = args[0];
	
    formParams = "";
    for(i=0; i<formObj.elements.length; i++){
        if(i > 0){
            formParams = formParams + "&"
        }

        if(formObj.elements[i].type == 'submit' ||
           formObj.elements[i].type == 'button' ||
           formObj.elements[i].type == 'image'){
//                var str="";
//                for(prop in formObj.elements[i] ){
//                    str += prop + " : " + formObj.elements[i][prop]+"          ";
//                }
//                alert(str);
            if(formObj.elements[i].clicked && formObj.elements[i].clicked){
                formParams = formParams + formObj.elements[i].name;
                formParams = formParams + "=";
                formParams = formParams + formObj.elements[i].value;
            }
        } else{
            formParams = formParams + formObj.elements[i].name;
            formParams = formParams + "=";
            formParams = formParams + formObj.elements[i].value;
        }
    }

    x.open("POST", args[1], true);
    x.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    x.setRequestHeader("Content-length", formParams.length);
    x.setRequestHeader("Connection", "close");
    x.send(encodeURI    (formParams));

    obj = new ObjAjaxJavascript(args[2]);
 	  // we must wait a little delay for the div to be updated before to perform analyse.
 	  setTimeout('obj.execute()',750);

    return false;
}

function com_jenkov_prizetags_ajaxButtonClicked(button){
    formObj = button.form;

    for(i=0; i<formObj.elements.length; i++){
        if(formObj.elements[i].type == 'submit' ||
           formObj.elements[i].type == 'button' ||
           formObj.elements[i].type == 'image'){
            formObj.elements[i].clicked=false;
        }
    }

    button.clicked = true;
}


function com_jenkov_prizetags_ajaxReloadPage(url, element, time){
    aDate = new Date();
    aDateString =  aDate.getYear() + "_" + aDate.getMonth() + "_" + aDate.getDate() + "_";
    aDateString += aDate.getHours() + "_" + aDate.getMinutes() + "_" + aDate.getSeconds();
    forceRefreshParameter  = "com_jenkov_prizetags_ajax_refresh=" + Math.random() * 1000000;
    forceRefreshParameter += "&com_jenkov_prizetags_ajax_time=" + aDateString;

    com_jenkov_prizetags_ajaxLoadPage(url, element);
    setTimeout("com_jenkov_prizetags_ajaxReloadPage('" + url + "', '" + element + "', " + time + ")", time);
}

//set this variable to 1 if you wish the URLs of the highlighted menu to be displayed in the status bar
var display_url=0
var activeMenu = null;

var ie5=document.all&&document.getElementById
var ns6=document.getElementById&&!document.all
if (ie5||ns6)

function showContextMenu(e){

var eventObj = (ie5)? event.srcElement : e.target;
var menuobj = document.getElementById("cm_"+eventObj.id);
activeMenu = menuobj;
menuobj.style.position = "absolute"
menuobj.style.top = (eventObj.style.height)?eventObj.style.height:12 ;
menuobj.style.visibility="visible"
/*
//Find out how close the mouse is to the corner of the window
var rightedge=ie5? document.body.clientWidth-event.clientX : window.innerWidth-e.clientX
var bottomedge=ie5? document.body.clientHeight-event.clientY : window.innerHeight-e.clientY

//if the horizontal distance isn't enough to accomodate the width of the context menu
if (rightedge < menuobj.offsetWidth)
//move the horizontal position of the menu to the left by it's width
menuobj.style.left=ie5? document.body.scrollLeft+event.clientX-menuobj.offsetWidth : window.pageXOffset + e.clientX - menuobj.offsetWidth
else
//position the horizontal position of the menu where the mouse was clicked
menuobj.style.left= ie5? document.body.scrollLeft+event.clientX : window.pageXOffset +e.clientX

//same concept with the vertical position
if (bottomedge<menuobj.offsetHeight)
menuobj.style.top=ie5? document.body.scrollTop+event.clientY-menuobj.offsetHeight : window.pageYOffset+e.clientY-menuobj.offsetHeight
else
menuobj.style.top=ie5? document.body.scrollTop + event.clientY : window.pageYOffset + e.clientY;
*/


return false
}

function hideContextMenu(e){
if (activeMenu)
activeMenu.style.visibility="hidden";
}

// Display a widget in a modal form.
function showModal( title, action )
{
  var col = window.parent.document.getElementsByTagName('body');
	
  var posX = Event.pointerX();
  var posY = Event.pointerY();
	
  new Insertion.Top(col.item(col.length -1),"<div id=\"back-modal\" style=\"z-index:12000;position:absolute;background-color:gray;height:100%;width:100%;filter:alpha(opacity=50);opacity: 0.5;-moz-opacity:0.5;\"><div id=\"modal\" style=\"\"></div></div>");
	
  new Insertion.Top(col.item(col.length -1),"<div id=\"main-modal\" style=\"position:absolute;z-index:12001;height:100%;width:100%;\"><div id=\"modal\"style=\"margin:auto;left:"+posX+";top:"+posY+"px;padding:auto;background-color:white;width:450px;filter:alpha(opacity=1);opacity: 1;-moz-opacity:1;\"><div style=\"border:1px solid gray;padding:5px;background-color:#eaeaea;\"> "+title+"</div><div style=\"border-left:1px solid gray;border-right:1px solid gray; padding:5px;\" id=\"modal-content\"></div><div style=\"border:1px solid gray;border-top:1px dashed gray;text-align:right;padding:3px;\"><a href=\"javascript:hideModal();\">Annuler</a>|<a class=\"Button\" href=\"\">Valider</a></div></div></div>");
	
	_ajaxLoadPage(action,'modal-content');
}

function hideModal()
{
  Element.remove('back-modal');
  Element.remove('main-modal');
}


function highlightie5(e){
var firingobj=ie5? event.srcElement : e.target
if (firingobj.className=="menuitems"||ns6&&firingobj.parentNode.className=="menuitems"){
if (ns6&&firingobj.parentNode.className=="menuitems") firingobj=firingobj.parentNode //up one node
firingobj.style.backgroundColor="highlight"
firingobj.style.color="white"
if (display_url==1)
window.status=event.srcElement.url
}
}

function lowlightie5(e){
var firingobj=ie5? event.srcElement : e.target
if (firingobj.className=="menuitems"||ns6&&firingobj.parentNode.className=="menuitems"){
if (ns6&&firingobj.parentNode.className=="menuitems") firingobj=firingobj.parentNode //up one node
firingobj.style.backgroundColor=""
firingobj.style.color="black"
window.status=''
}
}

function jumptoie5(e){
var firingobj=ie5? event.srcElement : e.target
if (firingobj.className=="menuitems"||ns6&&firingobj.parentNode.className=="menuitems"){
if (ns6&&firingobj.parentNode.className=="menuitems") firingobj=firingobj.parentNode
if (firingobj.getAttribute("target"))
window.open(firingobj.getAttribute("url"),firingobj.getAttribute("target"))
else
window.location=firingobj.getAttribute("url")
}
}

function check_radio(pattern)
{
  i = 0;
  while(document.getElementById(pattern + i))
 {
   if(document.getElementById(pattern + i).checked)
   return true;
   i++;
 }
   alert('Vous devez indiquer la source du contenu');
   return false;
}

if (ie5||ns6){
//  menuobj.style.display=''
  document.oncontextmenu=showContextMenu
  document.onclick=hideContextMenu
}

function sendMailToFriend(obj)
{ 
  //if ($('widgetSendMail')!= null) alert($('widgetSendMail').style.display);
  if ($(obj.parentNode.id+'_widgetSendMail') == null )
  {
    //alert($(obj.parentNode).id);
    Element.insert($(obj.parentNode), {bottom :'<div id="'+$(obj.parentNode).id+'_widgetSendMail" name="widgetSendMail" style="display:none;;position:absolute;left:'+obj.offsetLeft+';top:'+(obj.offsetTop+15)+';width:150px;background-color:white;"><form><span>email du destinataire</span><input/><span>Votre nom</span><input/><span>Votre email</span></input></form></div>'});
    new Effect.SlideDown($(obj.parentNode.id+'_widgetSendMail'));
  }
  else
  {
    new Effect.SlideUp($(obj.parentNode.id+'_widgetSendMail'), {queue : { position :'front', scope : $(obj).id, limit : 2}});
    tmpName = obj.parentNode.id+'_widgetSendMail';
    setTimeout('$(tmpName).remove();',1500);
  }  
}

