function fixJavascriptFlash(str){
    if(str!=''){
        var strword = "\:':,:-:!".split(":");
        for(i=0;i<strword.length;i++){
            str = str.replace(strword[i], '\\' + strword[i]);
        }
    }

    return str
}

if(!objInterval){
    var objInterval = new Array();
}

function hideIndicator(strDiv_IndicatorId, intervalIndex){
    $(strDiv_IndicatorId).style.display="none";
    clearInterval(objInterval[intervalIndex]);
}

function execFuncInterval(strFunc, intervalIndex){
    eval(strFunc);
    clearInterval(objInterval[intervalIndex]);
}

function doUpdateRequest(strClientControl,strUrlPageRecive,strDivResultId,strRedirectURL,bIsReturn,strOtherParameters,strRemoveTagId,strHideTagId,bScripted,bOverwrite,strDiv_IndicatorId,strStartSplit,strEndSplit,strMsgError,strTitleModule,strExecFunction){
  var pars = '';
  var IsValid = true;
	
  if(strClientControl!=''){
    var arr = strClientControl.split(":");
    
  	if(arr.length > 0){
  	    var arr1, postion, value, name;
  		for(i=0; i<arr.length; i++){
  			arr1 = arr[i].split("@");
  			postion = 0;
  			value = '';
  			name = '';
  			
  			if(arr1[0].toLowerCase().indexOf("txt") != -1){
  			    postion = arr1[0].toLowerCase().indexOf("txt");
  			    if(arr1.length>2){
  			        if(arr1[2].toLowerCase()=="texteditor"){
  			            
  			        } else { 
  			            value = Form.Element.Methods.getValue(arr1[0]);
  			        }
  			    } else {
  				    value = Form.Element.Methods.getValue(arr1[0]);
  				}
  				
  			}
  			else if(arr1[0].toLowerCase().indexOf("rdb") != -1){
  				postion = arr1[0].toLowerCase().indexOf("rdb");
  				inputs = $(arr1[0]).getElementsByTagName('input');
  				
  				for (j=0; j<inputs.length; j++) {
  					input = inputs[j];
  					if(input.checked){
  						value = input.value;
  						j = inputs.length;
  					}
  				}
  				
  			}
  			else if(arr1[0].indexOf("chk") != -1){
  				postion = arr1[0].toLowerCase().indexOf("chk");
  				inputs = $(arr1[0]).getElementsByTagName('input');
  				spans = $(arr1[0]).getElementsByTagName('span');		
          
				if(inputs.length>0){
					for (var j=0; j<inputs.length; j++) {
						input = inputs[j];
						span = spans[j];
						if(input.checked){
							if(value==''){ value = span.id.toString(); } 
							else { value += ":" + span.id.toString(); }
						}
					}
				} else {
					value = $F(arr1[0]);
					if(value=="on") value="1";
					else value="0";
				}
  			}
  			else if(arr1[0].toLowerCase().indexOf("fup") != -1){
  				postion = arr1[0].toLowerCase().indexOf("fup");
  				value = $(arr1[0]).value;
  			}
  			else if(arr1[0].toLowerCase().indexOf("drl") != -1){
  				postion = arr1[0].toLowerCase().indexOf("drl");
  				value = $F(arr1[0]);
  			}
  			
  			name = arr1[0].substr(postion+3);
  			if(arr1.length>2){
		        if(arr1[2].toLowerCase()=="texteditor"){ 
		            if(arr1.length>3){
		                name = name.replace(arr1[3],"");
		            }
		            arr1[0]=arr1[0] + "_txt" + name + "___Frame";
		            value = getTextEditorValue(arr1[0]);
		            //alert(value);
		        }
		    }
		    
  			if(arr1.length>1){
  				arr2 = arr1[1].split(";");
  				for(v = 0; v < arr2.length; v++){
  					arrvalid = arr2[v].split("|");
  					
  					if (arrvalid[0].toLowerCase() == 'required'){
						if(arr1[0].toLowerCase().indexOf("txt") != -1){
							if(isEmpty(value,arrvalid[1])){
								$(arr1[0]).value = arrvalid[1];
								$(arr1[0]).style.color = "red";
								IsValid = false;
							} else {
								$(arr1[0]).style.color = "black";
							}
						} else if(arr1[0].toLowerCase().indexOf("drl") != -1){
							if(isEmpty(value,arrvalid[2])){
								alert(arrvalid[1]);
								$(arr1[0]).style.color = "red";
								IsValid = false;
							} else {
								$(arr1[0]).style.color = "black";
							}
						}
  					} else if (arrvalid[0].toLowerCase()=='number' && IsValid){
  						if(value.indexOf('<--')!=-1){
  							value=Trim(value.substr(0,value.indexOf('<--')))
  						}
  						
  						if(!isNumberInt(value)){
  							$(arr1[0]).value = value +' <-- '+ arrvalid[1];
  							$(arr1[0]).style.color = "red";
  							IsValid = false;
  						} else {
  							$(arr1[0]).style.color = "black";
  						}
  					} else if (arrvalid[0].toLowerCase()=='double' && IsValid){
  						if(value.indexOf('<--')!=-1){
  							value=Trim(value.substr(0,value.indexOf('<--')))
  						}
  						
  						if(isDouble(value,".")==null){
  							$(arr1[0]).value = value +' <-- '+ arrvalid[1];
  							$(arr1[0]).style.color = "red";
  							IsValid = false;
  						} else {
  							$(arr1[0]).style.color = "black";
  						}
  						  						
  					} else if (arrvalid[0].toLowerCase()=='format' && IsValid){
  						
  					} else if (arrvalid[0].toLowerCase()=='date' && IsValid){
  					    if(value.indexOf('<--')!=-1){
  							value=Trim(value.substr(0,value.indexOf('<--')))
  						}
  						var bIsDate;
  						if(arr1.length>2){
  						    bIsDate=isDate(value,"2029",arr1[2]);
                        } else {
                            bIsDate=isDate(value,"2029",'mdy');
                        }
  						    
  						if(bIsDate==null){
  							$(arr1[0]).value = value +' <-- '+ arrvalid[1];
  							$(arr1[0]).style.color = "red";
  							IsValid = false;
  						} else {
  							$(arr1[0]).style.color = "black";
  						}
  						
  					} else if (arrvalid[0].toLowerCase()=='email' && IsValid){
  						if(value.indexOf('<--')!=-1){
  							value=Trim(value.substr(0,value.indexOf('<--')))
  						}
  						if(!checkMEmail(value)){
  							$(arr1[0]).value = value +' <-- '+ arrvalid[1];
  							$(arr1[0]).style.color = "red";
  							IsValid = false;
  						} else {
  							$(arr1[0]).style.color = "black";
  						}
  					}
  					else if (arrvalid[0].toLowerCase()=='website' && IsValid){
  					    if(value.indexOf('<--')!=-1){
  							value=Trim(value.substr(0,value.indexOf('<--')))
  						}
  						if(!isURL(value)){
  						    $(arr1[0]).value = value +' <-- '+ arrvalid[1];
  							$(arr1[0]).style.color = "red";
  							IsValid = false;
  						} else {
  							$(arr1[0]).style.color = "black";
  						}
  						
  					}
  				}
  			}
  			
  			if(IsValid && Trim(name)!='')
  			{
  				if(Trim(pars).length==0){
  					pars += name + "=" + encodeURIComponent(value);
  				}
  				else{
  					pars += "&" + name + "=" + encodeURIComponent(value);
  				}
  			}
  		}
  	}
  }
  
  if(IsValid||strClientControl==''){
    if(Trim(strOtherParameters)!=''){
      if(Trim(pars).length>0){
        pars += "&" + strOtherParameters
      } else {
        pars += strOtherParameters
      }
    }
    
    doSendRequest(pars,strUrlPageRecive,strDivResultId,strRedirectURL,bIsReturn,strRemoveTagId,strHideTagId,bScripted,bOverwrite,strDiv_IndicatorId,strStartSplit,strEndSplit,strMsgError,strTitleModule,strExecFunction,'');
  }
}

