/*
function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
  
}*/

function URLEncode(clearString) {
	//from: http://cass-hacks.com/articles/code/js_url_encode_decode/
  var output = '';
  var x = 0;
  clearString = clearString.toString();
  var regex = /(^[a-zA-Z0-9_.]*)/;
  while (x < clearString.length) {
    var match = regex.exec(clearString.substr(x));
    if (match != null && match.length > 1 && match[1] != '') {
    	output += match[1];
      x += match[1].length;
    } else {
      if (clearString[x] == ' ')
        output += '+';
      else {
        var charCode = clearString.charCodeAt(x);
        var hexVal = charCode.toString(16);
        output += '%' + ( hexVal.length < 2 ? '0' : '' ) + hexVal.toUpperCase();
      }
      x++;
    }
  }
  return output;
}

function URLDecode(encodedString) {
	//from: http://cass-hacks.com/articles/code/js_url_encode_decode/
  var output = encodedString;
  var binVal, thisString;
  var myregexp = /(%[^%]{2})/;
  while ((match = myregexp.exec(output)) != null
             && match.length > 1
             && match[1] != '') {
    binVal = parseInt(match[1].substr(1),16);
    thisString = String.fromCharCode(binVal);
    output = output.replace(match[1], thisString);
  }
  return output;
}


function collection_fieldvalueintoajax(fname){

	var returnvalue = new Array();
	var qstr = '';
	var tinyobj = '';
	var elementArray = document.getElementsByName(fname);
	
	for (var i=0; i<elementArray.length; i++){
		
		elementRef = elementArray[i];
		
		if (elementRef.name == '') elementRef.name = elementRef.id; //fix name problem with select
		
		if (DoTinyMCE && tinyMCE.getInstanceById(elementRef.name) != null){
			
			qstr = encodeURIPlus(tinyMCE.getInstanceById(elementRef.name).getContent());
			tinyMCE.execCommand('mceRemoveControl', false, elementRef.name);
			tinyobj = elementRef.name;
		
		}else if (elementRef.tagName == 'SELECT' && elementRef.type == 'select-one'){
			
			qstr = encodeURIPlus(elementRef.value);
						
		}else if (elementRef.tagName == 'SELECT' && elementRef.type == 'select-multiple'){
			
			for (var j=0; j < elementRef.options.length; j++){
				
				if (elementRef.options[j].selected){
					if (qstr != '') qstr = qstr + ',';
					qstr = qstr + encodeURIPlus(elementRef.options[j].value);
				}
			
			}			
			
		}else if ((elementRef.type == 'checkbox' && elementRef.checked) || (elementRef.type == 'radio' && elementRef.checked) || (elementRef.type != 'checkbox' && elementRef.type != 'radio')){
			
			if (qstr != '') qstr = qstr + ',';
			qstr = qstr + encodeURIPlus(elementRef.value);
			
		}
		
	}
	returnvalue[0] = qstr;
	returnvalue[1] = tinyobj;
	return returnvalue;
	
}


function updateFieldSpan(updatespanaction, id, rootid, fname, handleform__spanname){
	
	var val = false;
	var tinyobj = '';
	
	if (updatespanaction != "delete"){
		vals = collection_fieldvalueintoajax(fname);
		val = vals[0];
		tinyobj = vals[1];
		
	}
	errdiv = 'error_post_' + id;
	AjaxSend('plugin=collection&action=general&sub=updatefieldspan&thisshowmode=editvalue&subaction='+updatespanaction+'&id='+id+'&rtid='+rootid+'&theval='+val+'&thefield='+fname, 'handle_updateFieldSpan', handleform__spanname, tinyobj, errdiv);
}

function handle_updateFieldSpan(Param){

	var str = Param[0];
	//alert(str);
	var ContentDiv = Param[1];
	var TinyObj = '';//Param[2];
	var ErrorDiv = Param[3];
	var entries = AjaxCreateResults(str);
	
	if (AjaxGetResult(entries,'ERROR')){
		findObj(ErrorDiv).className = '';
		findObj(ErrorDiv).innerHTML = '<div class="showError">'+AjaxGetResult(entries,'ERROR')+'</div>';
		if (TinyObj.length > 0) tinyMCE_init();				
	}else if (AjaxGetResult(entries,'Content')){
		switchTinyMCE('off');
		findObj(ContentDiv).innerHTML = AjaxGetResult(entries,'Content');
		switchTinyMCE('on');
		if (use_disclaimer) add_disclaimers();
	}else{
		findObj(ErrorDiv).className = '';
		findObj(ErrorDiv).innerHTML = '<div class="showError">output:<br /> '+str+'</div>';
	}
	
}