
var idInsertedRecord ="";
var idUpdatedRecord ="";

function setInsertedRecord(sID){
	idInsertedRecord  = sID;
}

function setUpdatedRecord(sID){
	idUpdatedRecord =sID;
}

//This function grabs the value from a passed in field. You should pass in the handle to the field, as in "document.forms[0].MyField". The return value is either a string or an array, depending on the field type (a check box would return an array).
function getFieldValue(field)
{
	//alert(field.name + "----" + field.type);
   	//alert (field.type);
   switch(field.type)
   {
      case "text" :
      case "textarea" :
      case "password" :
      case "hidden" :
	   		nameField = field.name + '';
			//alert(nameField + ' -- ' + field.value);

	   		if (nameField.indexOf('tiny_') == 0)
			{ 
					if (tinyMCE.getInstanceById(field.id) != null) {
						var content = tinyMCE.getContent(field.id);
						tinyMCE.triggerSave();	
						
						return content;
					}else{
 						return document.getElementById('hidden_'+field.id).value ;
						}
			}
			else{				
 				return field.value;	
			}
				 
      case "select-one" :
         var i = field.selectedIndex;
         if (i == -1)   return "";
         else   return (field.options[i].value == "") ? field.options[i].text : field.options[i].value;

      case "select-multiple" :
         var allChecked = new Array();
         for(i = 0; i < field.options.length; i++)
            if(field.options[i].selected)
               allChecked[allChecked.length] = (field.options[i].value == "") ? field.options[i].text : field.options[i].value;
         return allChecked;

      case "button" :
      case "reset" :
      case "submit" :
         return "";

	  case "radio" :
		if(field.checked)
			return field.value
		else
			return "";
			
      case "checkbox" :
         if (field.checked) { return field.value; } else { return "0"; }
      default :
         if(field[0].type == "radio")
         {
            for (i = 0; i < field.length; i++)
               if (field[i].checked)
                  return field[i].value;

            return "";
         }
         else if(field[0].type == "checkbox")
         {
            var allChecked = new Array();
            for(i = 0; i < field.length; i++)
               if(field[i].checked)
                  allChecked[allChecked.length] = field[i].value;

            return allChecked;
         }
         else
            var str = "";
            for (x in field) { str += x + "\n"; }
            alert("I couldn't figure out what type this field is...\n\n" + field.name + ": ???\n\n\n" + str + "\n\nlength = " + field.length);
         break;
   }
   
   return "";
}	

