function check_email(email) {
  var my_params = 'json=' + encodeURIComponent(email.toJSON());
  var url = host + '/ajax/check_email.php';

  new Ajax.Request(url,
  {   parameters: my_params,
  	  method: 'post',
      onSuccess: function(transport, json) {
	     	if(json[0] == 1) {
	     		valid_email = true;
					reinforce_confirmation();
	     	}
	     	else {
	     		valid_email = false;
					reinforce_confirmation();
	     	}
      }
  });
}

function reinforce_confirmation() {
	$('ecard_result').style.visibility = 'hidden';
	$('confirm_ecard').style.visibility = 'hidden';
	$('ecard_confirm_cb').checked = false;
	$('ecard_send_btn').disabled = true;

	if(valid_email == true) {
		$('ecard_preview_btn').disabled = false;
	}
	else {
		$('ecard_preview_btn').disabled = true;
	}
}

function add_text_element() {
	if (typeof(data) == "object") {
  	var lgt = (data.length); }
	else {
		data = new Array();
		var lgt=0; }

	if(lgt > 0 && visible_elements >= max_elements) {
    $('add_img').style.visibility = 'hidden';
    $('add_btn').disabled = false;
    
    alert(unescape('Kein Zeichnungsobjekt mehr %FCbrig. \r\nNutzen Sie bis zu ' + max_elements + ' Objekte.'));
    
		return;
	}

 	var overwrite_element = false;

  for(var j=0; j<lgt; j++) {
    if(data[j]['is_visible'] == 0) {
    	overwrite_element = true;
			break;
    }
  }

  if(overwrite_element != true) {
  	data[j] = new Object();
  }
  
  data[j]['elements_id'] = 1;
  data[j]["type"]="text";
  data[j]["is_visible"]="1";
  data[j]["x"]="96";
  data[j]["y"]="35";
  data[j]["z"] = j; 
  data[j]["htmltext"]="";
  data[j]["filename"]="\/canvas\/Neuer-Text-2.gif";
  data[j]["imagefile"]="";
  data[j]["width"]="101";
  data[j]["height"]="21";

  data[j]["color"]="#0000aa";
  data[j]["fontfile"]="1.ttf";
  data[j]["size"]="15";
  data[j]["winkel"]="0";
  data[j]["text"]="Neuer Text " + j;
  data[j]["r"]=0;
  data[j]["g"]=0;
  data[j]["b"]=170;
  data[j]["font"]="1.ttf";
  
	$("el_" + j).style.visibility = 'visible';
  
  var objectName = "el_" + j;
  var tmp = $(objectName).getElementsByTagName("div");
  var div = tmp[0];
  var tmp = div.getElementsByTagName("input");
  var type  = tmp[1];
  type.value = "text";
  
  init_text_settings(j);
  save_settings(j, 'color', '#000000', myelement);
  
  $('add_img').style.visibility = 'hidden';
  $('add_btn').disabled = false;
	
	visible_elements++;

  var tmp = $(objectName).getElementsByTagName("img");
  var img = tmp[0];

  data[j]['x'] = Number(img.style.left.substring(0, img.style.left.indexOf("p")));
  data[j]['y'] = Number(img.style.top.substring(0, img.style.top.indexOf("p")));
  data[j]['object_id'] = j;

  var my_params = $H(data[j]);
  var url = host + '/ajax/save_position.php';

  new Ajax.Request(url,
  {   parameters: my_params,
  	  method: 'post'
  });
}

