function ajaxSubmit(url,objForm,retObjId, retOperation)
{
	//1. open dialog
	
	//2. set Sitebuilder Request Url
		var frmInput = get(objForm);
		var mgrProcessUrl = url;

	//3. req ajax & return output
		doAjaxSitebuilder(mgrProcessUrl, retObjId, retOperation, frmInput);
		
	//4. close dialog
		//mylightWindow.deactivate();
		//lightboxDeactivate();
}

function ajaxSubmitExtra(url,objForm,retObjId, retOperation)
{
    var frmInput;
    //1. open dialog
    
    //2. set Sitebuilder Request Url
    if (objForm) {
        frmInput = get(objForm);
    } else {
        frmInput = '/';
    } 
        var mgrProcessUrl = url;
        
        new Ajax.Request( url, {
            method: 'post',
            asynchronous:true,
            parameters: frmInput,
            encoding: 'UTF-8',
            onSuccess: function(transport) {
                                AJAXOutput(transport,retObjId, retOperation)
                            }
            });
}

function doAjaxSitebuilder(url,retObjId, retOperation, frmInput) 
{

		if (retOperation != 'wait_json' & retOperation != 'wait_inner' & retOperation != 'call_myjs' & retOperation != 'call_myjsXML') {
			loadingActivate();
		}

	    new Ajax.Request( url, {
	        method: 'post',
	        asynchronous:true,
	        parameters: frmInput,
	        encoding: 'UTF-8',
	        onSuccess: function(transport) {
                                AJAXOutput(transport,retObjId, retOperation)
	        				}	        
	        
			});

}
function print_r(obj)
{
var a='';
var n = '}';
var nbsp2 = '&nbsp;&nbsp;';
var nbsp4 = '&nbsp;&nbsp;&nbsp;&nbsp;';

for(key in obj){
             if(typeof obj[key] =='object'){
                a +="<ol>object->{"+nbsp2+"["+key+']'+nbsp4+print_r(obj[key])+'</ol>';
             } else if(typeof obj[key] !='object' && typeof obj[key] !='null' ){
                a +='<ol>' +nbsp4+ key+'=>'+obj[key]+nbsp4+' type ' +typeof obj[key]+ '</ol>'
             } 
             }
             return a+n;
}
function doAjaxRequest(url,frmInput) 
{

	    new Ajax.Request( url, {
	        method: 'post',
	        asynchronous:true,
	        parameters: frmInput,
	        encoding: 'UTF-8'
	        
			});

}


