String.prototype.trim = function () {
    return this.replace(/^\s+/g, '').replace(/\s+$/g, '');
}
function iframe_switcher() {
	//alert($('#switch-frida').val());
	$('#content_iframe').attr('src', $('#switch-frida').val());
	
}
function startWorkflow(workflowID) {
	$.post('core/workflow/start/', { workflowID: workflowID}, function(data) {
		proceedAjaxResponse(data); 
	}, "json");
}
function resumeWorkflow(url) {
	$.post(url, null, function(data) {
		proceedAjaxResponse(data); 
	}, "json");
}
function pull_data(vform) {	
	
	// Fuktion übergibt die Company Site ID ins Feld: ab_company_site_id
	// oder die relation ID ins Feld: ab_rel_contact_id	
	
	var chkradio = getCheckedValue(window.document.forms.address_book.address_checkbox);
	
	var type = chkradio.substring(0, 2);
	var id = chkradio.substring(2, chkradio.length);
	
	var error = true;
	
	if (opener.document.forms[vform].company_name) opener.document.forms[vform].company_name.value = '';
	if (opener.document.forms[vform].address_name) opener.document.forms[vform].address_name.value = '';
	if (opener.document.forms[vform].address_street1) opener.document.forms[vform].address_street1.value = '';
	if (opener.document.forms[vform].address_street2) opener.document.forms[vform].address_street2.value = '';
	if (opener.document.forms[vform].address_postcode) opener.document.forms[vform].address_postcode.value = '';
	if (opener.document.forms[vform].address_city) opener.document.forms[vform].address_city.value = '';
	if (opener.document.forms[vform].address_country_id) opener.document.forms[vform].address_country_id.value = '';
	if (opener.document.forms[vform].phone_number) opener.document.forms[vform].phone_number.value = '';
	if (opener.document.forms[vform].contact_name) opener.document.forms[vform].contact_name.value = '';
	if (opener.document.forms[vform].contact_phone) opener.document.forms[vform].contact_phone.value = '';
	if (opener.document.forms[vform].contact_mobile) opener.document.forms[vform].contact_mobile.value = '';
	if (opener.document.forms[vform].contact_fax) opener.document.forms[vform].contact_fax.value = '';
	if (opener.document.forms[vform].contact_email) opener.document.forms[vform].contact_email.value = '';
	if (opener.document.forms[vform].scheduled_date) opener.document.forms[vform].scheduled_date.value = '';
	if (opener.document.forms[vform].timezone_id) opener.document.forms[vform].timezone_id.value = '';
	
	if (opener.document.forms[vform].crosscharge_name) opener.document.forms[vform].crosscharge_name.value = '';
	if (opener.document.forms[vform].crosscharge_street1) opener.document.forms[vform].crosscharge_street1.value = '';
	if (opener.document.forms[vform].crosscharge_street2) opener.document.forms[vform].crosscharge_street2.value = '';
	if (opener.document.forms[vform].crosscharge_postcode) opener.document.forms[vform].crosscharge_postcode.value = '';
	if (opener.document.forms[vform].crosscharge_city) opener.document.forms[vform].crosscharge_city.value = '';
	if (opener.document.forms[vform].crosscharge_country_id) opener.document.forms[vform].crosscharge_country_id.value = '';
	
	if (type == 'cs') {		
		if (opener.document.forms[vform].ab_company_site_id) {
			error = false;
			
			opener.document.forms[vform].ab_company_site_id.value = id;
			opener.document.forms[vform].submit();
		}  
	} else {	
		if (opener.document.forms[vform].ab_rel_contact_id) {
			error = false;
			opener.document.forms[vform].ab_company_site_id.value = 0;
			opener.document.forms[vform].ab_rel_contact_id.value = id;
			opener.document.forms[vform].submit();
		}
	}
	if (error) alert('No Update Field found in Destination-Form');	
}
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 MM_findObj(n, d) { //v4.0
	var p,i,x;  
	if(!d) d=document; 
	if((p=n.indexOf("?"))>0&&parent.frames.length) {
		d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);
	}
	if(!(x=d[n])&&d.all) x=d.all[n]; 
	for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
	for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
	if(!x && document.getElementById) x=document.getElementById(n); 
	return x;
}
function showhide(table_id, drop_id, clear_drop_id) {
 var q,p,o;

 q = MM_findObj(clear_drop_id);
 p = MM_findObj(drop_id);
 o = MM_findObj(table_id);
 
 if (p.value!="t") {
	o.style.display = "none";
	q.selectedIndex = 0;
 } else {
	o.style.display = ""; // normal table, aber IE nimmt nur das
 } 
}
function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}
function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}
function MM_jumpMenuGo(selName,targ,restore){ //v3.0
  var selObj = MM_findObj(selName); 
  if (selObj) MM_jumpMenu(targ,selObj,restore);
}
function reloader(n, strFrame) {
	iframe = window.frames[strFrame];
  window.setInterval("iframe.location.reload(true);",n*1000);  // alle n sekunden nachladen  
}
function logoff() {
	parent.location.reload(true);
}
function MM_showHideLayers1() { //v3.0
  var i,p,v,obj,args=MM_showHideLayers1.arguments;
  for (i=0; i<(args.length-2); i+=3) {
  	if ((obj=MM_findObj(args[i]))!=null) { 
		v=args[i+2];
    	if (obj.style) {         
        obj=obj.style; v=(v=='show')?'':(v=='hide')?'none':v; 		
		}
		obj.display=v; 		  
	}
  }
  
}