function add_image_element() {
	if (typeof(data) == "object") {
  	var lgt = (data.length); }
	else {
		data = new Array();
		var lgt=0; }

	if(lgt > 0 && visible_elements >= max_elements) {
    $('img_img').style.visibility = 'hidden';
    $('img_btn').disabled = false;
    
    alert(unescape('Kein Zeichnungsobjekt mehr %FCbrig. \r\nNutzen Sie bis zu ' + max_elements + ' Objekte.'));
    
		return;
	}

 	var overwrite_element = false;

  for(var j=0; j<lgt; j++) {
    if(data[j]['is_visible'] == 0) {
    	overwrite_element = true;
			break;
    }
  }

  if(overwrite_element != true) {
  	data[j] = new Object();
  }
  
  data[j]['elements_id'] = 1;
  data[j]["type"]="image";
  data[j]["is_visible"]="1";
  data[j]["x"]="96";
  data[j]["y"]="35";
  data[j]["z"] = j; 
  data[j]["htmltext"]="Ein Platzhalter";
  data[j]["filename"]="\/canvas\/platzhalter.gif";
  data[j]["imagefile"]="platzhalter.gif";
  data[j]["width"]="101";
  data[j]["height"]="21";

  data[j]["color"]="#0000aa";
  data[j]["fontfile"]="1.ttf";
  data[j]["size"]="15";
  data[j]["winkel"]="0";
  data[j]["text"]="Ein Bild auf Ebene " + j;
  data[j]["r"]=0;
  data[j]["g"]=0;
  data[j]["b"]=170;
  data[j]["font"]="1.ttf";
  
	$("el_" + j).style.visibility = 'visible';
  
  var objectName = "el_" + j;
  var tmp = $(objectName).getElementsByTagName("div");
  var div = tmp[0];
  var tmp = div.getElementsByTagName("input");
  var type  = tmp[1];
  type.value = "image";
  
  init_text_settings(j);
  save_settings(j, 'imagefile', data[j]["imagefile"], j);
  
  $('img_img').style.visibility = 'hidden';
  $('img_btn').disabled = false;
	
	visible_elements++;

  var tmp = $(objectName).getElementsByTagName("img");
  var img = tmp[0];

  data[j]['x'] = Number(img.style.left.substring(0, img.style.left.indexOf("p")));
  data[j]['y'] = Number(img.style.top.substring(0, img.style.top.indexOf("p")));
  data[j]['object_id'] = j;

  var my_params = $H(data[j]);
  var url = host + '/ajax/save_position.php';

 	$('htmltext').value = data[objectNumber]['htmltext'];

  new Ajax.Request(url,
  {   parameters: my_params,
  	  method: 'post'
  });
}

function delete_text_element(objectNumber) {
  delete_settings(objectNumber);
  $('el_' + objectNumber).style.visibility = 'hidden';
	visible_elements--;

	$('texteinstellungen').hide();

  return;
}

function enable_inplace_editor(objectId) {
	objectNumber = objectId.substr(3);
  objectName = 'el_' + objectNumber;

	var tmp = $(objectName).getElementsByTagName("img");
	var img = tmp[0];
	var tmp = $(objectName).getElementsByTagName("div");
	var div = tmp[0];
	var tmp = div.getElementsByTagName("input");
  var input = tmp[0];
  var type  = tmp[1];

  if(type.value == "text") {
    inlinediv = div;
    inlinetxt = input;
    
    init_text_settings(objectNumber);
	      
    $('texteinstellungen').hide();
    
    inlinetxt.value = data[objectNumber]['text'];
    
    maxx = Number($('canvas').style.width.substring(0, $('canvas').style.width.indexOf("p"))) -
           Number(inlinediv.style.width.substring(0, inlinediv.style.width.indexOf("p"))) - 5;
    
    if(data[objectNumber]['x'] > maxx) {
    	inlinediv.style.left = maxx;
    }
    else {
    	inlinediv.style.left = data[objectNumber]['x'];
    }
    
    inlinediv.style.top  = data[objectNumber]['y'];
    
    inlinediv.style.visibility = 'visible';
    inlinetxt.focus();
    inlinetxt.value += "";
  }

  if(type.value == "image") {
  	init_text_settings(objectNumber);
  	
  	$('htmltext').value = data[objectNumber]['htmltext'];

  	return;
  }
}

function init_text_settings(objectNumber) {
  mycounter = objectNumber;
  myelement = data[objectNumber]['elements_id'];

  return;
}

function disable_inplace_editor(objectId, intObjectId) {
	objectNumber = objectId.substr(3);
  objectName = 'el_' + objectNumber;

	var tmp = $(objectName).getElementsByTagName("img");
	var img = tmp[0];
	var tmp = $(objectName).getElementsByTagName("div");
	var div = tmp[0];
	var tmp = div.getElementsByTagName("input");
  var input = tmp[0];

  inlinediv = div;
  inlinetxt = input;

  inlinediv.style.visibility = 'hidden';

  save_settings(objectNumber, 'text', inlinetxt.value, intObjectId);
}

function save_canvas() {
  data[0]['parent_token'] = "parent_" + parent_id;

  var my_params = 'json=' + encodeURIComponent(data.toJSON());
  var url = host + '/ajax/save_canvas.php';
  
  new Ajax.Request(url,
  {  parameters: my_params,
     method: 'post',
      onSuccess: function(transport, json) {
	     	$('save_img').style.visibility='hidden';
	     	$('save_btn').disabled=false;
//	     	$('result').innerHTML = 'id = ' + json[0];
      }
  });
}