function AJAXOutput(transport,retObjId, retOperation)
{
	var ajaxOutputValue = transport.responseText;
	var ajaxRetObj = document.getElementById(retObjId);
	var msgTxt = msgSuccess;
	var showtime = 500;
	var htmlFormat = false;
	var showMsgType = 'basic';
	var isJSON = ajaxOutputValue.search(/{'[a-zA-Z]*'\s:\s'[a-zA-Z]*'/ig);
	var ajaxOutputJSON = '';
	
	if (isJSON > -1) {
		var ajaxOutputJSON =  eval("(" + ajaxOutputValue + ")");
	}
	
		
	if (ajaxOutputValue == 'stop') {
		lightboxDeactivate();
		return false;
	} else if(ajaxOutputValue == 'refresh') {
		window.location.href = window.location;
		return;
	} else if(ajaxOutputJSON.error == 'true') {
		msgTxt = ajaxOutputJSON.msgErr;
		showtime = 3000;
		htmlFormat = true;
		showMsgType = 'framePopup';
		
		if(ajaxOutputJSON.retOperation != 'undefined') {
			retOperation = ajaxOutputJSON.retOperation;
		}
	}

	if (retOperation == 'skip') {
		//skip operation
	} else if (retOperation == 'refresh') {
		window.location.href = window.location;		
	} else if (retOperation == 'inner') {
		ajaxRetObj.innerHTML = ajaxOutputValue;		
	} else if (retOperation == 'wait_inner') {		
		ajaxRetObj.innerHTML = ajaxOutputValue;						
	} else if (retOperation == 'wait_json') {
		
		ajaxOutputJSON = eval("(" + ajaxOutputValue + ")");

		if (ajaxOutputJSON.error == 'true') {
			ajaxRetObj.innerHTML = ajaxOutputJSON.msgErr;
		} else if (ajaxOutputJSON.ajaxHtml == 'true') {
			ajaxRetObj.innerHTML = ajaxOutputJSON.dataHtml;
		}
	} else if (retOperation == 'run_js') {
		
		cmd =ajaxOutputValue + "('" + retObjId + "')";
		eval(cmd);				
				
	} else if(retOperation == 'inner_multi') {
		aRetObjId = retObjId.split(",");
		aOutputVal = ajaxOutputValue.split(",");
		
		for(i=0;i<aRetObjId.length;i++) {
			var oElem = document.getElementById(aRetObjId[i]);
			oElem.innerHTML = decodeURIComponent(aOutputVal[i]);		
		}		
	} else if(retOperation == 'del_multiselectOpt') {
		aRetObjId = retObjId.split(",");
		delIndex = document.getElementById(aRetObjId[0]).selectedIndex;
		
		for(i=0;i<aRetObjId.length;i++) {
			var sel =  document.getElementById(aRetObjId[i]);
			sel.remove(delIndex);
		}

	} else if (retOperation == 'call_myjs') {
	     var str = retObjId;
	     str = str.replace(/#transport#/gi, "transport.responseText" );
	    try {
	       eval(str);
	    } catch (e) { }
	} else if (retOperation == 'call_myjsXML') {
         var str = retObjId;
         var rvbrowser=navigator.appName +' '+navigator.appVersion;
         var leightBoxDetect = navigator.userAgent.toLowerCase();
         var browserLeightBox = (OS)? OS + lbxBrowser + version : '';
         str = str.replace(/#transport#/gi, "transport.responseXML" );

  

try //Internet Explorer
  {
  xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
  xmlDoc.async = "false";
  xmlDoc.loadXML(transport.responseText);
  transport.responseXML = xmlDoc
  }
catch(e)
  {
  try //Firefox, Mozilla, Opera, etc.
    {
    parser = new DOMParser();
    xmlDoc = parser.parseFromString(transport.responseText.replace(/<\?xml (.*)\?>/, '')  ,"text/xml");
    transport.responseXML = xmlDoc
    }
  catch(e) {transport.responseXML = null}
  }	
                 isXmlMsg = (msgXmlErrorMemoryAndMaxTime !='') ? msgXmlErrorMemoryAndMaxTime : '';
	
         if(document.all ) {
        		if(transport.responseXML.childNodes.length == 0) {
        			transport.responseText ='node error xml <br> return responseText<br>' + isXmlMsg + transport.responseText+'<br>'
        			+rvbrowser+leightBoxDetect+browserLeightBox
             		str = str.replace(/transport.responseXML/gi, "transport.responseText" );
        		}
         }else {
         		if(transport.responseXML.childNodes[0].tagName == 'parsererror') {
         			transport.responseText ='node error xml <br> return responseText<br>' + isXmlMsg + transport.responseText+'<br>'
         			+rvbrowser+leightBoxDetect+browserLeightBox
         			str = str.replace(/transport.responseXML/gi, "transport.responseText" );
         		 } 
         	}
        try {
           eval(str);
        } catch (e) { }
    }
	else {
			var objTagName = ajaxRetObj.tagName;
			var objType = objTagName.toLowerCase();
			
			if (objType == 'img' ) {
				ajaxRetObj.src = ajaxOutputValue;
			}
			
			if (objType == 'tr' ) {
				ajaxRetObj.style.display = ajaxOutputValue;
			}
			
	}
	

	if (retOperation != 'wait_json' & retOperation != 'wait_inner' & retOperation != 'call_myjs' & retOperation != 'call_myjsXML') {
		if(showMsgType == 'framePopup') {
			windowAlert(msgTxt)
		} else {
			messageActivate(msgTxt, htmlFormat);
			t=setTimeout("lightboxDeactivate()",showtime);		
		}
		
	}


}


function get(objForm)
{
     
	  var getstr = "/";	 
	  
	  if (objForm.tagName.toLowerCase() == 'form' ) {
	      for (i=0; i<objForm.length; i++) {         
	         var oElem = objForm.elements[i];
			 var result = "";
			 //alert(oElem)			          
	         result = getObj(oElem); 
	         getstr = getstr + result;
	      }	  
	  } else {
	  	 oElem = objForm;
	  	 result = getObj(oElem);
	  	 getstr = getstr + result;
	  
	  }

     
      return getstr;
}


function getObj(oElem)
{
         var getstr = "";	
         
         if (oElem.tagName == "INPUT") {
            if (oElem.type == "text") {
               getstr += '&' + oElem.name + "=" + encodeVal(oElem.value) ;
            }
            
            if (oElem.type == "hidden") {
               getstr += '&' + oElem.name + "=" + encodeVal(oElem.value) ;
            }
            
            if (oElem.type == "checkbox") {
               if (oElem.checked == true) {
                  getstr += '&' + oElem.name + "=" + encodeVal(oElem.value) ;
               } else {
                  getstr +=  '&' + oElem.name + "=0";
               }
            }
            if (oElem.type == "radio") {
               if (oElem.checked) {
                  getstr += '&' + oElem.name + "=" + encodeVal(oElem.value) ;
               }
            }           
         }
            
         if (oElem.tagName == "SELECT") {
            var sel = oElem;
            getstr += '&' + sel.name + "=" + sel.options[sel.selectedIndex].value ;
         }

         if (oElem.tagName == "TEXTAREA") {
            var sel = oElem;
            getstr += '&' + sel.name + "=" + encodeVal(oElem.value);
         }         
      
      return getstr;
}

function log(data,all)
{
	if (all == true) {
		document.getElementById('log').innerHTML = document.getElementById('log').innerHTML + '<br>' + data;
	} else {
		document.getElementById('log').innerHTML = data;
	}
	
}

function encodeVal(value)
{
	value = encodeURIComponent(value);
	value = value.replace(/http:\/\//ig, "@http@");
	value = value.replace(/https:\/\//ig, "@https@");
	value = value.replace(/\//g, "@slash@");

	return value;
}

function setInternalPageTdClass(delRowId)
{
	var doRun = false;
	document.getElementById(delRowId).style.display="none";
	
	intTable = document.getElementById("tblInternalPage");
	intTablebody = intTable.getElementsByTagName("tbody")[0];
	intRow = intTablebody.getElementsByTagName("tr");
	intRowFirst = intTablebody.getElementsByTagName("tr")[2];
	intRowNext = intTablebody.getElementsByTagName("tr")[3];
	
	for (i=2;i<intRow.length;i++) {
		
		if (intRow[i].style.display != 'none' && doRun == false ) {
			intCell = intRow[i].getElementsByTagName("td");
			
			intCell[0].setAttribute('class', 'topNamePage');
			intCell[2].setAttribute('class', 'cornerTop_lBody');
			intCell[3].setAttribute('class', 'middleTop');
			intCell[4].setAttribute('class', 'middleTop');
			intCell[5].setAttribute('class', 'middleTop');
			intCell[6].setAttribute('class', 'cornerTop_rBody');
			
			// For IE
			intCell[0].setAttribute('className', 'topNamePage');
			intCell[2].setAttribute('className', 'cornerTop_lBody');
			intCell[3].setAttribute('className', 'middleTop');
			intCell[4].setAttribute('className', 'middleTop');
			intCell[5].setAttribute('className', 'middleTop');
			intCell[6].setAttribute('className', 'cornerTop_rBody');
			
			doRun = true;
		}	
	
	}

	
}


/**
*
* AJAX IFRAME METHOD (AIM)
* http://www.webtoolkit.info/
*
**/

AIM = {

    frame : function(c,outputId,returnId,IfName) {
        var j = 0;
        var n = 'f' + Math.floor(Math.random() * 99999);
        var d = document.createElement('DIV');
        
        if (IfName) {
        n = IfName
        }
        if (!document.getElementsByTagName("iframe").length || !IfName) { 
        d.innerHTML = '<iframe style="display:none" src="about:blank" id="'+n+'" name="'+n+'" onload="AIM.loaded(\''+n+'\',\''+outputId+'\',\''+returnId+'\')"></iframe>';
        //d.innerHTML = '<iframe  src="about:blank" id="'+n+'" name="'+n+'" onload="AIM.loaded(\''+n+'\')"></iframe>';
        document.body.appendChild(d);

        var i = document.getElementById(n);
        if (c && typeof(c.onComplete) == 'function') {
            i.onComplete = c.onComplete;
        }
		}
        return n;
    },

    form : function(f, name) {
        f.setAttribute('target', name);
    },
	
	//<form  action="php_url"  onsubmit="return AIM.submit(formObject, '' , )" >
    submit : function(f, c,outputId,returnId,IfName) {
        //alert('AIM submit');
        AIM.form(f, AIM.frame(c,outputId,returnId,IfName));
        if (c && typeof(c.onStart) == 'function') {
            return c.onStart();
        } else {
            
            return true;
        }
    },

    loaded : function(id, outputId, returnId) {
        var i = document.getElementById(id);
        if (i.contentDocument) {
            var d = i.contentDocument;
        } else if (i.contentWindow) {
            var d = i.contentWindow.document;
        } else {
            var d = window.frames[id].document;
        }
        if (d.location.href == "about:blank") {
            return;
        }

        AIM.onCompleteReturn(d,returnId,outputId)
        
        if (typeof(i.onComplete) == 'function') {
            i.onComplete(d.body.innerHTML);
        }
    },
    
    onCompleteReturn : function(objIFrame, returnId,outputId){
    
        if(objIFrame.getElementById(outputId) && document.getElementById(returnId) && objIFrame.getElementById(outputId).innerHTML){
	        document.getElementById(returnId).innerHTML = objIFrame.getElementById(outputId).innerHTML
	        objIFrame.getElementById(outputId).innerHTML = objIFrame.getElementById(outputId).innerHTML                
        }

        if (document.getElementById('real_ImageId') && objIFrame.getElementById(outputId) ){
            var real_ImageId = document.getElementById('real_ImageId').value
		    var rvsPopUpHtmlContent = document.getElementById('rvsPopUpHtmlContent').innerHTML;
		    if(real_ImageId == 'headerBanner'){
		        divOptionId = 'OptionBanner';
		    } else if(real_ImageId == 'headerBgImage'){
		        divOptionId = 'OptionBg';
		    }        
            
            if(document.getElementById(divOptionId)){            
	           document.getElementById(divOptionId).innerHTML = objIFrame.getElementById(outputId).innerHTML	        
	        }
	     }
	  
	  if (objIFrame.getElementById('AIM_Command')) {   
		   var onCompletCommand = objIFrame.getElementById('AIM_Command').innerHTML;
		   if(onCompletCommand != ''){
		       eval(onCompletCommand);
		   }	     
	   }
	     
	     //displayLoading('loadingDialog','divUploadImage')
    },
    
    AIMHideObject : function(){
        //alert()
        var AIM_Hide =   document.getElementsByClassName('AIM_onComleteHide');
        for(i = 0; i < AIM_Hide.length; i++) {
            //AIM_Hide[i].style.visibility = 'hidden';
            AIM_Hide[i].style.display = 'none';
        }
    
    }

}
IFS ={
	validate:function(obj) {
	 return (obj) 
					 ? (document.getElementById(obj))  ? document.getElementById(obj) : false
					 : false; 
	},
	build:function(idForm) {
		//1.create element iframe
		
		//objBody = document.getElementById(idForm)
		objBody= document.getElementsByTagName('body')[0];
		iframeDiv= document.createElement('div');
	    iframeDiv.id ='extraIFDiv';
	    iframeDiv.name ='extraIFDiv';
	    //iframe.style.display='none';
	    objBody.appendChild(iframeDiv);
	    
	    buildIFrame = '<iframe style="display:none" name="extraIF" id="extraIF" '+this.regisOnload()+' '+this.regisOnUnload()+' > </iframe>'
	    //alert(buildIFrame)
	    document.getElementById('extraIFDiv').innerHTML = buildIFrame;
		return idForm
	},
	setaction:function(idForm) {
		
		//2.set form action traget
		//alert(idForm.getAttribute('traget'))
		 idForm.setAttribute('target','extraIF')
		return true; 
	
	},
	compile:function(idForm) {
	
		tragetForm = this.validate(idForm);
		 this.build(idForm) ;
		if (tragetForm) {
			this.setaction(tragetForm)
		}
		if (endSubmit = this.submit(tragetForm)) {
			this.removeAttirbuteTarget(idForm);
		}
	},
	regisOnload:function(){
	//build IFrame event unonload
	var buildIFrame;
		if(this.loaded != undefined) {
			return	buildIFrame = 'onload='+this.loaded;
		} else{
			return '';
		}
	},
	regisOnUnload:function(){
	//build IFrame event onload
	var buildIFrame;
		if(this.unloaded != undefined) {
			return	buildIFrame = 'onunload='+this.unloaded;
		} else{
			return '';
		}
	},
	submit:function(idForm) {
	//3.run form action submit
	 eval('document.'+idForm.id+'.submit()');
	 return true
	},
	removeAttirbuteTarget:function(idForm){
	document.getElementById(idForm).removeAttribute('target');
	return true;
	}
}