function xmlhttpPost(strURL, IDWidget, IDScreen, mode) {
  
  //afficher l'icone
  
    if(mode < 3){
		ToggleLoading('myDiv', true)
	}
    var xmlHttpReq = false;
    var self = this;
    // Mozilla/Safari
	//alert(strURL)
    if (window.XMLHttpRequest) {
        self.xmlHttpReq = new XMLHttpRequest();
    }
    // IE
    else if (window.ActiveXObject) {
        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    self.xmlHttpReq.open('post', strURL, true);
    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    self.xmlHttpReq.onreadystatechange = function() {
        if (self.xmlHttpReq.readyState == 4) {
              //disable l'icone
     if(mode < 3){
		ToggleLoading('myDiv', false)
	 }

            
			if(mode==1)
			{
			updatewidget(self.xmlHttpReq.responseText,IDWidget)
			}
			else
			{
           	if(mode==2){
				//alert(self.xmlHttpReq.responseText);
              constructmenu(self.xmlHttpReq.responseText)
			}
			else{
				if(mode==3){
					//InsertedText = IDWidget
					eval(self.xmlHttpReq.responseText)
				}
				else{
					if(mode==4){
						//InsertedText = IDWidget
						eval(self.xmlHttpReq.responseText);
					}
					else{
					updatepage(self.xmlHttpReq.responseText);
					}
				}
				}
			}
			//alert(self.xmlHttpReq.responseText);
        }
    }
    self.xmlHttpReq.send(getquerystring());
}

function getquerystring() {
   // var form     = document.forms['f1'];
    //var word = form.word.value;
    qstr = 'test';  // NOTE: no '?' before querystring
    return qstr;
}


function updatewidget(str,WidgetID){
 	// alert(WidgetID);
	//document.getElementById('Widget_'+WidgetID).innerHTML = str;	
	
	var HTMLWidget = $(str);
				
	if(HTMLWidget.attr('id') == 'Widget_' + WidgetID){
		//alert('mettre le contenu de la div uniquement : ' + HTMLWidget.html());
		document.getElementById('Widget_'+WidgetID).innerHTML = HTMLWidget.html()
	}else{
		//alert('mettre toute la div : ' + str);
		document.getElementById('Widget_'+WidgetID).innerHTML = str;
	}
	
	var AllScripts = document.getElementById('Widget_'+WidgetID).getElementsByTagName("script")
	for (var i=0; i<AllScripts.length; i++) {
        var s=AllScripts[i];
		if ( s.innerHTML != ""){
				//alert(s.innerHTML)
				eval(s.innerHTML);
			}			
	}
		
	/*$("a").each(function(i){
		var sHref = $(this).attr("href");
		if(sHref!=undefined && sHref!="" && sHref!="#" && sHref.substr(0,11)!="javascript:"){
			$(this).unbind("click");
			
			var tabTarget = $(this).attr("tab");
			if(tabTarget == undefined || tabTarget == "") {
				tabTarget = "0";
			}

			$(this).bind("click", function() { goToPage(sHref,$(this).attr("target"), tabTarget);return (false); })
		}
	 });*/
}
 

 
function goBackToPage(pMode, pURL, pCodeJS){	
	/////// updated by GEBS 12/06/2007 ///////	
	if(pCodeJS.length > 0){
		eval(pCodeJS);
	}
	if(document.referrer && pMode == '2'){
		window.location = document.referrer;
	}
	if (pURL.length > 0 && pMode == '3'){
		window.location = pURL;
	}
}

/*
* Supprimer les fichiers de cache HTML de la page view_article
*/
function DeleteArticleCache(sArticleID){
	$.post(
		"deletearticlecache.asp", 
		{ID : sArticleID}		
	);
}

function updatepage(str){
	//document.write (str);
	eval(str);
}

function displayMessageErrorValidation(idWidgetItem, msg, bCondition)
{
//document.write (str);
//alert(idWidgetItem);
	if(msg=="Valide")
		msg="<img src='../home/images/default/valide2.png' width='20' heigth='20'>"
	if(bCondition)
		document.getElementById('MessageValide_'+idWidgetItem).innerHTML ="<b>"+msg+"</b>";
	else
		document.getElementById('MessageError_'+idWidgetItem).innerHTML ="<b>"+msg+"</b>";
	
//  eval(str);
}

function reloadwidget(url ,IDWidget ,mode){
   //alert(url);
   xmlhttpPost(url,IDWidget ,'',mode) ;
}

function duplicatescreen(url ,IDWidget ,mode){
   //alert(url);
   var confirmmessage = 'Voulez vous vraiment dupliquer l\'écran ?';
	if (confirm(confirmmessage))
		xmlhttpPost(url,IDWidget ,'',mode) ;
	else
		//return ;
		alert('Pourquoi vous avez cliqué alors ?????');
}

function deleteform(formname,url,confirmConfig,confirmmessage){
//	numberelements=document.forms[formname].elements.length;
//	sep="&";
	i=0;
	if(confirmConfig=='1'){
		if ( ! confirm(confirmmessage)){
				return ;
		}
	}
	url = url + "&FormName=" + formname;
	
	xmlhttpPost(url,0,0,0);
}

function savform(formname,url){

	/*var numberelements=document.forms[formname].elements.length
	var sep="&"
	var i=0;
	while(i<numberelements){
		elem = document.forms[formname].elements[i];
		//alert(elem.name + '    ' +  elem.type);
		if (elem != undefined){
			if( getvalidtype (elem.type)){
				myNameField = elem.name + '';
				//if (myNameField.indexOf('hidden_tiny_') == 0)
				//   {myNameField = myNameField.replace("hidden_tiny_","");}
				sGetValue = escape(getFieldValue (elem));
				
				if(sGetValue != "")
					if (elem.type != 'hidden')
						url = url + sep + myNameField + "=" + escape(getFieldValue (elem));
					else 
						url = url + sep + myNameField + "=" + getFieldValue (elem);						
			}
		}
		i++;
	}
	//alert('There are '+i+' elements');
	url =url +"&FormName="+formname;
	//alert(url);
	xmlhttpPost(url,0,0,0);*/
	
	var numberelements=document.forms[formname].elements.length
	var sep="&"
	var i=0;
	var paramsString = "";
	var paramsSep = "";
	while(i<numberelements){
		elem = document.forms[formname].elements[i];
		if (elem != undefined){
			if( getvalidtype (elem.type)){
				myNameField = elem.name + '';
				sGetValue = escape(getFieldValue (elem));			
				
				if(sGetValue != "")
					if (elem.type != 'hidden')
						paramsString = paramsString + paramsSep + "'" + myNameField + "':'" + escape(getFieldValue (elem)) + "'";
					else 
						paramsString = paramsString + paramsSep + "'" + myNameField + "':'" + getFieldValue (elem) + "'";
										
				paramsSep = ","
			}
		}
		i++;
	}
	var resultdata;
	eval("resultdata = {" + paramsString + "}");
	
	$.post(url, resultdata, function(data){eval(data);});
}

function searchform(formname,url,IDWidget,IdScreen){
	numberelements=document.forms[formname].elements.length
	sep="&"
	i=0;
	myUrl=""
	while(i<numberelements-1){
		if( getvalidtype (document.forms[formname].elements[i].type))
		{
			myUrl=myUrl+sep+document.forms[formname].elements[i].name +"="+getFieldValue (document.forms[formname].elements[i])
		}
		i++
	}
	if(IdScreen.length>0)
	{
		window.location = 'screen.asp?ID='+IdScreen +myUrl;
	}
	else{
		myUrl =myUrl +"&FormName="+formname;
		url = url + myUrl;
		xmlhttpPost(url,IDWidget,0,1)
	}
}

function encodeMonTexte(texte)
 {
 URIencode = encodeURIComponent(texte);
 retour = URIencode.replace(/'/g, "\\'");
 return(retour);
 }

function getvalidtype(type){
   switch(type)
   {
      case "text" :
	        return true;
      case "textarea" :
	        return true;
      case "password" :
	        return true;
      case "hidden" :
	        return true;
      case "select-one" :
	        return true;
	  case "button" :
	        return true;
      case "reset" :
	  	        return true;
      case "submit" :
	  	        return true;
      case "radio" :
	  	        return true;
      case "checkbox" :
	  	        return true;
	  
      default :
	  return false;
		 
	  }
}	

function setvalueInForm(FormName,FieldName,FieldValue)
{
	document.forms[FormName].elements[FieldName].value=FieldValue;
}

function showIndicator(num,s,n){
	setStatus(num,s,n);
}

function setStatus(num,s,n) {
	//ajouter le test : si workspace exist
	
	
	try{
		if(layoutLoaded != undefined){		
			showResult(s,'SUCCESS');
			addToMessageQueue(s,'SUCCESS');
		}
	}catch(err){
		document.getElementById('statusContainer_'+num).style.visibility = "visible";
		document.getElementById('statusMsg_'+num).innerHTML = s;
		if(n>0){
		 	document.getElementById('statusMsg_'+num).style.color = "#006633";
		    document.getElementById('statusContainer_'+num).style.color = "#006633";
			setTimeout( "document.getElementById('statusContainer_"+num+"').style.visibility = 'hidden';", n );
		}
		else{
		     document.getElementById('statusMsg_'+num).style.color = "#FF3300";
			 document.getElementById('statusContainer_'+num).style.color = "#FF3300";
		}
	}

	
}


function ToggleLoading(sDivID, bVisible){
  flag =   bVisible;
  var elem = document.getElementById(sDivID)
  if(bVisible)
   elem.style.visibility = "visible";
  else
   elem.style.visibility = "hidden";
 }

//****************************************************
    events=null
	eventX=0 ;
    eventY=0 ;
//****************************************************


function getAndShowContextmenu(url){
 xmlhttpPost(url,'' ,'',2);
}

function constructmenu(str){
   // document.getElementById("result").innerHTML = str;
	//alert(str);
	var linkset=new Array()
linkset[2] = str;
//alert(events.clientX)*
clearhidemenu()
if(!str=="")
showmenu(events,linkset[2]);

}


function setevents(obj){
events= obj;
//alert(obj.clientY);
	eventX=obj.clientX;
	//alert (obj.clientX);
    eventY=obj.clientY
;
}

//********************************************
//TODO Jaz : Code JS du contextmenu à mettre ici
//********************************************

function VerifPageValue(){
	var gotoForm = document.forms['goto'];
	var gotoForm1 = document.forms['goto1'];
	var sPage = gotoForm.elements['gotopage'].value;
	var iPage = trim(gotoForm.elements['iPage'].value);
	var page = parseInt(trim(gotoForm.elements['gotopage'].value));
	var iPageCount = parseInt(trim(gotoForm.elements['iPageCount'].value));
	var nbrowperpage = gotoForm1.elements['nbrowperpage'].value;
	
	if((page+'')=="NaN" || (page+'')=="0"){
		gotoForm.elements['gotopage2'].value=iPage;
		return true
	}
	else{
		if(page>iPageCount){
							page=iPageCount;
						   }
		if(WithSubmit==true){
			gotoForm.elements['gotopage2'].value= "1";
			return true
		}else{
			gotoForm.elements['gotopage2'].value= page;
			return true
		}
		}
}

function addelementtothelist(strURL){
	xmlhttpPost(strURL, '', '', 3);
}

function updatecombobox(textmessage, valueToadd, objName, idWidget){
	
	NewoptionNode = document.createElement("option");
	NewoptionNode.text = valueToadd;
	if(isNumeric(textmessage)){
		NewoptionNode.value = Number(textmessage)
		document.forms['form_'+idWidget].elements[objName].add(NewoptionNode, null);
		document.forms['form_'+idWidget].elements[objName].selectedIndex = Number(document.forms['form_'+idWidget].elements[objName].length)-1;
		document.getElementById(objName+'_NewElementSpan').style.visibility='hidden';
	}
	else{
		document.getElementById(objName+'_ErrorMsg').innerHTML = textmessage;
	}
}


function isNumeric(val) {
	var dp = false;
	for (var i=0; i < val.length; i++) {
		if (!isDigit(val.charAt(i))) { 
			if (val.charAt(i) == '.') {
				if (dp == true) { return false; } // already saw a decimal point
				else { dp = true; }
				}
			else {
				return false; 
				}
			}
		}
	return true;
}


function isDigit(num) {
	var string="1234567890";
	if (string.indexOf(num) != -1) {
		return true;
		}
	return false;
}
	

function goToPage(sUrl,sRegionTarget,sPanelTarget){
	//alert(sUrl);
	if(sUrl == undefined || sUrl == "" || sUrl =="#&" ){
		//alert('false');
		return false;
	}
		
	try{
		//alert(sUrl + " - " + sRegionTarget + " - " + sPanelTarget);
		var sRegion = layout.getRegion(sRegionTarget);
		if (sRegion==null) {
			alert('Layout Region not found!');
			window.open(sUrl);
		}else {
			if(sRegion.hasPanel(sPanelTarget)){
				
				sRegion.getPanel(sPanelTarget).setUrl(sUrl,null,true);
				sRegion.getPanel(sPanelTarget).refresh();
				//sRegion.showPanel(sPanelTarget);
			}else {
	
				layout.beginUpdate();
				var add_sPanelTarget = Ext.DomHelper.append(document.body, {tag:'div ', cls:add_sPanelTarget}, true);
				layout.add(sRegionTarget, new Ext.ContentPanel(add_sPanelTarget, {title: 'New Tab', loadOnce:true, autoScroll:true, background:true ,closable:true,fitContainer:true, fitToFrame:true}));
				add_sPanelTarget.getUpdateManager().update({url:sUrl,scripts:true}); 			
				layout.endUpdate();						
			
			}
		}
	}
	catch(Err){
		try{

			parent.parent.frames[sRegionTarget].window.location = sUrl;
		}catch(Err2){
			window.location.href=sUrl;
		}
	}
}


function getCheckedValue(radioObj) {
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return "" + radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			
			return "" + radioObj[i].value;
		}
	}
	return "";
}

function actionDelete (valueSelectedRow, form, request, confirmDelete, confirmMessage) {
if (valueSelectedRow != "")
{
	deleteform(form, request + valueSelectedRow, confirmDelete, confirmMessage);
}}

function actionEdit (valueSelectedRow, urlRequest, fileParams) {
if (valueSelectedRow != "")
{
	document.location.href = urlRequest + valueSelectedRow + '&' + fileParams;
}}