function render_canvas() {
	close_viewports();
  var my_params = 'json=' + encodeURIComponent(data.toJSON());
  var url = host + '/ajax/render_canvas.php';

  new Ajax.Request(url,
  {  parameters: my_params,
     method: 'post',
      onSuccess: function(transport, json) {
	     	$('download_img').style.visibility='hidden';
	     	$('download_btn').disabled=false;
	     	$('download_result').innerHTML = '<b><a target="_blank" href="' + json[0] + ' " onClick="javascript: tracker(\'/download\');">Gru&szlig;karte als PDF herunterladen</a></b>';

        $('downloadinfo').style.visibility = 'visible';
        $('spaceblock').style.height = '200px';
      }
  });
}

function enable_ecard_editor() {
	close_viewports();
 	$('ecard_img').style.visibility='hidden';
 	$('ecard_btn').disabled=false;

  $('ecardinfo').style.visibility = 'visible';
  $('spaceblock').style.height = '200px';
}

function render_ecard_preview() {
	data[0]['to_email'] = $('to_email').value;
	data[0]['to_name']  = $('to_name').value;
	data[0]['to_text']  = $('to_text').value;
	data[0]['mode']  		= 'preview';

  var my_params = 'json=' + encodeURIComponent(data.toJSON());
  var url = host + '/ajax/render_ecard.php';

  new Ajax.Request(url,
  {  parameters: my_params,
     method: 'post',
      onSuccess: function(transport, json) {
	     	$('ecard_preview_img').style.visibility='hidden';
	     	$('ecard_preview_btn').disabled=true;

	     	$('ecard_result').innerHTML = '<img src="/editor/img/e-card_icon.gif" alt="Ecard." style="float: left; margin-right: 10px;" ><b><a target="_blank" href="/get?' + json[0] + ' " onClick="javascript: $(\'confirm_ecard\').style.visibility = \'visible\'; $(\'ecard_result\').style.visibility = \'hidden\';  tracker(\'/ecardpreview\');">Ecard-Vorschau in neuem Fenster &ouml;ffnen</a></b>';
        $('ecard_result').style.visibility = 'visible';
      }
  });
}

function render_ecard_send() {
	data[0]['to_email'] = $('to_email').value;
	data[0]['to_name']  = $('to_name').value;
	data[0]['to_text']  = $('to_text').value;
	data[0]['mode']  		= 'send';

  var my_params = 'json=' + encodeURIComponent(data.toJSON());
  var url = host + '/ajax/render_ecard.php';

  new Ajax.Request(url,
  {  parameters: my_params,
     method: 'post',
      onSuccess: function(transport, json) {
	     	$('ecard_send_img').style.visibility='hidden';
	     	$('ecard_send_btn').disabled=true;

				if(json[0] == -1) {
					alert('Nutzer nicht eingeloggt. \r\n\r\n Bitte registrieren Sie sich \r\n und loggen Sie sich ein.');
				}
				else if (json[0] == -2) {
					alert('(!) Fehler beim Email-Versand.');
				}
				else {
					alert('Email versendet an ' + json[0]);
				}
				
				close_viewports();
      }
  });
}

function enable_mobile_viewport() {
	close_viewports();
 	$('mobile_img').style.visibility='hidden';
 	$('mobile_btn').disabled=false;

  $('mobileinfo').style.visibility = 'visible';
  $('spaceblock').style.height = '200px';
  
}


function render_mobile_canvas() {
  if($('is_mobile_loader').value != 1) {
   	$('mobile_img').style.visibility='hidden';
   	$('mobile_btn').disabled=false;
    return;
  }

  var my_params = 'json=' + encodeURIComponent(data.toJSON());
  var url = host + '/ajax/render_mobile_canvas.php';

  new Ajax.Request(url,
  {  parameters: my_params,
     method: 'post',
      onSuccess: function(transport, json) {
	     	$('mobile_img').style.visibility='hidden';
	     	$('mobile_btn').disabled=false;
	     	if(json[0] == -1) {
	     		alert(unescape('Handyversand nicht m%F6glich (-1)'));
	     	}
	     	else if(json[0] == -2) {
	     		alert(unescape('Handyversand nicht m%F6glich (-2)'));
	     	}
	     	else {
	     		close_viewports();
	     		alert('SMS zum Abruf Ihrer Ecard \r\nan Handynummer ' + json[0] + ' gesendet.');
      	}
      }
  });
}