function sendForm(form,action) {
	//console.log( form );
	//console.log( $(form).valid() );
		
	var options;

	if( $(form).valid() )  {
		
		if(action) {
			options = {
				url: action,
				dataType: 'json',
				success: evalFormResponse
			};
		} else {
			options = {
				dataType: 'json',
				success: evalFormResponse
			};
		}
		
		//console.log('submit');
		
		$(form).ajaxSubmit(options);
	
	}
	return false;
}

function sendSubForm(subform) {
		
	var elements = subform.find("input,select");
	var data = new Object();
	
	elements.each(function(i) {
		data[this.name] = $(this).val();	
	});
	
	$.post('core/ajax/save',data,evalFormResponse,"json");	
		
	return false;
}
function deleteSubForm(id,location) {
	//console.log( location );
	location = location.replace('*::*','');
	$('#'+location).load('core/ajax/deletesubform',{id: id,name: location },null,"json");	
	$('#error_container').hide();
	console.log( location );
	return false;
}
function sendFile(form) {
	//console.log( form.id );
	//console.log( $(form).valid() );
	if( $(form).valid() )  {
		$('#upload_progress').show();
		form.attr('target','upload_target');
		//console.log("submit");
		form.submit();	
	}
	return false;
}
completeFile = function(response) {
	//console.log( response );
	
	if( response == 'not_valid' )
		$('#upload_progress').html('File is not valid!');
	else if( response == 'not_complete')
		$('#upload_progress').html('File could not be uploaded!');
	else {
		$('#filelink').load(response);
		
		
		$('#upload_progress').hide();
	}
		
}

// TODO implement in main.js response function
function evalFormResponse(responseText, statusText) {	
	
	if( statusText === "success" ) {
		proceedAjaxResponse(responseText);
	}
	/*	//console.log(statusText);
		//console.log(responseText);
		var object = responseText;
		if( typeof object === 'object' ) {
			
			
			$.each(object,function(key,value) {
				if( value != null ) {				
					var element = $("[name='"+key+"']");
					
					if( element && value ) {
						//console.log( key );
						//console.log( element );
						$(element).val( value );
					}
	
				}
			});
		}
		if( typeof object === 'string' ) {
			//console.log( 'string' );
			var error_container = $('#error_container');
			
			if(error_container) {
				$(error_container).html(object);
				$(error_container).show();
			}
		}
		
	}*/
}
function addRepeaterField(name) {
	$('#'+name).load('core/ajax/repeater',{ name:name });
}