function doSendRequest(strParameters,strUrlPageRecive,strDivResultId,strRedirectURL,bIsReturn,strRemoveTagId,strHideTagId,bScripted,bOverwrite,strDiv_IndicatorId,strStartSplit,strEndSplit,strMsgError,strTitleModule,strExecFunction,strFuncInterval)
{
    if(strExecFunction){
        eval(strExecFunction);
    }

    if(!strMsgError||strMsgError=='') strMsgError = "Sorry. There was an error.";
    var sure=true;
    if(Trim(strRemoveTagId)!=''){
        var arrInfoRemoveTag = splitBlock(strRemoveTagId,"{!}");
        if(arrInfoRemoveTag.length>1){
            strRemoveTagId = arrInfoRemoveTag[0];
            sure = confirm(arrInfoRemoveTag[1]);
        } else {
            sure = confirm('Are you sure?');
        }
        
		if(sure){ 
		    if (InStr(strRemoveTagId,'dgr:')!=-1) {
			    strRemoveTagId = strRemoveTagId.substring('dgr:'.length);
			    if($(strRemoveTagId)){
				    strRemoveTagId = $(strRemoveTagId);
				    strRemoveTagId = strRemoveTagId.parentNode.parentNode
				    if($(strRemoveTagId)){
		        	    Element.remove($(strRemoveTagId));
        		    }
			    }
		    } else if($(strRemoveTagId)){
		        for(i=0;;i++){
		            if($(strRemoveTagId)){
		                var objparent=$(strRemoveTagId).parentNode;
		                Element.remove($(strRemoveTagId));
			            if(Trim(objparent.innerHTML)!=''&&Trim(objparent.innerHTML)!='\n'){
			                break;
			            } else {
			                objparent.id = strRemoveTagId;
			            }
			        }
			    }
		    }
        }
	}
	               
    if(strTitleModule!=''){
        setTitleModule(strTitleModule);
    }
    
	var arrdiv_Indicator = strDiv_IndicatorId.split(":");
	var arrhidetag = strHideTagId.split(":");
	var arrdivResult = strDivResultId.split(":");
	for(i=0;i<arrdivResult.length;i++){
        if($(arrdivResult[i])){
            strDivResultId=arrdivResult[i];
            break;
        }
    }
    
    if(sure){
	    var myAjax = new Ajax.Request(
		    strUrlPageRecive, 
		    {
			    method: 'post', 
			    parameters: strParameters,
			    onComplete: function(request) {
			        try {
			            var arrInfoIsReturn = splitBlock(bIsReturn,"{!}");
			            var msgNotFound = "<b>Not found</b>";
                        if(arrInfoIsReturn.length>1){
                            bIsReturn = arrInfoIsReturn[0];
                            msgNotFound = arrInfoIsReturn[1];
                        }
                        bIsReturn = bIsReturn+0;
				        var response = request.responseText || msgNotFound;
				        if(bIsReturn==1){
				            if($(strDivResultId+'')){
				                Element.show($(strDivResultId+''));
				            }
					        try {
					            startSplitIndex = response.indexOf(strStartSplit) + strStartSplit.length;
					            endSplitIndex = response.indexOf(strEndSplit);
    					        
						        response = response.substring(startSplitIndex ,endSplitIndex);

				                if(bScripted==1){
				                  $(strDivResultId).innerHTML = response.stripScripts();
				                  response.evalScripts();
				                  response='';
				                } else {
					                if (bOverwrite==1){
						                $(strDivResultId).innerHTML = $(strDivResultId).innerHTML + response.stripScripts();
					                } else {
						                $(strDivResultId).innerHTML = response.stripScripts();
					                }
				                }
					        } catch(e) {
					            for(i=0;i<arrdiv_Indicator.length;i++){
					                if($(arrdiv_Indicator[i]+'')){
					                    Element.hide($(arrdiv_Indicator[i]+''));
					                }
						        }
						        
						        return false;
					        }  		  
				        }
        		
				        if(strRedirectURL!=''&&strRedirectURL!='Return'){
						    eval(strRedirectURL);
//					        if(InStr(strRedirectURL,'window.location=')==0){
//						        strRedirectURL = strRedirectURL.substring('window.location='.length);
//						        window.location = strRedirectURL;
//					        } else {
//						        eval(strRedirectURL);
//					        }
				        }
        				
        				if($(strDivResultId)){
		                    Element.show($(strDivResultId));
		                }
		                
//		                Form.Element.Methods.activate($(strDivResultId))
		                    				    
			            for(i=0;i<arrhidetag.length;i++){
			                if(Trim(arrhidetag[i])!=''){
				                if($(arrhidetag[i])){
				                    $(arrhidetag[i]).InnerHTML='';
				                    Element.hide($(arrhidetag[i]));
				                }
				            }
				        }
				        
				        if(!objIntervalLength){
    				        var objIntervalLength;
    				    }
    				    
    				    for(i=0;i<arrdiv_Indicator.length;i++){
    				        if($(arrdiv_Indicator[i]+'')){
                                Element.hide($(arrdiv_Indicator[i]+''));
                                objIntervalLength= objInterval.length;
                                objInterval[objIntervalLength] = setInterval('hideIndicator(\''+arrdiv_Indicator[i]+'\',' + objIntervalLength + ');',5000);
                            }
				        }
				        
				        if(strFuncInterval&&strFuncInterval!=''){
				            var strFuncIntervalExec;
				            var strFuncIntervalTime;
				            var arrFuncInterval = splitBlock(strFuncInterval,"{!}");
				            for(i=0;i<arrFuncInterval.length;i++){
                                var arrParams = splitBlock(arrFuncInterval[i],"{?}");
                                strFuncIntervalExec = arrParams[0];
                                if(arrParams.length>0){
                                    strFuncIntervalTime = arrParams[1];
                                } else {
                                    strFuncIntervalTime = 3000;
                                }
                                objIntervalLength = objInterval.length;
                                objInterval[objIntervalLength] = setInterval('execFuncInterval(\'' + strFuncIntervalExec + '\',' + objIntervalLength + ');',strFuncIntervalTime);
				            }
				        }
				        
				        
			        } catch(e) {
			            for(i=0;i<arrdiv_Indicator.length;i++){
			                if($(arrdiv_Indicator[i]+'')){
			                    Element.hide($(arrdiv_Indicator[i]+''));
			                }
				        }
                        
				        $(strDivResultId).innerHTML = strMsgError;

				        return false;
			        }
			    },
			    onFailure: function(request) {
			        $(strDivResultId).innerHTML = strMsgError;
			    },
			    onLoading: function(){
			        for(i=0;i<arrdiv_Indicator.length;i++){
                        if($(arrdiv_Indicator[i])){
				            Element.show($(arrdiv_Indicator[i]+''));
				            break;
				        }
				    }
			    }
		    });
        }
}