function make_draggable (objectCount) {
  objectName = 'el_' + objectCount;

	var tmp = $(objectName).getElementsByTagName("img");
	var img = tmp[0];
	var tmp = $(objectName).getElementsByTagName("div");
	var div = tmp[0];
	var tmp = div.getElementsByTagName("input");
  var input = tmp[0];

  myObject = img;

  new Draggable(myObject, {
    snap: function(x,y,draggable) {
      function constrain(n, lower, upper) {
        if (n > upper) return upper;
        else if (n < lower) return lower;
        else return n;
      }

      tmp = draggable.element.parentNode;
      element_dimensions = Element.getDimensions(draggable.element);
      parent_dimensions  = Element.getDimensions(tmp.parentNode);
      return[
        constrain(x, 0, parent_dimensions.width - element_dimensions.width),
        constrain(y, 0, parent_dimensions.height - element_dimensions.height)];
    },
    revert:false,
    onEnd: function(draggable) {
      var coord = eval(get_coordinates(draggable));
      data[objectCount]['x'] = coord[0];
      data[objectCount]['y'] = coord[1];
      data[objectCount]['object_id'] = objectCount;

    	var my_params = $H(data[objectCount]);
    	var url = host + '/ajax/save_position.php';

  		new Ajax.Request(url,
  		{   parameters: my_params,
     		  method: 'post',
      		onSuccess: function(transport, json) {
	     		// 	$('result').innerHTML = '';
      		}
  		});
    },
    onStart: function(draggable) {
      $('download_result').innerHTML = '';
//      $('downloadinfo').style.visibility = 'hidden';
      close_viewports();
      object_moved = true;
    }
  });

}

function close_viewports() {
  $('downloadinfo').style.visibility = 'hidden';
  $('ecardinfo').style.visibility = 'hidden';
  $('mobileinfo').style.visibility = 'hidden';

  $('ecard_result').style.visibility = 'hidden';
  $('confirm_ecard').style.visibility = 'hidden';

  $('spaceblock').style.height = '0px';

  return;
}

function get_coordinates(draggable) {
  myArrPar = eval(Position.cumulativeOffset(draggable.element.parentNode.parentNode));
  myArrSlf = eval(Position.cumulativeOffset(draggable.element));
  var xOff = myArrSlf[0]-myArrPar[0];
  var yOff = myArrSlf[1]-myArrPar[1];
  return [xOff, yOff];
}

function delete_settings(objectNumber) {
  objectName = 'el_' + objectNumber;

	data[objectNumber]['is_visible'] = 0;
	data[objectNumber]['object_id'] = objectNumber;

  var my_params = $H(data[objectNumber]);
  var url = host + '/ajax/render_text.php';

  new Ajax.Request(url,
  {  parameters: my_params
  });
}

function save_settings(objectNumber, index, value, intObjectId) {
  close_viewports();

  objectName = 'el_' + objectNumber;

  object_moved = true;

	data[objectNumber][index] = value;
	data[objectNumber]['object_id'] = objectNumber;
	data[objectNumber]['int_object_id'] = intObjectId;

  if (data[objectNumber]['type'] == 'text') {
    var my_params = $H(data[objectNumber]);
    var url = host + '/ajax/render_text.php';

    new Ajax.Request(url,
     {  parameters: my_params,
        onSuccess: function(transport) {
        	mydata = eval("[" + transport.responseText + "]");
 					data[objectNumber] = mydata[0];
 					
					var tmp = $(objectName).getElementsByTagName("img");
					var img = tmp[0];

					img.src = host + data[objectNumber]['filename'];
					img.style.width = data[objectNumber]['width'];
					img.style.height = data[objectNumber]['height'];
        }
     }
    );
  }

  if (data[objectNumber]['type'] == 'image') {
    var my_params = $H(data[objectNumber]);
    var url = host + '/ajax/render_image.php';

    new Ajax.Request(url,
     {  parameters: my_params,
        onSuccess: function(transport) {
        	mydata = eval("[" + transport.responseText + "]");
 					data[objectNumber] = mydata[0];
 					
					var tmp = $(objectName).getElementsByTagName("img");
					var img = tmp[0];

					img.src = host + data[objectNumber]['filename'];
					img.style.width = data[objectNumber]['width'];
					img.style.height = data[objectNumber]['height'];
        }
     }
    );
  }
}